SCPI协议:SCPI协议建立于IEEE488.2基础上,可用于GPIB、RS232、VXIb总线,通过相同命令来控制不同仪器的相同功能,python SCPI程控,可以通过visa来进行控制。

下面是简单基本的连接命令,open_resource中的是网口通信和USB通信的通信地址,如果连接成功会有产品型号等参数值返回。不同仪器的通信地址请参考相应的官方文档。

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# author:SingWeekimport visa
rm=visa.ResourceManager()
res = rm.open_resource('TCPIP0::169.254.4.61::inst0::INSTR')#网口
res = rm.open_resource('USB0::0x0699::0x0368::c010850::INSTR')#串口
print(res.query("*IDN?"))#通用查询命令

另外在电脑上还需要安装VISA驱动才能成功,驱动地址(百度云盘):链接:

https://pan.baidu.com/s/1tNOMJiZPKB2UdrihUGTREA 提取码:tioa 
       python通过SCPI程控设备,一般操作也就需要用到visa中的三个函数,res.write(),res.read(),res.query()。如果不想调用python中写好的visa可以自己通过ctypes直接调用dll文件,dll=windll.LoadLibrary();然后直接对dll中的函数进行相关操作。python dll文件调用可以参考:https://blog.csdn.net/zx520113/article/details/85060765

这里简单给出一个控制数字万用表34461的电流DC和AD选择以及电流当前电流参数的控制操作。可以通过pip install visa来安装visa库。

class Multimeter:def __init__(self,TCPIP='TCPIP0::169.254.4.61::inst0::INSTR'):rm = visa.ResourceManager()self.ser=rm.open_resource(TCPIP)def Write(self,data):self.ser.write(data)def Set_DC(self,data=10):self.Write("CONF:CURR:DC "+str(data))def Set_AC(self,data=10):self.Write("CONF:CURR:AC " + str(data))def Read_IC(self):return float(self.ser.query("READ?"))def Read(self):return self.ser.read()

query()相当于write()+read(),带有?的格式命令才有效。

   print(res.query("*IDN?"))     res.write("*IDN?")       print(res.read())

        例:对应的SCPI协议参数格式:

CONFigure:CURRent:{AC|DC} [{<range>|AUTO|MIN|MAX|DEF} [, {<resolution>|MIN|MAX|DEF}]]

在TCPIP或者USB中,通过visa控制发送的命令应该为:

        CONF:CURR:AC 1,0.001         设置交流测量

        CONF:CURR:DC 10,0.001       设置直流测量

        CONF:CURR:DC 10          默认测量精度最高

Range为测量范围,resolution为测量精度,不设置默认最大。

命令中大写字母部分必须完整,小写字母的部分可以不写。

如果是RS232接口通信,可以通过serial库通过串口来进行控制,在这里或许会出现直接通过串口助手发送过去没有发应的情况,我们要注意命令的结束标志,一般是'\n',当然不同仪器的不同控制命令结束标志不同。在RS232连接的时候要注意串口号,以及设备设置IDE波特率等相关信息。

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# author:SingWeekimport serial
ser=serial.Serial('COM16',19200,bytesize=8,parity="N",stopbits=1)
ser.write("*IDN?\n".encode())
result=ser.read(51)
print(result)#设置的电流查询命令,返回三个通道的电流值
# ser.write("APP:CURR?\n".encode())
# result=ser.read(8)
# print(result)

在通过RS232通信的时候,最好使用read读取数据,readlines(),read_all()等,在有些操作的时候不能读取返回值。

基于SCPI的程控,不管是通过TCPIP、USB、还是RS232通信等,发送的命令在数据格式定义上都是大同小异的。

python之SCPI程控相关推荐

  1. C语言 scpi命令解释器,基于Python的SCPI命令解释器的设计

    基于Python的SCPI命令解释器的设计 目前可编程仪器标准命令(SCPI)依然被广泛使用,因此设计一个高效通用的SCPI命令解释器很重要.常用的SCPI命令解释器多以C语言开发,采用链式二叉树等存 ...

  2. 可编程仪器标准命令SCPI指令介绍

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

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

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

  4. matlab meas 函数_力科示波器Matlab使用指南

    自定义示波器系列之一 自定义示波器系列之一 -- --力科示波器 力科示波器 MATLAB 使用指南 使用指南 美国力科公司 万力劢 基于 X-Stream 技术的力科示波器既是一个高速信号采集平台, ...

  5. 上位机使用python/matlab通过网线VISA/SCPI编程远程控制旧版A.06.04.32的安捷伦agilent矢量网络分析仪(VNA)采集S21参数

    近日需要通过上位机连接矢网采数,但是可用的矢网只有一个零几年的矢网安捷伦 agilent e8363b.一开始想使用labview,但是使用NI MAX控制不成功(问题在instrument VISA ...

  6. Python GUI库TKinter子线程与主线程控件传递消息策略

    TKinter GUI库没有像MFC那样的强制安全策略,在MFC中子线程无法直接控制主线程中的GUI控件,比如修改文本框或者按钮上的内容.因为如果只有2个线程,即一个主线程和一个子线程的情况下子线程直 ...

  7. Python实现 通过RS232 SCPI 命令控制Tektronix DMM4050

    Python实现 通过RS232 SCPI 命令控制Tektronix DMM4050@TOC import serial import matplotlib.pyplot as plt import ...

  8. python工程控件_工程脚本插件方案 - c集成Python基础篇

    序: 为什么要集成脚本,怎么在工程中集成Python脚本. 在做比较大型的工程时,一般都会分核心层和业务层.核心层要求实现高效和稳定的基础功能,并提供调用接口供业务层调用的一种标准的框架划分.在实际中 ...

  9. keithley电源程控软件,电源CVI SCPI二次开发软件NS-TDK Power

    *主要功能:可输出任意电压波形.电流波形,波形图实时显示,支持与设定波形对比.可选择存储电源输出电压.电流值. *程控对象:TDK电源. *程控接口:被测终端可以是具有GPIB.USB.RS232.T ...

最新文章

  1. 使用Git管理源代码
  2. Five ways to maximize Java NIO and NIO.2--转
  3. Apache OpenWebBeans 发布适用于 Java EE 微服务的 Meecrowave 服务器 1.0
  4. 还没掌握Linux文件权限与目录配置命令?就这还不点进来看看干货
  5. Employee Assign Organization unit
  6. 用phpmyadmin更改root密码的方法
  7. 用cglib生成的代理类取不到注解的问题
  8. 货币基金新规将出,限制T+0提现及支付额度
  9. 校园卡管理系统-版本二
  10. centos分区方案
  11. android放大镜无广告,放大镜微件  |  Android 开发者  |  Android Developers
  12. 携手做大做强中国集成电路产业链
  13. python 对两列互补的数据合并
  14. MGV3000_YST_免费刷机固件包_原生设置无密码_支持外置USB无线网卡
  15. Oracle的sqlnet.ora文件配置
  16. 备份微信聊天记录为 txt 格式保存(免 root)
  17. access和wps哪个一样_同是办公软件,wps跟office有什么区别
  18. 一文读懂 协方差矩阵
  19. 人的大脑就是量子计算机吧,新发现!人类大脑其实就是台量子电脑
  20. 最详细的HIve常用函数整理及案例演示

热门文章

  1. 了解3dmax面片建模方式
  2. UE4 Slate独立引用程序(摘抄大象无形)
  3. HTML+CSS+JS大作业——汽车设备营销企业模板(13页) 静态HTML网页设计模板
  4. 在Univerisity of Houston访学一年,信用卡刷的biubiubiu,所以要找一个适合自己的记账软件
  5. PS地理成像插件:Avenza Geographic Imager中文版(支持ps2021)
  6. SAP 发出商品详解-配置与实操
  7. ant design vue 中Upload组件如何自定义文件列表的样式
  8. 关于国嵌 实验2 5 网卡驱动移植 网卡地址 的问题
  9. IntelliJ IDEA 2021免费激活码正规申请方法(IDEA官方激活注册码)
  10. Adobe Photoshop CS6安装错误代码(37),解决办法