于 朝,王孫清,張 杰,鄭恒持,招 聰
(中國船舶科學研究中心,無錫214082)
通過探索、開發(fā)海洋,利用海洋資源解決我國人均資源不足、陸地資源枯竭的問題,成為21 世紀我國必須面對的挑戰(zhàn)。深潛器的研發(fā),對于探索深海資源具有重要意義[1]。其中深潛器出入艙與調(diào)壓艙的艙口蓋啟閉機構(gòu)是深潛器的關(guān)鍵部件之一[2],啟閉機構(gòu)能否正常、及時動作,關(guān)系到整個深潛器中人員的生命安全。為實現(xiàn)對艙口蓋開關(guān)蓋過程的精確控制,提高控制系統(tǒng)的采樣頻率與控制精度具有重要意義[3]。
文獻[4]利用LabVIEW 軟件設(shè)計人機監(jiān)控界面,實現(xiàn)數(shù)據(jù)顯示、異常檢測以及超限報警等功能。文獻[5]設(shè)計了一套基于LabVIEW 和PLC 的測控系統(tǒng),實現(xiàn)對試驗臺的控制和數(shù)據(jù)采集。文獻[6]采用LabVIEW 和工業(yè)以太網(wǎng)開發(fā)了電能監(jiān)控系統(tǒng),具有人機交互靈活,通信可靠等優(yōu)點。文獻[7]基于Matlab 中的XPC 實時系統(tǒng),搭建硬件在環(huán)仿真平臺,可實時通信,且無數(shù)據(jù)丟失與延遲。文獻[8]基于XPC系統(tǒng)搭建無人機飛行控制系統(tǒng),驗證了該系統(tǒng)實用有效、易于維護。文獻[9]基于XPC 系統(tǒng)搭建實時數(shù)據(jù)采集系統(tǒng),驗證了該系統(tǒng)的可行性。
本文通過使用LabVIEW 和Matlab 完成深潛器艙口蓋控制系統(tǒng)的設(shè)計,保證深潛器執(zhí)行任務(wù)過程中,能夠全程監(jiān)測艙口蓋機構(gòu)的運動狀態(tài)以及完成對該機構(gòu)的實時控制,保證深潛器和工作人員的安全。
本控制系統(tǒng)的硬件組成如圖1 所示。
圖1 控制系統(tǒng)硬件組成Fig.1 Control system hardware composition
主要硬件選型有:
(1)深潛器艙口蓋啟閉裝置使用的傳感器主要包括壓力傳感器、流量傳感器、位移傳感器和接近開關(guān)。由于在水下進行試驗,故選擇帶水密變送器的傳感器,能夠?qū)崟r檢測艙口蓋內(nèi)壓力變化以及通過液壓缸伸縮位移來計算出艙口蓋的角度。將采集到的艙口蓋狀態(tài)信息通過信號調(diào)理箱調(diào)理轉(zhuǎn)化后輸入到工控機中,作為狀態(tài)量用于實時控制。
(2)信號調(diào)理箱主要將傳感器的4~20 mA 的電流信號轉(zhuǎn)化為2~10 V 的電壓信號,輸入到模擬量板卡中用于工控機控制;并將數(shù)字量板卡輸出的數(shù)字量信號進行功率放大,用來驅(qū)動電磁閥完成各項流程操作。通過信號調(diào)理箱,保證艙口蓋裝置硬件與控制系統(tǒng)之間的信號穩(wěn)定交互。
(3)工控機、數(shù)字量輸入輸出板卡和模擬量輸入板卡均采用研華系列產(chǎn)品。工控機需要實時采集艙口蓋裝置狀態(tài)信息,并將控制系統(tǒng)的控制信號實時輸出用于實現(xiàn)艙口蓋裝置的控制,選擇型號為研華IPC-610。數(shù)字量輸入/輸出板卡選擇研華PCL-731 板卡,該板卡具有24 路輸入輸出接口,用于驅(qū)動電磁閥完成流程控制。模擬量輸入板卡選擇研華PCL-1716 板卡,該板卡具有8 路模擬量采集接口和16 路數(shù)字量輸出接口。通過工控機和數(shù)字量/模擬量板卡,實現(xiàn)對艙口蓋裝置硬件的狀態(tài)監(jiān)測和實時控制。
控制系統(tǒng)軟件部分采用LabVIEW 與Matlab 聯(lián)合編寫,使用LabVIEW 編寫上位機監(jiān)測軟件,使用Matlab/Simulink 模塊編寫下位機實時控制軟件,上位機與下位機實時通訊,方便用戶實時監(jiān)測與控制,具體上下位機通訊方式如圖2 所示。
圖2 控制系統(tǒng)軟件原理圖Fig.2 Schematic diagram of control system software
上位機監(jiān)測軟件運行于工業(yè)一體機中,安裝有LabVIEW 和Matlab 軟件,進行艙口蓋控制系統(tǒng)軟件編寫、調(diào)試和運行。下位機運行于工控機的XPC 實時內(nèi)核中,完成控制軟件與艙口蓋裝置的硬件信息交互與控制。下位機實時控制軟件通過Matlab 的Simulink、狀態(tài)流和C 編寫,再使用Visual Studio 編譯生成dll 動態(tài)鏈接庫文件,LabVIEW 編寫的上位機監(jiān)測軟件通過訪問dll 文件來實現(xiàn)與下位機的數(shù)據(jù)交換和控制信息的發(fā)布。下面對上下位機控制軟件的主要模塊的編程進行介紹。
首先介紹上下位機通訊模塊,該模塊主要用來完成LabVIEW 與Matlab/Simulink 的通訊與數(shù)據(jù)傳輸。整體的數(shù)據(jù)通訊原理如圖3 所示。
上位機監(jiān)測軟件主要包括操作區(qū)、 報警顯示區(qū)、波形顯示區(qū)和系統(tǒng)運行狀態(tài)顯示區(qū)。下位機通過采集艙口蓋裝置的狀態(tài)信息,并經(jīng)下位機編寫的控制軟件處理后輸出控制信號用于控制。上位機通過調(diào)用XPCAPI.DLL 數(shù)據(jù)庫完成對下位機數(shù)據(jù)的輸出與采集,上下位機數(shù)據(jù)通過TCP/IP 協(xié)議進行傳輸。上下位機通過數(shù)據(jù)交換完成艙口蓋裝置的實時監(jiān)測與控制。
圖3 通訊模塊設(shè)計原理圖Fig.3 Communication module schematic diagram
其次,介紹操作命令發(fā)布模塊,該模塊主要用來發(fā)布下位機所需要的控制命令,保證系統(tǒng)流程正常運行,并設(shè)置系統(tǒng)參數(shù),保證流程結(jié)束后能達到試驗所需要的模擬條件。操作區(qū)程序框圖如圖4 所示,本控制軟件為方便試驗進行,設(shè)計了手動、半自動和全自動3 種控制方式,可以方便試驗的進行。在程序框圖中我們可以看出參數(shù)的設(shè)置、控制命令的發(fā)布等都是將數(shù)值賦值到對應(yīng)的全局變量中,然后通訊模塊通過對比比較全局變量的變化,在調(diào)用Matlab 的動態(tài)鏈接庫函數(shù)將相應(yīng)的數(shù)值傳送到下位機中,下位機控制軟件通過數(shù)值的改變。
圖4 操作命令發(fā)布模塊Fig.4 Operation command release module
其次,介紹數(shù)字量輸入/輸出模塊,該模塊主要用來發(fā)布控制命令、設(shè)置系統(tǒng)參數(shù)以及采集艙口蓋裝置狀態(tài)量信息。本控制系統(tǒng)中,通過數(shù)字量輸出完成控制命令的發(fā)布,控制實驗流程的正常進行;設(shè)置系統(tǒng)參數(shù),完成實驗環(huán)境的設(shè)置。通過數(shù)字量輸入,實現(xiàn)對實驗進度和相應(yīng)傳感器信號的實時檢測。通過采集下位機數(shù)字量信息到全局變量,上位機監(jiān)控軟件通過調(diào)用相應(yīng)全局變量,顯示艙口蓋裝置各種狀態(tài);控制量命令的發(fā)布通過改變相應(yīng)全局變量的數(shù)值與下位機進行通訊。上位機編程的數(shù)字量輸入和輸出模塊如圖5 所示。
圖5 數(shù)字量輸入/輸出模塊Fig.5 Digital input/output module
最后,介紹模擬量采集與顯示模塊,該模塊主要對艙口蓋裝置中所使用的壓力傳感器、流量傳感器和位移傳感器進行采集與顯示。模擬量信號通過在下位機中通過PCI-1716 采集后,使用2 個Scope模塊進行雙波緩存?zhèn)鬏敚沟孟挛粰C采集的模擬量信號可以在上位機軟件中實時顯示。上位機中對從下位機采集的傳感器信號進行數(shù)組拆解顯示,并生成相應(yīng)的曲線。傳感器信號顯示模塊如圖6 所示。
為了驗證深潛器艙口蓋裝置控制系統(tǒng)的作用,通過LabVIEW 與Matlab 聯(lián)合仿真實驗,驗證該控制系統(tǒng)的穩(wěn)定性和實用性[10]。該艙口蓋裝置控制系統(tǒng)的上下位機編程如圖7 所示。
圖6 傳感器信號顯示模塊Fig.6 Sensor signal display module
圖7 艙口蓋裝置控制系統(tǒng)設(shè)計Fig.7 Design of control system for hatch cover device
下位機采用Matlab 編程,采樣時間設(shè)置為1 ms。通過上下位機響應(yīng)時間測試,可知系統(tǒng)命令響應(yīng)時間在70 ms 左右。從圖7 中可以看出,通過上位機程序,單擊相應(yīng)控制按鈕,可以實現(xiàn)實驗裝置的啟動與緊急停止,并通過與下位機通訊完成對艙口蓋裝置的動作控制。對于壓力傳感器和位移傳感器數(shù)值可以通過傳感器表盤實時顯示。艙口蓋裝置實驗進度、流量計狀態(tài)和到位信息通過指示燈可以實時顯示。
艙口蓋控制系統(tǒng)基于Matlab 與LabVIEW 聯(lián)合編程的方式,實現(xiàn)了上位機與艙口蓋裝置的可靠實時高速通信。通過聯(lián)合調(diào)試,下位機數(shù)據(jù)刷新頻率為1 ms,上位機控制命令響應(yīng)時間在70 ms 左右?;贛atlab 的XPC 實時控制核心,可保證下位機與艙口蓋裝置的實時通信。通過采用LabVIEW 編寫的上位機界面,實現(xiàn)了與下位機的快速通信并提供了良好的人機交互界面。通過上下位機聯(lián)合通訊,通過上位機完成艙口蓋裝置狀態(tài)監(jiān)測與流程控制,通過下位機完成對艙口蓋裝置的硬件控制。軟件調(diào)試表明,上下位機可以正常通訊,通過上位機能夠?qū)崿F(xiàn)對下位機的有效控制,并可以實時采集下位機信息,完成對艙口蓋裝置的狀態(tài)監(jiān)測。