孫 澤 劉利源 何治斌 王萌萌 徐飛翔
(大連海事大學輪機學院 遼寧 大連 116026)
輪機模擬器是應用計算機仿真技術和半實物仿真方法搭建的具有與實船相似的模擬操作平臺,在模擬設備上操作可以獲得與實船相近的設備響應過程,被廣泛地運用于輪機人員的操作培訓、考核發證、工程論證等領域[1]。輪機模擬器一般采用客戶端/服務器(C/S)模式[2],上位機仿真服務器運行輪機設備及系統的仿真模型,分布式處理單元(DPU)作為下位機設備通過以太網接收上位機的仿真數據,同時,DPU的操作數據經以太網上傳至仿真服務器驅動仿真模型的運算。DPU是輪機模擬器硬件平臺的核心組成部分,主要起到了控制、監視及輔助操作設備的作用[3]。
目前,針對輪機模擬器的不同仿真設備及系統,設計了不同的下位機通信板卡,且不同的下位機設備和上位機仿真模型之間的應用層通信協議不盡相同,增加了上位機仿真模型的開發難度。文獻[4]設計了萬箱船柴油發電機模擬控制面板,實現了模擬控制面板和柴油發電機仿真模型間的實時通信。文獻[5]針對分油機系統設計了分布式分油機仿真面板,取得了較好的效果。文獻[6]設計了一種油水分離器仿真模塊,能夠脫離上位機仿真模型,實現獨立仿真,同時還能與上位機仿真模型實時交互。但以上的仿真面板具有功能單一、通用性差、與仿真模型耦合度高等缺點,不適合在輪機模擬器的硬件平臺上廣泛使用。文獻[7]提出了分離型輪機模擬器仿真平臺,要求仿真模型和交互UI以及硬件交互耦合度要低。
DPU作為下位機設備,在分離型輪機模擬器中處于數據交互樞紐,既能接收上位機仿真模型的仿真數據,又能實時采集半實物仿真設備的相應的操作數據,實現上位機和下位機信息實時交互。下行仿真數據通過以太網傳輸至DPU的通信模塊,再由主控芯片進行協議解析,經數據調度優化,由外圍執行電路更新至指定半實物仿真設備;上行數據采集于半實物仿真設備,經DPU通過以太網傳輸至上位機仿真模型。
本文基于分離型輪機模擬器仿真平臺,設計一種通用型DPU,可實現與輪機模擬器的各個設備仿真模型間的實時交互,并且仿真數據交互采用統一的通信協議,具有通用性好、集成度高、耦合度低等優點。
在輪機系統仿真領域,輪機模擬器已經是一個成熟的產品,國內外比較知名的產品有挪威KONSBERG輪機模擬器、英國的TRANSAS輪機模擬器、大連海事大學的DMS-2015輪機模擬器[8]。輪機模擬器是采用數學建模對船舶輪機系統的設備、管網、系統間的邏輯關系、數值關系等以抽象化的數值形式進行描述。
分離型輪機模擬器是由仿真模型和硬件交互DPU兩部分組成,其結構如圖1所示。仿真模型和DPU相互隔開,硬件交互DPU與仿真模型通過以太網進行數據共享相連,這種結構可以有效降低硬件交互DPU和仿真模型的耦合度[9]。在分離型輪機模擬器的上位機仿真模型中,各個設備或系統均具有獨立的仿真模型,不同仿真模型間耦合度較低,并通過獨立的以太網IP地址與對應的下位機DPU實現數據交互,當一個模型發生故障時,其他仿真模型仍可正常工作,具有良好的可維護性;且當下位機DPU發生故障時,上位機運轉亦不受影響。

圖1 分離型輪機模擬器結構
仿真模型向DPU傳輸的仿真數據主要有指示燈的狀態、設備的啟動和停止、繼電器的斷/閉、儀表的顯示、電磁閥的開度等。DPU向上位機仿真模型端傳輸的信號或數據主要有開關、按鈕、附屬設備的啟動、儀表和車鐘信號(4~20 mA電流信號)、電位器信號(電阻信號)等。輪機模擬器的硬件交互DPU不僅能夠實現數據采集和數據輸出,而且還能實現過程控制,具備以太網的數據通信功能。
DPU硬件架構如圖2所示,主要由6個部分構成,分別為主控芯片模塊、32路數字量輸入DI模塊、32路數字量輸出DO模塊、8路4~20 mA電流模擬量輸入AI模塊、8路4~20 mA電流模擬量輸出AO模塊、以太網通信模塊。主控芯片是DPU的核心單元,它不僅要采集和處理輪機模擬器現場設備的數字量信號和模擬電流信號,而且要接收上位機仿真模型的仿真數據,并進行解析,以控制現場設備的顯示和相應操作。針對上述過程,需要主控芯片具有較快的運算速度才能對現場信號采集和相應的操作做出實時響應。本文選用ARM公司的STM32F767IGT6微處理器作為核心處理單元,它集成了數字信號處理指令、216 MHz時鐘頻率的浮點單元、1 MB Flash和512 KB SRAM[10]。
在DI通道電路設計時,充分考慮了輸出電壓值、電流大小、穩壓、隔離保護等因素后設計了32路DI通道,各通道在電路設計上是相同的,以其中一路為例,具體如圖3所示。光耦隔離LTV-357T具有單向傳遞、強共模抑制等優點,將24 V外部電路與5 V內部電路進行隔離,確保系統安全、信號可靠。雙向電平轉換芯片SN74LCV8T245DBQR實現3.3 V與5 V轉換,轉換后的3.3 V高電平或低電平被微處理器捕獲,實現了電氣隔離和電平的傳輸與轉換。考慮電路的輸出驅動能力和隔離保護后設計了32路DO通道,具體一路DO通道如圖4所示。信號放大器BSR606N可承受灌入電流高達2.3 A和60 V的電壓,實現功率放大、恒流、信號輸出流向的控制。

圖3 DI通道電路設計

圖4 DO通道電路設計
8路AI電路獨立設計,若一路通道損壞,對其他通道不會產生任何影響,確保了電路的可靠性和穩定性。其中一路AI通道電路設計如圖5所示。輸入4~20 mA標準電流信號,經150 Ω精密電阻轉化為0.6~3.0 V電壓,經低通濾波器,接入運算放大器OPA2277U,經同相比例運算放大1.1倍后輸出電壓0.66~3.3 V,并進行去耦處理。微處理器的GPIO口配置模擬量輸入模式,采集運算放大器輸出端的模擬電壓,然后通過微處理器內嵌的12位A/D轉換器,轉換為數字量保存于寄存器中,實現了電流模擬量信號轉數字信號功能。

圖5 AI通道電路設計
微處理器內嵌的D/A轉換器通道數量少、驅動能力較弱、處理精度低,不適合8路AO方案,因此,選用了AD公司的16位ADC芯片AD5676R來實現8路通道模擬量的輸出。AD5676R支持串行SPI總線,SPI的時鐘最高可達50 MHz,在SPI通信中,微處理器為主機,AD5676R為從機,實現通道號、數據、命令的傳輸通信。AD5676R輸出0~2.5 V電壓信號經2倍放大電路,由精密電阻轉為4~20 mA電流模擬量信號輸出。具體電路如圖6所示。

圖6 AO通道電路設計
以太網通信模塊,采用微處理器+W5500+網絡變壓器+RJ45的連接形式。W5500是一款嵌入式以太網控制器,其內部不僅集成了固件TCP/IP協議棧,支持TCP、UDP等協議,而且還內嵌了10/100M以太網數據鏈路層(DL)和物理子層(PHY),這兩個子層構成介質訪問控制層(MAC),在設計中只需要通過帶有網絡變壓器的RJ45就可以和Ethernet網實現連接[11]。此外,W5500內嵌了16 KB發送和16 KB接收的緩存區用于存放以太網數據包。
微處理器和W5500連接如圖7所示,W5500支持串行SPI總線與微處理器連接,此連接方式只需要4個通用輸入輸出口(GPIO)引腳便可實現數據通信。這4個GPIO引腳分別為從機選擇SCS、時鐘SCLK、主機輸出從機輸入MOSI、主機輸入從機輸出MISO。另外,還配置了一個GPIO作為W5500的復位引腳,一個外部中斷引腳來響應W5000的中斷。在SPI總線通信中,微處理器作為主機,W5500為從機,時鐘SCLK提供主機與從機同步節拍,主機通過MISO引腳實現數據的輸入,通過MOSI引腳實現數據的輸出,以完成數據的交換[12]。

圖7 微處理器和W5500連接
輪機模擬器的實時數據通信量較大,對數據幀傳送順序沒有要求,也不要求數據丟失重傳。運輸層中的TCP協議面向連接、提供可靠的傳輸服務并具有流量控制、超時重傳、失序處理等功能,但是協議首部太長、系統開銷大、不提供多播服務。UDP協議首部開銷小、傳輸效率高,在傳輸的可靠性方面,雖然不保證可靠交付,但可以對交付的數據進行校驗,保證可靠性可以滿足要求。因此,輪機模擬器和交互DPU數據傳輸采用簡單、效率高、實時性好、支持海量并發的UDP協議。
UDP數據幀格式如圖8所示。UDP數據幀頭部一共有3個字段,占8個字節,第一個字段是目標IP地址,存放目標仿真模型端的主機IP地址;第二字段是目標端口號,用于區分輪機設備的各仿真系統;第三個字段是應用層傳輸的有效數據長度。UDP數據包是上位機應用程序與交互DPU傳輸的有效數據,具體的規定如下:

圖8 UDP數據幀格式
1) 數據包頭部:上位機和下位機交互的起始字節規定為0XFE。
2) 數據包長度:上位機或下位機的應用層程序交付的UDP數據包的長度。
3) 功能碼:用于區分不同的功能。
4) 數據區:根據功能碼的不同,定義了不同的數據區,具體如表1所示。

表1 協議功能碼參照表
5) 數據包校驗值:
bxor=b1⊕b2⊕…⊕blen-2
(1)
式中:bxor表示對數據包的前len-2字節異或校驗的值;blen-2表示UDP數據包的第len-2字節;⊕表示異或校驗符號。
6) 數據包尾部:上位機和下位機交互的結束字節規定為0XFF。
以集成開發環境Keil5為軟件開發平臺,充分利用ST官方的固件庫,采用C語言編寫分布式處理單元的外設驅動程序和相應的應用程序。借鑒MVC軟件設計模式中的程序結構層次化、模塊獨立化、內部關聯簡潔化的原則,使軟件架構高內聚低耦合,以便于程序的后期維護、增強可讀性[10]。根據分布式處理單元的應用環境和系統任務,將其軟件部分分為通信層、數據層、任務層三層結構,并將三層結構分為通信驅動、數據解算、指令集、內存池、功能應用等五大主要模塊,各層之間、模塊之間的邏輯關系如圖9所示。

圖9 軟件總架構
通信層主要包含通信驅動模塊,其功能主要為:根據輪機模擬器仿真系統以太網通信傳輸協議,完成輪機模擬器上位機與下位機分布式處理單元的數據通信。通過以太網,實時接收上位機下行數據,經數據接口,將數據傳入數據層;經數據接口讀入數據層傳入的數據,再根據指令接口指令,實時發送下位機上行數據。通信層程序流程如圖10所示。

圖10 通信層程序流程
數據層主要由指令集、數據解算、內存池三大模塊構成。其中,指令集將讀取數據解算模塊傳入指令接口的指令碼,將數據發送、功能應用選擇、復位等指令傳入指令接口,使得通信層、任務層取得相應指令,以完成相應功能。數據解算模塊從數據接口讀入通信層、任務層需處理的數據,并將處理后上行數據或執行數據傳入數據接口,以供通信層和任務層根據指令進行數據調用。數據解算模塊將完成數據讀取與存放、協議解析與封裝、數據調制、內存池數據讀取與更新、數據匹配與校驗、指令碼產生與存放等。內存池則用于存放數據解算模塊產生的歷史數據,并通過I2C通信完成數據讀取和寫入。數據層程序流程如圖11所示。

圖11 數據層程序流程
任務層根據指令接口中的指令,從數據接口中調度數據進行輸出,或將采集的數據傳入數據接口中,以完成DO、DI、AI和AO任務。DO、DI任務中,32路輸出輸入的每一個通道都直接對應微處理器的一個GPIO口,DO通道均初始化為強推挽輸出,DI通道均初始化為輸入模式,通過外圍調制電路完成DO、DI功能。AO任務中,微處理器將輸出數據經SPI接口傳入D/A模塊,然后通過放大電路完成AO功能。AI任務中,8路采集通道利用微處理器STM32F767內嵌的A/D轉換模塊可實現規則組和注入組兩種采樣方式,本系統選用規則組采樣方式,通過外圍高精度運算放大電路完成模擬量采集。任務層功能應用程序流程如圖12所示。

圖12 功能應用程序流程
測試平臺由一臺工作站PC、測試軟件、分布式處理單元、一臺示波器,以及諸如通信模塊、繼電器模組、電流轉電壓檢測模塊等配件組成,如圖13所示。

圖13 測試平臺
據圖14可知,測試軟件以50 ms間隔值向DPU發送DO測試數據,DPU DO端口以平均周期為53 ms進行高低電平輸出,高電平為24 V,低電平為0 V;根據數據收發間隔值統計圖可知,測試軟件實際相鄰兩次數據發送間隔均值為53.49 ms,實際相鄰兩次數據接收間隔均值為53.45 ms,兩值近似相等,且與端口輸出周期較為接近;據圖15可知,DO測試時,每組數據從測試軟件發出到測試軟件接收到DPU應答的應答間隔約為13.97 ms。

圖14 DO示波圖與收發間隔值統計

圖15 DO發送與應答時間間隔值統計
進行DI采集時,DI采集信號為無源信號,調制電路將電路電位的高低變化反饋到微處理器的GPIO口,微處理器通過周期掃描的方式,對GPIO口的電位狀態進行信號采集,并將高電位映射為二進制0,低電位映射為二進制1,通過數據匹配對采集信號進行判斷,若采集信號發生變化,則將采集信號發往上位機。測試時,通過將發送間隔200 ms的DO數據發送至DPU,使其DO端口輸出電壓信號,驅動繼電器模組,以產生無源開關啟閉狀態,再將繼電器模組常開觸點接入DI信號采集端口,以實現DI功能測試,實驗結果如圖16和圖17所示。

圖16 測試軟件DI可視化界面

圖17 DI測試相鄰兩次收發間隔值比對
DI測試時,DO端口21-24號輸出的信號依次對應DI端口25-28號采集信號。圖16中反映出DI端口準確完成數字量采集;圖17反映出,測試軟件實際以212.65 ms的數據發送間隔均值,向DPU發送DO信號,并以213.21 ms的數據接收間隔均值接收到DI采集信號,兩者僅相差0.56 ms。
處理AO數據時,DPU將輸出4~20 mA電流信號,經255次連續增大完成。第256次數據到達時,通道輸出電流降為4 mA。因此,AO信號在示波器上的圖形為鋸齒波。由于示波器僅采集電壓變化波形,所以將AO輸出的電流流經20 Ω精密電阻R,通過觀察R兩端電壓的變化規律反映AO輸出的變化規律。測試時,測試軟件以發送數據間隔為28 ms,向DPU發送AO測試數據,若正確處理完AO數據,將返回所接收的數據,以應答測試軟件。測試結果如圖18和圖19所示。
據圖18可知,AO端口以平均周期為31.76 ms進行電流輸出,根據歐姆定律,電流變化范圍為4.4~20.8 mA,誤差處于正常范圍;根據數據收發間隔值統計圖可知,測試軟件實際相鄰兩次數據發送間隔均值為31.27 ms,相鄰兩次數據接收間隔均值為31.25 ms,兩值近似相等,且與端口輸出周期較為接近;據圖19可知,AO測試時,每組數組從測試軟件發出到測試軟件接收DPU應答的應答間隔約為3.47 ms。
AI采樣驅動程序充分考慮采樣精度、采樣周期、采樣數據的存儲因素后,經A/D轉換模組,采用連續50次充分采樣求平均的采樣方式,將4~20 mA的電流信號轉換為0~255的數字量信號,同時通過DMA(直接存儲器訪問)將各個通道采樣數據高速保存至程序數據接口,通過數據匹配,若采集信號發生變化,則將采集信號發往上位機。
AI測試時,測試軟件令5號AO端口輸出18.4 mA電流信號,對應數字量為230,由5號AI端口以一定周期采集信號,采集電流信號對應數字量為230。圖20中反映出AI端口準確完成模擬量采集;圖21反映出,測試軟件以17.82 ms的數據刷新間隔均值接收到AI采集信號,表明分布式處理單元以約0.36 ms的采樣周期完成模擬量信號采集。

圖21 AI測試數據刷新間隔值
首先將DPU安裝至“中海大西洋輪”輪機模擬器半實物仿真系統中,將DPU各功能模塊與半實物仿真模塊可靠連接;再通過以太網,將輪機模擬器二維、三維上位機仿真系統與下位機半實物仿真系統進行通信組網,并運行上位機。以半實物仿真系統中的集控臺3為例,實際運行效果如圖22-圖25所示。

圖22 DPU裝配圖與半實物集控臺3

圖23 集控臺3二維仿真界面

圖24 集控臺3三維仿真界面1

圖25 集控臺3三維仿真界面2
可以看出,半實物仿真系統中,集控臺3的1-9號模塊狀態均與上位機二維、三維仿真系統實現了同步。其中1-9號模塊分別為集控臺電源指示、輔鍋爐運行狀態指示、報警燈柱指示、舵機系統指示、輔鍋爐應急停止按鈕、空氣瓶壓力表、輔鍋爐和廢氣鍋爐蒸汽壓力與水位表、死人報警系統、空壓機遙控面板。
由于輪機模擬器仿真系統未實現收發數據可視化功能,因此采用以太網抓包軟件Wireshark作為第三方軟件,對通信數據可靠性與實時性進行分析,指定抓取集控臺3中裝配的兩塊IP分別為172.18.137.201、172.18.137.202的DPU、處于另一裝配點以實現AI的IP為172.18.137.207的DPU的以太網數據包,以及IP為172.18.137.31的上位機的以太網數據包,部分數據包解析如表2所示。完成DO、DI功能時,為提高傳輸效率,協議封裝時,對不具備控制效益的高字節數據進行省略、低字節數據進行保留,以便識別數字量輸出與采集的具體通道。

表2 實際應用中部分數據包解析表
由表2可知,DO和AO應答間隔時間分別為14.4 ms和3.6 ms,均與前述所測應答間隔時間較為接近。DI開關狀態變化最小間隔值為19 ms,小于前述所測DI周期變化間隔,即DPU已完成較快變化頻率的DI功能。AI數據刷新間隔約18 ms,與前述所測AI刷新間隔較為接近。且上位機與DPU之間的傳輸數據均正確反映集控臺3當前的運行狀態。
1) 本文通過分析DPU在輪機模擬器仿真系統中的功能,研究設計DPU的硬件架構和軟件架構,并完成DPU從硬件到軟件的開發,實現了輪機模擬器的分布式處理單元。
2) 通過對分布式處理單元各功能模塊進行實驗測試,驗證了本文所設計的分布式處理單元各功能模塊具有較好的可靠性與實時性。
3) 通過將DPU裝配至輪機模擬器的半實物仿真系統,實現了下位機半實物仿真系統與上位機二維、三維仿真系統信息的準確且實時同步。
4) 本文所設計的分布式處理單元具有較高通用性,可完成數字量的輸出和采集以及模擬量的輸出和采集,并統一了上位機與下位機之間的通信協議,解決了由于下位機設備繁多、下位機與上位機通信協議不統一,造成上位機仿真模型開發難度較大的難題。