我用LABVIEW的VISA将数据写入,但从缓冲区读取时端口当前的字节数显示为0,也就是缓冲区没数据,怎么回事

如题所述

对于这个问题,首先建议你用串口调试助手等工具先进行调试,看看发送数据时,转换接口灯是否一闪一闪的,闪代表发送过去了,那看看接受的指示灯呢?都闪,不停的闪,说明调试成功。没成功,就是你写入地址的格式不正确(比如十六进制的,还是按十进制的,多试几下),这是本人经历过的。希望对你有点用。追问

这是我用的调试工具,现在发送没问题,但用LABVIEW就接收不到数据,小弟是新手求指点

追答

发送地址的格式,你可以试试啊。在LAbVIEW编程里,地址书输入框,输入地址码,不行的话,在换其他格式的,比如十进制,16进制。一个一个试,会行的。我想看下你的编程对不对,这个很重要

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-04-11
确定通讯设备连上了吗?如果测试的话可以使用232端口,将2脚和3脚短接起来,这样就可以受到发送的数据了追问

是这样吗,这点我不是很懂,因为我想做的是用LABVIEW控制打印机,用USB-232连上之后电脑会装好驱动,VISA也可以搜索到我设置的COM口,但是无论打什么数据打印机都没有反应就是我前面说的当前端口字节总为0,所以我想先做做自发自收的程序看看,需要将2,3脚短接才可以么,求大神们指点

追答

自发自收测试:将2,3脚短接,自动发送数据,这样端口上也就能接收到你所发的数据
控制打印机就涉及到具体的协议了,建议先用串口调试小助手调试。

本回答被提问者采纳
第2个回答  2013-04-11
要看一下具体程序才好说。

我用LABVIEW的VISA将数据写入,但从缓冲区读取时端口当前的字节数显示为...
对于这个问题,首先建议你用串口调试助手等工具先进行调试,看看发送数据时,转换接口灯是否一闪一闪的,闪代表发送过去了,那看看接受的指示灯呢?都闪,不停的闪,说明调试成功。没成功,就是你写入地址的格式不正确(比如十六进制的,还是按十进制的,多试几下),这是本人经历过的。希望对你有点用...

labview VISA读取缓冲区时,设定读取198个字节,但是读出来的数据长度不稳...
发送指令之前先清除缓存的数据 采用循环读取,每次读取出来的数据存储起来,字符长度满足后退出读取(需要设置超时退出)

关于Labview的VISA串口通信问题!!!求大牛!
你这个原因是 VISA读取到指定数目没读到,但是已经超时。比如你设定读取10个字节,结果读取到8个,一直等不到。而且串口是有超时的,默认是10S。百度“那些年,我们一起LabVEIW”,仪器版块试试。里面有教程。一般来说,控制仪器如果要立即返回的话,加个终止符就可以了。仪器一般都有终止符 ODOA之类的。

labview中visa读取数据最后一行数据读不到
1、增加延迟时间:在读取最后一行数据之前,添加适当的延迟时间,等待缓冲区中的数据完全传输到电脑中。2、确认读取数据的字节数:在读取数据时未正确设置读取数据的字节数,则会导致数据读取不完整,可以在VISARead函数中设置正确的字节数,并将其与缓冲区大小相匹配。3、使用循环结构:在单次读取数据时无...

labview中的visa延时问题?
因为串口是低速设备,你写入后到下位机应答回来一般会有20ms左右的时间。这个时间如果你去读取缓冲区就会出错。还有一个办法是不需要延时的,就是使用【VISA串口字节数】这个属性,直到这个属性返回的字节数和你期待的字节数相当时才去读取串口缓冲区。虽然这个方法不需要延时的,但是属性节点是LabVIEW中...

labvIEW串口通信读取字节数问题
串口操作(读写)建议加延时 可以把“串口字节数”连接到“VISA读”的那个接口上,对读取出来的字符串做处理应该简单一些吧,字符串显示格式修改为16进制或者字符串转字节数组可能更直观。循环外面的那个“VISA打开”应该没必要

labview想将串口读取缓存数据存到数组中,但是出问题了,资源有效,但VIS...
你是否之前打开了这个串口没有关闭?资源被占用了,把串口先关闭再试试。

LABVIEW 做串口通信,接收十六进制,为什么 终止符我老是禁止不了呢。遇 ...
你那个读取串口字节数还有选择结构其实没必要。如果你已知发过来的数据每15个字节为一组,VISA读取的字节数设置成了15,那么缓冲区内没达到15个字节,程序就会停在这一直等待,这样就避免了每次while循环轮询串口缓冲区,进而节省了系统资源。如果你怕出问题,一直等待,程序卡在这,可以再VISA配置的时候在...

labview可以通过虚拟一个串口实现数据的读写么?我采用一个虚拟串口时...
有时候用属性节点读不到,你改成具体的常数读取可能会没问题,如果串口设置都和仪器匹配的话

用labview VISA 读usb2.0 的数据 VISA缓冲不够,只有512K字节,如何扩大...
设置缓冲区可以用 VISA Set I\/O Buffer Size这个函数,但是毕竟131072太大了,用这个来设置估计也会有丢失数据的可能性。如果缓冲区不够,是否可能考虑将一次的数据分成多次来传呢?VISA的传输是以ASCII码的形式,把图像数据转成这种形式的过程中分成几个部分分开传。另外考虑到总线速度和传输量,一般...

相似回答