專利名稱:無線傳感器網絡接入Modbus總線的網關通信協議轉換方法
技術領域:
本發明涉及一種網關通信協議轉換方法,確切地說,涉及一種無線傳感器網絡接 入Modbus總線的網關通信協議轉換方法;屬于網絡通信技術領域。
背景技術:
Modbus是工業控制技術中的一種標準的通用語言和通信協議,用于描述一個控 制裝置在請求訪問其它設備的過程中,如何回應來自其它設備的請求,以及怎樣偵測錯誤 并記錄之。該協議制定了消息域格局及其內容的公共格式,定義了一個控制裝置能夠認識 與使用的消息結構,而不管它們是經由何種網絡進行通信的。有了它,不同廠商分別生產 的各種控制設備就可以直接連接而構成工業網絡,實現集中監控。因此,Modbus協議在目 前的工業生產自動化技術領域得到了廣泛應用。然而,Modbus設備是采用以太網接口或 RS-232/422/485接口通過有線網絡方式接入總線的,對于工業生產中的移動設備來說,這 種有線網絡的通信方式既不方便,也不靈活。此時,人們通常采用無線傳感器網絡來采集移 動設備的相關數據。無線傳感器網絡是由多個傳感器以自組織方式構成的無線網絡,其目的用于協作 地感知采集和處理網絡覆蓋的地理區域中被感知對象的信息,并傳送給觀察者。無線傳感 器網絡中的部分節點或全部節點都是可以移動的,因此,傳感器網絡的拓撲結構會隨著節 點的移動而不斷發生動態變化。每個節點不僅能夠充當路由器,還都具備動態搜索、定位和 恢復連接的功能。在工業自動化領域里,無線傳感器網絡正在得到越來越廣泛的應用。但是,目前無線傳感器網絡中的無線通信還存在鏈路不穩定和通信延遲較大等許 多缺點,還不能完全替代工業領域的現場總線。因此,結合兩者的長處和特點所形成的綜合 工業網絡是未來工業控制技術的發展趨勢。然而,由于Modbus網絡和無線傳感器網絡采用 不同的通信介質和通信協議,這就需要一個通信協議的轉換網關作為兩種網絡的連接橋梁 來整合它們,以便能夠充分發揮兩者各自的優點。經對現有技術的文獻檢索發現刊于《自動化儀表》2007年第28卷第7期的論文 ((Modbus通信協議的紫蜂無線傳輸網絡的研究》對基于Modbus通信協議的紫蜂無線總線 網絡系統的實現進行了分析和探討,提出了一個利用zigbee設備的IEEE地址與其設定的 Modbus地址進行綁定,同時利用網絡短址進行網絡地址定向,并通過無線透傳的方式來實 現遵循Modbus通信協議的數據在紫蜂無線網絡中傳輸的具體方案。發表于清華大學學報(自然科學版)2008年第48卷第S2期的文章《Modbus報文 有線/無線混合傳輸的實現》提出一種實現Modbus報文有線/無線混合傳輸的方案,為在 ZigBee網絡中封裝與傳輸Modbus協議報文,設計了一種可兼容有線/無線網絡混合傳輸 的幀結構與尋址方法,并從軟硬件角度討論了網關的設計,給出了 Modbus協議報文在有線 /無線混合網絡之間轉換的方法,使ZigBee網絡可用于傳輸Modbus報文。干丨J 于 2009 International Forum on Information Technology and
3Applications會議上的論文《Research on ZigBee Wireless Sensors Network Based on ModBusProtocol (基于modbus協議的zigbee無線傳感器網絡研究)》,提出了一個基于協 調器的zigbee/modbus兩個通信協議的轉換方案,在該方案中,zigbee無線傳感器網絡的 協調器,一方面作為一個特殊的無線傳感器節點分配網絡地址、發起路由和接收各節點數 據,另一方面接受modbus的查詢和返回modbus響應。經檢索還發現,刊于《微計算機信息》2009年第25卷第6_2期的論文《基于Modbus 協議的ZigBee/工業以太網網關設計》提出一種ZigBee/工業以太網的網關設計方案,該 網關應用層采用Modbus/RTU主從式協議,以太網傳輸層采用UDP協議,網關將Modbus/RTU 報文作為UDP和Zigbee應用層數據傳輸,Modbus主站報文通過UDP端口接收后,刪除幀頭 與幀尾,再附加Zigbee短地址,通過串口發送給無線傳感器網絡節點并轉化為Zigbee報文 發送;Modbus從站的Zigbee報文由串口接收,去掉Zigbee短地址后,再附加UDP幀頭與幀 尾,然后由以太網口轉發。雖然上述各篇論文都提出了 Zigbee無線傳感器網絡與Modbus總線的協議轉換, 但是,其采用的方法都是基于在Zigbee協議中嵌入Modbus查詢和響應機制,具有兩個極 其致命的缺陷一是增加了資源受限的無線傳感器網絡節點的開銷,二是由于無線傳感器 網絡傳輸延遲,從而無法及時對Modbus查詢命令作出響應,導致查詢失敗。因此,如何對 Modbus網絡和無線傳感器網絡之間的連接橋梁-轉換網關執行的通信協議轉換方法進行 改進,就成為業內科技人員關注的焦點。
發明內容
有鑒于此,本發明的目的是針對上述現有技術的不足,提供一種無線傳感器網絡 接入Modbus總線的網關通信協議轉換方法,該方法是在無線傳感器網絡與Modbus總線之 間設置網關,該網關一方面連接無線傳感器網絡的數據匯聚節點,收集各傳感器節點的感 測數據;另一方面與Modbus總線相連,負責接受Modbus查詢和返回Modbus響應。本發明 方法的特點是能夠適用各種無線傳感器網絡,而不局限于Zigbee網絡,且開銷小和實時性 好。為了達到上述發明目的,本發明提供了一種無線傳感器網絡接入Modbus總線的 網關通信協議轉換方法,其特征在于該方法包括下述步驟(1)網關初始化根據地址映射配置文件,分別建立傳感器網絡節點地址與 Modbus地址的映射關系和傳感器網絡每個節點上的多個傳感器的編號與Modbus寄存器地 址的映射關系,再為每個傳感器采集的感測數據按照modbus地址和寄存器地址分配內存 空間;(2)同時啟動傳感器網絡監聽進程和Modbus守護進程其中,傳感器網絡監聽進程負責接收傳感器網絡的周期性數據包,解析數據包,并按照 映射關系保存在本地內存中;且在傳感器網絡傳送的新數據到來時,更新內存中的相應數 據;Modbus守護進程負責監聽Modbus總線和分析Modbus查詢包,如果查詢的modbus 地址歸屬本傳感器網絡,則從其內存區域中取出相應的數據作為查詢結果返回給Modbus 總線。
所述建立傳感器網絡節點地址與Modbus地址的映射關系是把每個傳感器網絡節 點作為一個虛擬的Modbus從站,建立傳感器網絡節點地址與Modbus從站地址之間的一一 對應關系。所述建立傳感器網絡每個節點上的多個傳感器的編號與Modbus寄存器地址的映 射關系,是把傳感器網絡節點上的每個傳感器采集的包括溫度、濕度和電壓的多個參數都 分配到各個對應的Modbus寄存器地址內。所述為每個傳感器采集的感測數據按照modbus地址和寄存器地址分配內存空 間,是為傳感器網絡節點及其對應的每個傳感器采集的感測參數分配存儲空間采用數組 或鏈表形式,并以modbus從站地址為索引,每個寄存器的各個字段分別與每個傳感器的感 測參數相對應。所述傳感器網絡的周期性數據包是傳感器網絡各個節點每隔一個設定的周期時 段采集的各個感測數據,并經過傳感器網絡多跳路由傳輸至匯聚節點的數據包;該數據包 再通過包括RS232/422/485接口或以太網接口或其它接口被網關的傳感器網絡監聽進程 進行接收、解析和存儲的處理;由于是周期性數據,當某個節點的新感測數據到達時,就會 覆蓋對應內存區域中相應的舊數據。所述Modbus查詢包是Modbus總線上的主站發出的查詢數據幀,該查詢數據幀是 美國標準信息交換代碼ASCII或遠程終端單元RTU(Remote TerminalUnit)格式,查詢幀中 包含要查詢的modbus從站地址和寄存器地址及寄存器數量,網關根據該查詢的modbus從 站地址是否為傳感器網絡中的某個節點對應的從站地址決定是否返回應答幀若是,則返 回,否則,不響應。所述返回給Modbus總線的查詢結果是根據查詢包中的從站地址和寄存器地址及 數量,將內存中對應的傳感器的感測數據按照Modbus協議規定的格式組織的應答幀,該應 答幀包括從站地址、功能碼、寄存器數量和每個寄存器內的各個感測數值。與現有技術相比,本發明方法具有如下有益效果兩個不同網絡通信協議的轉換是在與傳感器網絡節點完全獨立的網關上進行和 完成的,不需要增加無線傳感器網絡節點的傳輸和能源開銷。由于各個傳感器的感測數據是實時地存儲在網關的內存區域中,并得到周期性更 新。這樣,當網關接收到Modbus網絡主站的查詢后,能夠立即就從內存中直接讀取數據進 行應答,沒有傳統方法要在傳感器多跳網絡中進行查詢的傳輸時延,即不需要等待就能夠 對Modbus查詢作出實時響應。因此,本發明的優點是顯著的,具有很好的推廣應用前景。
圖1是本發明無線傳感器網絡接入Modbus總線的網關通信協議轉換方法操作步 驟流程圖。圖2是本發明方法適用的位于無線傳感器網絡和Modbus總線的系統結構及其網 關位置示意圖。圖3是本發明方法中的網關初始化的工作流程圖。圖4是本發明方法中的網關的傳感器網絡監聽進程的工作流程圖。
圖5是本發明方法中的網關的Modbus守護進程的工作流程圖。圖6是本發明方法中的各個步驟的狀態轉換圖。
具體實施例方式為使本發明的目的、技術方案和優點更加清楚,下面結合附圖和實施例對本發明 作進一步的詳細描述。在Modbus網絡上的工業控制裝置進行通信時,所采用的Modbu協議要求每個工業 控制裝置都必須要知道自身設備的地址,并能夠識別按地址發來的消息和決定產生何種行 動。如果需要回應,每個工業控制裝置還要生成反饋信息,并使用Modbus協議發送出去。如 果這個控制裝置還與其它網絡溝通與聯系,就需要將采用Modbus協議的消息轉換為在該 網絡上使用的數據幀或數據包。以便這種轉換后的數據包能夠在新的應用網絡中解決節點 地址、路由路徑及錯誤檢測的相關操作,從而拓展Modbus協議及其網絡的應用范圍。本發 明方法就是解決上述問題的一個有效方法。本發明實施例的傳感器網絡是采用以CC2420為射頻芯片(其中包含溫度、濕度和 光照強度的3個傳感器)作為節點組成的自組織多跳網絡,實際應用不局限于此種節點。下面先參見圖1,具體說明本發明無線傳感器網絡接入Modbus總線的網關通信協 議轉換方法,該方法包括如下步驟步驟1,網關初始化本發明的網關是介于無線傳感器網絡和Modbus工業總 線之間的工業計算機(參見圖2所示),該計算機通過串口連接到無線傳感器網絡的匯 聚節點,從而能夠接收傳感器網絡中各個節點的周期性感測數據包。該計算機還通過 RS232/422/485接口或以太網接口或其它接口連接到Modbus工業總線,從而能夠監聽 Modbus上的查詢包并根據條件返回應答包。該步驟的網關初始化是網關根據地址映射配置文件執行下述三項操作(11)建立傳感器網絡節點地址與Modbus地址的映射關系把每個傳感器網絡節 點作為一個虛擬的Modbus從站,建立傳感器網絡節點地址與Modbus從站地址之間的一一 對應關系。(12)建立傳感器網絡每個節點上的多個傳感器的編號與Modbus寄存器地址的映 射關系把傳感器網絡節點上的每個傳感器采集的包括溫度、濕度和電壓的多個參數都分 配到各個對應的Modbus寄存器地址內。(13)為每個傳感器采集的感測數據按照modbus地址和寄存器地址分配內存空 間網關為傳感器網絡節點及其對應的每個傳感器采集的感測參數分配內存的存儲空間 采用數組或鏈表形式,并以modbus從站地址為索引,每個寄存器的各個字段分別與每個傳 感器的感測參數相對應。例如,Modbus從站12的對應的傳感器節點包含3個傳感器,則按 照傳感器讀數的數據類型分配3個相應的內存變量。其中的地址映射配置文件可以是任何可處理格式的已知文本文件,如CSV文件或 XML文件,該文件包括多個記錄,每條記錄設有4個字段,分別為傳感器節點地址、傳感器號 碼、Modbus從站地址和Modbus寄存器地址。例如,要表述傳感器網絡中的5號節點上的第 2個傳感器映射為Modbus從站12中的寄存器地址4002,則在csv文件中可以表述為這樣的 記錄5,2,12,4002,而在 XML 文件中則表述為:<Mapping name =“Mappingl”,value =”5,2,12,4002”/>。參見圖3,具體說明該步驟1的操作內容網關開始運行時,先讀取地址映射配置 文件,進入狀態1 ;如果其中的剩余映射記錄非空,則進入狀態2,取出其中的第一條記錄 并建立映射關系和分配內存空間,然后回到狀態1,再搜索下一條記錄;如果存在下一條記 錄,則進入狀態2繼續處理,如此不斷循環,直到在狀態1中發現下一條記錄為空時,即全部 紀錄處理完畢,這時步驟1進入終止狀態,即該步驟1完成全部處理任務。步驟1完成后, 網關就實際建立了一套索引,當以傳感器節點地址和傳感器編號為輸入變量,索引就能提 供相應的輸出變量=Modbus從站地址和寄存器地址,從而知道應該把數據保存在哪里。步驟2,同時啟動傳感器網絡監聽進程和Modbus守護進程,即同時執行下述兩項 操作(21)傳感器網絡監聽進程網關負責接收傳感器網絡的周期性數據包,解析數據 包,并按照映射關系保存在本地內存中;且在傳感器網絡傳送的新數據到來時,更新內存中 的相應數據。傳感器網絡的周期性數據包是傳感器網絡各個節點每隔設定的周期時段所采集 的各個感測數據,并經過傳感器網絡多跳路由傳輸至匯聚節點的數據包;該數據包再通過 包括RS232/422/485接口或以太網接口或其它接口被網關的傳感器網絡監聽進程進行接 收、解析和存儲的處理;由于是周期性數據,當某個節點的新感測數據到達時,就會覆蓋對 應內存區域中相應的舊數據。參見圖4,具體介紹該傳感器網絡監聽進程的操作情況網關完成初始化后,進入 狀態1,不斷偵聽串口,當接收到傳感器網絡的數據匯聚節點通過串口發來的周期性數據 包,就進入狀態2 ;此時對數據包進行解析,如果數據包合法,則進入狀態3,提取其中的感 測參數溫度、濕度和光照讀數,并根據步驟1所建立的映射關系,確定這些讀數的存儲地 址后,再用這些最新數據覆蓋舊的數據,處理完畢后回到狀態1,繼續監聽串口發來的數據 包。在狀態2中,如果接收到的數據包無法解析,即數據包不合法,說明傳感器網絡提供的 感測數據出現錯誤,此時不再處理該數據包,返回到狀態1,等待下一個周期性數據包到來 時,重新開始處理新的數據包。傳感器網絡監聽進程是一個不斷周而復始的循環過程,實際 上是由串口的周期性數據包每次到來的這個事件所觸發的處理過程。(22)Modbus守護進程網關負責監聽Modbus總線和分析Modbus查詢包,如果查 詢的modbus地址歸屬本傳感器網絡,則從其內存區域中取出相應的數據作為查詢結果返 回給Modbus總線。Modbus查詢包是Modbus總線上的主站發出的查詢數據幀,該查詢數據幀采用美 國標準信息交換代碼ASCII或遠程終端單元RTU(Remote Terminal Unit)格式,查詢幀中 包含要查詢的modbus從站地址和寄存器地址及寄存器數量,網關根據該查詢的modbus從 站地址是否為傳感器網絡中的某個節點對應的從站地址決定是否返回應答幀若是,則返 回,否則,不響應。返回給Modbus總線的查詢結果是根據查詢包中的從站地址和寄存器地址及數 量,將內存中對應的傳感器的感測數據按照Modbus協議的規定格式組織的應答幀,該應答 幀包括從站地址、功能碼、寄存器數量和每個寄存器內的各個感測數值。參見圖5,具體介紹Modbus守護進程的操作情況網關初始化后,進入狀態1,此時就開始持續不斷地監聽Modbus總線,以便及時接收Modbus協議數據包,如果收到,則進 入狀態2 ;在狀態2中,網關執行Modbus守護進程,分析其接收到的數據包中的查詢地址, 如果該地址屬于網關所負責的傳感器網絡中某個節點對應的Modus從站地址,即地址匹配 成功,說明總線上的Modbus總站希望查詢該傳感器節點的數據,此時進入狀態3 ;在狀態 3中,網關根據該協議數據包中要查詢的寄存器地址從內存中取出被查詢的Modbus從站 的對應數據,再按照Modbus協議包裝在Modbus應答數據包后,發送到Modbus總線后,再 返回狀態1,繼續監聽Modbus總線;如果在狀態2中,發現Modbus查詢地址不是傳感器網 絡中任何節點所對應的Modbus從站地址,即地址不匹配,則說明主站要求查詢其它從站的 狀態,與本傳感器網絡無關;此時丟棄該查詢包,不作任何處理,直接返回狀態1,繼續監聽 Modbus總線上的相關信息。圖6是將圖3 圖5的各個操作步驟的集成,具體操作內容與前述內容完全相同, 這里不再贅述。以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明的精 神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明保護的范圍之內。
權利要求
一種無線傳感器網絡接入Modbus總線的網關通信協議轉換方法,其特征在于該方法包括下述步驟(1)網關初始化根據地址映射配置文件,分別建立傳感器網絡節點地址與Modbus地址的映射關系和傳感器網絡每個節點上的多個傳感器的編號與Modbus寄存器地址的映射關系,再為每個傳感器采集的感測數據按照modbus地址和寄存器地址分配內存空間;(2)同時啟動傳感器網絡監聽進程和Modbus守護進程其中,傳感器網絡監聽進程負責接收傳感器網絡的周期性數據包,解析數據包,并按照映射關系保存在本地內存中;且在傳感器網絡傳送的新數據到來時,更新內存中的相應數據;Modbus守護進程負責監聽Modbus總線和分析Modbus查詢包,如果查詢的modbus地址歸屬本傳感器網絡,則從其內存區域中取出相應的數據作為查詢結果返回給Modbus總線。
2.根據權利要求1所述的方法,其特征在于所述建立傳感器網絡節點地址與Modbus 地址的映射關系是把每個傳感器網絡節點作為一個虛擬的Modbus從站,建立傳感器網絡 節點地址與Modbus從站地址之間的一一對應關系。
3.根據權利要求1所述的方法,其特征在于所述建立傳感器網絡每個節點上的多個 傳感器的編號與Modbus寄存器地址的映射關系,是把傳感器網絡節點上的每個傳感器采 集的包括溫度、濕度和電壓的多個參數都分配到各個對應的Modbus寄存器地址內。
4.根據權利要求1所述的方法,其特征在于所述為每個傳感器采集的感測數據按照 modbus地址和寄存器地址分配內存空間,是為傳感器網絡節點及其對應的每個傳感器采集 的感測參數分配存儲空間采用數組或鏈表形式,并以modbus從站地址為索引,每個寄存 器的各個字段分別與每個傳感器的感測參數相對應。
5.根據權利要求1所述的方法,其特征在于所述傳感器網絡的周期性數據包是傳感 器網絡各個節點每隔一個設定的周期時段采集的各個感測數據,并經過傳感器網絡多跳路 由傳輸至匯聚節點的數據包;該數據包再通過包括RS232/422/485接口或以太網接口或其 它接口被網關的傳感器網絡監聽進程進行接收、解析和存儲的處理;由于是周期性數據,當 某個節點的新感測數據到達時,就會覆蓋對應內存區域中相應的舊數據。
6.根據權利要求1所述的方法,其特征在于所述Modbus查詢包是Modbus總線上的主 站發出的查詢數據幀,該查詢數據幀是美國標準信息交換代碼ASCII或遠程終端單元RTU 格式,查詢幀中包含要查詢的modbus從站地址和寄存器地址及寄存器數量,網關根據該查 詢的modbus從站地址是否為傳感器網絡中的某個節點對應的從站地址決定是否返回應答 幀若是,則返回,否則,不響應。
7.根據權利要求1所述的方法,其特征在于所述返回給Modbus總線的查詢結果是 根據查詢包中的從站地址和寄存器地址及數量,將內存中對應的傳感器的感測數據按照 Modbus協議規定的格式組織的應答幀,該應答幀包括從站地址、功能碼、寄存器數量和每個 寄存器內的各個感測數值。
全文摘要
一種無線傳感器網絡接入Modbus總線的網關通信協議轉換方法,是先對網關初始化根據地址映射配置文件,分別建立傳感器網絡節點地址與Modbus地址之間和傳感器網絡每個節點的多個傳感器編號與Modbus寄存器地址之間的兩個映射關系,再為每個傳感器的感測數據按照modbus地址和寄存器地址分配內存空間;再同時啟動兩個進程傳感器網絡監聽進程負責接收和解析傳感器網絡的周期性數據包,并按照映射關系保存于本地內存;且用接收的新感測數據更新相應的內存;Modbus守護進程負責監聽Modbus總線和分析Modbus查詢包,如果查詢的modbus地址歸屬本傳感器網絡,則從內存取出相應數據給Modbus總線返回查詢結果。本發明是在網關完成通信協議轉換,能實時響應Modbus查詢,且不增加傳感器網絡節點開銷。
文檔編號H04L12/66GK101977167SQ201010529440
公開日2011年2月16日 申請日期2010年10月25日 優先權日2010年10月25日
發明者胡四泉, 陳春燕, 陳耿彬 申請人:深圳市兆訊達科技實業有限公司