发表于:2007-06-03 22:34:00
26楼
这个问题我也疑惑过,我问过西门子的技术支持他们也没头绪,这种数是u32格式,格式解析如下,比如52.3
这里
dim pt as string
dim dian as string
dim TIP as string
dim tp as string
dim tp1 as string
dim data as string
dim A as integer
.........
只表示52.3的处理方法
pt="52.3";参数52.3
TIP = CStr(pt)
dian = InStr(1, TIP, ".")
TP = Hex(Mid(TIP, 1, dian - 1))'截取52,变换为hex
For A = 1 To 4 - Len(TP)'补齐为16位长度
TP = "0" + TP
Next A
TP1 = Mid(TIP, dian + 1)'小数点后3,不变换数制,该
For A = 1 To 4 - Len(TP1)'补齐为后16位长度
TP1 = "0" + TP1
Next A
data=TP+TP1'组合后的U32位数据格式16#00340003,52.3里面的点只是前后16位的分割界定不参与计算,这个我已经试过了,写入读出都是对的