SCPI指令是可编程仪器标准命令(Standard Commands for Programmable Instruments)的简称,它实际定义了一套用于控制可编程测量仪器的标准语法和命令。

SCP命令实际是通过ASCII字符串形式在命令与仪器进行交互。命令一般由一系列的关键字构成,有的还需要包括参数,命令一般由英文单词的4个大写首字母定义,一般仪器对于命令的返回也是一系列的ASCII字符串,当然在进行大量数据传输的时候直接采用二进制的形式也是可以的。

基本语法

一般的仪器指令可以分为控制指令和查询指令,比如将电源开关的开关和查询电源的输出电流,在SCPI指令中查询指令一般是以结束的,多个指令之间还可以通过:进行串联,指令的参数一般跟在指令后面,以空格隔开,多个级联的指令还可以通过一条语句下发,指令之间以;分隔,比如测量直流电压和交流电流可以通过以下的形式实现:

MEASure:VOLTage:DC?;:MEASure:CURRent:AC?

用SCPI指令控制万用表

最近要用到万用表测量很多数据,如果人肉测量的话就太麻烦了,并且容易出错,对现代人来说,不要在重复的事情上花太多的时间,于是就用python结合SCPI指令写了一个简单的脚本,也就一个小时的时间就可以搞定几天的工作,腾出一点时间来写写文章也是非常不错的呀。

实际万用表的控制只用到了一点非常基本的命令,不过还是碰到一个坑,这里也记录一下。在用串口通过SCPI指令控制万用表的时候,需要注意的是首先要将万用表的操作模式设置为远程模式,否则所有的命令都会报错,模式的切换可以通过以下的命令实现:
SYSTem:REMote
之后就可以将万用表设置为直流电压测量模式:MEAS:VOLT:DC? AUTO,这个指令的含义是用自动的量程进行直流电压测量。
最后就可以在一个循环中不停地读取测量结果了:READ?

用SCPI指令控制SMU

在控制源测量单元的时候,有一个需要需要注意的地方就是前后面板的切换,一般的仪器都会在前后面板上都有测试端子,我们在使用的时候需要去选择前面板还是后面板,在SMU中这个选择是通过命令切换的:ROUT:TERM REAR, 其它一些基本都是通用的指令,完整的程序这里也直接贴出来好了:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-"""
Script to run dcdc loading test, using source meter
as DCDC loading and DMM to measure DCDC output voltage
"""import serial
import timeSOURCE_METER_DEV = "COM3"
DMM_DEV = "COM10"
BUFFER_LEN = 1024class SCPI():"""Source meter class"""def __init__(self, port, timeout=2, stop=1, baudrate=9600, reset=True):# open serial port# baudrate: 9600# timeout 1sself.com = serial.Serial(port, timeout=timeout, stopbits=stop, baudrate=baudrate)if reset:self.reset()def send(self, cmd):"""Send out a command, will automaticlly add \nat the end of command"""if not cmd.endswith("\n"):cmd += "\n"return self.com.write(cmd.encode())def query(self, cmd, decode=True):self.send(cmd)echo = self.com.read(BUFFER_LEN)if decode: try:# try to decode to utf8echo = echo.decode()# try to decode to floatecho = float(echo)except:passreturn echodef reset(self):return self.send("*RST")def close(self):return self.com.close()def dcdc_loading():sm = SCPI(SOURCE_METER_DEV)dmm = SCPI(DMM_DEV, stop=2)# init source meter to current sourcesm.send(":OUTP OFF")sm.send(":ROUT:TERM REAR")sm.send(":SOUR:FUNC CURR")sm.send(":SOUR:CURR:RANG:AUTO ON")sm.send(":SOUR:CURR:LEV 0")sm.send(":OUTP ON")# init dmmdmm.send("SYST:REM")dmm.query("MEAS:VOLT:DC? AUTO")for i in range(50):# set current sourcecurr = -(i / 100)sm.send("SOUR:CURR:LEV " + str(curr))# read resulttime.sleep(1)print(curr, ", ", dmm.query("READ?"))sm.send(":OUTP OFF")sm.close()dmm.close()dcdc_loading()

可编程仪器标准命令SCPI指令介绍相关推荐

  1. scpi编程实例 c语言,基于C#的可编程仪器标准命令(SCPI)实践 (附源代码)

    基于C#的可编程仪器标准命令(SCPI)实践 (附源代码) SCPI 概述 SCPI于1990与IEEE 488.2协议一起面世.这套标准定义了可用于控制一切仪器的语法,命令结构以及数据格式.比如,通 ...

  2. 基于C#的可编程仪器标准命令(SCPI)实践 (附源代码)

    基于C#的可编程仪器标准命令(SCPI)实践 (附源代码) SCPI 概述 SCPI于1990与IEEE 488.2协议一起面世.这套标准定义了可用于控制一切仪器的语法,命令结构以及数据格式.比如,通 ...

  3. SCPI 可编程仪器标准命令

    SCPI 可编程仪器标准命令(英语:Standard Commands for Programmable Instruments,缩写:SCPI)定义了一套用于控制可编程测试测量仪器的标准语法和命令. ...

  4. scpi指令转换c语言,SCPI指令介绍

    SCPI指令是可编程仪器标准命令(Standard Commands for Programmable Instruments)的简称,它实际定义了一套用于控制可编程测量仪器的标准语法和命令. SCP ...

  5. 程控仪器标准命令SCPI

    程控仪器标准命令SCPI https://www.doc88.com/p-3397484961210.html?s=rel&id=1

  6. c rs232 mysql,[C#源代码]使用SCPI指令对通信端口(RS232/USB/GPIB/LAN)进行仪器编程

    本文为原创文章.源代码为原创代码,如转载/复制,请在网页/代码处明显位置标明原文名称.作者及网址,谢谢! 本软件是基于NI-VISA/VISA32(Virtual Instrument Softwar ...

  7. scpi指令转换c语言,[C#源代码]使用SCPI指令对通讯端口(RS232/USB/GPIB/LAN)进行仪器编程...

    本文为原创文章.源代码为原创代码,如转载/复制,请在网页/代码处明显位置标明原文名称.做者及网址,谢谢!html 本软件是基于NI-VISA/VISA32(Virtual Instrument Sof ...

  8. scpi指令转换c语言,SCPI 标准命令

    4.3.1IEEE488.2共同命令 *CLS *ESE *ESE? *ESR? *IDN? *OPC *OPC? *PSC *PSC? *RST *SRE *SRE? *STB? *SAV *RCL ...

  9. scpi指令转换c语言,SCPI 命令表

    SCPI 命令表 4.3.1 IEEE488.2 共同命令 *CLS *ESE *ESE? *ESR? *IDN? *OPC *OPC? *PSC *PSC? *RST *SRE *SRE? *STB ...

最新文章

  1. ubuntu mysql允许远程连接mysql_ubuntu下允许mysql远程连接
  2. 独占电脑装linux,旧电脑如何处理?装Tiny Core,极致精简,超低CPU占用,你敢试吗...
  3. ASP.NET中使用非托管DLL
  4. 六级词汇打卡第天四天(四)
  5. 使用PMBus总线监控电源管理芯片UCD90120
  6. C语言——蔡勒(Zeller)公式的使用
  7. radon变换(c++、OpenCV实现)
  8. php实现微信小程序消息通知
  9. 主流视频编码器特点、优缺点归纳和比较(H.264、HEVC、VP9、AV1)
  10. 矩阵乘法的计算复杂度
  11. 第三方rom 6.0刷机后,网络连接叹号处理方法
  12. 玩纸牌游戏计算机教案,小班数学活动好玩的扑克牌教案
  13. SAMSUNG,三星,N8000升级
  14. 计算机网络复习-典型题目答案
  15. 即时通讯,1 天快速集成 支持单群聊、聊天室、系统通知等通信能力,安全可靠、 全球互通
  16. 从滴滴的Flink CEP引擎说起
  17. 某电商平台数据分析报告(1)
  18. ViveInputUtility-手柄触摸3D物体(6)
  19. 如何使用matlab
  20. 后台管理系统,前端框架

热门文章

  1. python根据经纬度坐标获取海拔信息
  2. 企业架构设计与详细设计
  3. 【集群分布式问题】分布式集群时钟同步问题及解决方案
  4. 测试2年,当时身边一起入行的朋友已经月薪20k了,自己还没过万,到底差在了哪里?
  5. HTML之frameset标签
  6. 关于MySQL错误 2005 - Unknown MySQL server host ‘localhost‘ (0) 原因及解决方法
  7. Qt中点击pushButton按钮实现切换父子界面
  8. 解析超市生鲜供应链升级与数字化运营转型价值,聚力核心竞争力打造
  9. 台式电脑一般价钱多少_台式电脑什么配置好一点(一般价位大概多少钱)
  10. 商标遭抢注 法国利佳薄荷水发声维护百年声誉