1、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
2、)+ 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
3、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( 命令
4、)+ 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(
5、写数据 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 S
6、ingle 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)+
7、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(起
8、始地址 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 Regi
9、sters) ,类似于 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
10、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)+
11、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)
12、+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)