第3章 虚拟仪器软件标准
3.1.2 SCPI仪器模型
针对SCPI命令是描述测试功能,而不是仪器 信号路由选择 格式化 硬件组成、技术手段和前面板控制, SCPI提 用来控制信号输入通道与 用来转换数据的表达式,当数据需要 出了一个描述仪器测试功能的通用仪器模型, 内部功能间的路径 向外部接口传送时,必须格式化 如图 :
MEASure:VOLTage:AC? MAX,0.54,(@103,@108)
(2)CONFigure:配置命令
CONFigure命令的一般形式为: CONFigure:< function > < parameters > [,< source list > ] 该命令完成仪器配置 ,其参数意义及用法与 MEASure命令一致。例如,对于数字万用表, 该命令用指定参数设置数字万用表。
面板程序 应用程序 虚拟仪器开发平台 PC 机
被 测 信 号
传 感 器
虚拟仪器软件层次结构
仪器面板控制软件 数据分析处理软件 仪器驱动程序 输入/输出接口软件
输入/输出(I/O)接口软件 I/O接口软件存在于仪器与仪器驱动程序之间,是一个完成对 仪器内部寄存单元进行直接存取数据操作,为仪器驱动程序 提供信息传递的底层软件,是实现开放的、统一的虚拟仪器 系统的基础和核心。(VISA) 仪器驱动程序 仪器驱动程序是为用户提供能用于仪器操作的、较抽象的操 作函数集。连接上层应用软件和底层I/O软件的纽带和桥梁。 仪器生产厂家在提供仪器模块的同时提供仪器驱动程序。 应用软件 顶层应用软件主要包括仪器面板控制软件和数据分析处理软 件。一般是在仪器硬件厂商提供的I/O接口软件和仪器驱动程 序基础上进行应用软件开发。
常用仪器公用命令
(3)*TST?自检命令。该命令复位仪器,完成自检, 返回自检代码。返回“0”表示仪器正常,否则仪器 存在故障需维修。自检命令是确定仪器操作过程是 否出现问题的一个有效手段。 (4)*CLS 清除命令。中断正在执行的命令,清除在 命令缓冲区等待的命令。例如当数字表正在等待外 部触发信号时,此时输入的命令将在缓冲区等待, 直至触发信号接收到后才执行。命令*CLS将清除在 缓冲区等待的命令。 (5)*ERR?错误信息查询命令。当仪器操作过程中 发生错误时,错误代码和解释信息储存在错误队列 中,用下述命令可以读出错误代码和解释信息: SYST:ERR?
READ? == *CLS+INITiate+FETCh? MEASure? == *CLS+CONFigure+READ? 子系统命令 TRIGger: 触发命令 SENSe: 检测命令 CALibration:自校准命令 CALCulate:运算命令 FORMat: 格式命令 DISPlay: 显示命令
注意:读数的速度必须与DMM缓冲区容量匹配。
(4)FEtch?:取命令
FEtch?命令的一般形式为: FEtch? < function > ?< parameters > [, < source list > ] 该命令取出由最近的INITiate命令放在内存中 的读数值,并将这些读数送到输出缓冲区。 在送 FETch? 命令前,必须先执行 INIT 命令, 否则将产生错误。
长形助记符的规则
长形助记符与关键词的字母完全相同,只 不过长形助记符的书写格式有一定要求, 它被分成两部分,第一部分用大写字母表 示短形助记符,第二部分用小写字母表示 关键词的其余部分。 关键词的书写形式要求不严格,可以与长 形助记符完全相同,也可以只把第一个字 母大写。
助记符形成实例
Error!
第3章
虚拟仪器软件标准
Instrument Driver
第3章 虚拟仪器软件标准
教学内容
可编程仪器标准命令(SCPI) 虚拟仪器软件结构(VISA) 虚拟仪器驱动程序
Instrument Driver
虚拟仪器系统
以 PC-DAQ 接口的虚拟仪器为例,虚拟仪器 的整体结构如图
信 号 调 理 电 路 数 设 据 备 卡 驱 动
3.1.1 SCPI的目标
SCPI的总目标是节省自动测试设备程序开发 时间,保护设备制造者和使用者双方的硬件 和软件投资,为仪器控制和数据利用提供广 泛兼容的编码环境。 这个广泛兼容的编码环境是指:SCPI仪器程 控消息、响应消息、状态报告结构和数据格 式均有标准化的定义,其使用只与仪器测试 功能及仪器性能、精度相关。而不考虑仪器 硬件组成、制造厂家、通信物理连接硬件环 境和测试程序编制环境。
CALCulate:
3.2 虚拟仪器软件结构(VISA)
VISA ( Virtual Instrumentation
Software Architecture , VISA ),
测试应用软件 测试编程环境 仪器软面板
是VXI即插即用(VPP)系统联 盟制定的 I/O函数库及其相关规 范的总称,一般称这个 I/O 函 数库为VISA 库。 优点:面向器件而不是面向借口 总线,与硬件接口无关,是一个 标准且独立于硬件设备、接口、 操作系统和编程语言的 I/O函数 库,是现有I/O接口软件的一个 超集。
3.1.5 SCPI编程方法
SCPI命令采用“树结构”语言。 例如:用电压表测量直流电压 MEAS: VOLT: DC? 10, 0.001
复 位 初始化状态 设定触发方式 测 量 读数据到缓冲器 结果处理 到主机
*CLS *RST CONFigure: TRIGger: MEASure:
CONF: VOLT: DC 10, 0.001 TRIG: SOUT EXT READ? CONF: VOLT: DC 10, 0.001 TRIG: SOUT EXT INIT: FETCh?
信号路由选择 测量功能 格式化 数据总线
触发 信号路由选择
存储器 格式化 数据总线
信号产生
3.1.3 SCPI命令句法
SCPI程控命令标准由3部分内容组成:
第一部分“语法和式样”,描述SCPI命令的产 生规则以及基本的命令结构; 第二部分“命令标记”,主要给出SCPI要求或 可供选择的命令; 第三部分“数据交换格式”描述了一种数据采 集的标准表示方法,用于实现仪器与仪器之间 及其他应用场合中的数据交换。
SCPI的目标
( 1 )程控命令面向测试功能(信号),而不是描述 仪器操作.(兼容性:横向,纵向) ( 2 )减少类似测试功能的控制方法是保证编程兼容 性的关键. ( 3 )在与通信物理连接层硬件无关的高层次上定义 程控消息. (4)与编程手段和程序语言无关,SCPI用户测试程 序模块易于移植. (5)具有可缩性,可适应不同规模的测量控制. (6)SCPI的可扩性.(ATE程序必须向上兼容)
1. 语法和式样
SCPI命令由程控题头、程控参数和注释 3部分组成。 SCPI程控题头有两种形式,如图所示.
*
程控助记符
?
: :
短形助记符
:
长形助记符
数字后缀
?
短形助记符的规则
( 1)如果关键词不多于 4个英语字母,则关键词就 是短形助记符。 ( 2)如果关键词多于 4个英语字母,则通常保留关 键词的前4个字母作为短形助记符。但是在这种情 况下,如果第4个字母是元音,则把这个元音去掉, 用3个字母作短形助记符。 (3)所有长形、短形助记符均允许有数字后缀,以 区别类似结构的多种应用场合。例如使用不同触 发源时可用不同的数字后缀区别它们。在使用数 字后缀时,短形助记符仍允许使用4个不包括数字 的字母。
本章内容的结构关系
IEEE 488 GPIB SCPI VISA IVI
VPP
注意:
1. 仪器的种类繁多,要求驱动程序具有可互换性和 通用性; 2. 关注的是正在试图测量的信号,而不是正在用于 测量信号仪器。
3.1 可编程仪器标准命令(SCPI)
SCPI:Standard Commands for Programmable Instruments 可编程仪器标准命令是为解决程控仪 器编程进一步标准化而制定的标准程序语 言,目前已经成为重要的程控仪器软件标 准之一。
2. SCPI主干命令
(1)MEASure:测量命令 MEASure命令的一般形式为: MEASure:< function > ? < parameters >[,< source list >] 完成交流电压测量的命令形式为: MEASure : VOLTage : AC?[<range>[ , <resolution>]][,<channel list>] 例如:
命令中的符号
分号: : TRIG: DELAY 1; TRIG: COUNT 10 : TRIG: DELAY 1; COUNT 10 逗号: MEAS: VOLT: DC? 10, 0.001 空格用来分分隔命令助记符和参数; 问号用来指定仪器发送响应信息
2. 命令标记
SCPI命令标记主要给出 SCPI要求的和可供 选择的命令。 SCPI 命令分为两类:仪器公 用命令和SCPI主干命令。 SCPI把IEEE-488.2要求仪器必须执行的公 用命令作为 SCPI 仪器公用命令,这些公用 命令用于控制仪器的某些基本功能操作,其 句法和语义遵循IEEE-488I主干命令关键字与基本功能
SCPI主干命令关键字与基本功能
3. SCPI交换格式
SCPI交换格式主要描述了一种仪器与应用之间、应 用与应用之间、仪器与仪器之间可以使用的数据集 的标准方法。 SCPI 的交换格式语法与 IEEE-488.2 语法是兼容的,分为标准参数格式和数据交换格式 两部分。 标准参数格式 :数值参数、离散参数、布尔参数、 字符串参数 数据交换格式 : SCPI 的数据交换格式主要描述了 一种数据结构,它用来作为仪器与仪器之间以及不 同应用场合情况下交换特征数据。