程控仪器标准命令SCPI
SCPI简介.
可选命令
SCPI可选命令是依仪器本身需求实现的命令,由仪器的功能决定。 SCPI可选命令是由程控题头和参数组成的,基本句法规则遵循IEEE488.2句 法规定,在SCPI标准中仅提出了详细的附加要求:SCPI选择命令是分层树型 结构,可以分成若干个子系统,每一子系统均为阶层结构关系。
SCPI的简介
可程控仪器标准指令集是架构在IEEE488.2上的新一代仪器 控制语法,其着眼点在于能用相同的标准仪器控制语言就可以控 制任一厂家的仪器,这样使用者就不必学习每一部仪器的命令语 法,方便系统的组建。 SCPI作为仪器程控命令,实现对仪器的控制,使得不同测 试仪器的相同功能具有相同的命令形式,在横向上使测试仪器兼 容。同时,SCPI使用相同的命令来控制同一类仪器中的相同功 能,从而使得仪器在纵向上兼容。
存储器
信号产生功能模型
SCPI仪器特定控制命令
SCPI仪器特定控制命令主要是用来从事测量、读取资料及 切换开关等工作,包括所有测量函数及一些特殊的功能函数。 SCPI仪器特定控制命令关键字之间都是以冒号(:)作为分隔符。 例如:设置数字多用表测量直流电压,量程10V,解析度7 位时使用如下命令即可。 CONF:VOLT:DC10,0.000 0001V SCPI仪器特定控制命令可分为必备命令(Required Commands)和可选命令(Optional Commands)两类。
SCPI仪器模型
为使SCPI命令具有更大限度的兼容性,SCPI标准运用了一 个程控命令仅面向测试功能而与仪器硬件和面板操作无关的准则。 根据这一准则,SCPI提出三种形式相容性:“纵向相容性”、 “横向相容性”、“功能相容性”。 纵向相容性——同一家族的两代仪器应该有相同的控制,如 两个示波器在时基、触发、电压设置上应该有相同的控制。 横向相容性——要求不同家族的两个仪器应该使用同一命令 进行相同的测量,如示波器和电子计数器都能使用 <:MEA:RTIM?>命令完成脉冲上升时间测量。 功能相容性——要求两个仪器用相同的命令能够实现相同的 功能,如频谱分析仪和射频源两者都能扫频,如果两个仪器使用 相同的频率和扫描测试功能,而不是仪器硬件组成、技术手段和 前面板控制,SCPI提出了一个描述仪器测试功能的仪器模型。
SCPI简介 自动测试系统
SCPI命令的每一命令题头为字母大、小写混合,其中,大 写字母部分表示为该命令题头的缩写部分 。
若一SCPI命令题头语法为RANGe,那么RANG为其缩写命 令,而RANGe为其全部命令,同时因为允许大小写,可得:
RANG=RANGe=RANGE=rang=ranG=Rang
几点说明
虽然SCPI是基于IEEE488.2的命令和格式,但它不局限于 GPIB器件,也允许通过其它通信接口总线传递消息,如VXI总 线、RS-232等,这样,使用SCPI开发的应用程序不但能在GPIB 系统中运行,也可以在VXI总线或RS-232系统中运行。
使用各种编程语言,如BASIC、C、FORTRAN等,都能把 SCPI命令传送给SCPI仪器,利用不同手段,如ATE生成器、仪 器软面板等,都可以生成SCPI测试程序。因此,为程序员提供 了非常灵活的测试程序编制环境,特别利于测试程序移植。
SCPI的简介
可程控仪器标准指令集是架构在IEEE488.2上的新一代仪器 控制语法,其着眼点在于能用相同的标准仪器控制语言就可以控 制任一厂家的仪器,这样使用者就不必学习每一部仪器的命令语 法,方便系统的组建。
SCPI作为仪器程控命令,实现对仪器的控制,使得不同测 试仪器的相同功能具有相同的命令形式,在横向上使测试仪器兼 容。同时,SCPI使用相同的命令来控制同一类仪器中的相同功 能,从而使得仪器在纵向上兼容。
SCPI命令语法格式
隐含命令 隐含命令指的是被方括号 “[]”括起来的命令。隐含命令的
作用是作为默认命令,当某一阶层中含有隐含命令,若下达命 令时跳过此层,表示使用该隐含命令。例如:在上述通用计数 器SCPI命令层次结构图中,SENSe为根命令层的隐含命令,而 UPP为第四层的隐含命令,因此,命令可下达为:
SCPI简介
SCPI的简介
可程控仪器标准指令集是架构在IEEE488.2上的新一代仪器 控制语法,其着眼点在于能用相同的标准仪器控制语言就可以控 制任一厂家的仪器,这样使用者就不必学习每一部仪器的命令语 法,方便系统的组建。 SCPI作为仪器程控命令,实现对仪器的控制,使得不同测 试仪器的相同功能具有相同的命令形式,在横向上使测试仪器兼 容。同时,SCPI使用相同的命令来控制同一类仪器中的相同功 能,从而使得仪器在纵向上兼容。
SCPI层次结构
SCPI命令格式为一树状阶层结构,可分为好几个次系统,每 一个次系统均为阶层结构关系,分别由一个顶层命令(可称为根 命令)配合一个或数个阶层命令构成。以通用计数器SCPI命令子 集为例,其阶层结构如下:
COUNTER
FREQ PERIOD RATIO TIMEINT INPUT POS_PW NEG_PW CTIN SLOP COUPLE ATTEN
CHAN1
POS NEG
CHAN2
POS NEG
CHAN1
AC DC
CHAN2
AC DC
CHAN1
CHAN2
0dB 10dB 0dB 20dB
通用计数器SCPI命令层次结构
SCPI命令语法格式
命令分隔符号 SCPI命令语法以“:”作为上、下层命令之间的分隔符号, 命令题头与参数之间以空格符加以间隔。 缩写命令 SCPI命令的每一命令题头为字母大、小写混合,其中,大 写字母部分表示为该命令题头的缩写部分 。 若一SCPI命令题头语法为RANGe,那么RANG为其缩写命 令,而RANGe为其全部命令,同时因为允许大小写,可得: RANG=RANGe=RANGE=rang=ranG=Rang
SCPI的目标
SCPI命令表 (中文版)
在上,最高位在下
INST1 INST1 INST1
INST2 INST2 INST2
INST3 INST3 INST3
OPC OPC OPC
QYE QYE QYE
DDE DDE DDE QUES QUES
EXE EXE EXE
CME CME CME ESB ESB
这条命令可以用来读取查询事件寄存器的值。在该命令被执行后,查询事件寄存器的值
被清零。
命令语法:STATus:QUEStionable[:EVENt]?
返回参数:<NR1>。
例:STAT:QUES?
STATus:QUEStionable:CONDition?
SCPI命令表
可编程直流电源
4.3.1 IEEE488.2共同命令
*CLS
*ESE
*ESE?
*ESR?
*IDN?
*OPC
*OPC?
*PSC
*PSC?
*RST
*SRE
*SRE?
*STB?
*SAV
*RCL
4.3.2 SCPI标准命令
condition event enable
逻
辑
或
操作状态寄存器
condition event enable event enable
逻
辑
或
逻
辑
或
标准事件寄存器状态位元组寄存器
condition event enable
逻
辑
或
注:
各寄存器中位的位置
ESC位置
仪器设备SCPI命令集的使用方法探讨
2.1命令格式
2.1命令格式
SCPI命令集采用“命令+参数”的格式。例如,对一个设备进行读数操作,可 以使用以下命令:
1、READ?伏特
1、READ?伏特
其中,“READ?”是命令,指定了要执行的操作,即读取设备的电压值;“伏 特”是参数,指定了要读取的物理量单位。
2.2参数说明
2.2参数说明
内容摘要
在绩效评价方法方面,目前常用的包括定性和定量分析、综合评价和单项评 价等。定性评价主要是通过专家打分、调查问卷等方式,对大型仪器设备的使用 情况进行评价。这种方法的优点是简单易行,缺点是主观性较强,难以做到客观 公正。定量评价则是通过建立数学模型,运用统计分析等方法,对大型仪器设备 的使用数据进行分析,以得出评价结果。
内容摘要
综上所述,绩效评价方法在高校大型仪器设备管理中具有重要的作用。通过 开展绩效评价工作,可以及时发现设备使用中存在的问题和不足,从而采取有效 的措施加以改进。此外,绩效评价结果还可以为高校领导决策提供参考依据,提 高设备配置的合理性和科学性。
内容摘要
在未来的研究中,我们可以进一步探索绩效评价方法的应用范围和深度,例 如将评价结果与设备购置、使用、报废等环节相结合,实现全生命周期的管理。 还可以考虑引入更多的新技术和方法,如、大数据等,以提高绩效评价的准确性 和效率。
3.1连接设备
3.1连接设备
首先,需要将电压表通过接口与计算机连接,确保设备能够被正确识别和访 问。
3.2发送命令为了获取电压表的读数,我们需要向设备发送READ?命令,并将 结果输出到控制台。可以使用Python语言中的串口通信库pySerial来实现这一步 骤。以下是相关代码:
#打开串口连接
#接收设备返回的读数
SCPI程控指令学习实验指导书
STATus、SYSTem、TEST、TRACe|DATA、TRIGger、UNIT 和 VXI 等 23 个子系 统命令集。
利用 Agilent Connection Expert 根据仪器 IP 配置仪器后,主控机通过 LXI 总线发送 SCPI 命令控制仪器,并在用户界面上显示程控命令和结果。
自动设置视频带 宽 设置中心频率 根 据 Span 自 动 设置中心频率 设置中心频率步 进 设置频率 span 设置起始频率 设置终止频率 设 置 ACP 测 量 平均扫描次数 设 置 ACP 测 量 平均模式 设置计算主信道 功率的积分带宽 设置信道功率测 量平均扫描次数 设置信道功率测 量平均模式 设置计算信道功 率的积分带宽 CA 自动定标 LC 关闭所有的标记 ul 连续峰值搜索开 at 关
四. 实验原理
SCPI 的目标是缩短自动测试设备(ATE,Automatic Test Equipment)程序开 发时间。SCPI 通过为仪器控制和数据使用提供一致的编程环境来达成这一目标。 所有的 SCPI 仪器都使用定义好的程控消息、仪器响应和数据格式来实现兼容的 编程环境。
SCPI 提供几种不同层次的仪器控制,简单的测量命令为用户提供容易、快 速的 SCPI 仪器控制,与此同时,更详细的命令则可以用于提供传统仪器控制。
过冲测量 周期测量 上升时间测量 平均值测量 最大值测量 最小值测量 峰峰值测量 波 波形前缀 形 波形样点数 获 波形数据来源 取 波形数据格式 获取波形数据 状 管理状态报告 态 使能 管 读取状态报告 理 管理标准事件 寄存器 读取标准事件 寄存器 设置测量完成 状态报告
功能 系 识别 统 自检 功 复位 能 清除
实验一 可程控仪器标准代码(SCPI)学习
SCPI简介PPT教学课件
横向相容性——要求不同家族的两个仪器应该使用同一命令 进行相同的测量,如示波器和电子计数器都能使用 <:MEA:RTIM?>命令完成脉冲上升时间测量。
功能相容性——要求两个仪器用相同的命令能够实现相同的 功能,如频谱分析仪和射频源两者都能扫频,如果两个仪器使用 相同的频率和扫描测试功能,而不是仪器硬件组成、技术手段和 前面板控制,SCPI提出了一个描述仪器测试功能的仪器模型。
SCPI程控仪器模型
程控仪器模型表示了SCPI仪器功能逻辑和分类。这种分类提 供各种不同类型仪器可利用的各式各样的SCPI命令的构成机制和 相容性。
信号通路
测量功能
格式化
数据总线
触发 存储器
信号通路
信号产生
格式化SCPI程控仪器模型数据总线输入检测
计算
输出
源
计算
触发
存储器
测量功能模型
触发
存储器
信号产生功能模型
SCPI仪器特定控制命令
SCPI仪器特定控制命令主要是用来从事测量、读取资料及 切换开关等工作,包括所有测量函数及一些特殊的功能函数。 SCPI仪器特定控制命令关键字之间都是以冒号(:)作为分隔符。
例如:设置数字多用表测量直流电压,量程10V,解析度7 位时使用如下命令即可。
CONF:VOLT:DC10,0.000 0001V SCPI仪器特定控制命令可分为必备命令(Required Commands)和可选命令(Optional Commands)两类。
SCPI的目标
SCPI的总目标是节省自 动测试设备程序开发的时间, 保护设备制造者和使用者双 方的硬、软件投资。
基于VISA库及SCPI命令的仪器程控测量
基于VISA库及SCPI命令的仪器程控测量201i年6月i日第34卷第11期现代电子技术ModernElectronicsTechniqueJun.2011V o1.34No.11基于VISA库及SCPI命令的仪器程控测量秦凡,韦高(西北工业大学电子信息学院,陕西西安710129)摘要:VIsA是VxI即插即用系统联盟定义的标准化的I/0接口软件,SCPI命令是一种用于可编程仪器的标准命令集.为了省去仪器测量中重复而复杂的手工操作和计算,避免人为误差,提高测量效率,以VisualC6.0为开发平台,应用VISA库函数与SCPI命令的混合编程,通过LAN口进行数据传输,对安立2028B 矢量网络分析仪设计了一套程控测量系统.通过使用该系统对材料的相对介电常数进行测量可以发现,该系统操作简单,且测量精度高.关键词:VISA库函数;SCPI命令;程控测量;矢量网络分析仪中图分类号:TN98—34文献标识码:A文章编号:1004—373X(2011)11—0118-03 InstrumentProgram—controlledMeasurementBasedonVISAandSCPIQINFan,WEIGao(SchoolofElectronicsandInformation,NorthwesternPolytechnicalUniversity,Xi'all7101 29,China)Abstract:VISAisastandardI/OinterfacesoftwaredevelopedbyVXIplug&playsyste msalliance.SCPIisstandardcommandsforprogrammableinstruments.Inordertoavoidcomplicatecalculationandimprovemeasurementefficiency,the designoftheprogramwhichcontroltheAntritsu2028BVNAwithVISAandSCPIinVisualC 6.0throughLANisdis—cussed.Thedesignofautomaticmeasuringsystemissimpleandiswidelyused.Sotheprogra misworthreferencingandap—plyingforprogrammerswhoworkonautomatictest.Keywords:VISA;SCPIinstruction;program—controlledmeasurement;VNA(vectornetworkanalyzer)0引言随着现代科学技术的发展,自动化技术在计量领域得到了广泛应用,自动化测试系统省去了重复而复杂的手工操作和计算,而且避免了人为误差,使得测量效率大大提高口].测量仪器方面,为了力求仪器程控更加简洁,仪器仪表生产厂家近几年来先后推出了带LAN接口的仪器仪表,对这些仪器进行程序程控时,可利用LAN口进行数据传输,无需再购买GPIP接口卡,从而节省了开支.本文以带有LAN接口的安立2028B矢量网络分析仪为例,深入阐述了在VisualC+T开发环境下应用VISA库函数和SCPI命令混合编程,通过LAN口对其进行程序控制的方法.lVISAVISA(VirtualInstrumentSoftwareArchitecture,虚拟仪器体系结构)的特点有Ⅲ:面向对象的编程;是当前所有仪器接口类型功能函数的超集,且十分简洁;作为标准函数,与仪器的I/0接口类型无关;其程序与操收稿日期:2010—12-20基金项目:西北工业大学基础技术基金(JC200939)作系统和编程语言无关,只需要很小的修改,就可以从一个平台移植到另一个平台.在应用中,VIsA库随软件一起保存在计算机系统中,是实现计算机系统和仪器之间命令和数据传输的桥梁与纽带.对于用户来说,只需要了解VISAI/O函数的格式和参数,在调用的时候只需要把参数传进去就可以完成仪器驱动的编写,而并不用关心VISA库与仪器是如何沟通的细节.这样就大大地节省了编程人员的精力,使编程人员不必关注底层设置,而专注于仪器本身的控制编程.2SCPI命令类型和语法格式SCPI(StandardCommandsforProgrammableIn—struments)语言为所有仪器仪表提供了一个广泛兼容的编程和数据使用环境,通过使用标准化的编程信息,仪器响应和数据格式来保证编程环境的兼容性,大大缩短了对自动测试设备编写程序所需时间l2].总体上看,SCPI命令可分成以下两组Ls_8_:SCPI通用命令和仪器指定的SCPI命令.SCPI通用命令包括了在IEEE488.2标准中所定义的通用功能,这些功能通常适用于支持IEEE488.2第11期秦凡等:基于VISA库及SCPI命令的仪器程控测量119 标准的测量仪器.SCPI通用命令与仪器的测量无关,主要用来控制重设,自我测试以及状态操作,并且该组命令以星号"*"开始,没有层次结构.每条指令独立完成特定的功能.表1为SCPI通用命令集.表1SCPl通用命令集*ESE*ESE?*ESR*0PC*oPC?*SRE*SRE7*STB*TST?SCPI仪器特定控制命令用来从事测量,读取数据,切换开关以及控制仪器设置等工作,这些函数通常只应用于与之对应的仪器.SCPI语法格式遵循"树形结构",通常由三部分构成:关键字,参数形式和注释.SCPI命令树可分为多个子系统,每个子系统由一个根命令和一个或数个层次命令构成.命令格式为:关键字<参数>:关键字<参数>:<参数>,<参数>……安立2028B矢量网络分析仪SCPI根命令"DIS—Play"的树形结构如图1所示.图1DISPlay命令结构树图1中,DISPlay是命令的第一级关键字,即根命令,WINDow是第二级关键字,TRACe是第三级关键字,各级依次排列,直到DISPlay命令的最底层.其中":"将关键字和较低一层的关键字分开;"{}"里为所设置的参数,其中可以为空;"TRACelMEMoryJBOTH"为第二级关键字"TRACe"的选择项.3程控矢量网络分析仪的实现3.1程控系统硬件构成该程控系统的硬件构成十分简单,如图2所示,安立2028B矢量网络分析仪作为测量仪器,计算机作为程控设备对其进行控制并读取数据,LAN网线连接矢量网络分析仪和计算机,使二者进行数据交换,实现对仪器的程控操作.[—————l矢量~网络20分28析B仪f图2程控系统硬件结构3.2常用VISA库函数和SCPI命令以下是本次程控系统中主要运用到的VISA库函数及SCPI命令.3.2.1VISA函数[.ViOpen,打开并指定VISAresourcename的设备连接.ViProperty,VISA设备的属性子节点,可以设置端点或传输方式.ViWrite,向VISAresourcename指定的设备写入数据.ViRead,从VISAresourcename指定的设备读出数据.ViClose,结束设备读写并关闭与指定设备的连接.3.2.2SCPI命令[(1)[:SENSe]:FREQuency:STARt<freq>[:SENSe]:FREQuency:STOP<freq>该命令的作用是分别设置起始频率和终止频率, <freq>为所要设定的具体频率值.(2)[:SENSe]:SWEep:POINts%NRI>此命令作用是设置频率点数.<NR1>是该命令的参数,其值必须为整形的正数.(3)矢量网络分析仪校准SCPI命令集:r:SENSe]:CORRection:COLLect:MEDium%COAXlWGUide~.r:SENSe]:CORRection:COLLect:TYPERFP1r:SENSe]:C0RRection:COLLect:METHod<SOLT1SSLTlSSST>r:SENSe]:cORRection:COLLect:CONNector<char>以上命令是对矢量网络分析仪的校准设置.它们的作用是:设置校准类型,设置测量类型,设置校准方法(SOLT/SSLT/SSST),设置输出端口.(4)r:SENSe]:CORRection:COLLect:ACQUire<char,NR1>此命令为启动校准命令,在矢网校准设置完成后,通过这条命令进行仪器校准.(5)r:SENSe]:C0RRection:COLLeet:SAVE此命令为保存数据命令,通过该命令可以很方便地保存自己需要的数据..3.3程控系统的编程实现基于VISA库函数及SCPI命令程控仪器的编程原理如下:应用VISA库函数,将SCPI命令通过LAN 口发送至仪器,仪器接收SCPI命令后,对其进行解析, 产生响应,并将测量数据通过LAN口返回至PC机,进行进一步处理,从而实现仪器程控.程控测量系统的程****12O现代电子技术2011年第34卷序流程如图3所示.(==二=)匝设置起始频率,终止频杠,点数测量图3程控系统流程图控制程序中的几个关键步骤如下:(1)实现PC机与仪器的连通实现PC机与仪器的连通,应首先打开两种类型的会话通道,即资源管理器会话通道和器件会话通道.使用VISA库函数ViOpenviOpenDefaultRM(&defaultRM) 打开默认资源管理器会话通道;使用函数viOpen(de—faultRM,rsreName,accessMode,timeout,vi)打开与指定仪器的会话通道.其中rsrcName是被指定仪器的惟一符号名称,由接口名称和器件地址组成;vi是该函数返回的与被指定器件通话的惟一逻辑标识符.在本次程控设计中,主控PC与安立2028B矢量网络分析仪会话通道的建立程序如下: ViSessiondefauhRM,instr;//定义变量viOpenDefaultRM(&defaultRM)://打开与默认资源管理器的会话通道viOpen(defauhRM,"TCPIP::192.168.1.11::inst0::IN—STR",VI—NULL,VLNULL,&instr);//建立与仪器的会话通道,其中仪器的IP地址为:192.168.1.11 (2)对仪器进行命令传输函数viWrite(vi,writeFmt,argl,arg2)实现仪器的命令传输.其中vi是仪器通话通道的逻辑标识符, writeFmt是格式标识符,argl,arg2是传递给仪器的参数.例如,对安立2028B矢量网络分析仪设置起始频率,终止频率,点数的程序如下:V1Write(1nstr,size,8Lretcount);viWrite(instr,一size,&retcount);viWrite(irtstr,&retcount)::SENSe:FREQuency:STARt8GHz,buffer_//设置起始频率为8GHz:SENSe:FREQuency:STOP12GHz,buffer//设置终止频率为12GHz:SENSe:SWEEP:P0INTS201,buffer—size,//设置点数为201点(3)从仪器中读取数据函数viRead(vi,writeFmt,argl,arg2)实现数据的读取.括号中参数的含义与函数viWrite中相同.本例中将仪器测量数据读人PC机,程序如下: viRead(instr,(unsignedchar*)buffer,buffer—size,//将数据读人缓存中(4)关闭对话通道测量结束后,应将对话通道关闭,程序如下: viClose(instr);viClose(defaultRM)3.4测量系统操作界面及测量数据本文以VisualC6.0为开发平台,开发出了界面友好的程控系统Ⅲ,图4(a),(b)分别为该系统基本参数设置界面和数据显示界面.一~一l…一』蛐龃:#*≮女蜘碴…~z∞蝇~皿|—础晦,{i一一~~廿陋蕊黛蘸慧船:…一《瑚目《-4∞"哦脚吣蟪,二告i[j蠹]~~一j(a)基本参数设置界面(b)数据显示界面图4程控系统操作界面为了验证该测量系统的精确性,本文使用该测量系统分别对聚四氟乙烯等材料的相对介电常数进行了测量,测量结果如表2所示,结果表明,该系统操作简单且精确度高.其中聚四氟乙烯相对介电常数标称值.为2.05.表2测量系统测得的相对介电常数4结论本文以VIsA库函数及SCPI命令为基础,以VisualC"6.0K平台,方便地实现了对安立2028B矢量网络分析仪的控制.本系统设计流程简明且实用,为智能仪器的程控开发提供了良好的设计思路,并且程序的设计具有可移植性,可扩充性,可裁剪性等诸多优点, 设计者也可根据自己需要,在本设计的基础上,灵活搭(下转第123页)玉第11期朱巍峰:3D人脸识别研究探索123识别算法本身不可纠正的错误;(3)对人的生理认识的不足.由于计算机没有人的经验和知识功能,而只有计算功能,同时由于对肌肉的运动理论和表情形成等问题,现在还不能提供给计算机足够的专家支持;(4)受环境和条件的约束.影响二维识别的不利因素在三维识别上同样存在,如光线的强弱,方向,遮盖,阴影,背景等;(5)实现方式和手段的不足.传统的识别方法不能满足三维识别的要求,必须改进或采用新的方法.例如由于动态图像的计算量太大,因此,适用于静态图像处理的神经网络就变得不适合了.4结语3D人脸的研究始于计算机动画和生物医学成像.计算机动画方面的方法是在计算机上生成三维的人脸来表达人的运动,姿态和表情.这种动画的人脸可以在不同的环境下应用和发展为虚拟现实,这在生物医学方面可从生物图层或切片来重构人体器官组织,并将其用于病理分析.而三维人脸识别是极具挑战性的课题,如在技术上有所突破,将具有很强的创新性和应用价值.参考文献E1GPHIILIPSJ,GROTHERP,BLACKBURND,eta1.Face recognitionvendortest2002[R].Is.1.]:Is.n.],2002.I-2]AMORBB,ARDABILIANM,CHENIM.3Dface modelingbasedonstructured—lightassistedstereosensor[c]//Proc.ofICIAP.Is.1.]:ICIP,2005:6-8.[3]PUD,DUC,YuZ,eta1.Designoffacerecognitiondoor managersystembasedonDSP[c]//Proceedingsof2005 InternationalConferenceonEmbeddedandUbiquitousCorn—puting.Nagasaki,Japan:EUC,2005:87—97.[4]HSURL,JAINAK.Facemodelforrecognition[c]//Proc.ofIEEEICIP,[s.1.]:ICIP,2001,2(10):693—696.[5]zH0uS,CHEILAPPAR.Fromsamplesimilaritytoen—semblesimilarity:probabilisticdistancemeasuresinrepro ducingkernelHilbertspace[J].IEEETrans.OilPAMI,2006,28(6):917-929.[6]俞王新.计算机人脸检测与识别方法的研究[D].上海:上海交通大学,2009.[7]高志升.彩色图像人脸检测新方法[c].第十四届全国图象图形学学术会议论文集.北京:清华大学出版社,2008:113—115,,E8]宋红,石峰.面向视频监控的快速多人脸检测与分割[J].兵工,2006,27(2):252-257.[9]王英杰,谢金法.基于复杂背景的彩色图像肤色分割[J].重庆工学院:自然科学版,2009(4):109—112.[1O]段锦.人脸自动识别中若干问题研究[D].长春:吉林大学.2004.作者简介:朱巍峰男,1975年出生,广东南雄人,副主任,高级职业指导师.主要研究方向为新媒体,图形图像处理.(上接第120页)建适合自己的测试系统.同时,通过仪器自带的LAN口实现通信,不仅有效地降低了开发成本,而且使程控系统更加简洁,具有广阔的应用前景.参考文献[1]朱波,李华.基于SCPI语言的智能仪器LabVIEW驱动程序设计口].仪表技术与传感器,2008(9):53—54.[2]杨晶菁,顾亚平,陈光祸.VISA事件机制的设计与实现[J].中国测试技术,2006,32(2):114—116.[3]高玉栋,肖铁军,王刚,等.基于GPIB接口的远程测试系统的设计I-J].微计算机信息,2008,24(28):234—236.[4]张磊.利用VISA控制仪器设备各种接口[J].电子测试,2008(10):58—61.[5]陈长龄,王子斌.测试(自动)系统集成技术[EB/OI].[2010—07—02]./p一30454202711.htm1.[6]黄梦涛,全定可,付向阳.基于SCPI命令的智能仪器驱动设计EJ].化工自动化及仪表,2010,37(4):103105.[7]丁群,程海,郭筱颖,等.SCPI命令与AX5488接口函数的结合[J].哈尔滨商业大学,2003,19(5):575—577.[8]季青.用VB实现基于GPIB的自动测试系统[J].计量技术,2008(8):34—36.r9]NationalInstrumentsCorporation.NI-VISAusermanual[M].USA:NationalInstrumentsCorporation,1996.[1O]安立公司.安立MS2028B矢量网络分析仪编程手册[s].美国:安立公司,2010.[11]孙景发,李刚,李素芬,等.嵌入到VC程序中控制HP34401A进行高精度电压测量[J].仪表技术与传感器,2003(9):13-15.[12]ingsix-portreflectometermeasurementof complexdielectricconstant[J].IEEETrans.onIM,1987,36(2):537—539.作者简介:秦凡男,1987年出生,陕西西安人,在读硕士研究生.主要从事微波测量,微波技术与天线方面的研究.韦高男,1963年出生,山东单县人,教授,博士生导师,长期从事微波技术与天线方向的科研与教学工作.主要研究方向为微波测量技术与微波通信.。
程控仪器标准命令SCPI
信号发生
格式化
数据总线
简化的源仪器模型
哈工大测控所
19
第二节 SCPI语法与风格
二.标准命令的句法和型式
1.程控题头 公用命令和询问题头
﹡RST(复位) ﹡OPC?(操作完成询问)
﹡
<程控助记符>
?
公用命令和询问句法流图
哈工大测控所
20
第二节 SCPI语法与风格
仪器控制题头 OUTPut: ATTenuation (控制输出衰减) MEASure: VOLTage: AC?
哈工大测控所
4
第一节 SCPI的目标及主要内容
程控命令面向测试功能,而不是描述仪器操作;兼 容的编程环境使用同样的命令和参数来控制具有相 同功能的仪器。
纵向兼容:是指同类仪器应有相同的控制命令
两台示波器在时基、触发、电压设置上应有相同的控制命令
使用同一命令能从两台不同的万用表读回直流电压
横向兼容:是指两台不同类别的仪器使用同样的命令来控 制类似的测试功能
1999年重新修订为 SCPI-1999
哈工大测控所
3
第一节 SCPI的目标及主要内容
一.SCPI的目标
SCPI的目标是缩短自动测试设备程序开发时间 SCPI通过为仪器控制和数据使用提供广泛兼容的编
程环境来达成这一目标。所有SCPI仪器都使用标准 化的程控消息、仪器响应和数据格式从而实现兼容 的编程环境
位置 仪器模型反映了仪器中测量和信号数据应用的流程 对具体的仪器而言,并不需要实现模型中的所有模
块的功能,只需实现仪器模型中用到的相应的模块 的功能
哈工大测控所
18
第二节 SCPI语法与风格
电压表可能只需要用到测量功能、触发功能和格式 化功能
Agilent 34970A Multifunction Instrument SCPI 命令概述说
4XLFN 5HIHUHQFH *XLGHSCPI Command SummaryThe following conventions are used for SCPI command syntax for remote interface programming:•Square brackets ( [ ] ) indicate optional keywords or parameters. •Braces ( { } ) enclose parameter choices within a command string.•Triangle brackets ( < > ) enclose parameters for which you mustsubstitute a value.• A vertical bar ( | ) separates multiple parameter choices.Rules for Using a Channel ListMany of the SCPI commands for the 34970A include a scan_list or ch_list parameter which allow you to specify one or more channels. The channel number has the form (@scc), where s is the slot number (100, 200, or 300) and cc is the channel number. You can specify a single channel, multiple channels, or a range of channels as shown below.•The following command configures a scan list to include only channel 10 on the module in slot 300.ROUT:SCAN (@310)•The following command configures a scan list to include multiple channels on the module in slot 200. The scan list now contains onlychannels 10, 12, and 15 (the scan list is redefined each time you send a new ROUTe:SCAN command).ROUT:SCAN (@210,212,215)•The following command configures a scan list to include a range of channels. When you specify a range of channels, the range may contain invalid channels (they are ignored), but the first and last channel in the range must be valid. The scan list now contains channels 5 through 10 (slot 100) and channel 15 (slot 200).ROUT:SCAN (@105:110,215):TEMPerature? {TCouple|RTD|FRTD|THERmistor|DEF},{<type>|DEF}[,1[,{<resolution>|MIN|MAX|DEF}]] ,(@<scan_list>) :VOLTage:DC? [{<range>|AUTO|MIN|MAX|DEF}[,<resolution>|MIN|MAX|DEF}],] (@<scan_list>):VOLTage:AC? [{<range>|AUTO|MIN|MAX|DEF}[,<resolution>|MIN|MAX|DEF}],] (@<scan_list>):RESistance? [{<range>|AUTO|MIN|MAX|DEF}[,<resolution>|MIN|MAX|DEF}],] (@<scan_list>):FRESistance? [{<range>|AUTO|MIN|MAX|DEF}[,<resolution>|MIN|MAX|DEF}],] (@<scan_list>):CURRent:DC? [{<range>|AUTO|MIN|MAX|DEF}[,<resolution>|MIN|MAX|DEF}],] (@<scan_list>):CURRent:AC? [{<range>|AUTO|MIN|MAX|DEF}[,<resolution>|MIN|MAX|DEF}],] (@<scan_list>):FREQuency? [{<range>|AUTO|MIN|MAX|DEF}[,<resolution>|MIN|MAX|DEF}],] (@<scan_list>):PERiod? [{<range>|AUTO|MIN|MAX|DEF}[,<resolution>|MIN|MAX|DEF}],] (@<scan_list>):DIGital:BYTE? (@<scan_list>):TOTalize? {READ|RRESet} ,(@<scan_list>)Monitor Commands(see page 237 in the User’s Guide)ROUTe:MONitor (@<channel>):MONitor?ROUTe:MONitor:STATe {OFF|ON}:MONitor:STATe?ROUTe:MONitor:DATA?Scan Statistics Commands(see page 233 in the User’s Guide)CALCulate:AVERage:MINimum? [(@<ch_list>)]:AVERage:MINimum:TIME? [(@<ch_list>)]:AVERage:MAXimum? [(@<ch_list>)]:AVERage:MAXimum:TIME? [(@<ch_list>)]:AVERage:AVERage? [(@<ch_list>)]:AVERage:PTPeak? [(@<ch_list>)]:AVERage:COUNt? [(@<ch_list>)]:AVERage:CLEar [(@<ch_list>)]DATA:LAST? [<num_rdgs>,][(@<channel>)]:SCAN (@<scan_list>):SCAN?:SCAN:SIZE?TRIGger:SOURce {BUS|IMMediate|EXTernal|ALARm1|ALARm2|ALARm3|ALARm4|TIMer} :SOURce?TRIGger:TIMer {<seconds>|MIN|MAX}:TIMer?TRIGger:COUNt {<count>|MIN|MAX|INFinity}:COUNt?ROUTe:CHANnel:DELay <seconds>[,(@<ch_ list>)]:CHANnel:DELay? [(@<ch_list>)]:CHANnel:DELay:AUTO {OFF|ON}[,(@<ch_list>)]:CHANnel:DELay:AUTO? [(@<ch_list>)]FORMat:READing:ALARm {OFF|ON}:READing:ALARm?:READing:CHANnel {OFF|ON}:READing:CHANnel?:READing:TIME {OFF|ON}:READing:TIME?:READing:UNIT {OFF|ON}:READing:UNIT?FORMat:READing:TIME:TYPE {ABSolute|RELative}:READing:TIME:TYPE?ABORtINITiateREAD?Scan Memory Commands(see page 235 in the User’s Guide)DATA:POINts?DATA:REMove? <num_rdgs>SYSTem:TIME:SCAN?FETCh?R? [<max_count>]Scanning With an External Instrument(see page 239 in the User’s Guide)ROUTe:SCAN (@<scan_list>):SCAN?:SCAN:SIZE?TRIGger:SOURce {BUS|IMMediate|EXTernal|TIMer}:SOURce?TRIGger:TIMer {<seconds>|MIN|MAX}:TIMer?TRIGger:COUNt {<count>|MIN|MAX|INFinity}:COUNt?ROUTe:CHANnel:DELay <seconds>[,(@<ch_ list>)]:CHANnel:DELay? [(@<ch_list>)]ROUTe:CHANnel:ADVance:SOURce {EXTernal|BUS|IMMediate} :CHANnel:ADVance:SOURce?ROUTe:CHANnel:FWIRe {OFF|ON}[,(@<ch_list>)]:CHANnel:FWIRe? [(@<ch_list>)]INSTrument:DMM {OFF|ON}:DMM?:DMM:INSTalled?Temperature Configuration Commands(see page 219 in the User’s Guide)CONFigure:TEMPerature {TCouple|RTD|FRTD|THERmistor|DEF},{<type>|DEF}[,1[,{<resolution>|MIN|MAX|DEF}]] ,(@<scan_list>) CONFigure? [(@<ch_list>)]UNIT:TEMPerature {C|F|K}[,(@<ch_list>)]:TEMPerature? [(@<ch_list>)][SENSe:]TEMPerature:TRANsducer:TYPE {TCouple|RTD|FRTD|THERmistor|DEF}[,(@<ch_list>)]:TYPE? [(@<ch_list>)][SENSe:]TEMPerature:TRANsducer:TCouple:TYPE {B|E|J|K|N|R|S|T}[,(@<ch_list>)]:TCouple:TYPE? [(@<ch_list>)]:TCouple:CHECk {OFF|ON}[,(@<ch_list>)]:TCouple:CHECk? [(@<ch_list>)][SENSe:]TEMPerature:TRANsducer:TCouple:RJUNction:TYPE {INTernal|EXTernal|FIXed}[,(@<ch_list>)]:TCouple:RJUNction:TYPE? [(@<ch_list>)]:TCouple:RJUNction {<temperature>|MIN|MAX}[,(@<ch_list>)]:TCouple:RJUNction? [(@<ch_list>)][SENSe:]TEMPerature:RJUNction? [(@<ch_list>)][SENSe:]TEMPerature:TRANsducer:RTD:TYPE {85|91}[,(@<ch_list>)]:RTD:TYPE? [(@<ch_list>)]:RTD:RESistance[:REFerence] <reference>[,(@<ch_list>)]:RTD:RESistance[:REFerence]? [(@<ch_list>)][SENSe:]TEMPerature:TRANsducer:FRTD:TYPE {85|91}[,(@<ch_list>)]:FRTD:TYPE? [(@<ch_list>)]:FRTD:RESistance[:REFerence] <reference>[,(@<ch_list>)]:FRTD:RESistance[:REFerence]? [(@<ch_list>)][SENSe:]TEMPerature:TRANsducer:THERmistor:TYPE {2252|5000|10000}[,(@<ch_list>)]:THERmistor:TYPE? [(@<ch_list>)][SENSe:]TEMPerature:NPLC {0.02|0.2|1|2|10|20|100|200|MIN|MAX}[,(@<ch_list>)] TEMPerature:NPLC? [{(@<ch_list>)|MIN|MAX}]V oltage Configuration Commands(see page 223 in the User’s Guide)CONFigure:VOLTage:DC [{<range>|AUTO|MIN|MAX|DEF}[,<resolution>|MIN|MAX|DEF}],] (@<scan_list>)CONFigure? [(@<ch_list>)][SENSe:]VOLTage:DC:RANGe {<range>|MIN|MAX}[,(@<ch_list>)]VOLTage:DC:RANGe? [{(@<ch_list>)|MIN|MAX}]VOLTage:DC:RANGe:AUTO {OFF|ON}[,(@<ch_list>)]VOLTage:DC:RANGe:AUTO? [(@<ch_list>)][SENSe:]VOLTage:DC:RESolution {<resolution>|MIN|MAX}[,(@<ch_list>)]VOLTage:DC:RESolution? [{(@<ch_list>)|MIN|MAX}][SENSe:]VOLTage:DC:APERture {<time>|MIN|MAX}[,(@<ch_list>)]VOLTage:DC:APERture? [{(@<ch_list>)|MIN|MAX}][SENSe:]VOLTage:DC:NPLC {0.02|0.2|1|2|10|20|100|200|MIN|MAX}[,(@<ch_list>)] VOLTage:DC:NPLC? [{(@<ch_list>)|MIN|MAX}]INPut:IMPedance:AUTO {OFF|ON}[,(@<ch_list>)]:IMPedance:AUTO? [(@<ch_list>)][SENSe:]ZERO:AUTO {OFF|ONCE|ON}[,(@<ch_list>)]ZERO:AUTO? [(@<ch_list>)]CONFigure:VOLTage:AC [{<range>|AUTO|MIN|MAX|DEF}[,<resolution>|MIN|MAX|DEF}],] (@<scan_list>)CONFigure? [(@<ch_list>)][SENSe:]VOLTage:AC:RANGe {<range>|MIN|MAX}[,(@<ch_list>)]VOLTage:AC:RANGe? [{(@<ch_list>)|MIN|MAX}]VOLTage:AC:RANGe:AUTO {OFF|ON}[,(@<ch_list>)]VOLTage:AC:RANGe:AUTO? [(@<ch_list>)][SENSe:]VOLTage:AC:BANDwidth {3|20|200|MIN|MAX}[,(@<ch_list>)]VOLTage:AC:BANDwidth? [{(@<ch_list>)|MIN|MAX}]Resistance Configuration Commands(see page 224 in the User’s Guide)CONFigure:RESistance [{<range>|AUTO|MIN|MAX|DEF}[,<resolution>|MIN|MAX|DEF}],] (@<scan_list>)CONFigure? [(@<ch_list>)][SENSe:]RESistance:RANGe {<range>|MIN|MAX}[,(@<ch_list>)]RESistance:RANGe? [{(@<ch_list>|MIN|MAX}]RESistance:RANGe:AUTO {OFF|ON}[,(@<ch_list>)]RESistance:RANGe:AUTO? [(@<ch_list>)][SENSe:]RESistance:RESolution {<resolution>|MIN|MAX}[,(@<ch_list>)]RESistance:RESolution? [{(@<ch_list>)|MIN|MAX}]RESistance:APERture {<time>|MIN|MAX}[,(@<ch_list>)]RESistance:APERture? [{(@<ch_list>)|MIN|MAX}]RESistance:NPLC {0.02|0.2|1|2|10|20|100|200|MIN|MAX}[,(@<ch_list>)] RESistance:NPLC? [{(@<ch_list>)|MIN|MAX}][SENSe:]RESistance:OCOMpensated {OFF|ON}[,(@<ch_list>)]RESistance:OCOMpensated? [(@<ch_ list>)]CONFigure:FRESistance [{<range>|AUTO|MIN|MAX|DEF}[,<resolution>|MIN|MAX|DEF}],] (@<scan_list>)CONFigure? [(@<ch_list>)][SENSe:]FRESistance:RANGe {<range>|MIN|MAX}[,(@<ch_list>)]FRESistance:RANGe? [{(@<ch_list>)|MIN|MAX}]FRESistance:RANGe:AUTO {OFF|ON}[,(@<ch_list>)]FRESistance:RANGe:AUTO? [(@<ch_list>)][SENSe:]FRESistance:RESolution {<resolution>|MIN|MAX}[,(@<ch_list>)]FRESistance:RESolution? [{(@<ch_list>)|MIN|MAX}]FRESistance:APERture {<time>|MIN|MAX}[,(@<ch_list>)]FRESistance:APERture? [{(@<ch_list>)|MIN|MAX}]FRESistance:NPLC {0.02|0.2|1|2|10|20|100|200|MIN|MAX}[,(@<ch_list>)] FRESistance:NPLC? [{(@<ch_list>)|MIN|MAX}][SENSe:]FRESistance:OCOMpensated {OFF|ON}[,(@<ch_list>)]FRESistance:OCOMpensated? [(@<ch_ list>)]Current Configuration Commands(see page 224 in the User’s Guide)Valid only on channels 21 and 22 on the 34901A multiplexer module.CONFigure:CURRent:DC [{<range>|AUTO|MIN|MAX|DEF}[,<resolution>|MIN|MAX|DEF}],] (@<scan_list>)CONFigure? [(@<ch_list>)][SENSe:]CURRent:DC:RANGe {<range>|MIN|MAX}[,(@<ch_list>)]CURRent:DC:RANGe? [{(@<ch_list>)|MIN|MAX}]CURRent:DC:RANGe:AUTO {OFF|ON}[,(@<ch_list>)]CURRent:DC:RANGe:AUTO? [(@<ch_list>)][SENSe:]CURRent:DC:RESolution {<resolution>|MIN|MAX}[,(@<ch_list>)]CURRent:DC:RESolution? [{(@<ch_list>)|MIN|MAX}][SENSe:]CURRent:DC:APERture {<time>|MIN|MAX}[,(@<ch_list>)]CURRent:DC:APERture? [{(@<ch_list>)|MIN|MAX}][SENSe:]CURRent:DC:NPLC {0.02|0.2|1|2|10|20|100|200|MIN|MAX}[,(@<ch_list>)] CURRent:DC:NPLC? [{(@<ch_list>)|MIN|MAX}]CONFigure:CURRent:AC [{<range>|AUTO|MIN|MAX|DEF}[,<resolution>|MIN|MAX|DEF}],] (@<scan_list>)CONFigure? [(@<ch_list>)][SENSe:]CURRent:AC:RANGe {<range>|MIN|MAX}[,(@<ch_list>)]CURRent:AC:RANGe? [{(@<ch_list>)|MIN|MAX}]CURRent:AC:RANGe:AUTO {OFF|ON}[,(@<ch_list>)]CURRent:AC:RANGe:AUTO? [(@<ch_list>)][SENSe:]CURRent:AC:BANDwidth {3|20|200|MIN|MAX}[,(@<ch_list>)]CURRent:AC:BANDwidth? [{(@<ch_list>)|MIN|MAX}]Frequency and Period Configuration Commands(see page 214 in the User’s Guide)CONFigure:FREQuency [{<range>|AUTO|MIN|MAX|DEF}[,<resolution>|MIN|MAX|DEF}],] (@<scan_list>) CONFigure? [(@<ch_list>)][SENSe:]FREQuency:VOLTage:RANGe {<range>|MIN|MAX}[,(@<ch_list>)] FREQuency:VOLTage:RANGe? [{(@<ch_ list>)|MIN|MAX}]FREQuency:VOLTage:RANGe:AUTO {OFF|ON}[,(@<ch_list>)]FREQuency:VOLTage:RANGe:AUTO? [(@<ch_list>)] [SENSe:]FREQuency:APERture {0.01|0.1|1|MIN|MAX}[,(@<ch_list>)] FREQuency:APERture? [{(@<ch_list>)|MIN|MAX}] [SENSe:]FREQuency:RANGe:LOWer {3|20|200|MIN|MAX}[,(@<ch_list>)] FREQuency:RANGe:LOWer? [{(@<ch_list>)|MIN|MAX}]CONFigure:PERiod [{<range>|AUTO|MIN|MAX|DEF}[,<resolution>|MIN|MAX|DEF}],] (@<scan_list>) CONFigure? [(@<ch_list>)][SENSe:]PERiod:VOLTage:RANGe {<range>|MIN|MAX}[,(@<ch_list>)]PERiod:VOLTage:RANGe? [{(@<ch_ list>)|MIN|MAX}]PERiod:VOLTage:RANGe:AUTO {OFF|ON}[,(@<ch_list>)]PERiod:VOLTage:RANGe:AUTO? [(@<ch_list>)][SENSe:]PERiod:APERture {0.01|0.1|1|MIN|MAX}[,(@<ch_list>)]PERiod:APERture? [{(@<ch_list>)|MIN|MAX}]Mx+B Scaling Commands(see page 244 in the User’s Guide)CALCulate:SCALe:GAIN <gain>[,(@<ch_list>)]:SCALe:GAIN? [(@<ch_list>)]:SCALe:OFFSet <offset>[,(@<ch_list>)]:SCALe:OFFSet? [(@<ch_list>)]:SCALe:UNIT <quoted_string>[,(@<ch_ list>)]:SCALe:UNIT? [(@<ch_list>)]CALCulate:SCALe:OFFSet:NULL [(@<ch_list>)] CALCulate:SCALe:STATe {OFF|ON}[,(@<ch_list>)]:SCALe:STATe? [(@<ch_list>)]Alarm Limit Commands(see page 247 in the User’s Guide)OUTPut:ALARm[1|2|3|4]:SOURce (@<ch_list>):ALARm[1|2|3|4]:SOURce?CALCulate:LIMit:UPPer <hi_limit>[,(@<ch_ list>)]:LIMit:UPPer? [(@<ch_list>)]:LIMit:UPPer:STATe {OFF|ON}[,(@<ch_list>)] :LIMit:UPPer:STATe? [(@<ch_list>)] CALCulate:LIMit:LOWer <lo_limit>[,(@<ch_ list>)]:LIMit:LOWer? [(@<ch_list>)]:LIMit:LOWer:STATe {OFF|ON}[,(@<ch_list>)] :LIMit:LOWer:STATe? [(@<ch_list>)] SYSTem:ALARm?OUTPut:ALARm:MODE {LATCh|TRACk}:ALARm:MODE?:ALARm:SLOPe {NEGative|POSitive}:ALARm:SLOPe?OUTPut:ALARm{1|2|3|4}:CLEar:ALARm:CLEar:ALLSTATus:ALARm:CONDition?:ALARm:ENABle <enable_value>:ALARm:ENABle?:ALARm[:EVENt]?Ch 01 DIO (LSB)Ch 02DIO (MSB)Ch 03TotalizerCh 04DACCh 05DACCALCulate:COMPare:TYPE {EQUal|NEQual}[,(@<ch_list>)] :COMPare:TYPE? [(@<ch_list>)]:COMPare:DATA <data>[,(@<ch_list>)]:COMPare:DATA? [(@<ch_list>)]:COMPare:MASK <mask>[,(@<ch_list>)]:COMPare:MASK? [(@<ch_list>)]:COMPare:STATe {OFF|ON}[,(@<ch_list>)]:COMPare:STATe? [(@<ch_list>)]Digital Input Commands (see page 255 in the User’s Guide)Ch 01 DIO (LSB)Ch 02DIO (MSB)Ch 03TotalizerCh 04DACCh 05DACCONFigure:DIGital:BYTE (@<scan_list>)CONFigure? [(@<ch_list>)][SENSe:]DIGital:DATA:{BYTE|WORD}? [(@<ch_list>)] Totalizer Commands(see page 256 in the User’s Guide)Ch 01 DIO (LSB)Ch 02DIO (MSB)Ch 03TotalizerCh 04DACCh 05DACCONFigure:TOTalize {READ|RRESet} ,(@<scan_list>) CONFigure? [(@<ch_list>)][SENSe:]TOTalize:TYPE {READ|RRESet}[,(@<ch_list>)]TOTalize:TYPE? [(@<ch_list >)][SENSe:]TOTalize:SLOPe {NEGative|POSitive}[,(@<ch_list>)] TOTalize:SLOPe? [(@<ch_list>)][SENSe:]TOTalize:CLEar:IMMediate [(@<ch_ list>)] [SENSe:]TOTalize:DATA? [(@<ch_ list>)]Digital Output Commands(see page 258 in the User’s Guide)Ch 01 DIO (LSB)Ch 02DIO (MSB)Ch 03TotalizerCh 04DACCh 05DACSOURce:DIGital:DATA[:{BYTE|WORD}] <data> ,(@<ch_list>) :DIGital:DATA[:{BYTE|WORD}]? (@<ch _list>) SOURce:DIGital:STATe? (@<ch_list>)DAC Output Commands(see page 258 in the User’s Guide)Ch 01 DIO (LSB)Ch 02DIO (MSB)Ch 03TotalizerCh 04DACCh 05DACSOURce:VOLTage <voltage> ,(@<ch_list>) :VOLTage? (@<ch_list>)Switch Control Commands(see page 259 in the User’s Guide)ROUTe:CLOSe (@<ch_list>):CLOSe:EXCLusive (@<ch_list>):CLOSe? (@<ch_list>)ROUTe:OPEN (@<ch_list>):OPEN? (@<ch_list>)ROUTe:DONE?SYSTem:CPON {100|200|300|ALL}Scan Triggering Commands(see page 228 in the User’s Guide)TRIGger:SOURce {BUS|IMMediate|EXTernal|ALARm1|ALARm2|ALARm3|ALARm4|TIMer} :SOURce?TRIGger:TIMer {<seconds>|MIN|MAX}:TIMer?TRIGger:COUNt {<count>|MIN|MAX|INFinity}:COUNt?*TRGINITiateREAD?State Storage Commands(see page 261 in the User’s Guide)*SAV {0|1|2|3|4|5}*RCL {0|1|2|3|4|5}MEMory:STATe:NAME {1|2|3|4|5} [,<name>]:NAME? {1|2|3|4|5}MEMory:STATe:DELete {0|1|2|3|4|5}MEMory:STATe:RECall:AUTO {OFF|ON}:RECall:AUTO?MEMory:STATe:VALid? {0|1|2|3|4|5}MEMory:NSTates?:DATE <yyyy>,<mm>,<dd>:DATE?:TIME <hh>,<mm>,<ss.sss>:TIME?FORMat:READing:TIME:TYPE {ABSolute|RELative}:READing:TIME:TYPE?*IDN?SYSTem:CTYPe? {100|200|300}DIAGnostic:POKE:SLOT:DATA {100|200|300}, <quoted_string> :PEEK:SLOT:DATA? {100|200|300}DISPlay {OFF|ON}DISPlay?DISPlay:TEXT <quoted_string>:TEXT?:TEXT:CLEar*RSTSYSTem:PRESetSYSTem:CPON {100|200|300|ALL}SYSTem:ERRor?SYSTem:ALARm?SYSTem:VERSion?*TST?Interface Configuration Commands(see page 269 in the User’s Guide)SYSTem:INTerface {GPIB|RS232}SYSTem:LOCalSYSTem:REMoteSYSTem:RWLockDefault parameters are shown in bold.*SRE <enable_value>*SRE?STATus:QUEStionable:CONDition?:QUEStionable[:EVENt]?:QUEStionable:ENABle <enable_value> :QUEStionable:ENABle?*ESR?*ESE <enable_value>*ESE?STATus:ALARm:CONDition?:ALARm[:EVENt]?:ALARm:ENABle <enable_value>:ALARm:ENABle?STATus:OPERation:CONDition?:OPERation[:EVENt]?:OPERation:ENABle <enable_value>:OPERation:ENABle?DATA:POINts:EVENt:THReshold <num_rdgs>:EVENt:THReshold?*CLS*PSC {0|1}*PSC?*OPCCalibration Commands(see page 292 in the User’s Guide) CALibration?CALibration:COUNt?CALibration:SECure:CODE <new_code>:SECure:STATe {OFF|ON},<code>:SECure:STATe?CALibration:STRing <quoted_string>:STRing?CALibration:VALue <value>:VALue?Service-Related Commands(see page 294 in the User’s Guide) INSTrument:DMM {OFF|ON}:DMM?:DMM:INSTalled?DIAGnostic:DMM:CYCLes?:DMM:CYCLes:CLEar (1|2|3} DIAGnostic:RELay:CYCLes? [(@<ch_list>)]:RELay:CYCLes:CLEar [(@<ch_list>)] *RSTSYSTem:PRESetSYSTem:CPON {100|200|300|ALL} SYSTem:VERSion?*TST?IEEE 488.2 Common Commands*CLS*ESR?*ESE <enable_value>*ESE?*IDN?*OPC*OPC?*PSC {0|1}*PSC?*RST*SAV {0|1|2|3|4|5}*RCL {0|1|2|3|4|5}*STB?*SRE <enable_value>*SRE?*TRG*TST?Default parameters are shown in bold.(see page 166 in the User’s Guide)Agilent 34904A 4x8 Matrix (see page 170 in the User’s Guide)Agilent 34905A/6A Dual 4-Channel RF Multiplexers (see page 172 in the User’s Guide)Agilent 34908A 40-Channel Single-Ended Multiplexer (see page 174 in the User’s Guide)Agilent 34907A Multifunction Module (see page 176 in the User’s Guide)Factory Reset StateThe table below shows the state of the instrument after a FACTORY RESET from the Sto/Rcl menu or *RST command from the remote interface.Measurement Configuration FunctionRangeResolutionIntegration TimeInput ResistanceChannel DelayTotalizer Reset Mode Totalizer Edge Detect Scanning OperationsScan ListReading MemoryMin, Max, and AverageScan Interval SourceScan IntervalScan CountScan Reading Format Monitor in ProgressMx+B ScalingGain Factor (“M”)Scale Factor (“B”)Scale LabelAlarm LimitsAlarm ueueAlarm StateHI and LO Alarm LimitsAlarm OutputAlarm Output Configuration Alarm Output StateAlarm Output Slope Module Hardware34901A, 34902A, 34908A 34903A, 34904A34905A, 34906A34907ASystem-Related Operations Display StateError ueueStored States Factory Reset StateDC VoltsAutorange51⁄2 digits1 PLC10 MΩ (fixed for all DCV ranges)Automatic DelayCount Not Reset When ReadRising EdgeFactory Reset StateEmptyAll Readings are ClearedAll Statistical Data is ClearedImmediateFront Panel = 10 SecondsRemote = ImmediateFront Panel = ContinuousRemote = 1 Scan SweepReading Only (No Units, Channel, Time)StoppedFactory Reset State1VdcFactory Reset StateNot ClearedOffAlarm 1Latched ModeOutput Lines are ClearedFail = LowFactory Reset StateReset: All Channels OpenReset: All Channels OpenReset: Channels s11 and s21 SelectedReset: Both DIO Ports = Input, Count = 0,Both DACs = 0 VdcFactory Reset StateOnErrors Not ClearedNo Change©Copyright Agilent Technologies, Inc. 1997-2003Printed in Malaysia March 2003 E0303。
数字化仪的SCPI命令
453x指令*CLS*OPC?*RCL <Identifier>*SAV <Identifier>*TRGABORACQ <SampleRate>, <SamplesPerRecord>,<PreTriggerSamplePerRecord>, <RecordCount>,<TriggerHoldOff>, <TriggerDelay>ACQuisition:SRATeACQuisition:SCOuntACQuisition:SPRetriggerACQuisition:RECordsACQuisition:THOLdoffACQuisition:TDELayACQ:SCO:MAX? <Record>ACQ?ARM:IMMARM:SOUR <ArmSource>, <Triggers>ARM:SOUR?CAL:COUN?CAL:DATA <ChanList>, <DataBlock>CAL:DATA? <ChanList>CAL:LOAD <ChanList>, <CalLoadSource>CAL:RANGCAL:RANG:SOURCAL:RANG:SOUR?CAL:RANG?CAL:RANGE:CHAN? <ChanList>, <ViLower>, <ViUpper> CAL:SEC:CODECAL:SEC:STAT <Enabled>, <SecString>CAL:SEC:STAT?CAL:STATCAL:STAT?CAL:STORCAL:STOR:OVERCAL:STOR:OVER?CAL:STRCAL:STR?CAL:ZERO:AUTO? <ChanList>CHAN <ChanList>, <Range>, <Coupling>, <Filter> CHAN:COUP <ChanList>, <Coupling>CHAN:COUP? <ChanList>CHAN:FILT <ChanList>, <Filter>CHAN:FILT? <ChanList>CHAN:PROT <ChanList>, <Mode>CHAN:PROT? <ChanList>CHAN:RANG <ChanList>, <Range>CHAN:RANG? <ChanList>CHAN? <ChanList>CONF:ACQ:RECCONF:ACQ:REC?CONF:ACQ:SCOCONF:ACQ:SCO?CONF:ACQ:SPRCONF:ACQ:SPR?CONF:ACQ:SRATCONF:ACQ:SRAT?CONF:ACQ:TDELCONF:ACQ:TDEL?CONF:ACQ:THOLCONF:ACQ:THOL?CONF:ARM:SOUR:TIMCONF:ARM:SOUR:TIM?CONF:EXT:TRIG:OUTP?CONF:ROSCCONF:ROSC?CONF:TRIG:SOURCONF:TRIG:SOUR?CONF:TRIG:TIM:MODECONF:TRIG:TIM:MODE?DISP:STATDISP:STAT?DISP:TEXTDISP:TEXT:CLEDISP:TEXT?EXT:INPEXT:INPEXT:INP?EXT:INP?EXT:TRIG:OUTP <Event>, <DriveMode>FETC:WAV:ACQ:PRE?FETC:WAV:ADC? <ChanList>, <Start>, <Count>, <RecList>FETC:WAV:ADC? <ChanList>, <Start>, <Count>, <RecList>, <DecType>, <DecCount>FETC:WAV:CHAN:ERR? <ChanList>, <NoOfRecord> FETC:WAV:REC:PRE?FETC:WAV:REC:TIM?MEAS:<RiseFallTime>:PER:VERB? <ChanList>,<RiseEdgeNumber>, <RecordNumber>MEASure:FALL:PREriod[:VERBose]?MEASure:RISE:PREriod[:VERBose]?MEAS:<RiseFallTime>:PER? <ChanList>,<RiseEdgeNumber>, <RecordNumber>MEASure:FALL:PREriod[:VERBose]?MEASure:RISE:PREriod[:VERBose]?MEAS:<RiseFallTime>:PRES:VERB? <ChanList>,<FallEdgeNumber>, <RecordNumber>MEASure:FALL:PREShoot[:VERBose]?MEASure:RISE:PREShoot[:VERBose]?MEAS:<RiseFallTime>:PRES? <ChanList>,<FallEdgeNumber>, <RecordNumber>MEASure:FALL:PREShoot[:VERBose]?MEASure:RISE:PREShoot[:VERBose]?MEAS:<RiseFallTime>:TIME? <ChanList>,<RiseFallEdgeNumber>, <RecordNumber> MEASure:FALL:TIME[:VERBose]?MEASure:RISE:TIME[:VERBose]?MEAS:<Time>:TIME:VERB? <ChanList>,<RiseFallEdgeNumber>, <RecordNumber> MEASure:FALL:TIME[:VERBose]?MEASure:RISE:TIME[:VERBose]?MEAS:INST:CAT?MEAS:INST:DEF <Label>, "<MeasType>"MEAS:INST:DEF? <Label>MEAS:INST:DEL <Label>MEAS:INST:DEL ALLMEAS:INST:RES:ERR:REC?MEAS:INST:RES:REC:VERB? <Label>, <RecordNumber> MEAS:INST:RES:REC:VERB? <Label>, <RecordNumber> MEAS:INST:RES:REC? <Label>, <RecordNumber> MEAS:INST:RUNMEAS:RCOD:STR? <MeasCode>MEAS:THR:ABS <ChanList>, <VHigh>, <VMid>, <VLo> MEAS:THR:ABS? <ChanList>MEAS:THR:METH <ChanList>, <Method>MEAS:THR:METH? <ChanList>MEAS:THR:PERC <ChanList>, <High>, <Mid>, <Low> MEAS:THR:PERC? <ChanList>MEAS:THR:RES <ChanList>MEAS:THR:TOPB:ABS <ChanList>, <VTop>, <VBase> MEAS:THR:TOPB:ABS? <ChanList>MEAS:THR:TOPB:METH <ChanList>, <Method>MEAS:THR:TOPB:METH? <ChanList>MEAS:VAV:VERB? <ChanList>, <Mode>, <RecordNumber> MEAS:VAV? <ChanList>, <Mode>, <RecordNumber> MEAS:VRMS:VERB? <ChanList>, <Mode>, <Coupling>, <RecordNumber>MEAS:VRMS? <ChanList>, <Mode>, <Coupling>,<RecordNumber>MEAS:WIND <StartOffset>, <Size>MEAS:WIND?READ:WAV:ADC? <ChanList>, <Start>, <Count>,<RecList>READ:WAV:ADC? <ChanList>, <Start>, <Count>,<RecList>, <DecType>, <DecCount>STAT:PRESSYST:DATESYST:DATE?SYST:GLOB:ERR?SYST:LOCK:NAME?SYST:LOCK:OWN?SYST:LOCK:RELSYST:LOCK:REQ?SYST:SYNC:EXTSYST:SYNC:EXT?SYST:TIMESYST:TIME?TRIG:IMMTRIG:SOUR:CHAN:EDGE <ChanList>, <Level>, <Slope>, <Hysteresis>TRIG:SOUR:CHAN:EDGE? <ChanList>TRIG:SOUR:CHAN:WIND <ChanList>, <LoLevel>,<HiLevel>, <Direction>, <Hysteresis>TRIG:SOUR:CHAN:WIND? <ChanList>TRIG:SOUR:CHAN? <ChanList>IVI函数标准SCPI指令IAgL453xStatus.Clear*CLSIAgL453xSystem.WaitForOperationComplete*OPC?IAgL453xSystem.RecallState*RCL <Identifier> IAgL453xSystem.SaveState*SAV <Identifier> IAgL453xTrigger.SendSoftwareTrigger*TRGIAgL453xMeasurement.Abort ABORIAgL453xAcquisition.Configure ACQ <SampleRate>,<SamplesPerRecord>,<PreTriggerSamplePerRecord>,<RecordCount>, <TriggerHoldOff>, <TriggerDelay>ACQuisition:SRATeACQuisition:SCOuntACQuisition:SPRetrigger ACQuisition:RECords ACQuisition:THOLdoff ACQuisition:TDELayIAgL453xAcquisition.GetMaxSampleCount ACQ:SCO:MAX? <Record>IAgL453xAcquisition.Query ACQ?IAgL453xArm.Immediate ARM:IMMIAgL453xArm.SetSource ARM:SOUR <ArmSource>, <Triggers> IAgL453xArm.GetSource ARM:SOUR?IAgL453xCalibration.Count CAL:COUN?IAgL453xCalibration.SetData CAL:DATA <ChanList>, <DataBlock> IAgL453xCalibration.GetData CAL:DATA? <ChanList>IAgL453xCalibration.Load CAL:LOAD <ChanList>, <CalLoadSource>IAgL453xCalibration.Range CAL:RANGIAgL453xCalibration.Source CAL:RANG:SOUR IAgL453xCalibration.Source CAL:RANG:SOUR? IAgL453xCalibration.Range CAL:RANG?IAgL453xCalibration.CalibrateChannel CAL:RANGE:CHAN? <ChanList>, <ViLower>, <ViUpper>IAgL453xCalibration.SecureCode CAL:SEC:CODEIAgL453xCalibration.SetSecureState CAL:SEC:STAT <Enabled>, <SecString>IAgL453xCalibration.SecureEnabled CAL:SEC:STAT?IAgL453xCalibration.Enabled CAL:STATIAgL453xCalibration.Enabled CAL:STAT?IAgL453xCalibration.Store CAL:STORIAgL453xCalibration.OverrideEnabled CAL:STOR:OVERIAgL453xCalibration.OverrideEnabled CAL:STOR:OVER?IAgL453xCalibration.String CAL:STRIAgL453xCalibration.String CAL:STR?IAgL453xCalibration.AutoZero CAL:ZERO:AUTO? <ChanList>IAgL453xChannel.ConfigureIAgL453xChannel.SetCoupling CHAN:COUP <ChanList>, <Coupling> IAgL453xChannel.GetCoupling CHAN:COUP? <ChanList>IAgL453xChannel.SetFilter CHAN:FILT <ChanList>, <Filter> IAgL453xChannel.GetFilter CHAN:FILT? <ChanList>IAgL453xChannel.SetInputProtection CHAN:PROT <ChanList>, <Mode> IAgL453xChannel.GetInputProtection CHAN:PROT? <ChanList>IAgL453xChannel.SetRange CHAN:RANG <ChanList>, <Range>IAgL453xChannel.GetRange CHAN:RANG? <ChanList> IAgL453xChannel.Query CHAN? <ChanList>IAgL453xAcquisition.RecordCount CONF:ACQ:RECIAgL453xAcquisition.RecordCount CONF:ACQ:REC?IAgL453xAcquisition.SampleCount CONF:ACQ:SCOIAgL453xAcquisition.SampleCount CONF:ACQ:SCO?IAgL453xAcquisition.PreTriggerSampleCount CONF:ACQ:SPRIAgL453xAcquisition.PreTriggerSampleCount CONF:ACQ:SPR?IAgL453xAcquisition.SampleRate CONF:ACQ:SRATIAgL453xAcquisition.SampleRate CONF:ACQ:SRAT?IAgL453xAcquisition.TriggerDelay CONF:ACQ:TDELIAgL453xAcquisition.TriggerDelay CONF:ACQ:TDEL?IAgL453xAcquisition.TriggerHoldOff CONF:ACQ:THOLIAgL453xAcquisition.TriggerHoldOff CONF:ACQ:THOL?IAgL453xArm.SourceTimer CONF:ARM:SOUR:TIM IAgL453xArm.SourceTimer CONF:ARM:SOUR:TIM? IAgL453xTriggerExternal.QueryOutput CONF:EXT:TRIG:OUTP? IAgL453xSystem.RefOscillatorSource CONF:ROSCIAgL453xSystem.RefOscillatorSource CONF:ROSC?IAgL453xTrigger.Source CONF:TRIG:SOURIAgL453xTrigger.Source CONF:TRIG:SOUR?IAgL453xTrigger.TimeStampMode CONF:TRIG:TIM:MODE IAgL453xTrigger.TimeStampMode CONF:TRIG:TIM:MODE? IAgL453xDisplay.Enabled DISP:STATIAgL453xDisplay.Enabled DISP:STAT?IAgL453xDisplay.Text DISP:TEXTIAgL453xDisplay.Clear DISP:TEXT:CLEIAgL453xDisplay.Text DISP:TEXT?IAgL453xTriggerExternal.InputSlope EXT:INPIAgL453xArm.ExternalInputSlope EXT:INPIAgL453xTriggerExternal.InputSlope EXT:INP?IAgL453xArm.ExternalInputSlope EXT:INP?IAgL453xTriggerExternal.ConfigureOutput EXT:TRIG:OUTP <Event>, <DriveMode>IAgL453xWaveform.FetchAcquisitionPreamble FETC:WAV:ACQ:PRE?IAgL453xWaveform.FetchADCData FETC:WAV:ADC? <ChanList>, <Start>, <Count>, <RecList>IAgL453xWaveform.FetchADCDataDecimated FETC:WAV:ADC? <ChanList>,<Start>, <Count>, <RecList>, <DecType>, <DecCount>IAgL453xWaveform.ChannelErrors FETC:WAV:CHAN:ERR? <ChanList>, <NoOfRecord>IAgL453xWaveform.FetchRecordPreamble FETC:WAV:REC:PRE? IAgL453xWaveform.TimeStamp FETC:WAV:REC:TIM?IAgL453xWaveformMeasurementVerbose.Period MEAS:<RiseFallTime>:PER:VERB? <ChanList>, <RiseEdgeNumber>, <RecordNumber>MEASure:FALL:PREriod[:VERBose]? MEASure:RISE:PREriod[:VERBose]?IAgL453xWaveformMeasurementTerse.Period MEAS:<RiseFallTime>:PER?<ChanList>, <RiseEdgeNumber>, <RecordNumber>MEASure:FALL:PREriod[:VERBose]? MEASure:RISE:PREriod[:VERBose]?IAgL453xWaveformMeasurementVerbose.PreShoot MEAS:<RiseFallTime>:PRES:VERB? <ChanList>, <FallEdgeNumber>,<RecordNumber>MEASure:FALL:PREShoot[:VERBose]? MEASure:RISE:PREShoot[:VERBose]?IAgL453xWaveformMeasurementTerse.PreShoot MEAS:<RiseFallTime>:PRES?<ChanList>, <FallEdgeNumber>,<RecordNumber>MEASure:FALL:PREShoot[:VERBose]? MEASure:RISE:PREShoot[:VERBose]?IAgL453xWaveformMeasurementTerse.RiseFallTime MEAS:<RiseFallTime>:TIME?<ChanList>, <RiseFallEdgeNumber>, <RecordNumber>MEASure:FALL:TIME[:VERBose]? MEASure:RISE:TIME[:VERBose]?IAgL453xWaveformMeasurementVerbose.RiseFallTim e MEAS:<Time>:TIME:VERB?<ChanList>, <RiseFallEdgeNumber>, <RecordNumber>MEASure:FALL:TIME[:VERBose]? MEASure:RISE:TIME[:VERBose]?IAgL453xWaveformMeasurementList.Catalog MEAS:INST:CAT?IAgL453xWaveformMeasurementList.InstallVoltMea surement MEASure:INSTall:DEFine <label>,<meas_string>IAgL453xWaveformMeasurementList.MeasurementInstalled MEAS:INST:DEF? <Label> IAgL453xWaveformMeasurementList.Delete MEAS:INST:DEL <Label> IAgL453xWaveformMeasurementList.DeleteAll MEAS:INST:DEL ALLIAgL453xWaveformMeasurementList.FirstRecordWithError MEAS:INST:RES:ERR:REC?IAgL453xWaveformMeasurementList.VerboseResult MEAS:INST:RES:REC:VERB? <Label>, <RecordNumber>IAgL453xWaveformMeasurementList.VerboseResultA ll MEAS:INST:RES:REC:VERB? <Label>, <RecordNumber>IAgL453xWaveformMeasurementList.Result MEAS:INST:RES:REC? <Label>, <RecordNumber>IAgL453xWaveformMeasurementList.Run MEAS:INST:RUNIAgL453xWaveformMeasurement.GetMeasurementCode MEAS:RCOD:STR? <MeasCode>IAgL453xWaveformMeasurementThreshold.SetAbsolu teLevel MEAS:THR:ABS <ChanList>, <VHigh>, <VMid>, <VLo>IAgL453xWaveformMeasurementThreshold.GetAbsoluteLevel MEAS:THR:ABS? <ChanList>IAgL453xWaveformMeasurementThreshold.SetEvalua tionType MEAS:THR:METH <ChanList>, <Method>IAgL453xWaveformMeasurementThreshold.GetEvaluationType MEAS:THR:METH? <ChanList>IAgL453xWaveformMeasurementThreshold.SetPercen tageLevel MEAS:THR:PERC <ChanList>, <High>, <Mid>, <Low>IAgL453xWaveformMeasurementThreshold.GetPercentageLevel MEAS:THR:PERC? <ChanList> IAgL453xWaveformMeasurementThreshold.Reset MEAS:THR:RES <ChanList>IAgL453xWaveformMeasurementThreshold.SetTopBas eAbsoluteLevels MEAS:THR:TOPB:ABS <ChanList>, <VTop>, <VBase>IAgL453xWaveformMeasurementThreshold.GetTopBaseAbsoluteLevels MEAS:THR:TOPB:ABS? <ChanList>IAgL453xWaveformMeasurementThreshold.SetTopBas eEvaluationType MEAS:THR:TOPB:METH <ChanList>, <Method>IAgL453xWaveformMeasurementThreshold.GetTopBaseEvaluationType MEAS:THR:TOPB:METH? <ChanList>IAgL453xWaveformMeasurementVerbose.AvgVoltage MEAS:VAV:VERB? <ChanList>, <Mode>, <RecordNumber>IAgL453xWaveformMeasurementTerse.AvgVoltage MEAS:VAV? <ChanList>, <Mode>, <RecordNumber>IAgL453xWaveformMeasurementVerbose.RMSVoltage MEAS:VRMS:VERB? <ChanList>, <Mode>, <Coupling>,<RecordNumber>IAgL453xWaveformMeasurementTerse.RMSVoltage MEAS:VRMS? <ChanList>, <Mode>, <Coupling>, <RecordNumber>IAgL453xWaveformMeasurement.ConfigureMeasurementWindow MEAS:WIND <StartOffset>, <Size> IAgL453xWaveformMeasurement.QueryMeasurementWindow MEAS:WIND?IAgL453xWaveform.ReadADCData READ:WAV:ADC? <ChanList>, <Start>, <Count>, <RecList>IAgL453xWaveform.ReadADCDataDecimated READ:WAV:ADC? <ChanList>,<Start>, <Count>, <RecList>, <DecType>, <DecCount>IAgL453xStatus.Preset STAT:PRESIAgL453xSystem.Date SYST:DATEIAgL453xSystem.Date SYST:DATE?IAgL453xSystem.GlobalErrorQuery SYST:GLOB:ERR? IAgL453xSystem.ActiveIO SYST:LOCK:NAME? IAgL453xSystem.LockOwner SYST:LOCK:OWN? IAgL453xSystem.ReleaseLock SYST:LOCK:REL IAgL453xSystem.Lock SYST:LOCK:REQ? IAgL453xSystem.Synchronize SYST:SYNC:EXT IAgL453xSystem.Synchronize SYST:SYNC:EXT? IAgL453xSystem.Time SYST:TIMEIAgL453xSystem.Time SYST:TIME?IAgL453xTrigger.Immediate TRIG:IMMIAgL453xChannelTriggerEdge.Configure TRIG:SOUR:CHAN:EDGE <ChanList>, <Level>, <Slope>, <Hysteresis>IAgL453xChannelTriggerEdge.Query TRIG:SOUR:CHAN:EDGE? <ChanList>IAgL453xChannelTriggerWindow.Configure TRIG:SOUR:CHAN:WIND <ChanList>, <LoLevel>, <HiLevel>,<Direction>, <Hysteresis>IAgL453xChannelTriggerWindow.Query TRIG:SOUR:CHAN:WIND? <ChanList> IAgL453xChannelTrigger.QueryMode TRIG:SOUR:CHAN? <ChanList>作用。
自动测试系统-第3章-第2节-SCPI标准命令-教学课件-20181101
READ[:<function>]? <parameters>[,<sourcelist>] [query only]
MEASure[:<function>]? <parameters>[,<sourcelist>] [query only]
第三节 标准命令
§ CONFigure指令
§ 格式
CONFigure <function> <parameters>[,<source list>]
• 比如在波形参数测量中,采集数据中可能包含脉宽、上升/下降时间 、顶、底等多个信息,这时就可以使用FETCh?命令以返回不同的结 果,而不需要重新进行新的采集
第三节 标准命令
§ FETCh?指令的兼容性也稍差,至少需要知道采集的数据 中是否包含所需要的数据
• 示波器能够在一次采集中采到上升时间和脉宽的信息,如果用 MEASure?指令采集信号的脉宽,那么我们就可以用FETCh? 指令获得信号的上升时间。
§ 该模块在数据集中最多只能出现一次
第四节 数据交换格式
§ ENCode模块
§ 该模块指定DATA模块和ENCode模块中数据的编码格式,它 面向特定模块中数据的分辨率、范围和编码格式等内容
§ 在数据格式结构中ENCode模块所在的层次决定了它的作用范 围。如果与DIMension模块在同一层次,则ENCode模块的作 用是全局的,但是这种作用要被各个维之下的ENCode模块所 替代
§ 数据交换格式的层次结构能适应多种传输媒介和协 议,如:IEEE 488.1/488.2,RS-232C, SCSI,IEEE 802等
§ 兼容IEEE 488.2句法
程控仪器标准命令SCPI_通过串口或者gpib卡,vb_vc都能控制
在与通信物理连接层硬件无关的高层次上定义程控 消息
SCPI基于IEEE488.2形成,但并不局限于GPIB接口,它也 可用于RS232C,VXIb总线
与编程手段和程序语言无关,SCPI用户测试程序模 块易于移植
各种编程语言,如C、BASIC、FORTAN等都能完成SCPI命 令的传递 为程序员提供了非常灵活的测试程序编制环境
13
第一节 SCPI的目标及主要内容
3.数据交换格式
定义了仪器与应用程序之间、应用程序和应用程 序之间以及仪器与仪器之间数据集的标准的表示 形式 数据交换格式采样模块化结构
(1999版本)
4.仪器类别
主要是定义了通用的仪器类别功能实现所需的命 令和行为
(数字表、数字化仪、信号转接开关、电源、射频与微波源、 发射装置、发射测试单元、框架测力计)
哈工大测控所
20
第二节 SCPI语法与风格
某些字符程控数据被定义为特殊的数值程控 数据
DEFault:缺省值,它可能是仪器相关的,也可 能是SCPI标准指定的值 MINimum/MAXimum:最小/最大值 UP/DOWN:上/下,增加/减少
哈工大测控所
21
第二节 SCPI语法与风格
布尔程控数据
哈工大测控所
24
第二节 SCPI语法与风格
四.SCPI命令树图 命令树图用于定义SCPI的命令集,它描述了 命令、命令之间的层次关系、相关的参数以 及必要的注释 命令树图通常由三部分构成:关键字 (KEYWORD)、参数形式(PARAMETER FORM)和注释(NOTES)
哈工大测控所
可程控仪器标准命令SCPI
可程控仪器标准命令SCPISCPI是可程控仪器标准命令(Standard Command for Programmable Instrument)的缩写,它是在IEEE488.2标准基础上发展起来的标准的程控仪器控制指令集。
SCPI的出现,为自动测量的实现提供了便利。
关于IEEE488.1/IEEE488.2总所周知,为了保证系统部件在电气和机械连接方面的便利性,IEEE488.1很早就诞生了。
但它未能解决程控仪器通信方面的问题,不同的程控仪器所能接受的数据编码格式、命令元素和句法仍然有很大的差异,于是在IEEE488.1的基础上又发展成为其升级版IEEE488.2,在一定程度上解决了这一问题。
但即使是在IEEE4888.2的框架下,不同的程控仪器能够接受的命令还存在着很大的差异,这导致进行程控仪器编程和自动测量的程序员需要面向不同的测量仪器学习不同的语言,负担很大。
于是SCPI在1990年4月应运而生。
打个浅显的比方:IEEE488.1相当于以前互相隔绝的两个国家之间的人员可以自由往返于二者之间了。
IEEE488.2相当于规定这些人员在两个国家应当使用相同的语言(比如中文或者英文)进行交流,但对于因为文化差异或其他原因造成的在表达习惯、方言等方面的差异并未做出相应的标准化的要求,于是还是会有不少一国人员讲话的内容另外一国人员无法听懂的情况,甚至同一个国家不同地区的人之间也有的时候很难沟通。
SCPI就相当于对这一方面也做出了标准化的规定,以确保不同国家、同一国家不同地区的人员都能够使用按照统一的规则使用相同的语言进行沟通。
SCPI的主要贡献:SCPI的出现实现了测量仪器横向和纵向的兼容:所谓横向兼容是指通过同样的SCPI命令可以实现不同厂家的测量仪器的相同的测量;而纵向兼容是指统一测量仪器的高低版本,在实现同一测量功能上使用的命令应该是相同的。
SCPI的总的目标,是希望能够尽量节省开发自动测量设备相关程序的时间,提高设备设备制造商和使用方在软硬件投资上的回报率。
程控仪器标准命令SCPI
标准名词和术语
第一节 SCPI的目标及主要内容
在与通信物理连接层硬件无关的高层次上定义程控 消息
SCPI基于IEEE488.2形成,但并不局限于GPIB接口,它也 可用于RS232C,VXIb总线
标准事件状态寄存器查询(Standard Event Status Register Query)
仪器标识查询(Identification Query) 操作完成(Operation Complete Command) 操作完成查询(Operation Complete Query) 复位(Reset Command) 服务请求使能(Service Request Enable Command) 服务请求使能查询(Service Request Enable Query) 读状态字节查询(Read Status Byte Query) 自测试查询(Self-Test Query) 等待操作完成(Wait-to-Continue Command)
位置 仪器模型反映了仪器中测量和信号数据应用的流程 对具体的仪器而言,并不需要实现模型中的所有模
块的功能,只需实现仪器模型中用到的相应的模块压表可能只需要用到测量功能、触发功能和格式化功能
测量功能
格式化
数据总线
单输出的源仪器触可发能只用到信号产生和格式化块 简化的检测仪器模型
SCPI数据交换格式(Data Interchange Format)
SCPI仪器类别(Instrument Classes)
为什么提出SCPI?
程控仪器发展简史
1960s,商用程控仪器出现 1975年,IEEE 488-1975