倪依純 劉維亭 朱志宇
(1. 江蘇省無(wú)錫交通高等職業(yè)技術(shù)學(xué)校,無(wú)錫 214151;2.江蘇科技大學(xué)電信工程學(xué)院,鎮(zhèn)江 212003)
為了提高船舶航行的安全性、可靠性和經(jīng)濟(jì)效益,機(jī)艙監(jiān)控系統(tǒng)經(jīng)常需要能夠和岸上船舶公司相連,以獲取船舶公司專(zhuān)家的支持[1-3]。而這種數(shù)據(jù)的交互大多數(shù)是通過(guò)衛(wèi)星傳輸,資源有限,費(fèi)用也很高。對(duì)于近岸船舶而言,隨著無(wú)線(xiàn)網(wǎng)絡(luò)覆蓋的飛速擴(kuò)大,基于B/S結(jié)構(gòu)和ASP.Net技術(shù)的船舶機(jī)艙結(jié)構(gòu)監(jiān)控系統(tǒng),可以用簡(jiǎn)便、廉價(jià)的方式很好地解決遠(yuǎn)端用戶(hù)對(duì)于近岸運(yùn)行船舶的機(jī)艙遠(yuǎn)端和現(xiàn)場(chǎng)監(jiān)控[4]。
本系統(tǒng)是按照長(zhǎng)江近岸船舶的機(jī)艙監(jiān)控需要設(shè)計(jì)的,由岸上和船上兩部分組成。船上部分所處環(huán)境惡劣,震動(dòng)大、溫度高、濕度高等,為保證網(wǎng)絡(luò)的可靠性,采用有線(xiàn)網(wǎng)絡(luò)連接方式,將機(jī)艙監(jiān)控系統(tǒng)組成一個(gè)局域網(wǎng),組網(wǎng)方式采用以太網(wǎng)方式。岸上部分也組成一個(gè)網(wǎng)絡(luò),并和Internet相連。可供遠(yuǎn)端客戶(hù)瀏覽、查看。船上部分和岸上部分通過(guò)無(wú)線(xiàn)網(wǎng)絡(luò)相連。系統(tǒng)組成示意圖如圖1所示。
根據(jù)長(zhǎng)江近岸船舶的特點(diǎn)以及機(jī)艙自動(dòng)化系統(tǒng)的具體要求,設(shè)計(jì)要求本系統(tǒng)能夠?qū)C(jī)艙的主機(jī)、發(fā)電機(jī)、舵漿、離合器、跳板等船用重要設(shè)備進(jìn)行實(shí)時(shí)狀態(tài)監(jiān)測(cè),運(yùn)行參數(shù)顯示,故障報(bào)警及診斷,歷史數(shù)據(jù)和報(bào)警信息存儲(chǔ)、查詢(xún),數(shù)據(jù)報(bào)表打印等。
圖1 基于B/S機(jī)構(gòu)的監(jiān)控系統(tǒng)組成示意
為完成上述功能,本系統(tǒng)采用了數(shù)據(jù)采集模塊、數(shù)據(jù)庫(kù)、Web服務(wù)器、客戶(hù)端瀏覽器的系統(tǒng)構(gòu)成,即所謂的B/S(瀏覽器/服務(wù)器)結(jié)構(gòu)。其中,數(shù)據(jù)采集模塊與分布在機(jī)艙各需要監(jiān)控部件上的傳感器相連,采集各個(gè)部件的工作參數(shù)。對(duì)采集的信號(hào)進(jìn)行處理、轉(zhuǎn)換后,通過(guò)網(wǎng)絡(luò)與服務(wù)器進(jìn)行數(shù)據(jù)的交換并存儲(chǔ)在相關(guān)數(shù)據(jù)庫(kù)中。
根據(jù)監(jiān)控內(nèi)容和需要,以及模塊化軟件設(shè)計(jì)思想,系統(tǒng)軟件的設(shè)計(jì)首先劃分了功能模塊,構(gòu)建了各模塊之間的數(shù)據(jù)流向,以保持軟件良好的可讀性、可移植性和可擴(kuò)充性[5]。經(jīng)研究、分析,本系統(tǒng)根據(jù)軟件功能的不同主要?jiǎng)澐譃閿?shù)據(jù)采集、趨勢(shì)圖、實(shí)時(shí)監(jiān)控、管理功能、查詢(xún)、故障診斷及其它功能模塊。其總體框圖如圖2所示。
圖2 系統(tǒng)軟件功能總框圖
上述各模塊的主要功能為:
(1)數(shù)據(jù)采集:通過(guò)局域網(wǎng)與計(jì)算機(jī)通訊,完成信號(hào)的采集、轉(zhuǎn)換以及輸入/輸出,將硬件采集的數(shù)據(jù)讀入計(jì)算機(jī),存儲(chǔ)到實(shí)時(shí)數(shù)據(jù)庫(kù),供監(jiān)控、查詢(xún)、繪圖等操作。
(2)數(shù)據(jù)查詢(xún):以“天”為單位,將機(jī)艙主機(jī)、發(fā)電機(jī)等主要裝置的主要運(yùn)行參數(shù),存入到以當(dāng)天日期為名稱(chēng)的數(shù)據(jù)庫(kù)中,供用戶(hù)查詢(xún)、參考。數(shù)據(jù)查詢(xún)利用ADO.NET對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。如果程序中有大量與數(shù)據(jù)庫(kù)的連接操作時(shí),則利用Web.config文件,配置數(shù)據(jù)庫(kù)的連接字符串,綁定數(shù)據(jù)庫(kù)的連接。
(3)實(shí)時(shí)監(jiān)控:根據(jù)機(jī)艙自動(dòng)監(jiān)控的要求,考慮主要監(jiān)控點(diǎn)如表1所示。
本模塊周期性地從實(shí)時(shí)數(shù)據(jù)庫(kù)中取得各項(xiàng)實(shí)時(shí)數(shù)據(jù),動(dòng)態(tài)顯示各設(shè)備的運(yùn)行參數(shù),通過(guò)監(jiān)控界面,供監(jiān)控人員實(shí)時(shí)了解各設(shè)備的運(yùn)行狀況。
本系統(tǒng)設(shè)計(jì)中,采用標(biāo)簽指示要顯示的參數(shù)名稱(chēng),文本框顯示具體參數(shù)值,標(biāo)簽和文本框一一對(duì)應(yīng),顯示機(jī)艙各設(shè)備的狀態(tài)信息、運(yùn)行參數(shù)和報(bào)警信息。系統(tǒng)利用DataSet中的Table存放所有監(jiān)控參數(shù)的值,文本框與Table中的列相對(duì)應(yīng)。文本框中數(shù)據(jù)和 DataSet中的數(shù)據(jù)綁定。為了實(shí)現(xiàn)報(bào)警功能,定義了數(shù)據(jù)比較類(lèi),在數(shù)據(jù)超過(guò)上限或下限時(shí),顯示紅色提示信息。
表1 機(jī)艙主要監(jiān)控點(diǎn)
(4)故障診斷:系統(tǒng)設(shè)計(jì)了一個(gè)智能診斷系統(tǒng),對(duì)機(jī)艙各部件進(jìn)行故障診斷,故障診斷的數(shù)據(jù)經(jīng)模糊化處理后送入神經(jīng)網(wǎng)絡(luò)進(jìn)行診斷,判斷是否有故障。如有故障,則先判斷是哪類(lèi)故障,然后由專(zhuān)家系統(tǒng)根據(jù)故障種類(lèi),調(diào)用推理機(jī),給出故障的原因和解決方法。故障訓(xùn)練樣本從系統(tǒng)曾經(jīng)發(fā)生的故障實(shí)例中,領(lǐng)域?qū)<医o出的一些診斷分析提取的。神經(jīng)網(wǎng)絡(luò)通過(guò)對(duì)故障訓(xùn)練樣本的學(xué)習(xí),將故障訓(xùn)練樣本知識(shí)轉(zhuǎn)換成故障診斷網(wǎng)絡(luò)知識(shí)(即各神經(jīng)元之間的連接權(quán)值和閉值)存儲(chǔ)起來(lái),以備神經(jīng)網(wǎng)絡(luò)進(jìn)行診斷時(shí)使用[6]。故障診斷的流程如圖3所示。
圖3 故障診斷程序流程圖
系統(tǒng)中所有的故障知識(shí)都是根據(jù)專(zhuān)家經(jīng)驗(yàn)輸入進(jìn)去的。由于收集掌握的故障知識(shí)有限。所以對(duì)于一些新出現(xiàn)的故障,本系統(tǒng)設(shè)計(jì)了“添加知識(shí)庫(kù)”這一功能,以進(jìn)行故障知識(shí)庫(kù)的完善。僅對(duì)于權(quán)限比較高的操作人員,授予了修改時(shí)間,添加報(bào)警知識(shí)庫(kù)等較高權(quán)限。
(5)管理功能:根據(jù)用戶(hù)不同的權(quán)限,管理授權(quán)用戶(hù)的登陸,保證系統(tǒng)的保密性和安全性。
(6)趨勢(shì)圖:根據(jù)所選日期和時(shí)間段,動(dòng)態(tài)顯示任意時(shí)間內(nèi)的趨勢(shì)曲線(xiàn)。提供各種趨勢(shì)曲線(xiàn)的分析畫(huà)面。以直觀(guān)的印象,使操作人員對(duì)于機(jī)艙參數(shù)的變化情況一目了然。
(7)其他功能模塊:包括報(bào)表的生成和打印、對(duì)數(shù)據(jù)庫(kù)管理、幫助等信息。
本系統(tǒng)的操作以數(shù)據(jù)庫(kù)為基礎(chǔ),如數(shù)據(jù)查詢(xún)、故障診斷、趨勢(shì)圖查詢(xún)等,因此數(shù)據(jù)庫(kù)占據(jù)著重要地位。系統(tǒng)設(shè)計(jì)以SQL Server 2000作為數(shù)據(jù)庫(kù)工具。數(shù)據(jù)庫(kù)中設(shè)有日常數(shù)據(jù)庫(kù),報(bào)警數(shù)據(jù)庫(kù),故障診斷庫(kù),標(biāo)準(zhǔn)參照庫(kù),報(bào)警閾值庫(kù)和考勤庫(kù)等。數(shù)據(jù)庫(kù)與其它模塊間的關(guān)系如圖4所示。在日常數(shù)據(jù)庫(kù)中存儲(chǔ)了機(jī)艙內(nèi)監(jiān)控?cái)?shù)據(jù)的運(yùn)行記錄,對(duì)機(jī)艙內(nèi)主機(jī)、發(fā)電機(jī)、離合器、舵漿、跳板的共37個(gè)模擬量參數(shù)進(jìn)行記錄。
日常數(shù)據(jù)庫(kù)以“天”為單位,存儲(chǔ)當(dāng)天的記錄。系統(tǒng)運(yùn)行時(shí)會(huì)自動(dòng)檢查有否當(dāng)天的表存在,沒(méi)有就自動(dòng)新建一張表。
圖4 數(shù)據(jù)庫(kù)與其它模塊間的關(guān)系
報(bào)警數(shù)據(jù)庫(kù),當(dāng)監(jiān)控?cái)?shù)據(jù)超出設(shè)定警戒值,就進(jìn)行報(bào)警并存入報(bào)警數(shù)據(jù)庫(kù)中,供以后查詢(xún)分析。故障診斷庫(kù)記錄故障的類(lèi)別、原因、維修建議等,供診斷時(shí)調(diào)用??记趲?kù),記錄對(duì)操作人員的進(jìn)入和退出系統(tǒng)的具體時(shí)間,方便系統(tǒng)對(duì)訪(fǎng)問(wèn)用戶(hù)情況的掌握的管理。
本系統(tǒng)軟件采用ASP.NET為開(kāi)發(fā)環(huán)境,采用全新的開(kāi)發(fā)語(yǔ)言C#作為主要開(kāi)發(fā)語(yǔ)言,以模塊化思想設(shè)計(jì)軟件結(jié)構(gòu),方便了程序的升級(jí)和維護(hù)。系統(tǒng)整體架構(gòu)采用B/S結(jié)構(gòu),通過(guò)無(wú)線(xiàn)網(wǎng)絡(luò),實(shí)現(xiàn)了近岸船舶與遠(yuǎn)端用戶(hù)的實(shí)時(shí)數(shù)據(jù)交互。所有事務(wù)邏輯在服務(wù)器端實(shí)現(xiàn),客戶(hù)端只需安裝瀏覽器,通過(guò)在IE地址欄輸入U(xiǎn)RL地址即可實(shí)現(xiàn)對(duì)該系統(tǒng)的訪(fǎng)問(wèn),實(shí)現(xiàn)了客戶(hù)端零維護(hù),同時(shí)還保證了數(shù)據(jù)的一致性、實(shí)時(shí)性和安全性。
本系統(tǒng)已經(jīng)應(yīng)用于通沙汽渡船、鎮(zhèn)揚(yáng)汽渡船和南京板橋28車(chē)汽渡船等船舶,用戶(hù)實(shí)際使用證明,該系統(tǒng)運(yùn)行可靠,操作直觀(guān)簡(jiǎn)便,性能穩(wěn)定。
[1] 孟憲堯, 白廣來(lái), 劉維來(lái), 張金波. 數(shù)據(jù)融合技術(shù)與船舶自動(dòng)化的發(fā)展. 世界海運(yùn). 2002,2.
[2] 姜瑩, 任光, 賈寶柱. 船舶故障診斷的新發(fā)展. 航海技術(shù), 2004(01).
[3] 尚新宇. 智能化船舶機(jī)艙監(jiān)測(cè)報(bào)警系統(tǒng)的研究. 大連海事大學(xué), 2001,3.
[4] 張海濤, 哈建林. 船舶自動(dòng)化發(fā)展趨勢(shì).中國(guó)水運(yùn)(理論版), 2006, 4(5).
[5] 張能立, 陳剛. 基于ADO. NET 的XML數(shù)據(jù)傳遞的研究與實(shí)現(xiàn). 計(jì)算機(jī)與現(xiàn)代化, 2005,3.
[6] 吳凌云, 王華. BP神經(jīng)網(wǎng)絡(luò)專(zhuān)家系統(tǒng)在故障診斷中的應(yīng)用.信息技術(shù), 2003,27(2).