劉 超,秦偉然,朱曉光
(上海船舶設(shè)備研究所,上海 200031)
現(xiàn)代船舶航向操縱系統(tǒng)通常由舵機(jī)、自動(dòng)操舵儀2部分組成。自動(dòng)操舵儀通過人工或者自動(dòng)的方式規(guī)劃出航向,實(shí)現(xiàn)船舶航向的“大閉環(huán)”控制。舵機(jī)則接受自動(dòng)操舵儀發(fā)出的舵角指令,實(shí)現(xiàn)舵角的“小閉環(huán)”控制。隨著信息技術(shù)的發(fā)展,現(xiàn)場總線技術(shù)被引入到船舶工業(yè)當(dāng)中,使得艦船自控技術(shù)獲得新發(fā)展[1]。與此同時(shí)冗余技術(shù)是增強(qiáng)系統(tǒng)可靠性的重要技術(shù),基于系統(tǒng)可靠性的要求,舵機(jī)控制系統(tǒng)中采用了CAN總線冗余和CPU軟冗余等技術(shù)。該技術(shù)的使用不僅實(shí)現(xiàn)了指令通信鏈路上的硬件冗余備份,還在滿足操舵實(shí)時(shí)性前提下較低成本地實(shí)現(xiàn)了控制器故障切換,使得舵機(jī)控制系統(tǒng)可靠性得到大幅度提高。
船舶航向操縱系統(tǒng)框圖見圖1,系統(tǒng)由2個(gè)閉環(huán)控制環(huán)節(jié)組成。船舶航向控制環(huán)節(jié)以指令航向、反饋航向?yàn)檩斎耄?dāng)因指令航向改變或受海浪和洋流等擾動(dòng)導(dǎo)致航向偏離時(shí),實(shí)際航向與指令航向產(chǎn)生偏差,該偏差信號(hào)經(jīng)航向控制器運(yùn)算后得出舵葉所需轉(zhuǎn)動(dòng)的角度。舵角位置控制環(huán)節(jié)將該角度值作為指令信號(hào),與實(shí)際舵角反饋值比較后,經(jīng)控制器運(yùn)算得出液壓系統(tǒng)控制參數(shù);液壓系統(tǒng)驅(qū)動(dòng)推舵機(jī)構(gòu)轉(zhuǎn)動(dòng),帶動(dòng)舵葉轉(zhuǎn)到所需的角度;最終將船舶航向控制到指令航向。
圖1 航向操縱系統(tǒng)框圖
舵機(jī)控制系統(tǒng)由伺服控制站及監(jiān)測站2部分組成,見圖2。伺服控制站與自動(dòng)操舵儀通過冗余CAN總線和硬線連接,接收操舵儀發(fā)出的操縱部位、備用手動(dòng)有效、機(jī)組啟停和舵角指令等信號(hào),并向操舵儀提供“機(jī)組備畢”和“機(jī)組運(yùn)行”等信號(hào)。伺服控制站采集反饋機(jī)構(gòu)發(fā)出的舵角反饋信號(hào),根據(jù)不同操縱指令的PID運(yùn)算后,向泵控比例閥輸出控制信號(hào),經(jīng)液壓系統(tǒng)能量轉(zhuǎn)換,推動(dòng)推舵機(jī)構(gòu)轉(zhuǎn)舵,最終完成舵角的閉環(huán)控制。監(jiān)測站完成機(jī)組狀態(tài)(壓力、油溫和液位等)信號(hào)的采集,根據(jù)事先設(shè)定的狀態(tài)閾值,判斷機(jī)組運(yùn)行狀態(tài)。監(jiān)測站與伺服站之間通過Ethernet網(wǎng)絡(luò)通信,在機(jī)組故障時(shí)發(fā)出聲光報(bào)警,同時(shí)觸發(fā)伺服控制站的安全保護(hù)機(jī)制(隔離旁通和機(jī)組切換等)。
圖2 控制系統(tǒng)組成圖
CAN總線是應(yīng)用于設(shè)備底層,直連現(xiàn)場各節(jié)點(diǎn)的串行通信總線。其采用的報(bào)文仲裁模式,可滿足網(wǎng)絡(luò)任意節(jié)點(diǎn)、任意時(shí)刻向其他節(jié)點(diǎn)發(fā)送信息。利用這一特點(diǎn),可以方便地構(gòu)成多機(jī)熱備份系統(tǒng),為實(shí)現(xiàn)系統(tǒng)自上而下,軟、硬件全面覆蓋的冗余通信架構(gòu)提供了技術(shù)支撐,大大提高了整個(gè)操舵系統(tǒng)的可靠性。
自動(dòng)操舵儀采用CAN接口設(shè)計(jì),向舵機(jī)系統(tǒng)提供的信號(hào)包括操舵舵角指令、操縱方式和操縱位置等操縱信號(hào);而舵機(jī)須向操舵儀實(shí)時(shí)反饋舵機(jī)工況,包括實(shí)際舵角、機(jī)組運(yùn)行情況及故障報(bào)警等信號(hào)。舵機(jī)PLC控制器由于硬件局限僅提供RS485接口,為實(shí)現(xiàn)自動(dòng)操舵儀與舵機(jī)之間的雙向互聯(lián)網(wǎng)絡(luò)拓?fù)?,?gòu)建了CAN通信模塊,其實(shí)現(xiàn)了舵角位置控制器與CAN 總線兩者之間的RS485-CAN接口橋接轉(zhuǎn)換。
雙冗余CAN通信系統(tǒng)結(jié)構(gòu)見圖3。自動(dòng)操舵儀與舵機(jī)系統(tǒng)分別作為雙冗余總線CAN1和CAN2上的2個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)賦值唯一的幀標(biāo)識(shí)符,每個(gè)節(jié)點(diǎn)根據(jù)接收到的標(biāo)識(shí)符來判斷是否處理該報(bào)文,并決定總線訪問競爭中報(bào)文享有的優(yōu)先級(jí)。
圖3 雙冗余CAN 通信系統(tǒng)結(jié)構(gòu)
自動(dòng)操舵儀與CAN 通信模塊之間依照CAN2.0B標(biāo)準(zhǔn)通信協(xié)議進(jìn)行冗余CAN總線通信;舵角位置控制器與CAN通信模塊之間采用雙冗余RS485接口進(jìn)行數(shù)據(jù)傳輸。另外,考慮到舵機(jī)PLC控制器的刷新率不夠高,利用CAN通信模塊內(nèi)部的AD轉(zhuǎn)換單元將舵角反饋信號(hào)(電壓信號(hào))進(jìn)行AD轉(zhuǎn)換為舵角度數(shù),通過內(nèi)部總線XBUS傳遞給MCU控制單元直接上傳CAN總線供操舵儀接收,從而提高了整個(gè)操舵系統(tǒng)的實(shí)時(shí)性。
CAN冗余結(jié)構(gòu)根據(jù)冗余等級(jí)通常可分為CAN總線收發(fā)器級(jí)冗余、控制器級(jí)冗余及CPU(CP341)級(jí)冗余,三者的硬件冗余等級(jí)逐漸遞增,其結(jié)構(gòu)形式見圖4。收發(fā)器級(jí)冗余是2條總線分成工作總線和備用總線,有主從之分。當(dāng)正在運(yùn)行的總線發(fā)生某種故障導(dǎo)致相關(guān)通信中斷時(shí),處于監(jiān)聽狀態(tài)的備用總線會(huì)自動(dòng)啟用,完成數(shù)據(jù)的發(fā)送;控制器級(jí)冗余是2條總線并行工作,不分主從,同時(shí)傳送數(shù)據(jù);當(dāng)其中某條總線發(fā)生故障,另一條總線仍會(huì)將數(shù)據(jù)送到目的地,保證系統(tǒng)相關(guān)功能正常進(jìn)行。
圖4 CAN 冗余結(jié)構(gòu)比較
CAN總線收發(fā)器級(jí)冗余中,CAN1、CAN2共用1塊CAN通信模塊(MCU),利用模塊內(nèi)部的軟件邏輯判斷實(shí)現(xiàn)總線故障檢測和冗余通路切換功能;從發(fā)生故障到故障被檢測出,再到完成切換這段時(shí)間,故障總線可能會(huì)丟失數(shù)據(jù),并且當(dāng)CAN通信模塊的MCU單元損壞時(shí),整個(gè)CAN鏈路將被損壞。制器級(jí)冗余中,兩路CAN通信模塊分別獨(dú)立地控制CAN收發(fā)器進(jìn)行數(shù)據(jù)的處理。
CPU級(jí)冗余是從CAN通信模塊到PLC通信模塊,自上而下地使整條鏈路實(shí)現(xiàn)硬冗余。無論是CAN總線收發(fā)器級(jí)冗余還是控制器級(jí)冗余,當(dāng)網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)生故障時(shí),這2種冗余方式均無法發(fā)揮任何作用[2]。而采用CPU級(jí)冗余,可更大程度地提高抵抗故障的能力,因此本文采用CPU級(jí)冗余結(jié)構(gòu)。
設(shè)計(jì)中控制器采用的是西門子PLC S7-300,該控制器具有大規(guī)模的程序存儲(chǔ)容量和數(shù)據(jù)結(jié)構(gòu),對(duì)二進(jìn)制和浮點(diǎn)數(shù)運(yùn)算具有較高處理能力[3],其高穩(wěn)定性能可以勝任舵機(jī)操作的可靠性要求。同時(shí)PLC與第三方串口通信采用可建立點(diǎn)對(duì)點(diǎn)連接的CP341通信處理器[4]。PLC控制器組態(tài)冗余CP341通信模塊建立ASCII協(xié)議通信,而后利用CAN通信模塊實(shí)現(xiàn)伺服控制器與CAN總線兩者之間的RS485-CAN接口橋接轉(zhuǎn)換。
RS485-1與RS485-2條鏈路也形成冗余關(guān)系,同時(shí)進(jìn)行收發(fā);在PLC中進(jìn)行冗余邏輯仲裁,選擇正確的通道數(shù)據(jù)參與舵角PID閉環(huán)控制運(yùn)算;且在接入CAN網(wǎng)時(shí),通信模塊會(huì)生成模塊狀態(tài)字。在PLC中根據(jù)模塊狀態(tài)位的變化來判斷RS485串口通信是否正常。當(dāng)通信鏈路正常時(shí),對(duì)接收數(shù)據(jù)進(jìn)行包頭校驗(yàn)、包尾校驗(yàn)、CRC校驗(yàn)無誤后,賦值給PLC的DB塊中參與PID控制運(yùn)算,仲裁邏輯流程圖見圖5。在通信鏈路全部失效時(shí),系統(tǒng)提供了模擬量自動(dòng)切換模式,將操舵儀的模擬量舵角指令以硬線方式傳輸?shù)蕉鏅C(jī)PLC的模擬量輸入模塊,接收處理后參與控制,提高了系統(tǒng)的可靠性。
圖5 PLC 冗余邏輯判斷流程圖
軟冗余是提高PLC控制系統(tǒng)可靠性的低成本解決方案。本文選用2個(gè)315-2DP處理器作為主、備系統(tǒng),同時(shí)包含2個(gè)電源模塊、1個(gè)有源總線背板、2個(gè)IM153-2接口模塊及若干I/O模塊。軟冗余系統(tǒng)工作時(shí),主、備控制系統(tǒng)獨(dú)立運(yùn)行,主系統(tǒng)的PLC掌握對(duì)ET200M從站的I/O控制權(quán),當(dāng)主系統(tǒng)中的任何一個(gè)組件出錯(cuò),控制任務(wù)會(huì)自動(dòng)切換到備用系統(tǒng)中[5]。網(wǎng)絡(luò)通信見圖6。
圖6 軟冗余硬件網(wǎng)絡(luò)通信圖
PLC1(主系統(tǒng):MPI設(shè)置為2)和PLC2(備系統(tǒng):MPI地址為3)通過MPI總線連接實(shí)現(xiàn)冗余數(shù)據(jù)的同步。2臺(tái)控制器設(shè)置相同的通信速率187.5 kbps;主、備系統(tǒng)通過PROFIBUS總線與帶有冗余IM 153-2接口模塊的ET200M從站通信。主、備系統(tǒng)設(shè)置PROFIBUS地址為2,從站PROFIBUS地址為4。
冗余系統(tǒng)工作時(shí),主系統(tǒng)運(yùn)行全部程序用戶程序,備用系統(tǒng)只允許非冗余用戶程序。因此,將重要功能(如:機(jī)組啟停和閉環(huán)控制等)放在冗余程序中,其余程序放在非冗余程序段中。軟件配置時(shí),在OB100中調(diào)用FC100'SWR_START'初始化功能塊,并定義系統(tǒng)運(yùn)行參數(shù),進(jìn)行軟冗余的初始化。在OB35中調(diào)用FB101'SWR_ZYK'數(shù)據(jù)同步功能塊,將主系統(tǒng)的冗余數(shù)據(jù)復(fù)制到備用系統(tǒng)中。 FB103'SWR_SFCCOM 內(nèi)部調(diào)用SFC65'X_SEND'和SFC66'X_RCV'功能塊,實(shí)現(xiàn)MPI網(wǎng)絡(luò)的數(shù)據(jù)同步。由于使用了SFC65和SFC66進(jìn)行數(shù)據(jù)同步,占用了CPU的2個(gè)“S7 basic communication”連接資源,因此,在組態(tài)中預(yù)留足夠資源,可保證同步鏈路的通信連接資源不受影響。
綜上所述,采用PLC軟冗余的舵機(jī)控制系統(tǒng),實(shí)現(xiàn)主、備系統(tǒng)故障切換功能;應(yīng)用冗余CAN總線技術(shù),有效提升了操舵系統(tǒng)的數(shù)字化和可靠性水平。由此可見,總線技術(shù)的開發(fā)已日臻成熟,為操舵系統(tǒng)的全系統(tǒng)壽命管理和專家系統(tǒng)的建立夯實(shí)基礎(chǔ)。