文獻標識碼: A
文章編號: 0258-7998(2013)10-0022-03
節能減排是當今的一個熱點,LNG(液化天然氣)由于其高效節能、污染小的特點越來越受到重視。許多船舶廠開始將傳統的柴油船改造成柴油和LNG雙燃料船。為了更好地對雙燃料船進行燃料管理,特別是當需要分析雙燃料船的節能比以及了解船舶的燃料安全狀態時,就需要對船舶的燃料使用情況和安全狀態進行及時的獲取和監控。
傳統的船舶燃料管理依賴于人工,無法自動和實時地對船舶的燃料信息進行采集和監管,而且船岸通信往往依賴于船舶的衛星通信系統,一般以郵件的方式進行數據交換,信息交互缺乏靈活性。
ARM作為嵌入式的主流核心架構,具有高速度、高精度和智能化等優點,逐漸取代了單片機技術,占據了絕大部分市場。在工業控制、移動設備、智能儀表、信息家電和網絡通信等領域有廣泛的應用[1-3]。3G網絡由于其高帶寬和網絡接入靈活的特點,越來越廣泛地應用于工業數據傳輸中[4]。本文基于ARM嵌入式終端和3G傳輸網絡,設計了一個船舶燃料管理系統,并在新式雙燃料船上成功應用。本文重點介紹系統船舶端的軟硬件設計。
1 系統總體介紹
1.1 系統結構
船舶燃料管理系統分為監控中心端和船舶端,監控中心端可以對在江面作業的多條船舶進行管理。
船舶端包含ARM11嵌入式終端、網絡硬盤錄像機和3G路由器,監控中心端包含VPN服務器和監控主機,其中監控主機連接本地數據庫。系統的主要功能是利用ARM終端進行燃料信息的采集和發送,監控中心端接收顯示船舶端發送來的船舶燃料信息,并將信息存儲于數據庫以便后續的分析處理,同時,監控中心能夠瀏覽船舶現場的視頻信息。
1.2 系統通信方案
系統采用VPN與電信3G網絡相結合的通信方案。通過在監控中心端搭建VPN服務器,就可以讓船舶端遠程連接到監控中心的內部網絡,同時也保證了傳輸數據的安全性。船舶端傳送的每路監控視頻的碼率為32 kb/s~2 048 kb/s,傳送的燃料數據信息碼率相對較低。考慮到傳輸數據量的大小,本系統采用電信3G網絡作為視頻和燃料數據的傳輸網絡,其最大上行速率達1.8 Mb/s,在對視頻的畫質要求不是特別高的情況下,可以滿足船舶燃料數據和1~4路船舶現場視頻的傳輸帶寬要求。
2 系統硬件設計
ARM終端以S3C6410處理器為硬件基礎,移植嵌入式Linux系統為軟件平臺,利用終端的RS232口對燃油和LNG二次儀表進行讀取,通過ARM終端的與船舶報警繼電器相連的GPIO口的狀態來獲取燃料的安全狀態,并通過3G路由器內置的GPS傳感器來獲得船舶的位置信息,最后將采集的數據信息通過3G網絡打包發送到監控中心。
根據船舶的燃料儀表設計,有一個LNG儀表和2個燃油儀表要讀取,儀表接口為RS485接口。本設計通過RS485轉RS232連接線將儀表與ARM終端進行連接,將ARM終端的3個GPIO口分別連接船舶上的火災、燃油和LNG異常報警繼電器,通過GPIO口的電平狀態來判定報警繼電器的開關狀態,從而確定是否有報警被觸發。船舶端軟硬件架構和硬件框圖分別如圖1和圖2所示。
將架設在船舶上的網絡硬盤錄像機作為視頻服務器,采集并存儲船舶上攝像頭的視頻信息,這樣,監控中心就可以通過訪問視頻服務器來實時預覽或回放船舶端的現場視頻。
3 系統軟件設計
船舶ARM終端需要完成的具體功能包括船舶的瞬時和累計柴油消耗量、瞬時和累計LNG消耗量、燃料和火災的報警狀態、GPS位置信息的采集,將采集的信息打包發送,以及接收和處理監控中心端發送來的指令等。在采集信息和打包發送數據的同時,有可能需要接收和處理監控中心端的指令。由于系統功能的多任務性,軟件采用了基于多線程的設計方式,將各個功能分線程來實現。船舶ARM終端軟件采用QT2.2[5]進行設計,并運行于嵌入式Linux系統上。
3.1 配置表
配置表位于ARM終端文件系統中,主要用于保存船舶的設備信息和網絡配置信息等。ARM終端初始化時,軟件會從配置表里讀取船舶的基本信息(如船名、ID號、各串口的波特率)以及ARM終端的網絡信息(如本機IP地址、監控中心端IP地址等)。
利用ARM終端配置telnet服務器,監控中心端可以通過telnet方式遠程登錄ARM終端來修改配置表,從而修改船舶端的配置。這樣的方式為系統調試和維護提供了極大的靈活性和便利性。
3.2 讀取LNG儀表和燃油儀表
本設計通過RS485接口連接多個LNG儀表和燃油表,通過設置不同的儀表地址來區分不同的儀表。
ARM終端軟件通過串口讀取儀表數據。軟件中串口以非阻塞、可讀寫方式打開。如果是以阻塞方式打開,當讀取出現故障時會導致讀取線程卡死。為了正確讀取數據,必須保證ARM終端的串口屬性與儀表串口的屬性一致,因此需要設置終端串口的屬性,如數據位、奇偶校驗位、停止位和串口波特率等,串口屬性可以在配置表中讀取。串口打開后定時地發送和讀取串口數據,從而實現對儀表燃料信息的讀取。
3.2.1 讀取LNG儀表
LNG儀表與ARM終端之間的通信以ASCII碼的十六進制方式來實現。讀取累計耗量和瞬時耗量的命令如表1所示,其中#為定界符;AA代表儀表的地址,地址為01~99。儀表設置的地址必須與讀取命令中的儀表地址一致。
以讀取累計值為例,將儀表的地址設為01,則讀取命令為#01。將命令加上2位校驗核來防止誤碼,再加上結束符(回車符),最后從串口發送出去。命令發送后,地址為01的儀表會返回所讀取的值,將返回值進行校驗后去除校驗核和結束符,再進行碼值轉換后得到實際要讀取的值。讀取完成后,將讀取出來的值顯示到嵌入式終端屏幕上并放入發送數據包的相應位置中進行打包。讀取LNG儀表串口的流程如圖3所示。
3.2.2 讀取燃油儀表
燃油儀表采用Modbus通信協議進行通信,通過讀取儀表的寄存器來獲得累計耗量和瞬時耗量。燃油儀表中的累計流量值和瞬時流量值存放在01~06共6個保持寄存器中,Modbus協議相應的讀取保持寄存器的命令格式如表2所示。將2塊燃油儀表的地址設置成不同值進行區分。發送命令前將待發送的命令數據進行CRC運算,將得出的2 B的CRC校驗碼加到發送命令的末尾一并發送出去。儀表會對發送命令進行校驗并丟棄校驗有誤的命令。將儀表返回值進行CRC校驗以確定返回值的正確性。最后將返回的累計耗量和瞬時耗量顯示到終端屏幕上并放入發送數據包的相應位置中。讀取燃油儀表串口的流程與LNG儀表類似。
3.3 讀取報警信息
報警線程通過讀取ARM終端3個GPIO口的狀態來判定報警繼電器的開關狀態,3個繼電器的開關狀態分別代表了燃油、火災、LNG的告警狀態。
設計中將這3個GPIO口的操作接口編譯為一個驅動模塊,并在Linux系統啟動時將驅動模塊加載進內核,這樣就可以將這3個GPIO口當作一個設備來操作。將GPIO口設置為CFG_IN方式,通過讀取GPIO口的pin值就可以判斷相應繼電器的開合狀態。
正常狀態下,繼電器處于斷開狀態,如果有告警發生,則相應的繼電器會被觸發閉合,對應的GPIO口電平會被拉高,pin值變為非0。相應的報警號會被置位并寫入發送數據包中。由于有3個報警需要讀取,每個報警的正常和異常狀態可以分別用0和1表示,所以用0~7這8個報警號就可以表示各種報警組合狀態。
3.4 讀取GPS信息
系統采用的3G路由器內置GPS模塊,它能獲取船舶所在位置的經緯度信息和精確的UTC時間信息,并能通過網口輸出。ARM終端軟件通過UDP方式來獲取3G路由器輸出的GPS信息,將信息中的經度、緯度和UTC時間解析出來,并將UTC時間轉換為北京時間,最后放入發送數據包中。
3.5 燃料數據傳輸
當燃料數據采集好以后,就可以將其打包發送到監控中心。燃料數據的發送格式為:船名/船舶ID號/瞬時LNG流量/瞬時燃油流量/累計LNG耗量/累計燃油耗量/報警號/日期時間/經度/緯度/$,用“/”作為兩個數據之間的分隔符,用“$”作為一個數據包的結束符。各分量用字符串表示。
船舶端與監控中心端之間通過TCP方式進行數據傳輸。船舶端接收監控中心發送的命令,并據此確認采集發送燃料信息的間隔時間。為確保網絡連通的穩定性,船舶端每隔5 min向監控中心發送一個特定的連接標志信息“@”,當連續3次發送連接標志信息或燃料信息失敗時,軟件就重新連接監控中心。船舶端與監控中心數據傳輸的流程如圖4所示。
3.6 看門狗線程
船舶內工作環境復雜,可能會對設備的正常運行造成影響。為確保ARM終端設備始終處于運行狀態,系統利用終端S3C6410處理器內部的看門狗對嵌入式終端的運行狀態進行檢測。通過軟件開啟看門狗并設置喂狗超時時間為15 s,一旦看門狗在喂狗超時時間內沒有收到喂狗信號,就復位重啟ARM終端設備,這樣就保證了船舶端的ARM終端始終處于運行狀態。
4 系統測試
在監控中心搭建VPN服務器,并在電信3G網絡環境下對系統進行測試。
首先配置好船舶端3G路由器并連入3G網絡,將船舶ARM終端的數據接收地址設置為監控主機的IP并連接3G路由器,當ARM終端軟件連接上監控主機的管理軟件后即可進行數據傳輸。通過監控端軟件連接船舶的網絡硬盤錄像機,還可以瀏覽船舶上的4路現場視頻。在視頻格式為CIF格式、視頻幀率為25 f/s的條件下進行測試,畫質清晰流暢,能達到較好的監控效果。圖5為監控端軟件中的船舶燃料信息。
本文針對船舶管理中心對江面作業的雙燃料船的燃料管理需要,設計了一個船舶燃料管理系統,采用ARM實現了對雙燃料船的燃料使用情況和燃料安全狀態的采集。通過結合3G網絡和VPN技術,解決了船舶中心與船舶遠距離通信的問題,并通過船舶端的視頻服務器實現了對船舶現場情況的監控。測試表明,系統穩定可靠,達到了預期效果。本系統還可以在集成度和功能擴展方面做進一步的改進與提升。
參考文獻
[1] 王勇,張浩,彭道剛,等.ARM平臺在多功能數據采集系統中的設計與實現[J].自動化儀表,2010,31(1):13-16.
[2] 張華,吳欣,王大星.基于ARM7的SD卡讀寫控制在數據采集系統中的應用[J].電子技術應用,2009,35(7):38-41.
[3] 張芳,許學忠,梁建斌,等.基于ARM的嵌入式直升機目標識別系統[J].電子技術應用,2009,35(4):31-32.
[4] 李建文,章堅武.基于CDMA2000-VPDN的視頻監控系統設計[J].單片機與嵌入式系統應用,2011(8):62-65.
[5] 賀青,李鵬飛.基于Qt的電腦橫機上位機的設計[J].微型機與應用,2012,31(19):16-19.