⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 comm.bas

📁 主要用于控制三相电能表检验装置
💻 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 + -