
自租备己写的话,败型嫌是根据手动 *** 作的流程,在附带说明书上查找对应命令,利用GPIB write给示波器下命令,用GPIB read读取返回值
你先试一下用MAX里面的与仪器通信发这些命令有没有问题。你说族运能找到GPIB0的接口,那你的仪器有没有被扫描出来?
你附图,我的GPIB卡连了3个仪器,在VISA资源下面就已经有了自动扫描出的3个仪器的资源名称。
没有这些你就没法通信的。
如果这些你都有,那就试一下第一行,如果通信也是可以的,那就是程序的问题了。
根据你的说法,通信时没有问题了
那你用戚兆你写的程序发*IDN?可不可以,如果也行那就是你后面发的命令的问题了。跟那个I/O没啥关系了。
你再好好看下手册的命令描述,范例里面的命令有的时候是比较老的,不一定支持现在的仪器,你也可以执行下范例看行兆仔梁不行呀。
另外,要注意有些命令是没有返回值的,这样你在读 *** 作时当然会出错的,而一些测量的,比如说VOLT?之类的,你发下去最好要延时一下再去读的。
另外,建议你这些命令,你都用MAX里面的与仪器通信先试一下,哪些有返回值,哪些没有,再放到程序里面。
补:
询问:发送命令,并自动读取返回值,适用于有返回值的命令
发送:单纯的发送命令到设备
读取:从设备读取值,发送与读取一起用等同于询问,不过一个是自动,一个是手动。
比如说*IDN?,你点询问可以,你可以点下发送,再点读取也是一样。
你图中发的那个命令是 *** 作命令,没有返回值的吧,应该点发送,然后看仪器状态是否变化。发查询命令的时候,基本上后面有个‘?’,用询问才可以的。
VISA可控制GPIB、串口、USB、以太网、PXI或VXI仪器,并根据使用仪器的类型调用相应的驱动程序,用户无需学习各种仪器的通信协议。VISA独立于 *** 作系统、总线和编程环境。换言之,无论使用何种设备、 *** 作系统和编程语言,均使用相同的API。开始使用VISA之前,应确保选择合适的仪器控制方法。
GPIB、串口、USB、以太网和某些VXI仪器使用基于消息的通信方式。对基于消息的仪器进行编程,使用的是高层的ASCII字符串。仪器使用本地处理器解析命令字符串,设置合适的寄存器位,进行用户期望的 *** 作。SCPI(可编程仪器标准命令)是用于仪器编程的ASCII命令字符串的标准。相似的仪器通常使用相似的命令。用户只需学习一组命令,而无需学习各个仪器生产厂商各种仪器的不同命令消息。最常用的基于消息的函数是:VISA读取、VISA写入、VISA置触发有效、VISA清空和VISA读取STB。
PXI和许多VXI仪器铅大使用基扰基于寄存器的通信方式。对基于寄存器的仪器进行编程,使用的是将直接写入仪器控制寄存器的底层二进制信息。该缓激谨通信方式的优点是速度快,因为仪器不需解析命令字符串,并将信息转换为寄存器层次的程序。基于寄存器的仪器实际上是在直接硬件 *** 作层上进行通信。最常用的基于寄存器的函数是:VISA输入、VISA输出、VISA转入和VISA转出。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)