【python】之pyvisa库进行仪器控制,实现自动化测试

2023-11-22 13:10

本文主要是介绍【python】之pyvisa库进行仪器控制,实现自动化测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

VISA简介 / VISA Introduction

在学术阶段或是工作中,使用仪器是很正常的。仪器仪表一般都是带有通讯口,比如网口,串口等等,玩labview的可能会知道一些。labview内置的控制仪器就是依赖于Visa。

VISA,虚拟仪器软件架构,是对带有GPIB、VXI、PXI、串口(RS232/485)、以太网、USB和/或IEEE 1394接口的仪器系统进行配置、编程和故障排除的标准。简单的说就是两个人沟通,类似于语言的中介,VISA将你的语言转换变成仪器能听懂的命令。

VISA功能强大,但是读和写基本不是人看的。我个人认为其可读性非常差,尤其是对于类似于我这种非程序员人士来说很痛苦。python则是易读性非常高,两者结合,因此有大佬编写了基于visa内核的python第三方库,即本系列主角,pyvisa。

一.pyvisa模块的安装

1.这边使用pip的方式进行安装

pip install pyvisa

pip接口详细说明可以看:https://blog.csdn.net/pengneng123/article/details/129556320

  1. 安装NI-VISA,这一点需要解释一下,pyvisa仅仅只提供了一种中介,让使用者可以利用python以简洁的方式对仪器进行操作,而内核依然是VISA,因此需要安装驱动,VISA驱动有很多种,常用的为NI(labview母公司)提供的NI-VISA。直接到官网下载即可

下载地址:https://www.ni.com/zh-cn/support/downloads/drivers/download.ni-visa.html#329456

二.与仪器建立连接

首先我们安装好pyvisa库以及NI-VISA以后,就可以开始尝试与仪器建立连接了

  1. 检查测试环境

(1)仪器IP获取

这边我们通过网口与仪器建链,罗德的仪器IP在屏幕左下角会显示。(需接好仪器到电脑的网线)

  1. 配置电脑IP

(1)打开适配器,找到对应的网络配置

(2)配置IP

查看仪器的ip,然后适配器配置好就OK了

  1. 连接

import pyvisa as visa  ###导入visa库FSW = visa.ResourceManager()
FSW= FSW.open_resource("TCPIP::192.168.1.100::INSTR")  ##连接仪器FSW.write(":SOURce1:FREQuency:CW 345000000")  ###配置频点

(1)配置好的频点信息

(2)显示Remote代表已经与仪器建链

三.实际运用

1.测试仪器:罗德FSW频谱分析仪

测试5G NR的EVM值

import pyvisa as visa 
import time###创建ResourceManager验证安装   
Evm=visa.ResourceManager()###这边通过仪器lan口连接,TCPIP::192.168.100.60为仪器的IP地址
FSW1=Evm.open_resource("TCPIP::192.168.100.60::INSTR")###获取仪器标识
FSW1.query("*IDN?")###输入罗德仪器SCPI指令,获取详细指令可登录罗德官网查询,以下指令仅供参考
FSW1.write(":SYST:DISP:UPD ON")
FSW1.write(":INIT:CONT OFF")
FSW1.write(":INST:CRE:NEW NR5G,'5G NR'")
time.sleep(3)
FSW1.write(":INIT:CONT OFF")
FSW1.write(":MMEM:SEL:CHAN:ITEM:HWS ON")
FSW1.write(":MMEM:LOAD:TYPE NEW")
FSW1.write(":MMEM:LOAD:STAT 1,'C:/R_S/Instr/user/PDSCH_256QAM_3450000000'")
time.sleep(3)
FSW1.write(":DISP:WIND:SUBW:TRAC:Y:SCAL:RLEV:OFFS 33.78")
time.sleep(3)
print(FSW1.query(":FETC:CC1:ISRC:FRAM:SUMM:EVM:DSTS:AVER?"))####获取到的值一般以科学计数法呈现,这边可以用eval()函数做数据转换
EVM = FSW1.query(":FETC:CC1:ISRC:FRAM:SUMM:EVM:DSTS:AVER?")
EVM=eval(EVM)###保留小数点后两位,打印输出
evm = '%.2f' % EVM
print(evm)

write()函数指像仪器发送指令

query()函数指获取仪器的值

2.如何获取仪器的SCPI指令

例:我们用罗德SMW200A来做演示

注意:罗德仪器的SCPI指令追踪,可直接长按屏幕,出现SCPI后点击进入,后点击开始,会记录操作的每一步,并保存在list里面,结束后可查看,指令写进代码里面运行,这样就完成了仪器自动控制啦。

3.如何获取FSW频谱evm值

如上图,我们想要获取实时数据该怎么做呢

长按面板,出现如下图指令集后,便根据自己想要获取的数据,找到对应的指令。

以上就是一个简单的仪器控制程序,visa还支持GPIB、RS232、USB、Ethernet等接口实现仪器连接。

四.SCPI简介

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

1.常用SCPI指令

*CLS 清楚状态

*ESE 标准事件状态使能

*ESE? 标准事件状态使能

*ESR? 标准事件状态寄存器查询

*IDN? 仪器标识查询

*OPC 操作完成

*OPC? 操作完成询问

*RST 复位

*SRE 服务请求使能

*SRE? 服务请求使能查询

*STB? 读状态字节查询

*TST? 自测试查询

*WAI 等操作完成

@Neng

这篇关于【python】之pyvisa库进行仪器控制,实现自动化测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/410377

相关文章

Python中OpenCV与Matplotlib的图像操作入门指南

《Python中OpenCV与Matplotlib的图像操作入门指南》:本文主要介绍Python中OpenCV与Matplotlib的图像操作指南,本文通过实例代码给大家介绍的非常详细,对大家的学... 目录一、环境准备二、图像的基本操作1. 图像读取、显示与保存 使用OpenCV操作2. 像素级操作3.

windows系统上如何进行maven安装和配置方式

《windows系统上如何进行maven安装和配置方式》:本文主要介绍windows系统上如何进行maven安装和配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录1. Maven 简介2. maven的下载与安装2.1 下载 Maven2.2 Maven安装2.

C/C++中OpenCV 矩阵运算的实现

《C/C++中OpenCV矩阵运算的实现》本文主要介绍了C/C++中OpenCV矩阵运算的实现,包括基本算术运算(标量与矩阵)、矩阵乘法、转置、逆矩阵、行列式、迹、范数等操作,感兴趣的可以了解一下... 目录矩阵的创建与初始化创建矩阵访问矩阵元素基本的算术运算 ➕➖✖️➗矩阵与标量运算矩阵与矩阵运算 (逐元

C/C++的OpenCV 进行图像梯度提取的几种实现

《C/C++的OpenCV进行图像梯度提取的几种实现》本文主要介绍了C/C++的OpenCV进行图像梯度提取的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录预www.chinasem.cn备知识1. 图像加载与预处理2. Sobel 算子计算 X 和 Y

C/C++和OpenCV实现调用摄像头

《C/C++和OpenCV实现调用摄像头》本文主要介绍了C/C++和OpenCV实现调用摄像头,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录准备工作1. 打开摄像头2. 读取视频帧3. 显示视频帧4. 释放资源5. 获取和设置摄像头属性

c/c++的opencv图像金字塔缩放实现

《c/c++的opencv图像金字塔缩放实现》本文主要介绍了c/c++的opencv图像金字塔缩放实现,通过对原始图像进行连续的下采样或上采样操作,生成一系列不同分辨率的图像,具有一定的参考价值,感兴... 目录图像金字塔简介图像下采样 (cv::pyrDown)图像上采样 (cv::pyrUp)C++ O

c/c++的opencv实现图片膨胀

《c/c++的opencv实现图片膨胀》图像膨胀是形态学操作,通过结构元素扩张亮区填充孔洞、连接断开部分、加粗物体,OpenCV的cv::dilate函数实现该操作,本文就来介绍一下opencv图片... 目录什么是图像膨胀?结构元素 (KerChina编程nel)OpenCV 中的 cv::dilate() 函

Python使用FFmpeg实现高效音频格式转换工具

《Python使用FFmpeg实现高效音频格式转换工具》在数字音频处理领域,音频格式转换是一项基础但至关重要的功能,本文主要为大家介绍了Python如何使用FFmpeg实现强大功能的图形化音频转换工具... 目录概述功能详解软件效果展示主界面布局转换过程截图完成提示开发步骤详解1. 环境准备2. 项目功能结

SpringBoot使用ffmpeg实现视频压缩

《SpringBoot使用ffmpeg实现视频压缩》FFmpeg是一个开源的跨平台多媒体处理工具集,用于录制,转换,编辑和流式传输音频和视频,本文将使用ffmpeg实现视频压缩功能,有需要的可以参考... 目录核心功能1.格式转换2.编解码3.音视频处理4.流媒体支持5.滤镜(Filter)安装配置linu

在Spring Boot中实现HTTPS加密通信及常见问题排查

《在SpringBoot中实现HTTPS加密通信及常见问题排查》HTTPS是HTTP的安全版本,通过SSL/TLS协议为通讯提供加密、身份验证和数据完整性保护,下面通过本文给大家介绍在SpringB... 目录一、HTTPS核心原理1.加密流程概述2.加密技术组合二、证书体系详解1、证书类型对比2. 证书获