发表于: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
但我如果把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