產品分類

      當前位置: 首頁 > 工業控制產品 > 自動化控制 > 工業觸摸屏

      類型分類:
      科普知識
      數據分類:
      工業觸摸屏

      基于VB及臺達觸摸屏的監控系統在紡機中的應用

      發布日期:2022-10-09 點擊率:54 品牌:臺達_Delta

      摘要: 目前紡織業生產中產品產量一般都還是依靠人工進行統計,在實際操作過程中,不僅麻煩而且容易出錯。因此,有必要采用產量監控及查詢系統對產品產量進行統計。本文介紹了基于VB及臺達觸摸屏的產量監控及查詢系統,該系統不僅能應用于紡織機械,而且適用于其它設備。
      關鍵詞: 臺達觸摸屏;VB;監控;查詢;MODBUS;MSCOMM

      一、引言

      該系統用于對各生產線的紡機進行實時監控和查詢,并對各班次產量數據進行存儲,用戶可通過日期時間段、車號、班次等對產量進行綜合查詢,并進行統計,可在查詢出滿足條件的數據后,進行報表輸出和打印。以下是對系統設計方面的一些討論。

      二、系統結構與功能

      精梳機是近年來在紡織行業使用較為普遍的一種設備,其主要作用是排出梳棉生條中一定長度以下的短纖維,提高纖維整齊度,進一步清除纖維中殘留的棉結、雜質,提高纖維光潔度。條并卷聯合機是精梳工序的準備設備,通常情況下,一套精梳設備由一臺條并卷聯合機和五臺精梳機組成。該產量監控查詢系統應用于精梳設備的結構示意圖如下所示:

      該系統實現了以下功能:

      1)實時監控所選機器各班次的當日產量和累計產量以及該機器的運行情況。
      2)可定時保存各機器各班次的當日產量及累計產量,且有多種定時方式可選擇。
      3)能分別根據時間,班次,產量,車號進行查詢操作,也可綜合考慮數據保存方式進行查詢,提高查詢準確率。
      4)查詢結果可顯示為報表格式,并可將結果打印輸出,方便用戶使用。
      5)具有系統維護功能,可方便用戶進行數據維護。

      三、系統設計

      1)硬件配置

      名稱 數量
      觸摸屏 7
      普通PC機 1
      轉換模塊RS232—RS485 1

      2) 數據采集部分的設計

      觸摸屏選用臺達系列AE10THTD型,由于其具有強大的通訊功能,靈活的系統構成,生動逼真且豐富的圖庫,簡單易用等特點,在紡織業中得到了廣泛的應用,因此通過觸摸屏來采集所需數據。所以要對紡機進行實時監控,首先要解決觸摸屏與PC的通信問題。所用的臺達觸摸屏支持標準的MODBUS協議,通過串口與PC相連。

      (1) MODBUS通信協議

      modbus功能碼

      01:讀取線圈狀態 取得一組邏輯線圈的當前狀態(ON/OFF)
      02:讀取輸入狀態 取得一組開關輸入的當前狀態(ON/OFF)
      03:讀取保持寄存器 在一個或多個保持寄存器中取得當前的二進制值
      04:讀取輸入寄存器 在一個或多個輸入寄存器中取得當前的二進制值
      05:強置單線圈 強置一個邏輯線圈的通斷狀態
      06:預置單線圈 把具體二進制值裝入一個保持寄存器

      根據modbus協議,通信中mscomm1.output中包含的字符串應包括以下幾部分:

      起始位 站號 功能碼 數據位 校驗位 停止位

      在此通信中,站號表示人機站號 數據位包括寄存器地址和數據

      (2) HMI內部地址與MODBUS地址映射表

      (3) mscomm控件

      CommPort 設置并返回通訊端口號。
      Settings 以字符串的形式設置并返回波特率、奇偶校驗、數據位、停止位。
      PortOpen 設置并返回通訊端口的狀態。也可以打開和關閉端口。
      Input 從接收緩沖區返回和刪除字符。
      Output 向傳輸緩沖區寫一個字符串。

      (4) HMI與PC的通信及數據采集的設計

      LRC算法函數:

      Public Function LRC(str)
      c = 0
      l = Len(str) '求出str的長度賦值給l
      For c = c + 1 To l
      c_data = Mid$(str, c, 2) '在str串中,從c的值開始取2個字符。
      d_lrc = d_lrc + Val("&H" + c_data)
      c = c + 1
      Next c
      If d_lrc > &HFF Then
      d_lrc = d_lrc Mod &H100
      End If
      h_lrc = Hex(&HFF - d_lrc + 1)
      If Len(h_lrc) > 2 Then
      h_lrc = Mid(h_lrc, Len(h_lrc) - 1, 2)
      End If
      LRC = h_lrc
      End Function

      下面對數據進行實時采集,數據采集程序界面如下圖所示:

      Private Sub Timer1_Timer()
      '連接數據庫
      Dim CONN As New ADODB.Connection
      Dim DBStr As String
      Dim rs As New ADODB.Recordset
      DBStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "data.mdb;Persist Security Info=False"
      CONN.Open DBStr
      Dim Mac_Num' Mac_Num是車號
      Mac_Num = Combo_MacNum.List(Combo_MacNum.ListIndex)
      Debug.Print Mac_Num
      sql = "select * from machine where Machine_Num = '" + Mac_Num + "'" '獲取車號
      rs.Open sql, CONN, 1, 3
      Txt_type.Text = rs.Fields("machine_type").Value '獲取車的類型(是精梳機還是條并聯)
      rs.Close
      str_type = Mac_Num '
      Set CONN = Nothing
      DBStr = ""
      '發送數據(根據所選車號發送數據)
      If MSComm1.PortOpen = True And stakeout_flag And Combo_MacNum.ListIndex >= 0 Then
      str_output = str_type + "030064001D"
      MSComm1.Output = ":" + str_output + LRC(str_output) + Chr$(13) + Chr$(10)
      '接收數據
      inputstring = MSComm1.Input
      '將接收到的數據分別賦值并顯示

      Txt_100.Text = change(inputstring, 8, 12) '甲班當日產量
      Txt_102.Text = change(inputstring, 16, 20) '甲班累計產量
      Txt_104.Text = change(inputstring, 24, 28) '乙班當日產量
      Txt_106.Text = change(inputstring, 32, 36) '乙班累計產量
      Txt_108.Text = change(inputstring, 40, 44) '丙班當日產量
      Txt_110.Text = change(inputstring, 48, 52) '丙班累計產量
      Txt_112.Text = change(inputstring, 56, 60) '丁班當日產量
      Txt_114.Text = change(inputstring, 64, 68) '丁班累計產量
      Txt_116.Text = change(inputstring, 72, 76) '各班當日合計產量
      Txt_118.Text = change(inputstring, 80, 84) '各班累計合計產量
      If Txt_type.Text = "條并聯" Then
      Txt_view1.Text = change(inputstring, 104, 108) '條并聯繞卷速度
      Txt_view2.Text = change(inputstring, 112, 116) '條并聯當前長度
      Else
      Txt_view1.Text = change(inputstring, 88, 92) '精梳機鉗次
      Txt_view2.Text = change(inputstring, 96, 100) '精梳機條速
      End If
      str_state = Mid(inputstring, 120, 4) '接收運行狀態的返回值,并判斷運行狀態
      If str_state = "0001" Then
      Cmd_128.Caption = "運行中"
      End If
      If str_state = "0000" Then
      Cmd_128.Caption = "停止"
      End If
      End If
      End Sub

      change(inputstr, start1 As Integer, start2 As Integer)用于轉換采集到的數據,其功能是將采集到的產量數據轉換為十進制。其代碼如下:

      Public Function change(inputstr, start1 As Integer, start2 As Integer)
      str_low = Mid(inputstr, start1, 4) '讀寄存器中的數據賦給低字節
      str_high = Mid(inputstr, start2, 4) '讀寄存器中的數據賦給高字節
      str_hex = str_high + str_low '整合高低字節數據
      str_input = Val("&H" + str_hex) '將十六進制數據轉換成十進制
      If str_input >= -32768 And str_input <= -1 Then '將轉換成十進制處于-32768~32767的數據轉換為相應的正數
      str_input = str_input + 65536
      End If
      change = str_input / 1000 '返回值 取三位小數
      End Function

      3)信息查詢

      信息查詢界面如下所示,可對已經保存的生產數據根據時間、班次、產量、車號進行綜合查詢。

      該功能的程序方面比較簡單,主要是對數據庫的查詢操作。以單獨對班次查詢為例,其代碼如下:

      '按班次查詢子函數,用于判斷其搜索關鍵字是否有效
      Private Sub Chk_team_Click()
      If Chk_team.Value = 1 Then
      Combo_team.Enabled = True
      Else
      Combo_team.Enabled = False
      End If
      End Sub
      '選擇班次子函數,用于判斷所選班次
      Private Sub Combo_team_Click()
      Dim liner_str
      Select Case Combo_team.ListIndex
      Case 0
      liner_str = "甲班"
      Case 1
      liner_str = "乙班"
      Case 2
      liner_str = "丙班"
      Case 3
      liner_str = "丁班"
      End Select
      End Sub
      '班次查詢子函數,獲取查詢字符串
      Public Function sch_team()
      Dim liner_str
      Dim sch_str_team
      Select Case Combo_team.ListIndex
      Case 0
      liner_str = "甲班"
      Case 1
      liner_str = "乙班"
      Case 2
      liner_str = "丙班"
      Case 3
      liner_str = "丁班"
      End Select
      sch_str_team = "info_liner = '" + liner_str + "'"
      sch_team = sch_str_team
      End Function
      '產量查詢函數,用于查詢產量并對其進行顯示
      Private Sub cmd_search_Click()
      Dim sch_str
      '按班次查詢
      If Chk_team.Value = 1 Then
      sch_str = " where " + sch_team()
      End If
      '查詢結果顯示
      Dim resource_str
      resource_str = " select info_id as 編號,info_mactype as 機器類型 ,info_liner as 班次, "
      resource_str = resource_str + " info_sumoutput as 當日產量, info_dayoutput as 累計產量,"
      resource_str = resource_str + " info_daytotal as 當日合計產量,info_total as 累計合計產量 "
      resource_str = resource_str + " from " + table_str + sch_str
      Adodc1.RecordSource = resource_str
      Debug.Print Adodc1.RecordSource
      Adodc1.Refresh
      End Sub

      可根據以上單獨查詢班次的例子對其進行擴展,增加根據時間,車號,產量范圍等對產量進行查詢的功能,這里就不一一敘述了。

      四、結束語

      觸摸屏與上位機的結合,并通過VB6.0傳送數據所構成的計算機監控系統,對于近距離傳輸數據的現場控制來說是一種性價比很高的解決方案。該系統充分的利用了觸摸屏的通信功能和PC強大的圖形顯示、浮點運算等特點,以最大的限度合理的利用了資源,實現了對設備運行狀態的監控。

      下一篇: PLC、DCS、FCS三大控

      上一篇: 索爾維全系列Solef?PV

      主站蜘蛛池模板: 亚洲综合在线一区二区三区| 国产一区二区久久久| 中文字幕一区二区免费| 中文字幕一区二区视频| 韩日午夜在线资源一区二区| 国产一区视频在线| 中文字幕一区二区精品区| 无码人妻精品一区二区三区不卡 | 精品久久国产一区二区三区香蕉| 国产一区在线视频| 日本片免费观看一区二区| 国产一区中文字幕在线观看 | 亚洲福利一区二区三区| 国产欧美一区二区精品仙草咪| 日本一区二区三区中文字幕| 亚欧色一区W666天堂| 日韩精品一区二区三区国语自制| 无码精品人妻一区二区三区影院| 亚洲一区AV无码少妇电影☆| 亚洲日韩精品国产一区二区三区| 国产一区二区三区播放| 99久久精品国产一区二区成人| 天天躁日日躁狠狠躁一区| 亚洲国产精品乱码一区二区 | 无码午夜人妻一区二区不卡视频 | 日韩精品一区二区午夜成人版| 性无码免费一区二区三区在线| 国产成人一区二区三区| 国产精品无圣光一区二区 | 久久久久成人精品一区二区| 成人免费视频一区二区三区| 国产精品视频一区二区噜噜| 免费一区二区视频| tom影院亚洲国产一区二区| 在线精品动漫一区二区无广告| 亚洲日韩AV无码一区二区三区人| 亚洲熟女一区二区三区| 立川理惠在线播放一区| 日韩免费一区二区三区在线播放| 成人影片一区免费观看| 精品人妻一区二区三区四区在线|