登录
首页 串口通信 串口通信
回帖 发帖
正文

主题:求教关于VB与omron的PLC的通讯异常的问题?

点击:1779 回复:3

连上PLC后就出现通讯异常,点“确定“和”取消“都没用,消不掉
但我如果把st1 = MsgBox("通讯失败" + Q1$ + "确认_重试", 1, "通讯确定框")注释掉,就没问题啦,但我怕有隐患,不知那位高人帮我看看,指导一下,小弟不胜感激。小弟先在此谢啦。
Private Function SendRecev(ByVal send As String, ByVal KM As Integer) As String
On Error Resume Next
st$ = Mid$(send, 4, 2)
BACK:
Inst1$ = ""
MSCom.InputLen = 0
MSCom.PortOpen = True
MSCom.Output = send + Chr$(13)
'Do
Do
 DoEvents
Loop Until MSCom.InBufferCount >= 2
'Inst1$ = MSCom.Input
'Inst$ = Inst$ & Inst1$
'Loop Until Inst1$ = Chr(13)
If KM = 1 Then
  J = 0
  For I = 0 To 1500000       '400000
      J = J + I
  Next I
ElseIf KM = 2 Then
 J = 0
  For I = 0 To 1500000       '150000
      J = J + I
  Next I
ElseIf KM = 3 Then
  J = 0
  For I = 0 To 1500000
      J = J + I
  Next I
End If
Inst$ = MSCom.Input
MSCom.PortOpen = False
Inst$ = Trim(Inst$)
st4$ = Mid$(Inst$, 4, 2)
st5$ = Right$(Inst$, 2)
st6$ = Mid$(Inst$, 6, 2)
If (st4$ = st$) And (st5$ = ("*" + Chr$(13))) And (st6$ = "00") Then
  GoTo Fore
Else
  Q1$ = Chr$(13) + Chr$(10)
  st1 = MsgBox("通讯失败" + Q1$ + "确认_重试", 1, "通讯确定框")
      If st1 = 1 Then
         GoTo BACK
      Else: Exit Function
      End If
Fore:
   st3 = Len(Inst$)
   SendRecev = Mid$(Inst$, 8, st3 - 11)
End If
End Function
05-06-28 09:56
不才,看不懂啥意思
一般多次询问无应答或发现有错,报警,停止发数据去plc,初始化回原来状态
05-06-28 12:27
你回到back后,又打开了一次串口,当让会报错了。程序中回到的位置不对
05-07-07 12:49
你回到back后,又打开了一次串口,当让会报错了。程序中回到的位置不对
05-07-07 12:50

工控新闻

更多新闻资讯