完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
现在用采集卡采集数据,用的“VISA读取”的VI,输出是字符串形式,正常显示是乱码,用十六进制显示可以得到正确的结果,将采集的数据存盘,用cooledit看,结果也正确。但是自己在做实时波形显示部分的时候怎么都不正确,具体原因如下,字符串转数值的时候只发现可以转换成无符号数,而采集下来的数据是有符号数,转换成无符号数之后就无法正确显示波形了。请教采集卡采集下来的有符号字符串类型的数据如何正确的转换成有符号数值并波形显示。
举例:采集下来的十六进制数D1,转换成二进制后是11010001,无符号数是209,有符号数是-81. 有没有这样一个VI直接将无符号数转换成有符号数的也行啊。 |
|
相关推荐
4个回答
|
|
曾经遇到过类似的状况,比如你说的16进制数D1,通过将16进制字符串转换成十进制的数值控件,转换后的值赋予一个数值显示控件,此时要注意的时,你的数值显示控件的数据类型要更改为有符号型的,比如I8/I16/I32,就可以成功的转变为负数,楼主可以试验一下。
|
|
|
|
你好,很感谢你能及时回答我的问题,你说的那个控件我试过,有两个问题。首先用VISA读取我每次循环设置的是读取10K的数据,而那个控件只能转换出一个数字,也就是10K数据中的第一个数据(原因不详)。第二,即使转换出来的结果也不对,原帖说过,读出的字符串正常显示是乱码,用十六进制显示才是正确结果,而上面这个控件似乎是以乱码进行转换的,所以输出结果全都是0.不知道我这样做是不是错误,若有好的方法请赐教。 |
|
|
|
是这样的,你采集到的数据是乱码,需要右键显示控件,选中十六进制显示,才是正确的结果,那你可以将读取到的内容通过字符串控件转换成十六进制的字符串,再转换成十进制的,你看看结果如何。
对于你每次读取的数据量是1K,建议你将读取到的内容存储到队列中,通过循环结构和索引字符串的函数的结合,每次索引出单个字符进行处理,然后将处理后的字符串再通过连接字符串函数合并起来,提供的这思路你可要试试。 |
|
|
|
VISA输出是字符串数据吗
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
用udl里的字符串信息在局域网内其他电脑连接sql数据库为什么为出现连接失败拒绝访问?
1708 浏览 2 评论
为什么同一个队列引用的全局变量,运行在两个子vi中发现队列数据丢失了
1306 浏览 0 评论
1521 浏览 0 评论
关于labview2024版本的lvanlys.dll出错的问题
3005 浏览 2 评论
1448 浏览 2 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 07:59 , Processed in 0.773307 second(s), Total 80, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号