Case 1 '全部发送
a(4) = "03"
For i = 0 To 74
a(5) = CStr(i)
a(6) = "00"
a(7) = Val(MSHFlexGrid1.TextMatrix(i, 1)) Mod 256
a(8) = Int(Val(MSHFlexGrid1.TextMatrix(i, 1)) / 256)
a(15) = suma()
MSComm1.Output = a
Next i 这些是发送的程序
接收的是:
Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive Timer_delay.Enabled = True '开始定时
End Select
End Sub
Private Sub Timer_delay_Timer()
Dim inbytes() As Byte
Dim b() As String
Dim adr As Integer
Dim data1 As Integer
Timer_delay.Enabled = False '注意要关闭定时器 inbytes = MSComm1.Input
j = UBound(inbytes) - LBound(inbytes)
If j < 0 Then Exit Sub
str1 = ""
For i = 0 To j
str1 = str1 + IIf(inbytes(i) < 16, Trim("0") + Trim(Hex(inbytes(i))), Hex(inbytes(i)))
str1 = str1 + " "
Next i
b = Split(str1, " ")
lb = UBound(b)
ReDim Preserve b(lb) As String
If lb <> 16 Then
MsgBox "信息出错" '帧响应信息头 79 76
ElseIf b(0) = "79" And b(1) = "76" And b(2) = "00" And b(3) = "00" Then
If b(14) = "01" Then
MsgBox "接收到读取的信息"哪位大侠帮我看看啊!我要实现74组数据的全部发送和读取 并接收到相应的响应数据 每帧16个数 怎么处理啊?总是出错
a(4) = "03"
For i = 0 To 74
a(5) = CStr(i)
a(6) = "00"
a(7) = Val(MSHFlexGrid1.TextMatrix(i, 1)) Mod 256
a(8) = Int(Val(MSHFlexGrid1.TextMatrix(i, 1)) / 256)
a(15) = suma()
MSComm1.Output = a
Next i 这些是发送的程序
接收的是:
Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive Timer_delay.Enabled = True '开始定时
End Select
End Sub
Private Sub Timer_delay_Timer()
Dim inbytes() As Byte
Dim b() As String
Dim adr As Integer
Dim data1 As Integer
Timer_delay.Enabled = False '注意要关闭定时器 inbytes = MSComm1.Input
j = UBound(inbytes) - LBound(inbytes)
If j < 0 Then Exit Sub
str1 = ""
For i = 0 To j
str1 = str1 + IIf(inbytes(i) < 16, Trim("0") + Trim(Hex(inbytes(i))), Hex(inbytes(i)))
str1 = str1 + " "
Next i
b = Split(str1, " ")
lb = UBound(b)
ReDim Preserve b(lb) As String
If lb <> 16 Then
MsgBox "信息出错" '帧响应信息头 79 76
ElseIf b(0) = "79" And b(1) = "76" And b(2) = "00" And b(3) = "00" Then
If b(14) = "01" Then
MsgBox "接收到读取的信息"哪位大侠帮我看看啊!我要实现74组数据的全部发送和读取 并接收到相应的响应数据 每帧16个数 怎么处理啊?总是出错
a(4) = "03"
For i = 0 To 74
a(5) = CStr(i)
a(6) = "00"
a(7) = Val(MSHFlexGrid1.TextMatrix(i, 1)) Mod 256
a(8) = Int(Val(MSHFlexGrid1.TextMatrix(i, 1)) / 256)
a(15) = suma()
MSComm1.Output = a
//进入等待应答函数,收到正确应答后继续发送,如超过等待时间可提供报错信息//
Next i 这些是发送的程序