3个字节
End If
If ab(0) >= 2 Then ‘判断第二通状态
TD(2) = True ‘第二道是真
ab(0) = ab(0) - 2 ‘第0位置零
cn = cn + 3 ‘帧长度加3个字节
End If
If ab(0) >= 1 Then ‘判断第一通状态
TD(1) = True ‘第一道是真
cn = cn + 3 ‘帧长度加3个字节
End If
For i = 1 To 8 ‘
If TD(i) = True Then
av = .Input ‘读取第一个数据字节(BCD码高位字节)
ab(2) = av(0) ‘转换保存到字节数据类型数组
av = .Input ‘读取第二个数据字节(BCD码低位字节)
ab(3) = av(0) ‘转换保存到字节数据类型数组
av = .Input ‘读取第三个接收字节(符号位字节)
ab(4) = av(0) ‘转换保存到字节数据类型数组
b1 = ab(2) - 6 * (ab(2) 16) ‘高位字节压缩BCD码转换为实数
b2 = ab(3) - 6 * (ab(3) 16) ‘低位字节压缩BCD码转换为实数
WW = b2 + b1 / 100 ‘数值组合,标定小数点
If ab(4) > 127 Then WW = -WW ‘判断数据符号位
Label1(i-1) = Format(WW,"0.00") ‘显示毫米单位数值,2位小数
If WW>Wmax(i) And WW<51 Then ‘判断最大值,仪表在刚开始工作时有干扰,会传导一些乱码,位移传感器有参数偏差,最大值一般都略大于50毫米,所以取51为极限最大值,取-51为极限最小值。
Wmax(i) = WW
Label2(i-1)=Format(Wmax(i),"0.00") ‘显示最大值
End If
If WW -51 Then ‘判断最小值
Wmin(i) = WW
Label3(i-1)=Format(Wmin(i),"0.00") ‘显示最小值
End If
End If
Next i
.RThreshold = cn ‘打开MSComm1事件接收
Else
.RThreshold = 1
End If
Case Else
End Select
End With
End Sub