1、01X 讀取一組邏輯線圈的當前狀態(ON/OFF)
2、0x02 讀取一組開關輸入的當前狀態(ON/OFF)
3、0x03 讀取一個或多個保持寄存器的數值
5、0x05 強置一個邏輯線圈的通斷狀態
6、0x06 寫單個保持寄存器
7、0x0f 強置多個邏輯線圈的通斷狀態
8、0x10 寫多個保持寄存器
9、0x2b 讀取設備ID
1、01X 讀取一組邏輯線圈的當前狀態(ON/OFF)
請求:MBAP 功能碼 起始地址H 起始地址L 數量H 數量L(共12字節)
響應:MBAP 功能碼 數據長度 數據(一個地址的數據為1位)
發送包
byte[0] byte[1] 00 02 為消息號,隨便指定,服務器返回的數據的前兩個字和這個一樣
byte[2] byte[3] 00 00 為modbus標識,強制為0即可
byte[4] byte[5] 00 06 值在06 之后所有字節的個數,大家也可以數一數哈
byte[6] 01 為站號、隨便指定。
byte[7] 01 為功能碼(這個是決定了要干什么事)
byte[8] byte[9] 00 00為起始地址,比如我們我們想讀地址0的數據就為00,讀1000地址為03 E8
byte[10] byte[11] 00 80為指定讀取數據的長度,跟地址規則一樣
回包
注:bit是一直到127的 因為圖片太大無法截到
byte[0] byte[1] 消息號,我們之前寫發送指令的時候,是多少,這里就是多少。
byte[2] byte[3] 同上
byte[4] byte[5] 指后面的字節數
byte[6] 站號
byte[7] 功能碼
byte[8] 指示在byte[8]后面的字節數量 在byte[8]后面就是真實數據
byte[9] 到結尾都是我們讀取到的數據 因為字節是8位所以是16(0-127所占了128個bit 128/8 得出16)
列子:
讀5個線圈狀態
發送:00 00 00 00 00 06 01 01 00 00 00 05
接收:00 00 00 00 00 04 01 01 01 1F
回到頂部
2、0x02 讀取一組開關輸入的當前狀態(ON/OFF)請求:MBAP 功能碼 起始地址H 起始地址L 數量H 數量L(共12字節)
響應:MBAP 功能碼 數據長度 數據(長度:9+ceil(數量/8))
發送包
其實大家自己看與0x01是基本一樣的。只是多了個Bit Count這一個
Bit Count所代表的意思就是 讀取十個數據。
回包
跟0x01的回包也是一樣的,可能大家伙會有些迷茫,我發包的時候是讀取十個數據回包的時候Byte Count怎么會給我回復了個2呢?
細心的朋友可能也發現了、這兩個單詞是不一樣的~一個是Bit Count 一個是Byte Count,哈哈哈哈小小的幽默 。
那這個Byte Count代表的是什么意思呢。還是字節有關。
一個字節是8位、但是10個位超過了1個字節但是不滿2個字節所以占用2個字節。還有很多跟這個情況相同。
列子:
讀5個輸入狀態
發送:00 00 00 00 00 06 01 02 00 00 00 05
接收:00 00 00 00 00 04 01 02 01 15
回到頂部
3、0x03 讀取一個或多個保持寄存器的數值請求:MBAP 功能碼 起始地址H 起始地址L 寄存器數量H 寄存器數量L(共12字節)
響應:MBAP 功能碼 數據長度 寄存器數據(長度:9+寄存器數量×2)
發包
這邊Modbus/TCP我就不再展開了、都是一樣的。
這個發包也很好去理解、根據Reference這一欄還有Word Count這一欄說明是起始位置是400讀取6個保持寄存器數值。
一通百通、Modbus在功能報文上基本都是一致的。
回包
大家伙可能有迷茫了 怎么會是12呢 這個可怎么計算呢
我把這個Register這一欄專門的點開了,大家也都能看出來了吧。
- 西門子RS232,RS485,RJ45,以及Modbus協議傻傻分不清楚 2024-11-22
- 西門子S7-200SMART和IFIX通信步驟詳解 2024-11-22
- IFIX與西門子PLC的S7 連接 2024-11-22
- 全面解析西門子S7-1200 PLC編程控制 2024-11-22
- 一文帶你了解西門子S7-200SMART與PID的應用 2024-11-22
- 西門子Smart line系列觸摸屏如何與S7-1200PLC的時間同步 2024-11-22
- 西門子觸摸屏與RS485接口的通信實例 2024-11-22
- 西門子S7-300數字量模塊如何接線 2024-11-22
- 西門子S7-1200PLC的SIM使用入門 2024-11-22
- 西門子PLC編程詳細講解及案例分析 2024-11-22
- 如何學好西門子S7-1200PLC 2024-11-22
- 西門子觸摸屏不通過西門子PLC,直接控制西門子變頻器 2024-11-22
- 超簡單的西門子PLC分揀和分配線案例 2024-11-22
- 西門子伺服定位時,如何切換定位地址 2024-11-22
- 西門子S7-1200CPU做IO共享設備的配置方法 2024-11-22
聯系方式
- 電 話:13510737515
- 聯系人:董海波
- 手 機:13185520415
- 微 信:13185520415