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的形式返回,后续根据实际的调试情况可自行处理。
点个在看你最好看