采集的数据转换成有符号数的问题

2019-07-18 11:01发布

现在用采集卡采集数据,用的“VISA读取”的VI,输出是字符串形式,正常显示是乱码,用十六进制显示可以得到正确的结果,将采集的数据存盘,用cooledit看,结果也正确。但是自己在做实时波形显示部分的时候怎么都不正确,具体原因如下,字符串转数值的时候只发现可以转换成无符号数,而采集下来的数据是有符号数,转换成无符号数之后就无法正确显示波形了。请教采集卡采集下来的有符号字符串类型的数据如何正确的转换成有符号数值并波形显示。
举例:采集下来的十六进制数D1,转换成二进制后是11010001,无符号数是209,有符号数是-81.
有没有这样一个VI直接将无符号数转换成有符号数的也行啊。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
xjlin2
1楼-- · 2019-07-18 15:50
曾经遇到过类似的状况,比如你说的16进制数D1,通过将16进制字符串转换成十进制的数值控件,转换后的值赋予一个数值显示控件,此时要注意的时,你的数值显示控件的数据类型要更改为有符号型的,比如I8/I16/I32,就可以成功的转变为负数,楼主可以试验一下。
alfred47
2楼-- · 2019-07-18 21:28
 精彩回答 2  元偷偷看……
xjlin2
3楼-- · 2019-07-19 01:34
是这样的,你采集到的数据是乱码,需要右键显示控件,选中十六进制显示,才是正确的结果,那你可以将读取到的内容通过字符串控件转换成十六进制的字符串,再转换成十进制的,你看看结果如何。
对于你每次读取的数据量是1K,建议你将读取到的内容存储到队列中,通过循环结构和索引字符串的函数的结合,每次索引出单个字符进行处理,然后将处理后的字符串再通过连接字符串函数合并起来,提供的这思路你可要试试。
eddia2000
4楼-- · 2019-07-19 03:49
VISA输出是字符串数据吗

一周热门 更多>