【MODBUS協議整理——匯總】
1.MODBUS功能碼簡述
下表列出MODBUS支持的部分功能代碼:以十進製表示。
表1.1 MODBUS部分功能碼
代碼 |
中文名稱 |
寄存器PLC地址 |
位操作/字操作 |
操作數量 |
01 |
讀線圈狀態 |
00001-09999 |
位操作 |
單個(ge) 或多個(ge) |
02 |
讀離散輸入狀態 |
10001-19999 |
位操作 |
單個(ge) 或多個(ge) |
03 |
讀保持寄存器 |
40001-49999 |
字操作 |
單個(ge) 或多個(ge) |
04 |
讀輸入寄存器 |
30001-39999 |
字操作 |
單個(ge) 或多個(ge) |
05 |
寫(xie) 單個(ge) 線圈 |
00001-09999 |
位操作 |
單個(ge) |
06 |
寫(xie) 單個(ge) 保持寄存器 |
40001-49999 |
字操作 |
單個(ge) |
15 |
寫(xie) 多個(ge) 線圈 |
00001-09999 |
位操作 |
多個(ge) |
16 |
寫(xie) 多個(ge) 保持寄存器 |
40001-49999 |
字操作 |
多個(ge) |
1.1功能碼說明
功能碼可以分為(wei) 位操作和字操作兩(liang) 類。位操作的最小單位為(wei) BIT,字操作的最小單位為(wei) 兩(liang) 個(ge) 字節。
【位操作指令】 讀線圈狀態01H,讀(離散)輸入狀態02H,寫(xie) 單個(ge) 線圈06H和寫(xie) 多個(ge) 線圈0FH。
【字操作指令】 讀保持寄存器03H,寫(xie) 單個(ge) 寄存器06H,寫(xie) 多個(ge) 保持寄存器10H。
1.2寄存器地址分配
表1.2 MODBUS寄存器地址分配
寄存器PLC地址 |
寄存器協議地址 |
適用功能 |
寄存器種類 |
讀寫(xie) 狀態 |
00001-09999 |
0000H-FFFFH |
01H 05H 0FH |
線圈狀態 |
可讀可寫(xie) |
10001-19999 |
0000H-FFFFH |
02H |
離散輸入狀態 |
可讀 |
30001-39999 |
0000H-FFFFH |
04H |
輸入寄存器 |
可讀 |
40001-49999 |
0000H-FFFFH |
03H 06H 0FH |
保持寄存器 |
可讀可寫(xie) |
1.3寄存器種類說明
表1.3 MODBUS寄存器種類說明
寄存器種類 |
說明 |
PLC類比 |
舉(ju) 例說明 |
線圈 狀態 |
輸出端口。可設定端口的輸出狀態,也可以讀取該位的輸出狀態。可分為(wei) 兩(liang) 種不同的執行狀態,例如保持型或邊沿觸發型。 |
DO 數字量輸出 |
電磁閥輸出,MOSFET輸出,LED顯示等。 |
離散 輸入狀態 |
輸入端口。通過外部設定改變輸入狀態,可讀但不可寫(xie) 。 |
DI 數字量輸入 |
撥碼開關(guan) ,接近開關(guan) 等。 |
保持 寄存器 |
輸出參數或保持參數,控製器運行時被設定的某些參數。可讀可寫(xie) 。 |
AO 模擬量輸出 |
模擬量輸出設定值,PID運行參數,變量閥輸出大小,傳(chuan) 感器報警上限下限。 |
輸入 寄存器 |
輸入參數。控製器運行時從(cong) 外部設備獲得的參數。可讀但不可寫(xie) 。 |
AI 模擬量輸入 |
模擬量輸入 |
1.4 PLC地址和協議地址區別
PLC地址可以理解為(wei) 協議地址的變種,在觸摸屏和PLC編程中應用較為(wei) 廣泛。
1.4.1 寄存器PLC地址
寄存器PLC地址指存放於(yu) 控製器中的地址,這些控製器可以是PLC,也可以使觸摸屏,或是文本顯示器。PLC地址一般采用10進製描述,共有5位,其中第一位代碼寄存器類型。第一位數字和寄存器類型的對應關(guan) 係如表1所示。PLC地址例如40001、30002等。
1.4.2 寄存器協議地址
寄存器協議地址指指通信時使用的寄存器地址,例如PLC地址40001對應尋址地址0x0000,40002對應尋址地址0x0001,寄存器尋址地址一般使用16進製描述。再如,PLC寄存器地址40003對應協議地址0002,PLC寄存器地址30003對應協議地址0002,雖然兩(liang) 個(ge) PLC寄存器寄存器通信時使用相同的地址,但是需要使用不同的命令訪問,所以訪問時不存在衝(chong) 突。