国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

MODBUS TCP協(xié)議實例數(shù)據(jù)幀詳細分析

這篇具有很好參考價值的文章主要介紹了MODBUS TCP協(xié)議實例數(shù)據(jù)幀詳細分析。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.簡介

Modbus由MODICON公司于1979年開發(fā),是一種工業(yè)現(xiàn)場總線協(xié)議標準。1996年施耐德公司推出基于以太網(wǎng)TCP/IP的Modbus協(xié)議:ModbusTCP。Modbus協(xié)議是一項應(yīng)用層報文傳輸協(xié)議,包括ASCII、RTU、TCP三種報文類型。標準的Modbus協(xié)議物理層接口有RS232、RS422、RS485和以太網(wǎng)接口,采用master/slave方式通信。

2.ModbusTCP數(shù)據(jù)幀

ModbusTCP的數(shù)據(jù)幀可分為兩部分:MBAP+PDU,如下圖所示。
MODBUS TCP協(xié)議實例數(shù)據(jù)幀詳細分析

2.1.報文頭MBAP

MBAP為報文頭,長度為7字節(jié),組成如下:

事務(wù)處理標識 協(xié)議標識 長度 單元標識符
2字節(jié) 2字節(jié) 2字節(jié) 1字節(jié)
內(nèi)容 含義
事務(wù)處理標識 可以理解為報文的序列號,一般每次通信之后就要加1以區(qū)別不同的通信數(shù)據(jù)報文
協(xié)議標識符 00 00 表示Modbus TCP協(xié)議
長度 表示接下來的數(shù)據(jù)長度,單位為字節(jié)。
單元標識符 可以理解為設(shè)備地址

2.2.幀結(jié)構(gòu)PDU

PDU由功能碼+數(shù)據(jù)組成。功能碼為1字節(jié),數(shù)據(jù)長度不定,由具體功能決定。
Modbus的操作對象有四種:線圈、離散輸入、保持寄存器、輸入寄存器。

對象 含義
線圈 PLC的輸出位,開關(guān)量,在Modbus中可讀可寫
離散量 PLC的輸入位,開關(guān)量,在Modbus中只讀
輸入寄存器 PLC中只能從模擬量輸入端改變的寄存器,在Modbus中只讀
保持寄存器 PLC中用于輸出模擬量信號的寄存器,在Modbus中可讀可寫
根據(jù)對象的不同,Modbus的功能碼有:
功能碼 含義
0x01 讀線圈
0x02 讀離散量輸入
0x03 讀保持寄存器
0x04 讀輸入寄存器
0x05 寫單個線圈
0x06 寫單個保持寄存器
0x0F 寫多個線圈
0x10 寫多個保持寄存器
說明更詳細的表如下表所示
功能碼 中文含義解析
0x01 讀線圈狀態(tài)
0x02 讀離散量輸入狀態(tài)
0x03 讀保持寄存器
0x04 讀輸入寄存器
0x05 寫單個線圈
0x06 寫單個保持寄存器
0x0F 寫多個線圈
0x10 寫多個保持寄存器

3.ADU詳細結(jié)構(gòu)

3.1. 0x01:讀線圈

在從站中讀連續(xù)線圈狀態(tài),ON=1,OFF=0。

  • 請求:
MBAP 功能碼 起始地址H 起始地址L 線圈數(shù)量H 線圈數(shù)量L
7字節(jié) 1字節(jié) 1字節(jié) 1字節(jié) 1字節(jié) 1字節(jié)
  • 響應(yīng):
MBAP 功能碼 線圈數(shù)據(jù)長度 數(shù)據(jù)
7字節(jié) 1字節(jié) 1字節(jié) 線圈數(shù)據(jù)長度個字節(jié)

注意:線圈數(shù)據(jù)長度=1+(線圈數(shù)-1)/8

如:在從站0x01中,讀取開始地址為0x0000的線圈數(shù)據(jù),讀0x0008位。

  • 請求:
MBAP 功能碼 起始地址H 起始地址L 線圈數(shù)量H 線圈數(shù)量L
00 01 00 00 00 06 01 01 00 00 00 08

如:數(shù)據(jù)長度為0x01個字節(jié),數(shù)據(jù)為0x01,第一個線圈為ON,其余為OFF。

  • 響應(yīng):
MBAP 功能碼 線圈數(shù)據(jù)長度 數(shù)據(jù)
00 01 00 00 00 04 01 01 01 01

3.2. 0x02:讀離散量輸入

在從站中讀連續(xù)離散量輸入狀態(tài),ON=1,OFF=0。

  • 請求:
MBAP 功能碼 起始地址H 起始地址L 離散量輸入數(shù)量H 離散量輸入數(shù)量L
7字節(jié) 1字節(jié) 1字節(jié) 1字節(jié) 1字節(jié) 1字節(jié)
  • 響應(yīng):
MBAP 功能碼 離散量輸入數(shù)據(jù)長度 數(shù)據(jù)
7字節(jié) 1字節(jié) 1字節(jié) 離散量輸入數(shù)據(jù)長度個字節(jié)

注意:離散量輸入數(shù)據(jù)長度=1+(離散量輸入-1)/8

如:在從站0x01中,讀取開始地址為0x0000的線圈數(shù)據(jù),讀0x0008位。

  • 請求:
MBAP 功能碼 起始地址H 起始地址L 離散量輸入數(shù)量H 離散量輸入數(shù)量L
00 01 00 00 00 06 01 02 00 00 00 08

如:在從站0x01中,讀取開始地址為0x0000的離散量輸入數(shù)據(jù),讀0x008位

  • 響應(yīng):
MBAP 功能碼 離散量輸入數(shù)據(jù)長度 數(shù)據(jù)
00 01 00 00 00 04 01 02 01 01

3.3. 0x03:讀保持寄存器

在從站中讀連續(xù)保持寄存器的值

  • 請求:
MBAP 功能碼 起始地址H 起始地址L 寄存器數(shù)量H 寄存器數(shù)量L
7字節(jié) 1字節(jié) 1字節(jié) 1字節(jié) 1字節(jié) 1字節(jié)
  • 響應(yīng):
MBAP 功能碼 數(shù)據(jù)長度 數(shù)據(jù)
7字節(jié) 1字節(jié) 1字節(jié) 數(shù)據(jù)長度個字節(jié)

注意:保持寄存器數(shù)據(jù)長度=保持寄存器數(shù)*2

如:在從站0x01中,讀取開始地址為0x0000的保持寄存器數(shù)據(jù),讀0x003個

  • 請求:
MBAP 功能碼 起始地址H 起始地址L 寄存器數(shù)量H 寄存器數(shù)量L
00 01 00 00 00 06 01 03 00 00 00 03

如:數(shù)據(jù)長度為0x06個字節(jié),第1個寄存器的數(shù)據(jù)為0x21,其余為0x00。

  • 響應(yīng):
MBAP 功能碼 數(shù)據(jù)長度 數(shù)據(jù)
00 01 00 00 00 09 01 03 06 00 21 00 00 00 00

3.4. 0x04:讀輸入寄存器

在從站中讀連續(xù)輸入寄存器的值

  • 請求:
MBAP 功能碼 起始地址H 起始地址L 寄存器數(shù)量H 寄存器數(shù)量L
7字節(jié) 1字節(jié) 1字節(jié) 1字節(jié) 1字節(jié) 1字節(jié)
  • 響應(yīng):
MBAP 功能碼 數(shù)據(jù)長度 數(shù)據(jù)
7字節(jié) 1字節(jié) 1字節(jié) 數(shù)據(jù)長度個字節(jié)

注意:輸入寄存器數(shù)據(jù)長度=輸入寄存器數(shù)*2

如:在從站0x01中,讀取開始地址為0x0000的輸入寄存器數(shù)據(jù),讀0x003個

  • 請求:
MBAP 功能碼 起始地址H 起始地址L 寄存器數(shù)量H 寄存器數(shù)量L
00 01 00 00 00 06 01 04 00 00 00 03

如:數(shù)據(jù)長度為0x06個字節(jié),第1個寄存器的數(shù)據(jù)為0x21,其余為0x00。

  • 響應(yīng):
MBAP 功能碼 數(shù)據(jù)長度 數(shù)據(jù)
00 01 00 00 00 09 01 04 06 00 21 00 00 00 00

3.5. 0x05:寫單個線圈

將從站中的一個線圈輸出寫成ON或OFF,0xFF00請求輸出為ON,0x000請求輸出為OFF

  • 請求:
MBAP 功能碼 線圈地址H 線圈地址L 輸出值H 輸出值L
7字節(jié) 1字節(jié) 1字節(jié) 1字節(jié) 1字節(jié) 1字節(jié)
  • 響應(yīng):
MBAP 功能碼 線圈地址H 線圈地址L 輸出值H 輸出值L
7字節(jié) 1字節(jié) 1字節(jié) 1字節(jié) 1字節(jié) 1字節(jié)

如:在從站0x01中,將地址為0x0000的線圈設(shè)置為ON

  • 請求:
MBAP 功能碼 線圈地址H 線圈地址L 輸出值H 輸出值L
00 01 00 00 00 06 01 05 00 00 FF 00
  • 響應(yīng):
MBAP 功能碼 線圈地址H 線圈地址L 輸出值H 輸出值L
00 01 00 00 00 06 01 05 00 00 FF 00

3.6. 0x06:寫單個保持寄存器

將從站中的一個保持寄存器設(shè)置

  • 請求:
MBAP 功能碼 保持寄存器地址H 保持寄存器地址L 設(shè)置值H 設(shè)置值L
7字節(jié) 1字節(jié) 1字節(jié) 1字節(jié) 1字節(jié) 1字節(jié)
  • 響應(yīng):
MBAP 功能碼 保持寄存器地址H 保持寄存器地址L 設(shè)置值H 設(shè)置值L
7字節(jié) 1字節(jié) 1字節(jié) 1字節(jié) 1字節(jié) 1字節(jié)

如:在從站0x01中,將地址為0x0000的保持寄存器設(shè)置為0x000A。

  • 請求:
MBAP 功能碼 保持寄存器地址H 保持寄存器地址L 設(shè)置值H 設(shè)置值L
00 01 00 00 00 06 01 06 00 00 00 0A
  • 響應(yīng):
MBAP 功能碼 保持寄存器地址H 保持寄存器地址L 設(shè)置值H 設(shè)置值L
00 01 00 00 00 06 01 06 00 00 00 0A

3.7. 0x0F:寫多個線圈

將從站中的多個線圈輸出寫成ON或OFF,線圈輸出值每1位“1”請求輸出為ON,“0”請求輸出為OFF

  • 請求:
MBAP 功能碼 線圈起始地址H 線圈起始地址L 線圈數(shù)H 線圈數(shù)L 線圈輸出字節(jié)長度 線圈輸出值
7字節(jié) 1字節(jié) 1字節(jié) 1字節(jié) 1字節(jié) 1字節(jié) 1字節(jié) 1字節(jié)

注意:線圈輸出字節(jié)長度=1+(線圈數(shù)-1)/8

  • 響應(yīng):
MBAP 功能碼 線圈起始地址H 線圈起始地址L 線圈數(shù)H 線圈數(shù)L
7字節(jié) 1字節(jié) 1字節(jié) 1字節(jié) 1字節(jié) 1字節(jié)

如:在從站0x01中,將以地址0x0000開始連續(xù)的4個線圈設(shè)置為ON

  • 請求:
MBAP 功能碼 線圈起始地址H 線圈起始地址L 線圈數(shù)H 線圈數(shù)L 線圈輸出字節(jié)長度 線圈輸出值
00 01 00 00 00 08 01 0F 00 00 00 04 01 0F
  • 響應(yīng):
MBAP 功能碼 線圈起始地址H 線圈起始地址L 線圈數(shù)H 線圈數(shù)L
00 01 00 00 00 06 01 0F 00 00 00 04

3.8. 0x10:寫多個保持寄存器

寫從站中的多個連續(xù)的寄存器。

  • 請求:
MBAP 功能碼 寄存器起始地址H 寄存器起始地址L 寄存器數(shù)H 寄存器數(shù)L 寄存器數(shù)據(jù)字節(jié)長度 寄存器數(shù)據(jù)
7字節(jié) 1字節(jié) 1字節(jié) 1字節(jié) 1字節(jié) 1字節(jié) 1字節(jié) 1字節(jié)

注意:寄存器數(shù)據(jù)字節(jié)長度=寄存器數(shù)量×2

  • 響應(yīng):
MBAP 功能碼 寄存器起始地址H 寄存器起始地址L 寄存器數(shù)H 寄存器數(shù)L
7字節(jié) 1字節(jié) 1字節(jié) 1字節(jié) 1字節(jié) 1字節(jié)

如:在從站0x01中,向起始地址為0x0000,數(shù)量為0x0001的寄存器寫入數(shù)據(jù),數(shù)據(jù)長度為0x02,數(shù)據(jù)為0x000F。文章來源地址http://www.zghlxwxcb.cn/news/detail-450211.html

  • 請求:
MBAP 功能碼 寄存器起始地址H 寄存器起始地址L 寄存器數(shù)H 寄存器數(shù)L 寄存器數(shù)據(jù)字節(jié)長度 寄存器數(shù)據(jù)
00 01 00 00 00 09 01 10 00 00 00 01 02 00 0F
  • 響應(yīng):
MBAP 功能碼 寄存器起始地址H 寄存器起始地址L 寄存器數(shù)H 寄存器數(shù)L
00 01 00 00 00 06 01 10 00 00 00 01

到了這里,關(guān)于MODBUS TCP協(xié)議實例數(shù)據(jù)幀詳細分析的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 嵌入式通信協(xié)議【Modbus】Modbus TCP的幀格式

    嵌入式通信協(xié)議【Modbus】Modbus TCP的幀格式

    Client request:例: 19 B2 00 00 00 06 06 03 00 27 00 02 上面是modbus客戶端發(fā)出的報文內(nèi)容,為modbus tcp/ip協(xié)議格式,其前面的六個字節(jié)為頭字節(jié)( header handle); 19 B2 00 00 00 06 19 B2? 00 00 00 06 兩個Client發(fā)出的檢驗信息,Sever端只是需要將這兩個字節(jié)的內(nèi)容copy以后再放到response的報文的相應(yīng)位

    2024年02月05日
    瀏覽(151)
  • ModBus通訊協(xié)議(Java代碼實例)

    ModBus通訊協(xié)議(Java代碼實例)

    什么是Modbus Modbus是在1970年末為可編程邏輯控制器通信開發(fā)的,Modbus是一種串行通信協(xié)議,目的是用于與PLC設(shè)備進行串口通訊,在需要對PLC設(shè)備進行數(shù)據(jù)通訊的時候進行使用。 為什么要使用Modbus 為什么要使用Modbus協(xié)議,因為Modbus協(xié)議是modicon公司于1979年為使用PLC通訊發(fā)表的,

    2024年02月09日
    瀏覽(25)
  • Modbus TCP通信協(xié)議詳解

    一、Modbus TCP通信概述 MODBUS/TCP是簡單的、中立廠商的用于管理和控制自動化設(shè)備的MODBUS系列通訊協(xié)議的派生產(chǎn)品,顯而易見,它覆蓋了使用TCP/IP協(xié)議的“Intranet”和“Internet”環(huán)境中MODBUS報文的用途。協(xié)議的最通用用途是為諸如PLC,I/O模塊,以及連接其它簡單域總線或I/O模塊的

    2024年02月08日
    瀏覽(99)
  • C# Modbus通信從入門到精通(21)——Modbus TCP協(xié)議原理

    C# Modbus通信從入門到精通(21)——Modbus TCP協(xié)議原理

    Modbus TCP是走網(wǎng)口的,也可以在同一時間內(nèi)有多個從站訪問主站,并且通過Modbus事務(wù)處理標識來區(qū)分同一時刻的不同Modbus事務(wù),這是區(qū)別于Modbus ASCII和Modbus RTU的地方。 Modbus客戶端通常輸入Modbus服務(wù)器的IP地址和端口號來建立TCP連接,然后根據(jù)從站地址來確定具體訪問哪個從站

    2024年02月15日
    瀏覽(98)
  • Modbus-TCP協(xié)議說明

    Modbus-TCP協(xié)議說明

    文章要說明Modbus TCP協(xié)議的相關(guān)內(nèi)容。此協(xié)議是1996年施耐德公司推出的基于TCP/IP協(xié)議的Modbus協(xié)議。 此協(xié)議與Modbus-RTU協(xié)議最大的不同就是,使用了在TCP/IP協(xié)議上的專用的報文頭識別Modbus應(yīng)用數(shù)據(jù)單元。這種報文頭被稱為MBAP報文頭。 ?報文頭的長度是7個字節(jié),分別有: 事務(wù)處理

    2024年02月11日
    瀏覽(17)
  • modbus-tcp-rtu協(xié)議圖表

    MODBUS TCP 讀寄存器 請求 序號 意義 所占字節(jié) 字節(jié)存放格式 1 事務(wù)處理標識 2個字節(jié) 高字節(jié)在前 2 協(xié)議標識 2個字節(jié) 高字節(jié)在前 3 長度 2個字節(jié) 高字節(jié)在前 4 單元標識 1個字節(jié) 0x00-0xff 5 功能碼 1個字節(jié) 0x03 6 起始寄存器地址 2個字節(jié) 高字節(jié)在前 7 寄存器個數(shù) 2個字節(jié) 高字節(jié)在前

    2024年01月23日
    瀏覽(20)
  • Modbus協(xié)議在TCP/IP上的運用

    Modbus協(xié)議在TCP/IP上的運用

    Modbus規(guī)約是典型的一問一答的通信規(guī)約,支持多種電氣接口,可在各種介質(zhì)上傳輸,并且消息幀格式簡單、緊湊、易懂,方便形成工業(yè)控制網(wǎng)絡(luò)。 通用的Modbus幀由4個部分組成:地址域、功能碼、數(shù)據(jù)和差錯校驗。整個幀被稱為應(yīng)用數(shù)據(jù)單元(ADU),功能碼和數(shù)據(jù)組成協(xié)議數(shù)

    2024年02月11日
    瀏覽(15)
  • Modbus TCP 協(xié)議詳解及C語言示例

    Modbus TCP 協(xié)議詳解及C語言示例

    Modbus TCP 是一種應(yīng)用于以太網(wǎng)的通訊協(xié)議,基于Modbus RTU協(xié)議。Modbus協(xié)議是一種應(yīng)用于串行數(shù)據(jù)通信的協(xié)議,廣泛應(yīng)用于工業(yè)控制系統(tǒng)。Modbus TCP 將傳統(tǒng)的 Modbus RTU 消息封裝在 TCP/IP 報文中,使其能夠在現(xiàn)代的以太網(wǎng)環(huán)境中進行通信。本文將詳細介紹 Modbus TCP 協(xié)議的報文格式、各

    2024年02月16日
    瀏覽(20)
  • python 與PLC 基于 modbus tcp 協(xié)議通訊

    python 與PLC 基于 modbus tcp 協(xié)議通訊

    Modbus是一種串行通信協(xié)議,是工業(yè)領(lǐng)域通信協(xié)議的業(yè)界標準,是工業(yè)電子設(shè)備之間常用的連接方式。最近在工作中需要上位機python程序和PLC做通訊,就測試了下使用modbus tcp 通訊。 ? ? ? ? 目前實際測試結(jié)果是與西門子PLC/信捷PLC都可以正常通訊使用,但是看到網(wǎng)上說可以傳輸

    2024年02月17日
    瀏覽(15)
  • ??礦isionmaster-通訊管理:使用 Modbus TCP 通訊 協(xié)議與流程交互

    海康Visionmaster-通訊管理:使用 Modbus TCP 通訊 協(xié)議與流程交互

    使用 Modbus TCP 通訊協(xié)議與視覺通訊,當?shù)刂窞?0000 的保持型寄存器(4x 寄存器)變?yōu)?1 時,觸發(fā)視覺流程執(zhí)行一次,同時視覺將地址為 0000 的寄存器復(fù)位(也即寫為 0),視覺流程執(zhí)行完成后,將結(jié)果數(shù)據(jù):特征匹配狀態(tài)、特征匹配點 X、特征匹配點Y、特征角度分別寫入到地址為

    2024年02月04日
    瀏覽(995)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包