梁增提,趙佳萌,王莉莉,覃京翎,曾慶文,林峻鋒
(1.柳州城市職業(yè)學(xué)院,廣西 柳州 545036;2.廣西汽車集團(tuán)有限公司,廣西 柳州545007)
在汽車零部件的生產(chǎn)線上,后橋油管氣密性檢測站使用COSMO空氣檢漏儀檢測產(chǎn)品的氣密性[1],并通過PLC的I/O接口監(jiān)控空氣檢漏儀,再輔以按鈕、警示燈等電器實現(xiàn)檢測工位的自動化。但這種方式只能進(jìn)行產(chǎn)品合格與否判斷、起動/停止檢測或故障報警等簡單的監(jiān)控,無法實現(xiàn)數(shù)據(jù)的動態(tài)顯示和記錄以及更復(fù)雜的信息處理。
為了讀寫空氣檢漏儀內(nèi)部的數(shù)字信息,以便對其進(jìn)行數(shù)字控制和檢測數(shù)據(jù)采集、顯示、運(yùn)算、存儲、追溯及上傳等信息化的處理,必須通過其自帶的串行接口進(jìn)行數(shù)據(jù)通信。而在工業(yè)控制領(lǐng)域中,通常使用專業(yè)的工業(yè)控制計算機(jī)(簡稱工控機(jī))來應(yīng)對現(xiàn)場的電磁干擾、震動、粉塵、潮濕、腐蝕、高/低溫等對穩(wěn)定性和可靠性要求較高的監(jiān)控及信息處理需求。工控機(jī)通常支持串行接口、USB接口和以太網(wǎng)等多種通信方式以滿足各種工業(yè)應(yīng)用。本文就使用PPC-3120S型工控機(jī)連接LS-1863X型COSMO空氣檢漏儀,并用VB6.0軟件編寫上位機(jī)監(jiān)控程序,實現(xiàn)兩者之間的串行接口數(shù)據(jù)通信進(jìn)行闡述研究。
使用DB9串口線連接PPC-3120S型工控機(jī)和LS-1863X型COSMO空氣檢漏儀的RS232串行接口(簡稱串口),并于工控機(jī)中運(yùn)行VB6.0軟件編寫的上位機(jī)程序(如圖1所示)。由上位機(jī)向檢漏儀發(fā)出起動測試命令,然后讀取檢漏儀測試結(jié)束后自動返回的檢測結(jié)果,最后解析檢測結(jié)果得到產(chǎn)品合格與否及泄漏量、高低限、測試壓力等數(shù)據(jù)以進(jìn)行顯示和存儲。
圖1 串行通信結(jié)構(gòu)示意圖
PPC-3120S型工控機(jī)和LS-1863X型空氣檢漏儀均自帶兩個串口(COM1和COM2),可通過專用的DB9串口連接線,采用NULL MODEM形式直接連接(如圖2所示)。即把檢漏儀COM1口的數(shù)據(jù)接收端RXD(#2)連接到工控機(jī)的COM1口數(shù)據(jù)發(fā)送端TXD(#3),把工控機(jī)的COM1口數(shù)據(jù)接收端RXD(#2)連接到檢漏儀的COM1口數(shù)據(jù)發(fā)送端TXD(#3),并連接雙方的信號地SG(#5)和屏蔽層FG.
檢漏儀的COM2為廠家維修接口,用戶不能用來做通信接口;工控機(jī)的COM2口可以進(jìn)行RS-232/422/485三種方式的通信,可通過BIOS進(jìn)行調(diào)整。另外,檢漏儀還可以通過USB轉(zhuǎn)串口線連接到工控機(jī)的USB口進(jìn)行通信。USB轉(zhuǎn)串口的數(shù)據(jù)線會在工控機(jī)中模擬出一個串口,如COM3、COM4…等,具體是哪個串口編號,需在工控機(jī)操作系統(tǒng)的設(shè)備管理器中查看。
圖2 串口接線原理圖
要正確進(jìn)行串行數(shù)據(jù)通信,必須規(guī)約通信雙方的串口參數(shù)。檢漏儀可根據(jù)內(nèi)存開關(guān)#18的設(shè)定,改變通信波特率,本文設(shè)定為0,波特率為9 600 bps.
檢漏儀的其他串口參數(shù),默認(rèn)是:起始位1位,數(shù)據(jù)位8位,無奇偶校驗,分隔符<CR>。
檢漏儀的串行數(shù)據(jù)輸出有三種格式,可以根據(jù)內(nèi)存開關(guān)#19、#20的設(shè)定進(jìn)行選擇,各個格式的設(shè)定值如表1所示。
表1 串行數(shù)據(jù)的設(shè)定格式
其中:
T格式:以固定長輸出,只輸出泄漏數(shù)據(jù),為出廠時的標(biāo)準(zhǔn)設(shè)定。
I格式:以固定長輸出,除泄漏數(shù)據(jù)以外還輸出極限值等其它數(shù)據(jù)。
P格式:用于串行打印機(jī)的輸出,數(shù)據(jù)與標(biāo)題一起輸出。
在本案例中,檢漏儀的數(shù)據(jù)輸出格式設(shè)定為I格式,即內(nèi)存開關(guān)#19、#20分別設(shè)定為0和1.檢漏儀輸出的數(shù)據(jù)用ASCII碼表示,數(shù)據(jù)的形態(tài)以字符“#”(23H)開始,<CR>回車(ODH)結(jié)束,其間的各個部分由空格(20H)分隔。數(shù)據(jù)包含檢漏儀編號S、測試品合格與否或錯誤判斷J、泄漏量L、泄漏量高限W、泄漏量低限M、測試壓力A、頻道號碼C和校驗和G等。
檢漏儀測試結(jié)果的詳細(xì)數(shù)據(jù)格式如表2所示,該數(shù)據(jù)在每次測試結(jié)束后,于結(jié)束行程中自動從串口輸出。
表2 檢漏儀測試結(jié)果數(shù)據(jù)格式
從“?!遍_始至<CR>回車結(jié)束符,總字符長度固定為75個。泄漏量和測試壓的有效位數(shù)是3位,有效位以外的數(shù)位填“0”。校驗和用 16進(jìn)制表示,各校驗和之間用冒號“:”(3AH)分隔。當(dāng)整數(shù)用3位表示時,省略小數(shù)點,在數(shù)字前面添加“00”。
VB工程中,一般使用MSComm控件的Input與Output兩個屬性,對串行端口的數(shù)據(jù)進(jìn)行接收和對命令進(jìn)行發(fā)送[2]。檢漏儀可接收的命令和響應(yīng)的數(shù)據(jù)較多,本案例僅簡單的設(shè)計一個能起動檢漏儀的泄漏測試,而后接收其測試結(jié)果的數(shù)據(jù)反饋(I格式),并進(jìn)行解析和顯示的上位機(jī)程序。程序流程如圖3所示。
圖3 上位機(jī)程序流程圖
上位機(jī)程序畫面中只需添加一個MSComm控件;一個“開始測試”的命令按鈕用于發(fā)送起動命令;6個TextBox文本框用于顯示解析后的接收數(shù)據(jù);一個定時器控件用于數(shù)據(jù)的定時刷新(默認(rèn)開啟定時器,定時時間 10 μs)。
程序畫面打開時,調(diào)用串口初始化函數(shù)Comm_initial.設(shè)置 MSComm1控件的串口編號為 1(COM1),通信波特率為9 600 bps,無奇偶校驗,數(shù)據(jù)位8位,停止位1位。此處設(shè)置的各參數(shù)必須和檢漏儀中設(shè)置的串口參數(shù)一致,否則兩者將無法正確通信。
串口初始化函數(shù)Comm_initial,主要用于設(shè)置MSComm1控件的串口通信參數(shù);接收/發(fā)送緩沖區(qū)大?。?024字節(jié));清空輸入/輸出緩沖區(qū);數(shù)據(jù)通過Input屬性取回的方式(以文本形式);產(chǎn)生OnComm接收事件的最少字符數(shù)(每1個字符);設(shè)置完成后打開串口。
通過點擊“開始測試”命令按鈕,向MSComm1控件的Output屬性寫入簡縮命令:STT<CR>,即可往串口輸出緩沖區(qū)寫數(shù)據(jù)流,起動檢漏儀的泄漏測試行程。代碼如下:
其他控制命令、讀取數(shù)據(jù)命令、寫入數(shù)據(jù)命令以及檢漏儀的響應(yīng)等請參考檢漏儀的使用說明書。
檢漏儀于每次測試結(jié)束后,自動發(fā)出I格式的檢測結(jié)果數(shù)據(jù),而每當(dāng)MSComm控件接收到1個字符時,就會產(chǎn)生一次OnComm事件,此時,MSComm控件的 CommEvent屬性值為 2(即常數(shù) comEvReceive),據(jù)此屬性值來調(diào)用函數(shù)textReceive,對接收緩沖區(qū)中的數(shù)據(jù)進(jìn)行接收處理。代碼如下:
把接收到的字符數(shù)據(jù)轉(zhuǎn)存到Text2里,并清除接收緩沖區(qū)緩存。代碼如下:
定時器1每經(jīng)過10 μs,自動執(zhí)行Timer1_Timer函數(shù)。首先,計算并判斷存于Text2中的字符數(shù)據(jù)長度,如果已達(dá)到檢漏儀發(fā)出的數(shù)據(jù)長度(75個字符),則開始拆分各個檢測數(shù)據(jù)。本案例只對5個數(shù)據(jù)進(jìn)行解析:1)取第8個字符的產(chǎn)品合格與否代碼,2為合格,其他為錯誤或不合格,于控件Text1(0)中顯示該結(jié)果;2)取第10至17共8個字符的產(chǎn)品泄漏量數(shù)據(jù),于控件Text1(1)中顯示;3)取第19至26共8個字符的泄漏量高限,于控件Text1(2)中顯示;4)取第28至35共8個字符的泄漏量低限,于控件Text1(3)中顯示;5)取第37至42共6個字符的測試壓力值,于控件Text1(4)中進(jìn)行顯示(詳細(xì)的數(shù)據(jù)格式見1.5檢漏儀的數(shù)據(jù)輸出格式)。解析完成后清空Text2,以便重新接收數(shù)據(jù)。代碼如下:
完成上述的串口連接、通信參數(shù)設(shè)定和程序設(shè)計后,調(diào)節(jié)空氣檢漏儀上的調(diào)壓閥使測試壓力為40 kPa,使用檢漏儀手動測試出一個泄漏量為5 Pa的合格產(chǎn)品。把檢漏儀的泄漏量高限修改為+5 Pa(人為設(shè)置高泄漏報警),運(yùn)行上位機(jī)程序并發(fā)出開始測試命令,檢漏儀正確接受到了命令并起動測試。結(jié)束后,讀取檢漏儀的面板信息(如圖4)可知:產(chǎn)品的泄漏量為5 Pa,低限為-15 Pa,高限為+5 Pa,產(chǎn)品高泄漏報警。對比上位機(jī)程序接收和解析后的信息(如圖5)可知,工控機(jī)能夠正確讀取到檢漏儀的各項測試數(shù)據(jù),兩者之間成功進(jìn)行了串行數(shù)據(jù)通信。
圖4 空氣檢漏儀的測試結(jié)果
圖5 上位機(jī)接收并解析后的數(shù)據(jù)信息
通過本文的設(shè)計,建立了工控機(jī)和空氣檢漏儀之間的串行數(shù)據(jù)通信,實現(xiàn)了對空氣檢漏儀的數(shù)字控制和檢測數(shù)據(jù)的實時監(jiān)測、動態(tài)顯示和記錄,為后續(xù)的產(chǎn)品質(zhì)量檢驗以及工藝優(yōu)化提供了確切的數(shù)據(jù)支持,確保供應(yīng)產(chǎn)品的質(zhì)量。該系統(tǒng)已通過調(diào)試實驗,并已在工程現(xiàn)場應(yīng)用。將該系統(tǒng)稍做修改,即可應(yīng)用于類似的其它場合中,具有一定的推廣價值。