C语言 scpi命令解释器,SCPI命令解释器的实现.pdf

SCPI命令解释器的实现.pdf

第 10卷 第 3期 信 息 与 电 子 工 程 VO1.10,NO.3

2012年 6月 INFORMATION AND ELECTRONIC ENGINEERING Jun.,2012

文章编号 :1672—2892(2012)03-0377—05

SCPI命令解释器的实现~~u一一~~~~黼一一~一一一一一y_一一一一~一呈~一~_二一一一~一一三一一三一一詈l.一_枷一一_~一一~一~_她一一一~~一罢一m一一一一~一一一..一一~~一~脚三一一一一~一嘞~一一.

韦荣 昌,赖小红

(电子科技大学 自动化T程学院,四川 成都 611731)

摘 要:可程控仪器命令标准(SCPI)目前被广泛应用于测试测量仪器的操作控制中。针对数字

示波器的 SCPI命令集,研究并设计 了一种 SCPI命令解释器,此命令解释器通过采用二又树结构

来存储数字示波器的 SCP1命令集,并在此基础上通过遍历二叉树来实现 SCPI命令 的查找过程。

设计的解释器具有命令解析效率高,移植性好等优点,现 已应用于数字示波器 中,实践证明了此

设计方案是可行 的。

关键词:数字示波器;SCPI解释器;命令树;二叉树

中图分类号 :TN98;TM932 文献标识码 :A

ImplementationofStandardCommandsforProgrammable

Instrumentsinterpreter

SCPI建立在 IEEE488.2基础上, 目前在各种程控测试测量仪器中得到了广泛应用。但是 ,由于仪器硬件并

不能直接理解控制器发出的 SCPI命令 ,因此需要依靠 SCPI命令解释器才能完成要求的操作。数字示波器是组

建 自动测试系统的关键仪器之一,为数字示波器设计 SCPI命令解释器有助于将其应用于大型 自动测试系统,同

时也能够增强其互换性和兼容性…。

l SCPI命令语法简介

1.1SCPI概述

20世纪 7O年代,自动测试系统最重

要的进展是 IEEE488.1标准的制订,它的

出现极大地 推动 了 自动测试 系统 的发

展。IEEE488.1主要规定了仪器在 电气 、 Fig.1SCPIprogram—controlledequipmentmodel

机械和功能方面相容性的要求 ,但在软 图 ISCPI程控仪器模型

件方面并没有统一的标准。之后 IEEE488.2在 IEEE488.1基础上使程控仪器器件消息的数据编码与格式 、命令功

能元素与编码句法 、消息交换控制等方面实现了标准化 ,但它只定义了程控仪器的少数公用命令语义,用于仪器

内部基本操作控制 ,却未解决器件消息标准化的问题 。因此,建立在 IEEE488.2基础上的 SCPI应运而生。

收稿 日期:2011-06—20:修 回日期:2011.08.29

378 信 息 与 电 子 工 程 第10卷

SCPI主要侧重于解决仪器程控和响应中器件消息的标准化问题,其定义了各种可编程仪器的控制命令格式

以及语法 ,是 目前重要的仪器程控命令标准之一 。SCPI采用树形分层结构的命令集,提出了一个具有普遍性

的通用仪器模型,仪器模型体现了 SCPI仪器功能逻辑和分类 ,如图 1所示。

1.2SCPI语法格式

根据 SCPI99标准 ,整个 SCPI命令分为 IEEE488.2公用命令和SCPI仪器特定控制命令 2种不同类型。

公用命令就是 IEEE488.2规定的仪器必须执行(或称必备的)的命令 ,它们的句法和语义都遵循 IEEE488.2的

规定,以 “’开头 ,它与测量无关 ,用于控制仪器的某些基本功能操作 ,其语法格式如下 3【】:

1)命令格式 :星号+关键字 ;

2)询 问格式 :星号+关键字+问号 。

SCPI仪器特定控制命令以 “:”开头 ,有命令(Command)和询问(Que

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言实现SCPI命令解释器可以用于控制和管理各种仪器设备,例如示波器、信号发生器、电源等。下面是一个基本的SCPI命令解释器的设计: 1. 定义SCPI命令格式,包括命令头和参数部分,例如:“MEASure:VOLTage:DC?”。 2. 使用C语言编写解析器函数,将接收到的SCPI命令解析为命令头和参数部分,例如:“MEASure:VOLTage:DC”和“?”。 3. 根据不同的命令头,调用相应的处理函数,例如针对“MEASure:VOLTage:DC”命令头,调用相应的函数进行电压测量操作。 4. 在处理函数中,根据参数部分的不同,执行相应的操作,例如根据“?”返回电压值。 5. 将结果返回给用户或者其他系统,例如将测量结果显示在屏幕上或者将结果发送到其他设备。 基于Python的SCPI命令解释器的设计与C语言类似,但是可以使用Python的高级特性和库来简化开发过程。 1. 定义SCPI命令格式,包括命令头和参数部分,例如:“MEASure:VOLTage:DC?”。 2. 使用Python的正则表达式库或者字符串操作函数,将接收到的SCPI命令解析为命令头和参数部分,例如:“MEASure:VOLTage:DC”和“?”。 3. 根据不同的命令头,使用Python的面向对象编程特性,调用相应的处理类和方法,例如针对“MEASure:VOLTage:DC”命令头,调用相应的类进行电压测量操作。 4. 在处理类中,根据参数部分的不同,执行相应的操作,例如根据“?”返回电压值。 5. 使用Python的网络编程库或者GUI库,将结果返回给用户或者其他系统,例如将测量结果显示在屏幕上或者将结果发送到其他设备。 总之,无论是基于C语言还是Python的SCPI命令解释器,都需要定义命令格式、编写解析器、实现处理函数、返回结果等基本步骤,并且需要根据具体应用场景选择合适的语言和库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值