您现在所在的是:

串口通信

回帖:3个,阅读:1772 [上一页] [1] [下一页]
997
xyb-xwh
文章数:9
年度积分:50
历史总积分:997
注册时间:2003/11/5
发站内信
发表于:2005/6/28 9:56:00
#0楼
连上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
9062
吴辉
文章数:2351
年度积分:50
历史总积分:9062
注册时间:2002/1/15
发站内信
发表于:2005/6/28 12:27:00
#1楼
不才,看不懂啥意思

一般多次询问无应答或发现有错,报警,停止发数据去plc,初始化回原来状态
1010
foxcase
文章数:17
年度积分:50
历史总积分:1010
注册时间:2005/5/23
发站内信
发表于:2005/7/7 12:49:00
#2楼
你回到back后,又打开了一次串口,当让会报错了。程序中回到的位置不对
        wolf
1010
foxcase
文章数:17
年度积分:50
历史总积分:1010
注册时间:2005/5/23
发站内信
发表于:2005/7/7 12:50:00
#3楼
你回到back后,又打开了一次串口,当让会报错了。程序中回到的位置不对
        wolf

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

62.4004