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

📄 tongxun.bas

📁 主要用于控制三相电能表检验装置
💻 BAS
📖 第 1 页 / 共 3 页
字号:
    If Comm = BiaoWei(i).Comm Then
        Exit For
    End If
Next i
NUM = i
For j = 0 To 599
    Indata(j) = CommDWIn(i).RxInBuff(j)
Next j
inLen = CommDWIn(i).DataLen
For i = 0 To inLen - 1
    If Indata(i) = &H68 Then
       Select Case Indata(i + 1)
          Case &H85  '对教正系数的读取
               Select Case Indata(i + 2)
                      Case &H99 '读取数据正常
                         L = Indata(i + 3) '数据长度
                         IDS = HextoString(Indata(i + 5))
                         IDS = IDS & HextoString(Indata(i + 4))
                         For j = 0 To ZongHangShu - 1
                            If JiaoZhengCanShu(j, 1) = IDS Then
                                IDS = HextoString(Indata(i + 7))
                                IDS = IDS & HextoString(Indata(i + 6))
                                'Form1.MSFlexGrid1.Col = 3
                                'Form1.MSFlexGrid1.Row = j + 1
                                'Form1.MSFlexGrid1.Text = IDS
                                JiaoZhengCanShu(j, 7 + 2 * NUM) = IDS
                                'Form1.MSFlexGrid1.CellAlignment = 1
                                'If NeiRong <> &HFF Then
                                '    NeiRong = 3
                                '    JiaoZhengBuzhu
                                'End If
                                Exit For
                            End If
                         Next j
                      Case &H9A '写入数据正常
                         L = Indata(i + 3) '数据长度
                         IDS = HextoString(Indata(i + 5))
                         IDS = IDS & HextoString(Indata(i + 4))
                         'If DanGeTiaoZheng = 55 Then
                         '   MsgBox ("写入成功")
                         '   Exit For
                         'End If
                         'If IDS = DuQuID.IDstring(XiangMu - 1) Then
                         '   NeiRong = 5
                         '   JiaoZhengBuzhu
                         'End If
                      Case &HA0
                           'MsgBox ("保存成功")
                           
                           'NeiRong = &HFF
                       Case &HA1
                           'MsgBox ("恢复出厂值成功")
                           'NeiRong = &HFF
                      Case &HD9 '读取数据失败
                      
                      Case &HDA '写入数据失败
                      
               End Select
          Case &H81  '对电流 电压数据的读取
               L = Indata(i + 2) '数据长度
               IDS = HextoString(Indata(i + 4))
               IDS = IDS & HextoString(Indata(i + 3))
               XuHao = Indata(i + 5)
               If XuHao < 255 Then
               XuHao = XuHao + 1
               Else
               XuHao = 0
               End If
               i = i + 1
               For j = 0 To inLen - 9
                    ii(j) = Indata(i + 5 + j)
               Next j
               'Debug.Print IDS
               Select Case IDS
                Case "B61F" '电压
                        
                        DataShow = Indata(i + 6)
                        DataShow = DataShow * 256
                        DataShow = DataShow + Indata(i + 5)
                        
                        'Form1.Text1(1).Text = HexToBCD(DataShow, 2)
                        'BeiCeBiaoData.DianYa(0) = HexToBCD(DataShow, 2) '输入:数据,小数个数
                        MeterData(NUM).Voltage(0) = HexToBCD(DataShow, 2)
                        
                        DataShow = Indata(i + 8)
                        DataShow = DataShow * 256
                        DataShow = DataShow + Indata(i + 7)
                        'Form1.Text2(1).Text = HexToBCD(DataShow, 2)
                        'BeiCeBiaoData.DianYa(1) = HexToBCD(DataShow, 2)
                        MeterData(NUM).Voltage(1) = HexToBCD(DataShow, 2)
                        
                        DataShow = Indata(i + 10)
                        DataShow = DataShow * 256
                        DataShow = DataShow + Indata(i + 9)
                        'Form1.Text3(1).Text = HexToBCD(DataShow, 2)
                        'BeiCeBiaoData.DianYa(2) = HexToBCD(DataShow, 2)
                        MeterData(NUM).Voltage(2) = HexToBCD(DataShow, 2)
                        
                        'BiaoShuJuShow IDS, ii
                        'BiaoShuDuQu_Main
                        'Run = 0
                        'If NeiRong = &HFF Then
                        '    XiangMu = 1
                        '    NeiRong = 2
                        '    JiaoZhengBuzhu
                        'End If
                        i = i + 14
                Case "B62F" '电流
                        DataShow = Indata(i + 6)
                        DataShow = DataShow * 256
                        DataShow = DataShow + Indata(i + 5)
                        'Form1.Text4(1).Text = HexToBCD(DataShow, 2)
                        'BeiCeBiaoData.DianLiu(0) = HexToBCD(DataShow, 4)
                        MeterData(NUM).Current(0) = HexToBCD(DataShow, 2)
                        
                        DataShow = Indata(i + 8)
                        DataShow = DataShow * 256
                        DataShow = DataShow + Indata(i + 7)
                        'Form1.Text5(1).Text = HexToBCD(DataShow, 2)
                        'BeiCeBiaoData.DianLiu(1) = HexToBCD(DataShow, 4)
                        MeterData(NUM).Current(1) = HexToBCD(DataShow, 2)
                        
                        DataShow = Indata(i + 10)
                        DataShow = DataShow * 256
                        DataShow = DataShow + Indata(i + 9)
                        'Form1.Text6(1).Text = HexToBCD(DataShow, 2)
                        'BeiCeBiaoData.DianLiu(2) = HexToBCD(DataShow, 4)
                        MeterData(NUM).Current(2) = HexToBCD(DataShow, 2)
                        
                        'BiaoShuJuShow IDS, ii
                        'BiaoShuDuQu_Main
                        'Run = 0
                         'If NeiRong = &HFF Then
                          '  XiangMu = 2
                           ' NeiRong = 2
                            'JiaoZhengBuzhu
                        'End If
                        i = i + 16
                Case "B65F" '功率因数
                        'DataShow = Indata(i + 6)
                        'DataShow = DataShow * 256
                        'DataShow = DataShow + Indata(i + 5)
                        'Form1.Text7(1).Text = HexToBCD(DataShow, 3)
                        'BeiCeBiaoData.YinShu(0) = HexToBCD(DataShow, 3)
                        DataShow = Indata(i + 8)
                        DataShow = DataShow * 256
                        DataShow = DataShow + Indata(i + 7)
                        'Form1.Text8(1).Text = HexToBCD(DataShow, 3)
                        'BeiCeBiaoData.YinShu(0) = HexToBCD(DataShow, 3)
                        MeterData(NUM).PF(1) = HexToBCD(DataShow, 3)
                        
                        DataShow = Indata(i + 10)
                        DataShow = DataShow * 256
                        DataShow = DataShow + Indata(i + 9)
                        'Form1.Text9(1).Text = HexToBCD(DataShow, 3)
                        'BeiCeBiaoData.YinShu(1) = HexToBCD(DataShow, 3)
                        MeterData(NUM).PF(2) = HexToBCD(DataShow, 3)
                        
                        
                        DataShow = Indata(i + 12)
                        DataShow = DataShow * 256
                        DataShow = DataShow + Indata(i + 11)
                        'Form1.Text9(1).Text = HexToBCD(DataShow, 3)
                        'BeiCeBiaoData.YinShu(2) = HexToBCD(DataShow, 3)
                        MeterData(NUM).PF(3) = HexToBCD(DataShow, 3)
                        
                        'BiaoShuJuShow IDS, ii
                        'BiaoShuDuQu_Main
                        'Run = 0
                         'If NeiRong = &HFF Then
                        'XiangMu = 3
                        'NeiRong = 2
                        'JiaoZhengBuzhu
                        i = i + 18
                        
            Case "B63F" '功率
                        DataShow = Indata(i + 7)
                        DataShow = DataShow * 256
                        DataShow = DataShow + Indata(i + 6)
                        DataShow = DataShow * 256
                        DataShow = DataShow + Indata(i + 5)
                        'BeiCeBiaoData.GongLv(0) = HexToBCD(DataShow, 4)  '总功率
                        MeterData(NUM).Power(0) = HexToBCD(DataShow, 4)
                        
                        DataShow = Indata(i + 10)
                        DataShow = DataShow * 256
                        DataShow = DataShow + Indata(i + 9)
                        DataShow = DataShow * 256
                        DataShow = DataShow + Indata(i + 8)
                        'BeiCeBiaoData.GongLv(1) = HexToBCD(DataShow, 4) 'A功率
                        MeterData(NUM).Power(1) = HexToBCD(DataShow, 4)
                        
                        DataShow = Indata(i + 13)
                        DataShow = DataShow * 256
                        DataShow = DataShow + Indata(i + 12)
                        DataShow = DataShow * 256
                        DataShow = DataShow + Indata(i + 11)
                        'BeiCeBiaoData.GongLv(2) = HexToBCD(DataShow, 4)  'B功率
                        MeterData(NUM).Power(2) = HexToBCD(DataShow, 4)
                        
                        DataShow = Indata(i + 16)
                        DataShow = DataShow * 256
                        DataShow = DataShow + Indata(i + 15)
                        DataShow = DataShow * 256
                        DataShow = DataShow + Indata(i + 14)
                        'BeiCeBiaoData.GongLv(3) = HexToBCD(DataShow, 4) 'C功率
                        MeterData(NUM).Power(3) = HexToBCD(DataShow, 4)
                        'BiaoShuJuShow IDS, ii
                        'BiaoShuDuQu_Main
                        'BeiCeBiaoShow
                        'If NeiRong = &HFF Then
                        'XiangMu = 3
                        'NeiRong = 2
                        'iaoZhengBuzhu
                        i = i + 20
                Case "E80F" 'A项电压基波
                        DataShow = Indata(i + 6)
                        DataShow = DataShow * 256
                        DataShow = DataShow + Indata(i + 5)
                        'BeiCeBiaoData.JiBoDianYa(0) = HexToBCD(DataShow, 2)
                        MeterData(NUM).HarmonicWave(0) = HexToBCD(DataShow, 2)
                        'BiaoShuJuShow IDS, ii
                        'BiaoShuDuQu_Main
                Case "E82F" 'B项电压基波
                        DataShow = Indata(i + 6)
                        DataShow = DataShow * 256
                        DataShow = DataShow + Indata(i + 5)
                        'BeiCeBiaoData.JiBoDianYa(1) = HexToBCD(DataShow, 2)
                        MeterData(NUM).HarmonicWave(1) = HexToBCD(DataShow, 2)
                        'BiaoShuJuShow IDS, ii
                        'BiaoShuDuQu_Main
                Case "E84F" 'C项电压基波
                         DataShow = Indata(i + 6)
                        DataShow = DataShow * 256
                        DataShow = DataShow + Indata(i + 5)
                        'BeiCeBiaoData.JiBoDianYa(2) = HexToBCD(DataShow, 2)
                        MeterData(NUM).HarmonicWave(2) = HexToBCD(DataShow, 2)
                        'BiaoShuJuShow IDS, ii
                        'BiaoShuDuQu_Main
                Case "E86F"  'A项电流基波
                        DataShow = Indata(i + 6)
                        DataShow = DataShow * 256
                        DataShow = DataShow + Indata(i + 5)
                        'BeiCeBiaoData.JiBoDianLiu(0) = HexToBCD(DataShow, 3)
                        MeterData(NUM).HarmonicWave(3) = HexToBCD(DataShow, 3)
                        'BiaoShuJuShow IDS, ii
                        'BiaoShuDuQu_Main
                Case "E88F"  'B项电流基波
                        DataShow = Indata(i + 6)
                        DataShow = DataShow * 256
                        DataShow = DataShow + Indata(i + 5)
                        'BeiCeBiaoData.JiBoDianLiu(1) = HexToBCD(DataShow, 3)
                        MeterData(NUM).HarmonicWave(4) = HexToBCD(DataShow, 3)
                        'BiaoShuJuShow IDS, ii
                        'BiaoShuDuQu_Main
                Case "E8AF" 'C项电流基波
                        DataShow = Indata(i + 6)
                        DataShow = DataShow * 256
                        DataShow = DataShow + Indata(i + 5)
                        'BeiCeBiaoData.JiBoDianLiu(2) = HexToBCD(DataShow, 3)
                        MeterData(NUM).HarmonicWave(5) = HexToBCD(DataShow, 3)
                        'BiaoShuJuShow IDS, ii
                        'BiaoShuDuQu_Main
                Case Else '其它情况
                       'BiaoShuJuShow IDS, ii
                       'BiaoShuDuQu_Main
            End Select
       End Select
    End If
Next i
inLen = 0
End Function

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -