婷婷亚洲天堂影院-国产精品豆花视频www-伊人影院在线观看-日本少妇浓毛bbwbbwbbw-av网站观看-亚州欧美在线-91精品国产乱码久-任我爽精品视频在线播放-日本视频不卡-亚洲国产精品va在线观看香蕉-国产毛片乡下农村妇女-国产成人免费ā片在线观看老同学-欧美日韩免费在线-成人无码视频免费播放-色综合美女-免费毛片av

電子開發網

電子開發網電子設計 | 電子開發網Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 電子開發網 >> 電子開發 >> PLC基礎入門教程 >> 正文

modbus協議實例講解,功能碼和報文詳解

作者:佚名    文章來源:本站原創    點擊數:    更新時間:2023/3/31

本文以綜科智控品牌的IO控制器為例,直接以實際例子講解modbus協議

目錄

一、MODBUS協議簡介4

1.什么是MODBUS協議4

2.MODBUS協議格式5

2.1MODBUS-RTU報文模型(用于串口通訊)5

2.2MODBUS-TCP報文模型(用于網絡TCP/IP通信)5

3.MODBUS的功能碼及寄存器介紹5

3.1功能碼5

3.2寄存器分類說明6

3.3寄存器地址說明6

二、MODBUS-RTU協議詳解7

1.X輸入口開關量狀態讀取 (讀取:DI寄存器,命令號:0x02)7

2.X輸入口脈沖計數讀取 (讀取:AI寄存器,命令號:0x04)9

3.X輸入口脈沖計數清空 (寫入:DO寄存器,命令號:0x0F)12

4.Y輸出口ON/OFF寫入 (寫入:DO寄存器,命令號:0x0F)14

5.Y輸出口ON/OFF讀取 (讀取:DO寄存器,命令號:0x01)16

6.AI模擬量采集讀取(讀取:AI寄存器,命令號:0x04)18

7.AO模擬量輸出寫入(寫入:AO寄存器,命令號:0x10)20

8.AO模擬量輸出讀取(讀取:AO寄存器,命令號:0x03)22

三、MODBUS-TCP協議詳解24

1.X輸入口開關量狀態讀取 (讀取:DI寄存器,命令號:0x02)24

2.X輸入口脈沖計數讀取 (讀取:AI寄存器,命令號:0x04)27

3.X輸入口脈沖計數清空 (寫入:DO寄存器,命令號:0x0F)30

4.Y輸出口ON/OFF寫入 (寫入:DO寄存器,命令號:0x0F)33

5.Y輸出口ON/OFF讀取 (讀取:DO寄存器,命令號:0x01)36

6.AI模擬量采集讀取(讀取:AI寄存器,命令號:0x04)39

7.AO模擬量輸出寫入(寫入:AO寄存器,命令號:0x10)42

8.AO模擬量輸出讀取(讀取:AO寄存器,命令號:0x03)45

MODBUS協議簡介

什么是MODBUS協議

Modbus協議是一種已廣泛應用于當今工業控制領域的通用通訊協議,按其格式可分為MODBUS-RTU,MODBUS-ASCII,MODBUS-TCP,其中前兩者適用于串行通信控制網絡中,例如RS485,RS232等,而MODBUS-TCP主要應用于基于以太網TCP/IP通信的控制網絡中。

通過此協議,控制器相互之間、或控制器經由網絡(如以太網)可以和其它設備之間進行通信。Modbus協議使用的是主從通訊技術,即由主設備主動查詢和操作從設備。一般將主控設備方所使用的協議稱為Modbus Master,從設備方使用的協議稱為Modbus Slave。典型的主設備包括工控機和工業控制器等;典型的從設備如PLC可編程控制器等。Modbus通訊物理接口可以選用串口(包括RS232和RS485),也可以選擇以太網口。其通信遵循以下的過程:

  ● 主設備向從設備發送請求

  ● 從設備分析并處理主設備的請求,然后向主設備發送結果

  ● 如果出現任何差錯,從設備將返回一個異常功能碼

  Modbus協議具有以下幾個特點:

  (1)標準、開放,用戶可以免費、放心地使用Modbus協議,不需要交納許可證費,也不會侵犯知識產權。

  (2)Modbus可以支持多種電氣接口,如RS-232、RS-485等,還可以在各種介質上傳送,如雙絞線、光纖、無線等。

  (3)Modbus的幀格式簡單、緊湊,通俗易懂。用戶使用容易,廠商開發簡單。

MODBUS-RTU報文模型(用于串口通訊)

設備地址

功能碼

數據

CRC校驗L

CRC校驗H

1BYTE

1BYTE

N*BYTE

1BYTE

1BYTE

MODBUS-TCP報文模型(用于網絡TCP/IP通信)

傳輸標識符TID

協議標識符PID

后面要傳輸的字節數

設備地址

功能碼

數據

2BYTE

2BYTE

2BYTE

1BYTE

1BYTE

N*BYTE

注意:

Modbus-RTU一般用于串口RS232/RS485/RS422通訊

Modbus-TCP一般用于網口、WIFI的TCP/UDP通訊

MODBUS的功能碼及寄存器介紹

功能碼

下表列出 MODBUS支持的部分功能代碼:以十進制表示

功能碼

(十進制)

作用

信息地址

位操作/字操作

操作數量

01

讀單個/多個DO寄存器

00001-09999

位操作

單個/多個

02

讀單個/多個DI寄存器

10001-19999

位操作

單個/多個

03

讀單個/多個AO寄存器

40001-49999

字操作

單個/多個

04

讀單個/多個AI寄存器

30001-39999

字操作

單個/多個

05

寫單個DO寄存器

00001-09999

位操作

單個

06

寫單個AO寄存器

40001-49999

字操作

單個

15

寫單個/多個DO寄存器

00001-09999

位操作

單個/多個

16

寫單個/多個AO寄存器

40001-49999

字操作

單個/多個

寄存器分類說明

寄存器種類

說明

DI寄存器

只讀,主要用于讀模塊的DI離散量輸入信號的 ON/OFF狀態。

DO寄存器

可讀/可寫,主要用于控制相應DO輸出,例如:Y點的開關狀態。也可以用于控制某些功能的啟動或停止、打開或關閉,例如:PWM的輸出/停止,計數的清空等。

AI寄存器

只度,主要用于讀取模塊中的輸入型數據,例如AD模擬采集到的電壓值,電流值,壓力值等,或者X輸入脈沖計數值等。

AO寄存器

可讀/可寫,主要用于存放的用戶下發的參數,例如AO模擬量輸出值、PWM輸出頻率、占空比等。

寄存器地址說明

  • 寄存器信息地址(PLC地址):

寄存器信息地址指的是存放于控制器中的地址,這些控制器可以是 PLC,也可以使觸

摸屏,或是文本顯示器。例如 4x0001、3x0002等,這些地址一般使用十進制描述。

  • 寄存器尋址地址(協議地址):

寄存器尋址地址指的是通信時使用的寄存器地址,例如信息地址 40001對應尋址地址

0x0000,40002對應尋址地址 0x0001,寄存器尋址地址一般使用 16進制描述。再如,信息寄存器 40003對應尋址地址 0002,信息寄存器 30003對應尋址地址 0002,雖然兩個信息寄存器通信時使用相同的地址,但是需要使用不同的命令才可以訪問,所以訪問時不存在沖突。

MODBUS-RTU協議詳解

X輸入口開關量狀態讀取 (讀取:DI寄存器,命令號:0x02)

  • 描述

讀模塊的X輸入口輸入信號的 ON/OFF狀態。

  • 例子:讀X1當前輸入狀態的請求&響應報文

請求:

發送數據(HEX): 01 02 00 00 00 01 B9 CA

解釋:

01:子站地址

02:指令號,02讀DI

00 00:從哪一路開始讀,0x0000=X1開始讀

00 01:要讀多少路,十六進制0x0001=十進制1,讀取1路

B9 CA:CRC校驗

響應:

//X1 輸入ON(1)時的回復

01 02 01 01 60 48

解釋:

01:子站地址

02:指令號,02讀DI

01:后面跟的數據字節數

01:換成二進制就是 0000 0001 =X8-X7-X6-X5-X4-X3-X2-X1輸入口的當前狀態0=OFF,1=ON

60 48:CRC校驗

//X1 輸入OFF(0)時的回復

01 02 01 00 A1 88

解釋:

01:子站地址

02:指令號,02讀DI

01:后面跟的數據字節數

00:換成二進制就是 0000 0000 =X8-X7-X6-X5-X4-X3-X2-X1輸入口的當前狀態0=OFF,1=ON

A1 88:CRC校驗

  • 例子:讀X1-X8當前輸入狀態的請求&響應報文

請求:

發送數據(HEX): 01 02 00 00 00 08 79CC

解釋:

01:子站地址

02:指令號,02讀DI

00 00:從哪一路開始讀,0x0000=X1開始讀

00 08:要讀多少路十六進制0x0008=十進制8,讀取8路

79CC:CRC校驗

響應:

//X1,X8輸入ON(1)時,其他都輸入OFF(0)時的回復

01 02 01 81 61 E8

解釋:

01:子站地址

02:指令號,02讀DI

01:后面跟的數據字節數

81:換成二進制就是1000 0001 =X8-X7-X6-X5-X4-X3-X2-X1輸入口的當前狀態0=OFF,1=ON

61 E8:CRC校驗

  • 例子:讀X1-X24當前輸入狀態的請求&響應報文

請求:

發送數據(HEX): 01 02 00 00 00 18 78 00

解釋:

01:子站地址

02:指令號,02讀DI

00 00:從哪一路開始讀,0x0000=X1開始讀

00 18:要讀多少路十六進制0x0018=十進制24,讀取24路

78 00:CRC校驗

響應:

//X1,X2,X9,X24 輸入ON(1)時,其他都輸入OFF(0)時的回復

01 02 03 03 01 80 88 7E

解釋:

01:子站地址

02:指令號,02讀DI

03:后面跟的數據字節數

03:換成二進制就是 0000 0011 =X8-X7-X6-X5-X4-X3-X2-X1輸入口的當前狀態0=OFF,1=ON

01:換成二進制就是 0000 0001 =X16-X15-X14-X13-X12-X11-X10-X9輸入口的當前狀態0=OFF,1=ON

80:換成二進制就是 1000 0000 =X24-X23-X22-X21-X20-X19-X18-X17輸入口的當前狀態0=OFF,1=ON

88 7E:CRC校驗

X輸入口脈沖計數讀取 (讀取:AI寄存器,命令號:0x04)

  • 描述

讀模塊的X輸入口的脈沖計數值。

  • 例子:讀當前X1輸入點脈沖計數值的請求&響應報文

請求:

發送數據(HEX): 01 04 00 18 00 02 F1 CC

解釋:

01:子站地址

04:指令號,04讀AI

00 18:從哪一路開始讀,0x0018對應的是X1脈沖計數寄存器起始地址

00 02:要讀多少個寄存器,因為一路X脈沖計數占用2個寄存器地址,所以這里寄存器數量要填2,十六進制0x0002=十進制2

F1 CC:CRC校驗

響應:

接收數據(HEX): 01 04 04 00 00 27 10 E1 B8

解釋:

01:子站地址

04:指令號,04讀AI

04:后面跟的數據字節數,0x04=十進制4,后面數據區有4字節數據

00002710:換成十進制就是 0x00002710 =10000,即讀取到X1輸入口當前脈沖計數值為10000

E1 B8:CRC校驗

  • 例子:讀當前X1-X4輸入點脈沖計數值的請求&響應報文

請求:

發送數據(HEX): 01 04 00 18 00 08 71 CB

解釋:

01:子站地址

04:指令號,04讀AI

00 18:從哪一路開始讀,0x0018對應的是X1脈沖計數寄存器起始地址

00 08:要讀多少個寄存器,因為一路X脈沖計數占用2個寄存器地址,這里讀4路,所以這里寄存器數量要填8,十六進制0x0008=十進制8

71 CB :CRC校驗

響應:

接收數據(HEX): 01 04 10 00 00 27 10 00 00 27 10 00 00 27 10 00 00 27 10 EC C3

解釋:

01:子站地址

04:指令號,04讀AI

10:后面跟的數據字節數,0x10=十進制16,后面數據區有16字節數據

00002710:換成十進制就是 0x00002710 =10000,即讀取到X1輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀取到X2輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀取到X3輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀取到X4輸入口當前脈沖計數值為10000

EC C3:CRC校驗

  • 例子:讀當前X1-X8輸入點脈沖計數值的請求&響應報文

請求:

發送數據(HEX): 01 04 00 18 00 10 71 C1

解釋:

01:子站地址

04:指令號,04讀AI

00 18:從哪一路開始讀,0x0018對應的是X1脈沖計數寄存器起始地址

00 10:要讀多少個寄存器,因為一路X脈沖計數占用2個寄存器地址,這里讀8路,所以這里寄存器數量要填十六進制0x0010=十進制16

71 C1 :CRC校驗

響應:

接收數據(HEX): 01 04 20 00 00 27 10 00 00 27 10 00 00 27 10 00 00 27 10 00 00 27 10 00 00 27 10 00 00 27 10 00 00 27 10 36 38

解釋:

01:子站地址

04:指令號,04讀AI

20:后面跟的數據字節數,0x20=十進制32,后面數據區有32字節數據

00002710:換成十進制就是 0x00002710 =10000,即讀取到X1輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀取到X2輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀取到X3輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀取到X4輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀取到X5輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀取到X6輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀取到X7輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀取到X8輸入口當前脈沖計數值為10000

36 38:CRC校驗

  • 例子:讀當前X1-X12輸入點脈沖計數值的請求&響應報文

請求:

發送數據(HEX): 01 04 00 18 00 18 70 07

解釋:

01:子站地址

04:指令號,04讀AI

00 18:從哪一路開始讀,0x0018對應的是X1脈沖計數寄存器起始地址

00 18:要讀多少個寄存器,因為一路X脈沖計數占用2個寄存器地址,這里讀12路,所以這里寄存器數量要填十六進制0x0018=十進制24

70 07 :CRC校驗

響應:

接收數據(HEX): 01 04 30 00 00 27 10 00 00 27 10 00 00 27 10 00 00 27 10 00 00 27 10 00 00 27 10 00 00 27 10 00 00 27 10 00 00 27 10 00 00 27 10 00 00 27 10 00 00 27 10 C1 D9

解釋:

01:子站地址

04:指令號,04讀AI

30:后面跟的數據字節數,0x30=十進制48,后面數據區有48字節數據

00002710:換成十進制就是 0x00002710 =10000,即讀取到X1輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀取到X2輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀取到X3輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀取到X4輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀取到X5輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀取到X6輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀取到X7輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀取到X8輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀取到X9輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀到X10輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀到X11輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀到X12輸入口當前脈沖計數值為10000

C1 D9:CRC校驗

X輸入口脈沖計數清空 (寫入:DO寄存器,命令號:0x0F)

  • 描述

清空模塊的X輸入口的脈沖計數值。

  • 例子:清空X1輸入計數值的請求&響應報文

請求:

發送數據(HEX): 01 0f 00 40 00 01 01 01 ee 98

解釋:

01:子站地址

0f:指令號,0x0f=十進制15,寫多路DO

00 40:從哪一路開始清空,0x00 40是X1計數清空DO寄存器起始地址

00 01:要清空多少路計數,十六進制0x0001=十進制1路

01:后面要寫入的數據字節數,0x01=十進制1,寫入1字節數據

01:寫入的數據,寫1清空

ee 98:CRC校驗

響應:

//模塊回復

01 0F 00 40 00 01 95 df

解釋:

01:子站地址

0f:指令號,0x0f=十進制15,寫多路DO

00 40:從哪一路開始清空,0x00 40是X1計數清空DO寄存器起始地址

00 01:要清空多少路計數,十六進制0x0001=十進制1路

95 df:CRC校驗

  • 例子:清空X1-X12輸入計數值的請求&響應報文

請求:

發送數據(HEX): 01 0f 00 40 00 0C 02 ff 0f ea 84

解釋:

01:子站地址

0f:指令號,0x0f=十進制15,寫多路DO

00 40:從哪一路開始清空,0x00 40是X1計數清空DO寄存器起始地址

00 0C:要清空多少路計數,十六進制0x000C=十進制12路

02:后面要寫入的數據字節數,0x02=十進制2,寫入2字節數據

ff:十六進制0xff=二進制1111 1111=X8計數清空-X7計數清空-X6計數清空-X5計數清空-X4計數清空-X3計數清空-X2計數清空-X1計數清空,對應的bit位寫1清空,寫0保持不變

0f: 十六進制0x0f=二進制0000 1111=X16計數清空-X15計數清空-X14計數清空-X13計數清空-X12計數清空-X11計數清空-X10計數清空-X9計數清空,對應的bit位寫1清空,寫0保持不變

ea 84:CRC校驗

響應:

//模塊回復

01 0F 00 40 00 0C 54 1A

解釋:

01:子站地址

0f:指令號,0x0f=十進制15,寫多路DO

00 40:從哪一路開始清空,0x00 40是X1計數清空DO寄存器起始地址

00 0C:要清空多少路計數,十六進制0x000C=十進制12路

54 1A:CRC校驗

  • 例子:指定清空X1,X4,X8,X12,X24輸入計數值的請求&響應報文

請求:

發送數據(HEX): 01 0f 00 40 00 18 03 85 08 80 16 39

解釋:

01:子站地址

0f:指令號,0x0f=十進制15,寫多路DO

00 40:從哪一路開始清空,0x00 40是X1計數清空DO寄存器起始地址

00 18:要清空多少路計數,十六進制0x0018=十進制24路

03:后面要寫入的數據字節數,0x03=十進制3,寫入3字節數據

85:十六進制0x85=二進制1000 1001=X8計數清空-X7計數清空-X6計數清空-X5計數清空-X4計數清空-X3計數清空-X2計數清空-X1計數清空,對應的bit位寫1清空,寫0保持不變

08: 十六進制0x08=二進制0000 1000=X16計數清空-X15計數清空-X14計數清空-X13計數清空-X12計數清空-X11計數清空-X10計數清空-X9計數清空,對應的bit位寫1清空,寫0保持不變

80: 十六進制0x80=二進制1000 0000=X24計數清空-X23計數清空-X22計數清空-X21計數清空-X20計數清空-X19計數清空-X18計數清空-X17計數清空,對應的bit位寫1清空,寫0保持不變

16 39:CRC校驗

響應:

//模塊回復

01 0F 00 40 00 18 54 15

解釋:

01:子站地址

0f:指令號,0x0f=十進制15,寫多路DO

00 40:從哪一路開始清空,0x00 40是X1計數清空DO寄存器起始地址

00 18:操作了多少路計數,十六進制0x0018=十進制24路

54 15:CRC校驗

Y輸出口ON/OFF寫入 (寫入:DO寄存器,命令號:0x0F)

  • 描述

用于控制模塊Y輸出點的開關狀態。

  • 例子:控制Y1當前輸出ON/OFF的請求&響應報文

請求:

發送數據(HEX): 01 0f 00 00 00 01 01 01 ef 57

解釋:

01:子站地址

0f:指令號,0x0f=十進制15,寫多路DO

00 00:從哪一路開始寫,00 00=Y1開始寫

00 01:要寫多少路,十六進制0x0001=十進制1,寫1路

01:后面要寫入的數據字節數,0x01=十進制1,寫入1字節數據

01:寫入的數據,0x01換算成二進制00000001 = Y8-Y7-Y6-Y5-Y4-Y3-Y2-Y1輸出狀態,ON=0,OFF=1

ef 57:CRC校驗

響應:

//模塊回復

01 0F 00 00 00 01 94 0B

解釋:

01:子站地址

0f:指令號,0x0f=十進制15,寫多路DO

00 00:從哪一路開始寫,00 00=Y1開始寫

00 01:寫了多少路,十六進制0x0001=十進制1,寫1路

94 0B:CRC校驗

  • 例子:控制Y1-Y8當前輸出ON/OFF的請求&響應報文

//將Y1,Y2,Y8輸出ON,其他路輸出OFF

請求:

發送數據(HEX): 01 0f 00 00 00 08 01 83 bf 34

解釋:

01:子站地址

0f:指令號,0x0f=十進制15,寫多路DO

00 00:從哪一路開始寫,00 00=Y1開始寫

00 08:要寫多少路,十六進制0x0008=十進制8,寫8路

01:后面要寫入的數據字節數,0x01=十進制1,寫入1字節數據

83:寫入的數據,0x83換算成二進制10000011 = Y8-Y7-Y6-Y5-Y4-Y3-Y2-Y1輸出狀態,ON=0,OFF=1

bf 34:CRC校驗

響應:

//模塊回復

01 0F 00 00 00 08 54 0D

解釋:

01:子站地址

0f:指令號,0x0f=十進制15,寫多路DO

00 00:從哪一路開始寫,00 00=Y1開始寫

00 08:寫了多少路,十六進制0x0008=十進制8,寫8路

54 0D:CRC校驗

  • 例子:控制Y1-Y24當前輸出ON/OFF的請求&響應報文

//將Y1,Y2,Y9,Y24輸出ON,其他路輸出OFF

請求:

發送數據(HEX): 01 0f 00 00 00 18 03 03 01 80 b0 44

解釋:

01:子站地址

0f:指令號,0x0f=十進制15,寫多路DO

00 00:從哪一路開始寫,00 00=Y1開始寫

00 18:要寫多少路,十六進制0x0018=十進制24,寫24路

03:后面要寫入的數據字節數,0x01=十進制1,寫入1字節數據

03:寫入的數據,0x03換算成二進制00000011 = Y8-Y7-Y6-Y5-Y4-Y3-Y2-Y1輸出狀態,ON=0,OFF=1

01:寫入的數據,0x01換算成二進制00000001 = Y16-Y15-Y14-Y13-Y12-Y11-Y10-Y9輸出狀態,ON=0,OFF=1

80:寫入的數據,0x80換算成二進制10000000 = Y24-Y23-Y22-Y21-Y20-Y19-Y18-Y17輸出狀態,ON=0,OFF=1

b0 44:CRC校驗

響應:

//模塊回復

01 0F 00 00 00 18 55 C1

解釋:

01:子站地址

0f:指令號,0x0f=十進制15,寫多路DO

00 00:從哪一路開始寫,00 00=Y1開始寫

00 18:寫了多少路,十六進制0x0018=十進制24,寫24路

55 C1:CRC校驗

Y輸出口ON/OFF讀取 (讀取:DO寄存器,命令號:0x01)

  • 描述

用于讀取當前Y輸出口的開關狀態。

  • 例子:讀Y1當前輸出狀態的請求&響應報文

請求:

發送數據(HEX): 01 01 00 00 00 01 FD CA

解釋:

01:子站地址

01:指令號,01讀取多路DO

00 00:從哪一路開始讀,00 00=Y1開始讀

00 01:要讀多少路,十六進制0x0001=十進制1,讀取1路

FD CA:CRC校驗

響應:

//Y1 輸出ON(1)時的回復

01 01 01 01 90 48

解釋:

01:子站地址

01:指令號,01讀取多路DO

01:后面數據區字節數

01:數據,換算成二進制0x01=0000 0001,對應Y8-Y7-Y6-Y5-Y4-Y3-Y2-Y1的狀態

90 48 :CRC校驗

//Y1 輸出OFF(0)的時回復

01 01 01 00 51 88

解釋:

01:子站地址

01:指令號,01讀取多路DO

01:后面數據區字節數

00:數據,換算成二進制0x00=0000 0000,對應Y8-Y7-Y6-Y5-Y4-Y3-Y2-Y1的狀態

51 88 :CRC校驗

  • 例子:讀Y1-Y8當前輸出狀態的請求&響應報文

請求:

發送數據(HEX): 01 01 00 00 00 08 3D CC

解釋:

01:子站地址

01:指令號,01讀取多路DO

00 00:從哪一路開始讀,00 00=Y1開始讀

00 08:要讀多少路,十六進制0x0008=十進制8,讀取8路

3D CC:CRC校驗

響應:

//Y1,Y2,Y8輸出ON(1),其他輸出OFF(0)時的回復

01 01 01 83 10 29

解釋:

01:子站地址

01:指令號,01讀取多路DO

01:后面數據區字節數,0x01=十進制1,后面數據區有1字節數據

83:數據區,換算成二進制0x83=1000 0011,對應Y8-Y7-Y6-Y5-Y4-Y3-Y2-Y1的狀態

10 29 :CRC校驗

  • 例子:讀Y1-Y24當前輸出狀態的請求&響應報文

請求:

發送數據(HEX): 01 01 00 00 00 18 3C 00

解釋:

01:子站地址

01:指令號,01讀取多路DO

00 00:從哪一路開始讀,00 00=Y1開始讀

00 18:要讀多少路,十六進制0x0018=十進制24,讀取24路

3C00:CRC校驗

響應:

//Y1,Y2,Y9,Y24輸出ON(1),其他輸出OFF(0)時的回復

01 01 03 03 01 80 CC 7E

解釋:

01:子站地址

01:指令號,01讀取多路DO

03:后面數據區字節數,0x03=十進制3,后面數據區有3字節數據

03:數據,換算成二進制0x03=0000 0011,對應Y8-Y7-Y6-Y5-Y4-Y3-Y2-Y1的狀態

01:數據,換算成二進制0x01=0000 0001,對應Y16-Y15-Y14-Y13-Y12-Y11-Y10-Y9的狀態

80:數據,換算成二進制0x80=1000 0000,對應Y24-Y23-Y22-Y21-Y20-Y19-Y18-Y17的狀態

CC 7E :CRC校驗

AI模擬量采集讀取(讀取:AI寄存器,命令號:0x04)

  • 描述

讀模塊中的輸入型數據,例如AD模擬采集到的電壓值,電流值,壓力值等。

  • 例子:讀當前AI通道AI1模擬量輸入值的請求&響應報文

請求:

發送數據(HEX): 01 04 00 00 00 02 71CB

解釋:

01:子站地址

04:指令號,04讀AI

00 00:從哪一路開始讀,0x0000=AIO1開始讀

00 02:要多少個寄存器,因為一個AI通道占用2個寄存器地址,所以這里讀1路模擬量的話,寄存器數量要填2,十六進制0x0002=十進制2

71CB:CRC校驗

響應:

接收數據(HEX): 01 04 04 00 00 BF 11 4B B8

解釋:

01:子站地址

04:指令號,04讀AI

04:后面跟的數據字節數,0x04=十進制4,后面數據區有4字節數據

0000BF11:換成十進制就是 0x0000BF11 =48913,即讀取到AI1模擬量輸入口當前值為48913

4B B8:CRC校驗

  • 例子:讀當前AI通道AI1-AI4模擬量輸入值的請求&響應報文

請求:

發送數據(HEX): 01 04 00 00 00 08 F1 CC

解釋:

01:子站地址

04:指令號,04讀AI

00 00:從哪一路開始讀,0x0000=AIO1開始讀

00 08:要多少個寄存器,因為一個AI通道占用2個寄存器地址,所以這里讀4路模擬量的話,寄存器數量要填8,十六進制0x0008=十進制8

F1 CC:CRC校驗

響應:

接收數據(HEX): 01 04 10 00 00 BF 11 00 00 BF 11 00 00 BF 11 00 00 BF 11 76 C5

解釋:

01:子站地址

04:指令號,04讀AI

10:后面跟的數據字節數,0x10=十進制16,后面數據區有16字節數據

00 00 BF 11:數據區,換成十進制就是 0x0000BF11 =48913,即讀取到AI1模擬量輸入口當前值為48913

00 00 BF 11:數據區,換成十進制就是 0x0000BF11 =48913,即讀取到AI2模擬量輸入口當前值為48913

00 00 BF 11:數據區,換成十進制就是 0x0000BF11 =48913,即讀取到AI3模擬量輸入口當前值為48913

00 00 BF 11:數據區,換成十進制就是 0x0000BF11 =48913,即讀取到AI4模擬量輸入口當前值為48913

76 C5:CRC校驗

  • 例子:讀當前AI通道AI1-AI8模擬量輸入值的請求&響應報文

請求:

發送數據(HEX): 01 04 00 00 00 10 F1 C6

解釋:

01:子站地址

04:指令號,04讀AI

00 00:從哪一路開始讀,0x0000=AIO1開始讀

00 10:要多少個寄存器,因為一個AI通道占用2個寄存器地址,所以這里讀8路模擬量的話,寄存器數量要填16,換算成十六進制就是0x0010

F1 C6:CRC校驗

響應:

接收數據(HEX): 01 04 20 00 00 BF 11 00 00 BF 11 00 00 BF 11 00 00 BF 11 00 00 BF 11 00 00 BF 11 00 00 BF 11 00 00 BF 11 C0 F7

解釋:

01:子站地址

04:指令號,04讀AI

20:后面跟的數據字節數,0x20=十進制32,后面數據區有32字節數據

00 00 BF 11:數據區,換成十進制就是 0x0000BF11 =48913,即讀取到AI1模擬量輸入口當前值為48913

00 00 BF 11:數據區,換成十進制就是 0x0000BF11 =48913,即讀取到AI2模擬量輸入口當前值為48913

00 00 BF 11:數據區,換成十進制就是 0x0000BF11 =48913,即讀取到AI3模擬量輸入口當前值為48913

00 00 BF 11:數據區,換成十進制就是 0x0000BF11 =48913,即讀取到AI4模擬量輸入口當前值為48913

00 00 BF 11:數據區,換成十進制就是 0x0000BF11 =48913,即讀取到AI5模擬量輸入口當前值為48913

00 00 BF 11:數據區,換成十進制就是 0x0000BF11 =48913,即讀取到AI6模擬量輸入口當前值為48913

00 00 BF 11:數據區,換成十進制就是 0x0000BF11 =48913,即讀取到AI7模擬量輸入口當前值為48913

00 00 BF 11:數據區,換成十進制就是 0x0000BF11 =48913,即讀取到AI8模擬量輸入口當前值為48913

C0 F7:CRC校驗

AO模擬量輸出寫入(寫入:AO寄存器,命令號:0x10)

  • 描述

用于設定DA模擬量輸出值。

  • 例子:寫當前AO通道AO1模擬量輸出值的請求&響應報文

請求:

發送數據(HEX): 01 10 00 00 00 01 02 10 D2 2B CD

解釋:

01:子站地址

10:指令號,0x10=十進制16,寫AO

00 00:從哪一路開始寫,0x0000=AIO1開始寫

00 01:要寫多少路,十六進制0x0001=十進制1,寫1路

02:后面要寫入的數據字節數,0x02=十進制2,寫2個字節

10 D2:要寫入的AO輸出值,0x10D2=十進制4306,即寫入AO1輸出口模擬量輸出值為4306

2B CD:CRC校驗

響應:

接收數據(HEX): 01 10 00 00 00 01 01 C9

解釋:

01:子站地址

10:指令號,0x10=十進制16,寫AO

00 00:從哪一路開始寫,0x0000=AIO1開始寫

00 01:寫了多少路,十六進制0x0001=十進制1,寫1路

01 C9:CRC校驗

  • 例子:寫當前AO通道AO1-AO4模擬量輸出值的請求&響應報文

請求:

發送數據(HEX): 01 10 00 00 00 04 08 10 D2 10 D2 10 D2 10 D2 D6 9D

解釋:

01:子站地址

10:指令號,0x10=十進制16,寫AO

00 00:從哪一路開始寫,0x0000=AIO1開始寫

00 04:要寫多少路,十六進制0x0004=十進制4,寫4路

08:后面要寫入的數據字節數,0x08=十進制8,寫8個字節

10D2:要寫入的AO輸出值,0x10D2=十進制4306,即寫入AO1輸出口模擬量輸出值為4306

10D2:要寫入的AO輸出值,0x10D2=十進制4306,即寫入AO2輸出口模擬量輸出值為4306

10D2:要寫入的AO輸出值,0x10D2=十進制4306,即寫入AO3輸出口模擬量輸出值為4306

10D2:要寫入的AO輸出值,0x10D2=十進制4306,即寫入AO4輸出口模擬量輸出值為4306

D6 9D:CRC校驗

響應:

接收數據(HEX): 01 10 00 00 00 04 C1 CA

解釋:

01:子站地址

10:指令號,0x10=十進制16,寫AO

00 00:從哪一路開始寫,0x0000=AIO1開始寫

00 04:寫了多少路,十六進制0x0004=十進制4,寫4路

C1 CA:CRC校驗

  • 例子:寫當前AO通道AO1-AO8模擬量輸出值的請求&響應報文

請求:

發送數據(HEX): 01 10 00 00 00 08 10 10 D2 10 D2 10 D2 10 D2 10 D2 10 D2 10 D2 10 D2 E8 0C

解釋:

01:子站地址

10:指令號,0x10=十進制16,寫AO

00 00:從哪一路開始寫,0x0000=AIO1開始寫

00 08:要寫多少路,十六進制0x0008=十進制8,寫8路

10:后面要寫入的數據字節數,0x10=十進制16,16個字節

10D2:要寫入的AO輸出值,0x10D2=十進制4306,即寫入AO1輸出口模擬量輸出值為4306

10D2:要寫入的AO輸出值,0x10D2=十進制4306,即寫入AO2輸出口模擬量輸出值為4306

10D2:要寫入的AO輸出值,0x10D2=十進制4306,即寫入AO3輸出口模擬量輸出值為4306

10D2:要寫入的AO輸出值,0x10D2=十進制4306,即寫入AO4輸出口模擬量輸出值為4306

10D2:要寫入的AO輸出值,0x10D2=十進制4306,即寫入AO5輸出口模擬量輸出值為4306

10D2:要寫入的AO輸出值,0x10D2=十進制4306,即寫入AO6輸出口模擬量輸出值為4306

10D2:要寫入的AO輸出值,0x10D2=十進制4306,即寫入AO7輸出口模擬量輸出值為4306

10D2:要寫入的AO輸出值,0x10D2=十進制4306,即寫入AO8輸出口模擬量輸出值為4306

E8 0C:CRC校驗

響應:

接收數據(HEX): 01 10 00 00 00 08 C1 CF

解釋:

01:子站地址

10:指令號,0x10=十進制16,寫AO

00 00:從哪一路開始寫,0x0000=AIO1開始寫

00 08:寫了多少路,十六進制0x0008=十進制8,寫8路

C1 CF:CRC校驗

AO模擬量輸出讀取(讀取:AO寄存器,命令號:0x03)

  • 描述

用于讀取當前DA模擬量輸出值。

  • 例子:讀當前AO通道AO1模擬量輸出值的請求&響應報文

請求:

發送數據(HEX): 01 03 00 00 00 01 84 0A

解釋:

01:子站地址

03:指令號,03讀AO

00 00:從哪一路開始讀,0x0000=AIO1開始讀

00 01:要讀多少路,十六進制0x0001=十進制1,讀取1路

84 0A:CRC校驗

響應:

接收數據(HEX): 01 03 02 10 D2 35 D9

解釋:

01:子站地址

03:指令號,03讀AO

02:后面跟的數據字節數

10 D2:換成十進制就是0x10D2 =十進制4306,即讀取到AO1輸出模擬量當前輸出值為4306

35 D9:CRC校驗

  • 例子:讀當前AO通道AO1-AO4模擬量輸出值的請求&響應報文

請求:

發送數據(HEX): 01 03 00 00 00 04 44 09

解釋:

01:子站地址

03:指令號,03讀AO

00 00:從哪一路開始讀,0x0000=AIO1開始讀

00 04:要讀多少路,十六進制0x0004=十進制4,讀取4路

44 09:CRC校驗

響應:

接收數據(HEX): 01 03 08 10 D2 10 D2 10 D2 10 D2 F5 30

解釋:

01:子站地址

03:指令號,03讀AO

08:后面跟的數據字節數

10 D2:換成十進制就是 0x10D2 =十進制4306,即讀取到AO1輸出模擬量當前輸出值為4306

10 D2:換成十進制就是 0x10D2 =十進制4306,即讀取到AO2輸出模擬量當前輸出值為4306

10 D2:換成十進制就是 0x10D2 =十進制4306,即讀取到AO3輸出模擬量當前輸出值為4306

10 D2:換成十進制就是 0x10D2 =十進制4306,即讀取到AO4輸出模擬量當前輸出值為4306

F5 30:CRC校驗

  • 例子:讀當前AO通道AO1-AO8模擬量輸出值的請求&響應報文

請求:

發送數據(HEX): 01 03 00 00 00 08 44 0C

解釋:

01:子站地址

03:指令號,03讀AO

00 00:從哪一路開始讀,0x0000=AIO1開始讀

00 08:要讀多少路,十六進制0x0008=十進制8,讀取8路

44 0C:CRC校驗

響應:

接收數據(HEX): 01 03 10 10 D2 10 D2 10 D2 10 D2 10 D2 10 D2 10 D2 10 D2 15 98

解釋:

01:子站地址

03:指令號,03讀AO

10:后面跟的數據字節數,十六進制0x10=十進制16

10 D2:換成十進制就是 0x10D2 =十進制4306,即讀取到AO1輸出模擬量當前輸出值為4306

10 D2:換成十進制就是 0x10D2 =十進制4306,即讀取到AO2輸出模擬量當前輸出值為4306

10 D2:換成十進制就是 0x10D2 =十進制4306,即讀取到AO3輸出模擬量當前輸出值為4306

10 D2:換成十進制就是 0x10D2 =十進制4306,即讀取到AO4輸出模擬量當前輸出值為4306

10 D2:換成十進制就是 0x10D2 =十進制4306,即讀取到AO5輸出模擬量當前輸出值為4306

10 D2:換成十進制就是 0x10D2 =十進制4306,即讀取到AO6輸出模擬量當前輸出值為4306

10 D2:換成十進制就是 0x10D2 =十進制4306,即讀取到AO7輸出模擬量當前輸出值為4306

10 D2:換成十進制就是 0x10D2 =十進制4306,即讀取到AO8輸出模擬量當前輸出值為4306

15 98:CRC校驗

MODBUS-TCP協議詳解

X輸入口開關量狀態讀取 (讀取:DI寄存器,命令號:0x02)

  • 描述

讀模塊X輸入點的ON/OFF狀態等。

  • 例子:讀X1當前輸入狀態的請求&響應報文

請求:

發送數據(HEX): 00 00 00 00 00 06 01 02 00 00 00 01

解釋:

00 00:TID 傳輸標識符(用于上位機傳輸報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 06:后面要發送的字節數

01:子站地址

02:指令號,02讀DI

00 00:從哪一路開始讀,0x0000=X1開始讀

00 01:要讀多少路,十六進制0x0001=十進制1,讀取1路

響應:

//X1 輸入ON(1)時的回復

00 00 00 00 00 04 01 02 01 01

解釋:

00 00:TID 傳輸標識符(用于模塊回送報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 04:后面要發送的字節數

01:子站地址

02:指令號,02讀DI

01:后面跟的數據字節數

01:換成二進制就是 0000 0001 =X8-X7-X6-X5-X4-X3-X2-X1輸入口的當前狀態0=OFF,1=ON

//X1 輸入OFF(0)時的回復

00 00 00 00 00 04 01 02 01 00

解釋:

00 00:TID 傳輸標識符(用于模塊回送報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 04:后面要發送的字節數

01:子站地址

02:指令號,02讀DI

01:后面跟的數據字節數

00:換成二進制就是 0000 0000 =X8-X7-X6-X5-X4-X3-X2-X1輸入口的當前狀態0=OFF,1=ON

  • 例子:讀X1-X8當前輸入狀態的請求&響應報文

請求:

發送數據(HEX): 00 00 00 00 00 06 01 02 00 00 00 08

解釋:

00 00:TID 傳輸標識符(用于上位機傳輸報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 06:后面要發送的字節數

01:子站地址

02:指令號,02讀DI

00 00:從哪一路開始讀,0x0000=X1開始讀

00 08:要讀多少路十六進制0x0008=十進制8,讀取8路

響應:

//X1,X8輸入ON(1)時,其他都輸入OFF(0)時的回復

00 00 00 00 00 04 01 02 01 81

解釋:

00 00:TID 傳輸標識符(用于模塊回送報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 04:后面要發送的字節數

01:子站地址

02:指令號,02讀DI

01:后面跟的數據字節數

81:換成二進制就是1000 0001 =X8-X7-X6-X5-X4-X3-X2-X1輸入口的當前狀態0=OFF,1=ON

  • 例子:讀X1-X24當前輸入狀態的請求&響應報文

請求:

發送數據(HEX):00 00 00 00 00 06 01 02 00 00 00 18

解釋:

00 00:TID 傳輸標識符(用于上位機傳輸報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 06:后面要發送的字節數

01:子站地址

02:指令號,02讀DI

00 00:從哪一路開始讀,0x0000=X1開始讀

00 18:要讀多少路十六進制0x0018=十進制24,讀取24路

響應:

//X1,X2,X9,X24 輸入ON(1)時,其他都輸入OFF(0)時的回復

00 00 00 00 00 06 01 02 03 03 01 80

解釋:

00 00:TID 傳輸標識符(用于模塊回送報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 06:后面要發送的字節數

01:子站地址

02:指令號,02讀DI

03:后面跟的數據字節數

03:換成二進制就是 0000 0011 =X8-X7-X6-X5-X4-X3-X2-X1輸入口的當前狀態0=OFF,1=ON

01:換成二進制就是 0000 0001 =X16-X15-X14-X13-X12-X11-X10-X9輸入口的當前狀態0=OFF,1=ON

80:換成二進制就是 1000 0000 =X24-X23-X22-X21-X20-X19-X18-X17輸入口的當前狀態0=OFF,1=ON

X輸入口脈沖計數讀取 (讀取:AI寄存器,命令號:0x04)

  • 描述

讀模塊的X輸入口的脈沖計數值。

  • 例子:讀當前X1輸入點脈沖計數值的請求&響應報文

請求:

發送數據(HEX): 00 00 00 00 00 06 01 04 00 18 00 02

解釋:

00 00:TID 傳輸標識符(用于上位機傳輸報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 06:后面要發送的字節數

01:子站地址

04:指令號,04讀AI

00 18:從哪一路開始讀,0x0018對應的是X1脈沖計數寄存器起始地址

00 02:要讀多少個寄存器,因為一路X脈沖計數占用2個寄存器地址,所以這里寄存器數量要填2,十六進制0x0002=十進制2

響應:

接收數據(HEX): 00 00 00 00 00 07 01 04 04 00 00 27 10

解釋:

00 00:TID 傳輸標識符(用于上位機傳輸報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 07:后面要發送的字節數

01:子站地址

04:指令號,04讀AI

04:后面跟的數據字節數,0x04=十進制4,后面數據區有4字節數據

00002710:換成十進制就是 0x00002710 =10000,即讀取到X1輸入口當前脈沖計數值為10000

  • 例子:讀當前X1-X4輸入點脈沖計數值的請求&響應報文

請求:

發送數據(HEX): 00 00 00 00 00 06 01 04 00 18 00 08

解釋:

00 00:TID 傳輸標識符(用于上位機傳輸報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 06:后面要發送的字節數

01:子站地址

04:指令號,04讀AI

00 18:從哪一路開始讀,0x0018對應的是X1脈沖計數寄存器起始地址

00 08:要讀多少個寄存器,因為一路X脈沖計數占用2個寄存器地址,這里讀4路,所以這里寄存器數量要填8,十六進制0x0008=十進制8

響應:

接收數據(HEX): 00 00 00 00 00 13 01 04 10 00 00 27 10 00 00 27 10 00 00 27 10 00 00 27 10

解釋:

00 00:TID 傳輸標識符(用于上位機傳輸報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 13:后面要發送的字節數,0x13=十進制19

01:子站地址

04:指令號,04讀AI

10:后面跟的數據字節數,0x10=十進制16,后面數據區有16字節數據

00002710:換成十進制就是 0x00002710 =10000,即讀取到X1輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀取到X2輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀取到X3輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀取到X4輸入口當前脈沖計數值為10000

  • 例子:讀當前X1-X8輸入點脈沖計數值的請求&響應報文

請求:

發送數據(HEX): 00 00 00 00 00 06 01 04 00 18 00 10

解釋:

00 00:TID 傳輸標識符(用于上位機傳輸報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 06:后面要發送的字節數

01:子站地址

04:指令號,04讀AI

00 18:從哪一路開始讀,0x0018對應的是X1脈沖計數寄存器起始地址

00 10:要讀多少個寄存器,因為一路X脈沖計數占用2個寄存器地址,這里讀8路,所以這里寄存器數量要填十六進制0x0010=十進制16

響應:

接收數據(HEX): 00 00 00 00 00 23 01 04 20 00 00 27 10 00 00 27 10 00 00 27 10 00 00 27 10 00 00 27 10 00 00 27 10 00 00 27 10 00 00 27 10

解釋:

00 00:TID 傳輸標識符(用于上位機傳輸報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 23:后面要發送的字節數,0x23=十進制35

01:子站地址

04:指令號,04讀AI

20:后面跟的數據字節數,0x20=十進制32,后面數據區有32字節數據

00002710:換成十進制就是 0x00002710 =10000,即讀取到X1輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀取到X2輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀取到X3輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀取到X4輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀取到X5輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀取到X6輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀取到X7輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀取到X8輸入口當前脈沖計數值為10000

  • 例子:讀當前X1-X12輸入點脈沖計數值的請求&響應報文

請求:

發送數據(HEX): 00 00 00 00 00 06 01 04 00 18 00 18

解釋:

00 00:TID 傳輸標識符(用于上位機傳輸報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 06:后面要發送的字節數

01:子站地址

04:指令號,04讀AI

00 18:從哪一路開始讀,0x0018對應的是X1脈沖計數寄存器起始地址

00 18:要讀多少個寄存器,因為一路X脈沖計數占用2個寄存器地址,這里讀12路,所以這里寄存器數量要填十六進制0x0018=十進制24

響應:

接收數據(HEX): 00 00 00 00 00 33 01 04 30 00 00 27 10 00 00 27 10 00 00 27 10 00 00 27 10 00 00 27 10 00 00 27 10 00 00 27 10 00 00 27 10 00 00 27 10 00 00 27 10 00 00 27 10 00 00 27 10

解釋:

00 00:TID 傳輸標識符(用于上位機傳輸報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 33:后面要發送的字節數

01:子站地址

04:指令號,04讀AI

30:后面跟的數據字節數,0x30=十進制48,后面數據區有48字節數據

00002710:換成十進制就是 0x00002710 =10000,即讀取到X1輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀取到X2輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀取到X3輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀取到X4輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀取到X5輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀取到X6輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀取到X7輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀取到X8輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀取到X9輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀到X10輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀到X11輸入口當前脈沖計數值為10000

00002710:換成十進制就是 0x00002710 =10000,即讀到X12輸入口當前脈沖計數值為10000

X輸入口脈沖計數清空 (寫入:DO寄存器,命令號:0x0F)

  • 描述

清空模塊的X輸入口的脈沖計數值。

  • 例子:清空X1輸入計數值的請求&響應報文

請求:

發送數據(HEX): 00 00 00 00 00 08 01 0f 00 40 00 01 01 01

解釋:

00 00:TID 傳輸標識符(用于上位機傳輸報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 08:后面要發送的字節數

01:子站地址

0f:指令號,0x0f=十進制15,寫多路DO

00 40:從哪一路開始清空,0x00 40是X1計數清空DO寄存器起始地址

00 01:要清空多少路計數,十六進制0x0001=十進制1路

01:后面要寫入的數據字節數,0x01=十進制1,寫入1字節數據

01:寫入的數據,寫1清空

響應:

//模塊回復

00 00 00 00 00 06 01 0F 00 40 00 01

解釋:

00 00:TID 傳輸標識符(用于上位機傳輸報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 06:后面要發送的字節數

01:子站地址

0f:指令號,0x0f=十進制15,寫多路DO

00 40:從哪一路開始清空,0x00 40是X1計數清空DO寄存器起始地址

00 01:要清空多少路計數,十六進制0x0001=十進制1路

  • 例子:清空X1-X12輸入計數值的請求&響應報文

請求:

發送數據(HEX): 00 00 00 00 00 09 01 0f 00 40 00 0C 02 ff 0f

解釋:

00 00:TID 傳輸標識符(用于上位機傳輸報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 09:后面要發送的字節數

01:子站地址

0f:指令號,0x0f=十進制15,寫多路DO

00 40:從哪一路開始清空,0x00 40是X1計數清空DO寄存器起始地址

00 0C:要清空多少路計數,十六進制0x000C=十進制12路

02:后面要寫入的數據字節數,0x02=十進制2,寫入2字節數據

ff:十六進制0xff=二進制1111 1111=X8計數清空-X7計數清空-X6計數清空-X5計數清空-X4計數清空-X3計數清空-X2計數清空-X1計數清空,對應的bit位寫1清空,寫0保持不變

0f: 十六進制0x0f=二進制0000 1111=X16計數清空-X15計數清空-X14計數清空-X13計數清空-X12計數清空-X11計數清空-X10計數清空-X9計數清空,對應的bit位寫1清空,寫0保持不變

響應:

//模塊回復

00 00 00 00 00 06 01 0F 00 40 00 0C

解釋:

00 00:TID 傳輸標識符(用于上位機傳輸報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 06:后面要發送的字節數

01:子站地址

0f:指令號,0x0f=十進制15,寫多路DO

00 40:從哪一路開始清空,0x00 40是X1計數清空DO寄存器起始地址

00 0C:要清空多少路計數,十六進制0x000C=十進制12路

  • 例子:指定清空X1,X4,X8,X12,X24輸入計數值的請求&響應報文

請求:

發送數據(HEX): 00 00 00 00 00 0A 01 0f 00 40 00 18 03 85 08 80

解釋:

00 00:TID 傳輸標識符(用于上位機傳輸報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 0A:后面要發送的字節數,0x0A=十進制10

01:子站地址

0f:指令號,0x0f=十進制15,寫多路DO

00 40:從哪一路開始清空,0x00 40是X1計數清空DO寄存器起始地址

00 18:要清空多少路計數,十六進制0x0018=十進制24路

03:后面要寫入的數據字節數,0x03=十進制3,寫入3字節數據

85:十六進制0x85=二進制1000 1001=X8計數清空-X7計數清空-X6計數清空-X5計數清空-X4計數清空-X3計數清空-X2計數清空-X1計數清空,對應的bit位寫1清空,寫0保持不變

08: 十六進制0x08=二進制0000 1000=X16計數清空-X15計數清空-X14計數清空-X13計數清空-X12計數清空-X11計數清空-X10計數清空-X9計數清空,對應的bit位寫1清空,寫0保持不變

80: 十六進制0x80=二進制1000 0000=X24計數清空-X23計數清空-X22計數清空-X21計數清空-X20計數清空-X19計數清空-X18計數清空-X17計數清空,對應的bit位寫1清空,寫0保持不變

響應:

//模塊回復

00 00 00 00 00 06 01 0F 00 40 00 18

解釋:

00 00:TID 傳輸標識符(用于上位機傳輸報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 06:后面要發送的字節數

01:子站地址

0f:指令號,0x0f=十進制15,寫多路DO

00 40:從哪一路開始清空,0x00 40是X1計數清空DO寄存器起始地址

00 18:操作了多少路計數,十六進制0x0018=十進制24路

Y輸出口ON/OFF寫入 (寫入:DO寄存器,命令號:0x0F)

  • 描述

用于控制模塊Y輸出點的開關狀態。

  • 例子:控制Y1當前輸出ON/OFF的請求&響應報文

請求:

發送數據(HEX): 00 00 00 00 00 08 01 0f 00 00 00 01 01 01

解釋:

00 00:TID 傳輸標識符(用于上位機傳輸報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 08:后面要發送的字節數

01:子站地址

0f:指令號,0x0f=十進制15,寫多路DO

00 00:從哪一路開始寫,00 00=Y1開始寫

00 01:要寫多少路,十六進制0x0001=十進制1,寫1路

01:后面要寫入的數據字節數,0x01=十進制1,寫入1字節數據

01:寫入的數據,0x01換算成二進制00000001 = Y8-Y7-Y6-Y5-Y4-Y3-Y2-Y1輸出狀態,ON=0,OFF=1

響應:

//模塊回復

00 00 00 00 00 06 01 0F 00 00 00 01

解釋:

00 00:TID 傳輸標識符(用于模塊回送報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 06:后面要發送的字節數

01:子站地址

0f:指令號,0x0f=十進制15,寫多路DO

00 00:從哪一路開始寫,00 00=Y1開始寫

00 01:寫了多少路,十六進制0x0001=十進制1,寫1路

  • 例子:控制Y1-Y8當前輸出ON/OFF的請求&響應報文

//將Y1,Y2,Y8輸出ON,其他路輸出OFF

請求:

發送數據(HEX): 00 00 00 00 00 08 01 0f 00 00 00 08 01 83

解釋:

00 00:TID 傳輸標識符(用于上位機傳輸報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 08:后面要發送的字節數

01:子站地址

0f:指令號,0x0f=十進制15,寫多路DO

00 00:從哪一路開始寫,00 00=Y1開始寫

00 08:要寫多少路,十六進制0x0008=十進制8,寫8路

01:后面要寫入的數據字節數,0x01=十進制1,寫入1字節數據

83:寫入的數據,0x83換算成二進制10000011 = Y8-Y7-Y6-Y5-Y4-Y3-Y2-Y1輸出狀態,ON=0,OFF=1

響應:

//模塊回復

00 00 00 00 00 06 01 0F 00 00 00 08

解釋:

00 00:TID 傳輸標識符(用于模塊回送報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 06:后面要發送的字節數

01:子站地址

0f:指令號,0x0f=十進制15,寫多路DO

00 00:從哪一路開始寫,00 00=Y1開始寫

00 08:寫了多少路,十六進制0x0008=十進制8,寫8路

  • 例子:控制Y1-Y24當前輸出ON/OFF的請求&響應報文

//將Y1,Y2,Y9,Y24輸出ON,其他路輸出OFF

請求:

發送數據(HEX): 00 00 00 00 00 0a 01 0f 00 00 00 18 03 03 01 80

解釋:

00 00:TID 傳輸標識符(用于上位機傳輸報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 0a:后面要發送的字節數,0x0a=十進制10

01:子站地址

0f:指令號,0x0f=十進制15,寫多路DO

00 00:從哪一路開始寫,00 00=Y1開始寫

00 18:要寫多少路,十六進制0x0018=十進制24,寫24路

03:后面要寫入的數據字節數,0x01=十進制1,寫入1字節數據

03:寫入的數據,0x03換算成二進制00000011 = Y8-Y7-Y6-Y5-Y4-Y3-Y2-Y1輸出狀態,ON=0,OFF=1

01:寫入的數據,0x01換算成二進制00000001 = Y16-Y15-Y14-Y13-Y12-Y11-Y10-Y9輸出狀態,ON=0,OFF=1

80:寫入的數據,0x80換算成二進制10000000 = Y24-Y23-Y22-Y21-Y20-Y19-Y18-Y17輸出狀態,ON=0,OFF=1

響應:

//模塊回復

00 00 00 00 00 06 01 0F 00 00 00 18

解釋:

00 00:TID 傳輸標識符(用于模塊回送報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 06:后面要發送的字節數

01:子站地址

0f:指令號,0x0f=十進制15,寫多路DO

00 00:從哪一路開始寫,00 00=Y1開始寫

00 18:寫了多少路,十六進制0x0018=十進制24,寫24路

Y輸出口ON/OFF讀取 (讀取:DO寄存器,命令號:0x01)

  • 描述

用于讀取模塊Y輸出點的開關狀態。

  • 例子:讀Y1當前輸出狀態的請求&響應報文

請求:

發送數據(HEX): 00 00 00 00 00 06 01 01 00 00 00 01

解釋:

00 00:TID 傳輸標識符(用于上位機傳輸報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 06:后面要發送的字節數

01:子站地址

01:指令號,01讀取多路DO

00 00:從哪一路開始讀,00 00=Y1開始讀

00 01:要讀多少路,十六進制0x0001=十進制1,讀取1路

響應:

//Y1 輸出ON(1)時的回復

00 00 00 00 00 04 01 01 01 01

解釋:

00 00:TID 傳輸標識符(用于模塊回送報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 04:后面要發送的字節數

01:子站地址

01:指令號,01讀取多路DO

01:后面數據區字節數

01:數據,換算成二進制0x01=0000 0001,對應Y8-Y7-Y6-Y5-Y4-Y3-Y2-Y1的狀態

//Y1 輸出OFF(0)的時回復

00 00 00 00 00 04 01 01 01 00

解釋:

00 00:TID 傳輸標識符(用于模塊回送報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 04:后面要發送的字節數

01:子站地址

01:指令號,01讀取多路DO

01:后面數據區字節數

00:數據,換算成二進制0x00=0000 0000,對應Y8-Y7-Y6-Y5-Y4-Y3-Y2-Y1的狀態

  • 例子:讀Y1-Y8當前輸出狀態的請求&響應報文

請求:

發送數據(HEX): 00 00 00 00 00 06 01 01 00 00 00 08

解釋:

00 00:TID 傳輸標識符(用于上位機傳輸報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 06:后面要發送的字節數

01:子站地址

01:指令號,01讀取多路DO

00 00:從哪一路開始讀,00 00=Y1開始讀

00 08:要讀多少路,十六進制0x0008=十進制8,讀取8路

響應:

//Y1,Y2,Y8輸出ON(1),其他輸出OFF(0)時的回復

00 00 00 00 00 04 01 01 01 83

解釋:

00 00:TID 傳輸標識符(用于模塊回送報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 04:后面要發送的字節數

01:子站地址

01:指令號,01讀取多路DO

01:后面數據區字節數,0x01=十進制1,后面數據區有1字節數據

83:數據區,換算成二進制0x83=1000 0011,對應Y8-Y7-Y6-Y5-Y4-Y3-Y2-Y1的狀態

  • 例子:讀Y1-Y24當前輸出狀態的請求&響應報文

請求:

發送數據(HEX): 00 00 00 00 00 06 01 01 00 00 00 18

解釋:

00 00:TID 傳輸標識符(用于上位機傳輸報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 06:后面要發送的字節數

01:子站地址

01:指令號,01讀取多路DO

00 00:從哪一路開始讀,00 00=Y1開始讀

00 18:要讀多少路,十六進制0x0018=十進制24,讀取24路

響應:

//Y1,Y2,Y9,Y24輸出ON(1),其他輸出OFF(0)時的回復

00 00 00 00 00 06 01 01 03 03 01 80

解釋:

00 00:TID 傳輸標識符(用于模塊回送報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 06:后面要發送的字節數

01:子站地址

01:指令號,01讀取多路DO

03:后面數據區字節數,0x03=十進制3,后面數據區有3字節數據

03:數據,換算成二進制0x03=0000 0011,對應Y8-Y7-Y6-Y5-Y4-Y3-Y2-Y1的狀態

01:數據,換算成二進制0x01=0000 0001,對應Y16-Y15-Y14-Y13-Y12-Y11-Y10-Y9的狀態

80:數據,換算成二進制0x80=1000 0000,對應Y24-Y23-Y22-Y21-Y20-Y19-Y18-Y17的狀態

AI模擬量采集讀取(讀取:AI寄存器,命令號:0x04)

  • 描述

讀模塊中的輸入型數據,例如AD模擬采集到的電壓值,電流值,壓力值等。

  • 例子:讀當前AI通道AI1模擬量輸入值的請求&響應報文

請求:

發送數據(HEX): 00 00 00 00 00 06 01 04 00 00 00 02

解釋:

00 00:TID 傳輸標識符(用于上位機傳輸報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 06:后面要發送的字節數

01:子站地址

04:指令號,04讀AI

00 00:從哪一路開始讀,0x0000=AIO1開始讀

00 02:要多少個寄存器,因為一個AI通道占用2個寄存器地址,所以這里讀1路模擬量的話,寄存器數量要填2,十六進制0x0002=十進制2

響應:

接收數據(HEX): 00 00 00 00 00 07 01 04 04 00 00 BF 11

解釋:

00 00:TID 傳輸標識符(用于模塊回送報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 07:后面要發送的字節數

01:子站地址

04:指令號,04讀AI

04:后面跟的數據字節數,0x04=十進制4,后面數據區有4字節數據

0000BF11:換成十進制就是 0x0000BF11 =48913,即讀取到AI1模擬量輸入口當前值為48913

  • 例子:讀當前AI通道AI1-AI4模擬量輸入值的請求&響應報文

請求:

發送數據(HEX): 00 00 00 00 00 06 01 04 00 00 00 08

解釋:

00 00:TID 傳輸標識符(用于上位機傳輸報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 06:后面要發送的字節數

01:子站地址

04:指令號,04讀AI

00 00:從哪一路開始讀,0x0000=AIO1開始讀

00 08:要多少個寄存器,因為一個AI通道占用2個寄存器地址,所以這里讀4路模擬量的話,寄存器數量要填8,十六進制0x0008=十進制8

響應:

接收數據(HEX): 00 00 00 00 00 13 01 04 10 00 00 BF 11 00 00 BF 11 00 00 BF 11 00 00 BF 11

解釋:

00 00:TID 傳輸標識符(用于模塊回送報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 13:后面要發送的字節數,0x13=十進制19

01:子站地址

04:指令號,04讀AI

10:后面跟的數據字節數,0x10=十進制16,后面數據區有16字節數據

0000BF11:數據區,換成十進制就是 0x0000BF11 =48913,即讀取到AI1模擬量輸入口當前值為48913

0000BF11:數據區,換成十進制就是 0x0000BF11 =48913,即讀取到AI2模擬量輸入口當前值為48913

0000BF11:數據區,換成十進制就是 0x0000BF11 =48913,即讀取到AI3模擬量輸入口當前值為48913

0000BF11:數據區,換成十進制就是 0x0000BF11 =48913,即讀取到AI4模擬量輸入口當前值為48913

  • 例子:讀當前AI通道AI1-AI8模擬量輸入值的請求&響應報文

請求:

發送數據(HEX): 00 00 00 00 00 06 01 04 00 00 00 10

解釋:

00 00:TID 傳輸標識符(用于上位機傳輸報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 06:后面要發送的字節數

01:子站地址

04:指令號,04讀AI

00 00:從哪一路開始讀,0x0000=AIO1開始讀

00 10:要多少個寄存器,因為一個AI通道占用2個寄存器地址,所以這里讀8路模擬量的話,寄存器數量要填16,換算成十六進制就是0x0010

響應:

接收數據(HEX): 00 00 00 00 00 23 01 04 20 00 00 BF 11 00 00 BF 11 00 00 BF 11 00 00 BF 11 00 00 BF 11 00 00 BF 11 00 00 BF 11 00 00 BF 11

解釋:

00 00:TID 傳輸標識符(用于模塊回送報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 23:后面要發送的字節數,0x23=十進制35

01:子站地址

04:指令號,04讀AI

20:后面跟的數據字節數,0x20=十進制32,后面數據區有32字節數據

0000BF11:數據區,換成十進制就是 0x0000BF11 =48913,即讀取到AI1模擬量輸入口當前值為48913

0000BF11:數據區,換成十進制就是 0x0000BF11 =48913,即讀取到AI2模擬量輸入口當前值為48913

0000BF11:數據區,換成十進制就是 0x0000BF11 =48913,即讀取到AI3模擬量輸入口當前值為48913

0000BF11:數據區,換成十進制就是 0x0000BF11 =48913,即讀取到AI4模擬量輸入口當前值為48913

0000BF11:數據區,換成十進制就是 0x0000BF11 =48913,即讀取到AI5模擬量輸入口當前值為48913

0000BF11:數據區,換成十進制就是 0x0000BF11 =48913,即讀取到AI6模擬量輸入口當前值為48913

0000BF11:數據區,換成十進制就是 0x0000BF11 =48913,即讀取到AI7模擬量輸入口當前值為48913

0000BF11:數據區,換成十進制就是 0x0000BF11 =48913,即讀取到AI8模擬量輸入口當前值為48913

AO模擬量輸出寫入(寫入:AO寄存器,命令號:0x10)

  • 描述

用于設定DA模擬量輸出值。

  • 例子:寫當前AO通道AO1模擬量輸出值的請求&響應報文

請求:

發送數據(HEX): 00 00 00 00 00 09 01 10 00 00 00 01 02 10 D2

解釋:

00 00:TID 傳輸標識符(用于上位機傳輸報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 09:后面要發送的字節數

01:子站地址

10:指令號,0x10=十進制16,寫AO

00 00:從哪一路開始寫,0x0000=AIO1開始寫

00 01:要寫多少路,十六進制0x0001=十進制1,寫1路

02:后面要寫入的數據字節數,0x02=十進制2,寫2個字節

10D2:要寫入的AO輸出值,0x10D2=十進制4306,即寫入AO1輸出口模擬量輸出值為4306

響應:

接收數據(HEX): 00 00 00 00 00 06 01 10 00 00 00 01

解釋:

00 00:TID 傳輸標識符(用于模塊回送報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 06:后面要發送的字節數

01:子站地址

10:指令號,0x10=十進制16,寫AO

00 00:從哪一路開始寫,0x0000=AIO1開始寫

00 01:寫了多少路,十六進制0x0001=十進制1,寫1路

  • 例子:寫當前AO通道AO1-AO4模擬量輸出值的請求&響應報文

請求:

發送數據(HEX): 00 00 00 00 00 0f 01 10 00 00 00 04 08 10 D2 10 D2 10 D2 10 D2

解釋:

00 00:TID 傳輸標識符(用于上位機傳輸報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 0f:后面要發送的字節數,0x0f=十進制15

01:子站地址

10:指令號,0x10=十進制16,寫AO

00 00:從哪一路開始寫,0x0000=AIO1開始寫

00 04:要寫多少路,十六進制0x0004=十進制4,寫4路

08:后面要寫入的數據字節數,0x08=十進制8,寫8個字節

10D2:要寫入的AO輸出值,0x10D2=十進制4306,即寫入AO1輸出口模擬量輸出值為4306

10D2:要寫入的AO輸出值,0x10D2=十進制4306,即寫入AO2輸出口模擬量輸出值為4306

10D2:要寫入的AO輸出值,0x10D2=十進制4306,即寫入AO3輸出口模擬量輸出值為4306

10D2:要寫入的AO輸出值,0x10D2=十進制4306,即寫入AO4輸出口模擬量輸出值為4306

響應:

接收數據(HEX): 00 00 00 00 00 06 01 10 00 00 00 04

解釋:

00 00:TID 傳輸標識符(用于模塊回送報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 06:后面要發送的字節數

01:子站地址

10:指令號,0x10=十進制16,寫AO

00 00:從哪一路開始寫,0x0000=AIO1開始寫

00 04:寫了多少路,十六進制0x0004=十進制4,寫4路

  • 例子:寫當前AO通道AO1-AO8模擬量輸出值的請求&響應報文

請求:

發送數據(HEX): 00 00 00 00 00 17 01 10 00 00 00 08 10 10 D2 10 D2 10 D2 10 D2 10 D2 10 D2 10 D2 10 D2

解釋:

00 00:TID 傳輸標識符(用于上位機傳輸報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 17:后面要發送的字節數,0x17=十進制23

01:子站地址

10:指令號,0x10=十進制16,寫AO

00 00:從哪一路開始寫,0x0000=AIO1開始寫

00 08:要寫多少路,十六進制0x0008=十進制8,寫8路

10:后面要寫入的數據字節數,0x10=十進制16,16個字節

10D2:要寫入的AO輸出值,0x10D2=十進制4306,即寫入AO1輸出口模擬量輸出值為4306

10D2:要寫入的AO輸出值,0x10D2=十進制4306,即寫入AO2輸出口模擬量輸出值為4306

10D2:要寫入的AO輸出值,0x10D2=十進制4306,即寫入AO3輸出口模擬量輸出值為4306

10D2:要寫入的AO輸出值,0x10D2=十進制4306,即寫入AO4輸出口模擬量輸出值為4306

10D2:要寫入的AO輸出值,0x10D2=十進制4306,即寫入AO5輸出口模擬量輸出值為4306

10D2:要寫入的AO輸出值,0x10D2=十進制4306,即寫入AO6輸出口模擬量輸出值為4306

10D2:要寫入的AO輸出值,0x10D2=十進制4306,即寫入AO7輸出口模擬量輸出值為4306

10D2:要寫入的AO輸出值,0x10D2=十進制4306,即寫入AO8輸出口模擬量輸出值為4306

響應:

接收數據(HEX): 00 00 00 00 00 06 01 10 00 00 00 08

解釋:

00 00:TID 傳輸標識符(用于模塊回送報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 06:后面要發送的字節數

01:子站地址

10:指令號,0x10=十進制16,寫AO

00 00:從哪一路開始寫,0x0000=AIO1開始寫

00 08:寫了多少路,十六進制0x0008=十進制8,寫8路

AO模擬量輸出讀取(讀取:AO寄存器,命令號:0x03)

  • 描述

用于讀取當前DA模擬量輸出值。

  • 例子:讀當前AO通道AO1模擬量輸出值的請求&響應報文

請求:

發送數據(HEX): 00 00 00 00 00 06 01 03 00 00 00 01

解釋:

00 00:TID 傳輸標識符(用于上位機傳輸報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 06:后面要發送的字節數

01:子站地址

03:指令號,03讀AO

00 00:從哪一路開始讀,0x0000=AIO1開始讀

00 01:要讀多少路,十六進制0x0001=十進制1,讀取1路

響應:

接收數據(HEX): 00 00 00 00 00 05 01 03 02 10 D2

解釋:

00 00:TID 傳輸標識符(用于模塊回送報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 05:后面要發送的字節數

01:子站地址

03:指令號,03讀AO

02:后面跟的數據字節數

10 D2:換成十進制就是 0x10D2 =十進制4306,即讀取到AO1輸出模擬量當前輸出值為4306

  • 例子:讀當前AO通道AO1-AO4模擬量輸出值的請求&響應報文

請求:

發送數據(HEX): 00 00 00 00 00 06 01 03 00 00 00 04

解釋:

00 00:TID 傳輸標識符(用于上位機傳輸報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 06:后面要發送的字節數

01:子站地址

03:指令號,03讀AO

00 00:從哪一路開始讀,0x0000=AIO1開始讀

00 04:要讀多少路,十六進制0x0004=十進制4,讀取4路

響應:

接收數據(HEX): 00 00 00 00 00 0B 01 03 08 10 D2 10 D2 10 D2 10 D2

解釋:

00 00:TID 傳輸標識符(用于模塊回送報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 0B:后面要發送的字節數,0x000B=十進制11

01:子站地址

03:指令號,03讀AO

08:后面跟的數據字節數

10 D2:換成十進制就是 0x10D2 =十進制4306,即讀取到AO1輸出模擬量當前輸出值為4306

10 D2:換成十進制就是 0x10D2 =十進制4306,即讀取到AO2輸出模擬量當前輸出值為4306

10 D2:換成十進制就是 0x10D2 =十進制4306,即讀取到AO3輸出模擬量當前輸出值為4306

10 D2:換成十進制就是 0x10D2 =十進制4306,即讀取到AO4輸出模擬量當前輸出值為4306

  • 例子:讀當前AO通道AO1-AO8模擬量輸出值的請求&響應報文

請求:

發送數據(HEX): 00 00 00 00 00 06 01 03 00 00 00 08

解釋:

00 00:TID 傳輸標識符(用于上位機傳輸報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 06:后面要發送的字節數

01:子站地址

03:指令號,03讀AO

00 00:從哪一路開始讀,0x0000=AIO1開始讀

00 08:要讀多少路,十六進制0x0008=十進制8,讀取8路

響應:

接收數據(HEX): 00 00 00 00 00 13 01 03 10 10 D2 10 D2 10 D2 10 D2 10 D2 10 D2 10 D2 10 D2

解釋:

00 00:TID 傳輸標識符(用于模塊回送報文序列號),也可為0

00 00:PID 協議標識符,默認0

00 13:后面要發送的字節數,0x0013=十進制19

01:子站地址

03:指令號,03讀AO

10:后面跟的數據字節數,十六進制0x10=十進制16

10 D2:換成十進制就是 0x10D2 =十進制4306,即讀取到AO1輸出模擬量當前輸出值為4306

10 D2:換成十進制就是 0x10D2 =十進制4306,即讀取到AO2輸出模擬量當前輸出值為4306

10 D2:換成十進制就是 0x10D2 =十進制4306,即讀取到AO3輸出模擬量當前輸出值為4306

10 D2:換成十進制就是 0x10D2 =十進制4306,即讀取到AO4輸出模擬量當前輸出值為4306

10 D2:換成十進制就是 0x10D2 =十進制4306,即讀取到AO5輸出模擬量當前輸出值為4306

10 D2:換成十進制就是 0x10D2 =十進制4306,即讀取到AO6輸出模擬量當前輸出值為4306

10 D2:換成十進制就是 0x10D2 =十進制4306,即讀取到AO7輸出模擬量當前輸出值為4306

10 D2:換成十進制就是 0x10D2 =十進制4306,即讀取到AO8輸出模擬量當前輸出值為4306

Tags:modbus,功能碼,報文,寄存器地址  
責任編輯:admin
相關文章列表
Modbus 的RTU、ASCII、TCP傻傻搞不清楚?一文全解讀
Modbus測試工具與控件介紹
西門子PLC 200smartPLC與第三方進行Modbus TCP通訊
MODBUS--變頻器\PLC\儀表連不上怎么辦?送最簡單的軟件搞定問題
西門子plc Smart 200主從站之間RS485通訊實例_從站主站讀寫程序
西門子plc之間的通訊_兩臺西門子S7-200 SMART PLC如何通過Modbus
西門子S7-200 Smart plc的Modbus RTU庫通訊輪詢實例
學習s7-200之間的Modbus通訊_兩個PLC互相通信,主站從站通訊
西門子PLC S7-200Smart實現Modbus-RTU通信實例 多功能電表 溫控表
西門子plc S7-200 SMART與丹佛斯變頻器之間Modbus通信
西門子plc S7-200 SMART與變頻器MODBUS-RTU通信例程
RS232、RS485標準以及在DB9公頭、母頭上的接線定義_Modbus通訊接
PLC控制伺服電機運動的完整案例(PLC設置伺服驅動參數)_ 絲杠運
MODBUS常用功能碼
Modbus寄存器分類及地址分配表 寄存器分類及說明 寄存器的地址
西門子plc S7-200smart 與臺達變頻器通訊Modbus梯形圖編程實例
Modbus調試軟件--ModbusPoll、ModbusSlave使用詳解
modbus poll 使用教程  Modbus通訊
20種PLC對應Modbus地址表
西門子plc S7-200SMART通過MODBUS通信控制變頻器啟停如何看電流頻
西門子plc梯形圖編程實例 西門子200smart與電流表Modbus RTU通訊
使用西門子plc的Modbus通訊 串口調試助手與S7-200SMART PLC從站通
Modbus 調試助手的使用(一) Modsim32使用詳解Modbus Poll
【工具使用】Modsim32軟件使用詳解 串口調試軟件
什么是Modbus網關?modbus網關有什么作用?
西門子S7-200PLC ModbusTCP通訊,ModScan32使用
Modbus協議詳解 科普Modbus通訊協議
Modbus通訊簡單測試—Modscan32使用簡介
Modbus Scan32模擬軟件使用,Modscan32使用教程
Modbus協議的數據模型和地址模型
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個字
[ 查看全部 ] 網友評論
推薦文章
最新推薦
關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁面
下到頁底
晶體管查詢
婷婷亚洲天堂影院-国产精品豆花视频www-伊人影院在线观看-日本少妇浓毛bbwbbwbbw-av网站观看-亚州欧美在线-91精品国产乱码久-任我爽精品视频在线播放-日本视频不卡-亚洲国产精品va在线观看香蕉-国产毛片乡下农村妇女-国产成人免费ā片在线观看老同学-欧美日韩免费在线-成人无码视频免费播放-色综合美女-免费毛片av
<button id="4i884"></button>
  • <abbr id="4i884"><source id="4i884"></source></abbr>
  • <code id="4i884"><tr id="4i884"></tr></code>
  • <rt id="4i884"></rt>
    <li id="4i884"></li>
  • <rt id="4i884"><tr id="4i884"></tr></rt>
  • 无码人妻丰满熟妇区毛片18| 免费日韩在线观看| 欧美牲交a欧美牲交aⅴ免费下载| 日本激情视频在线播放| 三级在线视频观看| 欧美日韩理论片| 久久久久久久免费视频| 成人污网站在线观看| 狠狠97人人婷婷五月| 欧美三级理论片| 中国老女人av| av免费中文字幕| 欧美少妇在线观看| 香港三级日本三级a视频| 韩国日本在线视频| 91 视频免费观看| 日本人体一区二区| 国产精品视频黄色| 国产欧美日韩小视频| 毛片毛片毛片毛片毛片毛片毛片毛片毛片| 亚洲美女性囗交| 999一区二区三区| 97视频在线免费播放| 五月六月丁香婷婷| 日批视频在线免费看| 免费观看黄色大片| 男人透女人免费视频| 成年人三级视频| av无码精品一区二区三区| 欧美做受777cos| 色婷婷综合网站| 男人亚洲天堂网| www.夜夜爱| 最新av在线免费观看| 国产精品69页| 国自产拍偷拍精品啪啪一区二区| 国产一级黄色录像片| 中国黄色片免费看| 精品免费久久久久久久| 欧美丝袜在线观看| 日韩精品你懂的| 日韩手机在线观看视频| 亚洲人精品午夜射精日韩 | 无码专区aaaaaa免费视频| 毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 国产原创中文在线观看| 污污视频在线免费| 欧美大尺度做爰床戏| 久久人妻精品白浆国产| 成人av一级片| 亚洲熟妇无码一区二区三区| 久久综合亚洲精品| 韩国黄色一级大片| 国内外成人免费在线视频| 欧美牲交a欧美牲交aⅴ免费真| 久久久久免费精品| 国产日韩一区二区在线观看| jizzjizzxxxx| aaaaaa亚洲| 北条麻妃av高潮尖叫在线观看| 国产精品wwwww| 国产精品网站免费| 亚洲天堂第一区| a级免费在线观看| 日韩视频免费播放| 国产性xxxx18免费观看视频| 亚洲人成无码www久久久| 别急慢慢来1978如如2| 黄大色黄女片18第一次| 色呦色呦色精品| xxx中文字幕| 国产91沈先生在线播放| 春日野结衣av| 孩娇小videos精品| 在线a免费观看| 人妻av无码专区| 免费高清在线观看免费| 午夜免费福利视频在线观看| 特级黄色录像片| 国产女主播自拍| 天天爽天天爽夜夜爽| 天美一区二区三区| 精品人妻人人做人人爽| 无码人妻丰满熟妇区96| 国产精品入口免费软件| 天天在线免费视频| 精品这里只有精品| 中文字幕 91| 大荫蒂性生交片| 999精彩视频| 久久av高潮av| 中文字幕第21页| 欧美这里只有精品| 激情五月婷婷久久| 欧美交换配乱吟粗大25p| 欧美激情国产精品日韩| 蜜桃视频成人在线观看| 已婚少妇美妙人妻系列| 日韩 欧美 自拍| 日本新janpanese乱熟| 中国女人做爰视频| 一级在线免费视频| 成品人视频ww入口| 亚洲无在线观看| 精品视频无码一区二区三区| 青青在线视频免费观看| 天堂社区在线视频| 国产一区二区视频播放| 秋霞在线一区二区| 91国产精品视频在线观看| 欧美一级欧美一级| 亚洲天堂一区二区在线观看| 欧美黄色一级片视频| 青青草成人免费在线视频| 不用播放器的免费av| 不要播放器的av网站| 很污的网站在线观看| 欧美xxxx吸乳| 亚洲欧美日韩三级| 任你操这里只有精品| 91精品91久久久中77777老牛| 免费观看国产精品视频| 青青草免费在线视频观看| 91视频这里只有精品| 亚洲人视频在线| 天天干天天操天天玩| 在线观看免费成人av| 欧美日韩怡红院| 成人免费无码av| 韩国一区二区av| 日本男人操女人| 美女网站色免费| 九九九在线观看视频| 国产老熟妇精品观看| 日本www在线视频| 少妇大叫太大太粗太爽了a片小说| 浓精h攵女乱爱av| 国产女女做受ⅹxx高潮| 拔插拔插华人永久免费| 国产日韩av网站| 日本三级黄色网址| 2022亚洲天堂| www.中文字幕在线| 午夜免费福利视频在线观看| 精品无码av无码免费专区| 免费在线观看的毛片| 中文字幕色呦呦| 在线黄色免费看| 每日在线更新av| 国产树林野战在线播放| 日韩福利视频在线| 久久男人资源站| 日韩不卡视频一区二区| 黄色一级一级片| 欧美二区在线视频| 国产精品自在自线| 丁香啪啪综合成人亚洲| 国产男女激情视频| 日本激情综合网| 青青青在线视频播放| 99视频精品全部免费看| 久操网在线观看| 欧美精品一区二区性色a+v| 毛片毛片毛片毛片毛片毛片毛片毛片毛片| 无码人妻丰满熟妇区96| 成年人网站av| 男人的天堂狠狠干| 久久国产精品国产精品| 成年人视频在线免费| 亚洲娇小娇小娇小| 在线观看免费黄色片| 欧美s码亚洲码精品m码| 亚洲黄色片免费| 极品美女扒开粉嫩小泬| 成人av毛片在线观看| 尤物av无码色av无码| 亚洲制服中文字幕| 六月丁香激情网| aaaaaaaa毛片| 天堂av在线网站| 国产精品国产亚洲精品看不卡| 欧美在线观看视频网站| 蜜臀av.com| 小泽玛利亚视频在线观看| 僵尸世界大战2 在线播放| 九九九九九伊人| 乱妇乱女熟妇熟女网站| 久久视频免费在线| xxx国产在线观看| 国产裸体舞一区二区三区| 日韩欧美理论片| 日韩一级理论片| 丝袜老师办公室里做好紧好爽| 成人高清dvd| 亚洲欧美日韩精品一区| 国产第一页视频| 国产精品无码av在线播放| 强开小嫩苞一区二区三区网站| 超碰91在线播放| mm1313亚洲国产精品无码试看|