一種MODBUS RTU擴展串口通訊協議

        一直以來,都希望有一個比較通用的串口UART通訊協議,看到當前modbus RTU的工業應用場景比較多,但是該協議,每次最多256個字節,而且必須是一問一答的通訊方式。而我想象中的通訊協議應該可以相對較長的數據,大約一次可以1Kb以上吧,,所以下面就在MODBUS RTU的協議基礎上略作擴展,功能碼使用0x03、0x06、0x10,但是隻擴展了0x03功能碼,畢竟ERTU通訊大部分是讀取參數,而不是設置參數, 同時也可以更好的兼容以前的代碼,改動更小。

        爲了下文便於描述和區分,通用版本的MODBUS RTU簡稱爲MRTU,新定義的協議爲ERTU,“E”表示擴展的意思。

        1、03 讀線保持寄存器  

        

       查詢信息規定了要讀的寄存器起始地址及寄存器的數量,寄存器尋址起始地址爲0000,寄存器1-16所對應的地址分別爲0-15。 上面的圖片但是MRTU的查詢命令官方文檔例子,本文的ERTU保持不變。

        

        上圖是MRTU的標準相應信息,在此處ERTU做如下調整,調整1:增加了起始地址,其他監控設備即使沒有監控到請求命令,可以只根據響應命令來解析數據的內容;甚至從設備可以只發送不接受,而接收的設備也可以得到想要的數據。調整2:增加了字節數高字節,數據的最大長度可以長達65536個字節,提高了數據讀取的效率

名稱例子(HEX)備註
從機地址11 
功能碼03 
起始地址高字節0新增
起始地址低字節0新增
字節數高字節0新增
字節數低字節2 
數據1高字節02 
數據1低字節05 
................  
校驗碼  

      2、  06 預置單個寄存器

  

        3、16 預置多個寄存器   



 該協議只是一個初步設想,還未能在硬件設備上面實際應用。

文章中的圖片均摘錄自網絡中的文檔截圖,本文爲作者原創,轉發請註明出處。

發佈了28 篇原創文章 · 獲贊 23 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章