国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【實用篇】ModbusTCP協議詳解

工控論壇 ? 來源:工控論壇 ? 2024-01-14 11:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

概述

Modbus由MODICON公司于1979年開發,是一種工業現場總線協議標準。1996年施耐德公司推出基于以太網TCP/IP的Modbus協議:ModbusTCP。Modbus協議是一項應用層報文傳輸協議,包括ASCII、RTU、TCP三種報文類型。標準的Modbus協議物理層接口RS232RS422RS485和以太網接口,采用master/slave方式通信。 AModbus TCP數據幀 ModbusTCP的數據幀可分為兩部分:MBAP+PDU。(一)報文頭MBAP:MBAP為報文頭,長度為7字節,組成如下:

25d87d9c-b21d-11ee-8b88-92fbcf53809c.png

25e2e750-b21d-11ee-8b88-92fbcf53809c.png

(二)幀結構PDU:PDU由功能碼+數據組成。功能碼為1字節,數據長度不定,由具體功能決定。

(1)功能碼:Modbus的操作對象有四種:線圈、離散輸入、保持寄存器、輸入寄存器。

25ed2bc0-b21d-11ee-8b88-92fbcf53809c.png

(2)根據對象的不同,Modbus的功能碼有:

25f11d52-b21d-11ee-8b88-92fbcf53809c.png

(3)說明更詳細的表:

260752ac-b21d-11ee-8b88-92fbcf53809c.png

BPDU詳細結構

(1)0x01:讀線圈:在從站中讀1~2000個連續線圈狀態,ON=1,OFF=0

請求: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

(2)0x05:寫單個線圈:將從站中的一個輸出寫成ON或OFF,0xFF00請求輸出為ON,0x000請求輸出為OFF。

請求: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

(3)0x0F:寫多個線圈:將一個從站中的一個線圈序列的每個線圈都強制為ON或OFF,數據域中置1的位請求相應輸出位ON,置0的位請求響應輸出為OFF。

請求:MBAP 功能碼 起始地址H 起始地址L 輸出數量H 輸出數量L 字節長度 輸出值H 輸出值L

響應:MBAP 功能碼 起始地址H 起始地址L 輸出數量H 輸出數量L

(4)0x02:讀離散量輸入:從一個從站中讀1~2000個連續的離散量輸入狀態。

請求: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

(5)0x04:讀輸入寄存器:從一個遠程設備中讀1~2000個連續輸入寄存器。

請求: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

(6)0x03:讀保持寄存器:從遠程設備中讀保持寄存器連續塊的內容。

請求: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

(7)0x06:寫單個保持寄存器:在一個遠程設備中寫一個保持寄存器。

請求: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

(8)0x10:寫多個保持寄存器:在一個遠程設備中寫連續寄存器塊(1~123個寄存器)。

請求: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

回:寫入成功
00 01 00 00 00 06 01 10 00 00 00 01

CModbus TCP示例報文

ModBusTcp與串行鏈路Modbus的數據域是一致的,具體數據域可以參考串行Modbus。這里給出幾個ModbusTcp的鏈路解析說明,輔助新人分析報文。

261be500-b21d-11ee-8b88-92fbcf53809c.jpg

26206aa8-b21d-11ee-8b88-92fbcf53809c.jpg

263c2b26-b21d-11ee-8b88-92fbcf53809c.jpg

264fbe20-b21d-11ee-8b88-92fbcf53809c.jpg

DModbus TCP通信

(一)通信方式

Modbus設備可分為主站(poll)和從站(slave)。主站只有一個,從站有多個,主站向各從站發送請求幀,從站給予響應。在使用TCP通信時,主站為client端,主動建立連接;從站為server端,等待連接。

主站請求:功能碼+數據

從站正常響應:請求功能碼+響應數據

從站異常響應:異常功能碼+異常碼,其中異常功能碼即將請求功能碼的最高有效位置1,異常碼指示差錯類型

需要超時管理機制,避免無期限的等待可能不出現的應答

IANA(Internet Assigned Numbers Authority,互聯網編號分配管理機構)給Modbus協議賦予TCP端口號為502,這是目前在儀表與自動化行業中唯一分配到的端口號。

(二)通信過程

connect 建立TCP連接

準備Modbus報文

使用send命令發送報文

在同一連接下等待應答

使用recv命令讀取報文,完成一次數據交換

通信任務結束時,關閉TCP連接

E仿真軟件

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:寄存器/線圈/離散量 的數量

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5608

    瀏覽量

    129968
  • MODBUS
    +關注

    關注

    28

    文章

    2457

    瀏覽量

    83189
  • 服務器
    +關注

    關注

    14

    文章

    10251

    瀏覽量

    91480

原文標題:【實用篇】ModbusTCP協議詳解

文章出處:【微信號:gkongbbs,微信公眾號:工控論壇】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    CAN轉ModbusTCP網關:破解電池生產線設備協議壁壘,實現全鏈路智能互聯

    工業通訊協議中,ModbusTCP作為一種常用的工業以太網協議,其易用性和通用性使得它成為連接不同設備和系統的理想選擇。因此,無錫耐特森CAN轉ModbusTCP
    的頭像 發表于 01-14 15:43 ?144次閱讀
    CAN轉<b class='flag-5'>ModbusTCP</b>網關:破解電池生產線設備<b class='flag-5'>協議</b>壁壘,實現全鏈路智能互聯

    工業電能無憂:ModbusTCP轉EthernetIP精準護航電能質量

    深入探討這種技術的核心原理以及其在實際應用中的重要性。讓我們理解下什么是ModbusTCP和Ethernet/IP。ModbusTCP是一種通信協議,它基于以太網(Ethernet)并使用TCP/IP
    的頭像 發表于 11-24 10:29 ?562次閱讀

    無菌藥廠變頻升級方案:ModbusTCP轉Canopen高效適配方案

    在現代工業自動化領域,無錫耐特森ModbusTCP轉CanOpen協議轉換網關發揮著至關重要的角色,特別是在諸如無菌藥廠這樣對環境要求極高的場合。ModbusTCP和CANopen是兩種廣泛
    的頭像 發表于 11-18 17:03 ?522次閱讀
    無菌藥廠變頻升級方案:<b class='flag-5'>ModbusTCP</b>轉Canopen高效適配方案

    EtherNet/IP轉MODBUSTCP協議轉換網關實現HMI人機界面與分布式IO通訊的配置案例

    研華TPC-1581T型號(支持MODBUSTCP協議),分布式IO采用羅克韋爾Allen-Bradley1734-AENT型號(EtherNet/IP協議)。由于協議不兼容,導致設備
    的頭像 發表于 09-05 11:25 ?737次閱讀
    EtherNet/IP轉<b class='flag-5'>MODBUSTCP</b><b class='flag-5'>協議</b>轉換網關實現HMI人機界面與分布式IO通訊的配置案例

    EthernetiP轉modbusTCP網關在加氫催化中的應用

    ModbusTCP
    北京開疆智能技術有限公司
    發布于 :2025年07月24日 17:57:27

    Devicenet轉ModbusTCP網關在工業中的應用分享

    ModbusTCP
    北京開疆智能技術有限公司
    發布于 :2025年07月15日 18:01:55

    降本增效Modbustcp轉Devicenet網關的高效應用

    ModbusTCP
    北京開疆智能技術有限公司
    發布于 :2025年07月11日 16:27:04

    ModbusTCP轉 Profinet網關:熱收縮包裝機智能化改造核心方案

    ModbusTCP
    無錫耐特森
    發布于 :2025年07月05日 14:59:49

    實現ModbusTCP轉Profinet網關協議轉換功能的網關設備

    ModbusTCP轉Profinet網關產品主要功能 ModbusTCP轉Profinet網關的核心功能為實現Profinet協議ModbusTCP
    的頭像 發表于 07-01 11:58 ?568次閱讀
    實現<b class='flag-5'>ModbusTCP</b>轉Profinet網關<b class='flag-5'>協議</b>轉換功能的網關設備

    協議交鋒,ModbusTCP轉Ethercat網關工業自動化也要互通有無

    協議交鋒,ModbusTCP轉Ethercat網關工業自動化也要互通有無
    的頭像 發表于 06-10 13:25 ?602次閱讀
    <b class='flag-5'>協議</b>交鋒,<b class='flag-5'>ModbusTCP</b>轉Ethercat網關工業自動化也要互通有無

    MCGS_嵌入版_莫迪康ModbusTCP驅動資料

    MCGS_嵌入版_莫迪康ModbusTCP驅動
    發表于 06-09 15:07 ?2次下載

    火力全開,ModbusTCP/RTU轉ethernet ip協議網關的不同應用大揭秘

    火力全開,ModbusTCP/RTU轉ethernet ip協議網關的不同應用揭秘
    的頭像 發表于 05-22 10:22 ?682次閱讀
    火力全開,<b class='flag-5'>ModbusTCP</b>/RTU轉ethernet ip<b class='flag-5'>協議</b>網關的不同應用大揭秘

    降本增效Modbustcp轉Devicenet網關的高效應用

    Modbustcp與Devicenet兩種通訊協議,前者主要用于實現實時、高速的數據傳輸,后者則更側重于網絡設備之間的通信。在工業自動化中,兩者各自發揮著重要的作用。而在實際應用中,我們經常需要
    的頭像 發表于 04-07 15:49 ?550次閱讀
    降本增效<b class='flag-5'>Modbustcp</b>轉Devicenet網關的高效應用

    Devicenet轉ModbusTCP網關在危化行業中的應用

    ModbusTCP網關能夠將這些不同協議的設備無縫對接,實現數據的高效傳輸。通過網關的轉換功能,可以將Devicenet設備的數據轉換為ModbusTCP格式,然后通過
    的頭像 發表于 03-17 11:23 ?663次閱讀
    Devicenet轉<b class='flag-5'>ModbusTCP</b>網關在危化行業中的應用

    Devicenet轉ModbusTCP網關在危化行業中的應用

    ModbusTCP網關能夠將這些不同協議的設備無縫對接,實現數據的高效傳輸。通過網關的轉換功能,可以將Devicenet設備的數據轉換為ModbusTCP格式,然后通過以太網進行傳輸,從而提高了數據傳輸的速度和可靠性。同時,網關
    的頭像 發表于 03-17 11:20 ?568次閱讀
    Devicenet轉<b class='flag-5'>ModbusTCP</b>網關在危化行業中的應用