我好久没有时间来论坛了,很想念朋友们!
最近遇到用vb通过串口获得仪表累计量读数的问题,由于对vb不是很熟悉,所以来请教各位高手们!
1.获得串口数据需要问答式,即发送命令,再获取返回的数据,那么如果我想要得是多个数据,那么我是不是只要一边发送,以便一直在读数并判断就可以了?
2.串口读到的应该都是十六进制吧,那么累计量又是浮点数,那么应该如何来获得这样的浮点数呢?是转换么?还是直接获取呢,如果是直接得到,那么也应该有个转换吧,总之,关于怎样从串口得到一个浮点数,又没有办法?能找到这样的源码么?因为这个问题催得很紧……麻烦各位多邦个忙,小妹在这里多谢了!

解决方案 »

  1.   

    串口的数据都是按Byte类型传送的!
    你要获得那种信息,这个需要自己来定义通讯两方的通讯协议!
    自己定义数据包的传送格式!(!自定义的通讯协议!)
      

  2.   

    仪表发送的数据是有他自己的数据格式的,你需要提取的是第几位到第几位数据自己爱怎么处理就怎么处理,如果是湖点的话分单精度和双精度,分别占4位,8位。CDbl("&H" & Hex(GetStr(7)) + Hex(GetStr(6)) + Hex(GetStr(5)) + Hex(GetStr(4)) + Hex(GetStr(3)) + Hex(GetStr(2)) + Hex(GetStr(1)) + Hex(GetStr(0)))  这是8位的算法!
      

  3.   

    收到的是byte数据类型 ,我们变为16进制的,然后再变double类型!