MCGS组态软件对ModBus RTU设备读写命令分析
在PC机MCGS组态软件环境下,编制测试程序通过RS485接口对LG的PLC(ModBus RTU通讯协议)进行继电器、寄存器读写操作(命令类型1、0、3、4),同时利用广州致远LA1032逻辑分析仪对通讯信号进行判读、分析。
1、 继电器类型—1输入继电器(只读)
使用ModBus RTU通讯协议的命令2(Read Input Status)
1-1、设备(PLC)地址=2;继电器地址=1;通道数量=1
主机发出:
02h(设备地址)+ 02h(命令)+ 00h(起始地址Hi)+ 00h(起始地址Lo)
+ 00h(点数Hi)+ 01h(点数Lo)+XX h(CRC Hi)+ XX h(CRC Lo)
从机响应:
02h(设备地址)+ 02h(命令)+ 01h(字节数)+ XX h(数据字节)
+XX h(CRC Hi)+ XX h(CRC Lo)
1-2、设备(PLC)地址=2;继电器地址=2;通道数量=3
主机发出:
02h(设备地址)+ 02h(命令)+ 00h(起始地址Hi)+ 01h(起始地址Lo)
+ 00h(点数Hi)+ 03h(点数Lo)+XX h(CRC Hi)+ XX h(CRC Lo)
从机响应:
02h(设备地址)+ 02h(命令)+ 01h(字节数)+ XX h(数据字节)
+XX h(CRC Hi)+ XX h(CRC Lo)
2、继电器类型—0输出继电器(读/写)
2-1、读状态时使用ModBus RTU通讯协议的命令1(Read Coil Status),类似于ModBus RTU通讯协议的命令2(Read Input Status)
设备(PLC)地址=2;继电器地址=3;通道数量=4
主机发出:
02h(设备地址)+ 01h(命令)+ 00h(起始地址Hi)+ 02h(起始地址Lo)
+ 00h(点数Hi)+ 04h(点数Lo)+XX h(CRC Hi)+ XX h(CRC Lo)
从机响应:
02h(设备地址)+ 01h(命令)+ 01h(字节数)+ XX h(数据字节)
+XX h(CRC Hi)+ XX h(CRC Lo)
2-2、写状态时使用ModBus RTU通讯协议的命令5(Force Single Coil)
置位操作:设备(PLC)地址=1;继电器地址=65;通道数量=2
主机发出1:
01h(设备地址)+ 05h(命令)+ 00h(起始地址Hi)+ 40h(起始地址Lo)
+ ffh(写数据Hi)+ 00h(写数据Lo)+XX h(CRC Hi)+ XX h(CRC Lo)
从机响应1:
01h(设备地址)+ 05h(命令)+ 00h(起始地址Hi)+ 40h(起始地址Lo)
+ ffh(写数据Hi)+ 00h(写数据Lo)+XX h(CRC Hi)+ XX h(CRC Lo)
主机发出2:
01h(设备地址)+ 05h(命令)+ 00h(起始地址Hi)+ 41h(起始地址Lo)
+ ffh(写数据Hi)+ 00h(写数据Lo)+XX h(CRC Hi)+ XX h(CRC Lo)
从机响应2:
01h(设备地址)+ 05h(命令)+ 00h(起始地址Hi)+ 41h(起始地址Lo)
+ ffh(写数据Hi)+ 00h(写数据Lo)+XX h(CRC Hi)+ XX h(CRC Lo)
2-3、写状态时使用ModBus RTU通讯协议的命令5(Force Single Coil)
清零操作:设备(PLC)地址=1;继电器地址=65;通道数量=2
主机发出1:
01h(设备地址)+ 05h(命令)+ 00h(起始地址Hi)+ 40h(起始地址Lo)
+ 00h(写数据Hi)+ 00h(写数据Lo)+XX h(CRC Hi)+ XX h(CRC Lo)
从机响应1:
01h(设备地址)+ 05h(命令)+ 00h(起始地址Hi)+ 40h(起始地址Lo)
+ 00h(写数据Hi)+ 00h(写数据Lo)+XX h(CRC Hi)+ XX h(CRC Lo)
主机发出2:
01h(设备地址)+ 05h(命令)+ 00h(起始地址Hi)+ 41h(起始地址Lo)
+ 00h(写数据Hi)+ 00h(写数据Lo)+XX h(CRC Hi)+ XX h(CRC Lo)
从机响应2:
01h(设备地址)+ 05h(命令)+ 00h(起始地址Hi)+ 41h(起始地址Lo)
+ 00h(写数据Hi)+ 00h(写数据Lo)+XX h(CRC Hi)+ XX h(CRC Lo)
3、寄存器类型—3输入寄存器(只读)
使用ModBus RTU通讯协议的命令4(Read Input Registers)
3-1、设备(PLC)地址=3;寄存器地址=4;通道数量=4
主机发出:
03h(设备地址)+ 04h(命令)+ 00h(起始地址Hi)+ 02h(起始地址Lo)
+ 00h(点数Hi)+ 04h(点数Lo)+XX h(CRC Hi)+ XX h(CRC Lo)
从机响应:
03h(设备地址)+ 04h(命令)+ 08h(字节数)+ XX h(数据1字节Hi)
+ XX h(数据1字节Lo)+ XX h(数据2字节Hi)+ XX h(数据2
字节Lo)+ … XX h(数据4字节Hi)+ XX h(数据4字节Lo)
+XX h(CRC Hi)+ XX h(CRC Lo)
4、寄存器类型—4输入寄存器(只读)
使用ModBus RTU通讯协议的命令3(Read Holding Registers),类似于ModBus RTU通讯协议的命令4(Read Input Registers)
4-1、设备(PLC)地址=1;寄存器地址=2;通道数量=3
主机发出:
01h(设备地址)+ 03h(命令)+ 00h(起始地址Hi)+ 01h(起始地址Lo)
+ 00h(点数Hi)+ 03h(点数Lo)+XX h(CRC Hi)+ XX h(CRC Lo)
从机响应:
01h(设备地址)+ 03h(命令)+ 06h(字节数)+ XX h(数据1字节Hi)
+ XX h(数据1字节Lo)+ XX h(数据2字节Hi)+ XX h(数据2
字节Lo)+ XX h(数据3字节Hi)+ XX h(数据3字节Lo)
+XX h(CRC Hi)+ XX h(CRC Lo)
5、寄存器类型—4输入寄存器(读/写)
5-1、当读/写通道数量=1时,读数使用ModBus RTU通讯协议的命令3(Read Holding Registers),写数ModBus RTU通讯协议的命令6(Preset Single Register)
设备(PLC)地址=1;寄存器地址=5;通道数量=1
主机发出1:
01h(设备地址)+ 03h(命令)+ 00h(起始地址Hi)+ 04h(起始地址Lo)
+ 00h(点数Hi)+ 01h(点数Lo)+XX h(CRC Hi)+ XX h(CRC Lo)
从机响应1:
01h(设备地址)+ 03h(命令)+ 02h(字节数)+ XX h(数据字节Hi)
+ XX h(数据字节Lo)+XX h(CRC Hi)+ XX h(CRC Lo)
主机发出2:
01h(设备地址)+ 06h(命令)+ 00h(起始地址Hi)+ 04h(起始地址Lo)
+ XXh(数据Hi)+XXh(数据Lo)+XX h(CRC Hi)+ XX h(CRC Lo)
从机响应2:
01h(设备地址)+ 06h(命令)+ 00h(起始地址Hi)+ 04h(起始地址Lo)
+ XXh(数据Hi)+XXh(数据Lo)+XX h(CRC Hi)+ XX h(CRC Lo)
5-2、当读/写通道数量≠1时,只使用ModBus RTU通讯协议的命令6 (Preset Single Register)
设备(PLC)地址=1;寄存器地址=5;通道数量=2
主机发出1:
01h(设备地址)+ 06h(命令)+ 00h(起始地址Hi)+ 04h(起始地址Lo)
+ XXh(数据Hi)+XXh(数据Lo)+XX h(CRC Hi)+ XX h(CRC Lo)
从机响应1:
01h(设备地址)+ 06h(命令)+ 00h(起始地址Hi)+ 04h(起始地址Lo)
+ XXh(数据Hi)+XXh(数据Lo)+XX h(CRC Hi)+ XX h(CRC Lo)
主机发出2:
01h(设备地址)+ 06h(命令)+ 00h(起始地址Hi)+ 05h(起始地址Lo)
+ XXh(数据Hi)+XXh(数据Lo)+XX h(CRC Hi)+ XX h(CRC Lo)
从机响应2:
01h(设备地址)+ 06h(命令)+ 00h(起始地址Hi)+ 05h(起始地址Lo)
+ XXh(数据Hi)+XXh(数据Lo)+XX h(CRC Hi)+ XX h(CRC Lo)
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- zicool.com 版权所有 湘ICP备2023022495号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务