我用VB编了一个与6RA70通信通信的小程序
Private Sub Command1_Click()
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Dim outdata(14) As Long
Dim j%
outdata(0) = &H2
outdata(1) = &HC
outdata(2) = &H0
outdata(3) = &H0
outdata(4) = &H0
outdata(5) = &H0
outdata(6) = &H0
outdata(7) = &H0
outdata(8) = &H0
outdata(9) = &H0
outdata(10) = &H0
outdata(11) = &H20
outdata(12) = &H7F
Dim a As Long
For j = 0 To 12
outdata(13) = outdata(13) Xor outdata(j)
Next j
txt2.Text = outdata(13)
j = 0
buf = ""
For j = 0 To 13
buf = buf & Chr(outdata(j))
Next j
If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True
End If
MSComm1.Output = buf
End Sub
Private Sub MSComm1_OnComm()
Dim I%, inByte() As Byte
Dim buff$
Dim buff1$
Dim inputdata(14) As String
buff = ""
inByte = MSComm1.Input
For I = LBound(inByte) To UBound(inByte)
buff = Hex(inByte(I))
buff1 = buff1 & Hex(inByte(I)) & Chr(32)
inputdata(I) = buff
Next
If buff1 = "" Then
MsgBox "没有任何消息返回!"
Else
txt1.Text = buff1
txt3.Text = inputdata(12)
End If
End Sub
outdata(11)和outdata(12)是PZD2给定的值高位在前低位在后,outdata(11)outdata(12)值不管哪一个一旦超过&H7F,通信就失败,但是BCC的校验是正确的,请哪位高人指点指点