当前课程知识点:测试系统集成技术 > 第五章:虚拟仪器软件架构 > 5.4:自动测试系统软件设计综合实验 > Video
通过第二个例程,已经实现了控制仪器完成电压幅度值的测量
现在再回头看下这个例程
在这个程序里,和仪器建立会话后,
调用viWrite(instr, ":AUTOSET EXECUTE",16,&cnt);向仪器发送指令
调用viRead(instr, inbuf,128,&cnt);从仪器读取返回值
在前面例程讲解时主要集中在和仪器建立会话上,并没有详细解释这两个调用
这两个调用一个是“输出”,由控制机发送指令给仪器
一个是“输入”,从控制机读取信息
在VISA中输入和输出指令主要有两类,一类是格式化I/O,一类是非格式化I/O
viWrite和viRead是非格式化IO
送出命令时如viWrite(instr, ":AUTOSET EXECUTE",16,&cnt);,
调用中不仅包含送出的指令“:AUTOSET EXECUTE”,还包含指令字符串的长度16
在接收数据时如viRead(instr, inbuf,128,&cnt);,不仅要给出
接收数据的缓冲区inbuf,还要包含打算接收数据的长度128
如果接收数据的长度达不到要求的值,调用将会因超时退出
变量cnt中,返回实际读到的数据长度
非格式化IO调用比格式化IO繁琐,它的执行过程已经向大家演示过了
下面看格式化IO
现在打开格式化IO例程,这是源代码
在这个例程里,向仪器输出命令和读取数据调用了
viPrintf(instr, ":AUTOSET EXECUTE\n");和viScanf(instr,"%f\n",&fval);
送出命令时只需要包含命令字符串,不需要再指定命令字符串的长度
接收数据时,通过格式化控制字如:“%f\n”,可以直接将接收到的
字符数据转换为后面需要处理的形式,比非格式化IO方便不少
下面看程序的执行过程。
打开资源管理器
建立与仪器的会话
仪器复位,调用viPrintf,不需要命令长度
自动捕获信号
询问测量值
读取测量值
显示测量结果
关闭资源管理器
-1.1:自动测试系统的出现及意义
--Video
--Video
--附件
-1.2:测试系统体系结构
--Video
--Video
--Video
-第一章:绪论--1.3:课堂实验:网络化仪器控制
-2.1:GPIB总线技术、VXI总线技术、LXI总线技术
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
-第二章:接口总线--2.2:课堂实验:示波器程控
-3.1:消息交换控制协议
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
-3.2:程控消息句法
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
-第三章:消息交换控制协议--3.3:课堂实验:信号源程控
-4.1:SCPI的目标及主要内容
--Video
--Video
--Video
--Video
-4.2:SCPI语法与风格
--Video
--Video
--Video
--Video
-4.3:标准命令
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
-第四章:可程控仪器标准命令--4.4:课堂实验:频谱仪程控、数字多用表程控
-5.1:VISA概述
--Video
--Video
-5.2:VISA库构成
--Video
-5.3:VISA程序基本结构
--Video
-5.4:自动测试系统软件设计综合实验
--Video
--Video
--Video
--Video
--Video
-第五章:虚拟仪器软件架构--5.4:课堂实验:VISA程序设计基础实验
-6.1:IVI概述
--Video
-6.2:IVI程序设计基础实验
--Video
-第六章:可互换虚拟仪器技术--6.2:IVI程序设计基础实验