发布于 2004-10-11 09:34:04
0楼
这是我写的代码,请指正。
recbuf = ""
trsbuf = ""
Select Case Combo1.Text
Case "V"
mode = "0800"
Case "M"
mode = "0200"
Case "Q"
mode = "0100"
Case "I"
mode = "0000"
End Select
PLC = ""
ld_1 = Text4.Text
lon = Len(ld_1)
For i = 1 To 2 - lon
PLC = PLC + "0"
Next
PLC = PLC + ld_1
If Option1.Value = True Then '读
dx = Chr(5)
R_W = "00"
data = "0000000000000000"
End If
If Option2.Value = True Then '写
dx = Chr(6)
data = ""
ld_1 = Combo2.Text
Select Case ld_1
Case "Byte"
R_W = "02"
Call data_cal
Case "Word"
R_W = "04"
Call data_cal
Case "Doble Word"
R_W = "08"
Call data_cal
End Select
End If
address = ""
ld_1 = Text1.Text
For i = 1 To 4 - Len(Hex(Val(ld_1)))
address = address + "0"
Next
For i = 1 To Len(Hex(Val(ld_1)))
address = address + Mid(Hex(Val(ld_1)), i, 1)
Next
checksum = 0
ld_1 = dx + PLC + mode + address + R_W + data
For i = 1 To Len(ld_1)
checksum = checksum Xor Asc(Mid(ld_1, i, 1))
Next
BCC = ""
ld_1 = Hex(checksum)
For i = 1 To 2 - Len(ld_1)
BCC = BCC + "0"
Next
BCC = BCC + ld_1
trsbuf = "g" + dx + PLC + mode + address + R_W + data + BCC + "G"
MSComm1.output = trsbuf
国民.彩 Rangers Lead The Way! All The Way,Sir! Hoo-ah!