MCGS COM口MODBUS转发
用昆仑通态KPC7031ki的com口的7(A),8(B)针脚(即com2),连接串口转usb,用电脑串口助手调试软件调试。读取触摸(从站)变量的值(本例触摸屏已和1200PLC用网口(TCP/IP)连接通信,用modbus转发功能读取已有任意变量)。
串口接线及参数设置:
随意建一个变量a,其默认值为0,条件一直满足。
脚本数据中转赋值:1200plc(设备0)和触摸屏的连接变量,赋值给modbus数据转发(设备1)里建立的变量
下面是modbus数据转发(设备1)里建立的变量截图和相关串口助手通信调试
1. 请求帧解析(主机→从机)
01 02 00 00 00 06 F8 08
从站地址:0x01(设备地址1)
功能码:0x02(读取离散输入)
起始地址:0x0000(对应逻辑地址10001)
请求数量:0x0006(读取6个离散输入状态)
CRC校验:0xF808(校验正确)
2. 响应帧解析(从机→主机)
01 02 01 0F E1 8C
从站地址:0x01(设备地址1响应)
功能码:0x02(成功响应)
字节计数:0x01(返回1字节数据)
数据内容:0x0F(二进制00001111)
表示地址10001-10008的状态(仅前6位有效):
10001: 1(最低位)
10002: 1
10003: 1
10004: 1
10005-10006: 0
------------------------------------------------------
===============================
9--16位有符号整数;10--32位有符号整数,11--32位浮点数;12--16位有符号整数
Modbus RTU通信解析(功能码03H - 读保持寄存器)
1. 请求帧解析(主机→从机)
01 03 00 00 00 08 44 0C
从站地址:0x01(设备地址1)
功能码:0x03(读取保持寄存器)
起始地址:0x0000(对应Modbus逻辑地址40001)
请求数量:0x0008(读取8个寄存器,即16字节数据)
CRC校验:0x440C(校验通过)
2. 响应帧解析(从机→主机)
01 03 10 02 91 00 00 BA C6 41 EB 68 25 00 00 00 00 00 00 16 50
从站地址:0x01(设备地址1响应)
功能码:0x03(成功响应)
字节计数:0x10(返回16字节数据)
寄存器数据(大端序):
40001: 0x0291 → 十进制657
40002: 0x0000 → 0
40003: 0xBAC6 → 47814(原始值)
40004: 0x41EB → 16875(浮点数寄存器高位)
40005: 0x6825 → 26661(浮点数寄存器低位)
40006-40008: 全0值
CRC校验:0x1650(校验通过)
3. 数据格式推测
浮点数解析(若40003-40004组合为IEEE754):
十六进制:0x41EEBAC6 → 约29.841