📄 comm.bas
字号:
Attribute VB_Name = "Module4"
'组要发送的帧
Function FaSong(Data() As Byte, DataLen As Integer)
Dim tmp() As Byte
ReDim tmp(DataLen - 1) As Byte
Dim i As Integer
For i = 0 To DataLen - 1
tmp(i) = Data(i)
Next i
'Form1.MSComm1.Output = tmp
OutLen = DataLen
If OutCiShu > 0 Then
OutCiShu = OutCiShu - 1
End If
End Function
Function ZuZheng(DataID As String, Data() As Byte, DataLen As Byte, DataType As Byte) As Byte
Dim TempData(1) As Byte
Dim dlen As Byte
Dim CRC As Long
outdata(0) = &H68
Dim tempstring As String
tempstring = DataID
StringToHex tempstring, TempData
If DataType = 1 Then '读参数
outdata(1) = &H5
outdata(2) = &H19
outdata(3) = &O2 '数据长度
outdata(4) = TempData(1) '低位在前
outdata(5) = TempData(0) '高位在后
'/Outdata(6)
CRC = CRC_Cal(0, outdata, 6) '计算CRC
outdata(6) = CRC And &HFF
CRC = CRC And &HFF00
CRC = CRC / 256
outdata(7) = CRC And &HFF
outdata(8) = &H16
outdata(9) = &HFF
'OutCiShu = 3 '出错重复次数3
'FaSong outdata, 9
ElseIf DataType = 2 Then '写参数 '
outdata(1) = &H5
outdata(2) = &H1A
outdata(3) = DataLen + 2 '数据长度
outdata(4) = TempData(1) '低位在前
outdata(5) = TempData(0) '高位在后
Dim i As Byte
For i = 0 To DataLen - 1
outdata(6 + i) = Data(i)
Next i
CRC = CRC_Cal(0, outdata, 6 + DataLen) '计算CRC
outdata(6 + i) = CRC And &HFF
CRC = CRC And &HFF00
CRC = CRC / 256
outdata(7 + i) = CRC And &HFF
outdata(8 + i) = &H16
outdata(9 + i) = &HFF
'OutCiShu = 3 '出错重复次数3
'FaSong outdata, 9 + i
ElseIf DataType = 3 Then '读电流 电压
outdata(1) = &H1 '读电压参数
outdata(2) = &H2 '固定长度
outdata(3) = TempData(1) '低位在前
outdata(4) = TempData(0) '高位在后
outdata(5) = XuHao
outdata(6) = Wendu
CRC = CRC_Cal(0, outdata, 7) '计算CRC
outdata(7) = CRC And &HFF
CRC = CRC And &HFF00
CRC = CRC / 256
outdata(8) = CRC And &HFF
outdata(9) = &H16
outdata(10) = &HFF
'FaSong outdata, 10
'OutCiShu = 3 '出错重复次数3
ElseIf DataType = 4 Then '保存到FLASH中
outdata(1) = &H5
outdata(2) = &H20
outdata(3) = 2 '数据长度
outdata(4) = &HFF '低位在前
outdata(5) = &HFF '高位在后 无效的命令
CRC = CRC_Cal(0, outdata, 6 + DataLen) '计算CRC
outdata(6) = CRC And &HFF
CRC = CRC And &HFF00
CRC = CRC / 256
outdata(7) = CRC And &HFF
outdata(8) = &H16
outdata(9) = &HFF
'OutCiShu = 3 '出错重复次数3
'FaSong outdata, 9
ElseIf DataType = 5 Then '恢复默认值
outdata(1) = &H5
outdata(2) = &H21
outdata(3) = 2 '数据长度
outdata(4) = &HFF '低位在前
outdata(5) = &HFF '高位在后 无效的命令
CRC = CRC_Cal(0, outdata, 6 + DataLen) '计算CRC
outdata(6) = CRC And &HFF
CRC = CRC And &HFF00
CRC = CRC / 256
outdata(7) = CRC And &HFF
outdata(8) = &H16
outdata(9) = &HFF
'OutCiShu = 3 '出错重复次数3
'FaSong outdata, 9
End If
End Function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -