
组态王 modbus 读取不连续地址
我用组态王读写台达DOP-A的触摸屏寄存器,发现如果寄存器范围相隔较远的时候读的很慢,甚至出错,怀疑是组态王将之间的所有数都读回来了,请教是组态王就是这么回事呢,还是和台...
我用组态王读写台达DOP-A的触摸屏寄存器,发现如果寄存器范围相隔较远的时候读的很慢,甚至出错,怀疑是组态王将之间的所有数都读回来了,请教是组态王就是这么回事呢,还是和台达那边有关系?我能分别读不连续的区域吗?
经过自己的摸索,问题已经解决了,给遇到同样问题的人一个启发。只需要将ModbusMaster.ini中的PackLen = 127改为PackLen = 1即可(ASCII或RTU根据你的使用,这个参数我猜是读取modbus地址的最大连续长度)。这样也有一个不足之处是数据密度小了,对串口利用率下降了,因为之前要读127个地址只需要发送一条指令,现在要发送127条,还是根据需要决定吧,能连续读的话效率会高一些。 展开
经过自己的摸索,问题已经解决了,给遇到同样问题的人一个启发。只需要将ModbusMaster.ini中的PackLen = 127改为PackLen = 1即可(ASCII或RTU根据你的使用,这个参数我猜是读取modbus地址的最大连续长度)。这样也有一个不足之处是数据密度小了,对串口利用率下降了,因为之前要读127个地址只需要发送一条指令,现在要发送127条,还是根据需要决定吧,能连续读的话效率会高一些。 展开
2个回答
展开全部
ModbusMaster.ini中的PackLen 是指数据的打包长度,如果设成1的话,就是一个数据一个数据的读上来,不进行打包了,如果要读的数据比较多也比较连续的话,还是建议使用打包,因为打包的设置就是为了能够更快的读取数据
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询