type
status
date
slug
summary
tags
category
icon
password
本人购买了一台LCR数字电桥,我想通过电脑上位机实时接收测量数据并绘制曲线,该数字电桥的通讯协议是SCPI协议。通过使用串口通讯的方式,使用pyserial包读取,保存,并绘制了测量数据图。

SCPI协议

什么是SCPI协议

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

SCPI协议能干什么

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

一些SCPI协议的语法要求

每个SCPI命令都需要一个结束字符,支持“\0”、“\n”两者中任意一个作为结束字符,建议使用“\n”作为命令结束符,这样每次发送命令时,字符串结尾都要附加一个“n” 同一个命令,一般都有设置和查询两种类型。比如:RATE? ,这是查询更新率的命令,其中?表示该命令为查询命令,:RATE 1,这是设置更新率的命令,其中1表示要设置更新率为1s SCPI命令字符串不区分大小写 SCPI命令集小写可省略、大写不能省略当命令 带有参数时,用一个英文空格将命令和参数分隔。 命令中间不允许用空格分隔。 命令带有多参数时,用逗号将不同参数分隔。

使用pyserial,通过SCPI协议串口读取,保存(txt与csv文件),并实时绘制测量曲线图

尽管该仪器所使用的通信协议是SCPI协议,但是利用其RS485接口仍然可以使用串口通讯的方式进行交互。
而要想在Python中读取串口信息,需要使用PySerial模块。PySerial是Python的串口通信库,可以让你在Python应用程序中访问串口。通过使用PySerial,我们可以轻松地与串口设备进行通信,例如Arduino、树莓派等设备。这个是pyserial官网,遇到问题请自行查阅。
 
以下是开源代码

参考资料