威纶通官方论坛

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

[复制链接]
发表于 2021-9-18 16:07:24 | 显示全部楼层 |阅读模式
macro_command main()
bool stin[4]
bool stout[4]
GetData(stin[0], "MODBUS", 1x_single_Bit, 2#32, 4)
GetData(stout[0], "MODBUS", 0x_single_Bit, 2#0, 4)
SetData(stin[0], "HMI", LB, 332, 4)
SetData(stout[0], "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模块吗?你们都是怎么解决这个问题的?

您需要登录后才可以发帖 登录 | 注册

本版积分规则

回复帖子

Archiver|小黑屋|威纶通官网 ( 粤ICP备06054553号 )

GMT+8, 2024-11-24 08:09

Powered by Discuz! X3.4

© 2001-2023 Comsenz Inc.

快速回复 返回顶部 返回列表