Sub Cb485STS_Read(is_CMD As String)
    Dim ReadCommand As String
    Dim dbbh, Sjbs, temp1, ins2, ins3, ins4 As String
    Dim Start, xms, zjs, i, j As Integer
    Dim L, kzm, sjycd, sjbs2 As Long
    Dim Ins As Variant
    
    On Error GoTo errHandler
    zjs = Val(Right(c8.zjs, 2))
    kzm = Val("&H" + Right(c8.kzm, 2))
    sjycd = Val("&H" + Right(c8.sjycd, 2))
    sjbs2 = Val("&H" + Right(c8.sjbs2, 2))
       
    'Csh = 211
    W(li) = 254
    li = li + 1
    W(li) = 254
    li = li + 1
    W(li) = 254
    li = li + 1
    Csh = 0
    W(li) = 104
    Csh = Csh + W(li)
    li = li + 1
    Call MlzhSTS(c8.Number, 6, 0)
    W(li) = 104
    Csh = Csh + W(li)
    li = li + 1
    W(li) = kzm
    Csh = Csh + W(li)
    li = li + 1
    W(li) = sjycd
    Csh = Csh + W(li)
    li = li + 1
    Call MlzhSTS(c8.Sjbs, 2, 0)
    
    If sjycd = 3 Then
       Call MlzhSTS(c8.sjbs2, 1, 0)
    End If
     
    Csh = Csh Mod 256
    W(li) = Csh
    li = li + 1
    W(li) = 22
    
    c8.Send = ""
    ins2 = ""
    For i = 0 To UBound(W)
        ins2 = ins2 & Right("0" & CStr(Hex(W(i))), 2) & " "
        Next
    c8.Send = ins2
        
     '设置COM端口
    OpenCommSTS (0)
    If CommOpen < 0 Then
        Exit Sub
    End If
    '向串口发读命令
   
    MSComm1.Output = CVar(W)
      
    '延时0.5秒
    Start1 = Timer
    Do While Timer < Start1 + 3
        DoEvents  ' 将控制让给其他程序。
    Loop
   
    Ins = MSComm1.Input
    
    Arr = Ins    
          
    i = 0
    c8.Rece = ""
    ins3 = ""
    For i = 0 To UBound(Arr)
        ins3 = ins3 & Right("0" & CStr(Hex(Arr(i))), 2) & " "
        Next
    c8.Rece = ins3
    c8.Rece = Right(c8.Rece & String((255 - Len(c8.Rece)), " "), 255)
       
    Do While i < j   '12个固定字节,计算校验核计算到数据标识,Data之前
        Csh = Csh + Val(Arr(Start + i))
        i = i + 1
    Loop
    Csh = Csh Mod 256
    
    If Csh <> Csh1 Then
        c8.Flag = 3
        is_CMD = c8.Flag & c8.Cwz & c8.Send & c8.Rece & c8.Data
        'LB_MSG.Caption = "效验错误!"
        'LB_MSG.Caption = "效验核错误!"
        LB_MSG.Caption = "Verify Error!"
        Exit Sub
    End If
    c8.Flag = "1"
   
    'LB_MSG.Caption = "抄表成功!"
    LB_MSG.Caption = "Read Success!"
    
    '返回数据
    'is_CMD = c8.Flag & " " & c8.Send & c8.Rece & c8.Data
    is_CMD = c8.Flag & "00" & c8.Send & c8.Rece & c8.Data    Exit Sub
    '错误处理
errHandler:
    If Err.Number = 9 Then
        c8.Flag = "3"
        is_CMD = c8.Flag & c8.Cwz & c8.Send & c8.Rece & c8.Data
        'LB_MSG.Caption = "没有数据返回!"
        LB_MSG.Caption = "No data returned two!"
    Else
        c8.Flag = "3"
        is_CMD = c8.Flag & c8.Cwz & c8.Send & c8.Rece & c8.Data
        'LB_MSG.Caption = "抄表失败!"
        LB_MSG.Caption = "Read failure!"
    End If
End Sub