一種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 預置多個暫存器
該協議只是一個初步設想,還未能在硬體裝置上面實際應用。
文章中的圖片均摘錄自網路中的文件截圖,本文為作者原創,轉發請註明出處。
相關文章
- ModBus RTU與ModBus TCP通訊協議詳解TCP協議
- 使用Modbus4J進行RTU模式串列埠通訊模式串列埠
- 串列埠通訊協議串列埠協議
- modbus通訊協議協議
- 使用 Neuron 接入 Modbus TCP 及 Modbus RTU 協議裝置TCP協議
- 串列埠通訊上位機資料傳輸協議串列埠協議
- Modbus通訊協議中的四種位元組順序協議
- 基於WebSocket的modbus通訊(三)- websocket和串列埠Web串列埠
- OAuth 2.0 擴充套件協議之 PKCEOAuth套件協議
- 開源 | SOFAMesh 的通用協議擴充套件協議套件
- 串列埠通訊串列埠
- MOSN 多協議擴充套件開發實踐協議套件
- 通訊協議轉換Modbus轉Profinet閘道器協議
- Android 串列埠通訊Android串列埠
- linux 串列埠通訊Linux串列埠
- Swift 核心動畫 面向協議 擴充套件封裝Swift動畫協議套件封裝
- Modbus協議協議
- C# Modbus協議 幾種常用格式C#協議
- 11. 串列埠通訊串列埠
- (10)uart串列埠通訊串列埠
- 串列埠通訊型別串列埠型別
- 【譯】 WebSocket 協議第九章——擴充套件(Extension)Web協議套件
- 通過串列埠進行通訊 :串列埠
- 串列埠資料抓取及串列埠通訊模擬串列埠
- Swift---協議和擴充套件、 錯誤處理、泛型Swift協議套件泛型
- 工業控制領域的Modbus Rtu協議讀寫器都有什麼特點協議
- 串列埠無法正常通訊串列埠
- C# SerialPort 串列埠通訊C#串列埠
- 物通博聯Modbus RTU轉 Modbus TCP閘道器有什麼功能TCP
- 基於 swoole擴充套件 的即時通訊 im套件
- 一文講透Modbus協議協議
- kotlin 擴充套件(擴充套件函式和擴充套件屬性)Kotlin套件函式
- JMeter 擴充套件外掛實現對自定義協議的支援JMeter套件協議
- 通訊協議協議
- Modbus協議轉Profibus協議閘道器模組連PLC與鐳射發射器通訊協議
- AndroidSerialPort:安卓串列埠通訊庫Android安卓串列埠
- 安卓串列埠通訊疑問安卓串列埠
- ROS環境下串列埠通訊ROS串列埠