新四季網

一種兼容Modbus協議的BACnet協議棧的數據處理方法及系統與流程

2023-06-25 08:46:02 2


本發明涉及網絡通信技術領域,具體而言,涉及一種兼容modbus協議的bacnet協議棧的數據處理方法及系統。



背景技術:

modbus是osi模型第7層上的應用層報文傳輸協議,它在連接至不同類型總線或網絡的設備之間提供客戶機/伺服器通信。串行鏈路modbus通常使用主從技術,即僅一設備(主設備)能初始化傳輸(查詢或控制)。

目前,bacnetip是開放的樓宇設備自動控制網絡數據通信協議。隨著internet在通信領域的發展,控制網絡與internet的互聯已是必然趨勢。但現有技術中還未能將這兩種協議進行相互自由轉換,使得控制網絡與internet的互聯存在通信障礙。



技術實現要素:

本發明實施例提供了一種兼容modbus協議的bacnet協議棧的數據處理方法及系統,能夠使得modbus協議和bacnet協議進行自由轉換。

為實現上述目的,本發明實施例一方面提供一種兼容modbus協議的bacnet協議棧的數據處理方法,所述方法包括:上位機對bacnet協議棧進行讀寫屬性操作時,向網際網路上發送一幀udp數據幀;所述bacnet協議棧接收所述udp數據幀後,將所述udp數據幀中的對象id解析為modbus數據幀中的設備地址和起始地址,並將所述udp數據幀中的當前值解析為所述modbus數據幀中的數據長度和有效數據;所述bacnet協議棧將解析後的信息發送至modbus庫;所述modbus庫以modbus數據幀的格式將解析後的信息發送至各個機組處。

進一步地,所述udp數據幀中的對象id包括參數偏移和設備偏移;相應地,將所述udp數據幀中的對象id解析為modbus數據幀中的設備地址和起始地址包括:

將所述對象id中的參數偏移賦值給所述modbus數據幀中的起始地址,並將所述對象id中的設備偏移賦值給所述modbus數據幀中的設備地址。

進一步地,將所述udp數據幀中的當前值解析為所述modbus數據幀中的數據長度和有效數據包括:

將所述udp數據幀中的當前值作為所述modbus數據幀中的有效數據,並將所述udp數據幀中的當前值所處數據的長度作為所述modbus數據幀中的數據長度。

進一步地,所述modbus庫以modbus數據幀的格式將解析後的信息發送至各個機組處包括:所述modbus庫以modbus數據幀的格式將解析後的信息發送至485總線上,以使得機組通過所述485總線接收並解析modbus數據幀中攜帶的信息;相應地,所述方法還包括:所述機組將所述上位機請求的信息以modbus數據幀的格式發送到485總線;所述modbus庫通過所述485總線接收所述modbus數據幀,基於所述modbus數據幀中的設備地址和起始地址,解析得到udp數據幀的對象id,並根據所述modbus數據幀中的數據長度和有效數據解析得到udp數據幀中的當前值;所述modbus庫將解析得到的信息傳給bacnet協議棧,以使得所述bacnet協議棧將所述解析得到的信息以udp數據幀的格式發送到網際網路上;所述上位機通過網絡設備從網際網路中獲取所述udp數據幀。

進一步地,基於所述modbus數據幀中的設備地址和起始地址,解析得到udp數據幀的對象id包括:

將所述modbus數據幀中的設備地址賦值給所述對象id中的設備偏移,並將所述modbus數據幀中的起始地址賦值給所述對象id中的參數偏移;其中,所述對象id中的設備類型、機型系列以及對象類型由使用modbus協議的機組的機型預先約定。

進一步地,根據所述modbus數據幀中的數據長度和有效數據解析得到udp數據幀中的當前值包括:

根據所述起始地址和數據長度,確定預設參數在有效數據中的目標地址;

將所述目標地址處的數據值賦值給所述udp數據幀中的當前值。

本申請還提供一種兼容modbus協議的bacnet協議棧的數據處理系統,所述系統包括上位機、bacnet協議棧、modbus庫以及機組,其中:所述上位機,用於對所述bacnet協議棧進行讀寫屬性操作時,向網際網路上發送一幀udp數據幀;所述bacnet協議棧,用於接收所述udp數據幀後,將所述udp數據幀中的對象id解析為modbus數據幀中的設備地址和起始地址,並將所述udp數據幀中的當前值解析為所述modbus數據幀中的數據長度和有效數據;將解析後的信息發送至所述modbus庫;所述modbus庫,用於以modbus數據幀的格式將解析後的信息發送至各個機組處。

進一步地,所述udp數據幀中的對象id包括參數偏移和設備偏移;相應地,所述bacnet協議棧包括:

id轉換單元,用於將所述對象id中的參數偏移賦值給所述modbus數據幀中的起始地址,並將所述對象id中的設備偏移賦值給所述modbus數據幀中的設備地址。

進一步地,所述bacnet協議棧還包括:

數據轉換單元,用於將所述udp數據幀中的當前值作為所述modbus數據幀中的有效數據,並將所述udp數據幀中的當前值所處數據的長度作為所述modbus數據幀中的數據長度。

進一步地,所述modbus庫以modbus數據幀的格式將解析後的信息發送至485總線上,以使得機組通過所述485總線接收並解析modbus數據幀中攜帶的信息;相應地,所述機組還用於將所述上位機請求的信息以modbus數據幀的格式發送到485總線;所述modbus庫還用於通過所述485總線接收所述modbus數據幀,基於所述modbus數據幀中的設備地址和起始地址,解析得到udp數據幀的對象id,並根據所述modbus數據幀中的數據長度和有效數據解析得到udp數據幀中的當前值;將解析得到的信息傳給bacnet協議棧,以使得所述bacnet協議棧將所述解析得到的信息以udp數據幀的格式發送到網際網路上;所述上位機還用於通過網絡設備從網際網路中獲取所述udp數據幀。

由上可見,本申請通過bacnet協議棧對網際網路中的udp數據幀進行解析,可以將udp數據幀中的對象id和當前值分別解析為modbus數據幀中的設備地址、起始地址、數據長度和有效數據,從而能夠將bacnet數據幀轉換為modbus數據幀,從而使得機組能夠解析出上位機發出的信息。此外,通過modbus庫對modbus數據幀進行解析,可以將modbus數據幀轉換為bacnet數據幀,從而可以實現這兩種協議之間的自由轉換,消除了控制網絡與internet的互聯之間存在的通信障礙。

附圖說明

構成本申請的一部分的附圖用來提供對本發明的進一步理解,本發明的示意性實施例及其說明用於解釋本發明,並不構成對本發明的不當限定。在附圖中:

圖1為本申請中mobus協議與bacnet協議之間的轉換架構圖;

圖2為本申請中數據轉換的示意圖;

圖3為本申請中id轉換的示意圖;

圖4為本申請中數據轉換的示意圖。

具體實施方式

為了使本技術領域的人員更好地理解本申請中的技術方案,下面將結合本申請實施例中的附圖,對本申請實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例。基於本申請中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其它實施例,都應當屬於本申請保護的範圍。

本申請提供一種兼容modbus協議的bacnet協議棧的數據處理方法,所述方法包括:

s1:上位機對bacnet協議棧進行讀寫屬性操作時,向網際網路上發送一幀udp數據幀;

s2:所述bacnet協議棧接收所述udp數據幀後,將所述udp數據幀中的對象id解析為modbus數據幀中的設備地址和起始地址,並將所述udp數據幀中的當前值解析為所述modbus數據幀中的數據長度和有效數據;

s3:所述bacnet協議棧將解析後的信息發送至modbus庫;

s4:所述modbus庫以modbus數據幀的格式將解析後的信息發送至各個機組處。

其中,所述modbus協議是由modicon(現為施耐德電氣公司的一個品牌)在1979年發明的,是全球第一個真正用於工業現場的總線協議。所述bacnet協議(樓宇自動控制網絡數據通訊協議,adatacommunicationprotocolforbuildingautomationandcontrolnetworks)是由美國暖通、空調和製冷工程師協會組織的標準項目委員會135p歷經八年半時間開發的。

在本實施方式中,所述udp(userdatagramprotocol,用戶數據報協議)數據幀中的對象id包括參數偏移和設備偏移;相應地,將所述udp數據幀中的對象id解析為modbus數據幀中的設備地址和起始地址包括:

將所述對象id中的參數偏移賦值給所述modbus數據幀中的起始地址,並將所述對象id中的設備偏移賦值給所述modbus數據幀中的設備地址。

在本實施方式中,將所述udp數據幀中的當前值解析為所述modbus數據幀中的數據長度和有效數據包括:

將所述udp數據幀中的當前值作為所述modbus數據幀中的有效數據,並將所述udp數據幀中的當前值所處數據的長度作為所述modbus數據幀中的數據長度。

在本實施方式中,所述modbus庫以modbus數據幀的格式將解析後的信息發送至各個機組處包括:所述modbus庫以modbus數據幀的格式將解析後的信息發送至485總線上,以使得機組通過所述485總線接收並解析modbus數據幀中攜帶的信息;相應地,所述方法還包括:所述機組將所述上位機請求的信息以modbus數據幀的格式發送到485總線;所述modbus庫通過所述485總線接收所述modbus數據幀,基於所述modbus數據幀中的設備地址和起始地址,解析得到udp數據幀的對象id,並根據所述modbus數據幀中的數據長度和有效數據解析得到udp數據幀中的當前值;所述modbus庫將解析得到的信息傳給bacnet協議棧,以使得所述bacnet協議棧將所述解析得到的信息以udp數據幀的格式發送到網際網路上;所述上位機通過網絡設備從網際網路中獲取所述udp數據幀。

在本實施方式中,基於所述modbus數據幀中的設備地址和起始地址,解析得到udp數據幀的對象id包括:

將所述modbus數據幀中的設備地址賦值給所述對象id中的設備偏移,並將所述modbus數據幀中的起始地址賦值給所述對象id中的參數偏移;其中,所述對象id中的設備類型、機型系列以及對象類型由使用modbus協議的機組的機型預先約定。

在本實施方式中,根據所述modbus數據幀中的數據長度和有效數據解析得到udp數據幀中的當前值包括:

根據所述起始地址和數據長度,確定預設參數在有效數據中的目標地址;

將所述目標地址處的數據值賦值給所述udp數據幀中的當前值。

具體地,modbus協議數據請求幀主要由設備地址、功能碼、起始地址、數據長度和crc校驗五部分組成,其中設備地址和起始地址主要用來標示參數地址,定位參數數據位置,功能碼用於識別數據功能類型,數據長度指此次所要讀取的數據長度。

modbus協議數據響應幀主要由設備地址、功能碼、字節個數、有效數據和crc校驗五部分組成,其中設備地址也是用來標示參數地址,定位參數數據,功能碼用於識別數據功能類型,字節個數指有效數據的字節數,有效數據就是所讀取的參數數據。

bacnet對象主要由對象id(objectid)、當前值(presentvalue)、對象名稱(objectname)等內容組成,其中presentvalue包含模擬數據、開關量、多態數據等多種數據類型得數據值,objectname由字符串組成,對象id由32bits組成,可以分成參數偏移、設備偏移、設備類型、機型系列、對象類型五段。

請參閱圖1至圖4,上位機對bacnet協議棧進行讀寫屬性操作,向網際網路上發送一幀udp數據幀,當bacnet協議棧通過各種網絡設備接收到這一幀udp數據後進行解析,通過數據轉換邏輯處理算法將相關信息傳給modbus庫,modbus庫以modbus幀格式發送到485總線上,機組接收485總線數據,解析出相應的信息。

機組將上位機想要的信息以modbus幀格式發送到485總線,modbus庫解析機組發送上來的modbus幀,通過數據轉換邏輯處理算法將相關信息傳給bacnet協議棧,bacnet協議棧又將相關信息以udp格式發送到網際網路,udp數據通過各種網絡設備傳回到上位機。

在本實施方式中,在進行id轉換時,modbus幀中的設備地址和起始地址是用來標示參數地址,定位參數數據位置的,因此就得到了有效數據的機組編號和參數編號,而bacnet對象id的參數偏移和設備偏移兩段正好也是標示參數地址,定位參數數據位置的,故而,直接將modbus幀中的設備地址和起始地址賦給bacnet對象id的參數偏移和設備偏移。

在本實施方式中,bacnet對象id的其他三段設備類型、機型系列、對象類型是針對使用modbus協議的機組機型提前約定好的,因此參數偏移、設備偏移、設備類型、機型系列、對象類型五段組成bacnet對象id值。

在本實施方式中,在進行數據轉換時,通過id轉換算法得到了有效數據的起始位置,根據數據長度和參數偏移值即可定位某個參數在有效數據中的地址。將此地址中的數據值賦給presentvalue即可。

在本實施方式中,通過bacnet協議配置modbus參數實施方案如下:

1、初始化乙太網口,為上位機提供bacnet數據寫入接口;

2、上位機通過bacnetip協議寫入modbus配置參數(包含但不限於標準幀、波特率、採樣點、極性等modbus參數);

3、程序內部收到配置信息後,初始化485硬體接口;

4、控制器初始化完畢,通過485接口接收或等待bacnetip數據指令;

在本實施方式中,通過bacnet協議寫入modbus數據實施方案如下:

1、上位機通過bacnetip協議寫入id的數據(presentvalue、objectname、其它屬性);

2、程序保存對象id的objectname;

3、程序得到bacnetid,通過id轉換算法解析得到modbus設備地址和起始地址;

4、程序得到presentvalue,通過數據轉換算法解析得到modbus有效數據;

5、程序拼接modbus設備地址、起始地址和data得到需要發送的modbus數據報文;

6、程序將modbus報文發送到485總線上;

在本實施方式中,通過bacnet協議讀取485數據實施方案如下:

1、通過上述初始化後,485接口電路接收485總線數據(設備地址、起始地址和data);

2、程序通過id轉換算法解析modbus設備地址和起始地址得到objectid;

3、程序通過數據轉換算法解析modbusdata得到presentvalue;

4、程序建立objectid、presentvalue、objectname及其它屬性關係,得到一個bacnet對象;

5、程序通過下發的bacnetip查詢數據包得到id值;

6、程序通過得到的id值返回需要查詢的數據。如:presentvalue、objectname及其它屬性。

本申請還提供一種兼容modbus協議的bacnet協議棧的數據處理系統,所述系統包括上位機、bacnet協議棧、modbus庫以及機組,其中:

所述上位機,用於對所述bacnet協議棧進行讀寫屬性操作時,向網際網路上發送一幀udp數據幀;

所述bacnet協議棧,用於接收所述udp數據幀後,將所述udp數據幀中的對象id解析為modbus數據幀中的設備地址和起始地址,並將所述udp數據幀中的當前值解析為所述modbus數據幀中的數據長度和有效數據;將解析後的信息發送至所述modbus庫;

所述modbus庫,用於以modbus數據幀的格式將解析後的信息發送至各個機組處。

在本實施方式中,所述udp數據幀中的對象id包括參數偏移和設備偏移;相應地,所述bacnet協議棧包括:

id轉換單元,用於將所述對象id中的參數偏移賦值給所述modbus數據幀中的起始地址,並將所述對象id中的設備偏移賦值給所述modbus數據幀中的設備地址。

在本實施方式中,所述bacnet協議棧還包括:

數據轉換單元,用於將所述udp數據幀中的當前值作為所述modbus數據幀中的有效數據,並將所述udp數據幀中的當前值所處數據的長度作為所述modbus數據幀中的數據長度。

在本實施方式中,所述modbus庫以modbus數據幀的格式將解析後的信息發送至485總線上,以使得機組通過所述485總線接收並解析modbus數據幀中攜帶的信息;相應地,所述機組還用於將所述上位機請求的信息以modbus數據幀的格式發送到485總線;所述modbus庫還用於通過所述485總線接收所述modbus數據幀,基於所述modbus數據幀中的設備地址和起始地址,解析得到udp數據幀的對象id,並根據所述modbus數據幀中的數據長度和有效數據解析得到udp數據幀中的當前值;將解析得到的信息傳給bacnet協議棧,以使得所述bacnet協議棧將所述解析得到的信息以udp數據幀的格式發送到網際網路上;所述上位機還用於通過網絡設備從網際網路中獲取所述udp數據幀。

由上可見,本申請通過bacnet協議棧對網際網路中的udp數據幀進行解析,可以將udp數據幀中的對象id和當前值分別解析為modbus數據幀中的設備地址、起始地址、數據長度和有效數據,從而能夠將bacnet數據幀轉換為modbus數據幀,從而使得機組能夠解析出上位機發出的信息。此外,通過modbus庫對modbus數據幀進行解析,可以將modbus數據幀轉換為bacnet數據幀,從而可以實現這兩種協議之間的自由轉換,消除了控制網絡與internet的互聯之間存在的通信障礙。

顯然,本領域的技術人員應該明白,上述的本發明實施例的各模塊或各步驟可以用通用的計算裝置來實現,它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網絡上,可選地,它們可以用計算裝置可執行的程序代碼來實現,從而,可以將它們存儲在存儲裝置中由計算裝置來執行,並且在某些情況下,可以以不同於此處的順序執行所示出或描述的步驟,或者將它們分別製作成各個集成電路模塊,或者將它們中的多個模塊或步驟製作成單個集成電路模塊來實現。這樣,本發明實施例不限制於任何特定的硬體和軟體結合。

以上所述僅為本發明的優選實施例而已,並不用於限制本發明,對於本領域的技術人員來說,本發明實施例可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀