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