暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Pyvisa,简明教程2,调试与仪器通信

怎么办我好喜欢胖虎啊 2021-08-11
2762

点击上方蓝字关注我们



1,调试准备工作


1,仪器仪表

2,装好环境的电脑

3,连接器(网线,GPIB等)

                     

2,pyvisa连接仪器调试


这一部分我认为是这个系列最重要的部分。因为是否能成功连接上仪器,是后续所有工作的基础,可惜的是查了网上很多资料,都没有强调这一块,csdn上很多教程仅仅只是单纯的翻译pyvisa的doc而已。当时这一步我本人卡了非常久,来来回回出bug连接不上Orz。

首先看一下pyvisa doc的连接部分的描述,如下图所示。

一共五行代码,第一行是import,没什么好说的,实际使用中也可以用from pyvisa import visa。第二行则是打开visa的资源管理器实例化,第三行为list_resource,即为打开当前计算机下所有的Visa能检测到的通信口,(TCPIP,GPIB,RS232等等)。

第三行这里有个隐藏的坑,list_resources()显示的为当前VISA能检测到的,如果没有在NI-VISA中创建新的实例,或者是没安装好转接器的驱动(例如2M的GPIB-USB转接线),极大可能是检测不到你想连接的仪器,因此无论如何你在list里面都找不到自己的仪器,连接就更谈不上了。

如果转接器的驱动没什么问题,即第一步中的软件编译环境没问题的话,只需要现在NI-visa的界面中创建当前实例就行了,如下图

这里以最常见的TCPIP为例子,Host name和IP address其实就是pyvisa里面所指的visa对象名称,遵循Visa资源语法,而Lan Device name则是自己在仪器中设置的,添加对应的端口号即可。

需要详细说明的是Hostname这一项,需要遵循VISA资源语法规范,就是pyvisa示例代码中的,"GPIB0::14::INSTR’这个命名规则在pyvisa的doc中,1.1.8节,Visa resources name里面有详细的说明。本文以截图形式给出。


这两个图节选自Pyvisa 1.1.8。第一张图的interface代表不同的通信口类型,而右侧对应的是该通信口类型的Visa资源命名语法,对号入座即可。

举个简单的例子,如果是GPIB类型的通信口,name只需要在左侧的interface一列,寻找GPIB的类型,一般是INSTR比较常见,name对应的右侧的格式,为GPIB[board]::[address]::intsr。从第二个表里面找默认值,board为0,无第二地址,name就是GPIB0::17::INSTR,TCPIP同理,对号入座即可。

Hostname以及lan device port建成功之后,在NI-VISA的界面应该能搜索到刚刚创建的这一项。此时再按照pyvisa的教程,rm= visa.Resources(). list_resources()能打印出来刚刚你创建的visa资源名称,那么这一步调试就算成功了。

                     

3,向仪器发送命令以及获取反馈


就两条命令。在rm.open_Resources()之后,向仪器发送命令,instruments.write(),其中write里面的命令,一般在仪器自己的编译手册中,这里不再详细展开。

获取仪器的返回值,s使用query()函数,可能要以ASCII或者str的形式返回,后续根据实际的调试情况可自行处理。


点个在看你最好看

文章转载自怎么办我好喜欢胖虎啊,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论