登录
首页 工控软件 LabVIEW
回帖 发帖
正文

主题:Modbus串口通讯错误处理自恢复程序

点击:2630 回复:4

测试LabVIEW程序,LZ以前的习惯都是首先考虑OPC服务器的,因为集成很多的通讯协议,不必纠结通讯程序的时序逻辑。
但是这次遇到的问题是现场干扰比较大,OPC通讯过几个小时就会出现一次中断,而OPC服务器自身的错误处理又缺乏资料,没搞懂,所以编写了一个Modbus串口通讯程序。
第一步,初始化串口,检测串口状态,如果通讯没建立则进入复位程序
附件 微信截图_20190820144003.jpg
第二步,读取离散量和寄存器,如果成功则进入写寄存器程序,不成功进入复位程序
附件 微信截图_20190820144018.jpg
第三步,写离散量和寄存器,如果成功回到杜寄存器,不成功进入复位程序
附件 微信截图_20190820144029.jpg
第四步,复位程序,先关闭串口,然后重新初始化串口
附件 微信截图_20190820144040.jpg
这个程序在出现错误的时候,会不停关闭串口重新打开串口,把串口线拔掉再插上也可以自己恢复通讯
附件:Modbus通讯.7z
[本地下载]
最后修改:2019/8/20 15:02:53
19-08-20 15:00
嗯,不错,跟我想法挺接近的,我最近在思考通讯错误处理,我是先通讯读取,出错了就直接退出程序。
20-03-03 16:54
其实就是一个错误处理机制,这个在项目化编程中还是很有用的
20-03-07 20:19
版主,自己写modbus程序的话,怎么做到跟OPC一样周期通讯呢?我现在是把modbus读写程序和其他程序都写在一个While循环里面,但是这样的话周期性通讯就受其他程序的影响。还有一个想法就是通讯程序跟其他程序分别写一个while循环,同时运行,不知道是否可行。不知道版主你是怎么实现的
21-02-22 10:03
4楼
该帖内容不符合相关规定!
22-05-13 14:24

工控新闻

更多新闻资讯