劉衛生+周慶貴+張元良+劉騰堯+顧俊



【摘 要】論文以稱重儀表和PLC為下位機、PC為上位機,實現了計算機和PLC與儀表之間的RS485通訊,開發出的上位機監控軟件可以實現流程控制、數據輸入/輸出和參數在線設置等功能。實驗結果表明監控軟件界面友好、可操作性強、性能可靠、簡單實用。
【Abstract】The paper uses the weighing instrument and PLC as the lower machine, PC as the host computer, realizes the RS485 communication between the computer and PLC instrument, and then develops a PC monitoring software that can realize the process control, data input/output and parameter settings and other functions. The experimental results show that the monitoring software has the characters of friendly interface, strong operability, performance reliable, simple and practical.
【關鍵詞】FX2NPLC;VB;RS485通信
【Keywords】FX2N PLC;VB;RS485 communication
【中圖分類號】TP274.2;TP311.1 【文獻標志碼】A 【文章編號】1673-1069(2017)06-0178-04
1 引言
在葉片制造過程中,膠的配比對產品質量有著重要影響。為保證產品質量,原料的配比要嚴格按照工藝要求進行。自動配料稱重控制系統是將兩種以上的配料按一定重量配比要求自動加入混合機內形成混合物料,供下一工序使用。本文介紹了基于VB語言開發的打膠機網絡控制系統的工作原理、硬件構成與程序設計流程,并具體給出了串口通信的流程和代碼。
2 稱重系統構成及主要功能
2.1 系統組成原理
系統由型號為FX2N-32MT的PLC和IND245的稱重儀表構成,PLC利用485BD模塊和接口轉換器與PC鏈接,稱重儀表和工控機485串口相連。圖1為控制系統的組成示意圖。
2.2 主要控制功能
系統具有配方數據存儲和實際配料數據存儲功能,能夠按照時間、產品型號、打膠人、配料型號、組分等信息生成記錄進行遠程錄入。對現場的生產工藝過程進行監控,通過PLC控制混合設備和實時顯示現場的生產情況[1]。控制系統具有不同的工作方式,根據工藝要求,按照不同方式完成混合配料工作。主控制界面如圖2所示。
3 數據讀取
3.1 稱重儀表的數據格式
IND245的連續輸出模板能夠向遠程設備(如PC或顯示器)傳輸稱量數據和秤的信息。連續模板可以使用串口1,串口2或以太網。連續輸出格式的校驗和可選。
表1中顯示了18個字節的數據。
連續輸出格式說明:
A.數據輸出以十六進制02開始;
B.狀態字,詳情請參照表2,3,4;
C.重量顯示值,六位字節,沒有符號和小數點。前導零用空格代替;
D.皮重,六位字節,沒有小數點;
E.ASCII回車符
F.校驗和僅設置為有效時進行傳輸,校驗和用于檢查傳輸數據中的錯誤。
3.2 MSComm控件
本設計中,利用VB的通信控件MScomm實現串口通信[2],它是一種簡單易用的串口通信控件。可通過該控件設置串口狀態和通信信息協議和格式。
通過以下五種屬性可設置串口的基本設置和操作。
①Setting是字符型,用于設定通信的信息格式。
②Output用于寫入發送緩沖區的字符。
③PortOpen是布爾型且是開關通信口。
④Input用于讀取接收緩沖區的字符。
⑤CommPort用于設置并返回通信口號并設置通信控件MScomm為哪個串口提供通信服務。
以下三種屬性描述如何利用VB所擁有事件驅動機制來進行通信。
①RThreshold用于設置并返回不觸發OnComm事件時接收緩沖區被允許的最多字符數。
②SThreshold用于設置并返回不觸發OnComm事件時發送緩沖區被允許的最少字符數。
③CommEvent用于返回通信過程中產生的錯誤信息和事件,反映通信狀況。
上位機采用的通信格式為:MSComm1.Settings = "9600,N,7,1"表示波特率是9600bit/s,沒有奇偶校驗位,7位數據位,1位停止位。
3.3 數據包提取
根據儀表的前述協議格式,要從緩沖區提取出數據首先要找到數據的尾字節,因為通訊控件中數據設置為8位,所以回車符值為128+13=141H,起始符值為128+2=130H。
因為數據采用連續發送方式,設置接收控件數據長度為36,數據為8位,只要找到其中數據的起始符,再看后面是否有回車符,如果有的話就是一個可以接收的數據包。
在托利多的電子秤上所顯示的重量數據在數據包中處于5到10位,有6個字節,每個字節對應電子秤上所顯示的一個數值。所以以字符串的形式將重量值從變量中取出,再判斷小數點的位置,這樣就能準確地析取出重量數據[3]。
部分程序代碼
Private Sub Form_Load()
MScomm1.CommPort = 8 ' 設置端口號
MScomm1.InputLen=36 '設置接收字符串長度
End Sub
Private Sub Timer2_Timer()
On Error GoTo Sexit '打開數據端口
If MScomm1.PortOpen = True Then GoTo dexit
MScomm1.PortOpen = True
dexit:
fexit = "ok"
sexit:
If fexit = "ok" Then
On Error GoTo ition
weight1 = Mscomm1.Input
dition = "ok"
ition:
If dition = "ok" Then
Else
MsgBox "鏈接中斷", 0 + 16, "警告": Label18.Caption = "未連接": Timer2.Enabled = False: comm.PortOpen = False: Exit Sub
End If
Label18.Caption = "已連接"
Dim i As Long
For i = 1 To 36
If Mid(weight1, i, 1) = Chr(2) Then weight1 = Mid(weight1, i, 18): Exit For
'檢測數據
Next i
weight2 = Val(Mid(weight1, 5, 6))
weight2 = weight2 / 1000
Text6.Text = Format(weight2, "0.000")
Mscomm1.InBufferCount = 0
Else
Label18.Caption = "未連接"
End If
End Sub
4 數據庫操作
Ado Data控件使用ActiveX數據對象(ADO)來快速建立數據綁定和數據提供者之間的連接。數據綁定控件是任何具有“數據源”屬性的控件,數據提供者可以是任何符合OLE DB規范的數據源。連接數據庫:將Ado Data控件與數據庫進行連接,主要是對Ado Data控件的ConnectionString屬性、CommandType屬性、RecordSource屬性進行設置。
下面是配方數據遠程錄入的部分程序代碼:
Private Sub Inputdata()
Set cnn = New ADODB.Connection cnn.Open "Provider=SQLOLEDB.1;Password=1234;Persist Security Info=True;
User ID=adc;Initial Catalog=質量記錄_new;DataSource=192.*.*.1" '訪問遠程數據庫
cnn.Execute "insert into data1" & _
"(A樹脂型號,A樹脂批號,A樹脂重量,B固化劑型號,B固化劑批號,B固化劑重量,[實際混合比B/A],機器編號,葉片編號,打膠人,生產日期,合計重量,打膠開始時間,打膠結束時間,校核報警記錄)" & _
"values ('" & Combo1.Text & "','" & Combo2.Text & "','" & Text1.Text & "','" & Combo3.Text & "','" & Combo4.Text & "'" & _
",'" & Text2.Text & "','" & Text3.Text & "','" & Combo8.Text & "','" & Combo6.Text & "'" & _
",'" & Combo9.Text & "'" & _
",'" & time & "','" & Text6.Text & "','" & Text7.Text & "','" & Text8.Text & "','" & "超出質量標準" + Label22.Caption & "')"
Sleep 200
Set rst = New ADODB.Recordset
rst.Open "select 打膠人 from 質量記錄_new.dbo.data1 where 生產日期='" & time & "'", cnn
If Combo9.Text = rst.Fields("打膠人") Then
MsgBox "數據錄入成功", 0 + 64, "提示"
Else: MsgBox "請重新輸入數據", 0 + 48, 數據錄入失敗: cnn.Execute "delete from 質量記錄_new.dbo.data1 where 生產日期 ='" & time & "'"
End If
End Sub
5 應用情況
該程序已經在某葉片制造企業的混料配比稱重系統中得到應用,經過一年多的運行情況表明,系統運行穩定,操作方便,配比質量控制得到了較好保證,并實現了控制參數的遠程控制和設備運行情況(包括人員信息、打膠時間、配比、重量等)數據保存和遠程監控。實現了混料配比工藝過程的網絡化管理。
【參考文獻】
【1】朱金平,楊明.基于VB環境下開發的配料稱重系統[J].微計算機信息,2003,19(1):36-38.
【2】辛文舉.基于VB的標簽打印機軟件和托利多電子稱之間的串口通信[J].自動化技術與應用,2012,31(7):96-98.
【3】周慶貴.基于VB編程環境數據采集系統的設計[J].測控技術,2008,27(4):62-65.