电子开发 | 基础入门 | 电路原理图 | 婵犳鍠栭オ鎾垂娴煎瓨鍤嬪ù鍏兼綑閻愬﹪鏌熼鍡楁噺濠㈡牗绻涢幘瀵稿暡闁瑰嚖鎷� | PLC闂備胶纭堕弲鐐测枍閿濆鈧線鏁撻敓锟�   闂備線娼уΛ妤呮晝閵堝鈧懓顦圭€殿喚枪楗即宕橀埡鍐х钵婵犵數鍋涘Λ搴ㄥ垂閸濆嫸鑰块柟娈垮枤閸楁碍绻涢崱妯兼噮缂佲偓婢舵劖鍋i柛銉墯閺侀亶鎮楃喊澶嬪 Ctrl+D 闂備礁缍婂ḿ褔顢栭崨顔藉弿闁冲搫鎳庣紒鈺呮煙椤栨粌顣兼い銉﹀灴閺屻劌鈽夊Δ鍐ㄥ闂佸憡鏌ㄩ幊鎰板箯椤愶箑顫呴柍銉ュ帠閹查箖姊哄Ч鍥у閻庢凹鍙冨顐︻敋閳ь剟鐛幇顓熷缁剧増锚娴滈箖鏌ㄩ悤鍌涘濠电偞鍨堕幐鎾磻閹剧粯鍋g憸宥夊床閺屻儺鏁嗛柣鏂挎憸閳绘洟鏌eΟ澶稿惈妞ゅ繘浜堕幃纭咁槾闁哄苯顦遍幑銏犖熸笟顖涙〃闂侀潧顦介崹宕囩矆婢舵劖鐓熼柕蹇嬪€栧☉褔鏌i埄鍐噧妞ゆ洩缍侀崺鈧い鎺戝閻鏌熺€电ǹ孝缂佹梻鍋撶换娑㈠幢閹邦剛浼囩紓浣筋嚙椤戝鐛崘顔光偓锕傚箳閺冨偊绱�.

电子开发网

电子开发网电子设计 | 电子开发网Rss 2.0 会员中心 会员注册

闂備礁鐤囧Λ鍕箠閹版澘鏋侀柛婵勫劜瀹曞銇勯弽銊ㄥ鐟滄澘妫涢埀顒侇問閸犳牜鎹㈤幋鐐存珷婵犲﹤鐗嗙粈鍐偓鍏夊亾閻庯綆鍓涢ˇ顕€姊洪崫鍕闁稿鎹囬弻锟犲磼濞戞﹩妫嗘繝鈷€鍕垫疁濠碘€崇摠缁绘繈宕熼浣圭槑闂佽瀛╃粙鎺楀礉濡ゅ懎鏋侀柛婵勫劜瀹曞銇勯弽銊ㄥ鐟滄澘妫涢埀顒侇問閸犳牜鎹㈠Δ鍜佹晣闁告縿鍎虫稉宥嗕繆閵堝倸浜惧┑鐐叉噺鐢剝淇婄€电硶鍋撻敐鍛暢缂佲偓婢舵劖鐓熸い顐幘缁佺兘鏌i銏㈢暫鐎规洘顨婇、妤呭焵椤掑倹顫曢柨鐔哄Т閽冪喖鏌曟径妯煎帥闁搞倕瀚伴弻鐔兼濞戝崬鍓伴梺鍝ュ剳閹凤拷 闂備焦妞垮鈧紒鎻掝煼閹本銈i崘銊ь槯濡炪倖宸婚崑鎾剁磼閹插纾块柟宄邦儔閺佸秹宕熼鐔哥槗闂備線娼荤徊濠氬礉婵犲洤鐒垫い鎺嶇婵鏌℃担鍛婃喐闁逞屽墯缁嬫帡宕濋幒鏂垮灊闁绘ê纾埢鏃€鎱ㄥ鍡椾簼闁活亙绮欓弻娑樷槈濞咁収浜為幑銏ゅ焵椤掆偓椤法鎹勯悜妯侯槱婵犫拃鍕煉鐎规洘岣挎禒锕傛倻閳轰椒澹曢梺璺ㄥ櫐閹凤拷
闂備礁鐤囧Λ鍕涘Δ鈧悾鐑藉礋椤掆偓缁剁偤鏌嶆潪鎵窗闁告柨鎳庨湁闁稿繗澹堟竟妯尖偓瑙勬礈閸犳牠骞冭瀹曞爼濡搁敂鍓ф闂佽楠稿﹢閬嶅磻濡吋顐介柨鐕傛嫹100 c闂佽崵濮村ù鍌炲矗閳ь剟鏌嶆导娆愬 chm闂備礁鎼粔鍫曞储瑜忓Σ鎰版晸閻樺弬銉╂煕鐏炲墽绠橀柕鍫亰閺岋繝宕掑☉姘櫑闂佸摜鍋涢顓㈠焵椤掆偓濠€閬嶃€佹繝鍥舵晪婵炴垶姘ㄧ壕濂告煕閳藉棗骞樼紒鈧径鎰仭闁哄洨鍋為ˉ鐘崇箾閹绘帪鏀荤紒妤冨枔閳ь剨缍嗘禍鐐哄箺瀹ュ拋鐔嗛柤鍝ユ暩閸熻尙绱掓潏銊х疄鐎规洘锕㈠畷銊╊敇瑜嶉弲锝呂旈悩闈涗哗闁跨喆鍎甸崺鈧い鎺嶇婵鏌℃担鍛婃喐闁逞屽墯缁嬫帡宕濋幒鏂垮灊闁绘ê纾埢鏃€鎱ㄥ鍡椾簼闁活亙绮欓弻娑樷槈濞咁収浜為幑銏ゅ焵椤掆偓椤法鎹勯悜妯侯槱婵犫拃鍕煉鐎规洘岣挎禒锕傛倻閳轰椒澹曢梺璺ㄥ櫐閹凤拷
搜索: 您现在的位置: 电子开发网 >> 电子开发 >> PLC基础入门教程 >> 正文

modbus协议实例讲解,功能码和报文详解

作者:佚名    文章来源:本站原创    点击数:3013    更新时间: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 个字
[ 查看全部 ] 网友评论
    没有任何评论
推荐文章
闂備焦鐪归崹钘夅缚瑜旈幃鍝勨枎韫囷絽娈ㄩ梺閫炲苯澧寸€规洩缍侀獮瀣偐閻㈡晫褔姊洪幐搴b姇缁炬澘绉归幆鍥亹閹烘挴鎸呴梺绯曞墲閻燂箓宕戦崨瀛樼厱婵﹩鍓涙晶鏇㈡煙椤斿吋宸濋柣姘剁畺閹筹繝濡堕崱妯荤槑闂佽瀛╃粙鎺楀礉閺囥垹鏄ユ俊銈勭劍婵瓨绻濇繛鎯т壕缂備焦顨呴惌鍌炲箖閼恒儲濯撮柛鎰典簽閸炴挳姊洪幖鐐插姎濠⒀嗘閳绘捇骞嬮悩鐢碉紴闂佺懓顕慨鐤亹閺屻儲鐓ユ繛鎴烇供閸炵c闁诲氦顫夐幃鍫曞磿閼碱剚鏆滈柛顐f礀缁狀噣鏌嶈閸撶喎顕i悽鍛婃櫢闁跨噦鎷�,婵犵妲呴崹鐣屾閺囥垹鏋侀柟闂寸閺嬩線鏌熷▓鍨灍闁哄棌鏅犻弻锝夘敇濠婂啫濮ら梺浼欒閹凤拷,闂備礁鎲¢〃鍡椕哄⿰鍕珷闁哄稁鍘肩€氬绱掗垾瀹犲敽A缂傚倷鐒︾粙鎴λ囬柆宥嗗仱闁硅揪闄勯弲顒€霉閿濆牊顥夐柣銈庡櫍閺岋箓鍩€椤掑嫬绀冩い蹇撴噺濮e嫰鏌i悩杈劅闁搞劍婢橀湁婵☆垵鍋愮壕楣冩煙鐎电ǹ啸鐟滄媽灏欑槐鎺楊敊閽樺濮㈤悗瑙勬礃濞茬喖寮鍥︽勃闁艰澹嗛ˇ浼存倵鐟欏嫭鍋犻柛搴㈠▕閸┿垽鎳栭埡鍌涙闂佸壊鍋呯换鍌炴倶閿熺姵鈷戞い鎰╁€曞皬闂佺粯绮犻崹璺虹暦閹邦喚绠旈悶娑掆偓鍏呭闂佺ǹ鏈笟妤呭磻閵娾晛绾ч柍杞扮窔椤庢鏌涘▍璇插暊閺嬫牠鏌曟繛鍨姍缂併劌鍟胯彁闁搞儻绲洪崑鎾诲礃閹绘帞绋诲┑鐐存綑閸氬銆冮崨鑸汗闁秆勵殕閺咁剚鎱ㄥΟ鍧楀摵闁哄棌鏅犻幃妤€鈽夊▎蹇擃潓缂備浇椴搁崹鍨暦閿濆绠i柣妯兼暩鏁堥梻浣瑰閸愬骞忛敓锟�
最新推荐
闂佽崵濮嶉崘顭戜痪闂佸搫顑戠换婵嗙暦閻樿宸濇い鎺戝€婚幉顕€鏌℃径灞藉壋闁瑰嚖鎷�
 [闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣捣閻棗銆掑锝呬壕濡ょ姷鍋涢ˇ鐢稿极閹剧粯鍋愭い鏃傛嚀娴滈箖鏌涢幇闈涙灈妤犵偑鍨烘穱濠囨倷鐎涙ḿ顦ラ梺鍦拡閸嬪﹪濡堕鍛嚤闁哄鍨归ˇ鏉款渻閵堝棗绗傞柤铏劶閵囨劙宕稿Δ浣叉嫽婵炶揪绲介幉锟犲箚閸垻纾奸悗锝傛櫇缁愭梻鈧娲忛崹浠嬪箠閺嶎厼鐓橀柟顖嗗倸顥氭繝娈垮枟閿曗晠宕滈敃鈧嵄闁归棿鐒﹂幊姘舵煛瀹ュ骸骞楅柣鎾卞劦閺岋繝宕堕妸锔炬闂佸憡鏌ㄧ粔鍫曟儉椤忓牜鏁囬柣鎰版涧閻撶喖姊洪崫鍕拱婵炶尙鍠庨悾閿嬬附閸撳弶鏅濆銈庡亽閸樺ジ寮搁崼銉︹拻濞达絽鎲¢幆鍫ユ煟椤撶儐妲洪柟骞垮灩閳规垿宕卞▎鎰啎闂備礁婀遍崕銈夈€冮崱娑樼柧婵犲﹤鐗婇悡銏′繆椤栨瑨顒熸俊顖氱墕闇夌痪顓㈡敱鐎氾拷]闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣捣閻棗銆掑锝呬壕濡ょ姷鍋涢ˇ鐢稿极閹剧粯鍋愰柛娆忓亰缁犳捇寮婚敐澶婄疀妞ゆ棁濮ゅВ鍕⒑濞茶骞栨俊顐n殜婵℃挳骞掗幋顓熷兊闂佹寧绻傞幊宥嗙珶閺囩偐鏀介柣妯活問閺嗩垶鏌嶈閸撴瑧澹曢鐔侯浄婵炴垶鍩冮崑鎾诲垂椤愶絿鍑¢柣搴㈠嚬閸犳绮嬮幒妤佹櫆闁告挆鍛幆濠电姰鍨规晶搴㈢仚濡炪們鍎茬喊宥囨崲濠靛鍋ㄩ梻鍫熺◥濞岊亪姊洪幖鐐插闁轰礁鎲$粩鐔煎即閵忊晜鏅i梺缁樕戦崜姘缚閻斿吋鈷戦悷娆忓閸熷繘鏌涢悩铏殤濠㈣娲樼缓浠嬪川婵犲嫬骞堟繝鐢靛仜濡瑩宕楁惔顭戞晜闁告洦鍘藉▓濂告⒑缁洖澧查柣鐔村灲瀹曟垿骞橀懜闈涙瀭闂佸憡娲﹂崜娑㈠煘濞戞氨纾藉ù锝堟鐢稓绱掔拠鎻掆偓鍧椼€佸鑸垫櫜濠㈣泛锕﹂鎺戭渻閵堝棙顥嗘俊顐㈠缁傚秷銇愰幒鎾斥偓鐢告煟閻斿憡绶叉い銉ョ箻閺屾盯鎮╅幇浣圭暥閻炴碍鐟╅弻娑㈩敃閻樻彃濮曢梺鎶芥敱鐢帡婀侀梺鎸庣箓閹冲繘宕悙鐑樼厵妞ゆ牗姘ㄦ晶锕傛煛瀹€瀣埌閾绘牠鏌嶈閸撴瑨鐏嬪┑鐘绘涧椤戝洤鐣垫笟鈧弻鈥愁吋鎼粹€冲闂佽桨绀侀崯鎾蓟閵娾晛绫嶉柛銉厛濡嫭绻涚€电ǹ鈻堢紒鐘崇墪椤繐煤椤忓嫬绐涙繝鐢靛Т閸燁偊藝閳哄懏鈷戦柛娑橈攻鐏忎即鏌i埡濠傜仸妤犵偛鍟撮幃鍧楊敍濡鐫忛梻浣告贡閸庛倝骞愭ィ鍐ㄧ煑闁糕剝绋掗埛鎴犵磽娴h偂鎴犵矆閳ь剟姊虹粙鍖″伐婵犫偓闁秴鐒垫い鎺嶈兌閸熸煡鏌熼崙銈嗗100 c闂傚倸鍊搁崐鎼佸磹瀹勬噴褰掑炊瑜忛弳锕傛煕椤垵浜濋柛娆忕箻閺屸剝寰勭€n亝顔呴悷婊呭鐢帞绮堢€n偁浜滈柡宥冨妽閻ㄦ垶銇勯弬鎸庮棦婵﹨娅i幑鍕Ω閵夛妇褰氶梻浣烘嚀閸ゆ牠骞忛敓锟�
 [闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偞鐗犻、鏇氱秴闁搞儺鍓氶悞鑲┾偓骞垮劚閹虫劙鏁嶉悢鍏尖拺闁革富鍘奸。鍏肩節閵忊槄鑰跨€规洖缍婂畷鎺戔槈閺嶏妇鐩庨梻浣告惈缁夋煡宕濆畝鍕€跨憸鐗堝笚閻撴盯鎮楅敐搴濋偗闁告瑥瀚伴弻锛勪沪閻愵剛顦紓浣哄У缁嬫捇鍩€椤掑﹦绉靛ù婊呭仦鐎靛ジ宕熼娑氬幗闂婎偄娲﹂幐鍓х不閹惰姤鐓涘ù锝呭閻撹偐鈧鍠栭…閿嬩繆閹间礁鐓涢柛灞剧煯缁ㄤ粙姊绘担鍛靛綊寮甸鍌滅煓闁硅揪瀵岄弫鍌炴煥閻曞倹瀚�]婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柟闂寸绾惧鏌i幇顒佹儓闁搞劌鍊块弻娑㈩敃閿濆棛顦ョ紓浣哄С閸楁娊寮婚悢鍏尖拻閻庡灚鐡曠粻鐐烘⒑閹肩偛鍔楅柡鍌欑窔瀹曟垿骞樼拠鍙夊祶濡炪倖鎸鹃崐顐︽倷鐟佷胶鎳撻オ浼村礃閳哄嫮顢呯紓鍌欐祰妞村摜鏁敓鐘叉槬闁逞屽墯閵囧嫰骞掗幋婵愪痪闂佺ǹ锕ら…鐑藉蓟閿濆鏁冮柕鍫濇噳閺嬪懎鈹戦纭烽練婵炲拑缍侀獮蹇涙偐鐠囪尙顔岄梺鍦劋缁诲倹淇婇悜鑺モ拻濞达絽鎲¢崯鐐烘煕閺冣偓閿氶柣锝囧厴閹粙宕归顐g稐闂備礁婀遍崑鎾诲礈濮橆兗缂氶柍鍝勬噺閻撴洘淇婇妶鍛殭濞寸姵绮庨幃顕€鏁愭径瀣ф嫽婵炶揪绲介幉锟犲疮閻愬绠鹃悹鍥囧懐鏆ら悗瑙勬礃缁矂鍩ユ径鎰劦妞ゆ垼妫勬禍楣冩煕濞戞ḿ鎽犻柛濠傤煼閺屻倝骞侀幒鎴濆婵炲濯崹璺侯潖閾忚瀚氶柍銉ュ暱缁犳椽鏌i姀鈺佺仭閻㈩垱顨嗙粚杈ㄧ節閸愵亶娴勯柣搴秵閸嬪棝宕㈤柆宥嗏拺閻庡湱濮甸妴鍐磼閳ь剚绗熼埀顒勫春閳ь剚銇勯幒鍡椾壕闂佽绻戠换鍫ャ€佸鑸垫櫜濠㈣泛锕崬鍫曟⒑閸濆嫭宸濋柛鐘查叄閸┾偓妞ゆ巻鍋撴い顓犲厴瀵鈽夐姀鐘靛姶闂佸憡鍔楅崑鎾绘偩閸忚偐绠鹃悗鐢登归~鎺楁煕閹板墎绋婚柡鍌楀亾闂傚倷鑳剁划顖炲礉閺囩儐鍤曢柛顐f礃閺咁剛鈧箍鍎遍ˇ浼存偂濞戞ǜ鈧帒顫濋浣哥獩闂佸憡锕幏锟�-TR
 [闂傚倸鍊搁崐鎼佸磹閹间礁纾归柣鎴eГ閸婂潡鏌ㄩ弴妤€浜惧銈庝簻閸熸潙鐣疯ぐ鎺濇晪闁告侗鍨伴弫鎼佹⒒娓氣偓閳ь剛鍋涢懟顖涙櫠閹殿喚纾奸弶鍫涘妼濞搭喗顨ラ悙瀛樺磳妤犵偞甯掗埞鎴﹀醇濠靛洤鈧垶姊婚崒娆愮グ妞ゆ洘鐗犲畷瑙勫鐎涙ê鍓归梺绋跨灱閸嬫稓绮婚弽銊х闁糕剝蓱閹嫰鏌℃担鍛婎棦闁哄本绋撴禒锔炬嫚濞村浜鹃柡宥庡亞閻牊銇勯幇鍫曟闁抽攱鍨块弻銈嗘叏閹邦兘鍋撻弴鐔哄ⅰ婵犵數鍋涢悺銊у垝閸垹鍨濇繛鍡楃箳閺嗭附绻濋棃娑欙紞闁告艾顑呴…璺ㄦ崉閻氬瓨鏁惧┑鈥虫▕閸撶喎顫忛搹鍦煓閻犳亽鍔庢导鍥⒑缁嬫鍎戦柛瀣ㄥ€曢悾鐑藉箣閿旇姤娅滈梺鍛婂搸閸婃洜绱炴繝鍥ф瀬闁圭増婢橀悙濠囨煏婵炲灝鍔滈柣锝庡墰缁辨捇宕掑▎鎺濆敼闂佺ǹ顑嗛幑鍥蓟濞戙垹绠涢柕濠忛檮濠㈡挻绻涚€涙ḿ鐭嬬紒顔芥崌瀵鎮㈤悡搴$€銈嗘⒒閳峰牊绂掓ィ鍐╃厽閹兼番鍨婚崯鏌ユ煙閸戙倖瀚�]LM324闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偞鐗犻、鏇氱秴闁搞儺鍓﹂弫鍐煥閺囨浜鹃梺姹囧€楅崑鎾舵崲濠靛洨绡€闁稿本绮岄。铏圭磽娴f彃浜炬繝銏e煐閸旀牠鎮″☉姘e亾楠炲灝鍔氬Δ鐘虫倐閻涱噣寮介妸銈囩畾濡炪倖鍔х紞鍥嚀閸ф鐓涢悘鐐额嚙婵倿鏌熼鍝勨偓婵嗙暦閹烘垟妲堟慨妤€妫旂槐锟�4~20mA闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偞鐗犻、鏇氱秴闁搞儺鍓氶悞鑲┾偓骞垮劚閹虫劙鏁嶉悢鍏尖拺缁绢厼鎳忚ぐ褏绱掗悩鍐茬仼缂侇喖顭烽、娑㈡倷鐎电ǹ寮抽梻浣虹帛濞叉牠宕愰崷顓涘亾濮樼偓瀚�1~5V闂傚倸鍊搁崐鎼佸磹閹间礁纾归柣鎴eГ閸婂潡鏌ㄩ弴鐐测偓褰掑磿閹寸姵鍠愰柣妤€鐗嗙粭鎺楁煕閵娿儱鈧骞夐幖浣瑰亱闁割偅绻勯悷鏌ユ⒑缁嬪尅榫氶柛鈺傜墵楠炲牓濡搁妷搴e枑瀵板嫮绮欓幐搴″壍闂傚倷鐒﹀鍧楀储婵傚憡鍋嬮柟鎹愵嚙閽冪喖鏌曟繛鐐珕闁稿妫濋弻娑氫沪閸撗€妲堝銈呴獜閹凤拷
 [闂傚倸鍊搁崐鎼佸磹閹间礁纾归柣鎴eГ閸婂潡鏌ㄩ弴妤€浜惧銈庝簻閸熸潙鐣疯ぐ鎺濇晪闁告侗鍨伴弫鎼佹⒒娓氣偓閳ь剛鍋涢懟顖涙櫠閹殿喚纾奸弶鍫涘妼濞搭喗顨ラ悙瀛樺磳妤犵偞甯掗埞鎴﹀醇濠靛洤鈧垶姊婚崒娆愮グ妞ゆ洘鐗犲畷瑙勫鐎涙ê鍓归梺绋跨灱閸嬫稓绮婚弽銊х闁糕剝蓱閹嫰鏌℃担鍛婎棦闁哄本绋撴禒锔炬嫚濞村浜鹃柡宥庡亞閻牊銇勯幇鍫曟闁抽攱鍨块弻銈嗘叏閹邦兘鍋撻弴鐔哄ⅰ婵犵數鍋涢悺銊у垝閸垹鍨濇繛鍡楃箳閺嗭附绻濋棃娑欙紞闁告艾顑呴…璺ㄦ崉閻氬瓨鏁惧┑鈥虫▕閸撶喎顫忛搹鍦煓閻犳亽鍔庢导鍥⒑缁嬫鍎戦柛瀣ㄥ€曢悾鐑藉箣閿旇姤娅滈梺鍛婂搸閸婃洜绱炴繝鍥ф瀬闁圭増婢橀悙濠囨煏婵炲灝鍔滈柣锝庡墰缁辨捇宕掑▎鎺濆敼闂佺ǹ顑嗛幑鍥蓟濞戙垹绠涢柕濠忛檮濠㈡挻绻涚€涙ḿ鐭嬬紒顔芥崌瀵鎮㈤悡搴$€銈嗘⒒閳峰牊绂掓ィ鍐╃厽閹兼番鍨婚崯鏌ユ煙閸戙倖瀚�]LM386婵犵數濮烽弫鍛婃叏閻戝鈧倿顢欓悙顒夋綗闂佸搫娲㈤崹鍦缂佹ḿ绠鹃柟瀵稿剳閸忣剟鏌ら弶鎸庡仴鐎殿喖鐖煎畷鐓庮潩椤撶喓褰呴梻浣规偠閸斿秶鎹㈤崘顔嘉﹂柛鏇ㄥ灠閸愨偓濡炪倖鍔﹀鈧繛宀婁邯濮婅櫣绮欓崠鈥充紣闂佽绻戝畝鍛婁繆閻㈢ǹ绀嬫い鏍ㄦ皑椤斿﹪鎮楅獮鍨姎婵炲眰鍊栨穱濠囨嚍閵壯呯槇濠电偛鐗嗛悘婵嬫倶閿熺姵鐓欓柛娑橈工閳绘洜鈧鍠栭…鐑藉箖閵忋倖鍋傞幖杈剧秵閸炲綊姊绘笟鈧埀顒佺☉瀹撳棙绻涙担鍐插暊閺嬫梹銇勯幘璺哄壉婵炴挸顭烽弻鏇㈠醇濠靛浂妫¢梺缁樻尪閸庣敻寮婚妸鈺佸嵆闁靛ǹ鍊濋崑妤呮倵濞堝灝鏋︽い鏇嗗洤鐓″璺号堥崼顏堟煕濞戝崬鐏℃繝銏″灴濮婄粯鎷呴悜妯烘畬闂佽绻戠换鍫濈暦椤栫儐鏁冮柨鏇楀亾缂佲偓閸儲鍋i弶鐐村椤掔喐绻涢幘鎰佺吋闁哄本娲熷畷鐓庘攽閸℃ɑ顔勯梻浣告啞濮婂湱鍒掗幘璇茶摕闁绘柨鍚嬮崑锟犳煟濡も偓閻楀﹪骞冨▎蹇f富闁靛牆妫欑粚璺ㄧ磽瀹ュ嫮鍔嶅ǎ鍥э躬楠炴牗鎷呴崫銉ュ箰濠电偠鎻紞鈧繛鍜冪秮瀵櫕瀵肩€涙ḿ鍘介梺缁樻煥閹芥粓鎯屾繝鍐︿簻闁瑰瓨绻冮ˉ鐘电磼椤旂⒈鍎忔い鎾冲悑瀵板嫮鈧綆鍋呴悵鍐测攽閻橆喖鐏辨繛澶嬬洴椤㈡牠宕堕鈧崒銊╂⒑椤掆偓缁夌敻鍩涢幋锔界厵缂佸瀵ч幑锝囩磼閻樿櫕宕岄柡灞剧洴閹倖鎷呴梹鎰嚬濠电儑绲藉ú銈夋晝閵壯呯处濞寸姴顑呭婵嗏攽閻樻彃鈧绱撻幘缈犵箚闁绘劦浜滈埀顒佺墵閹囧箻鐠囪尙锛欓梺鍝勭▉閸嬧偓闁稿鎸搁~婵嬫倷椤掆偓椤忥拷
 [闂傚倸鍊搁崐鎼佸磹閹间礁纾归柣鎴eГ閸婂潡鏌ㄩ弴妤€浜惧銈庝簻閸熸潙鐣疯ぐ鎺濇晪闁告侗鍨伴弫鎼佹⒒娓氣偓閳ь剛鍋涢懟顖涙櫠閹殿喚纾奸弶鍫涘妼濞搭喗顨ラ悙瀛樺磳妤犵偞甯掗埞鎴﹀醇濠靛洤鈧垶姊婚崒娆愮グ妞ゆ洘鐗犲畷瑙勫鐎涙ê鍓归梺绋跨灱閸嬫稓绮婚弽銊х闁糕剝蓱閹嫰鏌℃担鍛婎棦闁哄本绋撴禒锔炬嫚濞村浜鹃柡宥庡亞閻牊銇勯幇鍫曟闁抽攱鍨块弻銈嗘叏閹邦兘鍋撻弴鐔哄ⅰ婵犵數鍋涢悺銊у垝閸垹鍨濇繛鍡楃箳閺嗭附绻濋棃娑欙紞闁告艾顑呴…璺ㄦ崉閻氬瓨鏁惧┑鈥虫▕閸撶喎顫忛搹鍦煓閻犳亽鍔庢导鍥⒑缁嬫鍎戦柛瀣ㄥ€曢悾鐑藉箣閿旇姤娅滈梺鍛婂搸閸婃洜绱炴繝鍥ф瀬闁圭増婢橀悙濠囨煏婵炲灝鍔滈柣锝庡墰缁辨捇宕掑▎鎺濆敼闂佺ǹ顑嗛幑鍥蓟濞戙垹绠涢柕濠忛檮濠㈡挻绻涚€涙ḿ鐭嬬紒顔芥崌瀵鎮㈤悡搴$€銈嗘⒒閳峰牊绂掓ィ鍐╃厽閹兼番鍨婚崯鏌ユ煙閸戙倖瀚�]936闂傚倸鍊搁崐鎼佸磹閹间礁纾归柣鎴eГ閸ゅ嫰鏌涢幘鑼槮闁搞劍绻冮妵鍕冀閵娧呯厑闂佸搫妫欑划鎾诲蓟閻斿吋鍊绘慨妤€妫欓悾鐑芥⒑閸濆嫭鍣虹紒璇茬墦瀵寮撮姀鐘诲敹濠电娀娼ч悧鍡涖€傞懜鐢电閻庢稒岣块惌濠勭磽瀹ュ拑韬€殿喖顭烽幃銏ゆ惞閸︻叏绱查梻渚€娼х换鎺撴叏閻㈠憡鍊剁€广儱顦伴埛鎴犵磼鐎n偒鍎ラ柛搴$Ч閺屾盯寮捄銊у姱濠电姭鍋撳〒姘e亾婵﹥妞介獮鎰償閿濆洨鏆ら梻浣烘嚀閸熷潡鏌婇敐鍜佸殨闁规儼濮ら崑鍕煕韫囨艾浜归柛妯圭矙濮婃椽宕崟顐熷亾閸︻厸鍋撶粭娑樻搐閸氬綊鏌涢妷顔煎闁绘挻鐩幃姗€鎮欓幓鎺嗘寖闂佸疇妫勯ˇ鐢稿箺閸洘鏅插璺侯儑閸樹粙姊虹憴鍕姢闁哥喎娼¢、妤呭閵堝棛鍘介棅顐㈡搐濞撮绮i弮鈧幈銊︾節閸涱噮浠╅梺褰掝棑婵炩偓闁搞劑绠栭幖褰掝敃閵堝嫰鍋楅梻鍌氬€烽悞锔锯偓绗涘厾娲晜閻e矈娲稿┑鐘诧工閻楀﹪宕戦埡鍛厽闁硅揪绲鹃ˉ澶愭⒑閸楃偞鍠橀柡宀嬬節瀹曞爼鍩℃担鍦偓鎯р攽閻愬弶鍣烽柛銊ㄦ椤繘鎼圭憴鍕/闂侀潧枪閸庢煡鎮甸姀銈嗏拺闁荤喐婢樺▓鈺呮煙閸戙倖瀚�
 [闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣捣閻棗銆掑锝呬壕濡ょ姷鍋涢ˇ鐢稿极閹剧粯鍋愭い鏃傛嚀娴滈箖鏌涢幇闈涙灈妤犵偑鍨烘穱濠囨倷鐎涙ḿ顦ラ梺鍦拡閸嬪﹪濡堕鍛嚤闁哄鍨归ˇ鏉款渻閵堝棗绗傞柤铏劶閵囨劙宕稿Δ浣叉嫽婵炶揪绲介幉锟犲箚閸垻纾奸悗锝傛櫇缁愭梻鈧娲忛崹浠嬪箠閺嶎厼鐓橀柟顖嗗倸顥氭繝娈垮枟閿曗晠宕滈敃鈧嵄闁归棿鐒﹂幊姘舵煛瀹ュ骸骞楅柣鎾卞劦閺岋繝宕堕妸锔炬闂佸憡鏌ㄧ粔鍫曟儉椤忓牜鏁囬柣鎰版涧閻撶喖姊洪崫鍕拱婵炶尙鍠庨悾閿嬬附閸撳弶鏅濆銈庡亽閸樺ジ寮搁崼銉︹拻濞达絽鎲¢幆鍫ユ煟椤撶儐妲洪柟骞垮灩閳规垿宕卞▎鎰啎闂備礁婀遍崕銈夈€冮崱娑樼柧婵犲﹤鐗婇悡銏′繆椤栨瑨顒熸俊顖氱墕闇夌痪顓㈡敱鐎氾拷]闂傚倸鍊搁崐鎼佸磹閻戣姤鍤勯柛顐f礀绾惧潡鏌i姀鈶跺湱绮堥崼鐔虹瘈闂傚牊绋撴晶娑㈡煛閸℃ḿ鐭掗柡宀€鍠栭幃婊冾潨閸℃ḿ鏆ョ紓鍌欒兌婵攱绻涢埀顒侇殽閻愬澧懣鎰亜閹哄棗浜炬繝纰樷偓鑼煓闁哄矉绻濆畷顏呮媴缁嬪簱鎷梻浣告惈閻ジ宕伴弽顓炶摕闁搞儺鍓氶弲婵嬫煃瑜滈崜鐔风暦閵忋倕绠绘い鏃傛櫕閸樻悂鏌f惔顖滅У闁稿妫欓弲鍫曟偨閸涘﹦鍘搁柣蹇曞仧閸嬫挾绮堟径宀€纾奸柣妯虹-濞叉潙鈹戦敍鍕効妞わ附鎸抽弻銊モ槈濮橆剚鐏堝┑顔硷攻濡炶棄螞閸愩劉妲堟慨姗嗗墻閺夋悂姊绘担鐑樺殌闁规祴鍓濈换娑欑節閸モ晛绁﹂梺鍛婂姦閸樿绂嶈ぐ鎺撶厵闁绘垶蓱鐏忣厼霉閻樿尙绠婚柡宀嬬稻閹棃濮€閳垛晛顫岄梻浣瑰绾板秹濡甸崟顔剧杸闁靛绠戦锟�+濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柣鎴f閺嬩線鏌熼梻瀵割槮缁炬儳顭烽弻锝夊箛椤掍焦鍎撶紓浣哄С閸楁娊寮婚悢铏圭<闁靛繒濮甸悘鍫ユ⒑濮瑰洤鈧宕戦幘鑸靛床婵炴垯鍨圭粻锝夋煟閹邦垰鐨洪柛鏂惧嵆濮婅櫣绮欏▎鎯у壉闂佸湱鎳撳ú顓㈢嵁閸℃稑纾奸柣鎰絻缁愭稒绻濋悽闈浶㈤柛瀣鐎靛ジ鏁撻敓锟�+闂傚倸鍊搁崐鎼佸磹閹间礁纾归柣鎴eГ閸ゅ嫰鏌涢锝嗙8闁逞屽厸閻掞妇鎹㈠┑瀣妞ゆ挾濯Σ鍗炩攽閻愬瓨缍戦柛姘儏宀e灝鈻庨幋婵愭闂佺鍕垫畷闁绘挻鐟х槐鎾存媴闂堟稓浠煎┑鐐叉噺閿曘垽寮婚埄鍐╁闁告稑饪村Λ锕傛⒑閸濆嫮鐒跨紓宥勭椤曪綁顢楅崟顐㈢€銈嗘濡嫰鍩€椤掑鐏︽慨濠呮缁瑩宕稿Δ濞惧亾濡ゅ啰纾煎璺猴功缁夎櫣鈧鍠涢褔鍩ユ径鎰潊闁绘ɑ褰冪粊顕€姊绘笟鈧ḿ褎鐏欓梺绋垮婢瑰棝鎳為柆宥嗗殥闁靛牆娲ㄩ敍婵囩箾鏉堝墽绋荤憸鏉垮暞缁傚秵銈i崘鈹炬嫼闁荤姵浜介崝灞解枍閹扮増鐓欓柛鎴欏€栫€氾拷
 [闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾剧懓顪冪€n亜顒㈡い鎰矙閺屻劑鎮㈤崫鍕戙垻鐥幆褜鐓奸柡灞剧☉閳藉宕¢悙鎻掝劀婵犵數鍋涢惃鐑藉疾閻樿钃熼柡鍥╁枔缁犻箖鏌i幇闈涘闁绘繃妫冨娲传閸曢潧鍓紓浣藉煐瀹€绋款嚕婵犳艾鍗抽柕蹇曞█閸炶泛鈹戦悩鑼粵闁告梹鐗楅弲銉╂⒒閸屾瑨鍏岄弸顏呫亜閹存繂鏆g€规洘绻堥獮瀣攽閹邦厾绋佸┑鐘垫暩婵敻鎳濇ィ鍐╃厑闁搞儺鍓氶悡鐔兼煛閸愶絽浜炬繛瀛樼矆缁瑩宕洪埀顒併亜閹哄秶顦︽繛鎼櫍閺屸€崇暆閳ь剟宕伴弽顓炵濠电姴鍟欢鐐烘倶閻愬绮¢柛銉e妿閸橀潧顪冮妶鍡樷拹妞ゆ垶鐟ュ玻鍧楀箛閻楀牏鍘甸悗鐟板婢ф宕甸崶顒佺厵妞ゆ梹鍎抽崢瀛橆殽閻愯尙效妞ゃ垺宀稿畷銊╊敊瑜忛崑娑㈠煘閹达附鏅柛鏇ㄥ亗閺夘參姊虹粙鍖℃敾闁绘濞€閻涱噣骞囬弶璺啇婵炶揪绲介幗婊堟偪閸涘瓨鈷戦柣鎰閸斻倗绱掗悜鈺佷壕缂傚倸鍊搁崐鍦枈瀹ュ桅闁告洦鍠氶悿鈧梺瑙勫礃濞夋盯鍩涢崼銉︹拺閺夌偞澹嗛ˇ锔剧磼婢跺本鏆╅柟骞垮灩閳藉濮€閻樿尪鈧灝鈹戦埥鍡楃仩闁圭⒈鍋夐·鍌炴⒒閸屾瑨鍏岄弸顏呫亜閹寸偛鐏存鐐茬箻閺佹捇鏁撻敓锟�]S7-200PLC闂傚倸鍊搁崐鎼佸磹閹间礁纾归柣鎴eГ閸婂潡鏌ㄩ弴鐐测偓褰掑磿閹寸姵鍠愰柣妤€鐗嗙粭鎺旂磼閳ь剚寰勭仦绋夸壕闁稿繐顦禍楣冩⒑闁偛鑻晶鎾煕閳规儳浜炬俊鐐€栫敮濠勭矆娓氣偓瀹曠敻顢楅埀顒勬箒濠电姴锕ら幊搴㈢鏉堫煈娈介柣鎰綑婵秵顨ラ悙鏉戠瑨閾绘牠鏌嶈閸撶喖鏁愰悙鍝勫窛閻庢稒岣块崢顏堟⒑閸撴彃浜濈紒璇插暣钘熸繝濠傜墛閻撴洟鏌熼悙顒佺稇闁崇粯娲橀幈銊︾節閸涱噮浠╃紓浣介哺鐢帟鐏掗梺缁樺灍閺呮粎鈧氨绮换婵堝枈濡嘲浜鹃柛鎰皺妤犲洭鏌i姀鈺佺伈缂佺粯绻堥幃浼搭敊鐠恒劎鏉稿┑鐐村灱妞存悂寮插┑瀣拺闁规儼濮ら弫閬嶆煠閻熸澘鈷旂紒杈╁仦缁绘繈宕惰閻e搫顪冮妶鍛闁绘妫楅蹇撯攽閸ャ儰绨婚梺鍝勫暙閸婄敻骞忛垾瓒佸湱娑甸柨瀣伓 S7_2
 [闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偞鐗犻、鏇氱秴闁搞儺鍓氶悞鑲┾偓骞垮劚閹虫劙鏁嶉悢鍏尖拺闁革富鍘奸。鍏肩節閵忊槄鑰跨€规洖缍婂畷鎺戔槈閺嶏妇鐩庨梻浣告惈缁夋煡宕濆畝鍕€跨憸鐗堝笚閻撴盯鎮楅敐搴濋偗闁告瑥瀚伴弻锛勪沪閻愵剛顦紓浣哄У缁嬫捇鍩€椤掑﹦绉靛ù婊呭仦鐎靛ジ宕熼娑氬幗闂婎偄娲﹂幐鍓х不閹惰姤鐓涘ù锝呭閻撹偐鈧鍠栭…閿嬩繆閹间礁鐓涢柛灞剧煯缁ㄤ粙姊绘担鍛靛綊寮甸鍌滅煓闁硅揪瀵岄弫鍌炴煥閻曞倹瀚�]S7-200闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗ù锝夋交閼板潡姊洪鈧粔鎾磼閵娧勫枑闁哄啫鐗嗙粻鏍ㄧ箾瀹割喕绨婚幆鐔兼⒑鐎圭姵銆冮柤鍐茬埣椤㈡瑩宕堕妸褏鐦堥梺姹囧灲濞佳勭墡闂備胶鍘х紞濠勭不閺嵮呮殾婵炲棙鎸婚崑鎰磽娴h疮缂氶柛姗€浜跺铏规兜閸涱厾鍔烽梺鍛婃煥缁夋挳鍩㈠澶婄倞闁靛⿵绲肩花濠氭⒑閸愬弶鎯堥柛鐕佸亰瀹曘垽骞橀鐣屽幍濡炪倖姊归娆忈缚閹扮増鐓欑€瑰嫮澧楅崵鍥┾偓瑙勬磸閸斿秶鎹㈠┑瀣窛妞ゆ牭绲鹃弫銈囩磽閸屾艾鈧悂宕愭搴㈠闁哄被鍎辩壕濠氭煙閸撗呭笡闁绘挻娲熼弻锟犲炊閵夈儱顬堥梺璇查獜缁绘繈寮婚敐澶婄閻庢稒岣块ˇ浼存⒑缂佹ɑ鎯勯柛瀣工閻g兘鎳滃▓鎸幮ч柟鍏肩暘閸ㄨ绂掕ぐ鎺撯拻濞达絽鎲¢崯鐐烘嫅鏉堚晝纾兼い鏂垮悑閹癸絾淇婇崣澶婂妤犵偞甯掕灃闁逞屽墰缁鎮㈤崗鐓庘偓鐢告煥濠靛棝顎楀ù婊勭矋閵囧嫯绠涢妷锕€顏�,STEP7
 [闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偞鐗犻、鏇氱秴闁搞儺鍓氶悞鑲┾偓骞垮劚閹虫劙鏁嶉悢鍏尖拺闁革富鍘奸。鍏肩節閵忊槄鑰跨€规洖缍婂畷鎺戔槈閺嶏妇鐩庨梻浣告惈缁夋煡宕濆畝鍕€跨憸鐗堝笚閻撴盯鎮楅敐搴濋偗闁告瑥瀚伴弻锛勪沪閻愵剛顦紓浣哄У缁嬫捇鍩€椤掑﹦绉靛ù婊呭仦鐎靛ジ宕熼娑氬幗闂婎偄娲﹂幐鍓х不閹惰姤鐓涘ù锝呭閻撹偐鈧鍠栭…閿嬩繆閹间礁鐓涢柛灞剧煯缁ㄤ粙姊绘担鍛靛綊寮甸鍌滅煓闁硅揪瀵岄弫鍌炴煥閻曞倹瀚�]ModbusPoll闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣捣閻棗銆掑锝呬壕濡ょ姷鍋涢ˇ鐢稿极瀹ュ绀嬫い鎰╁灮娴滀即鏌f惔鈥冲辅闁稿鎹囬弻娑㈠即閻愬吀绮甸梺鍝勬噷閸ㄨ棄顫忛搹鍦<婵☆垳鍘ч埅褰掓⒑缂佹ḿ鈯曢柣顓燁劘sSalve闂傚倸鍊搁崐鎼佸磹閹间礁纾归柣鎴eГ閸ゅ嫰鏌ら崫銉︽毄濞寸姵鑹鹃埞鎴炲箠闁稿﹥顨嗛幈銊р偓闈涙啞瀹曞弶鎱ㄥ璇蹭壕闂佺粯渚楅崰娑氱不濞戞ǚ妲堟繛鍡樺姈椤忕喖姊绘担鑺ョ《闁革綇绠撻獮蹇涙晸閿燂拷
 [闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偞鐗犻、鏇氱秴闁搞儺鍓氶悞鑲┾偓骞垮劚閹虫劙鏁嶉悢鍏尖拺闁革富鍘奸。鍏肩節閵忊槄鑰跨€规洖缍婂畷鎺戔槈閺嶏妇鐩庨梻浣告惈缁夋煡宕濆畝鍕€跨憸鐗堝笚閻撴盯鎮楅敐搴濋偗闁告瑥瀚伴弻锛勪沪閻愵剛顦紓浣哄У缁嬫捇鍩€椤掑﹦绉靛ù婊呭仦鐎靛ジ宕熼娑氬幗闂婎偄娲﹂幐鍓х不閹惰姤鐓涘ù锝呭閻撹偐鈧鍠栭…閿嬩繆閹间礁鐓涢柛灞剧煯缁ㄤ粙姊绘担鍛靛綊寮甸鍌滅煓闁硅揪瀵岄弫鍌炴煥閻曞倹瀚�]STEP7濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柣鎴濐潟閳ь剙鍊块幐濠冪珶閳哄绉€规洏鍔戝鍫曞箣濠靛牃鍋撻鐑嗘富闁靛牆鎳愮粻浼存煟濡も偓濡稓鍒掗崼銉ラ唶闁绘棁娅i惁鍫ユ⒒閸屾氨澧涚紒瀣尰閺呭爼骞囬悧鍫㈠幈闁诲函缍嗛崑鍛焊椤撶喆浜滄い鎰剁悼缁犵偞銇勯姀鈽呰€块柟顔规櫊瀹曟﹢宕f径灞介叡闂傚倸鍊搁崐椋庣矆娓氣偓楠炴牠顢曢敂钘夋濡炪倖鐗滈崑鐐哄磿濡も偓闇夐柨婵嗙墛椤忕姴鈽夐幘宕囆g紒缁樼洴楠炲鈻庤箛鏇氭偅婵犵妲呴崑鍛存晝閵忋倕绠栫憸鐗堝笒缁犳帡鏌熼悜妯虹仴妞ゎ剙顦靛铏光偓鍦閸ゆ瑩鏌ゅú璇茬仸闁糕晝鍋ら獮瀣晜閽樺鍋撴搴樺亾閻熸澘顥忛柛鐘崇墪閳绘捇鎳滈悽鐢电槇濠电偛鐗嗛悘婵嬪几濞嗘挻鐓曟俊銈傚亾闁哥喎娼¢幃楣冩倻閽樺鐤€闂佸搫顦悘婵嗙暤閸℃稒鈷戠紓浣光棨椤忓牆绠规い鎰╁灮濮e牓姊婚崒姘偓宄懊归崶褉鏋栭柡鍥ュ灩闂傤垶鏌ㄩ弴鐐测偓鍝ョ不椤栫偞鐓ラ柣鏇炲€圭€氾拷 Smart_
 [闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偞鐗犻、鏇氱秴闁搞儺鍓氶悞鑲┾偓骞垮劚閹虫劙鏁嶉悢鍏尖拺闁革富鍘奸。鍏肩節閵忊槄鑰跨€规洖缍婂畷鎺戔槈閺嶏妇鐩庨梻浣告惈缁夋煡宕濆畝鍕€跨憸鐗堝笚閻撴盯鎮楅敐搴濋偗闁告瑥瀚伴弻锛勪沪閻愵剛顦紓浣哄У缁嬫捇鍩€椤掑﹦绉靛ù婊呭仦鐎靛ジ宕熼娑氬幗闂婎偄娲﹂幐鍓х不閹惰姤鐓涘ù锝呭閻撹偐鈧鍠栭…閿嬩繆閹间礁鐓涢柛灞剧煯缁ㄤ粙姊绘担鍛靛綊寮甸鍌滅煓闁硅揪瀵岄弫鍌炴煥閻曞倹瀚�]Modbus闂傚倸鍊搁崐鎼佸磹瀹勬噴褰掑炊瑜忛弳锕傛煕椤垵浜濋柛娆忕箻閺岀喓绱掗姀鐘崇彯闂佽桨绀佺€氫即寮诲☉妯锋婵炲棙鍔楃粙鍥⒑濮瑰洤鈧倝宕抽敐澶婅摕闁绘梻鍘х粻姘舵煛婢跺﹥娅囬柟鍓х帛閻撴洟骞栫划瑙勵潐闁衡偓婵犳碍鐓忛柛銉戝喚浼冮悗娈垮枙缁瑦淇婂宀婃Ь闂佺粯鎸撮崑鎾绘⒒閸屾瑧鍔嶉柟顔肩埣瀹曟繂顓奸崶銊ュ簥闂佸壊鍋侀崕閬嶆嫅閻斿摜绠鹃柟瀛樼懃閻忊晝绱掗悩鐢靛笡濞e洤锕俊鍫曞磼濮橆偄顥氶梻鍌欒兌鏋柨鏇樺妼閻g兘鎮界粙璺ㄧ枀闂佸湱铏庨崰妤呭疾閹间焦鐓ラ柣鏇炲€圭€氾拷 v1.024 缂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁惧墽鎳撻—鍐偓锝庝簻椤掋垺銇勯幇顏嗙煓闁哄本娲熷畷鐓庘攽閹邦厜锔剧磽娴e搫顎岄柛銊ョ埣瀵濡搁埡鍌氫簽闂佺ǹ鏈粙鎴︻敂閿燂拷
 [闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偞鐗犻、鏇氱秴闁搞儺鍓氶悞鑲┾偓骞垮劚閹虫劙鏁嶉悢鍏尖拺闁革富鍘奸。鍏肩節閵忊槄鑰跨€规洖缍婂畷鎺戔槈閺嶏妇鐩庨梻浣告惈缁夋煡宕濆畝鍕€跨憸鐗堝笚閻撴盯鎮楅敐搴濋偗闁告瑥瀚伴弻锛勪沪閻愵剛顦紓浣哄У缁嬫捇鍩€椤掑﹦绉靛ù婊呭仦鐎靛ジ宕熼娑氬幗闂婎偄娲﹂幐鍓х不閹惰姤鐓涘ù锝呭閻撹偐鈧鍠栭…閿嬩繆閹间礁鐓涢柛灞剧煯缁ㄤ粙姊绘担鍛靛綊寮甸鍌滅煓闁硅揪瀵岄弫鍌炴煥閻曞倹瀚�]Modscan32闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣捣閻棗銆掑锝呬壕濡ょ姷鍋涢ˇ鐢稿极瀹ュ绀嬫い鎰╁灮娴滀即鏌f惔鈥冲辅闁稿鎹囬弻娑㈠即閻愬吀绮甸梺鍝勬噷閸ㄨ棄顫忛搹鍦<婵☆垳鍘ч埅褰掓⒑缂佹ḿ鈯曠痪顓犫偓鎶�32,modb
 [闂傚倸鍊搁崐鎼佸磹閹间礁纾归柣鎴eГ閸婂潡鏌ㄩ弴妤€浜惧銈庝簻閸熸潙鐣疯ぐ鎺濇晪闁告侗鍨伴弫鎼佹⒒娓氣偓閳ь剛鍋涢懟顖涙櫠閹殿喚纾奸弶鍫涘妼濞搭喗顨ラ悙瀛樺磳妤犵偞甯掗埞鎴﹀醇濠靛洤鈧垶姊婚崒娆愮グ妞ゆ洘鐗犲畷瑙勫鐎涙ê鍓归梺绋跨灱閸嬫稓绮婚弽銊х闁糕剝蓱閹嫰鏌℃担鍛婎棦闁哄本绋撴禒锔炬嫚濞村浜鹃柡宥庡亞閻牊銇勯幇鍫曟闁抽攱鍨块弻銈嗘叏閹邦兘鍋撻弴鐔哄ⅰ婵犵數鍋涢悺銊у垝閸垹鍨濇繛鍡楃箳閺嗭附绻濋棃娑欙紞闁告艾顑呴…璺ㄦ崉閻氬瓨鏁惧┑鈥虫▕閸撶喎顫忛搹鍦煓閻犳亽鍔庢导鍥⒑缁嬫鍎戦柛瀣ㄥ€曢悾鐑藉箣閿旇姤娅滈梺鍛婂搸閸婃洜绱炴繝鍥ф瀬闁圭増婢橀悙濠囨煏婵炲灝鍔滈柣锝庡墰缁辨捇宕掑▎鎺濆敼闂佺ǹ顑嗛幑鍥蓟濞戙垹绠涢柕濠忛檮濠㈡挻绻涚€涙ḿ鐭嬬紒顔芥崌瀵鎮㈤悡搴$€銈嗘⒒閳峰牊绂掓ィ鍐╃厽閹兼番鍨婚崯鏌ユ煙閸戙倖瀚�]89c51闂傚倸鍊搁崐鎼佸磹閹间礁纾归柣鎴eГ閸ゅ嫰鏌ら崫銉︽毄濞寸姵姘ㄧ槐鎾诲磼濞嗘帒鍘$紓渚囧櫘閸ㄨ泛鐣峰┑鍡忔瀻闁圭儤鎼╁Λ銊╂⒒閸屾艾鈧娆㈤敓鐘茬婵炲棙鍨归惌鎾绘煟閵忊懚鍦婵犳碍鐓熼柡鍌涘閹插摜绱掗悩鑽ょ暫闁哄瞼鍠撻埀顒佺⊕宀e潡骞婇崘顔界厽闊洤锕ュ▍鍡椙庨崶褝韬い銏℃礋閺佹劘绠涘锝呬壕闁圭ǹ瀛╅崣蹇撯攽閻樻彃鏆為柕鍥ㄧ箖閵囧嫰濮€閳╁啰顦伴梺杞扮劍閸旀瑥鐣烽崼鏇炵濞达綁顥撶粈鍐⒒閸屾艾鈧悂宕愰幖浣哥9缂佸顕冲☉妯滄棃宕橀鍡╂Ц濠电姷鏁告慨鏉懨洪妶澶嬪珔闁绘柨鍚嬮悡銉︾節闂堟稒锛嶆俊顖氱墦閺屸剝鎷呯粙搴撳亾閸ф钃熸繛鎴欏灩閻掓椽鏌涢幇顔间壕闁伙絿鍏樺铏圭磼濡偐绱伴梺鎼炲姀瀹曢潧危閹版澘绠婚悗娑櫭鎾寸箾鐎电ǹ孝妞ゆ垵鎳橀獮妤呮偨閸涘ň鎷虹紓鍌欑劍鐪夌紒鎯伴哺娣囧﹪宕f径宀€娼塼ues
 [闂傚倸鍊搁崐鎼佸磹閹间礁纾归柣鎴eГ閸婂潡鏌ㄩ弴妤€浜惧銈庝簻閸熸潙鐣疯ぐ鎺濇晪闁告侗鍨伴弫鎼佹⒒娓氣偓閳ь剛鍋涢懟顖涙櫠閹殿喚纾奸弶鍫涘妼濞搭喗顨ラ悙瀛樺磳妤犵偞甯掗埞鎴﹀醇濠靛洤鈧垶姊婚崒娆愮グ妞ゆ洘鐗犲畷瑙勫鐎涙ê鍓归梺绋跨灱閸嬫稓绮婚弽銊х闁糕剝蓱閹嫰鏌℃担鍛婎棦闁哄本绋撴禒锔炬嫚濞村浜鹃柡宥庡亞閻牊銇勯幇鍫曟闁抽攱鍨块弻銈嗘叏閹邦兘鍋撻弴鐔哄ⅰ婵犵數鍋涢悺銊у垝閸垹鍨濇繛鍡楃箳閺嗭附绻濋棃娑欙紞闁告艾顑呴…璺ㄦ崉閻氬瓨鏁惧┑鈥虫▕閸撶喎顫忛搹鍦煓閻犳亽鍔庢导鍥⒑缁嬫鍎戦柛瀣ㄥ€曢悾鐑藉箣閿旇姤娅滈梺鍛婂搸閸婃洜绱炴繝鍥ф瀬闁圭増婢橀悙濠囨煏婵炲灝鍔滈柣锝庡墰缁辨捇宕掑▎鎺濆敼闂佺ǹ顑嗛幑鍥蓟濞戙垹绠涢柕濠忛檮濠㈡挻绻涚€涙ḿ鐭嬬紒顔芥崌瀵鎮㈤悡搴$€銈嗘⒒閳峰牊绂掓ィ鍐╃厽閹兼番鍨婚崯鏌ユ煙閸戙倖瀚�]婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柟闂寸绾惧鏌i幇顒佹儓闁搞劌鍊块弻娑㈩敃閿濆棛顦ョ紓浣哄У婢瑰棛妲愰幒鏂哄亾閿濆骸浜剧紒鎵佹櫆缁绘稑顔忛鑽ょ泿闁搞儱鐡ㄧ换婵嬪閿濆棛銆愰梺鎸庢穿缁犳捁妫熼梺缁橆殔閻楀懐鎹㈤崱娑欑厪闁割偅绻勭粻鎶芥煕閹哄秴宓嗛柡灞剧洴閹倖鎷呴梹鎰瀳闁诲氦顫夊ú妯兼暜閳╁啩绻嗛柟闂寸閻撴盯鏌涚仦鍓х煀妤犵偛鐗撳缁樻媴閾忕懓绗¢梺鍛婃⒐閻楁洖鐜婚崹顔规瀻闁瑰搫妫楀鏀恡ues婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柟闂寸绾剧粯绻涢幋娆忕労闁轰礁顑嗛妵鍕箻鐠虹儤鐎鹃梺鍛婄懃缁绘﹢寮婚悢纰辨晬闁糕€崇箰娴滈箖姊洪崫鍕靛剱闁绘濞€瀵鏁撻悩鑼€為梺瀹犳〃缁€浣圭珶鐎n喗鈷戦柛蹇撳悑缁跺弶绻涚涵椋庣瘈鐎殿喖顭锋俊鎼佸Ψ閵忊槅娼旀繝纰樻閸垳鎷冮敂钘夘嚤闁逞屽墴濮婄粯鎷呯憴鍕╀户闂佸憡眉缁瑩骞冮悜钘夌厸闁告侗鍘鹃悾鍝勨攽鎺抽崐鏇㈠箠韫囨稑鐤鹃柡灞诲劚缁犲綊鎮楀☉娆嬬細缂佺姵锕㈤弻鈩冩媴閸︻厼鈷堢紓浣介哺鐢繝骞冨▎鎿冩晢濞达絽鎼崵鎺旂磽閸屾瑧顦︽い锕備憾瀵偊骞栨担鍝ヮ唹闂侀潧绻掓慨顓㈠绩閽樺鏀介柣妯诲絻椤掋垹顫㈤崶顒佲拻闁稿本鐟чˇ锕傛煙濞村鍋撻幇浣圭稁閻熸粎澧楃敮鍥焵椤掆偓閸燁垳鎹㈠┑瀣倞鐟滃繘鎮惧ú顏呪拺闂傚牊渚楀Σ鎾煛閸涱喚鐭掔€殿喗鐓¢獮鏍ㄦ媴閸︻厼寮抽梻浣虹帛濞叉牠宕愰崷顓涘亾濮樼偓瀚�
 [闂傚倸鍊搁崐鎼佸磹閹间礁纾归柣鎴eГ閸婂潡鏌ㄩ弴妤€浜惧銈庝簻閸熸潙鐣疯ぐ鎺濇晪闁告侗鍨伴弫鎼佹⒒娓氣偓閳ь剛鍋涢懟顖涙櫠閹殿喚纾奸弶鍫涘妼濞搭喗顨ラ悙瀛樺磳妤犵偞甯掗埞鎴﹀醇濠靛洤鈧垶姊婚崒娆愮グ妞ゆ洘鐗犲畷瑙勫鐎涙ê鍓归梺绋跨灱閸嬫稓绮婚弽銊х闁糕剝蓱閹嫰鏌℃担鍛婎棦闁哄本绋撴禒锔炬嫚濞村浜鹃柡宥庡亞閻牊銇勯幇鍫曟闁抽攱鍨块弻銈嗘叏閹邦兘鍋撻弴鐔哄ⅰ婵犵數鍋涢悺銊у垝閸垹鍨濇繛鍡楃箳閺嗭附绻濋棃娑欙紞闁告艾顑呴…璺ㄦ崉閻氬瓨鏁惧┑鈥虫▕閸撶喎顫忛搹鍦煓閻犳亽鍔庢导鍥⒑缁嬫鍎戦柛瀣ㄥ€曢悾鐑藉箣閿旇姤娅滈梺鍛婂搸閸婃洜绱炴繝鍥ф瀬闁圭増婢橀悙濠囨煏婵炲灝鍔滈柣锝庡墰缁辨捇宕掑▎鎺濆敼闂佺ǹ顑嗛幑鍥蓟濞戙垹绠涢柕濠忛檮濠㈡挻绻涚€涙ḿ鐭嬬紒顔芥崌瀵鎮㈤悡搴$€銈嗘⒒閳峰牊绂掓ィ鍐╃厽閹兼番鍨婚崯鏌ユ煙閸戙倖瀚�]51闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣捣閻棗銆掑锝呬壕濡ょ姷鍋涢ˇ鐢稿极閹剧粯鍋愭い鏃傛嚀娴滈箖鏌涢幇闈涙灈妤犵偑鍨烘穱濠囨倷鐎涙ḿ顦ラ梺鍦拡閸嬪﹪濡堕鍛嚤闁哄鍨归ˇ鏉款渻閵堝棗绗傞柤铏劶閵囨劙宕稿Δ浣叉嫽婵炶揪绲介幉锟犲箚閸垻纾奸悗锝傛櫇缁愭梻鈧娲忛崹浠嬪箠閺嶎厼鐓橀柟顖嗗倸顥氭繝娈垮枟閿曗晠宕滈敃鈧灒闁逞屽墴濮婃椽宕崟顒佹嫳缂備礁顑嗛崹鍧楀春閻愬搫绠i柨鏇楀亾妤犵偑鍨烘穱濠囧Χ閸滃啯顣奸梺璇″櫙缂嶄礁顫忕紒妯诲濞撴凹鍨辩紞濠囨⒑閸涘﹤濮囬柣蹇旂箖閹便劌鈽夊杈╋紳婵炶揪绲肩划娆撳传濞差亝鍋ㄦい鏍ㄧ矊娴犻亶鏌涢埞鎯т壕婵$偑鍊栫敮鎺楁晝閿斿墽鐭撴い鎺戝閻撴洟鏌嶉崫鍕偓缁樻櫠闁秵鐓冪憸婊堝礈濮樿埖鍋勬い鎺戝缁狀垶鏌ㄩ悤鍌涘 protues婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柟闂寸绾剧粯绻涢幋娆忕労闁轰礁顑嗛妵鍕箻鐠虹儤鐎鹃梺鍛婄懃缁绘﹢寮婚悢纰辨晬闁糕€崇箰娴滈箖姊洪崫鍕靛剱闁绘濞€瀵鏁撻悩鑼€為梺瀹犳〃缁€浣圭珶鐎n喗鈷戦柛蹇撳悑缁跺弶绻涚涵椋庣瘈鐎殿喖顭锋俊鎼佸煛閸屾矮绨介梻浣呵归張顒傜矙閹达富鏁傞柨鐕傛嫹
闂備礁鎼悧鍐磻閹剧粯鐓涢柛灞剧矊椤eジ鏌$€n亜鏆熺紒顔规櫊閺佹捇鏁撻敓锟�
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 在线帮助 - 文章列表
返回顶部
刷新页面
下到页底
晶体管查询