本發(fā)明屬于工業(yè)測(cè)控網(wǎng)絡(luò)技術(shù)領(lǐng)域,涉及一種MODBUS/全互聯(lián)制造網(wǎng)絡(luò)信息服務(wù)適配器及其實(shí)現(xiàn)方法。
背景技術(shù):
傳統(tǒng)控制系統(tǒng)通常分層結(jié)構(gòu)較好地滿足了工業(yè)現(xiàn)場(chǎng)的應(yīng)用需求,但卻無(wú)法實(shí)現(xiàn)底層現(xiàn)場(chǎng)控制網(wǎng)與互聯(lián)網(wǎng)的無(wú)縫融合,限制了現(xiàn)場(chǎng)層、MES、ERP的一體化信息集成。為此,服務(wù)于智能制造的以XMPP為傳輸協(xié)議,以TR069為管理協(xié)議的基于IPv6的全互聯(lián)制造網(wǎng)絡(luò)備受業(yè)界關(guān)注。
現(xiàn)場(chǎng)總線是近年來(lái)迅速發(fā)展起來(lái)的一種工業(yè)數(shù)據(jù)總線,其具有簡(jiǎn)單、可靠、經(jīng)濟(jì)實(shí)用等一系列突出的優(yōu)點(diǎn)。而MODBUS工業(yè)現(xiàn)場(chǎng)總線協(xié)議,它開(kāi)發(fā)免費(fèi),可構(gòu)建各種復(fù)雜的監(jiān)控系統(tǒng),并方便系統(tǒng)的維護(hù)和擴(kuò)展,可兼容各個(gè)廠家的儀器儀表,已被國(guó)內(nèi)外工業(yè)控制行業(yè)選擇共同支持的一種通用的工業(yè)標(biāo)準(zhǔn)協(xié)議。XML是一種能夠自描述的標(biāo)記語(yǔ)言,可以根據(jù)領(lǐng)域需求定義自己的標(biāo)記語(yǔ)言,提供了與語(yǔ)言和平臺(tái)無(wú)關(guān)的數(shù)據(jù)形式,有效解決了異構(gòu)系統(tǒng)之間的數(shù)據(jù)交換問(wèn)題,有利系統(tǒng)間的融合和銜接,實(shí)現(xiàn)數(shù)據(jù)的共享。
XMPP協(xié)議是一種基于IP技術(shù)和XML語(yǔ)言的即時(shí)信息傳輸規(guī)范。作為一種具有良好實(shí)時(shí)性和擴(kuò)展性的應(yīng)用層協(xié)議,XMPP協(xié)議已經(jīng)在互聯(lián)網(wǎng)中得到了廣泛的部署和應(yīng)用。借助于XMPP協(xié)議,不僅能使物聯(lián)網(wǎng)內(nèi)部具備一致的實(shí)時(shí)性應(yīng)用層信息傳輸規(guī)范,而且能夠?qū)崿F(xiàn)物聯(lián)網(wǎng)的節(jié)點(diǎn)與互聯(lián)網(wǎng)的設(shè)備之間的遵循統(tǒng)一標(biāo)準(zhǔn)的通信,從而有助于實(shí)現(xiàn)物到物、人到物的標(biāo)準(zhǔn)化的信息傳輸目標(biāo)。
TR069協(xié)議是由寬帶論壇提出的用戶終端設(shè)備廣域網(wǎng)管理協(xié)議。應(yīng)用CWMP協(xié)議對(duì)互聯(lián)網(wǎng)設(shè)備進(jìn)行實(shí)時(shí)監(jiān)測(cè)和控制,能夠減少設(shè)備管理和維護(hù)人員到設(shè)備現(xiàn)場(chǎng)進(jìn)行的工作,有利于設(shè)備的部署和使用,節(jié)約了大量人力成本。同時(shí),自動(dòng)配置服務(wù)器還可以為服務(wù)供應(yīng)商提供在網(wǎng)設(shè)備所支持的互聯(lián)網(wǎng)業(yè)務(wù),優(yōu)化了對(duì)在網(wǎng)設(shè)備管理的過(guò)程。
然而采用MODBUS現(xiàn)場(chǎng)協(xié)議的設(shè)備無(wú)法接入基于IP協(xié)議的網(wǎng)絡(luò),并無(wú)法與支持XMPP與TR069協(xié)議的管理設(shè)備進(jìn)行通信。IP化是是技術(shù)發(fā)展的必然選擇,滿足端到端的通信和管理需求,并且XMPP與TR069能更方便的進(jìn)行數(shù)據(jù)傳輸和管理。所以,發(fā)明一種MODBUS/全互聯(lián)制造網(wǎng)絡(luò)信息服務(wù)適配器十分必要。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明的目的是提供一種MODBUS/全互聯(lián)制造網(wǎng)絡(luò)信息服務(wù)適配器及其實(shí)現(xiàn)方法。
本發(fā)明的目的之一是通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn)的,一種MOBUS全互聯(lián)制造網(wǎng)絡(luò)信息服務(wù)適配器,包括主控制單元、外網(wǎng)接入單元、串口單元和MODBUS協(xié)議數(shù)據(jù)采集單元,所述外網(wǎng)接入單元用于將MODBUS的數(shù)據(jù)上傳至上位機(jī),實(shí)現(xiàn)對(duì)底層設(shè)備的數(shù)據(jù)采集、運(yùn)行狀態(tài)的監(jiān)控以及和參數(shù)的設(shè)置;所述主控制單元用于將MODBUS的數(shù)據(jù)包轉(zhuǎn)換IPv6數(shù)據(jù)包,并完成系統(tǒng)調(diào)度、管理和控制;所述MODBUS協(xié)議數(shù)據(jù)采集單元負(fù)責(zé)底層設(shè)備的采集,以及對(duì)設(shè)備的管理與數(shù)據(jù)交互;所述串口單元用于將MODBUS協(xié)議數(shù)據(jù)采集單元采集的設(shè)備信號(hào)接入主控制單元。
進(jìn)一步,還包括協(xié)議處理模塊、XMPP報(bào)文構(gòu)造模塊、XMPP報(bào)文解析模塊、數(shù)據(jù)通信模塊、MODBUS RTU連接模塊和TCP/IPv6連接模塊;其中協(xié)議處理模塊里面包含登陸認(rèn)證功能、讀功能、發(fā)布/訂閱功能;TCP/IPv6連接模塊:發(fā)送/響應(yīng)TCP連接的請(qǐng)求/響應(yīng),建立或斷開(kāi)與XMPP服務(wù)器TCP的連接;MODBUS RTU連接模塊,將上層傳遞下來(lái)的XML數(shù)據(jù)轉(zhuǎn)換為MODBUS數(shù)據(jù)幀,實(shí)現(xiàn)適配器向MODBUS設(shè)備發(fā)送數(shù)據(jù);反之,將收到MODBUS數(shù)據(jù)幀轉(zhuǎn)換為XML數(shù)據(jù)解析并傳遞到上層處理;數(shù)據(jù)通信模塊,完成MODBUS和IPv6與XMPP應(yīng)用層的轉(zhuǎn)發(fā);XMPP報(bào)文解析模塊,將接收到的XMPP報(bào)文解析并遞交給協(xié)議處理模塊;XMPP報(bào)文構(gòu)造模塊,收到協(xié)議處理模塊的發(fā)送指令時(shí),構(gòu)造XMPP報(bào)文并遞交給底層通信模塊;協(xié)議處理模塊,驗(yàn)證進(jìn)入該模塊XML節(jié)的合法性,處理符合XMPP協(xié)議的XML節(jié),完成與XMPP服務(wù)器登陸連接過(guò)程。
本發(fā)明的目的之二是通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn)的,一種MODBUS/全互聯(lián)制造網(wǎng)絡(luò)信息服務(wù)實(shí)現(xiàn)方法,包括XMPP的協(xié)議轉(zhuǎn)換方法,XMPP的協(xié)議轉(zhuǎn)換方法包括以下步驟:
S1:適配器利用為每個(gè)設(shè)備分配的IPv6地址分別與XMPP服務(wù)器建立一條TCP連接,并通過(guò)XMPP服務(wù)器認(rèn)證;
S2:XMPP客戶端與MODBUS設(shè)備通信:首先XMPP客戶端的請(qǐng)求通過(guò)XMPP服務(wù)器轉(zhuǎn)發(fā)給適配器,適配器再與MODBUS設(shè)備通信;
S3:XMPP客戶端通過(guò)適配器讀MODBUS設(shè)備信息:首先適配器找到MODBUS設(shè)備對(duì)應(yīng)的JID,然后對(duì)照映射表,找到該MODBUS設(shè)備的地址,并且將XML數(shù)據(jù)流轉(zhuǎn)換成MODBUS協(xié)議數(shù)據(jù),發(fā)給MODBUS設(shè)備,若是讀取成功則返回該MODBUS設(shè)備的最新當(dāng)前MODBUS數(shù)據(jù),然后將MODBUS數(shù)據(jù)轉(zhuǎn)換XML數(shù)據(jù)流,此時(shí)再次查找MODBUS設(shè)備JID映射表,找到MODBUS設(shè)備對(duì)應(yīng)的JID,并解析轉(zhuǎn)換MODBUS數(shù)據(jù)信息,形成XML數(shù)據(jù)格式的讀響應(yīng),返回給XMPP客戶端;
S4:MODBUS設(shè)備發(fā)布消息:適配器讀取MODBUS設(shè)備信息,再將MODBUS設(shè)備信息發(fā)布到XMPP服務(wù)器上。
由于采用了上述技術(shù)方案,本發(fā)明具有如下的優(yōu)點(diǎn):
本發(fā)明無(wú)需對(duì)現(xiàn)場(chǎng)設(shè)備和現(xiàn)場(chǎng)協(xié)議做任何改動(dòng),可支持將底層MODBUS設(shè)備以IPv6技術(shù)接入以太網(wǎng)中;通過(guò)構(gòu)建信息模型映射模塊,將MODBUS信息轉(zhuǎn)換成XMPP和TR069信息流,確保數(shù)據(jù)格式保持一致性。該適配器能夠穩(wěn)定地將MODBUS網(wǎng)絡(luò)設(shè)備接入以XMPP為傳輸協(xié)議,以TR069為管理協(xié)議的全互聯(lián)制造網(wǎng)絡(luò),從而方便的對(duì)MODBUS設(shè)備進(jìn)行統(tǒng)一的監(jiān)控與管理。
附圖說(shuō)明
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步的詳細(xì)描述,其中:
圖1為MODBUS適配器應(yīng)用系統(tǒng)架構(gòu);
圖2為適配器的硬件單元結(jié)構(gòu)框圖;
圖3為適配器XMPP軟件架構(gòu)設(shè)計(jì)方案圖;
圖4為XMPP軟件模塊設(shè)計(jì)流程圖;
圖5為TR069軟件模塊設(shè)計(jì)流程圖。
具體實(shí)施方式
以下將結(jié)合附圖,對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行詳細(xì)的描述;應(yīng)當(dāng)理解,優(yōu)選實(shí)施例僅為了說(shuō)明本發(fā)明,而不是為了限制本發(fā)明的保護(hù)范圍。
圖1為該適配器的應(yīng)用系統(tǒng)架構(gòu)。MODBUS適配器通過(guò)串口總線利用MODBUS協(xié)議與設(shè)備進(jìn)行通信,可讀取或?qū)懭胄畔?;通過(guò)有線或者WIFI網(wǎng)絡(luò),可以與XMPP服務(wù)器和TR069自動(dòng)配置服務(wù)器進(jìn)行通信。由于連接串口總線的設(shè)備使用的是MODBUS協(xié)議,不能直接支持XML數(shù)據(jù)描述,無(wú)法與XMPP服務(wù)器和TR069管理軟件進(jìn)行通信,所以需通過(guò)MODBUS適配器進(jìn)行協(xié)議轉(zhuǎn)換。
該實(shí)現(xiàn)架構(gòu)為,通過(guò)MODBUS現(xiàn)場(chǎng)網(wǎng)絡(luò),獲取當(dāng)前MODBUS設(shè)備的對(duì)象模型,并利用MODUS協(xié)議棧解析從通信接口獲取的現(xiàn)場(chǎng)設(shè)備信息,不斷更新本地設(shè)備屬性存儲(chǔ)文件,使其提供數(shù)據(jù)到功能應(yīng)用和監(jiān)控管理模塊。然后通過(guò)對(duì)其信息模型的映射,使其XML對(duì)象模型映射為XMPP處理的XML數(shù)據(jù)服務(wù)模塊和TR069處理的XML管理服務(wù)模塊的對(duì)象模型,并通過(guò)IPv6技術(shù)將其傳遞給其他XML設(shè)備處理系統(tǒng),該設(shè)備一般為管理器。
圖2為該適配器的硬件單元結(jié)構(gòu)框圖,如圖所示,該適配器的硬件平臺(tái)包括四個(gè)單元:外網(wǎng)接入單元、主控制單元、MODBUS協(xié)議數(shù)據(jù)采集單元和電源管理單元;所述外網(wǎng)接入單元有WIFI和以太網(wǎng)兩種方式,作用是將采集到的設(shè)備數(shù)據(jù)通過(guò)上傳到上位機(jī)或者手機(jī)APP,實(shí)現(xiàn)對(duì)設(shè)備遠(yuǎn)程監(jiān)控,同時(shí)上位機(jī)也能直接訪問(wèn)并控制設(shè)備;所述主控制單元作為適配器里核心單元,處理適配器中MODBUS協(xié)議數(shù)據(jù)包的轉(zhuǎn)換,完成系統(tǒng)調(diào)度、管理和控制;所述MODBUS協(xié)議數(shù)據(jù)采集單元負(fù)責(zé)底層設(shè)備的采集,以及對(duì)設(shè)備的管理與數(shù)據(jù)交互;所述電源管理單元負(fù)責(zé)為整個(gè)網(wǎng)關(guān)系統(tǒng)提供可持續(xù)、穩(wěn)定的工作電源。
圖3為適配器XMPP軟件架構(gòu)方案,該適配器包括協(xié)議處理模塊,XMPP報(bào)文構(gòu)造模塊、XMPP報(bào)文解析模塊、數(shù)據(jù)通信模塊、MODBUS RTU連接模塊、TCP/IPv6連接模塊。其中協(xié)議處理模塊里面包含MODBUS設(shè)備、登陸認(rèn)證功能、讀功能、發(fā)布/訂閱功能。
TCP/IPv6連接模塊,發(fā)送/響應(yīng)TCP連接的請(qǐng)求/響應(yīng),建立或斷開(kāi)與XMPP服務(wù)器TCP的連接。其MODBUS設(shè)備連入適配器后,適配器根據(jù)MODBUS設(shè)備號(hào)分配IPv6地址,傳輸時(shí)利用TCP/IPv6協(xié)議進(jìn)行傳輸。
MODBUS RTU連接模塊,將上層傳遞下來(lái)的XML數(shù)據(jù)轉(zhuǎn)換為MODBUS數(shù)據(jù)幀,實(shí)現(xiàn)適配器向MODBUS設(shè)備發(fā)送數(shù)據(jù);反之,收到MODBUS數(shù)據(jù)幀,將其轉(zhuǎn)換為XML數(shù)據(jù)解析并傳遞到上層處理。
數(shù)據(jù)通信模塊,完成MODBUS和IPv6與XMPP應(yīng)用層的轉(zhuǎn)發(fā)。
XMPP報(bào)文解析模塊,將接收到的XMPP報(bào)文解析并遞交給協(xié)議處理模塊。
XMPP報(bào)文構(gòu)造模塊,收到協(xié)議處理模塊的發(fā)送指令時(shí),構(gòu)造XMPP報(bào)文并遞交給底層通信模塊。
協(xié)議處理模塊,驗(yàn)證進(jìn)入該模塊XML節(jié)的合法性,處理符合XMPP協(xié)議的XML節(jié),完成與XMPP服務(wù)器登陸連接過(guò)程,該過(guò)程需要登陸認(rèn)證和出席信息,建立連接之后可以處理管理設(shè)備屬性的讀功能和發(fā)布/訂閱功能。其中設(shè)備管理功能為建立MODBUS設(shè)備屬性管理,包括其設(shè)備號(hào)、寄存器起始地址、長(zhǎng)度、屬性名、方法及屬性值。屬性根據(jù)用戶的設(shè)備具體參數(shù)進(jìn)行確定,如溫度、濕度等。方法包括讀、功能和發(fā)布/訂閱功能。
本發(fā)明還提供一種MODBUS/全互聯(lián)制造網(wǎng)絡(luò)信息服務(wù)實(shí)現(xiàn)方法,包括XMPP的協(xié)議轉(zhuǎn)換方法,XMPP的協(xié)議轉(zhuǎn)換方法包括以下步驟:
S1:適配器利用為每個(gè)設(shè)備分配的IPv6地址分別與XMPP服務(wù)器建立一條TCP連接,并通過(guò)XMPP服務(wù)器認(rèn)證;
S2:XMPP客戶端與MODBUS設(shè)備通信:首先XMPP客戶端的請(qǐng)求通過(guò)XMPP服務(wù)器轉(zhuǎn)發(fā)給適配器,適配器再與MODBUS設(shè)備通信;
S3:XMPP客戶端通過(guò)適配器讀MODBUS設(shè)備信息:首先適配器找到MODBUS設(shè)備對(duì)應(yīng)的JID,然后對(duì)照映射表,找到該MODBUS設(shè)備的地址,并且將XML數(shù)據(jù)流轉(zhuǎn)換成MODBUS協(xié)議數(shù)據(jù),發(fā)給MODBUS設(shè)備,若是讀取成功則返回該MODBUS設(shè)備的最新當(dāng)前MODBUS數(shù)據(jù),然后將MODBUS數(shù)據(jù)轉(zhuǎn)換XML數(shù)據(jù)流,此時(shí)再次查找MODBUS設(shè)備JID映射表,找到MODBUS設(shè)備對(duì)應(yīng)的JID,并解析轉(zhuǎn)換MODBUS數(shù)據(jù)信息,形成XML數(shù)據(jù)格式的讀響應(yīng),返回給XMPP客戶端;
S4:MODBUS設(shè)備發(fā)布消息:適配器讀取MODBUS設(shè)備信息,再將MODBUS設(shè)備信息發(fā)布到XMPP服務(wù)器上。
圖4為XMPP軟件模塊設(shè)計(jì)流程,流程如下:
第一步,MODBUS接口初始化,對(duì)MODBUS通信接口模塊進(jìn)行初始化操作,通信協(xié)議為標(biāo)準(zhǔn)的MODBUS協(xié)議;
第二步,MODBUS設(shè)備列表初始化,對(duì)將連入該適配器的設(shè)備屬性制作一個(gè)屬性列表,包括其設(shè)備編號(hào)、設(shè)備屬性、屬性值等等,并將其初始化為默認(rèn)值。
第三步,初始化XMPP通信模塊,實(shí)時(shí)監(jiān)控發(fā)送或接收的XML數(shù)據(jù)流。
第四步,創(chuàng)建鏈路管理模塊,與XMPP服務(wù)器建立TCP連接,管理XML數(shù)據(jù)的接收和發(fā)送;
第五步,創(chuàng)建應(yīng)用數(shù)據(jù)處理模塊,接收XMPP服務(wù)器數(shù)據(jù),并判斷其有效性。如果有效,則判斷是IQ、Message還是Presence節(jié),并對(duì)應(yīng)進(jìn)行處理;
第六部,周期性遍歷MODBUS適配內(nèi)設(shè)備類表內(nèi)的所有設(shè)備及所包含的屬性,發(fā)送數(shù)據(jù)讀取請(qǐng)求,并等待接收設(shè)備反饋的響應(yīng)數(shù)據(jù)。根據(jù)收到的數(shù)據(jù)更新設(shè)備列表中相應(yīng)設(shè)備內(nèi)對(duì)應(yīng)屬性的值。
第七步,根據(jù)適配器內(nèi)維護(hù)的MODBUS設(shè)備列表中各個(gè)設(shè)備屬性的發(fā)布訂閱關(guān)系,周期性發(fā)布消息。
圖5為TR069軟件模塊設(shè)計(jì)流程,流程如下:
第一步,MODBUS接口初始化,對(duì)MODBUS通信接口模塊進(jìn)行初始化操作,通信協(xié)議為標(biāo)準(zhǔn)的MODBUS協(xié)議;
第二步,MODBUS設(shè)備列表初始化,對(duì)將連入該適配器的設(shè)備屬性制作一個(gè)屬性列表,包括其設(shè)備編號(hào)、設(shè)備屬性、屬性值等等,并將其初始化為默認(rèn)值。
第三步,創(chuàng)建鏈路管理模塊,與自動(dòng)配置服務(wù)器建立TCP連接,上報(bào)Inform信息;
第四步,創(chuàng)建應(yīng)用數(shù)據(jù)處理模塊,接收自動(dòng)配置服務(wù)器的配置信息,并判斷其有效性,如果有效,則根據(jù)信息內(nèi)容對(duì)MODBUS屬性值進(jìn)行相應(yīng)的處理;
第五步,周期性遍歷MODBUS適配內(nèi)設(shè)備類表內(nèi)的所有設(shè)備及所包含的屬性,發(fā)送數(shù)據(jù)讀取/寫入請(qǐng)求,并等待接收設(shè)備反饋的響應(yīng)數(shù)據(jù)。根據(jù)收到的數(shù)據(jù)更新設(shè)備列表中相應(yīng)設(shè)備內(nèi)對(duì)應(yīng)屬性的值。
最后說(shuō)明的是,以上優(yōu)選實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案而非限制,盡管通過(guò)上述優(yōu)選實(shí)施例已經(jīng)對(duì)本發(fā)明進(jìn)行了詳細(xì)的描述,但本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,可以在形式上和細(xì)節(jié)上對(duì)其作出各種各樣的改變,而不偏離本發(fā)明權(quán)利要求書(shū)所限定的范圍。