基于NI-VISA 、pyvisa和python的示波器控制(一)

2024-03-01 18:50

本文主要是介绍基于NI-VISA 、pyvisa和python的示波器控制(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文实验采用泰克(tektronix)MSO44 示波器,搭配MACBOOK PRO电脑,开发环境采用python 3.9 和PyCharm 以及python 的其他函数库来实现功能。另外使用了NI—VISA 库,本文只介绍如何准备工作和pyvisa的简介,下一章讲介绍如何控制及示波器采集波形数据。

准备工作

在开始之前我们需要做一些准备工作以:

  1. 安装NI-VISA,网址如下NI-VISA 下载:各位可自行下载安装相关;
  2. 安装python 3.9 ,网址为:Pyhon.org,各位可自行安装,值得注意的是MacBook自带了python 2.7 但是该版本官方已停止支持,建议尽快升级为最新版本,实际也有办法做替换的,但是我能力有限就未做替换直接下载了最新版本的python 3.9
  3. 安装PyCharm,方便你的调试工作,选择Community版可免费使用。PyCharm 下载;
  4. 在PyCharm中新建项目并配置项目解释器;
  5. 安装相应的功能模块,
    图一
    图2

以上准备工作基本完成,

示波器控制

此处主要是用pyvisa 函数库来实现对示波器的指令发送控制操作,来让我们看下下面这些例子:

  1. 连接示波器
    import pyvisa as visa
    rm = visa.ResourceManager()
    rm.list_resources()
    my_instrument = rm.open_resource('GPIB0::14::INSTR')
    print(my_instrument.query('*IDN?'))
    
    这里要这样写不能使用如下的写法,下面的写法会出现奇奇怪怪的问题或者没办法正常连接仪器,下面这种写法是之前旧的写法。
    import visa
    
    导入pyvisa之后,创建一个ResourceManager对象。它是可以带参数调用的但我没有去研究,这里是不带参数的调用,
    有了ResourceManager之后,就可以使用list_resources方法列出所有可用的资源。可以打印出来选择正确的设备名称
    在这种情况下,有一个USB仪器的仪器编号为0,所以用实例化的ResourceManager打开“USB0::0x0699::0x0527::C018073::INSTR”,并将返回的对象赋值给my_instrument。
    print(my_instrument)
    <GPIBInstrument('USB0::0x0699::0x0527::C018073::INSTR')>
    
    ResourceManager提供了不同类型的方法用于查询参数和属性
    通过下面的函数查询设备信息,指令为“*IDN”,这个指令在支持NIVISA的设备上都适用。query函数可以替代发送指令的写和读两个函数,本来两条指令才能做的操作这一条指令就能办到。
    所以:
    my_instrument.query("*IDN?")
    
    等同于
    my_instrument.write('*IDN?')
    print(my_instrument.read())
    
  2. 正确配置仪器很重要
    正确配置仪器才能保证仪器能够返回我们想要的数据,而不是返回一堆错误和error来是我们头疼,所以正确配置仪器就很重要了。以下是read_termination和write_termination的设置指令
    my_instrument.read_termination = '\n'
    my_instrument.write_termination = '\n'
    my_instrument.query('*IDN?')
    
    这里我们用“n”,也就是“换行”。这是一个常见的值,另一个是’ r ‘即’回车’,在某些情况下使用null字节’ 0 '。
    以下指令用于设置波特率:
    my_instrument.baud_rate = 57600
    
  3. 检查指令是否存在错误
    当使用query时,我们测试对仪器的写入和读取。首先要做的是尝试确定问题是在写操作还是读操作期间发生的。一般发送命令错误,仪器会发出提示声或者错误提示消息。
    我们可以通过发送切换指令来确认示波器有么有正确识别指令。
    如果发送的命令正确接受了但是读取出现了问题就要检查,读取部分是否有设置上的问题。比如read_termination属性是不是设置的不对。
    建议在读取前加入一定的延时以确保能够完整的得到所需的数据。

这篇关于基于NI-VISA 、pyvisa和python的示波器控制(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Python安装时常见报错以及解决方案

《Python安装时常见报错以及解决方案》:本文主要介绍在安装Python、配置环境变量、使用pip以及运行Python脚本时常见的错误及其解决方案,文中介绍的非常详细,需要的朋友可以参考下... 目录一、安装 python 时常见报错及解决方案(一)安装包下载失败(二)权限不足二、配置环境变量时常见报错及

Python中顺序结构和循环结构示例代码

《Python中顺序结构和循环结构示例代码》:本文主要介绍Python中的条件语句和循环语句,条件语句用于根据条件执行不同的代码块,循环语句用于重复执行一段代码,文章还详细说明了range函数的使... 目录一、条件语句(1)条件语句的定义(2)条件语句的语法(a)单分支 if(b)双分支 if-else(

Python itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

Python创建Excel的4种方式小结

《Python创建Excel的4种方式小结》这篇文章主要为大家详细介绍了Python中创建Excel的4种常见方式,文中的示例代码简洁易懂,具有一定的参考价值,感兴趣的小伙伴可以学习一下... 目录库的安装代码1——pandas代码2——openpyxl代码3——xlsxwriterwww.cppcns.c

Python中Markdown库的使用示例详解

《Python中Markdown库的使用示例详解》Markdown库是一个用于处理Markdown文本的Python工具,这篇文章主要为大家详细介绍了Markdown库的具体使用,感兴趣的... 目录一、背景二、什么是 Markdown 库三、如何安装这个库四、库函数使用方法1. markdown.mark

一分钟带你上手Python调用DeepSeek的API

《一分钟带你上手Python调用DeepSeek的API》最近DeepSeek非常火,作为一枚对前言技术非常关注的程序员来说,自然都想对接DeepSeek的API来体验一把,下面小编就来为大家介绍一下... 目录前言免费体验API-Key申请首次调用API基本概念最小单元推理模型智能体自定义界面总结前言最

Python利用PIL进行图片压缩

《Python利用PIL进行图片压缩》有时在发送一些文件如PPT、Word时,由于文件中的图片太大,导致文件也太大,无法发送,所以本文为大家介绍了Python中图片压缩的方法,需要的可以参考下... 有时在发送一些文件如PPT、Word时,由于文件中的图片太大,导致文件也太大,无法发送,所有可以对文件中的图