SCPI 语言简介
电子负载中需要用到,所以记录下。来源是德科技
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 个字符,并可以包括一个或多个参数。 命令关键字与第一个参数由空格分开。 使用分号 ( ; ) 可分隔多个命令,如下所示:
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}
相关文章
- 为什么 C 语言屹立不倒?
- go语言单元测试和基准测试
- C#基础语言知识--编译和执行过程
- R语言实现金融数据的时间序列分析及建模
- R语言因子
- R语言中如何使用最小二乘法
- C#基础语言知识--编译和执行过程
- 使用php判断浏览器的类型和语言的函数代码
- Atitit 标记语言ML(Markup Language) 目录 1. 标记语言ML Markup Language1 1.1. 简介1 2. 置标语言置标语言通常可以分为三类:标识性的、过程
- 目录 1. Java中使用Ognl表达式引擎1 1.1.1. 一、Ognl简介1 1.1.2. 二、Ognl应用场景1 1.2. 基本介绍 vs 模板语言2 1.Java中使用Ognl表达
- VB.net:VB.net编程语言学习之基于VS软件利用VB.net语言实现对CAD/VRML进行二次开发的简介、案例应用之详细攻略
- Python语言学习:Python语言学习之python包/库package的简介(模块的封装/模块路径搜索/模块导入方法/自定义导入模块实现华氏-摄氏温度转换案例应用)、使用方法、管理工具之详细攻略
- Paper之ICASSP&IEEEAUDIOSPE:2018~2019年ICASSP国际声学、语音和信号处理会议&IEEE-ACM T AUDIO SPE音频、语音和语言处理期刊最佳论文简介及其解读
- Computer:C语言/C++语言的简介、发展历史、应用领域、编程语言环境IDE安装、学习路线之详细攻略
- Python语言学习:Python语言学习之函数(定义&调用函数/常用内置函数如filter&map/内嵌函数/闭包/匿名函数如lambda&map)的简介、案例应用之详细攻略
- Python语言学习:Python语言学习之数据类型/变量/字符串/操作符/转义符的简介、案例应用之详细攻略
- Python语言学习:Python常用自带库(imageio、pickle)简介、使用方法之详细攻略
- 823. 带因子的二叉树-快速排序+哈希表 c语言解法
- 【大模型】大语言模型简介
- 祝大家新年快乐---各种语言版本
- 【初识C++】熟悉C++语言的语句、语法组成和基本编程方式,可以解决一般的算法问题
- 设计模式(Python语言)----责任链模式
- 设计模式简介与分类(Python语言)
- c语言文件介绍,打开和关闭操作
- VB.net:VB编程语言/VB.net语言编程的简介、IDE安装、学习路线(几十项案例代码实现)之详细攻略