1 監(jiān)控系統(tǒng)構(gòu)成
整個監(jiān)控系統(tǒng)由A/D模塊、D/A模塊、CPU、傳感器、電氣轉(zhuǎn)換器、平板電腦組成,如圖1所示。
2 監(jiān)控軟件的設(shè)計
2.1 窗體設(shè)計
在軟件的編程過程中,人機界面(MM,)非常重要,因為它直接與操作員產(chǎn)生信息交流,友好的人機界面要求能真實再現(xiàn)控制設(shè)備的狀態(tài)以及準確的采集所需參數(shù)的數(shù)據(jù),這主要依靠VB 6.0的控件組合及原代碼完成。整個人機界面包括硫化狀態(tài)畫面(主畫面)、實時曲線畫面、數(shù)據(jù)查看畫面、歷史曲線畫面、工藝編輯畫面、報警畫面、口令畫面、開關(guān)狀態(tài)畫面,各畫面間可以相互切換。當然也可根據(jù)用產(chǎn)習(xí)慣編輯不同的人機界面,具有很好的靈活性。
主畫面如圖2所示,它實時采集硫化機溫度壓力信號,并將其保存在以日期為名稱的數(shù)據(jù)庫里。顯示每鍋輪胎硫化的時間、步序參數(shù)數(shù)據(jù),產(chǎn)量、膠囊計數(shù)、本機目前的信息也一目了然,棒圖控件能動態(tài)表明每條輪胎的硫化進程,并有百分數(shù)提醒操作員。如果某一閥門打開,主畫面中相應(yīng)閥門名稱的顏色變化,管路里就會有液體流動的動畫,形象再現(xiàn)了閥門狀態(tài)的變化,這可以在picture控件中應(yīng)用API函數(shù)實現(xiàn)。清零菜單可分別對左右計數(shù)和產(chǎn)量進行清零。單擊"通訊"按鈕通過串口與PLC通信,進行數(shù)據(jù)交換,數(shù)據(jù)采集頻率可在Timer控件中設(shè)定。主畫面為監(jiān)控系統(tǒng)的窗口,基本上所有操作員需要了解的數(shù)據(jù)都集中在這里,其畫面的友好程度及功能的完整性直接影響人機界面成功與否。
每天采集的數(shù)據(jù)都存放在當天的數(shù)據(jù)庫里,要查看哪天的曲線只要打開該天的數(shù)據(jù)庫就可以畫出該天的歷史曲線。
工藝編輯畫面:所有需要修改的參數(shù)都集中在工藝編輯畫面里,步序、分步時間、閥門狀態(tài)、PID參數(shù)、延時設(shè)定、硫化規(guī)格、機號都可修改。該畫面功能多,操作較為復(fù)雜,但主要還是圍繞數(shù)據(jù)庫做文章。建立一個數(shù)據(jù)庫與Treeview控件聯(lián)接,數(shù)據(jù)庫中包括各種工藝號,每個工藝號為一個表(Table)。單擊表名,該表的內(nèi)容顯示在Datagrid控件中,可以通過鍵盤修改表的內(nèi)容。
其它畫面不再詳述。
2.2 上位機與PLC間的通信
在上位機鏈接通信中,上位機多是以主態(tài)同PLC進行通信,命令一般從上位機發(fā)至PLC,任何數(shù)據(jù)都能從PLC發(fā)送至上位機。兩者間的通信通過上位機的串口與連接實現(xiàn),并遵循RS-232協(xié)議,其命令格式為:
@ |
節(jié)點號 |
標題碼 |
- |
FCS檢驗碼 |
結(jié)束符 |
響應(yīng)碼為:
@ |
節(jié)點號 |
標題碼 |
結(jié)束代碼 |
正文 |
FCS檢驗碼 |
結(jié)束符 |
用V 8 6.0編寫通信程序時,要用通訊控件(Mscomm)。將通訊控件調(diào)入后,還需編通信代碼,如PLC采集的內(nèi)溫、內(nèi)壓、外溫、外壓存芯正數(shù)據(jù)區(qū)DMOOOONDM0003,主畫面的內(nèi)溫、內(nèi)壓、外溫、外壓分別顯示在Label 1(0)~Label 1(3)中。則在VB6.0下建立的通信代碼如下:
Private Sub Timer 1-Timer()
Form l. MSComm l. CommPort=1’使用COM l端口
Form l. MSComm l. Settings="9600,e,7,2"’設(shè)置通信條件
Form l. MSComm l. Port Open=True’打開串口
R$="@ 00RD00000004"’讀PLCDM0000-DM 0003的內(nèi)容
RD$=R$+fcs(R$)
Form 1. MSComm 1.In Buffer Count=0
Form 1. MSComm 1.Output=RD$+Chr$(13)’發(fā)送命令
Do
Dummy=Do Everts(1)
Loop Until Form 1. MSComm 1. In Buffer Count>=27
Instring$=form1. MSComm 1. Input’接受數(shù)據(jù)
Label 1(0). caption=MID$(instring$,8,4)
Label 1(1). caption=MID$(instring$,12,4)
Label 1(2). caption=MID$(instring$,16,4)
Label 1(3). caption=MID$(instring$,20,4)
From1. MSComm 1. Port Open=Faise
End Sub
數(shù)據(jù)是以幀為單位發(fā)送的,每次接受一幀時計算FCS并將結(jié)果與包含在幀中的FCS比較使之能檢查幀中的數(shù)據(jù)錯誤。FCS是轉(zhuǎn)換成2個ASC Ⅱ字符的8位數(shù)據(jù),這8位數(shù)據(jù)是對幀開始數(shù)據(jù)直到此幀正文結(jié)束的數(shù)據(jù)進行異或運算的結(jié)果。VB 6.0下的FCS函數(shù)代碼如下:
Function fcs(O$)
Dim B%,I%,Ⅱ%,F(xiàn)F$
B%=0
Ⅱ%=Len(O$)
For I%= I TO Ⅱ%
B%=B%×or Asc(Mid(O$,I%,1))
Next I%
FF$二He×$(B%)
1f Len(FF$)=1 Then
FF$="0"+FF$
End If
Fcs=FF$+"*"
End Function
3 結(jié)束語
本例已成功地應(yīng)用于硫化機自動控制系統(tǒng)中,從實際運行情況,狀態(tài)良好。當然,它有待不斷完善,使之畫面更豐富,功能更強大
評論