发表于:2019/8/20 15:00:02
#0楼
测试LabVIEW程序,LZ以前的习惯都是首先考虑OPC服务器的,因为集成很多的通讯协议,不必纠结通讯程序的时序逻辑。
但是这次遇到的问题是现场干扰比较大,OPC通讯过几个小时就会出现一次中断,而OPC服务器自身的错误处理又缺乏资料,没搞懂,所以编写了一个Modbus串口通讯程序。
第一步,初始化串口,检测串口状态,如果通讯没建立则进入复位程序
第二步,读取离散量和寄存器,如果成功则进入写寄存器程序,不成功进入复位程序
第三步,写离散量和寄存器,如果成功回到杜寄存器,不成功进入复位程序
第四步,复位程序,先关闭串口,然后重新初始化串口
这个程序在出现错误的时候,会不停关闭串口重新打开串口,把串口线拔掉再插上也可以自己恢复通讯
但是这次遇到的问题是现场干扰比较大,OPC通讯过几个小时就会出现一次中断,而OPC服务器自身的错误处理又缺乏资料,没搞懂,所以编写了一个Modbus串口通讯程序。
第一步,初始化串口,检测串口状态,如果通讯没建立则进入复位程序
第二步,读取离散量和寄存器,如果成功则进入写寄存器程序,不成功进入复位程序
第三步,写离散量和寄存器,如果成功回到杜寄存器,不成功进入复位程序
第四步,复位程序,先关闭串口,然后重新初始化串口
这个程序在出现错误的时候,会不停关闭串口重新打开串口,把串口线拔掉再插上也可以自己恢复通讯
附件:
[本地下载][此贴子已经被作者于2019/8/20 15:02:53编辑过]
白玉堂前春解舞,东风卷得均匀。蜂围蝶阵乱纷纷。几曾随逝水?岂必委芳尘?
万缕千丝终不改,任他随聚随分。韶华休笑本无根。好风凭借力,送我上青云。
万缕千丝终不改,任他随聚随分。韶华休笑本无根。好风凭借力,送我上青云。