
MCGS组态软件对ModBusRTU设备读写命令分析.docx
5页MCGS组态软件对ModBusRTU设备读写命令分析在PC机MCGS组态软件环境下,编制测试程序通过RS485接口对LG的PLC(ModBusRTU通讯协议)进行继电器、寄存器读写操作(命令类型1、0、3、4),同时利用广州致远LA1032逻辑分析仪对通讯信号进行判读、分析1、继电器类型一1输入继电器(只读)使用ModBusRTU通讯协议的命令2(ReadInputStatus)1-1、设备(PLC)地址=2;继电器地址=1;通道数量=1主机发出:02h(设备地址)+02h(命令)+00h(起始地址Hi)+00h(起始地址Lo)+00h(点数Hi)+01h(点数Lo)+XXh(CRCHi)+XXh(CRCLo)从机响应:02h(设备地址)+02h(命令)+01h(字节数)+XXh(数据字节)+XXh(CRCHi)+XXh(CRCLo)1- 2、设备(PLC)地址=2;继电器地址=2;通道数量=3主机发出:02h(设备地址)+02h(命令)+00h(起始地址Hi)+01h(起始地址Lo)+00h(点数Hi)+03h(点数Lo)+XXh(CRCHi)+XXh(CRCLo)从机响应:02h(设备地址)+02h(命令)+01h(字节数)+XXh(数据字节)+XXh(CRCHi)+XXh(CRCLo)2、继电器类型一0输出继电器(读/写)2- 1、读状态时使用ModBusRTU通讯协议的命令1(ReadCoilStatus),类似于ModBusRTU通讯协议的命令2(ReadInputStatus)设备(PLC)地址=2;继电器地址=3;通道数量=4主机发出:02h(设备地址)+01h(命令)+00h(起始地址Hi)+02h(起始地址Lo)+00h(点数Hi)+04h(点数Lo)+XXh(CRCHi)+XXh(CRCLo)从机响应:02h(设备地址)+Olh(命令)+Olh(字节数)+XXh(数据字节)+XXh(CRCHi)+XXh(CRCLo)2-2、写状态时使用ModBusRTU通讯协议的命令5(ForceSingleCoil)置位操作:设备(PLC)地址=1;继电器地址=65;通道数量=2主机发出1:01h(设备地址)+05h(命令)+00h(起始地址Hi)+40h(起始地址Lo)+ffh(写数据Hi)+00h(写数据Lo)+XXh(CRCHi)+XXh(CRCLo)从机响应1:01h(设备地址)+05h(命令)+00h(起始地址Hi)+40h(起始地址Lo)+ffh(写数据Hi)+00h(写数据Lo)+XXh(CRCHi)+XXh(CRCLo)主机发出2:01h(设备地址)+05h(命令)+00h(起始地址Hi)+41h(起始地址Lo)+ffh(写数据Hi)+00h(写数据Lo)+XXh(CRCHi)+XXh(CRCLo)从机响应2:01h(设备地址)+05h(命令)+00h(起始地址Hi)+41h(起始地址Lo)+ffh(写数据Hi)+00h(写数据Lo)+XXh(CRCHi)+XXh(CRCLo)2-3、写状态时使用ModBusRTU通讯协议的命令5(ForceSingleCoil)清零操作:设备(PLC)地址=1;继电器地址=65;通道数量=2主机发出1:01h(设备地址)+05h(命令)+00h(起始地址Hi)+40h(起始地址Lo)+00h(写数据Hi)+00h(写数据Lo)+XXh(CRCHi)+XXh(CRCLo)从机响应1:01h(设备地址)+05h(命令)+00h(起始地址Hi)+40h(起始地址Lo)+00h(写数据Hi)+00h(写数据Lo)+XXh(CRCHi)+XXh(CRCLo)主机发出2:01h(设备地址)+05h(命令)+00h(起始地址Hi)+41h(起始地址Lo)+00h(写数据Hi)+00h(写数据Lo)+XXh(CRCHi)+XXh(CRCLo)从机响应2:01h(设备地址)+05h(命令)+00h(起始地址Hi)+41h(起始地址Lo)+OOh(写数据Hi)+00h(写数据Lo)+XXh(CRCHi)+XXh(CRCLo)3、寄存器类型一3输入寄存器(只读)使用ModBusRTU通讯协议的命令4(ReadInputRegisters)3- 1、设备(PLC)地址=3;寄存器地址=4;通道数量=4主机发出:03h(设备地址)+04h(命令)+00h(起始地址Hi)+02h(起始地址Lo)+OOh(点数Hi)+04h(点数Lo)+XXh(CRCHi)+XXh(CRCLo)从机响应:03h(设备地址)+04h(命令)+08h(字节数)+XXh(数据1字节Hi)+XXh(数据1字节Lo)+XXh(数据2字节Hi)+XXh(数据2字节Lo)+…XXh(数据4字节Hi)+XXh(数据4字节Lo)+XXh(CRCHi)+XXh(CRCLo)4、寄存器类型一4输入寄存器(只读)使用ModBusRTU通讯协议的命令3(ReadHoldingRegisters),类似于ModBusRTU通讯协议的命令4(ReadInputRegisters)4- 1、设备(PLC)地址=1;寄存器地址=2;通道数量=3主机发出:01h(设备地址)+03h(命令)+00h(起始地址Hi)+01h(起始地址Lo)+00h(点数Hi)+03h(点数Lo)+XXh(CRCHi)+XXh(CRCLo)从机响应:01h(设备地址)+03h(命令)+06h(字节数)+XXh(数据1字节Hi)+XXh(数据1字节Lo)+XXh(数据2字节Hi)+XXh(数据2字节Lo)+XXh(数据3字节Hi)+XXh(数据3字节Lo)+XXh(CRCHi)+XXh(CRCLo)5、寄存器类型一4输入寄存器(读/写)5- 1、当读/写通道数量=1时,读数使用ModBusRTU通讯协议的命令3(ReadHoldingRegisters),写数ModBusRTU通讯协议的命令6(PresetSingleRegister)设备(PLC)地址=1;寄存器地址=5;通道数量=1主机发出1:01h(设备地址)+03h(命令)+00h(起始地址Hi)+04h(起始地址Lo)+00h(点数Hi)+01h(点数Lo)+XXh(CRCHi)+XXh(CRCLo)从机响应1:01h(设备地址)+03h(命令)+02h(字节数)+XXh(数据字节Hi)+XXh(数据字节Lo)+XXh(CRCHi)+XXh(CRCLo)主机发出2:01h(设备地址)+06h(命令)+00h(起始地址Hi)+04h(起始地址Lo)+XXh(数据Hi)+XXh(数据Lo)+XXh(CRCHi)+XXh(CRCLo)从机响应2:01h(设备地址)+06h(命令)+00h(起始地址Hi)+04h(起始地址Lo)+XXh(数据Hi)+XXh(数据Lo)+XXh(CRCHi)+XXh(CRCLo)5-2、当读/写通道数量爭时,只使用ModBusRTU通讯协议的命令6(PresetSingleRegister)设备(PLC)地址=1;寄存器地址=5;通道数量=2主机发出1:01h(设备地址)+06h(命令)+00h(起始地址Hi)+04h(起始地址Lo)+XXh(数据Hi)+XXh(数据Lo)+XXh(CRCHi)+XXh(CRCLo)从机响应1:01h(设备地址)+06h(命令)+00h(起始地址Hi)+04h(起始地址Lo)+XXh(数据Hi)+XXh(数据Lo)+XXh(CRCHi)+XXh(CRCLo)主机发出2:Olh(设备地址)+06h(命令)+00h(起始地址Hi)+05h(起始地址Lo)+XXh(数据Hi)+XXh(数据Lo)+XXh(CRCHi)+XXh(CRCLo)从机响应2:Olh(设备地址)+06h(命令)+00h(起始地址Hi)+05h(起始地址Lo)+XXh(数据Hi)+XXh(数据Lo)+XXh(CRCHi)+XXh(CRCLo)。
