通过modbus与表通信问题
各位大侠:
我通过Modbus协议与一个仪表通信,发送命令格式都正确,返回值也正确。
但是我把这个发送命令的过程,放到timer时间中去执行时,就会出现返回值混乱问题,总是几个数来循环出现。只有当多个timer事件同时发送的时候才出现这个问题。要不就是我做一个按钮一下一下的发送命令,也会偶尔出现数据不匹配的问题!
大家帮我分析一下到底是什么原因:是不是串口冲突的问题还是中断时间太短的原因呢?
[解决办法]
Private Sub Timer1_Timer() Static sum As Long sum = sum + 1 If sum = 1 Then With vModbusBSBill .ReadBalValue End With ElseIf sum = 2 Then With vModbusBSBill .ReadBalPanAndState End With ElseIf sum = 3 Then sum = 0 '写轮询指令3 End IfEnd Sub