Qt5.9 Modbus request timeout 0x5异常解决
- 使用Qt5.9的Modbus模块时,频繁出现request timeout 0x5异常
- 使用官方Examples时,也有此问题,同时使用官方的Examples时,点击read过快时,会出现数据更新不及时的问题
- 此问题,外网已有bug提交,参考此地址
- 按照上述bug提交网址,可知在5.13.0 RC 1版本,此bug已解决
- 遂想到使用Qt5.13以后的Qt SerialBus模块替换当前5.9版本模块,刚好电脑上还有一个6.2版本的Qt,进行测试后,确认此bug已解决
- 将6.2版本的Qt SerialBus模块源码提取出来使用Qt5.9进行编译安装,经测试可完美解决此问题
- 不过在编译和安装Qt SerialBus模块时,也出现了很多问题,主要是新版本中很多语法特性在qt5.9中不支持,需要做相应处理,我已经整理好了一份可以在Qt5.9上可以编译的源码,下载地址:
- 将上述源码随便解压到一个非中文目录,打开其中根目录的.pro文件,清除以后重新构建
- 需要去除项目中的showdow build,同时添加Build步骤,选择Make,在参数中写入install
- 编译安装完成后会在mingw53_32in目录以及lib目录还有include目录生成最新的库文件和头文件,看文件日期即可确定
- 到此所有步骤完成,可以在QT5.9中愉快的使用Modbus了
- 另外Modbus协议有发送间隔3.5s的问题,参考以下文章 在上面传的源码中屏蔽了发送间隔,不进行间隔时间判断
上一篇:
通过多线程提高代码的执行效率例子