Modbus TCP 03功能碼 讀取一個或多個保持寄存器的數值
讀取連續三個保持寄存器的數值
(40001=1000、40002=5000、40003=650)
發送:00 00 00 00 00 06 01 03 00 00 00 03
接收:00 00 00 00 00 09 01 03 06 03 E8 13 88 02 8A
發送詳解:00 00 00 00 00 06 01 03 00 00 00 03
00 00 事務標識符
00 00 協議標識符
00 06 長度標識符
01 站號
03 功能碼
00 00 首個寄存器地址
00 03 讀取寄存器的個數 RTU格式 (無需CRC)
Modbus TCP 與Modbus RTU 比較就是頭部多了六個字節
Modbus TCP 無需CRC校驗碼
接收詳解:00 00 00 00 00 09 01 03 06 03 E8 13 88 02 8A
00 00 事務標識符
00 00 協議標識符
00 09 長度標識符
01 站號
03 功能碼
06 讀取的字節數
03 E8 讀取第一個寄存器的數值
13 88 讀取第二個寄存器的數值
02 8A 讀取第三個寄存器的數值 RTU格式 (無需CRC)
03功能碼 讀取(03 E8=1000、13 88=5000、02 8A=650)
Modbus TCP 06功能碼 寫一個寄存器的值
(40001=10)(00 0A=10=40001)
發送:00 00 00 00 00 06 01 06 00 00 00 0A
接收:00 00 00 00 00 06 01 06 00 00 00 0A
Modbus TCP 01功能碼 讀取一組邏輯線圈的當前狀態(ON/OFF)
讀5個線圈狀態:(00001=1、00002=1、00003=1、00004=1、00005=1)
返回狀態:(1F=0001 1111)
發送:00 00 00 00 00 06 01 01 00 00 00 05
接收:00 00 00 00 00 04 01 01 01 1F
Modbus TCP 02功能碼 讀取一組開關輸入的當前狀態(ON/OFF)
讀5個輸入狀態
(10001=1、10002=0、10003=1、10004=0、10005=1)
(15=0001 0101)提示15為十六進制數。
發送:00 00 00 00 00 06 01 02 00 00 00 05
接收:00 00 00 00 00 04 01 02 01 15
Modbus TCP 04功能碼 讀取一個或多個輸入寄存器的數值
讀5個輸入寄存器的數值
(30001=0、30002=1、30003=2、30004=3、30005=4)
發送:00 00 00 00 00 06 01 04 00 00 00 05
接收:00 00 00 00 00 0D 01 04 0A 00 00 00 01 00 02 00 03 00 04
Modbus TCP 05功能碼 強置一個邏輯線圈的通斷狀態
發送:00 00 00 00 00 06 01 05 00 00 FF 00
接收:00 00 00 00 00 06 01 05 00 00 FF 00
Modbus TCP 16(16進制=10碼)功能碼 寫多(3)個寄存器的值
發送詳解:00 00 00 00 00 0D 01 10 00 00 00 03 06 00 0A 00 0B 00 0F
00 00 事務標識符
00 00 協議標識符
00 0D 長度標識符
01 站號
10 功能碼
00 00 首個寄存器通訊地址
00 03 寫入的寄存器個數
06 00 寫入的字節數
00 0A 寫入第一個寄存器的數值
00 0B 寫入第二個寄存器的數值
00 0F 寫入第三個寄存器的數值
接收詳解:00 00 00 00 00 06 01 10 00 00 00 03
00 00 事務標識符
00 00 協議標識符
00 06 長度標識符
01 站號
10 功能碼
00 00 首個寄存器通訊地址
00 03 寫入的寄存器個數
Modbus TCP 15(16進制=0F碼)功能碼 強置一串連續邏輯線圈的通斷
發送:00 00 00 00 00 0B 01 0F 00 00 00 02 04 FF 00 00 00
發送:00 00 00 00 00 06 01 0F 00 00 00 02