倪依純 劉維亭 朱志宇
(1. 江蘇省無錫交通高等職業技術學校,無錫 214151;2.江蘇科技大學電信工程學院,鎮江 212003)
為了提高船舶航行的安全性、可靠性和經濟效益,機艙監控系統經常需要能夠和岸上船舶公司相連,以獲取船舶公司專家的支持[1-3]。而這種數據的交互大多數是通過衛星傳輸,資源有限,費用也很高。對于近岸船舶而言,隨著無線網絡覆蓋的飛速擴大,基于B/S結構和ASP.Net技術的船舶機艙結構監控系統,可以用簡便、廉價的方式很好地解決遠端用戶對于近岸運行船舶的機艙遠端和現場監控[4]。
本系統是按照長江近岸船舶的機艙監控需要設計的,由岸上和船上兩部分組成。船上部分所處環境惡劣,震動大、溫度高、濕度高等,為保證網絡的可靠性,采用有線網絡連接方式,將機艙監控系統組成一個局域網,組網方式采用以太網方式。岸上部分也組成一個網絡,并和Internet相連。可供遠端客戶瀏覽、查看。船上部分和岸上部分通過無線網絡相連。系統組成示意圖如圖1所示。
根據長江近岸船舶的特點以及機艙自動化系統的具體要求,設計要求本系統能夠對機艙的主機、發電機、舵漿、離合器、跳板等船用重要設備進行實時狀態監測,運行參數顯示,故障報警及診斷,歷史數據和報警信息存儲、查詢,數據報表打印等。

圖1 基于B/S機構的監控系統組成示意
為完成上述功能,本系統采用了數據采集模塊、數據庫、Web服務器、客戶端瀏覽器的系統構成,即所謂的B/S(瀏覽器/服務器)結構。其中,數據采集模塊與分布在機艙各需要監控部件上的傳感器相連,采集各個部件的工作參數。對采集的信號進行處理、轉換后,通過網絡與服務器進行數據的交換并存儲在相關數據庫中。
根據監控內容和需要,以及模塊化軟件設計思想,系統軟件的設計首先劃分了功能模塊,構建了各模塊之間的數據流向,以保持軟件良好的可讀性、可移植性和可擴充性[5]。經研究、分析,本系統根據軟件功能的不同主要劃分為數據采集、趨勢圖、實時監控、管理功能、查詢、故障診斷及其它功能模塊。其總體框圖如圖2所示。

圖2 系統軟件功能總框圖
上述各模塊的主要功能為:
(1)數據采集:通過局域網與計算機通訊,完成信號的采集、轉換以及輸入/輸出,將硬件采集的數據讀入計算機,存儲到實時數據庫,供監控、查詢、繪圖等操作。
(2)數據查詢:以“天”為單位,將機艙主機、發電機等主要裝置的主要運行參數,存入到以當天日期為名稱的數據庫中,供用戶查詢、參考。數據查詢利用ADO.NET對數據庫進行操作。如果程序中有大量與數據庫的連接操作時,則利用Web.config文件,配置數據庫的連接字符串,綁定數據庫的連接。
(3)實時監控:根據機艙自動監控的要求,考慮主要監控點如表1所示。
本模塊周期性地從實時數據庫中取得各項實時數據,動態顯示各設備的運行參數,通過監控界面,供監控人員實時了解各設備的運行狀況。
本系統設計中,采用標簽指示要顯示的參數名稱,文本框顯示具體參數值,標簽和文本框一一對應,顯示機艙各設備的狀態信息、運行參數和報警信息。系統利用DataSet中的Table存放所有監控參數的值,文本框與Table中的列相對應。文本框中數據和 DataSet中的數據綁定。為了實現報警功能,定義了數據比較類,在數據超過上限或下限時,顯示紅色提示信息。

表1 機艙主要監控點
(4)故障診斷:系統設計了一個智能診斷系統,對機艙各部件進行故障診斷,故障診斷的數據經模糊化處理后送入神經網絡進行診斷,判斷是否有故障。如有故障,則先判斷是哪類故障,然后由專家系統根據故障種類,調用推理機,給出故障的原因和解決方法。故障訓練樣本從系統曾經發生的故障實例中,領域專家給出的一些診斷分析提取的。神經網絡通過對故障訓練樣本的學習,將故障訓練樣本知識轉換成故障診斷網絡知識(即各神經元之間的連接權值和閉值)存儲起來,以備神經網絡進行診斷時使用[6]。故障診斷的流程如圖3所示。

圖3 故障診斷程序流程圖
系統中所有的故障知識都是根據專家經驗輸入進去的。由于收集掌握的故障知識有限。所以對于一些新出現的故障,本系統設計了“添加知識庫”這一功能,以進行故障知識庫的完善。僅對于權限比較高的操作人員,授予了修改時間,添加報警知識庫等較高權限。
(5)管理功能:根據用戶不同的權限,管理授權用戶的登陸,保證系統的保密性和安全性。
(6)趨勢圖:根據所選日期和時間段,動態顯示任意時間內的趨勢曲線。提供各種趨勢曲線的分析畫面。以直觀的印象,使操作人員對于機艙參數的變化情況一目了然。
(7)其他功能模塊:包括報表的生成和打印、對數據庫管理、幫助等信息。
本系統的操作以數據庫為基礎,如數據查詢、故障診斷、趨勢圖查詢等,因此數據庫占據著重要地位。系統設計以SQL Server 2000作為數據庫工具。數據庫中設有日常數據庫,報警數據庫,故障診斷庫,標準參照庫,報警閾值庫和考勤庫等。數據庫與其它模塊間的關系如圖4所示。在日常數據庫中存儲了機艙內監控數據的運行記錄,對機艙內主機、發電機、離合器、舵漿、跳板的共37個模擬量參數進行記錄。
日常數據庫以“天”為單位,存儲當天的記錄。系統運行時會自動檢查有否當天的表存在,沒有就自動新建一張表。

圖4 數據庫與其它模塊間的關系
報警數據庫,當監控數據超出設定警戒值,就進行報警并存入報警數據庫中,供以后查詢分析。故障診斷庫記錄故障的類別、原因、維修建議等,供診斷時調用。考勤庫,記錄對操作人員的進入和退出系統的具體時間,方便系統對訪問用戶情況的掌握的管理。
本系統軟件采用ASP.NET為開發環境,采用全新的開發語言C#作為主要開發語言,以模塊化思想設計軟件結構,方便了程序的升級和維護。系統整體架構采用B/S結構,通過無線網絡,實現了近岸船舶與遠端用戶的實時數據交互。所有事務邏輯在服務器端實現,客戶端只需安裝瀏覽器,通過在IE地址欄輸入URL地址即可實現對該系統的訪問,實現了客戶端零維護,同時還保證了數據的一致性、實時性和安全性。
本系統已經應用于通沙汽渡船、鎮揚汽渡船和南京板橋28車汽渡船等船舶,用戶實際使用證明,該系統運行可靠,操作直觀簡便,性能穩定。
[1] 孟憲堯, 白廣來, 劉維來, 張金波. 數據融合技術與船舶自動化的發展. 世界海運. 2002,2.
[2] 姜瑩, 任光, 賈寶柱. 船舶故障診斷的新發展. 航海技術, 2004(01).
[3] 尚新宇. 智能化船舶機艙監測報警系統的研究. 大連海事大學, 2001,3.
[4] 張海濤, 哈建林. 船舶自動化發展趨勢.中國水運(理論版), 2006, 4(5).
[5] 張能立, 陳剛. 基于ADO. NET 的XML數據傳遞的研究與實現. 計算機與現代化, 2005,3.
[6] 吳凌云, 王華. BP神經網絡專家系統在故障診斷中的應用.信息技術, 2003,27(2).