Modbus一個工業上經常使用的通信協議、一種通信約定。
協議包括了:RTU、ASCII、TCP。其中RTU最經常使用,較簡單,在單片機上很容易實現
通信方式:主從-雙向讀寫
經常使用接口形式:RS232C、RS48五、RS422
經常使用波特率:1200、1800、2400、4800、9600、12500 等等
常見設備默認波特率:9600
自動化領域中RTU模式每一個字節格式:
編碼系統:八位二進制,16進制0-9 A-F
數據位:1起始位
8位數據低位先送
奇偶校驗1位,無校驗0位
中止位:帶校驗1位,無校驗兩中止位
編碼
分析一條實際報文:01 06 00 01 00 17 98 04blog
從機地址 | 功能號 | 數據地址 | 數據 | CRC校驗 |
---|---|---|---|---|
01 | 06 | 00 01 | 00 17 | 98 04 |
這串命令會把數據 0x0017(十進制23) 寫入 1號從機地址 0x0001數據地址。接口
主機對從機 01 寫數據操做:功能號06
若是單片機接收到一個報文那麼就對報文進行解析執行相應的處理,如報文:
01 06 00 01 00 17 98 04it
主機對從機 01 讀數據操做:功能號03
主機進行讀HoldDataReg[1] 操做,如報文:
01 03 00 01 00 01 D5 CA
從機返回格式爲:自動化
從機地址 | 功能號 | 數據字節個數 | 兩個字節數據 | CRC校驗 |
---|---|---|---|---|
01 | 03 | 02 | 0017 | F8 4A |
MODBUS主機就完成了一次對從機數據的讀操做,實現了通信。table