龐 林, 陳 亮
(上海船舶運(yùn)輸科學(xué)研究所 民品分所,上海200135)
船舶遠(yuǎn)程監(jiān)控是先進(jìn)的船岸數(shù)據(jù)交互技術(shù),它的出現(xiàn)順應(yīng)了企業(yè)船舶設(shè)備逐漸增多、生產(chǎn)規(guī)模日益擴(kuò)大、管理要求不斷升級的現(xiàn)狀,實(shí)現(xiàn)了及時(shí)了解和監(jiān)控船舶設(shè)備的運(yùn)行狀態(tài),有效掌握和控制施工狀況,提高經(jīng)營生產(chǎn)的決策效率和質(zhì)量,提升了企業(yè)信息化管理水平。
隨著船舶動力裝置的大型化、自動化、高速化和復(fù)雜化程度不斷提高,故障診斷和維修難度日益加大。船舶航行期間難以獲得及時(shí)的故障診斷和強(qiáng)有力的技術(shù)支持,許多復(fù)雜的實(shí)際問題,依靠船上人員自身的力量,往往難以解決。因而,如何保持船舶動力裝置的可靠性和預(yù)定的營運(yùn)功能,是當(dāng)前急需解決的問題。隨著維修技術(shù)、通信技術(shù)和計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展,集合各方力量,建立基于網(wǎng)絡(luò)的遠(yuǎn)程監(jiān)測、維護(hù)與故障診斷系統(tǒng),使得船舶動力裝置在運(yùn)行的同時(shí)兼顧監(jiān)測、診斷和維護(hù)功能,以保證船舶動力裝置可靠地運(yùn)行。
20世紀(jì)90年代以前,船舶的監(jiān)控系統(tǒng)大多為單船封閉系統(tǒng),系統(tǒng)經(jīng)歷了集中型監(jiān)控系統(tǒng)、集散型監(jiān)控系統(tǒng)和分布式現(xiàn)場總線控制系統(tǒng)等發(fā)展階段。雖然監(jiān)控系統(tǒng)的逐步完善提高了船舶運(yùn)行的可靠性和經(jīng)濟(jì)效益,同時(shí)也降低了船員的勞動強(qiáng)度,但仍無法滿足與陸地公司實(shí)時(shí)的互通信息,公司無法有效地獲得航行船舶的運(yùn)行狀態(tài)。
近年來隨著衛(wèi)星通信技術(shù)、計(jì)算機(jī)技術(shù)、互聯(lián)網(wǎng)技術(shù)的發(fā)展,在激烈的市場競爭中,以計(jì)算機(jī)技術(shù)和通信技術(shù)為代表的信息化技術(shù)已經(jīng)成為航運(yùn)企業(yè)賴以生存和發(fā)展的必備條件,但是高額的衛(wèi)星通信費(fèi)用制約了船岸數(shù)據(jù)通信的推廣。設(shè)計(jì)的船舶遠(yuǎn)程監(jiān)控系統(tǒng)在利用網(wǎng)絡(luò)技術(shù)實(shí)現(xiàn)船岸數(shù)據(jù)通信的同時(shí),利用2次壓縮技術(shù),最大程度地節(jié)約了通信成本。
1.面向服務(wù)。一方面通過系統(tǒng)本身功能將船舶運(yùn)行數(shù)據(jù),如機(jī)艙監(jiān)測報(bào)警系統(tǒng)、全球定位系統(tǒng)(Global Positioning System,GPS)、船舶自動識別系統(tǒng)(Auto matic Identification Syste m,AIS)等采集后統(tǒng)一處理;另一方面向管理者和用戶提供所需的信息服務(wù)。
2.強(qiáng)化管理。按需求將全部數(shù)據(jù)或選擇部分?jǐn)?shù)據(jù)通過衛(wèi)星通信定時(shí)自動上傳至公司端,公司端下載數(shù)據(jù)后,通過公司端軟件進(jìn)行數(shù)據(jù)回放及動態(tài)分析,保證了公司對航行中船只或船隊(duì)的監(jiān)管。
3.方便使用。軟件設(shè)計(jì)中體現(xiàn)了人性化的設(shè)計(jì)理念,界面簡潔清晰,易于操作。
4.結(jié)構(gòu)科學(xué)。軟件的系統(tǒng)架構(gòu)采用多種開發(fā)語言,設(shè)計(jì)科學(xué)、高效,充分考慮到各使用端的實(shí)際情況。另外采用了數(shù)據(jù)2次壓縮,最大程度地節(jié)約通信成本。
5.擴(kuò)展靈活。滿足了船舶動力裝置的大型化、自動化、高速化和復(fù)雜化的需要。在船端數(shù)據(jù)采集上,可方便地收集數(shù)據(jù)統(tǒng)一處理;岸端通過軟件對采集的數(shù)據(jù)進(jìn)行分析,并可用多種形式回放。
船舶遠(yuǎn)程監(jiān)控系統(tǒng)以船舶動力裝置為研究對象,主要由船載系統(tǒng)(船舶端)和岸基系統(tǒng)(公司端)兩方面組成,并通過海事衛(wèi)星進(jìn)行數(shù)據(jù)交換(見圖1)。
圖1 船舶遠(yuǎn)程監(jiān)控系統(tǒng)架構(gòu)
船舶端的主要功能是采集船上的主要數(shù)據(jù)并統(tǒng)一進(jìn)行數(shù)據(jù)綜合處理,而后通過網(wǎng)絡(luò)技術(shù)將壓縮后的數(shù)據(jù)包發(fā)送至公司的服務(wù)器端。
4.1.1 數(shù)據(jù)采集
系統(tǒng)通過網(wǎng)關(guān),采集機(jī)艙監(jiān)測報(bào)警系統(tǒng)和GPS或AIS系統(tǒng)的當(dāng)前數(shù)據(jù)(可根據(jù)實(shí)際需要選擇全部或者部分測點(diǎn))。機(jī)艙監(jiān)測報(bào)警系統(tǒng)的數(shù)據(jù)包含歷史報(bào)警、消警、報(bào)警抑制、傳感器故障等。除以上采集的數(shù)據(jù)外,系統(tǒng)還可以根據(jù)客戶的要求,采集船舶定位數(shù)據(jù)、施工數(shù)據(jù)、工況參數(shù)、文件報(bào)表等各類信息(見圖2)。
4.1.2 數(shù)據(jù)綜合處理
數(shù)據(jù)綜合處理模塊將采集的數(shù)據(jù)按照統(tǒng)一的格式進(jìn)行處理(主要是數(shù)據(jù)的有效性檢查、數(shù)據(jù)的格式統(tǒng)一、異常數(shù)據(jù)檢驗(yàn),并添加當(dāng)前的時(shí)間和設(shè)定的船名生成數(shù)據(jù)包,以便公司端系統(tǒng)應(yīng)用)。船端數(shù)據(jù)包有兩種形式:
(1)由基礎(chǔ)數(shù)據(jù)組成的基礎(chǔ)數(shù)據(jù)數(shù)據(jù)包,架構(gòu)見圖3;
(2)由實(shí)時(shí)數(shù)據(jù)和報(bào)警數(shù)據(jù)組成的動態(tài)數(shù)據(jù)數(shù)據(jù)包,架構(gòu)見圖4。
圖2 船舶遠(yuǎn)程監(jiān)控系統(tǒng)數(shù)據(jù)采集示意圖
圖3 基礎(chǔ)數(shù)據(jù)數(shù)據(jù)包架構(gòu)
圖4 動態(tài)數(shù)據(jù)數(shù)據(jù)包架構(gòu)
圖3 中:Data表屬列表型數(shù)據(jù),直接生成sqlite數(shù)據(jù)表;Menu表存儲為Bl ob數(shù)據(jù),便于還原時(shí)加入字符編碼進(jìn)行轉(zhuǎn)換,解決船岸不同操作系統(tǒng)字符編碼不統(tǒng)一的問題;Mi mic表則將Windows標(biāo)準(zhǔn)圖像格式圖像(Bit map,BMP)轉(zhuǎn)換為流式網(wǎng)絡(luò)圖形格式(Portable Net wor k Graphic For mat,PNG),再以Blob數(shù)據(jù)類型存入數(shù)據(jù)表。
4.1.3 數(shù)據(jù)傳輸模塊
系統(tǒng)在完成了一系列數(shù)據(jù)采集和處理后,將數(shù)據(jù)包通過郵件系統(tǒng)發(fā)送至公司端(通信終端主要采用衛(wèi)星通信F站、B站、M站等)。傳輸模塊提供兩種方式發(fā)送數(shù)據(jù)。
(1)定時(shí)循環(huán)發(fā)送;
(2)遠(yuǎn)程郵件控制發(fā)送。
圖5 岸基系統(tǒng)功能流程圖
4.2.1 岸基系統(tǒng)流程
系統(tǒng)在公司端收取郵件,將自動啟動船舶遠(yuǎn)程監(jiān)控系統(tǒng)公司端,根據(jù)傳回的數(shù)據(jù)可自動識別船舶信息,分類存儲至對應(yīng)船舶數(shù)據(jù)庫中。此外,接收到的數(shù)據(jù)通過列表和圖形方式可以進(jìn)行回放,便于管理人員或?qū)<疫M(jìn)行遠(yuǎn)程管理和技術(shù)支持(見圖5)。
4.2.2 船舶數(shù)據(jù)回放
公司端接收船舶發(fā)回的郵件,可用表格和系統(tǒng)模擬圖顯示船上數(shù)據(jù),并對船舶進(jìn)行定位,也可通過歷史數(shù)據(jù)庫查詢報(bào)警、消警、報(bào)警抑制、傳感器故障等歷史數(shù)據(jù)(見圖6、圖7)。
4.2.3 數(shù)據(jù)導(dǎo)出
根據(jù)公司的管理需要,可定制數(shù)據(jù)導(dǎo)出格式與內(nèi)容,對已存數(shù)據(jù)進(jìn)行2次開發(fā)。
圖6 報(bào)警清單示意圖
圖7 空氣管系示意圖
(1)將船員由手工抄表的工作中徹底解放出來;
(2)實(shí)現(xiàn)對主機(jī)流量、主機(jī)轉(zhuǎn)速的實(shí)時(shí)統(tǒng)計(jì)。
為確保船端系統(tǒng)的可靠性和降低成本,采用Visual C++從底層操作數(shù)據(jù),可在不額外配置計(jì)算機(jī)的情況下達(dá)到效果。
岸端設(shè)計(jì)采用C#平臺。C#是微軟推出的1種優(yōu)秀的編程語言,大多數(shù)C#編譯器都運(yùn)作于.NET平臺上,新的語言細(xì)節(jié)不斷地推出,比如直接支持SQL(Str uct ured Quer y Language)的語言集成查詢 (Language INtegrated Quer y,LINQ)語法等,使得由C#設(shè)計(jì)的界面元素更豐富,顯示效果更佳。
采用sqlite進(jìn)行數(shù)據(jù)二進(jìn)制轉(zhuǎn)換壓縮,然后采用zipcode進(jìn)行2次壓縮,形成極小的數(shù)據(jù)包。實(shí)船操作中,船端每天發(fā)送2個(gè)數(shù)據(jù)包,每個(gè)數(shù)據(jù)包容量<5 K,比船員發(fā)送1封普通郵件的數(shù)據(jù)量還低。
SQLite是輕型的數(shù)據(jù)庫,遵守原子性、一致性、隔離性和持久性(Atomicity、Consistency、Isolation、Durability,ACID)的關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),嵌入式的設(shè)計(jì)目標(biāo),目前已在很多嵌入式產(chǎn)品中使用,它占用資源低,只需要幾百K的內(nèi)存。SQLite能夠支持Windows/Linux/Unix等主流的操作系統(tǒng),同時(shí)能夠跟很多程序語言相結(jié)合,如 Tcl、C#、PHP、Java等,另有開放數(shù)據(jù)庫互連(Open Database Connectivity,ODBC)接口,比Mysql、PostgreSQL這兩款世界著名的數(shù)據(jù)庫管理系統(tǒng)的處理速度都快。SQLite第1個(gè)Alpha版本(內(nèi)部測試版)誕生于2000年5月,現(xiàn)已迎來了SQLite 3新版本。
BLOB(binary large object)是1個(gè)可以存儲二進(jìn)制文件的容器。在計(jì)算機(jī)中,BLOB常常是數(shù)據(jù)庫中用來存儲二進(jìn)制文件的字段類型。典型的BLOB是1張圖片或1個(gè)聲音文件,考慮到它們的文件大小,必須使用特殊的方式來處理(例如:上傳、下載或者存放到1個(gè)數(shù)據(jù)庫)。
ZIP是可以分別壓縮每個(gè)文件的存檔格式。分別壓縮文件允許不必讀取另外的數(shù)據(jù)而檢索獨(dú)立的文件;理論上,這種格式允許對不同的文件使用不同的算法。所設(shè)計(jì)的系統(tǒng)采用的是卡茨(Katz)的DEFLATE算法。DEFLATE是同時(shí)使用了LZ77算法與哈夫曼編碼(Huff man Coding)的無損數(shù)據(jù)壓縮算法。
船端采用BMP格式的模擬圖,在不降低圖形質(zhì)量的情況下,采用圖形壓縮成PNG格式的算法,縮小了數(shù)據(jù)包大小。
表1 數(shù)據(jù)包壓縮對照表
根據(jù)表1可以看出,基礎(chǔ)數(shù)據(jù)包的壓縮比達(dá)到1.3%,其中第1次壓縮效果尤為明顯。這是因?yàn)閷A(chǔ)數(shù)據(jù)中的模擬圖進(jìn)行了轉(zhuǎn)換壓縮,其實(shí)現(xiàn)原理是通過.Net Frame Work(又稱 .NET框架)中的System.IO類讀取圖片文件,通過算法將其轉(zhuǎn)換為數(shù)據(jù)流,再對數(shù)據(jù)流(Memory Stream)進(jìn)行操作,進(jìn)行位圖轉(zhuǎn)換(System.Drawing.Bit map),將原BMP格式的模擬圖動態(tài)轉(zhuǎn)換為PNG格式的模擬圖。這里需要特別指出,之所以采取動態(tài)轉(zhuǎn)換,是為了不影響原始模擬圖文件,從根本上杜絕船上監(jiān)測報(bào)警系統(tǒng)與遠(yuǎn)程監(jiān)控系統(tǒng)同時(shí)爭搶數(shù)據(jù)的可能性。而且通過底層文件流對位圖進(jìn)行轉(zhuǎn)換的算法提高了效率。選擇將BMP文件轉(zhuǎn)換為PNG格式,考慮了PNG格式的特殊性能。
5.3.1 顯示能力
PNG用來存儲灰度圖像時(shí),灰度圖像的深度可多到16位;存儲彩色圖像時(shí),彩色圖像的深度可多到48位;并且可存儲多到16位的α通道數(shù)據(jù)。PNG使用從LZ77派生的無損數(shù)據(jù)壓縮算法。
5.3.2 流式讀/寫性能(streamability)
PNG圖像文件格式允許連續(xù)讀出和寫入圖像數(shù)據(jù),這個(gè)特性很適合于在通信過程中生成和顯示圖像。
5.3.3 透明性(transparency)
這個(gè)性能可使圖像中某些部分不顯示出來,用來創(chuàng)建一些有特色的圖像。有利于后期對模擬圖進(jìn)行動態(tài)加點(diǎn)(數(shù)據(jù)監(jiān)測點(diǎn))和標(biāo)注等。
5.3.4 文件結(jié)構(gòu)
PNG圖像格式文件(或者稱為數(shù)據(jù)流)由1個(gè)8 Byte的PNG文件署名(PNG file signature)域和按照特定結(jié)構(gòu)組織的3個(gè)以上的數(shù)據(jù)塊(chunk)組成。PNG文件結(jié)構(gòu)PNG定義了兩種類型的數(shù)據(jù)塊:一種是關(guān)鍵數(shù)據(jù)塊(critical chunk),為標(biāo)準(zhǔn)數(shù)據(jù)塊;另一種是輔助數(shù)據(jù)塊(ancillary chunks),為可選數(shù)據(jù)塊。關(guān)鍵數(shù)據(jù)塊定義了4個(gè)標(biāo)準(zhǔn)數(shù)據(jù)塊,每個(gè)PNG文件都必須包含它們,PNG讀寫軟件也都必須要支持這些數(shù)據(jù)塊。它的這些流相關(guān)的數(shù)據(jù)塊,與.NET Frame Work中的流可以更好地結(jié)合起來,提高效率(見圖8)。
還原后的圖形,采取動態(tài)適應(yīng)顯示器算法,在岸端軟件中能自動適應(yīng)4∶3顯示器與16∶9顯示器。16∶9顯示器的顯示中還加入了自動裁邊算法,最大程度提高了顯示效果。
結(jié)合船公司的管理需要,集成各船或船隊(duì)的實(shí)際管理內(nèi)容,使船舶的日常管理工作更具備網(wǎng)絡(luò)化功能。
船公司通過網(wǎng)絡(luò)對船只或船隊(duì)的船舶設(shè)備運(yùn)行狀態(tài)進(jìn)行動態(tài)跟蹤,實(shí)現(xiàn)遠(yuǎn)洋船舶現(xiàn)場的航行信息、機(jī)艙信息、貨物信息、海況信息、視頻信息和工作文件向岸端的實(shí)時(shí)傳輸,實(shí)現(xiàn)船岸之間信息相互傳遞,使得管理人員能夠及時(shí)迅速地了解船舶的動態(tài),更使得客戶在辦公室里就可管理其航行于世界各大洋的船隊(duì)。例如能將船上的主機(jī)壓力、主機(jī)溫度、配電板、鍋爐等一系列的報(bào)警數(shù)值傳回岸上公司,公司端在研究了數(shù)據(jù)后可及時(shí)做出故障診斷,實(shí)現(xiàn)遠(yuǎn)程監(jiān)控。
所傳回的數(shù)據(jù)不局限于以表格的形式進(jìn)行顯示,也可顯示在模擬圖上,使其顯示更加清晰和直觀(見圖9)。
圖8 數(shù)據(jù)塊文件結(jié)構(gòu)
圖9 主機(jī)系統(tǒng)示意圖
船舶遠(yuǎn)程監(jiān)控系統(tǒng)的開發(fā),解決了船公司對本企業(yè)航行在世界各地船只或船隊(duì)運(yùn)行數(shù)據(jù)的及時(shí)掌控,使得船舶遠(yuǎn)程監(jiān)控、維護(hù)與故障診斷得以實(shí)現(xiàn),保證了船舶動力裝置的可靠性和正常運(yùn)行。隨著船舶動力裝置的大型化和復(fù)雜化,該系統(tǒng)更可結(jié)合各方面的技術(shù)支持,借助網(wǎng)絡(luò)對運(yùn)行在海上的船舶給予更多的技術(shù)支持,對船舶油耗進(jìn)行監(jiān)督管理等,使得船公司提高經(jīng)營效率,提升企業(yè)信息化管理水平。
[1] 馮思春.船舶遠(yuǎn)程監(jiān)控及數(shù)據(jù)交換系統(tǒng)的研究與應(yīng)用.[D].大連:大連理工大學(xué),2007.
[2] Grant Allen,Mike Owens.SQLite權(quán)威指南 [M].楊謙,劉義宣,謝志強(qiáng),譯.第2版.北京:電子工業(yè)出版社,2012.
[3] Martin Fowler.企業(yè)應(yīng)用架構(gòu)模式 [M].王懷民,周斌,譯.北京:機(jī)械工業(yè)出版社,2010.
[4] Kevin Hoff man.Visual C#2005技術(shù)內(nèi)幕 [M].李虎,許福,譯.北京:機(jī)械工業(yè)出版社,2007.
[5] Christian Nagel,Bill Evjen,Jay Glynn.C#高級編程 [M].李銘,譯.第7版.北京:清華大學(xué)出版社,2010.