Qt modbus开发中遇到的Request timeout错误

先简单的来说一下最近遇到的坑,最近有个项目需要用到Modbus tcp来做开发,之前也用过Modbus tcp开发过项目,不过是在ARM开发板上。现在唯一不同的就是在Windows上,轻车熟路把功能代码写完之后,前期功能测试很稳定,本来以为这样简简单单的把项目完成了,结果在长时间测试的过程中出现了报错 Request timeout。
在这里插入图片描述
作为忠实的Qter,第一时间怀疑硬件设备出现问题,先去拿着硬件的测试软件去做了测试,结果没出现类似的问题,虽然有点怀疑自己的代码的问题,但是我还是去百度了,结果还真让我发现了点什么,早就有网友遇到过Modbus RTU编程中出现类似的问题,说是Qt5.12会存在这个问题,升级到5.14后这个问题就解决了。
于是我去安装了一个5.15版本的,结果你猜怎么着?它还是不行啊!!!
那行,5.15不行,我去装个最新的总行了吧,于是6.5也被我安装完了。对,没错,它还是报错,心态到底是给我整崩了啊。
一度想把Modbus TCP换成Modbus RTU,但是我就是吃不了这口气啊,Qt自带的我用不了,那我去用第三方的总行了吧!于是去下载了libmodbus,费劲编译成X64的动态库,参考例程写完代码,一测连通都不通啊,还不跟自带的呢!
行了,到了这一步,那我只能再去证明是硬件的问题了,下载了抓包工具,发现硬件有一帧数据没给我回啊,再次信心满满的去找硬件商家,结果人家让我用modbus poll测试,测试还是没问题,万念俱灰,又再次运行了一下libmodbus的项目,结果又可以了,真的是编程偶尔是一门玄学,(有可能我代码写的不对)最终libmodbus经过了长时间测试,项目顺利交付。

说这么多就是一句话,Modbus TCP编程遇到Request timeout,如果项目时间比较紧张的话,请抓紧更换libmodbus。就目前来看,Qt自带的Modbus TCP可能还是有bug存在的,欢迎各位大佬来交流一下这个错误。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值