公司新聞
ModbusTCP協議詳解
發布時間: 2024-04-27 08:53 更新時間: 2024-11-22 08:50
【導讀】【視頻+圖文】詳解ModbusTCP協議。
AModbus TCP數據幀
ModbusTCP的數據幀可分為兩部分:MBAP+PDU。(一)報文頭MBAP:MBAP為報文頭,長度為7字節,組成如下:請求:MBAP 功能碼 起始地址H 起始地址L 數量H 數量L(共12字節) 響應:MBAP 功能碼 數據長度 數據(一個地址的數據為1位) 如:在從站0x01中,讀取開始地址為0x0002的線圈數據,讀0x0008位
00 01 00 00 00 06 01 01 00 02 00 08 回:數據長度為0x01個字節,數據為0x01,個線圈為ON,其余為OFF
00 01 00 00 00 04 01 01 01 01 請求:MBAP 功能碼 輸出地址H 輸出地址L 輸出值H 輸出值L(共12字節) 響應:MBAP 功能碼 輸出地址H 輸出地址L 輸出值H 輸出值L(共12字節) 如:將地址為0x0003的線圈設為ON
00 01 00 00 00 06 01 05 00 03 FF 00 回:寫入成功
00 01 00 00 00 06 01 05 00 03 FF 00 請求:MBAP 功能碼 起始地址H 起始地址L 輸出數量H 輸出數量L 字節長度 輸出值H 輸出值L 響應:MBAP 功能碼 起始地址H 起始地址L 輸出數量H 輸出數量L 請求:MBAP 功能碼 起始地址H 起始地址L 數量H 數量L(共12字節) 響應:MBAP 功能碼 數據長度 數據(長度:9+ceil(數量/8)) 如:從地址0x0000開始讀0x0012個離散量輸入
00 01 00 00 00 06 01 02 00 00 00 12 回:數據長度為0x03個字節,數據為0x01 04 00,表示個離散量輸入和第11個離散量輸入為ON,其余為OFF
00 01 00 00 00 06 01 02 03 01 04 00 請求:MBAP 功能碼 起始地址H 起始地址L 寄存器數量H 寄存器數量L(共12字節) 響應:MBAP 功能碼 數據長度 寄存器數據(長度:9+寄存器數量×2) 如:讀起始地址為0x0002,數量為0x0005的寄存器數據
00 01 00 00 00 06 01 04 00 02 00 05 回:數據長度為0x0A,個寄存器的數據為0x0c,其余為0x00
00 01 00 00 00 0D 01 04 0A 00 0C 00 00 00 00 00 00 00 00 請求:MBAP 功能碼 起始地址H 起始地址L 寄存器數量H 寄存器數量L(共12字節) 響應:MBAP 功能碼 數據長度 寄存器數據(長度:9+寄存器數量×2) 如:起始地址是0x0000,寄存器數量是 0x0003
00 01 00 00 00 06 01 03 00 00 00 03 回:數據長度為0x06,個寄存器的數據為0x21,其余為0x00
00 01 00 00 00 09 01 03 06 00 21 00 00 00 00 請求:MBAP 功能碼 寄存器地址H 寄存器地址L 寄存器值H 寄存器值L(共12字節) 響應:MBAP 功能碼 寄存器地址H 寄存器地址L 寄存器值H 寄存器值L(共12字節) 如:向地址是0x0000的寄存器寫入數據0x000A
00 01 00 00 00 06 01 06 00 00 00 0A 回:寫入成功
00 01 00 00 00 06 01 06 00 00 00 0A 請求:MBAP 功能碼 起始地址H 起始地址L 寄存器數量H 寄存器數量L 字節長度 寄存器值(13+寄存器數量×2) 響應:MBAP 功能碼 起始地址H 起始地址L 寄存器數量H 寄存器數量L(共12字節) 如:向起始地址為0x0000,數量為0x0001的寄存器寫入數據,數據長度為0x02,數據為0x000F
00 01 00 00 00 09 01 10 00 00 00 01 02 00 0F
DModbus TCP通信主站請求:功能碼+數據 從站正常響應:請求功能碼+響應數據 從站異常響應:異常功能碼+異常碼,其中異常功能碼即將請求功能碼的高有效位置1,異常碼指示差錯類型 需要超時管理機制,避免無期限的等待可能不出現的應答 IANA(Internet Assigned Numbers Authority,互聯網編號分配管理機構)給Modbus協議賦予TCP端口號為502,這是目前在儀表與自動化行業中唯一分配到的端口號。 connect 建立TCP連接 準備Modbus報文 使用send命令發送報文 在同一連接下等待應答 使用recv命令讀取報文,完成一次數據交換 通信任務結束時,關閉TCP連接
AModbus TCP數據幀
ModbusTCP的數據幀可分為兩部分:MBAP+PDU。(一)報文頭MBAP:MBAP為報文頭,長度為7字節,組成如下:
(二)幀結構PDU:PDU由功能碼+數據組成。功能碼為1字節,數據長度不定,由具體功能決定。
(1)功能碼:Modbus的操作對象有四種:線圈、離散輸入、保持寄存器、輸入寄存器。
(2)根據對象的不同,Modbus的功能碼有:
(3)說明更詳細的表:
(1)0x01:讀線圈:在從站中讀1~2000個連續線圈狀態,ON=1,OFF=0
00 01 00 00 00 06 01 01 00 02 00 08
00 01 00 00 00 04 01 01 01 01
00 01 00 00 00 06 01 05 00 03 FF 00
00 01 00 00 00 06 01 05 00 03 FF 00
00 01 00 00 00 06 01 02 00 00 00 12
00 01 00 00 00 06 01 02 03 01 04 00
00 01 00 00 00 06 01 04 00 02 00 05
00 01 00 00 00 0D 01 04 0A 00 0C 00 00 00 00 00 00 00 00
00 01 00 00 00 06 01 03 00 00 00 03
00 01 00 00 00 09 01 03 06 00 21 00 00 00 00
00 01 00 00 00 06 01 06 00 00 00 0A
00 01 00 00 00 06 01 06 00 00 00 0A
00 01 00 00 00 09 01 10 00 00 00 01 02 00 0F
回:寫入成功
00 01 00 00 00 06 01 10 00 00 00 01
ModBusTcp與串行鏈路Modbus的數據域是一致的,具體數據域可以參考串行Modbus。這里給出幾個ModbusTcp的鏈路解析說明,輔助新人分析報文。
DModbus TCP通信
(一)通信方式
Modbus設備可分為主站(poll)和從站(slave)。主站只有一個,從站有多個,主站向各從站發送請求幀,從站給予響應。在使用TCP通信時,主站為client端,主動建立連接;從站為server端,等待連接。Modbus poll 和Modbus slave是一組Modbus仿真軟件,可以實現Modbus RTU、TCP、串口仿真等。
仿真軟件網址:https://modbustools.com/download.html
在ModbusTCP中,Modbus poll 作為客戶端請求數據,Modbus slave 作為服務器端處理請求。
使用c語言編寫客戶端連接Modbus slave時,注意數據格式,一條指令一次性發出,否則連接會出錯。
使用軟件時,需要指定功能碼,在setup->slave definition或者poll definition中進行設置。
– slave ID:從站編號(事務標識符)
– function:功能碼,0x01對應線圈操作,0x02對應離散量操作,0x03對應保持寄存器操作,0x04對應輸入寄存器操作
– address:開始地址
– quantity:寄存器/線圈/離散量 的數量
其他新聞
- 西門子庫指令,新手秒懂! 2024-11-22
- 如何用西門子PLC搭建一個完整AGV控制系統? 2024-11-22
- 西門子S7-1500標準軸控應用庫合集(更新至V19) 2024-11-22
- 自動化早已成為一個“軟件”行業 2024-11-22
- 如何用西門子PLC和上位機實現自動畫圓? 2024-11-22
- 自控工程師不會被取代,PLC也用AI了,直接就能生成PLC代碼,西門子、AB、倍福、中控都已經加入 2024-11-22
- 行業動態 | 西門子、施耐德攜手超級巨頭 2024-11-22
- 誰才是西門子博途、PROFINETZui強大的對手? 2024-11-22
- 西門子軟件安裝疑難雜癥Windows11無法安裝WinCC flexible SMARTV4 SP2 2024-11-22
- 西門子全新控制器Simatic S7-1200 G2 將發布 2024-11-22
- 西門子PLC的前世今生 2024-11-22
- 西門子生成式AI與博途深度融合,SCL編程輕松實現! 2024-11-22
- S7-1500 連接 S200 PN,這兩點很重要! 2024-11-22
- 簡單6步,帶你輕松玩轉FX5U和三菱觸摸屏RS-485連接 2024-11-22
- 重慶西門子電線電纜(6XV)、光纖代理商銷售維修支持保內更換及售后服務 2024-11-22
產品分類
聯系方式
- 電 話:17838383235
- 經理:徐嘉泉
- 手 機:17838383235
- 微 信:17838383235