吳 軍周?chē)[偉魯 楊
(1.常熟瑞特智能船舶裝備研究院有限公司 常熟215500;2.常熟瑞特電氣股份有限公司 常熟215500)
基于OpenADR規(guī)范的智能船舶數(shù)據(jù)采集與傳輸系統(tǒng)
吳 軍1周?chē)[偉2魯 楊2
(1.常熟瑞特智能船舶裝備研究院有限公司 常熟215500;2.常熟瑞特電氣股份有限公司 常熟215500)
為使智能船舶的底層數(shù)據(jù)采集和傳輸達(dá)到完整和規(guī)范,文章基于物聯(lián)網(wǎng)技術(shù),參考美國(guó)OpenADR通訊規(guī)范,以自動(dòng)需求相應(yīng)平臺(tái)硬件和軟件的開(kāi)發(fā)設(shè)計(jì)思路和框架,設(shè)計(jì)和實(shí)現(xiàn)了一套針對(duì)智能船舶的數(shù)據(jù)采集和傳輸系統(tǒng),從而為智能船舶上層的應(yīng)用平臺(tái)奠定良好的基礎(chǔ)。
智能船舶;物聯(lián)網(wǎng);數(shù)據(jù)采集與傳輸;數(shù)據(jù)平臺(tái)
近年來(lái),物聯(lián)網(wǎng)技術(shù)有了突飛猛進(jìn)的發(fā)展,在飛機(jī)、汽車(chē)、電力等領(lǐng)域均獲得廣泛應(yīng)用,但在船舶領(lǐng)域,尤其是在國(guó)內(nèi)造船領(lǐng)域,智能船舶似乎遇到了瓶頸。這其中的一個(gè)核心問(wèn)題就是數(shù)據(jù)采集和傳輸?shù)囊?guī)范化。
本文以物聯(lián)網(wǎng)和自動(dòng)需求相應(yīng)(OpenADR)規(guī)范為開(kāi)發(fā)思路和理念,通過(guò)具體的實(shí)施方案將美國(guó)自動(dòng)需求相應(yīng)規(guī)范[1]應(yīng)用于現(xiàn)代智能船舶之中,對(duì)智能船舶的理念及實(shí)施作些有益的探索。
為了規(guī)范和引領(lǐng)國(guó)內(nèi)的智能船舶建設(shè),中國(guó)船級(jí)社(CCS)《智能船舶規(guī)范》[2]針對(duì)智能船舶作如下描述:智能船舶系指利用傳感器、通信、物聯(lián)網(wǎng)、互聯(lián)網(wǎng)等技術(shù)手段,自動(dòng)感知和獲得船舶自身、海洋環(huán)境、物流、港口等方面的信息和數(shù)據(jù),并基于計(jì)算機(jī)技術(shù)、自動(dòng)控制技術(shù)和大數(shù)據(jù)處理和分析技術(shù),在船舶航行、管理、維護(hù)保養(yǎng)、貨物運(yùn)輸?shù)确矫鎸?shí)現(xiàn)智能化運(yùn)行的船舶,以使船舶更加安全、更加環(huán)保、更加經(jīng)濟(jì)、更加可靠。
現(xiàn)代船舶的自動(dòng)化設(shè)計(jì)包括無(wú)人機(jī)艙和一人橋樓等,僅局限于船舶或系統(tǒng)本身,其借助物聯(lián)網(wǎng)和互聯(lián)網(wǎng)的智能化水平較低。究其原因,是由于目前我國(guó)造船還沒(méi)有實(shí)現(xiàn)標(biāo)準(zhǔn)化設(shè)計(jì)、采購(gòu)和生產(chǎn),船舶制造還停留在定制階段;即使同一船東的同一系列船型,制造時(shí)的分段劃分、設(shè)備和材料的采購(gòu)、系統(tǒng)原理都不能做到完全相同。由于設(shè)備和系統(tǒng)的多樣性和獨(dú)立性,其數(shù)據(jù)接口水平不一,在實(shí)施數(shù)據(jù)統(tǒng)一采集、處理、顯示和控制時(shí)非常困難。
基于以上原因,本文通過(guò)參考自動(dòng)需求相應(yīng)(OpenADR)規(guī)范實(shí)現(xiàn)采集終端與數(shù)據(jù)服務(wù)器的連接,期望能使底層數(shù)據(jù)采集和設(shè)備控制更加規(guī)范化。
《智能船舶規(guī)范》針對(duì)常規(guī)的軸系柴油機(jī)推進(jìn)的運(yùn)輸商船提出有關(guān)智能的六大基本符號(hào),概括為:
i-ship(N) 智能航行/Navigation
i-ship(H) 智能船體/Hull
i-ship(M) 智能機(jī)艙/Machinery
i-ship(E) 智能能效/Energy
i-ship(C) 智能貨控/Cargo
i-ship(I) 智能集成平臺(tái)/Integration
以智能機(jī)艙為例,CCS要求的基本功能為:對(duì)機(jī)艙內(nèi)的主推進(jìn)發(fā)動(dòng)機(jī)、輔助發(fā)電用發(fā)動(dòng)機(jī)、軸系的運(yùn)行狀態(tài)進(jìn)行監(jiān)測(cè);根據(jù)狀態(tài)監(jiān)測(cè)系統(tǒng)收集的數(shù)據(jù),對(duì)機(jī)械設(shè)備的運(yùn)行狀態(tài)和健康狀況進(jìn)行分析和評(píng)估;根據(jù)分析與評(píng)估結(jié)果,提出糾正建議,為船舶操作提供決策建議;同時(shí)對(duì)主機(jī)等監(jiān)測(cè)點(diǎn)也提出了具體要求。
對(duì)照發(fā)現(xiàn),CCS要求的監(jiān)測(cè)點(diǎn)大多數(shù)在現(xiàn)有AIS系統(tǒng)里均已包括,只有少量監(jiān)測(cè)點(diǎn)需要增加(如內(nèi)燃燒狀態(tài)、溫度和震動(dòng)等)。我們認(rèn)為,不能遺漏監(jiān)測(cè)點(diǎn)的同時(shí)也應(yīng)該避免數(shù)據(jù)重復(fù)采集,在設(shè)計(jì)和采購(gòu)之初就應(yīng)該全盤(pán)考慮,例如,要求AIS供應(yīng)商開(kāi)放數(shù)據(jù)串口、增加數(shù)據(jù)采集點(diǎn);機(jī)艙智能平臺(tái)的數(shù)據(jù)統(tǒng)一從AIS獲得;然后按照統(tǒng)一的元數(shù)據(jù)框架標(biāo)準(zhǔn)上傳數(shù)據(jù)服務(wù)器。
智能船舶的應(yīng)用服務(wù)器至少應(yīng)包括以下幾個(gè)層面:
(1)數(shù)據(jù)及模型層
包括數(shù)據(jù)服務(wù)器采集到的數(shù)據(jù)和來(lái)自外部的數(shù)據(jù),如水文氣象數(shù)據(jù)、碼頭數(shù)據(jù)、航線(xiàn)數(shù)據(jù)等。此外,還應(yīng)該包括讓所有設(shè)備執(zhí)行的指令庫(kù)或者指令函數(shù)庫(kù),需要造船工程師、航運(yùn)工程師、軟件工程師、硬件工程師、設(shè)備供應(yīng)商的通力合作。船舶需要采集的數(shù)據(jù)點(diǎn),對(duì)于需要采集數(shù)據(jù)和執(zhí)行下發(fā)指令的設(shè)備,設(shè)備供應(yīng)商必須打開(kāi)數(shù)據(jù)端口。此外,還需要完善預(yù)案庫(kù),即船舶航行時(shí)的各種姿態(tài)下設(shè)備運(yùn)行的設(shè)定參數(shù),該庫(kù)需連接故障診斷系統(tǒng),且能修改保存。
(2)邏輯層
包括算法、專(zhuān)家診斷系統(tǒng)以及視情維護(hù)系統(tǒng),不僅需要對(duì)大量的數(shù)據(jù)進(jìn)行計(jì)算和邏輯分析,而且也是一個(gè)積累的過(guò)程。不同的數(shù)據(jù)得出不同的結(jié)論,執(zhí)行不同的預(yù)案,同時(shí)向顯示層傳遞結(jié)果。
(3)顯示層
人機(jī)互動(dòng)的層面,可以查看和下載數(shù)據(jù),形成各種報(bào)表,同時(shí)也應(yīng)有權(quán)限管理。
從以上分析可以看出,由于設(shè)備的多樣性和獨(dú)立性,數(shù)據(jù)接口水平的參差不齊,使得按照統(tǒng)一的元數(shù)據(jù)框架標(biāo)準(zhǔn)采集和傳輸各類(lèi)數(shù)據(jù)成為了整個(gè)系統(tǒng)成敗的關(guān)鍵,這其中涉及到的問(wèn)題包括:標(biāo)準(zhǔn)化、可靠性、安全性、需求響應(yīng)等多個(gè)方面,OpenADR標(biāo)準(zhǔn)在這方面作了詳細(xì)規(guī)范。
2002年,為解決加利福尼亞州的電力危機(jī),勞倫斯·伯克利國(guó)家實(shí)驗(yàn)室(LBNL)的需求響應(yīng)研究中心(DRRC)成立了OpenADR研究項(xiàng)目,嘗試支持基于事件的自動(dòng)需求響應(yīng)機(jī)制和實(shí)時(shí)電價(jià),優(yōu)化電力供需雙方關(guān)系,提升電網(wǎng)的經(jīng)濟(jì)性和可靠性。后來(lái),OpenADR1.0規(guī)范被捐贈(zèng)給標(biāo)準(zhǔn)組織(OASIS),在OASIS的Energy Interoperation 1.0規(guī)范基礎(chǔ)上形成眾多國(guó)家廣泛參與的OpenADR2.0標(biāo)準(zhǔn)。
OpenADR是一個(gè)通信數(shù)據(jù)模型,定義了電力服務(wù)提供者和消費(fèi)者之間信息交換的標(biāo)準(zhǔn)和規(guī)范。OpenADR基于已有標(biāo)準(zhǔn)的通信協(xié)議(例如HTTP、XMPP),采用XML方式傳遞需求響應(yīng)、價(jià)格、可靠性等信息。
借鑒OpenADR的概念和標(biāo)準(zhǔn),我們將其應(yīng)用于智能船舶中,設(shè)計(jì)和實(shí)現(xiàn)一個(gè)數(shù)據(jù)采集和傳輸系統(tǒng)。
按照自動(dòng)需求相應(yīng)(OpenADR)規(guī)范,系統(tǒng)從結(jié)構(gòu)上可分為采集終端、數(shù)據(jù)傳輸和數(shù)據(jù)服務(wù)器等三大塊。本文并未深入涉及建于數(shù)據(jù)服務(wù)器平臺(tái)之上的應(yīng)用層,例如故障診斷和視情維護(hù)等。系統(tǒng)的整體框圖見(jiàn)圖1。其中每一個(gè)數(shù)據(jù)采集終端都有三種數(shù)據(jù)源接口,終端和服務(wù)器(包括數(shù)據(jù)庫(kù)服務(wù)器及應(yīng)用服務(wù)器)通過(guò)網(wǎng)絡(luò)相連,信息傳輸則采用HTTP協(xié)議。
3.1 采集終端
采集終端的設(shè)計(jì)對(duì)于整個(gè)物聯(lián)網(wǎng)系統(tǒng)來(lái)說(shuō)至關(guān)重要,它直接連接傳感器或采集器,把接收到的信號(hào)進(jìn)行處理和存儲(chǔ),并且生成標(biāo)準(zhǔn)格式的報(bào)文,按照服務(wù)器的要求定時(shí)、加密傳輸?shù)椒?wù)器;同時(shí)還能接受服務(wù)器指令,對(duì)設(shè)備進(jìn)行一定的操作,例如大型設(shè)備的啟、停以及通過(guò)串口對(duì)一些設(shè)備進(jìn)行軟控制等。由于現(xiàn)在船用設(shè)備,例如主機(jī)、副機(jī)、冷水機(jī)組等既有智能裝備的信息接口標(biāo)準(zhǔn)不統(tǒng)一,如果大量的數(shù)據(jù)都直接交給服務(wù)器處理,會(huì)給服務(wù)器帶來(lái)巨大的壓力,信息的第三方應(yīng)用集成與二次開(kāi)發(fā)相對(duì)困難。因此,由采集終端分散處理,以標(biāo)準(zhǔn)的格式傳遞給服務(wù)器顯得非常重要。
3.1.1 采集終端硬件
由于采集終端需要進(jìn)行多線(xiàn)程編程,本文選用4核arm處理器,預(yù)裝linux系統(tǒng)的電腦板,用可插拔SD卡作為存儲(chǔ)器,主板帶有IO口和串口,可實(shí)現(xiàn)脈高低電平、串口以及USB總線(xiàn)的輸入和輸出用于數(shù)據(jù)的采集和設(shè)備的控制。電腦板內(nèi)置有線(xiàn)網(wǎng)卡,可擴(kuò)展無(wú)線(xiàn)網(wǎng)卡以及gprs模塊,可通過(guò)光纖、Wi-Fi以及gprs連接服務(wù)器。
3.1.2 采集終端軟件
采集終端的編程語(yǔ)言可采用C、JAVA或Python等。由于Python語(yǔ)言的簡(jiǎn)潔性、易讀性以及可擴(kuò)展性,在國(guó)外用Python進(jìn)行科學(xué)計(jì)算的研究機(jī)構(gòu)日益增多,一些知名大學(xué)已經(jīng)采用Python來(lái)教授程序設(shè)計(jì)課程。因此,我們以Python在Linux操作系統(tǒng)下編程為例,對(duì)終端的開(kāi)發(fā)作說(shuō)明。
終端預(yù)裝MySQL數(shù)據(jù)庫(kù),可滾動(dòng)保存30天的數(shù)據(jù)。配置頁(yè)面使用Python的FLASK開(kāi)源框架,在有線(xiàn)網(wǎng)卡上虛擬一個(gè)靜態(tài)IP網(wǎng)口,采集終端實(shí)際上就是一個(gè)BS構(gòu)架的微型Web服務(wù)器,電腦可以直接通過(guò)瀏覽器對(duì)采集終端進(jìn)行配置,如:網(wǎng)絡(luò)連接、設(shè)備連接以及導(dǎo)入解析函數(shù)、ssl安全證書(shū)等的配置。將采集終端設(shè)計(jì)為WEB服務(wù)器,其目的是能夠?qū)Σ杉K端進(jìn)行初始設(shè)置,與路由器的配置頁(yè)面類(lèi)似,當(dāng)電腦通過(guò)網(wǎng)線(xiàn)連接采集終端后,通過(guò)瀏覽器訪(fǎng)問(wèn)采集終端預(yù)置的IP地址或域名,便可訪(fǎng)問(wèn)終端服務(wù)器,如圖1所示。登錄后對(duì)終端將要連接的服務(wù)器IP地址或域名進(jìn)行配置以及對(duì)所采集的數(shù)據(jù)源進(jìn)行配置,圖2是終端服務(wù)器的登陸頁(yè)面。圖3為登錄后頁(yè)面。
登錄后可以對(duì)終端的網(wǎng)絡(luò)、目標(biāo)服務(wù)器、脈沖信號(hào)源、串口信號(hào)源等進(jìn)行配置,相關(guān)信息存入終端內(nèi)置的數(shù)據(jù)庫(kù),后臺(tái)程序讀取數(shù)據(jù)庫(kù)的配置信息,按照所設(shè)置的信息運(yùn)行程序,啟動(dòng)相應(yīng)的線(xiàn)程,完成對(duì)數(shù)據(jù)源的采集和傳輸。
3.2 數(shù)據(jù)采集和設(shè)備控制
采集終端上共有3種數(shù)據(jù)源的數(shù)據(jù)接口,IO脈沖信號(hào)、IO串口輸出信號(hào)以及USB Modelbus 485信號(hào)。
3.2.1 IO脈沖信號(hào)
脈沖信號(hào)的輸入可通過(guò)終端后臺(tái)程序計(jì)算出相應(yīng)的數(shù)據(jù),例如通過(guò)接入智能電表的脈沖信號(hào)能計(jì)算出電表的功率和電能,按此原理同樣可以獲得軸系轉(zhuǎn)速等數(shù)據(jù)。脈沖信號(hào)的輸出可以通過(guò)二進(jìn)制的組合控制輸出針腳的高低電平,例如通過(guò)2個(gè)針腳可以組合成:00、01、10、11共四種信號(hào),每種信號(hào)可以映射不同的預(yù)案。
3.2.2 IO串口輸出信號(hào)
采集終端通過(guò)IO串口輸出,可以連接繼電器,通過(guò)一組指令實(shí)現(xiàn)對(duì)設(shè)備的啟、停,也可以連接帶有串口數(shù)據(jù)接口的配電板,在接到服務(wù)器平臺(tái)的指令后,自動(dòng)向繼電器或配電板下發(fā)指令,以達(dá)到控制的目的。
3.2.3 USB Modelbus 485信號(hào)
通過(guò)USB Modelbus 485總線(xiàn),可以向所連接的若干個(gè)地址碼發(fā)出不同指令,每個(gè)地址碼可以連接采集器或者連接帶有串口接受指令的設(shè)備,通過(guò)這種方式,可以對(duì)設(shè)備進(jìn)行柔性控制,前提是設(shè)備供應(yīng)商必須開(kāi)放串口以及提供指令庫(kù)或指令算法。為了降低干擾,所有報(bào)文均進(jìn)行crc16校驗(yàn)或者根據(jù)設(shè)備商的標(biāo)準(zhǔn)算法進(jìn)行校驗(yàn)??紤]到采集器或設(shè)備的品牌多樣性,報(bào)文的格式也不相同,數(shù)據(jù)解析函數(shù)以及校驗(yàn)方法也不同,因此在終端可預(yù)置常用品牌型號(hào)的解析函數(shù),遇到新的品牌型號(hào)也可以通過(guò)配置頁(yè)面導(dǎo)入。這樣可以實(shí)現(xiàn)靈活接入不同的設(shè)備,并且具有記憶功能,只要導(dǎo)入一次,下次同樣的設(shè)備便可自動(dòng)識(shí)別。
3.3 通訊安全和數(shù)據(jù)傳輸
數(shù)據(jù)的傳輸可以通過(guò)光纜、Wi-Fi或gprs為載體,分為連接層和應(yīng)用層兩個(gè)層面。連接層即TCP層,應(yīng)用層即http層。
3.3.1 通訊安全
數(shù)據(jù)傳輸?shù)陌踩允欠浅V匾模壳氨容^流行的是http加SSL/TLS,即https。SSL/TLS是指非對(duì)稱(chēng)加密。同時(shí)還需要證書(shū)雙向認(rèn)證。具體實(shí)現(xiàn)過(guò)程如下:
(1)終端生成一個(gè)隨機(jī)數(shù) random-client,連同自己的證書(shū)信息、加密方式等傳到服務(wù)器端(Say Hello)。
(2)服務(wù)器隨后以權(quán)威機(jī)構(gòu)頒發(fā)的CA 數(shù)字證書(shū)驗(yàn)證終端的證書(shū);確認(rèn)無(wú)誤后,服務(wù)器端也生成一個(gè)新的隨機(jī)數(shù) random-server,連同服務(wù)器的證書(shū)和加密公鑰,一起回饋給終端(I got it)。
(3)終端收到后,同樣先以權(quán)威機(jī)構(gòu)頒發(fā)的CA 數(shù)字證書(shū)驗(yàn)證服務(wù)器的證書(shū);確認(rèn)無(wú)誤后,再次生成一個(gè)隨機(jī)數(shù),使用服務(wù)器的公鑰加密后形成premaster secret發(fā)給服務(wù)器。
(4)服務(wù)器收到后使用自己的私鑰解密premaster secret,這樣,終端和服務(wù)器都有了3個(gè)隨機(jī)數(shù)(random-client、random-server、premaster secret),此時(shí)安全通道已經(jīng)建立,服務(wù)器和終端各自根據(jù)這3個(gè)隨機(jī)數(shù)以及在以上交流中確定的算法算出相同的會(huì)話(huà)密碼即 session key。以后的通訊雙方均使用session key進(jìn)行加密和解密。
3.3.2 數(shù)據(jù)傳輸
雖然上述加密過(guò)程有些復(fù)雜,但卻可確保通訊安全。連接層加密通道建立后,在應(yīng)用層上使用http協(xié)議進(jìn)行數(shù)據(jù)傳輸,其最大優(yōu)點(diǎn)是會(huì)話(huà)結(jié)束后便斷開(kāi)連接,從而節(jié)省TCP資源,但其也有一個(gè)最大缺點(diǎn),就是及時(shí)性差。http連接在一般情況下,服務(wù)器是沒(méi)有辦法找到終端的,只能由終端去找服務(wù)器。在過(guò)去的項(xiàng)目中,我們?cè)O(shè)定終端每隔一段時(shí)間便主動(dòng)請(qǐng)求一下服務(wù)器,即輪詢(xún)poll。服務(wù)器收到輪詢(xún)請(qǐng)求后如果沒(méi)有新的指令要終端執(zhí)行,則回復(fù)一個(gè)正常的回復(fù)報(bào)文response;如果有新的指令需要終端執(zhí)行,則回復(fù)一個(gè)事件報(bào)文Distribute,終端收到后便會(huì)根據(jù)具體指令,通過(guò)串口或USB總線(xiàn)下發(fā)指令操控所連接的設(shè)備。
由此可見(jiàn),如果服務(wù)器想要某個(gè)設(shè)備執(zhí)行某個(gè)無(wú)法立刻做到的指令,只能等到終端下次輪詢(xún)來(lái)了才能下發(fā)指令,這種方式對(duì)于同步要求不高的陸用場(chǎng)景適用,但智能船舶上會(huì)有很多需要設(shè)備立刻動(dòng)作的場(chǎng)景,因此,http傳輸不一定適用,可以考慮用XMPP服務(wù)器。
3.4 數(shù)據(jù)服務(wù)器平臺(tái)
對(duì)于物聯(lián)網(wǎng)數(shù)據(jù)服務(wù)器來(lái)說(shuō),不但要求運(yùn)行穩(wěn)定,而且更重要的是要解決終端高并發(fā)請(qǐng)求的問(wèn)題;因此,在之前的物聯(lián)網(wǎng)項(xiàng)目中,我們選用Python一個(gè)強(qiáng)大的異步服務(wù)器框架TORNADO,同時(shí)配MongoDB數(shù)據(jù)庫(kù)。為了更進(jìn)一步加強(qiáng)異步效果,采用NGINX 反向代理TORNADO服務(wù)器群,等于同時(shí)部署多臺(tái)TORNADO服務(wù)器,利用NGINX作負(fù)載均衡,我們?cè)诎⒗镌粕线M(jìn)行了試驗(yàn),效果非常不錯(cuò)。服務(wù)器群如圖4所示。
Tornado服務(wù)器監(jiān)聽(tīng)8003端口
用戶(hù)可以通過(guò)瀏覽器登錄服務(wù)器平臺(tái)管理終端、設(shè)置終端的數(shù)據(jù)報(bào)告、下載數(shù)據(jù)以及對(duì)終端發(fā)送操作指令。服務(wù)器平臺(tái)同時(shí)提供數(shù)據(jù)庫(kù)接口,可以向其他應(yīng)用服務(wù)器提供數(shù)據(jù)。
數(shù)據(jù)信息的完整性即元數(shù)據(jù)的概念。如果采集的數(shù)據(jù)信息不完整,數(shù)據(jù)將變得毫無(wú)意義。例如,當(dāng)你采集到一個(gè)溫度的數(shù)值時(shí),這一數(shù)據(jù)必須包含描述其一切屬性(包括單位、時(shí)間、設(shè)備ID編號(hào)、設(shè)備名稱(chēng)、采集頻率和周期等等)。
采集終端存儲(chǔ)在MySQL數(shù)據(jù)表ven_info中的信息如圖5所示。
當(dāng)采集終端第一次連接服務(wù)器時(shí),終端會(huì)自動(dòng)讀取以上信息,并生成注冊(cè)請(qǐng)求(oadrCreatePartyRegistration)的XML報(bào)文,提交給服務(wù)器,請(qǐng)求注冊(cè),生成如圖6所示報(bào)文。
服務(wù)器收到請(qǐng)求后,將其解析成字典(見(jiàn)圖7)或者JSON格式,并存儲(chǔ)在服務(wù)器的數(shù)據(jù)庫(kù)內(nèi)。
服務(wù)器在處理完以上注冊(cè)請(qǐng)求后,會(huì)給終端一個(gè)相應(yīng)(oadrCreatedPartyRegistration)報(bào)文,格式如圖8所示。
在上述報(bào)文中,請(qǐng)求ID(pyld:requested)節(jié)點(diǎn)的值為“4027410604”,與終端請(qǐng)求報(bào)文中的同名節(jié)點(diǎn)的值相同,代表是同一次請(qǐng)求。同時(shí)在相應(yīng)報(bào)文中增加了注冊(cè)ID(ei:registrationID)節(jié)點(diǎn),注冊(cè)ID可以在以后的重新注冊(cè)中使用,以及輪詢(xún)要求(oadr:oadrRequestedOadrPollFreq),其子節(jié)點(diǎn)“xcal:duration”的值為“PT5M”,代表每五分鐘輪詢(xún)一次。
以上是OpenADR注冊(cè)請(qǐng)求的2次交互,按照OpenADR規(guī)范的要求,采集終端(VEN)和數(shù)據(jù)服務(wù)器(VTN)至少要有8組不同的交互報(bào)文,簡(jiǎn)述如下:
(1)VEN上電后立即注冊(cè)
①VEN發(fā)送oadrCreatePartyRegistration注冊(cè)請(qǐng)求;
②VTN發(fā)送oadrCreatedPartyRegistration建立注冊(cè);
③VEN發(fā)送oadrRegisterReport注冊(cè)報(bào)告;
④VTN發(fā)送oadrRegisteredReport,不請(qǐng)求任何報(bào)告。
(2)VEN注冊(cè)后,按照服務(wù)端指定的輪詢(xún)頻率,開(kāi)始發(fā)送oadrPoll輪詢(xún)
(3)VTN向設(shè)備請(qǐng)求數(shù)據(jù)報(bào)告
①VEN發(fā)送oadrPoll輪詢(xún)VTN;
②VTN發(fā)送oadrCreateReport;
③VEN發(fā)送oadrCreatedReport。
(4)VEN向VTN上傳數(shù)據(jù)報(bào)告
①VEN發(fā)送oadrUpdateReport上傳數(shù)據(jù);
②VTN發(fā)送oadrUpdatedReport確認(rèn)。
(5)VTN取消VEN的數(shù)據(jù)報(bào)告
①VEN發(fā)送oadrPoll輪詢(xún)VTN;
②VTN發(fā)送oadrCancelReport取消報(bào)告請(qǐng)求;
③VEN發(fā)送oadrCanceledReport確認(rèn)取消報(bào)告請(qǐng)求。
(6)VTN請(qǐng)求設(shè)備重新注冊(cè)
①VEN發(fā)送oadrPoll輪詢(xún)VTN;
②VTN發(fā)送oadrRequestReregistration;
③VEN發(fā)送oadrResponse;
④VEN發(fā)送oadrCreatePartyRegistration;
⑤VTN發(fā)oadrCreatedPartyRegistration。
(7)VTN取消VEN注冊(cè)信息
①VEN發(fā)送oadrPoll輪詢(xún)VTN;
②VTN發(fā)送oadrCancelPartyRegistration;
③VEN發(fā)oadrCanceledPartyRegistration
(8)VTN向VEN發(fā)送事件信息
①VEN發(fā)送oadrPoll輪詢(xún)VTN;
②VTN發(fā)送oadrDistributeEvent;
③VEN發(fā)送oadrCreatedEvent;
④VTN發(fā)送oadrResponse。
以上每組報(bào)文,用戶(hù)可根據(jù)自己所需要自行制定,力求做到數(shù)據(jù)信息完整。
在將來(lái)智能船舶的元數(shù)據(jù)中,首先需要制定統(tǒng)一的元數(shù)據(jù)框架標(biāo)準(zhǔn),無(wú)論數(shù)據(jù)怎樣變化,對(duì)于系統(tǒng)來(lái)說(shuō)其框架都是相同的,變化的只是數(shù)值和屬性。這對(duì)于船舶龐大而復(fù)雜的系統(tǒng)來(lái)說(shuō)至關(guān)重要。
本文首先分析智能船舶的數(shù)據(jù)采集和傳輸所面臨的問(wèn)題與需求,然后,面對(duì)底層數(shù)據(jù)采集和傳輸?shù)耐暾院鸵?guī)范性要求,基于物聯(lián)網(wǎng)技術(shù),參考美國(guó)OpenADR通訊規(guī)范,以自動(dòng)需求相應(yīng)平臺(tái)硬件和軟件的開(kāi)發(fā)設(shè)計(jì)思路和框架,設(shè)計(jì)和實(shí)現(xiàn)一套針對(duì)智能船舶的數(shù)據(jù)系統(tǒng),包括數(shù)據(jù)采集終端、數(shù)據(jù)傳輸和數(shù)據(jù)服務(wù)器等三大內(nèi)容,并論述系統(tǒng)數(shù)據(jù)的信息完整性問(wèn)題,最終實(shí)現(xiàn)規(guī)范化的數(shù)據(jù)采集、傳輸和管理,為智能船舶的上層應(yīng)用平臺(tái)奠定良好的基礎(chǔ)。
[1] OpenADR Alliance. OpenADR 2.0 Profile Specification B Profile[R]. 2013.
[2] 中國(guó)船級(jí)社.智能船舶規(guī)范[S]. 2015:1-39.
Data collection and transmission system of intelligent ship based on OpenADR specif i cation
WU Jun1ZHOU Xiao-wei2LU Yang2
(1. ChangshuRuite Institute of Intelligent Ship Equipment Co., Ltd., Changshu 215500, China; 2. Changshu Ruite Electric Co., Ltd., Changshu 215500, China)
In order to make the underlying data collection and transmission of the intelligent ship complete and regulatory, this paper designs and implements a data collection and transmission system based on the technology of the internet of things. It is developed through the concept and framework of the hardware and software for the automated demand response platform with reference to the American OpenADR Specif i cation. It could provide a good foundation for the application platform of the intelligent ship.
intelligent ship; Internet of Things; data collection and transmission; data platform
U665.261
A
1001-9855(2017)04-0032-07
10.19423 / j.cnki.31-1561 / u.2017.04.032
2017-05-11;
2017-06-30
吳 軍(1967-),男,工程師。研究方向:造船工程、物聯(lián)網(wǎng)工程。
周?chē)[偉(1983-),男,工程師。研究方向:信息工程、計(jì)算機(jī)。
魯 楊(1982-),男,工程師。研究方向:自動(dòng)化系統(tǒng)集成。