MODBUS 協議表
步驟與項目
通訊基本參數
參數 | 內容 |
編碼 | 8 位元二進位 |
數據位元 | 8 位 |
同位檢查位元 | 無 |
停止位 | 1 位 |
錯誤校準 | CRC 冗長迴圈碼 |
串列傳輸速率 | 2400bps/4800bps/9600 bps 可設, 出廠默
認為 9600bps |
編碼 | 8 位元二進位 |
資料框架格式定義
- 採用 Modbus-RTU 通訊規約,格式如下: 初始結構≥4 位元組的時間
- 位址碼= 1 位元組
- 功能碼= 1 位元組資料區= N 位元組
- 錯誤校驗= 16 位元 CRC 碼結束結構≥4 位元組的時間
- 地址碼:為變送器的功能指示,本變送器只用到功能碼 0x03(讀取寄存器資料)。
- 數據區: 資料區是具體位址, 在通訊網路中是唯一的 (出廠默認 0x01)。
- 功能碼:主機所發指令通訊資料,注意 16bits 資料高位元組在前
- CRC 碼:二位元組的校驗碼。
寄存器位址
寄存器位址 | PLC 組
態地址 |
內容 | 操作 |
0000H | 40001 | 濕度(單位 0.1%RH) | 唯讀 |
0001H | 40002 | 溫度(單位 0.1℃) | 唯讀 |
0018H | 40019 | 濕度報警上限 1 | 讀寫 |
0019H | 40020 | 濕度報警下限 1 | 讀寫 |
001aH | 40021 | 溫度報警上限 2 | 讀寫 |
001bH | 40022 | 溫度報警下限 2 | 讀寫 |
001cH | 40023 | 濕度報警回落 1 | 讀寫 |
001dH | 40024 | 溫度報警回落 2 | 讀寫 |
0104H | 40105 | 濕度修正參數 | 讀寫 |
0105H | 40106 | 溫度修正參數 | 讀寫 |
0100H | 40101 | 設備位址(0-252) | 讀寫 |
0101H | 40102 | 串列傳輸速率(2400/4800/9600) | 讀寫 |
通訊協定示範以及解釋
讀取設備位址 0x01 的溫濕度值
問詢幀
地址碼 | 功能碼 | 起始位址 | 數據長度 | 校驗碼
低位 |
校驗碼
高位 |
0x01 | 0x03 | 0x00,0x00 | 0x00,0x02 | 0xC4 | 0x0B |
應答幀(例如讀到溫度為-10.1℃,濕度為 65.8%RH)
地址碼 | 功能碼 | 有效字數 | 濕度值 | 溫度值 | 校驗碼
低位 |
校驗碼
高位 |
0x01 | 0x03 | 0x04 | 0x02
0x92 |
0xFF
0x9B |
0x5A | 0x3D |
溫度:當溫度低於 0℃時以補數形式上傳 FF9B H(十六進位)=-101=>溫度= -10.1℃
濕度:292 H(十六進位)=658=>濕度=65.8%RH
讀取設備位址 0x01 的設備位址串列傳輸速率
問詢幀
地址碼 | 功能碼 | 起始位址 | 數據長度 | 校驗碼低位 | 校驗碼高位 |
0x01 | 0x03 | 0x01,0x00 | 0x00,0x02 | 0xC5 | 0xF7 |
應答幀(例如讀到設備位址 01,串列傳輸速率為 9600)
地址碼 | 功能碼 | 有效字數 | 設備位址 | 串列傳輸速率 | 校驗碼低位 | 校驗碼高位 |
0x01 | 0x03 | 0x04 | 0x01
0x00 |
0x00
0x02 |
0xFB | 0xE2 |
註:在寄存器中串列傳輸速率 00 代表 2400,01 代表 4800,02 代表 9600。