周明剛,余艷艷,陳 源,周敬東
(湖北工業大學機械工程學院,湖北 武漢 430068)
艦艇用的軟管由于在使用中有反復高壓充水、放水的過程,對其疲勞強度有嚴格的要求.為測試各個批次的軟管是否滿足疲勞強度要求,軟管的疲勞強度試驗測試系統采用對管道內注入一定壓力的水并在管道內保持一段時間,然后排出,反復循環充放,直到管道發生漏水或者滿足用戶預設次數的方法,測試軟管是否滿足疲勞強度要求.
本系統由上位機和下位機兩部分組成.上位機由臺式PC機構成,運行用VC++開發的應用程序.下位機以PLC為核心控制塊,對傳感器進行數據采集分析,同時通過對電動球閥的開合控制液體的注入和排出.上位機與下位機之間通過485接口與臺式PC機連接進行通訊,實現較遠距離的智能化監控管理.系統的工作原理如圖1所示.

圖1 系統工作原理圖
其工作過程為:
1)系統開啟后,電磁球閥1開啟,電動球閥2關閉,水泵工作,軟管進水,壓力傳感器開始工作,管內壓力開始上升.
2)當壓力傳感器測得管內壓強達到指定的保壓值時,系統將關閉電動球閥1與水泵.保壓指定的時間后電動球閥2打開,水排出,管內壓力下降.
3)當壓力傳感器測出壓力小于指定的值時,電動閥2關閉,電動閥1打開,水泵工作,重新注水.
4)每注水一次“實驗次數值”自動減1,直到實驗次數值歸零,實驗結束,將實驗數據存入數據庫.
下位機中的PLC選用的是SIMENS公司的S7-200系列產品,它支持多種通信協議.系統設計過程中選用用戶自定義協議(自由口協議),用戶可以通過編程控制PLC通信口的操作模式,并與任何設備靈活地進行通信.下位機通過PPI電纜和485無源轉換器與上位機的串口相連.
通訊方式采用半雙工主從式,上位機為主機,下位機只有在收到上位機的信息后才根據當前的狀態向上位機發送信息.如果下位機收到的信息不正確則不向上位機發送任何信息.上位機如果發送信息后收不到下位機的確認信息,則每0.5 s向下位機發送重復一次.待實驗開始后,上位機每隔0.5 s向下位機發送訊問信息一幀數據,如果下位機收到的信息是正確的,下位機則將實時測的的壓力值、當前實驗次數、當前狀態的信息等發送回主機.這樣,上位機就可以得到實時的數據,顯示在人機界面中并保存到數據庫.
上位機運用VC++進行開發,通過串口與下位機進行通訊.在VC++中開發串口通信應用程序,通常有兩種方法:使用串口通信控件和利用API函數[1].其中通信控件的工作原理類似于中斷方式,當有通信事件(如發送或接受數據等)時就會觸發OnComm事件,從而觸發該事件的處理函數.應用這種方法實現串口通訊簡單方便,不用了解復雜的API函數,因此選用控件的方法開發上位機通訊功能.
在作為上位機的PC機中運行的軟件用VC++6進行開發,后臺數據庫使用ACCESS數據庫管理軟件.主要功能包括建立和管理試驗項目、查詢歷史測試結果數據、自定義試驗參數、試驗過程實時監測、故障自診斷、試驗啟動與停止等.軟件主界面如圖2所示.

圖2 上位機軟件主界面
在上位機軟件的設計過程中,首先需要在CFormView基類派生的對話框類中添加MSComm控件,并為該控件添加處理OnComm事件的消息處理函數OnComm().在CFormView基類派生的對話框類中還加入了一個定時器處理函數OnTimer(),定時器函數每500ms執行一次.定時器函數定時根據用戶界面的交互結果向下位機發送命令,分析消息處理函數OnComm()接收的數據并修改用戶界面,將下位機的返回值實時顯示在用戶界面上[2].其中部分處理函數的代碼如下:


通信模塊采用自由口通信模式.在通信之前通過設定SMB30來選擇通訊模式,設定波特率以及數據長度和校驗位.系統采取的通訊格式為無奇偶校驗,波特率9600,8位字符[3].初始化部分需要進行相應的設置工作,其中的部分程序段如下:

數據發送和接收均采用專用指令實現,數據通訊過程用中斷實現.初始化完成后,每收到一個正確的數據包都對該數據包進行回應,發送回一個對應的數據包.數據包的格式及各個字節的功能如表1所示.每個數據包由11個字節組成,其作用分別為起始位、本機地址、目的地址、功能號、數據、狀態、校驗字節、結束位.其中功能號0至6的含義分別見表2.地址字節中用00代表上位機,01代表下位機.CRC校驗字節為起始位后所有的數之和取低位字節.狀態為中是當前軟管的試驗狀態,00為調壓狀態(升壓狀態),01為保壓狀態,02為放水狀態.

表1 數據包格式表

表2 各個功能號的含義
本文運用VC++和MSComm控件實現上位機的應用軟件,并用串口與下位機PLC進行通訊,通過PC機與PLC的通訊實現了一個可以遠程監控的軟管疲勞試驗控制系統.本文介紹的控制系統構建簡練,運行穩定,在實踐中取得了良好的效果.
[1]朱正禮.基于VC++的PLC與上位機的通訊[J].電氣傳動,2002(2):25-27.
[2]李子彬.基于VC++6.0的PC機與PLC串口通信的實現及其應用[J].太原科技大學學報,2008,29:3-5.
[3]西門子有限公司.西門子S7-200可編程控制器系統手冊[M].德國:西門子有限公司,1999.