一种实用的SCPI语法分析设计方法
SCPI简介 自动测试系统

横向相容性——要求不同家族的两个仪器应该使用同一命令 进行相同的测量,如示波器和电子计数器都能使用 <:MEA:RTIM?>命令完成脉冲上升时间测量。
功能相容性——要求两个仪器用相同的命令能够实现相同的 功能,如频谱分析仪和射频源两者都能扫频,如果两个仪器使用 相同的频率和扫描测试功能,而不是仪器硬件组成、技术手段和 前面板控制,SCPI提出了一个描述仪器测试功能的仪器模型。
必备命令
SCPI必备命令主要是从IEEE488.2公用命令扩展而来,功能 是处理SCPI规格中所定义的状态汇报格式。 必备命令是符合 SCPI标准的仪器均要实现的命令。
:SYSTem
:ERROR?
:
:STATus :OPERation
短格式助记符
[:EVENt]Biblioteka ? :CONDition?:
数字后缀
命令题头与参数之间以空格符加以间隔。 缩写命令
SCPI命令的每一命令题头为字母大、小写混合,其中,大 写字母部分表示为该命令题头的缩写部分 。
若一SCPI命令题头语法为RANGe,那么RANG为其缩写命 令,而RANGe为其全部命令,同时因为允许大小写,可得:
RANG=RANGe=RANGE=rang=ranG=Rang
SENSe[1|2] :EVENt :SLOPe<POS|NEG>
INPut<1|2> :COUPling<mode> :ATTenuation<value>
MEASure :FREQuence? :PERiod? :RATio? :TINTernal? :PWIDth? :NWIDth?
基于Python的SCPI命令解释器的设计

基于Python的SCPI命令解释器的设计周子天;叶卫东【摘要】目前可编程仪器标准命令(SCPI)依然被广泛使用,因此设计一个高效通用的SCPI命令解释器很重要.常用的SCPI命令解释器多以C语言开发,采用链式二叉树等存储结构,多有如解析效率低、通用性差、不识别等效命令等缺点.因此提出一种基于Python语言的设计.相比于常用的链式二叉树或顺序存储等结构,本设计提出一种基于Python字典结构的新型存储结构,减少了解析时的查询次数,提高了解析效率.而针对常用SCPI命令解释器通用性差的缺点,本设计提出以XML文档描述SCPI命令树,在启动时动态加载进内存的方式提高了解释器的通用性.同时,由于Python跨平台的特性,所设计的SCPI命令解释器也拥有良好的跨平台特性,适于在各平台下工作.【期刊名称】《测控技术》【年(卷),期】2019(038)005【总页数】6页(P62-66,71)【关键词】Python;SCPI;解释器;可程控仪器【作者】周子天;叶卫东【作者单位】北京航空航天大学自动化科学与电气工程学院,北京100191;北京航空航天大学自动化科学与电气工程学院,北京100191【正文语种】中文【中图分类】TP311.1现如今,随着可程控测量仪器的不断发展,SCPI(Standard Commands for Programmable Instruments,可编程仪器标准命令)依然是用于控制可程控测量仪器的重要标准。
如安捷伦、泰克等大型仪器厂商生产的各型号测量仪器依然在广泛使用。
目前,SCPI命令解释器拥有多种设计思路,经总结如下:① 建立词法、语法分析器,利用字符串比较的方式进行解析[1];② 采用XML文档描述SCPI命令,解析时通过查询XML文档判断匹配项[2];③ 使用链表的数据结构按照一定顺序将SCPI命令信息进行存储,解析时遍历查找[3];④ 使用链式二叉树的数据结构来构建和存储命令集,解析时遍历查找[4-6];⑤ 以XML文档描述SCPI命令,以哈希表构建命令树,遍历解析SCPI命令[7]。
scpi编程语句中文解释

SCPI 命令表4.3.1共同命令*CLS*ESE*ESE*ESR*IDN*OPC*OPC*PSC*PSC*RST*SRE*SRE*STB*SAV*RCL4.3.2SCPI 标准命令SYSTem:ERRor:VERSion:BEEPer[:IMMediate]:ADDRessSTATus:QUEStionable:ENABle <enable value>:ENABle[:EVENt]:CONDition:OPERation:ENABle <enable value>:ENABle[:EVENt]:CONDition:INSTrumenu[:EVENt]:ENABle <value>:ENABleCONDitionINSTrument[:SELect] {FIRst|SECOnd|THIrd}[:SELect]NSELect {1|2|3}NSELectOUTPut[:STATe] {0|1}[:STATe][SOURce:]CURRent[:LEVel][:IMMediate][:AMPLitude] {<current>|MIN|MAX} CURRent[:LEVel][:IMMediate][:AMPLitude] {MIN|MAX} VOLTage[:LEVel][:IMMediate][:AMPLitude] {<voltage>|MIN|MAX} VOLTage[:LEVel][:IMMediate][:AMPLitude] {MIN|MAX} VOLTage:PROTection[:LEVel][:IMMediate][:AMPLitude] VOLTage:PROTection[:LEVel][:IMMediate][:AMPLitude]非SCPI标准命令CALibration:SECure[:STATe] {ON|OFF,<quoted code>}:SECure[:STATe]:VOLTageLEVel <level>[:DATA] <voltage value>:CURRentLEVel <level>[:DATA] <current value>:CODE:SAVe:INITitalOUTPut25:TIMer:DATA <time>:DATASYSTem:LOCal:REMote:RWLockDISPlay:[:WINDow][:STATe] {OFF|ON}[:WINDow][:STATe]MEASure[:SCALer]:CURRent[:DC][:VOLTage][:DC]:POWer[:DC]4.4.1 SCPI状态寄存器你可以通过读取操作状态带存器的苴米喷定电源的当前状态.电源逋长七个状态寄存器组记录了不同的仪器状态,这七个状态寄存薜组分为状态位组寄存器,标准型件寄存器,查询状态寄存器和操作状态符存器(包含三.个子寄存器3状态位把寄存器记录了其它状态寄存器的信息.下点绐出了各个状态寄存器的定义.下图定义了电媪状态寄存器的结构INST 1IHCTZI 幅3Ts置时或茅琪事件赤存在condrtlori ewem各为今露中位悔住定如古田所示,录低位 .也匕录高位在下SCPI 解释共同命令*CLS这条命令清除下面的寄存器:标准事件寄存器、查询事件寄存器、操作状态寄存器、操作状态子寄存器、状态字节寄存器的错误信息。
程控仪器标准命令SCPI

第一节 SCPI的目标及主要内LOGO容
• 减少类似测量功能的控制方法是保证编程兼容性的 关键
– SCPI的基本原则是用同一命令控制相同的仪器功能 – 为便于学习,SCPI采用了为生产者和用户广泛支持的工
业标准名词和术语
第一节 SCPI的目标及主要内LOGO容
• 在与通信物理连接层硬件无关的高层次上定义程控 消息
– SCPI基于IEEE488.2形成,但并不局限于GPIB接口,它 也可用于RS232C,VXIb总线
• 与编程手段和程序语言无关,SCPI用户测试程序模 块易于移植
– 各种编程语言,如C、BASIC、FORTAN等都能完成SCPI 命令的传递
– 为程序员提供了非常灵活的测试程序编制环境
第一节 SCPI的目标及主要内LOGO容
– 横向兼容:是指两台不同类别的仪器使用同样的命令来控 制类似的测试功能
• 示波器和电子计数器都能进行频率测量,横向兼容要求它们使用 同样的命令来进行频率测量
– 功能兼容:是指两台仪器使用同样的命令来执行同样的功 能
• 频谱分析仪和射频(RF)源同样能进行扫频,如果它们都使用同 样的命令来执行扫频的功能,那么它们在扫频上是功能兼容的
3.数据交换格式 – 定义了仪器与应用程序之间、应用程序和应用程序之间以及仪器与仪器之间数据集的 标准的表示形式 – 数据交换格式采样模块化结构
4.仪器类别 (1999版本)
– 主要是定义了通用的仪器类别功能实现所需的命令和行为
第二节 SCPI语法与风格
一.SCPI仪器模型
LOGO
信号路由 信号路由
主要内容
• 本章的学习要解决三个问题 – 为什么提出SCPI? – SCPI是什么? – SCPI怎么用?
powershell scpi指令

powershell scpi指令在现代科学技术领域中,仪器设备的远程控制和自动化已成为必不可少的环节。
为了实现设备之间的通信和控制,SCPI(Standard Commands for Programmable Instruments)指令应运而生。
在本文中,将详细介绍PowerShell SCPI指令的基本概念以及其在仪器设备控制中的应用。
一、什么是SCPI指令SCPI全称Standard Commands for Programmable Instruments,即用于可编程仪器的标准指令集。
作为一种通用的控制命令语言,SCPI指令可用于各种测试和测量仪器,包括示波器、信号发生器等。
它通过通过一系列ASCII字符来进行仪器控制和操作。
SCPI指令的基本语法由主命令和可选的选择命令组成,并以回车符号作为结束符。
这种简洁的语法使得SCPI指令易于学习和使用。
值得注意的是,SCPI指令也支持查询功能,可以通过查询指令从仪器设备上获取数据。
二、PowerShell中的SCPI指令PowerShell是一种用于自动化任务和配置管理的脚本语言和命令行壳程序。
由于其功能强大且易于使用,PowerShell成为了许多系统管理员和开发人员的首选工具。
而在仪器设备控制方面,PowerShell也提供了许多方便的模块和命令,其中包括SCPI指令的执行和控制。
在PowerShell中,可以使用相应的插件或者模块来支持SCPI指令的解析和执行。
这些插件和模块提供了丰富的功能,包括发送和接收指令、解析返回的数据、错误处理等。
通过PowerShell中的SCPI指令,可以轻松地远程控制和自动化仪器设备的操作。
三、SCPI指令的应用场景1. 仪器设备远程控制SCPI指令的一个主要应用场景是仪器设备的远程控制。
通过PowerShell中的SCPI插件,可以通过网络或者串口等方式将指令发送到目标设备,实现仪器设备的启动、停止、设置参数等操作。
一种基于XML的SCPI命令解析方法[发明专利]
![一种基于XML的SCPI命令解析方法[发明专利]](https://img.taocdn.com/s3/m/18391d8fa98271fe900ef91e.png)
专利名称:一种基于XML的SCPI命令解析方法专利类型:发明专利
发明人:郭同华,刘洪庆,李云彬,孙龙,陈秋伟
申请号:CN201310561418.5
申请日:20131104
公开号:CN103559296A
公开日:
20140205
专利内容由知识产权出版社提供
摘要:本发明提供一种基于XML的SCPI命令解析方法,包括以下步骤:1、采用XML文档描述SCPI命令;2、判断是否接收到SCPI命令;3、查询XML文档,判断是否有匹配项;4、取得命令号及参数信息;5、对SCPI命令进行处理。
采用上述方案,SCPI命令解析器具有高度的可扩展性和通用性,有效的解决了SCPI命令解析器结构复杂,复用困难的问题。
申请人:中国电子科技集团公司第四十一研究所
地址:266555 山东省青岛市经济技术开发区香江路98号
国籍:CN
更多信息请下载全文后查看。
仪器设备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简介 自动测试系统

scpi的目标减少类似测试功能的控制方法是保证编程相容性的关键scpi的基本原则是用同一scpi命令控制相同的仪器功能scpi的可扩充性使其成为活标准几点说明虽然scpi是基于ieee4882的命令和格式但它不局限于gpib器件也允许通过其它通信接口总线传递消息如vxi总线rs232等这样使用scpi开发的应用程序不但能在gpib系统中运行也可以在vxi总线或rs232系统中运行
SCPI命令语法格式
隐含命令 隐含命令指的是被方括号 “[]”括起来的命令。隐含命令的
作用是作为默认命令,当某一阶层中含有隐含命令,若下达命 令时跳过此层,表示使用该隐含命令。例如:在上述通用计数 器SCPI命令层次结构图中,SENSe为根命令层的隐含命令,而 UPP为第四层的隐含命令,因此,命令可下达为:
SCPI程控仪器模型
程控仪器模型表示了SCPI仪器功能逻辑和分类。这种分类提 供各种不同类型仪器可利用的各式各样的SCPI命令的构成机制和 相容性。
信号通路
测量功能
格式化
数据总线
触发 存储器
信号通路
信号产生
格式化
SCPI程控仪器模型
数据总线
输入
检测
计算
输出
源
计算
触发
存储器
测量功能模型
触发
存储器
信号产生功能模型
SCPI的简介
可程控仪器标准指令集是架构在IEEE488.2上的新一代仪器 控制语法,其着眼点在于能用相同的标准仪器控制语言就可以控 制任一厂家的仪器,这样使用者就不必学习每一部仪器的命令语 法,方便系统的组建。
SCPI作为仪器程控命令,实现对仪器的控制,使得不同测 试仪器的相同功能具有相同的命令形式,在横向上使测试仪器兼 容。同时,SCPI使用相同的命令来控制同一类仪器中的相同功 能,从而使得仪器在纵向上兼容。
基于静态链表SCPI解析系统设计

基于静态链表SCPI解析系统设计赵云【摘要】针对传统的SCPI解释方式占用过多内存,制约了在嵌入式系统上的应用,文中设计了一种方便移植和扩展的SCPI语言解析方法.该种方法用静态链表的结构来保存SCPI命令集,通过这种方法建立的SCPI解析模块,占用内存少,且方便移植和扩展.利用文中方法设计的SCPI解析模块可方便应于各种智能程控仪器,并适用在嵌入式系统下工作.【期刊名称】《电子科技》【年(卷),期】2015(028)012【总页数】4页(P114-116,120)【关键词】SCPI;静态链表;程控仪器【作者】赵云【作者单位】桂林电器科学研究院有限公司研发中心,广西桂林 541004【正文语种】中文【中图分类】TN314SCPI(The Standard Commands for Programmable Instruments)是一种标准化的控制仪器语言,但传统的SCPI解释方式占用太多的内存资源,制约了在嵌入式系统上的应用。
因此,减少SCPI解析系统占用的资源,是降低通用仪器实现智能化和可编程化成本的关键[1]。
本文针对程控仪器的SCPI命令集,设计和研究了一种新的SCPI解释方法,采用静态链表方式来构建SCPI命令树,减少了SCPI生成树对系统内存的占用,并提供了一种直观的修改和扩展SCPI命令集的设计方法。
SCPI基于IEEE488.2标准,但不局限于GPIB接口,其也可用于RS232C等总线,在与通讯物理连接成硬件无关的高层次上定义的程控语言[2-3]。
可以缩短自动测试设备程序开发时间,保护设备制造者和使用者双方的软硬件投资,为一起控制和数据利用提供广泛兼容的编码环境。
SCPI解析器的功能是对接收到的命令字符串进行解析,将命令字符串翻译成为仪器可以识别的代码,一般分成两部分[4-6]:(1)SCPI命令集的建立和储存。
(2)对输入的命令字符串按照SCPI命令集进行词法分析和语法分析。
根据SCPI命令的树状结构特点,一般的解析方法是使用将多叉树转换成二叉树——兄弟孩子表示法,来存储SCPI命令集。
基于Python的SCPI命令解释器的设计

测控技术2019年第38卷第5期智能感知与仪器仪表-62-基于Python的SCPI命令解释器的设计周子天,叶卫东(北京航空航天大学自动化科学与电气工程学院,北京100191)摘要:目前可编程仪器标准命令(SCPI)依然被广泛使用,因此设计一个高效通用的SCPI命令解释器很重要。
常用的SCPI命令解释器多以C语言开发,采用链式二叉树等存储结构,多有如解析效率低、通用性差、不识别等效命令等缺点o因此提出一种基于Python语言的设计。
相比于常用的链式二叉树或顺序存储等结构,本设计提出一种基于Python字典结构的新型存储结构,减少了解析时的查询次数,提高了解析效率。
而针对常用SCPI命令解释器通用性差的缺点,本设计提出以XML文档描述SCPI命令树,在启动时动态加载进内存的方式提高了解释器的通用性。
同时,由于Python跨平台的特性,所设计的SCPI命令解释器也拥有良好的跨平台特性,适于在各平台下工作。
关键词:Python;SCPI;解释器;可程控仪器中图分类号:TP311.1文献标识码:A文章编号:1000-8829(2019)05-0062-05doi:10.19708/j.ckjs.2018.00.001Design of SCPI Command Interpreter Based on PythonZHOU Zi-tian,YE Wei-dong(School of Automation Science and Electrical Engineering,Beihang University,Beijing100191,China)Abstract:Nowadays,standard commands for programmabPe instruments(SCPI)0still widely used,so,it is io-portani to design an efficient and generaP SCP)command intearetea.The commonly used SCP)command inteapates are mostly developed in C languaae,and adopis the stOTdge strnctura of chain binara tree.Ci has many disadventages such as low resolution diciencc,poor universalitt and unacognized equiveleni command.Therefore,a design based on Python language is pared with the common chained binay tree or se-quentiai storage stmcture,a new storage structure based on Python dictionae is proposed,which reduces thc numbeeoiqueeie@in ee@oyuiion and impeoee@iheee@oyuiion e i cienctc)n oedeeiooeeecomeihediadeaniageoi pooegeneeaycitoicommon SCP)command cnieepeeiee,iheSCP)command ieeec de@cecbed wcih XMLdocut meni,and ihegeneeaycitoiihecnieepeeieeccmpeoeed btyoadcngcicniomemoetdtnamcca y tai@iaeiupcAiihe @ame icme,due io ihe c eo@p ya iio em cha eac ie ec icc@oiP tihon,ihe de@cgned SCP)command cnieepeeieeayoha@ good ceo@pyaiioem chaeacieecicc@and c@uciabyeioewoekcngundeea y pyaiioem@cKey words:Python;SCPI;inteaate;programmabie instrnmeni现如今,随着可程控测量仪器的不断发展,SCP)(Standard Commands for Programmable Instamenis,可编程仪器标准命令)依然是用于控制可程控测量仪器的重要标准。
PC机远程控制仪器的SCPI解析模块设计(最后发表)

PC机远程控制仪器的SCPI解析模块设计(西华大学)陈艳芬杨景常张吉涛(XiHua University)Chen,Yanfen Yang,Jingchang Zhang,Jitao 摘要:通过对SCPI(程控仪器标准命令)的研究,提出了一种应用于SCPI的解析模块。
该解析模块可适用于PC机和仪器间的各种接口,通过C语言编制的查表程序将PC机发出的SCPI消息解析为一组仪器可执行的二进制码。
此解析模块在实验室设计的多种仪器上进行了实验,证明了SCPI解析模块在可程控仪器中的可行性。
关键词:SCPI;程控仪器;C51;查表程序中图分类号:TP216 文献标识码:AThe design of SCPI parser module between PC and remote controlinstrumentsAbstract:Through the studying of SCPI(Standard Commands for Programmable Instruments),a parser module applied to SCPI is presented.The parser module can be the same with various interface between PC and instrments, procedure of looking up the table compiled by C parsed SCPI message from PC to a set of binary code that can be executed in instruments. The parser module was validated in multifarious instruments designed by our lab team,the feasibility of SCPI parser module in programmable instruments is proved.Key words:SCPI;Programmable instruments;C51;Procedure of looking up the table引言随着自动测试技术和程控仪器的发展,除了要求物理硬件接口标准化外,也要求软件控制标准化。
SCPI语言解析器设计

SCPI语言解析器设计1.引言SCPI语言与过去的仪器语言的不同点,在于命令描述的是正在试图测量的信号,而不是正在用以测量信号的仪器。
仪器使用者可花费较多的时间来学习解决实际应用问题,用较少的时间来学习所使用的仪器,这是因为相同的SCPI命令可用于很多不同类型的仪器,这被称为“横向兼容性” (即不同产品类型之间的兼容性)。
SCPI 还是可扩展的。
这就是它能随着仪器功能的增加而扩大。
这样在将来人们可以购买一台比目前所用仪器功能更多的万用表,其基本功能完全可以像以前使用的旧仪器一样程控。
这就是“纵向兼容性” (即产品各代之间的兼容性)[1]。
鉴于这些优点,目前大部分程控仪器都支持SCPI语言,以方便用户使用和维护。
SCPI语言也像其他语言一样,具有关键字、数据、分隔符等基本元素,SCPI语法规则只定义了这些基本元素的命名规范和组合使用方法,而且允许根据实际应用增减关键字,具有很好的可扩展性。
在程控类的仪器仪表设计中,支持SCPI语言这一特性几乎是必须的,因此设计一套灵活高效的SCPI语言解析器是非常必要的。
本文提出了一种针对SCPI语言的两级解析模型,即解析器分为词法分析和语义分析两部分,将复杂的解析工作划分为两级处理,每一级只负责一部分工作,降低了解析器的设计难度。
词法分析专注于从SCPI语句中提取关键字和数据,并将其映射为内部代码;语义分析则专注于进行语义解释,将内部代码表示的SCPI语句解释为针对仪器的寄存器访问和操作。
本文通过设计实例,介绍了这种两级解析模型的设计与实现过程。
文章首先简单介绍了SCPI语言,并以费思泰克电子负载FT6600支持的SCPI语句举例。
之后在文章第3部分详细介绍了SCPI语言词法分析器的设计,在文章第4部分详细介绍了SCPI语义分析器的设计。
最后在第5章进行了总结,并展望了这一设计技术的进一步改进和应用。
2.SCPI语言及FT6600程序控制命令简介SCPI语言是一种用于可编程仪表的标准命令,它定义了一套控制器与程控仪器通讯时命令规则。
基于最优解空间树的SCPI解析器设计

基于最优解空间树的SCPI解析器设计【摘要】提出一种基于解空间树的通用SCP I命令解析器实现方案。
先将SCPI命令集标识成一棵解空间树,给树中每个节点赋予不同的属性。
进行命令解析时,采用贪心算法,搜索解空间树的路径,寻找最优的匹配解。
试验证明针对SCPI规范的各种等效变种命令,该算法具有非常好的普适性。
【关键词】SCPI命令;解空间树;贪心算法;SCPI解析器1.引言SCPI(Standard Commands for Programmable Instruments)是一种标准化的程控仪器编程语言,采用标准语法格式描述仪器功能,为所有仪器仪表提供了一个广泛兼容的编程和数据使用环境。
SCPI命令具有纵向兼容性,横向兼容性和功能兼容性,最大限度的保证了SCPI命令在控制仪器中的灵活性。
根据SCPI99[1]规范,SCPI指令同时具有长命令名和短命令名,命令中某些节点可以作为缺省节点忽略,导致SCPI命令使用灵活,会产生大量的变形等效命令。
如何将这些等效命令编译成同一条执行指令是SCPI解析器设计的一个难点。
目前常见的SCPI解析器,如文献[2]将SCPI指令提前写入应用程序,如果修改SCPI指令或者将SCPI解析器移植到其他程序,就需要重新修改程序,使用不灵活。
文献[3]虽然提出用XML文件描述SCPI指令,但是在描述SCPI指令的时候,没有充分发挥XML的自描述性和树形结构,因而无法识别全部的等效命令。
本文将解空间树这一技术引入到SCPI解析器设计,通过设计相应的贪心算法,解决了SCPI的等效命令问题。
本文结构如下,第2节介绍SCPI语法和解空间树的基本概念与模型;第3节提出基于解空间树的SCPI解析器生成算法;第4节最后介绍研究意义和进一步的研究方向。
2.SCPI语法与解空间树2.1 SCPI语法简介SCPI是一个基于标准IEEE488.2建立的,适合所有仪器的命令集。
其主要目的是为了使相同功能具有相同的程控命令,以实现程控命令的通用性。
一种实用的SCPI语法分析设计方法

Ke w r s CPIc m ma d,p ri g y o d :S o n a sn ,mo u e o d l ,c mm a d te . n re
0 引 言
随 着 自动 测试 技 术 和 测量 仪 器 的 发 展 , 能测 智 量 仪器 必须提 供相应 的对外接 l 1才能满 足复 杂的测 试 任务 。在 由测量 仪 器组 成 的测 试 系 统 巾 , 量 仪 测 器 必然 要响应 外控 机 发 送 来 的程 控命 令 , 这些 命 对 令 进行 分析 , 断这 些 命 令 是 否符 合 该 测 量 仪 器 的 判 规 范 , 错误命 令给 出错 误提示 , 正确命 令进 行处 对 对 理, 并转 换成 系统所 能识 别的代 码 , 以完 成外控 机所 要求 的操作 , 一过 程就 是语法 分析 。凶此 , 这 在测量 仪器中, 语法分 析是 外控 机和 测量 仪器 连接 的 中枢 。
p n a i t n r g a a d b l Y a d p o r mmi g e e u i n e f in y Co c n r t g o CPIc m ma d f r a , t i i n x c t fi e c . o c n e ta i n S n o n o m t hs a tce i to u e i h s e d a d h g fii n y p r i g d sg t o a e n t e t u t r o r il n r d c d ah g p e n i h e f e c a s n e i n me h d b s d o r e s r c u e t c
( h 1f n t u er ( ( 2 6 5 ) T e4 si t J 厂 、 6 5 5 I t / E
基于SCPI命令的函数信号发生器程控软件设计

基于SCPI命令的函数信号发生器程控软件设计摘要:本文介绍了基于SCPI(标准命令编程界面)命令的函数信号发生器程控软件的设计。
起首,对函数信号发生器的工作原理和SCPI命令进行了简要介绍。
然后,阐述了软件设计的整体流程和关键步骤,包括软件结构设计、命令解析与处理、界面设计等。
最后,依据软件设计的实际需求,对软件进行了功能验证和性能评估。
通过本文的介绍,读者可以了解到如何设计基于SCPI命令的函数信号发生器程控软件,并且精通了相关的设计方法和技巧。
关键词:SCPI命令;函数信号发生器;程控软件;设计;命令解析1. 引言随着科学技术的不息进步,电子测量设备在各个领域的应用日益广泛。
函数信号发生器作为一种常用的仪器设备,广泛应用于电子、通信、自动化等领域的测试和试验中。
为了满足不同需求,现代函数信号发生器已经具备了多种信号波形的产生和调整功能,并且可以通过计算机进行程控操作。
在函数信号发生器的程控操作中,SCPI命令起到了关键的作用。
SCPI是一种标准命令编程界面,用于实现测量仪器与计算机之间的通信和控制。
在函数信号发生器的程控软件设计中,通过解析和处理SCPI命令,可以实现对信号波形、频率、相位等参数的控制。
本文将介绍基于SCPI命令的函数信号发生器程控软件的设计。
起首,对函数信号发生器的工作原理和SCPI命令进行了简要介绍。
然后,阐述了软件设计的整体流程和关键步骤,包括软件结构设计、命令解析与处理、界面设计等。
最后,依据软件设计的实际需求,对软件进行了功能验证和性能评估。
2. 函数信号发生器的工作原理和SCPI命令函数信号发生器是一种用于产生各种基本波形的仪器设备。
通过选择不同的波形、设置不同的参数,函数信号发生器可以产生正弦波、方波、三角波、脉冲等各种信号形式。
同时,函数信号发生器还可以调整信号的频率、相位、幅值等参数,以满足不同试验和测试的要求。
SCPI是一种标准命令编程界面,用于实现测量仪器与计算机之间的通信和控制。
一种SCPI命令的解析方法及装置[发明专利]
![一种SCPI命令的解析方法及装置[发明专利]](https://img.taocdn.com/s3/m/c1001f6f3a3567ec102de2bd960590c69ec3d82f.png)
(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号 (43)申请公布日 (21)申请号 201810027736.6(22)申请日 2018.01.11(71)申请人 天维讯达(北京)科技有限公司地址 100041 北京市石景山区实兴大街30号院中国无线电检测大厦申请人 天维讯达(上海)通信科技有限公司(72)发明人 屠丹 李吉 唐超 李守凯 陆国栋 杨莉 肖靖 陈奎 (74)专利代理机构 北京智汇东方知识产权代理事务所(普通合伙) 11391代理人 康正德 孙晓芳(51)Int.Cl.G06F 16/835(2019.01)(54)发明名称一种SCPI命令的解析方法及装置(57)摘要本发明提供了一种SCPI命令的解析方法及装置,该方法包括:读取已经创建的XML文件,该XML文件中包含一种预置类型的多条SCPI命令及各SCPI命令对应的命令标号;接收预置类型或其他类型的SCPI命令,按照预置算法将接收到的SCPI命令与XML文件中一种预置类型的多条SCPI命令进行匹配;获取匹配成功的SCPI命令对应的命令标号,根据获取的命令标号调用相应的底层函数。
本发明实施例在接收到其他类型的SCPI命令时,采用灵活的预置算法与XML文件中的SCPI命令进行匹配,使XML文件仅需描述一种类型的SCPI命令即可自动支持其他各种不同类型的SCPI命令。
权利要求书3页 说明书13页 附图6页CN 110110149 A 2019.08.09C N 110110149A1.一种SCPI命令的解析方法,包括:读取已经创建的XML文件,所述XML文件中包含一种预置类型的多条SCPI命令及各SCPI 命令对应的命令标号;接收预置类型或其他类型的SCPI命令,按照预置算法将接收到的SCPI命令与所述XML 文件中一种预置类型的多条SCPI命令进行匹配,所述其他类型为与所述预置类型不同的类型;获取匹配成功的SCPI命令对应的命令标号,根据获取的命令标号调用相应的底层函数,其中,所述命令标号与所述底层函数一一对应。
基于单片机的SCPI命令解析模块的设计与实现

基于单片机的SCPI命令解析模块的设计与实现张亮红;刘文怡;王红亮;刘伟【摘要】目前,可编程仪器标准命令(SCPI)已广泛应用于测试计量仪器的操作控制中;为提高SCPI命令解析模块通用性、灵活性,进一步简化仪器内SCPI命令解析、提高程控执行效率,采用ATmega 128单片机,在单片机内将SCPI命令解析作为单独模块完成;单片机存储空间分为数据引导表区和数据存储区,采用孩子兄弟表示法建立二叉树存储SCPI命令集,通过遍历二叉树完成命令的解析;此解析模块具有解析速度快、可移植性好等优点,已经成功应用于某航天数据记录仪,并验证了其正确性和可靠性.【期刊名称】《计算机测量与控制》【年(卷),期】2015(023)008【总页数】3页(P2858-2860)【关键词】单片机;SCPI命令;二叉树【作者】张亮红;刘文怡;王红亮;刘伟【作者单位】中北大学电子测试技术国家重点实验室,太原030051;中北大学仪器科学与动态测试教育部重点实验室,太原030051;中北大学电子测试技术国家重点实验室,太原030051;中北大学仪器科学与动态测试教育部重点实验室,太原030051;中北大学电子测试技术国家重点实验室,太原030051;中北大学仪器科学与动态测试教育部重点实验室,太原030051;中北大学电子测试技术国家重点实验室,太原030051;中北大学仪器科学与动态测试教育部重点实验室,太原030051【正文语种】中文【中图分类】TP36SCPI主要侧重于解决仪器程控和响应中器件消息的标准化问题,其定义了各种可编程仪器的控制命令格式以及语法,是目前重要的仪器程控命令标准之一[1]。
大部分SCPI命令解析器都基于计算机[23],具有一定的局限性,而单片机具有抗干扰能力较强、造价便宜、性能稳定且有一定存储空间等特点,因此本文采用单片机设计了一种SCPI命令解析模块。
由于单片机对算法的时空要求非常严格[4],该模块采用二叉树结构存储SCPI命令集,并使用二叉树非递归算法进行遍历,提高了SCPI命令解析模块的通用性和高效性,该模块已经成功应用于某航天数据记录仪,进一步验证了其正确性和可靠性。
基于Linux的SCPI命令解释器的研究与实现

基于Linux的SCPI命令解释器的研究与实现
李博;赵建;时玉娟;王海丽
【期刊名称】《计算机测量与控制》
【年(卷),期】2008(16)7
【摘要】在自动测试技术和综合测控系统中,解决控者设备和仪器间的通信是重要问题之一.SCPI规范化了所有的通信命令内容和格式,给程控仪器的软件开发提出更高要求.文章介绍了SCPI两大类命令和主要语法规则,提出了一种基于树型的规范化、模块化的SCPI命令解释器的实现方法.研究了在程控仪器的嵌入式linux操作系统环境下SCPI的解析和应用方法,并验证了该命令解释器具有解析速度快、解析命令全,移植性好等优点,对研制具有自主知识产权的现代程控仪器有着积极的支持作用.
【总页数】4页(P1007-1010)
【作者】李博;赵建;时玉娟;王海丽
【作者单位】西安电子科技大学,机电工程学院,陕西,西安,710071;西安电子科技大学,机电工程学院,陕西,西安,710071;西安电子科技大学,机电工程学院,陕西,西安,710071;威盛电子(北京)有限公司,北京,100084
【正文语种】中文
【中图分类】TP274
【相关文献】
1.基于嵌入式Linux的程控仪器SCPI解释器的实现方法研究 [J], 陈建萍;杨汉祥
2.SCPI命令解释器的实现 [J], 韦荣昌;赖小红
3.基于Python的SCPI命令解释器的设计 [J], 周子天;叶卫东
4.基于Python的SCPI命令解释器设计与优化 [J], 潘琦;陈晗;曹炳尧;李迎春
5.基于JavaSocket的SCPI命令解释器研究与实现 [J], 冯玉光;尹洪伟;吴亮;李双明
因版权原因,仅展示原文概要,查看原文内容请购买。
SCPI命令解释程序设计在《数据结构》教学中的应用

SCPI命令解释程序设计在《数据结构》教学中的应用
赖小红;钟秀蓉
【期刊名称】《实验科学与技术》
【年(卷),期】2011(0)S1
【摘要】《数据结构》课是一门理论和实践要求都很强的课程,在教学中一个好的用例可以加深学生的理解,帮助学生更快地掌握和运用所学算法。
文中根据科研中的SCPI命令解释程序设计,将该程序设计转换成教学中的实际用例,帮助学生尽快掌握相关数据结构的内容。
【总页数】3页(P250-252)
【关键词】可程控仪器标准命令;命令解释器;数据结构;二叉树
【作者】赖小红;钟秀蓉
【作者单位】电子科技大学自动化工程学院
【正文语种】中文
【中图分类】N
【相关文献】
1.项目驱动式教学在数据结构课程设计中的应用 [J], 唐轶媛;蒋荣萍;周卫
2.“项目驱动+课程设计”教考模式在《数据结构》教学中的应用 [J], 尹成波;任澎;林德丽
3.动画技术在情境教学设计中的应用实践——《数据结构》三个典型案例的设计[J], 唐翠芳;林筑英
4.成人高等教育教学中微课的设计与应用研究——以“数据结构”课程为例 [J], 陆荣; 谢红梅; 洪方
5.成人高等教育教学中微课的设计与应用研究--以“数据结构”课程为例 [J], 陆荣;谢红梅;洪方
因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第25卷 第2期2006年2月国 外 电 子 测 量 技 术Foreign Electronic Measurement Technolog yVo l.25,N o.2F eb.,2006作者简介:井 涛(1970-),女,1994年毕业于电子科技大学计算机系,工程师。
主要从事智能测量仪器的软件研发。
研究与设计一种实用的SCPI 语法分析设计方法井 涛 郭永瑞(中国电子科技集团公司第41研究所266555)摘要:语法分析模块作为智能测量仪器程控功能的核心,起着将总线上接收到的信息进行分析、过滤和转换成仪器内部可识别代码的作用,在智能仪器软件设计中具有重要地位。
模块的性能直接影响测量仪器程控软件的稳定性、可靠性、可扩展性,以及程控执行效率。
针对SCPI 命令格式,介绍一种采用树结构构建数据结构并实现快速、高效语法分析的通用设计方法,以提高通用性、灵活性和可移植性。
利用该方法设计的模块已经在多种智能仪器上得到应用,验证了方法的可行性。
关键词:SCPI 命令语法分析模块命令树中图分类号:TP314Useful parsing design method of SCPIJing TaoGuo Yong rui(Th e 41st I nstitu te of CET C 266555)Abstract:Parsing mo dule has alw ays been the core of progr am ming control in intelligent instru -m ents.It collects the information on the buses then parsing ,filtering and tr ansform ing them to in -strum ent's internal codes.It plays a v er y important role in the intelligent instrum ent so ftw are de -sign.T he functionality of parsing module can directly affect the softw ar e's stability,reliability,ex -pandability and pro gramm ing execution efficiency.Concentrating on SCPI com mand form at,this ar ticle introduced a hig h speed and high efficiency parsing desig n method based on tree structur e to building up data.Keywords:SCPI co mmand,parsing,m odule,com mand tree.0 引言随着自动测试技术和测量仪器的发展,智能测量仪器必须提供相应的对外接口才能满足复杂的测试任务。
在由测量仪器组成的测试系统中,测量仪器必然要响应外控机发送来的程控命令,对这些命令进行分析,判断这些命令是否符合该测量仪器的规范,对错误命令给出错误提示,对正确命令进行处理,并转换成系统所能识别的代码,以完成外控机所要求的操作,这一过程就是语法分析。
因此,在测量仪器中,语法分析是外控机和测量仪器连接的中枢。
SCPI(The Standard Comm ands for Prog ram -m able Instruments)作为测量仪器程控命令的业界标准,虽然有相应的规范,但对于一种特定的测量仪器而言,其在具体命令、参数等方面仍然存在很大的差异。
针对这种情况,本文介绍了一种较为实用的语法分析设计,利用此方法设计的模块通过提供简单的接口,针对不同的仪器使用不同的命令集,就可实现不同仪器的语法分析的全部功能,从而有效缩短其他仪器的研发时间,节省软件设计资源。
1 SC PI 语法介绍1.1 SCPI 简介SCPI 是架构在IEEE488.2上的可程控仪器标准指令集。
整个SCPI 命令可分为两个部分,一是IEEE488.2公用命令,另一部分是SCPI 仪器特定控制命令。
公用命令是IEEE488.2规定的仪器必须执行的命令,其句法与语义均遵循IEEE488.2规2006年第2期井 涛等:一种实用的SCPI语法分析设计方法43定。
这部分命令与测量无关,用来控制重设、自我测试和状态操作;SCPI中的仪器特定控制命令是与仪器相关的,针对不同的仪器命令也不同。
本方案主要针对仪器特定控制命令而设计。
1.2 SCPI命令格式SCPI命令格式为树状层次结构,可分为多个子系统,每个子系统由一个根命令和一个或数个层次命令构成。
命令格式为:关键字<参数>:关键字<参数>: <参数>,<参数>例如:CA LCulate<cnum>:CORRection: EDELay:TIM E<num>命令其中:CALCulate、CORRectin、EDELay、T IME 是关键字<cnum>:关键字所带参数,此处指通道号<num>:命令所带参数,此处指电延迟时间 含义:对仪器的指定通道<cnum>,设置电延迟时间,其值为<num>。
2 设计方法语法分析过程的实质是编译系统的执行过程,设计就基于编译系统的实现过程进行。
典型编译系统的实现过程可划分成5个阶段:词法分析、语法分析、中间代码生成、优化和目标代码生成。
事实上并非所有编译程序都要分成这5个阶段。
在某些情况下,为了加快编译速度,有些编译程序是在语法分析的同时产生指令代码的。
智能测量仪器为了缩短程控命令的响应时间,提高执行效率,也采用在语法分析的同时产生命令码,因此把整个编译过程称为语法分析。
根据SCPI命令的树状层次结构特点,综合考虑到通用性以及易实现、易升级、查询便利、内存资源利用等因素,本方案采用树型结构来保存命令信息。
其示意图如图1所示。
树中的每一个节点,不是直接保存关键字信息,而是采用编码的方式,加快遍历速度。
每一个节点有兄弟指针、父指针、孩子指针等等信息,利用这些信息可以方便地实现向下遍历和回溯。
由于命令的关键字和参数包含了不同的信息,所以数据结构也不同:关键字节点结构:struct{int CmdDefault:1;//命令可图1命令存放示意图缺省否?int LastCmd:1; //最后命令节点否? int par ent;//父指针}COMM ANDNODE;参数节点结构:struct{short Com mandCode:12;//命令编码 int Query:1;//是否查询命令?int Overlap:1;//命令允许交叠?}PARAM NODE;按照这种思路,将语法分析过程分为创建树过程和遍历树过程。
创建树过程就是把特定仪器的命令集,按照一定的结构创建成供查询使用的命令树;遍历树过程就是根据得到的命令,通过遍历命令树,得到命令的相关信息。
对于智能仪器来说主要使用的就是遍历树过程,它直接影响仪器的程控效率。
2.1命令树创建在这个阶段要求的输入就是包含仪器所需的所有SCPI命令的一个文本文件,输出就是一棵按规则创建的命令树。
创建过程分为词法分析和语法分析两个阶段: (1)词法分析阶段:从文件中读入文本,输出关键字段编码和分割符及参数信息。
关键字段是进行语法分析的基本符号。
(2)语法分析阶段:根据词法分析阶段输入的编码和参数等信息,输出一棵完整的命令树。
语法分析的步骤:(1)根据词法分析的结果填写节点结构信息。
(2)遍历树,将节点插入命令树中,同时填写节点信息结构的父指针、兄弟指针,将子指针清空。
(3)重复1)和2),直至文件读完。
创建树过程的软件流程如图2所示:44国 外 电 子 测 量 技 术第25卷图2创建树语法分析流程图2.2命令树遍历遍历树的过程,粗略的可分为自上而下和自下而上两种方法。
自下而上分析法:就是从命令树的末端开始,步步向上 归约 ,直到根。
自上而下分析法:其过程与自下而上过程恰好相反,从根出发,自上而下对输入串中的关键字进行匹配直至树的末端或者无匹配为止。
这种分析过程本质上是一种试探过程,是反复使用不同产生方式谋求匹配输入串的过程。
自下而上和自上而下的分析法,各有优点,此处因为系统的输入比较确定,所以采用自上而下的分析法。
其过程也分为词法分析和语法分析两个阶段:词法分析阶段根据输入的命令,得到每一个关键字的编码和参数等信息。
语法分析阶段,根据编码查找命令树当前层(或者根)与之匹配的信息,有匹配信息时,记录当前位置以备回溯到父级,继续下一节点的查询;无匹配信息时,需要查询其兄弟节点或回溯至父级继续查询,若符合条件的节点查询完毕都没有匹配的信息则出错,语法分析过程结束。
循环上述过程,直至到最后一个节点,得到一个仪器可以识别并能够执行的命令码和参数,语法分析过程结束。
同时提交命令码供系统执行相应的功能。
3 结束语对采用SCPI规范的可程控智能测量仪器,不同类型的仪器所采纳的实际命令参数、数量以及具体命令形式存在一定的差别,但均可以通过上述方法来设计语法分析模块,从而针对不同测量仪器自动生成相应的数据结构并实现高效、快速的语法分析、错误定位以及合法命令的编码过程,方便后续的命令执行和处理。
目前按照上述方法设计的语法分析模块已经在若干种智能测量仪器中得到了应用,实践证明模块具有高可靠性和较高的执行效率。
参考文献[1]Standard Commands fo r Pr og rammable InstrumentsM anual.1990.[2]袁俭.AN SI/IEEE488.2标准文本[M].成都:电子科技大学出版社,1993.[3]高仲仪,金茂忠.编译原理及编译程序构造[M].北京:北京航空航天大学出版社,1996.[4]严蔚敏,吴伟民.数据结构[M].北京:清华大学出版社,1996.********************************************** FSH新增WCDMA码域功率测量选件R&S为FSH新增了WCDMA基站码域功率测量选件FSH-K4,该选件大大增强了FSH在基站测试领域的功能。
FSH-K4可以根据3GPP FDD规范,测量基站的码域功率。
该选件可以测量信道总功率以及其中几个最重要的信道功率,包括公共导频信道CPICH、主公共控制物理信道P-CCPCH、主同步信道P-SCH,以及辅助同步信道S-SCH,同时还可以显示载波频率误差。