modbus-tcp協議講解


MODBUS功能碼簡介 

代碼

中文名稱

位操作/字操作

操作數量

01h

讀線圈狀態

位操作

單個或多個

02h

讀離散輸入狀態(只能讀到0或1)

位操作

單個或多個

03h

讀保持寄存器(保持寄存器可以通過06h功能寫入)

字操作

單個或多個

04h

讀輸入寄存器(輸入寄存器只能讀取,不能通過06h功能寫入)

字操作

單個或多個

05h

寫單個線圈(線圈表示用來控制輸出IO控制)

位操作

單個

06h

寫單個保持寄存器

字操作

單個

0Fh

寫多個線圈

位操作

多個

10h

寫多個保持寄存器

字操作

多個

 

Modbus TCP介紹

示例-通過03功能碼讀寄存器(從寄存器00開始,讀取兩個值,讀到01寄存器結束)

客戶端發送 01 02 00 00 00 06 01 03 00 00 00 02

01 02 00 00 00 06 (固定報文頭)

  • 01 02:   客戶端發出的檢驗信息, server端會將這兩個字節內容復制到回應的報文第一二位.一般我們會將第一二位進行不停遞加,然后根據服務器返回的相應內容, 來驗證服務器回應信息的時效性
  • 00 00:   表示tcp/ip 的協議的modbus的協議
  • 00 06:   表示客戶端發送的后面帶了多少字節.

01 03 00 00 00 02(用戶數據)

  • 01:   表示設備地址
  • 03:  表示讀保持寄存器功能碼
  • 00 00:  表示客戶端讀取的寄存器起始地址
  • 00 02:  表示讀取的寄存器值個數(由於為02,所以會讀出寄存器00h和01h的值)

返回值如下圖所示:

 

服務器返回值  01 02 00 00 00 07 01 03 04 04 7B 00 FF

  • 01 02:  服務器回應的檢驗信息
  • 00 00: 表示tcp/ip 的協議的modbus的協議
  • 00 07: 表示服務器發送的后面帶了多少字節.
  • 01:  表示設備地址
  • 03:  表示功能碼
  • 04:  表示后面發送的寄存器00的字節長度
  • 04 7B:  表示寄存器00的值
  • 00 FF:  表示寄存器01的值

 

示例-06功能碼寫單個寄存器(向寄存器03地址里寫值)

客戶端發送 01 02 00 00 00 06 01 06 00 03 00 FF

01 02 00 00 00 06 (固定報文頭)

  • 01 02:  客戶端發出的檢驗信息
  • 00 00:  表示tcp/ip 的協議的modbus的協議
  • 00 06:  表示客戶端發送的后面帶了多少字節.

01 06 00 03 00 FF (用戶數據)

  • 01:   表示設備地址
  • 06:   表示寫單個保持寄存器功能碼
  • 00 03 00 FF:  表示寫入寄存器03h的值為0xFF

返回值如下圖所示:

 

服務器返回  01 02 00 00 00 06 01 06 00 03 00 FF

后面的06 00 03 00 FF:表示客戶端使用06功能碼成功向寄存器03h分別寫入了0xFF值

 

示例-10功能碼寫多個寄存器(向寄存器03~06地址里寫不同值)

客戶端發送 01 02 00 00 00 0F 01 10 00 03 00 04 08 FF FF 00 0A 00 0F 00 06

01 02 00 00 00 0F (固定報文頭)

  • 01 02:  客戶端發出的檢驗信息
  • 00 00:  表示tcp/ip 的協議的modbus的協議
  • 00 0F:  表示客戶端發送的后面帶了多少字節.

01 10 00 03 00 04 08 FF FF 00 0A 00 0F 00 06 (用戶數據)

  • 01:  表示設備地址
  • 10:  表示寫多個保持寄存器功能碼
  • 00 03:  表示客戶端寫入的寄存器起始地址
  • 00 04:  表示寫入的寄存器值個數(由於為04,所以會寫入寄存器03h~06h的值)
  • 08:   表示后面寫入的字節個數
  • FF FF:  表示寫入寄存器03h的值
  • 00 0A:  表示寫入寄存器04h的值
  • 00 0F:  表示寫入寄存器05h的值
  • 00 06:  表示寫入寄存器06h的值

返回值如下圖所示:

 

 

服務器返回 01 02 00 00 00 06 01 10 00 03 00 04

后面的10 00 03 00 04:表示客戶端使用10功能碼成功向寄存器03h~06h分別寫入了值

 

部分參考內容:https://blog.csdn.net/mikasoi/article/details/81782159


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM