于 朝,王孫清,張 杰,鄭恒持,招 聰
(中國船舶科學研究中心,無錫214082)
通過探索、開發海洋,利用海洋資源解決我國人均資源不足、陸地資源枯竭的問題,成為21 世紀我國必須面對的挑戰。深潛器的研發,對于探索深海資源具有重要意義[1]。其中深潛器出入艙與調壓艙的艙口蓋啟閉機構是深潛器的關鍵部件之一[2],啟閉機構能否正常、及時動作,關系到整個深潛器中人員的生命安全。為實現對艙口蓋開關蓋過程的精確控制,提高控制系統的采樣頻率與控制精度具有重要意義[3]。
文獻[4]利用LabVIEW 軟件設計人機監控界面,實現數據顯示、異常檢測以及超限報警等功能。文獻[5]設計了一套基于LabVIEW 和PLC 的測控系統,實現對試驗臺的控制和數據采集。文獻[6]采用LabVIEW 和工業以太網開發了電能監控系統,具有人機交互靈活,通信可靠等優點。文獻[7]基于Matlab 中的XPC 實時系統,搭建硬件在環仿真平臺,可實時通信,且無數據丟失與延遲。文獻[8]基于XPC系統搭建無人機飛行控制系統,驗證了該系統實用有效、易于維護。文獻[9]基于XPC 系統搭建實時數據采集系統,驗證了該系統的可行性。
本文通過使用LabVIEW 和Matlab 完成深潛器艙口蓋控制系統的設計,保證深潛器執行任務過程中,能夠全程監測艙口蓋機構的運動狀態以及完成對該機構的實時控制,保證深潛器和工作人員的安全。
本控制系統的硬件組成如圖1 所示。

圖1 控制系統硬件組成Fig.1 Control system hardware composition
主要硬件選型有:
(1)深潛器艙口蓋啟閉裝置使用的傳感器主要包括壓力傳感器、流量傳感器、位移傳感器和接近開關。由于在水下進行試驗,故選擇帶水密變送器的傳感器,能夠實時檢測艙口蓋內壓力變化以及通過液壓缸伸縮位移來計算出艙口蓋的角度。將采集到的艙口蓋狀態信息通過信號調理箱調理轉化后輸入到工控機中,作為狀態量用于實時控制。
(2)信號調理箱主要將傳感器的4~20 mA 的電流信號轉化為2~10 V 的電壓信號,輸入到模擬量板卡中用于工控機控制;并將數字量板卡輸出的數字量信號進行功率放大,用來驅動電磁閥完成各項流程操作。通過信號調理箱,保證艙口蓋裝置硬件與控制系統之間的信號穩定交互。
(3)工控機、數字量輸入輸出板卡和模擬量輸入板卡均采用研華系列產品。工控機需要實時采集艙口蓋裝置狀態信息,并將控制系統的控制信號實時輸出用于實現艙口蓋裝置的控制,選擇型號為研華IPC-610。數字量輸入/輸出板卡選擇研華PCL-731 板卡,該板卡具有24 路輸入輸出接口,用于驅動電磁閥完成流程控制。模擬量輸入板卡選擇研華PCL-1716 板卡,該板卡具有8 路模擬量采集接口和16 路數字量輸出接口。通過工控機和數字量/模擬量板卡,實現對艙口蓋裝置硬件的狀態監測和實時控制。
控制系統軟件部分采用LabVIEW 與Matlab 聯合編寫,使用LabVIEW 編寫上位機監測軟件,使用Matlab/Simulink 模塊編寫下位機實時控制軟件,上位機與下位機實時通訊,方便用戶實時監測與控制,具體上下位機通訊方式如圖2 所示。

圖2 控制系統軟件原理圖Fig.2 Schematic diagram of control system software
上位機監測軟件運行于工業一體機中,安裝有LabVIEW 和Matlab 軟件,進行艙口蓋控制系統軟件編寫、調試和運行。下位機運行于工控機的XPC 實時內核中,完成控制軟件與艙口蓋裝置的硬件信息交互與控制。下位機實時控制軟件通過Matlab 的Simulink、狀態流和C 編寫,再使用Visual Studio 編譯生成dll 動態鏈接庫文件,LabVIEW 編寫的上位機監測軟件通過訪問dll 文件來實現與下位機的數據交換和控制信息的發布。下面對上下位機控制軟件的主要模塊的編程進行介紹。
首先介紹上下位機通訊模塊,該模塊主要用來完成LabVIEW 與Matlab/Simulink 的通訊與數據傳輸。整體的數據通訊原理如圖3 所示。
上位機監測軟件主要包括操作區、 報警顯示區、波形顯示區和系統運行狀態顯示區。下位機通過采集艙口蓋裝置的狀態信息,并經下位機編寫的控制軟件處理后輸出控制信號用于控制。上位機通過調用XPCAPI.DLL 數據庫完成對下位機數據的輸出與采集,上下位機數據通過TCP/IP 協議進行傳輸。上下位機通過數據交換完成艙口蓋裝置的實時監測與控制。

圖3 通訊模塊設計原理圖Fig.3 Communication module schematic diagram
其次,介紹操作命令發布模塊,該模塊主要用來發布下位機所需要的控制命令,保證系統流程正常運行,并設置系統參數,保證流程結束后能達到試驗所需要的模擬條件。操作區程序框圖如圖4 所示,本控制軟件為方便試驗進行,設計了手動、半自動和全自動3 種控制方式,可以方便試驗的進行。在程序框圖中我們可以看出參數的設置、控制命令的發布等都是將數值賦值到對應的全局變量中,然后通訊模塊通過對比比較全局變量的變化,在調用Matlab 的動態鏈接庫函數將相應的數值傳送到下位機中,下位機控制軟件通過數值的改變。

圖4 操作命令發布模塊Fig.4 Operation command release module
其次,介紹數字量輸入/輸出模塊,該模塊主要用來發布控制命令、設置系統參數以及采集艙口蓋裝置狀態量信息。本控制系統中,通過數字量輸出完成控制命令的發布,控制實驗流程的正常進行;設置系統參數,完成實驗環境的設置。通過數字量輸入,實現對實驗進度和相應傳感器信號的實時檢測。通過采集下位機數字量信息到全局變量,上位機監控軟件通過調用相應全局變量,顯示艙口蓋裝置各種狀態;控制量命令的發布通過改變相應全局變量的數值與下位機進行通訊。上位機編程的數字量輸入和輸出模塊如圖5 所示。

圖5 數字量輸入/輸出模塊Fig.5 Digital input/output module
最后,介紹模擬量采集與顯示模塊,該模塊主要對艙口蓋裝置中所使用的壓力傳感器、流量傳感器和位移傳感器進行采集與顯示。模擬量信號通過在下位機中通過PCI-1716 采集后,使用2 個Scope模塊進行雙波緩存傳輸,使得下位機采集的模擬量信號可以在上位機軟件中實時顯示。上位機中對從下位機采集的傳感器信號進行數組拆解顯示,并生成相應的曲線。傳感器信號顯示模塊如圖6 所示。
為了驗證深潛器艙口蓋裝置控制系統的作用,通過LabVIEW 與Matlab 聯合仿真實驗,驗證該控制系統的穩定性和實用性[10]。該艙口蓋裝置控制系統的上下位機編程如圖7 所示。

圖6 傳感器信號顯示模塊Fig.6 Sensor signal display module

圖7 艙口蓋裝置控制系統設計Fig.7 Design of control system for hatch cover device
下位機采用Matlab 編程,采樣時間設置為1 ms。通過上下位機響應時間測試,可知系統命令響應時間在70 ms 左右。從圖7 中可以看出,通過上位機程序,單擊相應控制按鈕,可以實現實驗裝置的啟動與緊急停止,并通過與下位機通訊完成對艙口蓋裝置的動作控制。對于壓力傳感器和位移傳感器數值可以通過傳感器表盤實時顯示。艙口蓋裝置實驗進度、流量計狀態和到位信息通過指示燈可以實時顯示。
艙口蓋控制系統基于Matlab 與LabVIEW 聯合編程的方式,實現了上位機與艙口蓋裝置的可靠實時高速通信。通過聯合調試,下位機數據刷新頻率為1 ms,上位機控制命令響應時間在70 ms 左右。基于Matlab 的XPC 實時控制核心,可保證下位機與艙口蓋裝置的實時通信。通過采用LabVIEW 編寫的上位機界面,實現了與下位機的快速通信并提供了良好的人機交互界面。通過上下位機聯合通訊,通過上位機完成艙口蓋裝置狀態監測與流程控制,通過下位機完成對艙口蓋裝置的硬件控制。軟件調試表明,上下位機可以正常通訊,通過上位機能夠實現對下位機的有效控制,并可以實時采集下位機信息,完成對艙口蓋裝置的狀態監測。