宏指令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]