一種適用于無(wú)線現(xiàn)場(chǎng)設(shè)備的opc ua休眠代理方法
【專利摘要】本發(fā)明請(qǐng)求保護(hù)一種適用于無(wú)線現(xiàn)場(chǎng)設(shè)備的OPC UA休眠代理方法,該方法使得基于OPC UA協(xié)議的無(wú)線現(xiàn)場(chǎng)設(shè)備具有休眠代理功能,可有效延長(zhǎng)網(wǎng)絡(luò)設(shè)備的生存周期,同時(shí)解決設(shè)備休眠時(shí)的數(shù)據(jù)無(wú)法正常讀取的問(wèn)題。方法根據(jù)OPC UA系列協(xié)議標(biāo)準(zhǔn),設(shè)計(jì)了一種休眠代理交互機(jī)制,并根據(jù)該機(jī)制設(shè)計(jì)了一套休眠代理服務(wù)集合,包括休眠握手服務(wù)、休眠注冊(cè)服務(wù)、休眠更新服務(wù)、休眠通知服務(wù)、休眠喚醒通知服務(wù)以及休眠確認(rèn)服務(wù)。本發(fā)明在不變動(dòng)OPC UA客戶端的情況下,在OPC UA服務(wù)器中引入了休眠代理功能,滿足了能量受限的無(wú)線現(xiàn)場(chǎng)設(shè)備的休眠需求。
【專利說(shuō)明】
一種適用于無(wú)線現(xiàn)場(chǎng)設(shè)備的OPC UA休眠代理方法
技術(shù)領(lǐng)域
[0001]本發(fā)明屬于無(wú)線傳感器網(wǎng)絡(luò)技術(shù)領(lǐng)域,具體涉及一種適用于無(wú)線現(xiàn)場(chǎng)設(shè)備的OPCUA休眠代理方法。
【背景技術(shù)】
[0002]工業(yè)物聯(lián)網(wǎng)的一個(gè)重要思想是連接工業(yè)系統(tǒng)并對(duì)數(shù)據(jù)進(jìn)行分析和執(zhí)行相關(guān)動(dòng)作來(lái)提高性能和效率。物聯(lián)網(wǎng)的實(shí)施需要在組織設(shè)計(jì)和擴(kuò)展工業(yè)系統(tǒng)方面作出改變,最合理的方法是通過(guò)標(biāo)準(zhǔn)、安全的通訊協(xié)議集成現(xiàn)有的自動(dòng)化設(shè)備。OPC UA不僅能夠進(jìn)行數(shù)據(jù)交換,而且還能夠提供信息建模能力以及安全、獨(dú)立于平臺(tái)的通訊方式,它為M2M通訊提供了一個(gè)通用的技術(shù)和語(yǔ)義操作層,對(duì)實(shí)現(xiàn)工業(yè)互聯(lián)網(wǎng)來(lái)說(shuō)至關(guān)重要。通過(guò)OPC UA統(tǒng)一架構(gòu)可以為工業(yè)領(lǐng)域提供一個(gè)面向未來(lái)且獨(dú)立于制造商的通訊標(biāo)準(zhǔn)。它的可擴(kuò)展性使得系統(tǒng)、機(jī)器和工藝流程的橫向和縱向聯(lián)網(wǎng)成為可能。
[0003]在底層物聯(lián)網(wǎng)中網(wǎng)絡(luò)的設(shè)備數(shù)量多,由于設(shè)備布置的環(huán)境通常較復(fù)雜且布線困難的特點(diǎn),底層設(shè)備通常采用無(wú)線傳輸和電池供電。由于經(jīng)常性的更換設(shè)備電池成本高且工作量巨大,如何降低設(shè)備功耗來(lái)延長(zhǎng)整個(gè)網(wǎng)絡(luò)的生存時(shí)間是必須解決的一個(gè)問(wèn)題。
[0004]雖然在底層物聯(lián)網(wǎng)中引入休眠功能可以極大地提高設(shè)備的使用壽命,延長(zhǎng)網(wǎng)絡(luò)的生存期,但這樣導(dǎo)致的結(jié)果是休眠設(shè)備在休眠狀態(tài)下不可被訪問(wèn)。這對(duì)于采用C/S模式通信的OPC UA來(lái)說(shuō)是不可接受的,客戶端在訪問(wèn)已經(jīng)休眠的設(shè)備時(shí)將表現(xiàn)出服務(wù)器不可達(dá)的狀態(tài)。這導(dǎo)致兩個(gè)問(wèn)題的產(chǎn)生,第一是作為服務(wù)器的設(shè)備休眠后采集的數(shù)據(jù)無(wú)法提供給外部網(wǎng)絡(luò),第二是外部客戶端無(wú)法找到已經(jīng)休眠的服務(wù)器容易引起網(wǎng)絡(luò)故障。
【發(fā)明內(nèi)容】
[0005]針對(duì)以上現(xiàn)有技術(shù)的不足,本發(fā)明提供了一種滿足無(wú)線現(xiàn)場(chǎng)設(shè)備的休眠需求以延長(zhǎng)網(wǎng)絡(luò)的生存期,同時(shí)解決設(shè)備休眠時(shí)數(shù)據(jù)不能訪問(wèn)的適用于無(wú)線現(xiàn)場(chǎng)設(shè)備的OPC UA休眠代理方法。本發(fā)明的技術(shù)方案如下:
[0006]一種適用于無(wú)線現(xiàn)場(chǎng)設(shè)備的OPC UA休眠代理方法,其包括以下步驟:
[0007]101、首先進(jìn)行無(wú)線現(xiàn)場(chǎng)設(shè)備的休眠服務(wù)器初始化,再選擇一個(gè)臨時(shí)代理服務(wù)器,其中該臨時(shí)代理服務(wù)器為網(wǎng)絡(luò)中不休眠的設(shè)備,包括現(xiàn)場(chǎng)路由器或者邊界網(wǎng)關(guān),發(fā)送休眠握手消息到臨時(shí)代理服務(wù)器進(jìn)行握手操作;
[0008]102、臨時(shí)代理服務(wù)器收到休眠握手消息后,根據(jù)休眠握手消息中的申請(qǐng)緩存大小以及自身情況確定能否提供代理服務(wù),如果能夠?yàn)樾菝叻?wù)器提供代理功能,則為其分配一個(gè)唯一的Sle印ID用于標(biāo)示休眠代理關(guān)系,然后使用休眠握手確認(rèn)消息通知代理結(jié)果;
[0009]103、休眠服務(wù)器收到臨時(shí)代理服務(wù)器的休眠握手確認(rèn)消息后,如果服務(wù)結(jié)果顯示臨時(shí)代理服務(wù)器不能提供代理服務(wù),則跳至步驟101,重新選擇臨時(shí)代理服務(wù)器;如果服務(wù)結(jié)果顯示臨時(shí)代理服務(wù)器能夠提供代理服務(wù),則將臨時(shí)代理服務(wù)器確認(rèn)為自己的代理服務(wù)器,并通過(guò)休眠注冊(cè)消息在代理服務(wù)器上注冊(cè)自己需要緩存的信息;
[0010]104、代理服務(wù)器收到休眠服務(wù)器發(fā)來(lái)的休眠注冊(cè)消息后,根據(jù)SleepID查找緩存區(qū)有無(wú)該休眠服務(wù)器的緩存信息,如果沒(méi)有則將收到的注冊(cè)信息放到緩存中并回復(fù)休眠注冊(cè)成功確認(rèn),如果已經(jīng)有緩存則回復(fù)休眠注冊(cè)失敗確認(rèn);
[0011]105、休眠設(shè)備收到代理服務(wù)器回復(fù)的休眠注冊(cè)響應(yīng)后,如果響應(yīng)結(jié)果顯示代理失敗,則表明代理服務(wù)器沒(méi)有代理功能,則跳至步驟101,重新選擇臨時(shí)代理服務(wù)器,如果響應(yīng)結(jié)果顯示代理成功,則表明代理成功,設(shè)備可以進(jìn)入休眠狀態(tài),此時(shí)需要向休眠服務(wù)器發(fā)送休眠通知消息,在等到代理服務(wù)器在確認(rèn)之后即進(jìn)入休眠狀態(tài);
[0012]106、代理服務(wù)器在收到休眠服務(wù)器發(fā)來(lái)的休眠通知消息后,記錄下休眠周期并將該服務(wù)器的狀態(tài)標(biāo)記為休眠狀態(tài),然后給休眠服務(wù)器回復(fù)一個(gè)休眠請(qǐng)求確認(rèn)消息,休眠服務(wù)器在收到確認(rèn)消息之后進(jìn)入休眠狀態(tài),直到休眠周期結(jié)束或者外部中斷的觸發(fā)。
[0013]進(jìn)一步的,當(dāng)休眠服務(wù)器從休眠狀態(tài)醒來(lái)后,需及時(shí)向代理服務(wù)器發(fā)送休眠喚醒通知消息,代理服務(wù)器收到休眠服務(wù)器發(fā)來(lái)的休眠喚醒通知消息后,將休眠服務(wù)器的狀態(tài)設(shè)置為喚醒態(tài),并記錄休眠服務(wù)器的喚醒時(shí)間,當(dāng)代理服務(wù)器超過(guò)約定的喚醒周期還沒(méi)收到休眠服務(wù)器的狀態(tài)更新消息,則將休眠服務(wù)器的狀態(tài)設(shè)置成休眠態(tài)。
[0014]進(jìn)一步的,當(dāng)休眠服務(wù)器檢測(cè)到數(shù)據(jù)更新或者有事件生成時(shí),則通過(guò)休眠更新消息向代理服務(wù)器更新緩存,代理服務(wù)器在收到休眠服務(wù)器發(fā)來(lái)的更新緩存請(qǐng)求后,查找緩存中有無(wú)對(duì)應(yīng)項(xiàng),若有則更新并通過(guò)休眠更新確認(rèn)消息通知休眠服務(wù)器更新成功,若緩存中沒(méi)有對(duì)應(yīng)項(xiàng)則通知休眠服務(wù)器更新失敗。
[0015]進(jìn)一步的,當(dāng)代理服務(wù)器收到外部客戶端的對(duì)休眠服務(wù)器的訪問(wèn)請(qǐng)求時(shí),首先需要判斷客戶端需要訪問(wèn)的目標(biāo)服務(wù)器是否在休眠服務(wù)器列表中,如果不在列表中則表示沒(méi)有為目標(biāo)服務(wù)器提供代理功能,直接轉(zhuǎn)發(fā)該請(qǐng)求即可;如果目標(biāo)服務(wù)器在休眠服務(wù)器列表中,則需要查詢其當(dāng)前運(yùn)行狀態(tài),如果狀態(tài)為喚醒態(tài),表示目標(biāo)服務(wù)器當(dāng)前可直接被訪問(wèn),直接轉(zhuǎn)發(fā)該請(qǐng)求信息即可;如果運(yùn)行狀態(tài)為休眠態(tài),表示目標(biāo)服務(wù)器處于休眠狀態(tài)不能直接訪問(wèn),需要通過(guò)讀取緩存信息來(lái)為客戶端回復(fù)響應(yīng)。
[0016]進(jìn)一步的,步驟101中的休眠握手消息格式為:通用請(qǐng)求頭部、緩存大小、及SleepID;步驟102中的休眠確認(rèn)消息格式為:通用響應(yīng)頭部和SleepID;步驟103中的休眠注冊(cè)消息格式為:通用請(qǐng)求頭部、SleepID、終端節(jié)點(diǎn)Url、注冊(cè)節(jié)點(diǎn)信息及時(shí)間戳;步驟105中的休眠通知消息格式為:通用請(qǐng)求頭部、SI eep ID及休眠周期。
[0017]進(jìn)一步的,休眠喚醒通知消息格式為:通用請(qǐng)求頭部、SleepID、及喚醒周期。
[0018]進(jìn)一步的,休眠更新消息格式為:通用請(qǐng)求頭部、SleepID、及需要更新的節(jié)點(diǎn)信息。
[0019]本發(fā)明的優(yōu)點(diǎn)及有益效果如下:
[0020]本發(fā)明針對(duì)無(wú)線現(xiàn)場(chǎng)設(shè)備對(duì)功耗的敏感性,以及OPCUA協(xié)議不支持設(shè)備休眠功能的問(wèn)題,設(shè)計(jì)并開(kāi)發(fā)了一種OPC UA休眠代理機(jī)制,在不改變OPC UA客戶端的情況下,使服務(wù)器端完成休眠和代理功能。本發(fā)明可滿足無(wú)線現(xiàn)場(chǎng)設(shè)備的休眠需求以延長(zhǎng)網(wǎng)絡(luò)的生存期,同時(shí)解決設(shè)備休眠時(shí)數(shù)據(jù)不能訪問(wèn)的問(wèn)題。
【附圖說(shuō)明】
[0021]圖1是本發(fā)明提供優(yōu)選實(shí)施例設(shè)計(jì)的“休眠握手消息”具體內(nèi)容;
[0022]圖2是本發(fā)明設(shè)計(jì)的“休眠確認(rèn)消息”具體內(nèi)容;
[0023]圖3是本發(fā)明設(shè)計(jì)的“休眠注冊(cè)消息”具體內(nèi)容;
[0024]圖4是本發(fā)明設(shè)計(jì)的“休眠更新消息”具體內(nèi)容;
[0025]圖5是本發(fā)明設(shè)計(jì)的“休眠通知消息”具體內(nèi)容;
[0026]圖6是本發(fā)明設(shè)計(jì)的“休眠喚醒通知消息”具體內(nèi)容;
[0027]圖7是本發(fā)明優(yōu)選實(shí)施例OPCUA休眠代理實(shí)施過(guò)程。
【具體實(shí)施方式】
[0028]以下結(jié)合附圖,對(duì)本發(fā)明作進(jìn)一步說(shuō)明:
[0029]如圖1所示,圖1是本發(fā)明優(yōu)選實(shí)施例新設(shè)計(jì)的休眠握手消息;休眠握手消息的主要內(nèi)容為:0PC UA通用請(qǐng)求頭部、緩存大小及SleepID,其中緩存大小是休眠服務(wù)器需要代理服務(wù)器提供的緩存空間大小,Sle印ID是一個(gè)16位的無(wú)符號(hào)整數(shù)用于標(biāo)示休眠代理關(guān)系。
[0030]圖2是本發(fā)明優(yōu)選實(shí)施例新設(shè)計(jì)的休眠確認(rèn)消息;休眠確認(rèn)消息的主要內(nèi)容為:OPC UA通用響應(yīng)頭部和Sle印ID,其中消息確認(rèn)的狀態(tài)信息在通用響應(yīng)頭部中體現(xiàn)。
[0031]圖3是本發(fā)明優(yōu)選實(shí)施例新設(shè)計(jì)的休眠注冊(cè)消息;休眠注冊(cè)消息的主要內(nèi)容為:OPC UA通用請(qǐng)求頭部、SleepID、終端節(jié)點(diǎn)Url、注冊(cè)節(jié)點(diǎn)信息及時(shí)間戳,其中終端節(jié)點(diǎn)Url是休眠服務(wù)器的URL,注冊(cè)節(jié)點(diǎn)信息是需要緩存在代理服務(wù)器上的具體內(nèi)容,包括節(jié)點(diǎn)ID號(hào)、屬性ID號(hào)以及節(jié)點(diǎn)屬性的具體值。
[0032]圖4是本發(fā)明優(yōu)選實(shí)施例新設(shè)計(jì)的休眠更新消息;休眠更新消息的主要內(nèi)容為:OPC UA通用請(qǐng)求頭部、SleepID、需要更新的節(jié)點(diǎn)信息及時(shí)間戳,其中需要更新的節(jié)點(diǎn)信息是需要在代理服務(wù)器更新緩存的具體內(nèi)容,包括節(jié)點(diǎn)ID號(hào)、屬性ID號(hào)以及節(jié)點(diǎn)屬性的具體值。
[0033]圖5是本發(fā)明優(yōu)選實(shí)施例新設(shè)計(jì)的休眠通知消息;休眠通知消息的主要內(nèi)容為:OPC UA通用請(qǐng)求頭部、SleepID及休眠周期,其中休眠周期以秒為單位,表示節(jié)點(diǎn)處于休眠狀態(tài)的時(shí)間。
[0034]圖6是本發(fā)明優(yōu)選實(shí)施例新設(shè)計(jì)的休眠喚醒通知消息;休眠喚醒通知消息的主要內(nèi)容為:OPC UA通用請(qǐng)求頭部、SleepID及喚醒周期,其中喚醒周期以秒為單位,表示節(jié)點(diǎn)處于喚醒狀態(tài)的時(shí)間。
[0035]圖7是本發(fā)明優(yōu)選實(shí)施例OPCUA休眠代理實(shí)施過(guò)程,休眠代理機(jī)制主要在客戶端、代理服務(wù)器和休眠服務(wù)器三種設(shè)備之間進(jìn)行。在設(shè)備初始化工作完成后,代理服務(wù)器和休眠服務(wù)器完成休眠代理關(guān)系的建立過(guò)程,客戶端在休眠服務(wù)器的休眠狀態(tài)和喚醒狀態(tài)都可以對(duì)其進(jìn)行訪問(wèn)。其具體實(shí)現(xiàn)過(guò)程如下:
[0036]Stepl:如圖7所示,休眠服務(wù)器向所選擇的代理服務(wù)器發(fā)送一個(gè)休眠握手消息,該消息中包含了休眠服務(wù)器所需的緩存空間大小。
[0037]Step2:如圖7所示,代理服務(wù)器收到休眠握手消息后,會(huì)根據(jù)休眠握手消息中的申請(qǐng)緩存大小以及自身情況確定能否提供代理服務(wù),如果能夠?yàn)樾菝叻?wù)器提供代理功能,則為其分配一個(gè)唯一的SleepID用于標(biāo)示休眠代理關(guān)系,然后使用休眠握手確認(rèn)消息通知代理結(jié)果。
[0038]Step3:如圖7所示,休眠服務(wù)器收到臨時(shí)代理服務(wù)器的休眠握手確認(rèn)消息,如果服務(wù)結(jié)果顯示臨時(shí)代理服務(wù)器不能提供代理服務(wù),則跳至步驟101,重新選擇臨時(shí)代理服務(wù)器。如果服務(wù)結(jié)果顯示臨時(shí)代理服務(wù)器能夠提供代理服務(wù),則將臨時(shí)代理服務(wù)器確認(rèn)為自己的代理服務(wù)器,并通過(guò)休眠注冊(cè)消息在代理服務(wù)器上注冊(cè)自己需要緩存的信息;
[0039]Step4:如圖7所示,代理服務(wù)器收到休眠服務(wù)器發(fā)來(lái)的休眠注冊(cè)消息后,根據(jù)SleepID查找緩存區(qū)有無(wú)該休眠服務(wù)器的緩存信息,如果沒(méi)有則將收到的注冊(cè)信息放到緩存中并回復(fù)休眠注冊(cè)成功確認(rèn),如果已經(jīng)有緩存則回復(fù)休眠注冊(cè)失敗確認(rèn);。
[0040]Step5:如圖7所示,休眠設(shè)備收到代理服務(wù)器回復(fù)的休眠注冊(cè)響應(yīng)后,如果響應(yīng)結(jié)果顯示代理失敗,則表明代理服務(wù)器沒(méi)有代理功能,則跳至步驟101,重新選擇臨時(shí)代理服務(wù)器。如果響應(yīng)結(jié)果顯示代理成功,則表明代理成功,設(shè)備可以進(jìn)入休眠狀態(tài),此時(shí)需要向休眠服務(wù)器發(fā)送休眠通知消息,在等到代理服務(wù)器在確認(rèn)之后即進(jìn)入休眠狀態(tài);
[0041]Step6:如圖7所示,代理服務(wù)器在收到休眠服務(wù)器發(fā)來(lái)的休眠通知消息后,記錄下休眠周期并將該服務(wù)器的狀態(tài)標(biāo)記為休眠狀態(tài),然后給休眠服務(wù)器回復(fù)一個(gè)休眠請(qǐng)求確認(rèn)消息,休眠服務(wù)器在收到確認(rèn)消息之后進(jìn)入休眠狀態(tài),直到休眠周期結(jié)束或者外部中斷的觸發(fā)。
[0042]Step7:如圖7所示,代理服務(wù)器在休眠服務(wù)器處于休眠狀態(tài)時(shí)收到客戶端對(duì)休眠服務(wù)器的訪問(wèn)請(qǐng)求,需要通過(guò)讀取緩存信息來(lái)為客戶端回復(fù)響應(yīng)。
[0043]StepS:如圖7所示,當(dāng)休眠服務(wù)器從休眠狀態(tài)醒來(lái)后,需要及時(shí)向代理服務(wù)器發(fā)送休眠喚醒通知消息。代理服務(wù)器收到休眠服務(wù)器發(fā)來(lái)的休眠喚醒通知消息后,將休眠服務(wù)器的狀態(tài)設(shè)置為喚醒態(tài),并記錄休眠服務(wù)器的喚醒時(shí)間,當(dāng)代理服務(wù)器超過(guò)約定的喚醒周期還沒(méi)收到休眠服務(wù)器的狀態(tài)更新消息,則將休眠服務(wù)器的狀態(tài)設(shè)置成休眠態(tài)。
[0044]Step9:圖7所示,代理服務(wù)器在休眠服務(wù)器處于喚醒狀態(tài)時(shí)收到客戶端對(duì)休眠服務(wù)器的訪問(wèn)請(qǐng)求,目標(biāo)服務(wù)器當(dāng)前可直接被訪問(wèn),透?jìng)髡?qǐng)求消息即可。
[0045]SteplO:圖7所示,當(dāng)休眠服務(wù)器檢測(cè)到數(shù)據(jù)更新或者有事件生成時(shí),需要通過(guò)休眠更新消息向代理服務(wù)器更新緩存,代理服務(wù)器在收到休眠服務(wù)器發(fā)來(lái)的更新緩存請(qǐng)求后,查找緩存中有無(wú)對(duì)應(yīng)項(xiàng),若有則更新并通過(guò)休眠更新確認(rèn)消息通知休眠服務(wù)器更新成功,若緩存中沒(méi)有對(duì)應(yīng)項(xiàng)則通知休眠服務(wù)器更新失敗。
[0046]Stepll:休眠服務(wù)器在希望進(jìn)入休眠狀態(tài)時(shí),向代理服務(wù)器發(fā)送休眠通知消息,然后執(zhí)行St印6操作。
[0047]以上這些實(shí)施例應(yīng)理解為僅用于說(shuō)明本發(fā)明而不用于限制本發(fā)明的保護(hù)范圍。在閱讀了本發(fā)明的記載的內(nèi)容之后,技術(shù)人員可以對(duì)本發(fā)明作各種改動(dòng)或修改,這些等效變化和修飾同樣落入本發(fā)明權(quán)利要求所限定的范圍。
【主權(quán)項(xiàng)】
1.一種適用于無(wú)線現(xiàn)場(chǎng)設(shè)備的OPCUA休眠代理方法,其特征在于,包括以下步驟: 101、首先進(jìn)行無(wú)線現(xiàn)場(chǎng)設(shè)備的休眠服務(wù)器初始化,再選擇一個(gè)臨時(shí)代理服務(wù)器,其中該臨時(shí)代理服務(wù)器為網(wǎng)絡(luò)中不休眠的設(shè)備,包括現(xiàn)場(chǎng)路由器或者邊界網(wǎng)關(guān),發(fā)送休眠握手消息到臨時(shí)代理服務(wù)器進(jìn)行握手操作; 102、臨時(shí)代理服務(wù)器收到休眠握手消息后,根據(jù)休眠握手消息中的申請(qǐng)緩存大小以及自身情況確定能否提供代理服務(wù),如果能夠?yàn)樾菝叻?wù)器提供代理功能,則為其分配一個(gè)唯一的Sle印ID用于標(biāo)示休眠代理關(guān)系,然后使用休眠握手確認(rèn)消息通知代理結(jié)果; 103、休眠服務(wù)器收到臨時(shí)代理服務(wù)器的休眠握手確認(rèn)消息后,如果服務(wù)結(jié)果顯示臨時(shí)代理服務(wù)器不能提供代理服務(wù),則跳至步驟101,重新選擇臨時(shí)代理服務(wù)器;如果服務(wù)結(jié)果顯示臨時(shí)代理服務(wù)器能夠提供代理服務(wù),則將臨時(shí)代理服務(wù)器確認(rèn)為自己的代理服務(wù)器,并通過(guò)休眠注冊(cè)消息在代理服務(wù)器上注冊(cè)自己需要緩存的信息; 104、代理服務(wù)器收到休眠服務(wù)器發(fā)來(lái)的休眠注冊(cè)消息后,根據(jù)SleepID查找緩存區(qū)有無(wú)該休眠服務(wù)器的緩存信息,如果沒(méi)有則將收到的注冊(cè)信息放到緩存中并回復(fù)休眠注冊(cè)成功確認(rèn),如果已經(jīng)有緩存則回復(fù)休眠注冊(cè)失敗確認(rèn); 105、休眠設(shè)備收到代理服務(wù)器回復(fù)的休眠注冊(cè)響應(yīng)后,如果響應(yīng)結(jié)果顯示代理失敗,則表明代理服務(wù)器沒(méi)有代理功能,則跳至步驟101,重新選擇臨時(shí)代理服務(wù)器,如果響應(yīng)結(jié)果顯示代理成功,則表明代理成功,設(shè)備可以進(jìn)入休眠狀態(tài),此時(shí)需要向休眠服務(wù)器發(fā)送休眠通知消息,在等到代理服務(wù)器在確認(rèn)之后即進(jìn)入休眠狀態(tài); 106、代理服務(wù)器在收到休眠服務(wù)器發(fā)來(lái)的休眠通知消息后,記錄下休眠周期并將該服務(wù)器的狀態(tài)標(biāo)記為休眠狀態(tài),然后給休眠服務(wù)器回復(fù)一個(gè)休眠請(qǐng)求確認(rèn)消息,休眠服務(wù)器在收到確認(rèn)消息之后進(jìn)入休眠狀態(tài),直到休眠周期結(jié)束或者外部中斷的觸發(fā)。2.根據(jù)權(quán)利要求1所述的一種適用于無(wú)線現(xiàn)場(chǎng)設(shè)備的OPCUA休眠代理方法,其特征在于,當(dāng)休眠服務(wù)器從休眠狀態(tài)醒來(lái)后,需及時(shí)向代理服務(wù)器發(fā)送休眠喚醒通知消息,代理服務(wù)器收到休眠服務(wù)器發(fā)來(lái)的休眠喚醒通知消息后,將休眠服務(wù)器的狀態(tài)設(shè)置為喚醒態(tài),并記錄休眠服務(wù)器的喚醒時(shí)間,當(dāng)代理服務(wù)器超過(guò)約定的喚醒周期還沒(méi)收到休眠服務(wù)器的狀態(tài)更新消息,則將休眠服務(wù)器的狀態(tài)設(shè)置成休眠態(tài)。3.根據(jù)權(quán)利要求1或2所述的一種適用于無(wú)線現(xiàn)場(chǎng)設(shè)備的OPCUA休眠代理方法,其特征在于,當(dāng)休眠服務(wù)器檢測(cè)到數(shù)據(jù)更新或者有事件生成時(shí),則通過(guò)休眠更新消息向代理服務(wù)器更新緩存,代理服務(wù)器在收到休眠服務(wù)器發(fā)來(lái)的更新緩存請(qǐng)求后,查找緩存中有無(wú)對(duì)應(yīng)項(xiàng),若有則更新并通過(guò)休眠更新確認(rèn)消息通知休眠服務(wù)器更新成功,若緩存中沒(méi)有對(duì)應(yīng)項(xiàng)則通知休眠服務(wù)器更新失敗。4.根據(jù)權(quán)利要求1或2所述的一種適用于無(wú)線現(xiàn)場(chǎng)設(shè)備的OPCUA休眠代理方法,其特征在于,當(dāng)代理服務(wù)器收到外部客戶端的對(duì)休眠服務(wù)器的訪問(wèn)請(qǐng)求時(shí),首先需要判斷客戶端需要訪問(wèn)的目標(biāo)服務(wù)器是否在休眠服務(wù)器列表中,如果不在列表中則表示沒(méi)有為目標(biāo)服務(wù)器提供代理功能,直接轉(zhuǎn)發(fā)該請(qǐng)求即可;如果目標(biāo)服務(wù)器在休眠服務(wù)器列表中,則需要查詢其當(dāng)前運(yùn)行狀態(tài),如果狀態(tài)為喚醒態(tài),表示目標(biāo)服務(wù)器當(dāng)前可直接被訪問(wèn),直接轉(zhuǎn)發(fā)請(qǐng)求消息即可;如果運(yùn)行狀態(tài)為休眠態(tài),表示目標(biāo)服務(wù)器處于休眠狀態(tài)不能直接訪問(wèn),需要通過(guò)讀取緩存信息來(lái)為客戶端回復(fù)響應(yīng)。5.根據(jù)權(quán)利要求4所述的一種適用于無(wú)線現(xiàn)場(chǎng)設(shè)備的OPCUA休眠代理方法,其特征在于,步驟101中的休眠握手消息格式為:通用請(qǐng)求頭部、緩存大小、及SleepID;步驟102中的休眠確認(rèn)消息格式為:通用響應(yīng)頭部和SleepID;步驟103中的休眠注冊(cè)消息格式為:通用請(qǐng)求頭部、SleepID、終端節(jié)點(diǎn)Url、注冊(cè)節(jié)點(diǎn)信息及時(shí)間戳;步驟105中的休眠通知消息格式為:通用請(qǐng)求頭部、SleepID及休眠周期。6.根據(jù)權(quán)利要求2所述的一種適用于無(wú)線現(xiàn)場(chǎng)設(shè)備的OPCUA休眠代理方法,其特征在于,休眠喚醒通知消息格式為:通用請(qǐng)求頭部、SleepID、及喚醒周期。7.根據(jù)權(quán)利要求3所述的一種適用于無(wú)線現(xiàn)場(chǎng)設(shè)備的OPCUA休眠代理方法,其特征在于,休眠更新消息格式為:通用請(qǐng)求頭部、SleepID、及需要更新的節(jié)點(diǎn)信息。
【文檔編號(hào)】H04L29/08GK105847420SQ201610322168
【公開(kāi)日】2016年8月10日
【申請(qǐng)日】2016年5月16日
【發(fā)明人】王平, 王恒, 蒲宬亙
【申請(qǐng)人】重慶郵電大學(xué)