System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及一種網關機設備modbus數據接入處理方法,屬于智慧變配電站房中的傳感器信息點技術。
技術介紹
1、modbus協議是一種串行通信協議,是modicon公司于1979年為使用可編程邏輯控制器(plc)通信而發表;現如今modbus協議已經成為工業領域通信協議的業界標準,是工業電力設備常用的連接方式。modbus協議目前存在用于串口、以太網以及其他支持互聯網協議的網絡的版本,支持多種通信方式,包括modbus?rtu、modbus?ascii、modbus?tcp等。
2、modbus?rtu是modbus協議最常見的通信方式,采用二進制數據傳輸,具有較高的傳輸效率和穩定性,支持rs232和rs484兩種接口,每個字節傳輸兩位十六進制字符。modbusrtu的報文幀格式如表1所示:
3、表1modbus?rtu的報文幀格式
4、 附加地址 功能碼 數據 crc 1字符 1字符 0~255字符 2字符
5、modbu
6、表2modbus?ascii的報文幀格式
7、 開始 地址 功能碼 數據 lrc 結束 1字符: 2字符 2字符 0~2×252字符 2字符 2字符cr或lf
8、modbus?tcp是modbus協議的一種擴展,使用tcp/ip協議進行通信,可在局域網和廣域網之間進行數據傳輸,適用于遠程監控和控制,常用于工業網絡和物聯網應用。modbustcp和modbus?rtu的報文幀格式不同,modbus?tcp相較于modbus?rtu去除了附加地址和校驗碼,增加了報文頭,modbus?tcp的報文幀格式如表3所示:
9、表3modbus?rtu和modbus?tcp的報文幀格式
10、
11、modbus?tcp的報文幀中:事務處理標識符占用了2字節,用于標識事務處理的唯一性,每次通信過程都需要保持主站和從站的報文幀的事務處理標識符一致,且每次主站新發起的報文事務處理標識符都要進行自增處理;協議標識符占用了2個字節,并且固定為0x0000;長度占用了2個字節,表示單元標識符、功能碼和數據部分的總長度;單元標識符占用了1字節,表示目標從站地址,與modbus?rtu的目標從站地址一致。
12、綜上可以看出,雖然modbus協議支持多種通信方式,但這些通信方式都支持同樣的modbus功能碼,而且基于同樣功能碼的數據部分的組幀方式也都一致;因此,在某些使用場景上,也會使用tcp通信方式傳輸modbus?rtu報文幀格式的數據,但由于modbus?rtu報文幀采用的是串口通信方式,因而需要解決串口通信協議與串口通信方式分離的問題;現有技術通常采用的方式是為每種串口通信協議和串口通信方式組合單獨進行代碼開發,且每次modbus報文幀發送前都涉及重新組幀問題,缺乏統一或標準化的modbus數據接入處理方法。
技術實現思路
1、專利技術目的:為了克服現有技術中存在的不足,本專利技術提供一種網關機設備modbus數據接入處理方法,解決采用tcp通信方式傳輸串口modbus報文時,需要對modbus報文進行重新組幀的問題,簡化modbus數據接入處理過程。
2、技術方案:為實現上述目的,本專利技術采用的技術方案為:
3、一種網關機設備modbus數據接入處理方法,對于網關機中基于modbus?rtu協議和modbus?tcp協議的通信節點,將該通信節點上的傳感器信息點按照傳感器通信地址、寄存器地址和功能碼進行分堆,將傳感器通信地址一致、功能碼一致、寄存器地址連續的傳感器信息點分在一個數據堆內;根據傳感器通信地址、功能碼、寄存器地址和通信協議類型,生成各數據堆的modbus報文,建立modbus報文與傳感器信息點的映射關系,設定采集周期并將modbus報文存放在所屬通信節點的固定報文隊列等待處理;為各通信節點構建報文發送隊列,根據采集周期將固定報文隊列中的modbus報文添加到報文發送隊列;構建modbus處理線程基類處理modbus報文,基于modbus處理線程基類創建modbus串口處理線程類和modbus?tcp處理線程類,對于串口通信方式的通信節點使用modbus串口處理線程類創建一個modbus串口處理線程對象,對于tcp通信方式的通信節點使用modbus?tcp處理線程類創建一個modbus?tcp處理線程對象;啟動處理線程對象,modbus處理線程基類從報文發送隊列取出modbus報文并進行處理,每個處理線程對象都有各自的固定報文隊列、定時器、報文發送隊列和處理線程,各司其職,不會相互干擾。
4、具體的,生成各數據堆的modbus報文時:若通信協議類型為modbus?rtu協議,則直接生成完整的modbus報文;若通信協議類型為modbus?tcp協議,則先生成包括協議標識符、長度、單元標識符、功能碼和數據部分在內的半完整的modbus報文;將完整的modbus報文和半完整的modbus報文放入各自通信節點的固定報文隊列等待處理;使用modbus處理線程基類取出modbus報文并進行處理后:如果是modbus?rtu協議,則直接發送處理后的modbus報文進行,再監控讀寫端口,在讀本文檔來自技高網...
【技術保護點】
1.一種網關機設備Modbus數據接入處理方法,其特征在于:對于網關機中基于ModbusRTU協議和Modbus?TCP協議的通信節點,將該通信節點上的傳感器信息點按照傳感器通信地址、寄存器地址和功能碼進行分堆,將傳感器通信地址一致、功能碼一致、寄存器地址連續的傳感器信息點分在一個數據堆內;根據傳感器通信地址、功能碼、寄存器地址和通信協議類型,生成各數據堆的Modbus報文,建立Modbus報文與傳感器信息點的映射關系,設定采集周期并將Modbus報文存放在所屬通信節點的固定報文隊列等待處理;為各通信節點構建報文發送隊列,根據采集周期將固定報文隊列中的Modbus報文添加到報文發送隊列;構建Modbus處理線程基類處理Modbus報文,基于Modbus處理線程基類創建Modbus串口處理線程類和Modbus?TCP處理線程類,對于串口通信方式的通信節點使用Modbus串口處理線程類創建一個Modbus串口處理線程對象,對于TCP通信方式的通信節點使用Modbus?TCP處理線程類創建一個Modbus?TCP處理線程對象;啟動處理線程對象,Modbus處理線程基類從報文發送隊列取出
2.根據權利要求1所述的網關機設備Modbus數據接入處理方法,其特征在于:生成各數據堆的Modbus報文時:若通信協議類型為Modbus?RTU協議,則直接生成完整的Modbus報文;若通信協議類型為Modbus?TCP協議,則先生成包括協議標識符、長度、單元標識符、功能碼和數據部分在內的半完整的Modbus報文;將完整的Modbus報文和半完整的Modbus報文放入各自通信節點的固定報文隊列等待處理;
3.根據權利要求1所述的網關機設備Modbus數據接入處理方法,其特征在于:構建Modbus處理線程基類時,為Modbus處理線程基類添加一個命名為create的虛接口函數、一個命名為open的虛接口函數、一個命名為write的虛接口函數、一個命名為read的虛接口函數和定時器;create虛接口函數供派生類繼承實現通信節點創建的過程,open虛接口函數供派生類繼承實現通信節點的通信連接建立和通信連接維護,write虛接口函數供派生類繼承實現數據報文的寫入操作,read虛接口函數供派生類繼承實現數據報文的讀取操作;
4.根據權利要求3所述的網關機設備Modbus數據接入處理方法,其特征在于:Modbus串口處理線程類和Modbus?TCP處理線程類均繼承自Modbus處理線程基類,Modbus串口處理線程類和Modbus?TCP處理線程類均只需要繼承實現Modbus處理線程基類的open虛接口函數、write虛接口函數和read虛接口函數。
5.根據權利要求1所述的網關機設備Modbus數據接入處理方法,其特征在于:按照傳感器通信地址、寄存器地址和功能碼對所有傳感器信息點進行分堆,將傳感器通信地址一致、功能碼一致、寄存器地址連續的傳感器信息點分在一個數據堆內,并按照寄存器地址進行排序;若某個數據堆的寄存器地址范圍超過Modbus報文長度限制,則以Modbus報文長度限制為參考對寄存器地址范圍進行分片,形成兩個以上數據堆。
6.根據權利要求1所述的網關機設備Modbus數據接入處理方法,其特征在于:通過Modbus數據采集模塊配置固定報文隊列,包括如下步驟:
7.根據權利要求6所述的網關機設備Modbus數據接入處理方法,其特征在于:在網關機中增加通信節點配置表,配置信息包括通信節點ID、通信節點名稱、通信參數、通信方式和通信協議類型;通信節點為傳感器在網關機上的通信接口,通信節點配置為傳感器在網關機上的通信接口配置;通信參數為字符串格式,是由通信方式和通信協議類型共同決定參數格式,對于串口通信方式包括串口號、波特率、數據位、停止位和奇偶校驗位,對于TCP通信方式包括IP地址和端口號。
8.根據權利要求6所述的網關機設備Modbus數據接入處理方法,其特征在于:在網關機的數據庫內構建傳感器庫,傳感器庫用于存儲連接在網關機上的各傳感器的傳感器模型,傳感器模型包括傳感器模塊和傳感器信息點模塊,在傳感器模塊中定義傳感器及傳感器參數,在傳感器信息點模塊中定義傳感器信息點和傳感器信息點參數;所述傳感器參數包括傳感器通信地址,對于Modbus協議,傳感器通信地址為傳感器通信地址。
9.根據權利要求7所述的網關機設備Modbus數據接入處理方法,其特征在于:在網關機的數據庫內構建模型庫,模型庫中預置不同類型傳感器的數據模型,數據模型包括模型模塊和模型信息點模塊,在模型模塊中定義模型及模型參數,在模型信息點模塊中定義模型信息點及模型信息點...
【技術特征摘要】
1.一種網關機設備modbus數據接入處理方法,其特征在于:對于網關機中基于modbusrtu協議和modbus?tcp協議的通信節點,將該通信節點上的傳感器信息點按照傳感器通信地址、寄存器地址和功能碼進行分堆,將傳感器通信地址一致、功能碼一致、寄存器地址連續的傳感器信息點分在一個數據堆內;根據傳感器通信地址、功能碼、寄存器地址和通信協議類型,生成各數據堆的modbus報文,建立modbus報文與傳感器信息點的映射關系,設定采集周期并將modbus報文存放在所屬通信節點的固定報文隊列等待處理;為各通信節點構建報文發送隊列,根據采集周期將固定報文隊列中的modbus報文添加到報文發送隊列;構建modbus處理線程基類處理modbus報文,基于modbus處理線程基類創建modbus串口處理線程類和modbus?tcp處理線程類,對于串口通信方式的通信節點使用modbus串口處理線程類創建一個modbus串口處理線程對象,對于tcp通信方式的通信節點使用modbus?tcp處理線程類創建一個modbus?tcp處理線程對象;啟動處理線程對象,modbus處理線程基類從報文發送隊列取出modbus報文并進行處理。
2.根據權利要求1所述的網關機設備modbus數據接入處理方法,其特征在于:生成各數據堆的modbus報文時:若通信協議類型為modbus?rtu協議,則直接生成完整的modbus報文;若通信協議類型為modbus?tcp協議,則先生成包括協議標識符、長度、單元標識符、功能碼和數據部分在內的半完整的modbus報文;將完整的modbus報文和半完整的modbus報文放入各自通信節點的固定報文隊列等待處理;
3.根據權利要求1所述的網關機設備modbus數據接入處理方法,其特征在于:構建modbus處理線程基類時,為modbus處理線程基類添加一個命名為create的虛接口函數、一個命名為open的虛接口函數、一個命名為write的虛接口函數、一個命名為read的虛接口函數和定時器;create虛接口函數供派生類繼承實現通信節點創建的過程,open虛接口函數供派生類繼承實現通信節點的通信連接建立和通信連接維護,write虛接口函數供派生類繼承實現數據報文的寫入操作,read虛接口函數供派生類繼承實現數據報文的讀取操作;
4.根據權利要求3所述的網關機設備modbus數據接入處理方法,其特征在于:modbus串口處理線程類和modbus?tcp處理線程類均繼承自mod...
【專利技術屬性】
技術研發人員:徐姣,于文學,周國祥,尤敏捷,
申請(專利權)人:江蘇征途電氣科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。