SCPI 语言简介

2023-11-13

电子负载中需要用到,所以记录下。来源是德科技

SCPI(可编程仪器的标准命令)是一种基于 ASCII 的仪器编程语言,供测试和测量仪器使用。 SCPI 命令采用分层结构,也称为树系统。 相关命令归组于共用结点或根,这样就形成了子系统。 下面一部分 SENSe 子系统说明了这一点。

SENSe:
         VOLTage:
                  DC:RANGe {<range>|MIN|MAX|DEF}
                  DC:RANGe? [MINimum | MAXimum | DEFault]

SENSe 是命令的根级关键字,VOLTage 是第二级关键字,DC 是第三级关键字。 冒号 (:) 隔开连续的关键字。

语法惯例

命令语法格式图示如下:

VOLTage:DC:RANGe {<range>|MIN|MAX|DEF}

大多数的命令(及一些参数)是大写和小写字母的混合。 大写字母表示命令的缩写,使程序行变短。 如果要获得较好的程序可读性,可以使用长格式命令。

例如,考虑到前文中 VOLTage 这个关键词。 您可以输入 VOLT 或 VOLTage,大小写字母随意结合。 因此,VolTaGe、volt 和 Volt 都可以接受。 其他格式(如 VOL 和 VOLTAG)将会产生错误。

  • 大括号 ( { } ) 包含了参数选择。 大括号不随命令字符串发送。
  • 垂直线 ( | ) 分隔参数选择。 例如,上述命令中的 {<range>|MIN|MAX|DEF} 指示您可以指定一个数字范围参数或 "MIN"、"MAX" 或 "DEF"。 条形图不随命令字符串发送。
  • 尖括号 ( < > ) 表示必须给括号内的参数指定一个值。 例如,上述的语法语句表明尖括号中的 <range> 参数。 不随命令串一起发送尖括号。 必须为该参数指定一个值(例如 "VOLT:DC:RANG 10"),除非您选择语法中显示的其他选项中的一项(例如 "VOLT:DC:RANG MIN")。
  • 可选参数放在放括号内 ( [ ] )。 方括号不会随命令串一起发送。 如果您未对可选参数指定数值,则仪器将使用默认值。

命令分隔符

冒号 (:) 隔开连续的关键字。 必须插入一个空格将参数与命令关键字分开。 如果一个命令需要多个参数,则用一个逗号分隔相邻的参数:

CONF:VOLT:DC 10,0.003

分号(  ) 分隔同一子系统中的两个命令,并可最大限度地减少输入。 例如,下列字符串:

TRIG:SOUR EXT;COUNT 10

等同于下面两个命令:

TRIG:SOUR EXT
TRIG:COUNT 10

使用一个冒号和一个分号来链接不同子系统的命令。 例如,在下面的示例中,如果不使用冒号和分号,将会产生错误:

TRIG:COUN MIN;:SAMP:COUN MIN

使用 MIN、MAX 和 DEF 参数

可以用 "MIN" 或 "MAX" 代替很多命令的参数。 在某些情况下,您也可以使用 "DEF" 替换。 例如,参考下列例子:

VOLTage:DC:RANGe {<range>|MIN|MAX|DEF}

不用为 <range 参数选择特定的值,可以用 MIN 参数将量程设置为最小值,用 MAX 参数将量程设置为最大值,或用 DEF 参数将量程设置为默认值。>

查询参数设置

要查询大多数参数的当前值,您可以添加问号 ( ? ) 给命令 例如,下面的示例将触发计数设置为 10 次测量:

TRIG:COUN 10

然后,通过发送可以查询计数值:

TRIG:COUN?

您也可以查询所允许的最小或最大计数,如下所示:

TRIG:COUN? MIN
TRIG:COUN? MAX

SCPI 命令终止符

发送到仪器的命令串必须以一个<换行> (<NL) 字符(ASCII 十进制数字 10)结尾。> 可以将 IEEE-488 EOI(结束或标识)信息当做 <NL> 字符,并用来代替 <NL> 字符终止命令串。 一个<回车>后跟一个<换行>也是可行的。 命令串终止总是将当前的 SCPI 命令路径复位到根级。

注意

对于每个包括一个查询并发送到仪器的 SCPI 消息,此仪器用一个<换行>或换行符 (EOI) 终止返回的响应。 例如,如果发送 R?,则在数据块返回以后,用 <NL> 终止响应。 如果 SCPI 消息包括由分号隔开的多个查询(例如 "ROUTe:TERMinals?;R?"),在对最后一次查询响应以后,再次由 <NL> 终止返回的响应。 不论在哪种情况下,在将另一个命令发送到仪器之前,程序在响应中必须读取此 <NL>,否则将会出现错误。

IEEE -488.2 通用命令

IEEE-488.2 标准定义了一组常用命令,可执行复位、自检以及状态操作等功能。 常用命令总是以星号 ( * ) 开始,长度为 3 个字符,并可以包括一个或多个参数。 命令关键字与第一个参数由空格分开。 使用分号 ( ; ) 可分隔多个命令,如下所示:

*RST; *CLS; *ESE 32; *OPC?

SCPI 参数类型

SCPI 语言定义了程序信息和响应信息所使用的几种数据格式。

数值参数

要求使用数值参数的命令,支持所有常用的十进制数字表示法,包括可选符号、小数点和科学记数法等。 还可以接受数值参数的特殊值,如 MIN、MAX 和 DEF。 此外,还可以在数值参数后面添加单位(例如,M、k、m 或 u)。 如果命令只接受某些特定值,仪器自动将输入的数值参数四舍五入为可用接受的值。 下面这条命令要求给数值参数设置范围值:

VOLTage:DC:RANGe {<range>|MIN|MAX|DEF}

注意

由于 SCPI 解析器不区分大小写,会有些混淆字母 "M"(或 "m")。 为了方便起见,仪器将 "mV"(或 "MV")认作毫伏,但是将 "MHZ"(或 "mhz")认作兆赫。 同样地,"MΩ"(或 "mΩ")被认作是 megΩ。 您可以使用前缀“MA”表示兆。 例如,将 "MAV" 认作兆伏。

 

离散参数

离散参数用于设置有限个参数值(例如 IMMediate、EXTernal 或 BUS)。 就象命令关键字一样,它们也可以有短格式和长格式。 可以混合使用大写和小写字母。 查询响应始终返回全部为大写字母的短格式。 下面的示例要求将离散参数用于温度单位:

UNIT:TEMPerature {C|F|K}

布尔参数

布尔参数代表一个真或假的二进制条件。 对于假条件,仪器将接受 "OFF" 或 "0"。 对于真条件,仪器将接受 "ON" 或 "1"。 当查询布尔设置时,仪器始终返回 "0" 或 "1"。 下面的示例要求使用布尔参数:

DISPlay:STATe {ON|1|OFF|0}

ASCII 字符串参数

字符串参数实际上可包含所有 ASCII 字符集。 字符串必须以配对的引号开始和结尾;可以用单引号或双引号。 引号分隔符也可以作为字符串的一部分,只需键入两次并且不在中间添加任何字符。 下面这个命令使用了字符串参数:

DISPlay:TEXT <quoted string>

例如,下面的示例在仪器的前面板上显示了信息 "WAITING..." (不显示引号)。

DISP:TEXT "WAITING..."

还可以使用下面的示例用单引号显示同一信息。

DISP:TEXT 'WAITING...'

使用设备清除

设备清除是一个 IEEE-488 低级的总线消息,可用于将仪器返回到响应状态。 不同的编程语言和 IEEE-488 接口卡通过其特有的命令来提供对该功能的使用。 当收到设备清除信息时,状态寄存器、错误队列以及所有配置状态都保持不变。

设备清除执行以下操作:

  • 如果正在测量时,则其被终止。
  • 仪器返回到触发“空闲”状态。
  • 清除仪器的输入和输出缓冲区。
  • 仪器准备好接受新的命令串。
  • 重复的命令(即便需要)将被终止而无需“操作完成”指示(适用于 INIT)。
注意

ABORt 命令是终止测量的建议方法。

转载于:https://www.cnblogs.com/CodeWorkerLiMing/p/11582578.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SCPI 语言简介 的相关文章

  • Matlab学习11-图像处理之图像变换

    文章目录 一 傅里叶变换快速卷积 二 模板匹配 三 二维离散余弦变换 四 JPEG图像压缩典型算法 总结 一 傅里叶变换快速卷积 代码 傅里叶变换快速卷积 disp 步骤1 生成3 3的矩阵A和B A 4 5 6 7 8 9 B 3 2 1

随机推荐

  • 看到一篇关于软件专业的讨论,对将要选大学专业的人很有用

    APUE和UNP看不懂怎么办 狗尾草 C 前几天京东搞活动 我就把这三本书都买了 结果还是高估了自己的功力 看了一星期都看不懂 谁能提点建议 这两套书该怎么看或者推荐一点更简单入门的书 mephistohk W Richard Steven
  • Ciclop开源3D扫描仪软件---Horus源码分析之src\horus\engine\calibration\calibration.py

    coding utf 8 This file is part of the Horus Project author Jes煤s Arroyo Torrens
  • java定时器,每天00:00执行任务

    import java text SimpleDateFormat import java util Calendar import java util Timer import java util TimerTask public cla
  • 多分类 & 多标签 准确度计算

    多标签 V S 多分类 多类分类 Multiclass classification 表示分类任务中有多个类别 比如对一堆水果图片分类 它们可能是橘子 苹果 梨等 多类分类是假设每个样本都被设置了一个且仅有一个标签 一个水果可以是苹果或者梨
  • ubuntu16.04-cuda11.1上使用TensorRT加速yolov5推理

    基础 环境 其实极客的版本已经给我们了 ubuntu16 04 cuda11 1 cudnn8 0 opencv4 1 1 tensorrt7 2 检查 ubantu版本 lsb release a 检查cuda版本 nvcc versio
  • weex 一个传说级巨坑-- 2018最新版weex踩坑指南(weex navigator 多界面跳转)

    先说结论 本人极度非常 不推荐weex作为任何商用开发 有很多人会说了 你瞎扯 你看别人阿里 啊飞猪 啊那个支付宝 人家不是用得好好的么 当然这也是我们公司作为技术选型的考量 三端通用 阿里系的app全线在用 理论上是可以实现的 而且我们在
  • find / -name file 权限不足

    find name file 权限不足 1描述如下 原因 解决方案 结果 在查找系统文件中 查找到 roor user 1000 gvfs目录时提示权限不够 1描述如下 find name test01 txt home kali test
  • 总结12个python代码

    python有很好的可读性和简洁性 学会其中的小的技巧 运用的恰当 会让我们的工作事半功倍 以下是我总结的12个小的程序段 看似非常的简单 但是却非常的有技巧性 并且对个人的编程能力是一个很好的检验 大家应该在日常的编程中多多使用 多多练习
  • 【精华】安卓开发学习路线规划

    近一段时间经常被朋友问到如何从零开始学习安卓 成为一名安卓开发工程师 不得不感叹 现在各行各业都有不少人在涌向IT 互联网行业 希望从事程序开发工作 竞争越来越激烈了 借此机会 我梳理了一下自己所学所知的安卓知识 制定了这份安卓开发学习路线
  • c语言中swap表示什么意思,swap是什么意思_单片机里的SWAP A是什么意思啊?

    Swap是什么意思 Swap是一种金融衍生品 指交易双方约定在未来某一期限相互交换各自持有的资产或现金流的交易形式 外汇里的 swap 是什么意思 外汇里swap专业说法是掉期 通俗的说法就是隔夜利息 指的是你炒外汇使用的杠杆部分的资金你应
  • leetCode Q3:Longest Substring Without Repeating Characters(java)

    1 题目链接 https leetcode com problems longest substring without repeating characters description 2 题目内容 中文版 给一个字符串 要求返回最长的不
  • 详解用户画像

    01画像简介 用户画像 即用户信息标签化 通过收集用户的社会属性 消费习惯 偏好特征等各个维度的数据 进而对用户或者产品特征属性进行刻画 并对这些特征进行分析 统计 挖掘潜在价值信息 从而抽象出用户的信息全貌 如图1 1所示 用户画像可看作
  • 史上最全C/C++面试八股文,一文带你彻底搞懂C/C++面试!

    前述 本文初衷是为了总结本人在各大平台看到的面经 我会在本文持续更新我所遇到的一些C 面试问题 如有错误请一定指正我 目录 1 讲一讲封装 继承 多态是什么 2 多态的实现原理 实现方式 是什么 以及多态的优点 特点 3 final关键字的
  • PHP实现微信公众号主动推送消息

    这篇文章主要介绍了php实现微信公众号主动推送消息的方法 PHP版微信公共平台消息主动推送 突破订阅号一天只能发送一条信息限制 需要的朋友可以参考下 通过学习借鉴朋友的实现方法进行整理 实现了PHP版的微信公共平台消息主动推送 分享给大家供
  • Kafka的数据消费过程以及消息不丢失机制

    文章目录 Kafka数据写入流程 Kafka数据消费流程 消息不丢失机制 broker数据不丢失 生产者数据不丢失 消费者数据不丢失 Kafka数据写入流程 执行流程 生产者获取对应分区的 leader 位置 发数据给leader brok
  • 区别VAN与GAN,LSGAN、WGAN、WGAN-GP、CGAN

    训练 稳定 样本的 多样性 和 清晰度 似乎是GAN的 3大指标 David 9 VAE与GAN 聊到随机样本生成 不得不提VAE与GAN VAE用KL divergence和encoder decoder的方式逼近真实分布 但这些年GAN
  • String、StringBuffer、StringBuilder的区别——(面试题)

    String StringBuffer StringBuilder的区别 String StringBuffer StringBuilder 执行速度 最差 其次 最高 线程安全 线程安全 线程安全 线程不安全 使用场景 少量字符串操作 多
  • Go开发工具

    http studygolang com articles 1678 1 4 Go开发工具 本节我将介绍几个开发工具 它们都具有自动化提示 自动化fmt功能 因为它们都是跨平台的 所以安装步骤之类的都是通用的 LiteIDE LiteIDE
  • 【ML on Kubernetes】第 3 章:探索 Kubernetes

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • SCPI 语言简介

    电子负载中需要用到 所以记录下 来源是德科技 SCPI 可编程仪器的标准命令 是一种基于 ASCII 的仪器编程语言 供测试和测量仪器使用 SCPI 命令采用分层结构 也称为树系统 相关命令归组于共用结点或根 这样就形成了子系统 下面一部分