网络设计网站多少钱,外贸网络推广网,景德镇网站建设哪家好,南昌建站模板基于Python和GPIB的硬件测试仪器控制方法
背景
在物联网通信时代#xff0c;嵌入式模块开发越发广泛#xff0c;自动化测试成为大家老生常谈的话题。对于一些高精度仪器#xff0c;我们知道它是用GPIB控制用来测试#xff0c;也希望可以通过一个程序实现自动化控制#xf…基于Python和GPIB的硬件测试仪器控制方法
背景
在物联网通信时代嵌入式模块开发越发广泛自动化测试成为大家老生常谈的话题。对于一些高精度仪器我们知道它是用GPIB控制用来测试也希望可以通过一个程序实现自动化控制但自动化控制的仪器或者程序往往需要高昂的价格。本人也受此困扰因此查找了很多资料终于让我发现了自动化控制这些仪器的方法。本文就为大家介绍下如何控制这些硬件仪器。
技术要点
本文介绍基于GPIB接口和Pyvisa控制硬件测试仪器的方法。控制方法是通用的控制不同的仪器需要获得被控制仪器的visa指令即可。Pyvisa需要配合windows的visa32.dll或visa64.dll使用Python环境需使用Python2.x。本文以N6705CN6705B为例。
环境搭建
PC安装NI-MAX及使用方法
用于控制GPIB与连接端通信即可以查看GPIB地址也可以直接与仪器通信并控制仪器。
解压NI-MAX双击运行setup.exe即可安装过程中需要重启电脑
有对应的一起和GPIB卡想必也有正版授权的NI-MAX驱动程序了如果没有请到其官网下载。
安装成功后在windows-所有程序-NI MAX 双击打开如图Python控制硬件仪器-图1
如果此时仪器已经连接到PCNI MAX打开后可以查看GPIB地址如图:Python控制硬件仪器-图2
可以通过NI MAX与仪器直接进行通信
点击“与仪器通信”后弹出窗口在发送字符串输入框中输入控制指令图例为查询仪器型号指令(*IDN?)。如图所示可以对仪器进行查询、写入、读取操作。更多关于NI MAX操作如下
参考文档https://www.ni.com/getting-started/set-up-hardware/instrument-control/zhs/gpib-connect
检查当前windows是否缺少visa32.dll
如缺少请下载并存放系统路径
1、Windows 95/98/Me系统将visa32.dll复制到C:\Windows\System目录下。
2、Windows NT/2000系统将visa32.dll复制到C:\WINNT\System32目录下。
3、Windows XP/WIN7/win10系统(64位系统对应64位dll文件32位系统对应32位dll文件)
将visa32.dll复制到C:\Windows\System32目录下。
4、如果您的系统是64位的请将32位的dll文件复制到C:\Windows\SysWOW64目录。
下载及安装使用说明地址
32位https://dl.pconline.com.cn/download/1374544.html
64位https://www.jb51.net/dll/visa64.dll.html
安装Python2.7
1、必须使用python2.xpython3.x无法使用pyvisa库结合NI-MAX控制GPIB
2、安装多个Python环境在使用pycharm写脚本时注意在设置中选择不同的python环境。
3、Python2.x脚本中注意不可以使用中文
为解决python2.x和3.x的共存实现DOS可以调用python2.x请到python2.x安装路径下修改python.exe 为python2.exepythonw.exe为pythonw2.exe
加载pyvisa库函数
1、使用pycharm加载pyvisa最新版本包
2、若pycharm无法加载pyvisa,则使用pip安装dos窗口执行pip install --user PyVISA
3、若pip不可用请检查pip是否添加到系统变量patch中。
4、脚本import visa需要注意的是安装的库函数是pyvisa,脚本中加载的是visavisa属于pyvisa
使用脚本控制GPIB-VISA控制仪器
1、visa指令有query/write/read;
2、安捷伦电源指令有*IDN?-查询仪器型号、OUTP OFF-关闭供电、OUTP ON-打开供电、meas:curr?-输出测量值电流;
3、N6705C指令有*IDN?-查询仪器型号、Output off, (1)-关闭供电、Output on, (1)-打开供电、Meas:Current? (1)-输出测量值电流;
4、visa控制指令参考链接
https://blog.csdn.net/pugongying1988/article/details/79225898
Python控制硬件测试仪器参考Demo
控制安捷伦电源
# -*- coding: UTF-8 -*-
import visa
import time
gpib_addr GPIB0::1::INSTR #PC安装NI MAX后可以查看GPIB地址此工具也可以直接与GPIB通信
rm visa.ResourceManager() #获取visa资源将python的visa和系统visa关联起来
gpib_inst rm.open_resource(gpib_addr) #打开GPIB地址连接
print(gpib_inst.query(*IDN?)) #查询仪器型号
gpib_inst.write(OUTP OFF) #关闭供电开关
time.sleep(2)
gpib_inst.write(OUTP ON) #打开供电开关
#读取耗流
count 0
while count 10:
gpib_inst.write(meas:curr?) #写入耗流测量输出指令
magpib_inst.read()
print(ma)
count1
控制N6705B 高精度耗流仪
# -*- coding: UTF-8 -*-
import visa
import time
gpib_addr GPIB0::5::INSTR #PC安装NI MAX后可以查看GPIB地址此工具也可以直接与GPIB通信
rm visa.ResourceManager() #获取visa资源将python的visa和系统visa关联起来
gpib_inst rm.open_resource(gpib_addr) #打开GPIB地址连接
print(gpib_inst.query(*IDN?)) #查询仪器型号
#读取耗流
count 0
while count 10:
gpib_inst.write(Meas:Current? (1)) #写入耗流测量输出指令
mafloat(gpib_inst.read())
print(ma)
count1
结尾
以上是我实现控制硬件测试一起的方法希望对你有所帮助这个方法是通用的适应于任何通过GPIB访问的仪器。如果需要你执行得到对应仪器的visa 指令套用上述方法即可以实现对硬件测试仪器的自动化控制。