QnA-3E(二进制)

数据格式 :头部 + 应用数据
头部:无需设置
应用数据:副头部+文本(副头部 区分指令、响应)(文本 数据信息)

读取(二进制,高低位需互换)

示例指令 :5000 00 FF FF03 00 0C00 0100 0104 0000 A62700 A8 0100(读取D10150开始的1个数据块)

副头部 :5000 指令为5000,响应为D000
网络编号:00
PLC编号:FF
IO编号:FF03
模块站号:00
请求数据长度:0C00 请求数据长度计算为之后的所有数据
时钟 :0100 表示等待PLC响应的timeout时间
高低位互换,实际为0001 即最大等待时间250ms*1=0.25秒
指令:0104 实际为0401,即为批量读取 (后面单独列出指令)
子指令:0000 值是0表示按字读取(1个字=16位),如果值是1就按位读取
首地址:A62700 实际为0027A6 十进制为10150
软元件:表示读取PLC寄存器的类型 A8 对应D点(后面有详细对应)
长度:01
结束代码:00
示例回复:
成功:D000 00 FF FF03 00 0400 0000 0001(D10150数据为256)
副头部:D000 网络编号:00 PLC编号:FF
IO编号:FF03 模块站号:00
应答数据长度:0400 实际为0004 即为4
异常代码:0000 如果正常的话,就是0000
应答数据:0001 实际为0100 即为256

写入

示例指令 : 5000 00 FF FF03 00 0E00 0100 0114 0000 A62700 A8 0100 0102(写D10150 = 513)

除斜体部分其余同读取一样
斜体部分:
指令:0114 实际为1401,即为批量写入
写入数据:0102实际为0201 十进制513(写入数据也要根据数据类型来写,例如int型,需要转为十六进制发送,string型需要转为ascii码发送)
示例回复:
成功:D000 00 FF FF03 00 0200 0000
同读取一样 没有应答数据部分

指令

命令 子命令(区分位、字)

批量读取 0104 ()100(位) ()000(字)
批量写入 0114 ()100(位) ()000(字)
随机读取 0301 ()000
随机写入 0214 ()100(位) ()000(字)
监视数据登录 0108 ()000
监视 0208 0000

软元件

辅助寄存器M:0x90
特殊继电器SM:0x91
特殊寄存器SD:0xA9
输入继电器X*: 0x9C
输出继电器Y*:0x9D
锁存继电器L*: 0x92
报警继电器F*:0x93
边沿继电器V*:0x94
链接继电器B*:0xA0
数据寄存器D*:0xA8
链接寄存器W*:0xB4
定时器触点TS:0xC1
定时器线圈TN:0xC0
定时器当前值TC: 0xC2
累计定时器触点SS: 0xC7
累计定时器线圈SC:0xC6
累计定时器当前值SN: 0xC8
计数器触点CS:0xC4
计数器线圈CC:0xC3
计数器当前值CN:0xC5
链接特殊继电器SB:0xA1
链接特殊寄存器SW:0xB5
步进继电器S*:0x98
直接输入继电器DX: 0xA2
直接输出继电器DY:0xA3
变址寄存器Z*:0xCC
文件寄存器R*:0xAF
文件寄存器ZR:0xB0