完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
Q: 在 labview 中 VISA 的读入与写出功能只接受字符串的资料格式,当应用需要传送以及接收二进制或十六进位值,而不是使用一般常用的 ASCII 字符来做为字符串的传送时,该怎么在 LabVIEW VISA 中使用二进制或十六进位的资料呢? A: 当 LabVIEW VISA 函数做资料的输入与输出时需要使用字符串的方式,但将这些字符转换成字符串时并不只侷限在标准的 ASCII 字符。每个字符都是一个 unsigned 的 8-bit 整数(U8),代表为 0-255 的值。传送二进制资料的的关键为,先将这些值转换成字符串的格式,如此才能够使用 VISA 的方式来做 write 的动作。同样地,VISA read 来的字符串值,也可以被转换成需要的输出格式。 这边有几个方法可以用来传算二进制值,按照不同的来源格式介绍如下: 传送固定的十六进位值,以及用十六进位格式显示收到的资料 最简单的方法来传送固定的十六进位(hex)值,即是在 LabVIEW 中使用一个 string 的 constant,并把这个 constant 设定成 Hex Display (设定方法为在 constant 上按右件选择 Display Format)。 如此就可以把让你输入非 ASCII 字符的十六进为值到 string 的 control 或 constant 中,并直接输出到 VISA write 函数。当使用 VISA Read 来读取资料的时候,这个字符串可以直接连线到一个 hex display 模式的 indicator,这样就可以把十六进位值显示在 front panel 上。 传送与接受固定的十六进位值:
传送 U8 的正整数(单一值或 array) 为了要传送一个 byte 的资料 (U8 整数),会使用 Build Array 函数来把构成一个只有一个 element 的 array。接着这个 Byte Array to String 可以把这个 array 转换成 VISA write 所可以使用的字符串格式。这个相同的方法可以用来转换一个包含多个 byte 的 array,只是这时候不需要再使用 Build Array。 传送与接受一个单一的 U8 整数:
传送与接受多个 U8 整数的 array:
传送非U8的值或其他值构成的 array
当传送的二进制档案比一个 byte 还大的时候,必须要先将这个值或 array 先做 typecast 转换成 U8 的 array,然后把这个 array 再转成字符串以便让 VISA Write 使用。同样相反的操作步骤可以用在 VISA Read 来把读到的字符串转成二进制资料格式。这些方法可以用在单一的资料 element 或是这些 element 构成的 array 上。 传送与接受多 byte 的值:
|
|
相关推荐
8 个讨论
|
|
你正在撰写讨论
如果你是对讨论或其他讨论精选点评或询问,请使用“评论”功能。
630 浏览 0 评论
548 浏览 0 评论
【团购】独家全套珍藏!龙哥LabVIEW视觉深度学习实战课(11大系列课程,共5000+分钟)
1374 浏览 0 评论
1343 浏览 1 评论
577 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-9 07:10 , Processed in 1.394741 second(s), Total 60, Slave 49 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
15651