常用测量仪器和SCPI协议通信相关的那些事

前言

目前测试测量仪器不仅在终端本身上可显示数值波形等功能,通常已经被集成到控制系统中,如新能源、电动汽车、开关电源、变压器等多个领域中,系统集成时一般都使用SCPI远程与仪器进行交互。本文就来聊聊常用测量仪器和SCPI协议通信相关的那些事。

1.SCPI是什么

SCPI(Standard Commands for Programmable Instruments)是一种标准命令集,于1990与IEEE 488.2协议一起面世,定义了一套用于控制可编程测试测量仪器的标准语法和命令。一种建立在现有标准IEEE488.1和IEEE488.2基础上的标准化仪器编程语言。通过使用标准化的编程信息、仪器响应和数据格式来保证编程环境的兼容性。

2.SCPI能做什么

使用SCPI可以远程与仪器交互,如配置仪器参数、获取仪器数据等。SCPI中所有命令都以ASCII码字符串形式存在,用户发送字符串给仪器后,仪器返回的数据也是字符串,然后用户需要自己解析返回字符串的含义。兼容各种通信方式如以太网、GPIB和串口等,同时无论用户使用C++、Java,Python等哪种编程语言,用户发送的SCPI命令字符串也都是相同的。

3.SCPI语法要求

每个SCPI命令都需要一个结束字符,支持“\0”、“\n”两者中任意一个作为结束字符,建议使用“\n”作为命令结束符,这样每次发送命令时,字符串结尾都要附加一个“n”

同一个命令,一般都有设置和查询两种类型。比如:RATE? ,这是查询更新率的命令,其中?表示该命令为查询命令,:RATE 1,这是设置更新率的命令,其中1表示要设置更新率为1s

SCPI命令字符串不区分大小写

SCPI命令集小写可省略、大写不能省略当命令

带有参数时,用一个英文空格将命令和参数分隔。

命令中间不允许用空格分隔。

命令带有多参数时,用逗号将不同参数分隔。

4.SCPI命令类型

一般都有设置和查询两种类型,改变仪器运行状态的set操作(打开/关闭电压自动量程),或者查询仪器状态的query操作(例如读取输出电压值)。

查询指令:*IDN?,可以用来获取设备的基本信息。

设置指令::INPUT:CURRENT:AUTO:ALL ON,设置所有电流输入单元的自动量程功能。

举例:获取常规数值项目

绑定常规测量项

//分别是:电压、电流、有功功率、功率因数、电压中谐波失真、电流总谐波失真

:num:norm:number 6

:num:norm:item1 U,1

:num:norm:item2 I,1

:num:norm:item3 P,1

:num:norm:item4 LAMB,1

:num:norm:item5 UTHD,1

:num:norm:item6 ITHD,1

:num:norm?

查询常规绑定的测量项

查询方式1:这种查询方式返回6个值,依次上上面设置好的绑定测量项

:num:norm:value?

查询方式2:这种查询方式每次只返回一个数值,1~6分别对应上面绑定的测量项。

:num:norm:value? 1

:num:norm:value? 2

:num:norm:value? 3

:num:norm:value? 4

:num:norm:value? 5

:num:norm:value? 6

5.使用SCPI从致远PA300系列功率计获取数据流程

操作步骤:硬件连接、仪器设置、获取数据、使用预设方式、自定义获取数据(自定义读取、设置读取的个数、设置获取的测量项、读取数据)。

流程图

其他

此外,SCPI通用命令与仪器的测量无关,主要用来控制重设、自我测试以及状态操作,并且该组操作以*开始,没有层次结构,SCPI仪器的特定控制命令用来从事测量、读取数据以及控制仪器设置等工作,特定控制命令,每个厂家具有自己特色,具体可查阅各厂家对外公开的通信命令手册。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容