前 言
隨著硫化機自動控制水平的不斷提高,硫化機的溫度壓力數(shù)據(jù)采集記錄方法經(jīng)歷了圓盤記錄儀、打點式記錄儀、智能化無紙記錄儀乃至目前較先進的上位機監(jiān)控系統(tǒng)。上位機監(jiān)控系統(tǒng)界面友好、控制安全可靠、精度高、數(shù)據(jù)存儲量大,已越來越受用戶青睞。筆者采用電阻式觸摸平板電腦作為上位機,把現(xiàn)場數(shù)據(jù)通過傳感器采集經(jīng)PLC處理后送入上位機,組成一個監(jiān)控系統(tǒng)。
1、監(jiān)控系統(tǒng)構(gòu)成
整個監(jiān)控系統(tǒng)由A/D模塊、D/A模塊、CPU、傳感器、電氣轉(zhuǎn)換器、平板電腦組成,如圖1所示。
上位機對數(shù)據(jù)進行分析、存盤、綜合處理、打印、報警、圖形顯示、人機對話,并可通過數(shù)據(jù)傳送對PLC進行控制。
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)習慣編輯不同的人機界面,具有很好的靈活性。
主畫面如圖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ù),可分為圓盤型和直線型。圓盤型尊重原有圓盤記錄儀的習慣,以一天為單位,實時記錄每一時間的數(shù)值,在實時數(shù)據(jù)與上一時間數(shù)據(jù)間畫圓弧,這樣能準確顯示數(shù)值的變化情況。直線型以一小時(一般輪胎硫化時間在一小時內(nèi))為單位顯示,如果采集完一個小時數(shù)據(jù),則實時曲線以采集頻率從右向左漂移,這時在Picture控件最右端顯示當前數(shù)值對應(yīng)的曲線,這種動態(tài)漂移效果可由WINDOWS API函數(shù)實現(xiàn)。這兩種曲線方式各有千秋,前者可以直觀了解當天所有輪胎的曲線情況,但上位機的顯示屏顯示一天數(shù)據(jù),圖形就顯得小,分辨率不高。者清晰度高,但只能顯示當前一段時間的映線,如果需要更長時間的曲線,得從歷史畫面中查看。一般來講,兩者兼顧應(yīng)用,相得益彰。
每天采集的數(shù)據(jù)都存放在當天的數(shù)據(jù)庫里,要查看哪天的曲線只要打開該天的數(shù)據(jù)庫就可以畫出該天的歷史曲線。
工藝編輯畫面:所有需要修改的參數(shù)都集中在工藝編輯畫面里,步序、分步時間、閥門狀態(tài)、PID參數(shù)、延時設(shè)定、硫化規(guī)格、機號都可修改。該畫面功能多,操作較為復雜,但主要還是圍繞數(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é)議,其命令格式為:
響應(yīng)碼為:
用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)良好。當然,它有待不斷完善,使之畫面更豐富,功能更強大。