趙宇宇,陳 寧
(江蘇科技大學(xué) 能源與動(dòng)力工程學(xué)院,江蘇 鎮(zhèn)江 212003)
計(jì)算機(jī)技術(shù)的發(fā)展帶來(lái)了各個(gè)行業(yè)的繁榮,航運(yùn)業(yè)也是受益者。隨著航運(yùn)業(yè)對(duì)船舶信息自動(dòng)化的需求越來(lái)越高,國(guó)際海事組織(IMO)也對(duì)船舶的運(yùn)行、管理等諸多方面提出更高要求。雖然船舶的信息自動(dòng)化管理已發(fā)展多年,但進(jìn)步緩慢。如何更加高效的管理船舶,是諸多航運(yùn)企業(yè)迫切需要解決的問(wèn)題。為了適應(yīng)新的航運(yùn)要求,船舶機(jī)艙信息管理作為船舶管理的一個(gè)重要組成部分,它對(duì)船舶機(jī)艙設(shè)備的維修保養(yǎng)以及備件、物料等的安排和分配等諸多事務(wù)進(jìn)行管理,不僅可以有效的提高船舶運(yùn)行的安全性、環(huán)保性,也可以讓船舶的管理更加透明、更加高效。
當(dāng)前時(shí)期,航運(yùn)企業(yè)所使用的船舶管理軟件大多數(shù)為C/S架構(gòu),即客戶端/服務(wù)器的運(yùn)行模式。這種模式是在計(jì)算機(jī)應(yīng)用程序流行時(shí)期被廣泛采用,但隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,云計(jì)算概念的提出,這種模式因其諸多限制因素漸漸被新的模式即B/S架構(gòu)取代[1]。B/S架構(gòu)是一種瀏覽器/服務(wù)器的運(yùn)行模式,不同于以往的本地應(yīng)用程序,用戶可以通過(guò)瀏覽器直接實(shí)現(xiàn)各種應(yīng)用的操作,在互聯(lián)網(wǎng)的大背景下,大大降低了維護(hù)成本。與此同時(shí),云端數(shù)據(jù)庫(kù)的使用,將使得管理工作更加高效。
本文采用ASP.NET技術(shù)和三維全景漫游技術(shù),完成虛擬船舶機(jī)艙信息管理系統(tǒng)的開(kāi)發(fā)。這是典型的B/S架構(gòu)應(yīng)用程序,旨在開(kāi)發(fā)基于船舶實(shí)景漫游的機(jī)艙信息管理系統(tǒng),是對(duì)船舶管理方式的一次探索,這將能使船舶的管理方式更加人性化,管理操作更加便捷。系統(tǒng)開(kāi)發(fā)流程如圖1所示。
三維全景漫游技術(shù)是將一組視角大于人眼正常視角的360°全景圖片,通過(guò)Flash 3D引擎組織管理而形成的全景漫游技術(shù)。這是一種設(shè)計(jì)開(kāi)發(fā)成本較為低廉的三維場(chǎng)景再現(xiàn)技術(shù),只需要通過(guò)數(shù)碼相機(jī)和魚(yú)眼鏡頭完成某個(gè)場(chǎng)景的圖片采集,即可在短時(shí)間內(nèi)開(kāi)發(fā)一套該場(chǎng)景的全景漫游系統(tǒng)[2]。該技術(shù)具有制作成本低、開(kāi)發(fā)周期短等優(yōu)點(diǎn),當(dāng)前已在諸多行業(yè)使用。在船舶機(jī)艙這種設(shè)備眾多、布置復(fù)雜的場(chǎng)所,使用全景漫游技術(shù)可以有效的還原船舶機(jī)艙的真實(shí)場(chǎng)景信息,使人更加直觀地了解機(jī)艙布局。
本文所使用的機(jī)艙三維全景漫游系統(tǒng)是以某海洋工程船舶為背景拍攝并開(kāi)發(fā)的1套標(biāo)準(zhǔn)場(chǎng)景漫游程序。其中包括了船舶機(jī)艙各主要設(shè)備、關(guān)鍵布置等圖片信息,用戶可根據(jù)內(nèi)置的地圖和指示箭頭完成對(duì)船舶整個(gè)艙室的虛擬游歷。不用復(fù)雜的三維模型即可對(duì)船舶機(jī)艙有整體的了解,這也正是視景漫游系統(tǒng)的優(yōu)點(diǎn)所在。船舶機(jī)艙全景漫游示例如圖2所示。
船舶管理系統(tǒng)設(shè)計(jì)時(shí)大多會(huì)采用“技術(shù)管理是基礎(chǔ)、安全控制是核心、成本控制是目的”的管理理念[3],為了兼顧系統(tǒng)的實(shí)用性且考慮船級(jí)社對(duì)船舶的檢驗(yàn)要求,船舶管理的功能設(shè)置上將參考多種船舶維修保養(yǎng)和管理的體系要求,如船舶維修保養(yǎng)體系(CWBT)、船舶機(jī)械計(jì)劃保養(yǎng)體系(PMS)等。
機(jī)艙信息管理模塊作為船舶管理系統(tǒng)的一部分,同樣遵循船舶管理系統(tǒng)的設(shè)計(jì)理念。本文設(shè)計(jì)的管理模塊的主要功能包括:船舶設(shè)備與備件管理、船舶維護(hù)保養(yǎng)計(jì)劃制定與審驗(yàn)、證書(shū)的管理、船舶物料油品管理和報(bào)表管理[4]。通過(guò)該系統(tǒng)可以實(shí)現(xiàn)機(jī)艙設(shè)備的定期維護(hù)保養(yǎng)、計(jì)劃和安排船舶維修相關(guān)事宜、計(jì)劃采購(gòu)船用油、物料、備件以及工具,為參與企業(yè)經(jīng)營(yíng)決策與成本控制提供參考。
本套系統(tǒng)基于ASP.NET開(kāi)發(fā),以船舶機(jī)艙虛擬場(chǎng)景為基礎(chǔ),對(duì)其中可視的設(shè)備添加交互熱點(diǎn),從而實(shí)現(xiàn)對(duì)機(jī)艙設(shè)備的信息化管理。本次開(kāi)發(fā)以某船漫游系統(tǒng)作為底層核心,信息管理系統(tǒng)將圍繞該漫游系統(tǒng)設(shè)計(jì),其中主要參考該船完工手冊(cè)及其說(shuō)明書(shū)。機(jī)艙信息管理核心功能模塊如表1所示。
為了能夠更加方便、直觀地管理機(jī)艙主要設(shè)備,本系統(tǒng)希望能獲取機(jī)艙部分設(shè)備的實(shí)時(shí)運(yùn)行數(shù)據(jù),于是嵌入了基于Web的組態(tài)軟件WebAccess的監(jiān)控界面。WebAccess作為一種B/S架構(gòu)的工業(yè)組態(tài)軟件,技術(shù)已經(jīng)相當(dāng)成熟,近幾年來(lái)已在船舶機(jī)艙自動(dòng)化管理中廣泛使用。WebAccess系統(tǒng)架構(gòu)如圖3所示。
WebAccess是完全基于Web平臺(tái)設(shè)計(jì)的網(wǎng)際組態(tài)軟件,其與生俱來(lái)的強(qiáng)大網(wǎng)絡(luò)功能使現(xiàn)場(chǎng)監(jiān)控向船舶管理平臺(tái)的嵌入提供了支持。WebAccess允許瀏覽器通過(guò)鏈接地址實(shí)現(xiàn)監(jiān)控界面的遠(yuǎn)程訪問(wèn),前提是訪問(wèn)之前正確配置鏈接地址。
本系統(tǒng)開(kāi)發(fā)時(shí),因沒(méi)有實(shí)船環(huán)境,故利用現(xiàn)有實(shí)驗(yàn)條件自行開(kāi)發(fā)了1套WebAccess監(jiān)控界面,以此實(shí)現(xiàn)信息管理系統(tǒng)對(duì)WebAccess界面的調(diào)取。從圖3可以了解到,WebAccess組態(tài)運(yùn)行時(shí)需要1臺(tái)計(jì)算機(jī)作為工程節(jié)點(diǎn),始終與下位機(jī)保持通信,起到服務(wù)器的作用。而瀏覽器端的訪問(wèn)則相當(dāng)于客戶端向服務(wù)器的訪問(wèn),都是從工程節(jié)點(diǎn)中獲取數(shù)據(jù),而這也正是B/S架構(gòu)的核心所在。
數(shù)據(jù)庫(kù)是整個(gè)管理平臺(tái)的核心,不同的功能模塊將通過(guò)數(shù)據(jù)庫(kù)形成一個(gè)完整的管理體系。用戶信息、設(shè)備管理、備件和物料管理等功能的實(shí)現(xiàn)本質(zhì)都是在完成數(shù)據(jù)存儲(chǔ)任務(wù)。本文采用Microsoft SQL Server數(shù)據(jù)庫(kù)來(lái)滿足大數(shù)據(jù)、安全高效的數(shù)據(jù)存儲(chǔ)。數(shù)據(jù)庫(kù)表的建立根據(jù)本文2.2節(jié)表格內(nèi)容設(shè)計(jì)字段信息,建立相關(guān)的數(shù)據(jù)表格即可。
機(jī)艙漫游系統(tǒng)采用Flash CS6開(kāi)發(fā),其中使用開(kāi)源Flash3D引擎PaperVision3D(以下簡(jiǎn)稱(chēng)PV3D引擎)完成全景圖片組的組織、渲染。通過(guò)PV3D引擎制作的船舶漫游系統(tǒng)運(yùn)行流暢、系統(tǒng)穩(wěn)定、用戶體驗(yàn)極佳,也正因此它是制作場(chǎng)景漫游系統(tǒng)的首選引擎[5]。機(jī)艙漫游系統(tǒng)不僅只是通過(guò)鼠標(biāo)拖拽實(shí)現(xiàn)全景圖片的360°瀏覽,還可以向場(chǎng)景中添加導(dǎo)航箭頭、地圖信息、熱點(diǎn)信息等更加豐富的用戶交互方式,以實(shí)現(xiàn)全景漫游的功能最大化展現(xiàn)。在機(jī)艙場(chǎng)景中主機(jī)位置處添加熱點(diǎn),點(diǎn)擊后彈出窗口如圖4所示。
在漫游系統(tǒng)基本開(kāi)發(fā)過(guò)程中,需要添加漫游交互式熱點(diǎn)的核心功能索引。因整個(gè)系統(tǒng)運(yùn)行在服務(wù)器上,用戶通過(guò)訪問(wèn)網(wǎng)頁(yè)的方式進(jìn)行學(xué)習(xí),故系統(tǒng)需要為漫游熱點(diǎn)添加熱點(diǎn)索引,并且為每一個(gè)熱點(diǎn)添加執(zhí)行JavaScript代碼的功能,以方便后期數(shù)據(jù)的讀取。若要在Flash CS6中實(shí)現(xiàn)上述功能,需要添加對(duì)External-Interface包的引用,通過(guò)它提供的接口函數(shù)調(diào)用網(wǎng)頁(yè)中的JavaScript腳本[6]。這樣,用戶在點(diǎn)擊漫游中的熱點(diǎn)時(shí),將會(huì)自動(dòng)調(diào)用網(wǎng)頁(yè)中的JavaScript方法getHotspotIndex(),并以形參的方式傳遞索引值,只需要在該方法體內(nèi)判斷該索引并實(shí)現(xiàn)相應(yīng)的功能代碼即可。例如點(diǎn)擊“柴油機(jī)安裝說(shuō)明書(shū)”熱點(diǎn)并彈出窗口,調(diào)用效果如圖5所示。
漫游系統(tǒng)通常只是以場(chǎng)景展示的形式為人們所用,其在信息管理系統(tǒng)中的應(yīng)用較少,但這并不是說(shuō)漫游系統(tǒng)不適合在信息管理系統(tǒng)中使用,在合適的場(chǎng)合其發(fā)揮的功能更大。本文將信息管理模塊嵌入漫游系統(tǒng)作為信息展示的一種形式,其主要負(fù)責(zé)對(duì)信息維護(hù),所有的數(shù)據(jù)存儲(chǔ)操作均在后臺(tái)完成。嵌入的方式同上,使用showDlg()方法將后臺(tái)管理頁(yè)面鏈接MPage.aspx作為參數(shù)傳入即可。管理模塊入口在漫游系統(tǒng)的主界面,使用ASP.NET技術(shù)開(kāi)發(fā)[7],并使用jQuery EasyUI完成系統(tǒng)的界面布局及其他UI功能。
機(jī)艙設(shè)備目錄樹(shù)數(shù)據(jù)從數(shù)據(jù)庫(kù)中讀取并動(dòng)態(tài)生成easyui-tree所需要的JSON字符串[8]。JSON字符串構(gòu)建時(shí),需要為其動(dòng)態(tài)指定ID號(hào)作為各項(xiàng)的唯一標(biāo)識(shí)碼。目錄樹(shù)生成以后,當(dāng)項(xiàng)目點(diǎn)擊事件發(fā)生時(shí),只需要判斷該ID號(hào)并結(jié)合項(xiàng)目間的父子關(guān)系即可彈出指定內(nèi)容。設(shè)備目錄樹(shù)生成后,點(diǎn)擊目錄樹(shù)中的三級(jí)項(xiàng)目時(shí),可彈出設(shè)備卡信息窗口。機(jī)艙漫游對(duì)設(shè)備管理界面的調(diào)用效果如圖6所示。
若想在機(jī)艙信息管理系統(tǒng)中使用WebAccess組態(tài)監(jiān)控界面,需要機(jī)艙設(shè)備使用WebAccess組態(tài)軟件開(kāi)發(fā)上位機(jī)監(jiān)控程序。一般的組態(tài)軟件都是以單擊的模式運(yùn)行,對(duì)Web端的訪問(wèn)支持不友好,這種情況下,如果想實(shí)現(xiàn)設(shè)備實(shí)時(shí)運(yùn)行數(shù)據(jù)在瀏覽器端的顯示,則需要使用數(shù)據(jù)庫(kù)作為中轉(zhuǎn)介質(zhì),這無(wú)疑增加了開(kāi)發(fā)成本。而WebAccess組態(tài)在瀏覽器端的訪問(wèn)具有先天的優(yōu)勢(shì),完全基于Web的網(wǎng)際組態(tài)使得第三方系統(tǒng)的調(diào)用更加容易。
系統(tǒng)運(yùn)行時(shí),需要保證工程節(jié)點(diǎn)所在的計(jì)算機(jī)已成功啟動(dòng)該監(jiān)控節(jié)點(diǎn),然后在漫游系統(tǒng)的熱點(diǎn)單擊事件或者后臺(tái)管理標(biāo)簽鏈接中引用上面的鏈接地址即可成功實(shí)現(xiàn)第三方平臺(tái)對(duì)監(jiān)控界面的調(diào)取。實(shí)際調(diào)用效果如圖7所示。
本文完成了船舶機(jī)艙信息管理系統(tǒng)的核心功能模塊的基礎(chǔ)開(kāi)發(fā)工作,并實(shí)現(xiàn)了機(jī)艙三維場(chǎng)景漫游系統(tǒng)的嵌入。系統(tǒng)發(fā)布以后,用戶不僅可以通過(guò)局域網(wǎng)更能通過(guò)廣域網(wǎng)遠(yuǎn)程查看機(jī)艙設(shè)備的實(shí)時(shí)運(yùn)行信息,使得船舶的管理工作更加便捷。該系統(tǒng)便于維護(hù)且易于管理功能的再擴(kuò)展,不僅便于操作者使用,更利于操作者快速熟悉船舶機(jī)艙環(huán)境,為今后船舶的維護(hù)保養(yǎng)工作打下良好的基礎(chǔ)。
參考文獻(xiàn):
[1]張良銀. 淺論C/S和B/S體系結(jié)構(gòu)[J]. 工程地質(zhì)計(jì)算機(jī)應(yīng)用,2006, 44(04): 21–23.ZHANG Liang-yin. On the structure of C/S and B/S[J].Engineering Geology Computer Application, 2006, 44(04):21–23.
[2]陳寧, 龔蘇斌. 基于PV3D的全景漫游關(guān)鍵技術(shù)研究[J]. 系統(tǒng)仿真學(xué)報(bào), 2013, 25(9): 2140–2143.
[3]杜漢啟. 船舶機(jī)務(wù)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 大連: 大連海事大學(xué), 2014.
[4]鄭士君, 褚建新, 黃愛(ài)平, 等. 船舶機(jī)務(wù)管理信息系統(tǒng)設(shè)計(jì)[J].中國(guó)航海, 2002, 53 (4): 64–67.ZHENG Shi-jun, ZHU Jian-xin, HUANG Ai-ping, et al. The design of ship maintenance management information system[J].Navigation of China, 2002, 53 (4): 64–67.
[5]PAUL T, JEFF W. Papervision3D essentials[M]. UK: Packt Publishing, 2009.
[6]GRAHAM R, AMIN A, PHILLIP B. Developing understanding of programming principles using Flash Actionscript[J].ITALICS, 2007, 6 (4): 51–71.
[7]JASON N G, CHRISTIAN W, et al. 李增民, 苗榮, 譯. ASP.NET 4. 5高級(jí)編程[M]. 北京: 清華大學(xué)出版社, 2014.
[8]周欣, 陳亮, 陳穎, 等. 船舶設(shè)備標(biāo)準(zhǔn)目錄Web異步樹(shù)的實(shí)現(xiàn)[J]. 機(jī)電設(shè)備, 2014(04): 32–35.ZHOU Xin, CHEN Liang, CHEN Ying, et al. Realization of web asynchronous tree of marine equipment standard directory[J]. Mechanical and Electrical Equipment, 2014(04):32–35.