pcsms_oBudRLgL 发表于 2021-9-18 16:07:24

宏指令GETDATA在MODBUS通信中的问题

macro_command main()
bool stin
bool stout
GetData(stin, "MODBUS", 1x_single_Bit, 2#32, 4)
GetData(stout, "MODBUS", 0x_single_Bit, 2#0, 4)
SetData(stin, "HMI", LB, 332, 4)
SetData(stout, "HMI", LB, 300, 4)
end macro_command

通过串口抓包获得的数据是:
02 02 00 20 00 01 B8 33
为什么只读取一位?
正常发送的数据应该是
02 02 00 20 00 04 78 30才对呀!

如果MODBUS地址使用 1x,那么发送的数据包是
02 02 00 20 00 10 78 3F
10就是16位,为什么使用1x就要一次读取16位的装填?从站最多才4位,获取超过4位就返回81错误提示
这是威纶通的通病吗?

有人用过MODBUS的IO模块吗?你们都是怎么解决这个问题的?

页: [1]
查看完整版本: 宏指令GETDATA在MODBUS通信中的问题