一、测试FX3UPLC通讯报文
- FX3U 扩展网口ENT-ADP
MC协议 1E帧
- 可以直接读取寄存器的地点,间接控制PLC实行
1、读取寄存器D100的地点
01 FF 0A 00 64 00 00 00 20 44 01 00
01 FF 0A 00 00 00 00 00 20 44 14 00
01 FF 00 0A 00 00 00 00 14 00
返回数据
81 00 00 34
报文剖析:
01 副部头
FF PLC编号
0A 时钟
00
64 首地点
00 哀求地点
00
00
20 装备标识号寄存器
44 范例(D)
01 读取长度
00
2、写入PLC数据:
03 FF 0A 00 64 00 00 00 20 44 01 00 90 30
复兴:
83 00
报文剖析:
03 副部头
FF PLC编号
0A 时钟
00
64
00
00
00
20 装备标识
44 寄存器
01 写入D长度
00 写入数据
DATA1
DATA2
3、现场测试:
- 1.读D3000连续10个地点
01 FF 0A 00 B8 0B 00 00 20 44 0A 00
81 00 32 01 00 00 00 00 00 00 00 00 00 00 F4 01 F4 01 F4 01 00 00
- 2.读M100连续32个地点(用字读取)
01 FF 0A 00 10 00 00 00 20 4D 02 00
81 00 F0 00 00 00
读M100连续32个地点(用位读取)
00 FF 0A 00 64 00 00 00 20 4D 0C 00
80 00 11 10 01 00 00 11
- 3.设D0为600
03 FF 0A 00 00 00 00 00 20 44 01 00 58 02
83 00
二、测试三菱Q系列Q06UDEH PLC通讯报文
一)、MC3E二进制.
读D100开始的连续的20个数据块,也就是读D100~D119的数据;
1、电脑读下令:
50 00 00 FF FF 03 00 0C 00 10 00 01 04 00 00 64 00 00 A8 14 00
PLC反馈:
D0 00 00 FF FF 03 00 2A 00 00 00 86 F1 00 00 C9 01 00 00 D6 02 00 00 68 02 00 00 2E 02 00 00 00 00 00 00 C3 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
剖析一下:
电脑读下令:
50 00(下令,副头部) :,表现发起指令,固定50 00;
00(网络编号) :上位访问下位,固定00;
FF(PLC编号) : 上位访问下位,固定FF;
FF 03(哀求目的模块IO编号) : 为大端表现法,值要从小到大看,也就是反过来看,三菱全部的协值都是如许,以是这里是03FF,十进制是1023; 也是固定的;
00(哀求目的模块站编号) : 上位访问下位,固定00;
0C 00 (哀求数据长度): 也要反过来,值是000C,也就是12;表现后面的报文内容的长度是12
10 00 (CPU监督定时器) : 表现等待PLC相应的timeout时间;这里 值是0010,十进制是16 ;相当与最大等待时间250ms*16=4秒;现实上PLC一样寻常2,3个毫秒内就相应了;
01 04 (批量读下令) : 值是0401(全部值都要反过来看);表现批量读取;如果是1401就是随机写取;
00 00 (子下令) : 值是0表现按字读取(1个字=16位),如果值是1就按位读取;
64 00 00(首地点):地点由于跨度比力大,以是用了3个字节;这里的值是000064,十进制就是100
A8 (软元件 读取的地域) : 表现读取PLC寄存器的范例: 这里的A8表现D点;其他常见的有: 90-M点;9C-X点;9D-Y点;B0-ZR外部存储卡
14 00(读取长度) :值是0014,十进制就是20;
PLC反馈:
D0 00 (相应) :表现反馈信息,固定D0 00;
00 (网络编号 ): 与上同
FF (PLC编号) : 与上同
FF 03 (哀求目的模块IO编号) : 与上同
00 (哀求目的模块站编号): 与上同
2A 00 (应答数据物理长度):值是002A; 十进制是 42;也就是说后面的:竣事代码(2个字节)+值=42;以是值是40个字节;2个字节=1个字;以是值是20个字;
00 00(竣事代码) :可以明白成非常代码,如果正常的话,就是0000
86 F1 00 00 C9 01 00 00 D6 02 00 00 68 02 00 00 2E 02 00 00 00 00 00 00 C3 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (反馈的值);这里恰好40个字节;
再啰嗦一下,值要反过来看,以是地点D100=F186;D101=0000,D102=01C9…
- 求数据长度计算为之后的全部数据,二进制方式两个数字为一个字,ASCII为一个数字一个字,二进制发送时数据的高低位须要变更,ASCII发送带字母起始地点式会返回错误(待办理)。
数据复兴
非常复兴:0b 00 5b c0 00 ff ff 03 00 01 14 00 00
乐成复兴:d0 00 00 ff ff 03 00 02 00 00 00
2.二进制
写D100这一个点的值为13,D101这个点的值为14,D102这个点的值为15;
电脑写下令:
50 00 00 FF FF 03 00 12 00 10 00 01 14 00 00 64 00 00 A8 03 00 0C 00 0D 00 0E 00 (00:14:55:188)
PLC反馈: D0 00 00 FF FF 03 00 02 00 00 00 (00:14:55:188)
下面剖析一下:
电脑写下令:
50 00 (下令) :意义和读一样
00(网络编号 ) :意义和读一样
FF(PLC编号) :意义和读一样
FF 03 (哀求目的模块IO编号) :意义和读一样
00(哀求目的模块站编号) :意义和读一样
12 00(哀求数据物理长度) :
值是0012,也就是十进制18;表现后面的报文内容的长度是20;
也就是后面的:cpu监督定时器+下令+子下令+首地点+软元件+长度+值=18;前面有12个字节;以是值是6个字节;也就是3个字;
10 00(cpu监督定时器):同上
01 14(下令):跟读的差别是:读是0104,写是0114 ;就是04和14的差别;
0000(子下令):值是0表现按字读写入1个字=16位),如果值是1就按位写入;
640000(首地点) :意义和读一样,10进制100;表现从D100这个首地点写入;
A8(软元件) :意义和读一样
0300(长度): 值是0003 表现连续写入3个长度;
0C00 0D00 0E00(写入的值): D100=13 ,D101=14,D102=15;
PLC反馈(全部正常的写入,反馈的信息都固定为这个):
D0 00(相应) :表现反馈信息,与读取反馈一样,固定D0 00;
00(网络编号 ):同上
FF(PLC编号) :同上
FF 03 (哀求目的模块IO编号) :同上
00(哀求目的模块站编号) :同上
02 00(应答数据物理长度): 就是后面的 00 00 恰好两个字节,以是这里值=2;
00 00(竣事代码) :可以明白成非常代码,如果正常的话,就是0000
三、参考资料
「天下起舞2023」博客https://blog.csdn.net/lihucheng123456/article/details/121029311 |