前 言
隨著硫化機(jī)自動(dòng)控制水平的不斷提高,硫化機(jī)的溫度壓力數(shù)據(jù)采集記錄方法經(jīng)歷了圓盤記錄儀、打點(diǎn)式記錄儀、智能化無紙記錄儀乃至目前較先進(jìn)的上位機(jī)監(jiān)控系統(tǒng)。上位機(jī)監(jiān)控系統(tǒng)界面友好、控制安全可靠、精度高、數(shù)據(jù)存儲(chǔ)量大,已越來越受用戶青睞。筆者采用電阻式觸摸平板電腦作為上位機(jī),把現(xiàn)場數(shù)據(jù)通過傳感器采集經(jīng)PLC處理后送入上位機(jī),組成一個(gè)監(jiān)控系統(tǒng)。
1、監(jiān)控系統(tǒng)構(gòu)成
整個(gè)監(jiān)控系統(tǒng)由A/D模塊、D/A模塊、CPU、傳感器、電氣轉(zhuǎn)換器、平板電腦組成,如圖1所示。
上位機(jī)對數(shù)據(jù)進(jìn)行分析、存盤、綜合處理、打印、報(bào)警、圖形顯示、人機(jī)對話,并可通過數(shù)據(jù)傳送對PLC進(jìn)行控制。
2、監(jiān)控軟件的設(shè)計(jì)
2.1 窗體設(shè)計(jì)
在軟件的編程過程中,人機(jī)界面(MM,)非常重要,因?yàn)樗苯优c操作員產(chǎn)生信息交流,友好的人機(jī)界面要求能真實(shí)再現(xiàn)控制設(shè)備的狀態(tài)以及準(zhǔn)確的采集所需參數(shù)的數(shù)據(jù),這主要依靠VB 6.0的控件組合及原代碼完成。整個(gè)人機(jī)界面包括硫化狀態(tài)畫面(主畫面)、實(shí)時(shí)曲線畫面、數(shù)據(jù)查看畫面、歷史曲線畫面、工藝編輯畫面、報(bào)警畫面、口令畫面、開關(guān)狀態(tài)畫面,各畫面間可以相互切換。當(dāng)然也可根據(jù)用產(chǎn)習(xí)慣編輯不同的人機(jī)界面,具有很好的靈活性。
主畫面如圖2所示,它實(shí)時(shí)采集硫化機(jī)溫度壓力信號(hào),并將其保存在以日期為名稱的數(shù)據(jù)庫里。顯示每鍋輪胎硫化的時(shí)間、步序參數(shù)數(shù)據(jù),產(chǎn)量、膠囊計(jì)數(shù)、本機(jī)目前的信息也一目了然,棒圖控件能動(dòng)態(tài)表明每條輪胎的硫化進(jìn)程,并有百分?jǐn)?shù)提醒操作員。如果某一閥門打開,主畫面中相應(yīng)閥門名稱的顏色變化,管路里就會(huì)有液體流動(dòng)的動(dòng)畫,形象再現(xiàn)了閥門狀態(tài)的變化,這可以在picture控件中應(yīng)用API函數(shù)實(shí)現(xiàn)。清零菜單可分別對左右計(jì)數(shù)和產(chǎn)量進(jìn)行清零。單擊通訊按鈕通過串口與PLC通信,進(jìn)行數(shù)據(jù)交換,數(shù)據(jù)采集頻率可在Timer控件中設(shè)定。主畫面為監(jiān)控系統(tǒng)的窗口,基本上所有操作員需要了解的數(shù)據(jù)都集中在這里,其畫面的友好程度及功能的完整性直接影響人機(jī)界面成功與否。
實(shí)時(shí)曲線畫面實(shí)時(shí)跟蹤硫化機(jī)的溫度壓力參數(shù),可分為圓盤型和直線型。圓盤型尊重原有圓盤記錄儀的習(xí)慣,以一天為單位,實(shí)時(shí)記錄每一時(shí)間的數(shù)值,在實(shí)時(shí)數(shù)據(jù)與上一時(shí)間數(shù)據(jù)間畫圓弧,這樣能準(zhǔn)確顯示數(shù)值的變化情況。直線型以一小時(shí)(一般輪胎硫化時(shí)間在一小時(shí)內(nèi))為單位顯示,如果采集完一個(gè)小時(shí)數(shù)據(jù),則實(shí)時(shí)曲線以采集頻率從右向左漂移,這時(shí)在Picture控件最右端顯示當(dāng)前數(shù)值對應(yīng)的曲線,這種動(dòng)態(tài)漂移效果可由WINDOWS API函數(shù)實(shí)現(xiàn)。這兩種曲線方式各有千秋,前者可以直觀了解當(dāng)天所有輪胎的曲線情況,但上位機(jī)的顯示屏顯示一天數(shù)據(jù),圖形就顯得小,分辨率不高。者清晰度高,但只能顯示當(dāng)前一段時(shí)間的映線,如果需要更長時(shí)間的曲線,得從歷史畫面中查看。一般來講,兩者兼顧應(yīng)用,相得益彰。
每天采集的數(shù)據(jù)都存放在當(dāng)天的數(shù)據(jù)庫里,要查看哪天的曲線只要打開該天的數(shù)據(jù)庫就可以畫出該天的歷史曲線。
工藝編輯畫面:所有需要修改的參數(shù)都集中在工藝編輯畫面里,步序、分步時(shí)間、閥門狀態(tài)、PID參數(shù)、延時(shí)設(shè)定、硫化規(guī)格、機(jī)號(hào)都可修改。該畫面功能多,操作較為復(fù)雜,但主要還是圍繞數(shù)據(jù)庫做文章。建立一個(gè)數(shù)據(jù)庫與Treeview控件聯(lián)接,數(shù)據(jù)庫中包括各種工藝號(hào),每個(gè)工藝號(hào)為一個(gè)表(Table)。單擊表名,該表的內(nèi)容顯示在Datagrid控件中,可以通過鍵盤修改表的內(nèi)容。
其它畫面不再詳述。
2.2 上位機(jī)與PLC間的通信
在上位機(jī)鏈接通信中,上位機(jī)多是以主態(tài)同PLC進(jìn)行通信,命令一般從上位機(jī)發(fā)至PLC,任何數(shù)據(jù)都能從PLC發(fā)送至上位機(jī)。兩者間的通信通過上位機(jī)的串口與連接實(shí)現(xiàn),并遵循RS-232協(xié)議,其命令格式為:
響應(yīng)碼為:
用V 8 6.0編寫通信程序時(shí),要用通訊控件(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ā)送的,每次接受一幀時(shí)計(jì)算FCS并將結(jié)果與包含在幀中的FCS比較使之能檢查幀中的數(shù)據(jù)錯(cuò)誤。FCS是轉(zhuǎn)換成2個(gè)ASC Ⅱ字符的8位數(shù)據(jù),這8位數(shù)據(jù)是對幀開始數(shù)據(jù)直到此幀正文結(jié)束的數(shù)據(jù)進(jìn)行異或運(yùn)算的結(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)用于硫化機(jī)自動(dòng)控制系統(tǒng)中,從實(shí)際運(yùn)行情況,狀態(tài)良好。當(dāng)然,它有待不斷完善,使之畫面更豐富,功能更強(qiáng)大。