01 读1路或多路开关量线圈输出状态
例如 主机--->从机
主机要读取地址为01 开关量为D01 D02的输出状态
地址0000 DO寄存器数据02 {DO1寄存器输出状态为0,DO2寄存器输出状态为1}
01 01 00 00 00 02 BD CD
从机--->主机
01 01 01 02 D0 49
(第三个01为一个字节 8个bit位)02代表输出状态1 开
02:读1路或多路开关量状态输入
例如 主机--->从机
01 02 00 00 00 04 79 C9
00 00 为起始地址的bit位为0000
00 04为 读取四路开关量输入状态位
从机--->主机
01 02 01 0B E0 4F
02读取开关量状态
01 一个字节 8个bit位
0B DI寄存器内容
功能码03:读多路保持寄存器(寄存器可读可写,修改寄存器数据使用06或10功能码)
寄存器地址0002 数据 1234 十进制 4660
寄存器地址0003 数据 1111十进制 4369
寄存器地址0004 数据 2222十进制 8738
主机----PLC
01 03 00 02 00 03 A4 0B 起始地址0002 3代表0002开始 连续3个数据
PLC--主机
01 03 06 12 34 11 11 22 22 5E 43
功能码04:读多路输入寄存器(寄存器只能读取不能写入)
功能码05:写1路开关量输出
主机----PLC
FF00 为控制继电器合
0000为控制继电器分
01 05 00 00 FF 00 8C 3A
地址为0000 FF00为合闸
PLC--主机
返回报文格式与主机一致
例二:开关量输出点DO2,其当前状态为“合”,主机要控制该路继电器“分”。
01 05 00 01 0000 9C0A
0001为地址 0000为分闸
从机(PDM)响应返回的报文格式:
与主机发送的报文格式及数据内容完全相同。
功能码06:写单路寄存器
01 06 00 0B 1E 34 F0 7F
000B为寄存器地址 1E 34为要写入的数据
功能码10:写多路寄存器
01 10 00 2A 00 03 06 2D7A 3D7D 4A9B 52FC
00 2A 寄存器地址
00 03 写入数据的字长度(共3个字)
06 写入数据的字节长度(共6个字节)
2D7A 3D7D 4A9B 3个数据
52FC校验码
一个寄存器里就代表1个字的数据,3个寄存器当然是3个字,共6个字节了,一个字=两个字节