首先要感谢写pyvisa库的大哥们,解决了我的大问题。
实验室到了一个IV测试的设备,是keithley 237,性能看起来不错。电流最低可以测到10fA,电压最高可以到1100V。反正各种功能强大。唯一的不足就是操作起来很麻烦。它长得是这样的:
完全不方便测试,而且数据也没办法保存。因此我们需要用电脑去控制。老师给我提供的思路是用labview+NIvisa+keithleyvisa的方法。奈何上课学到的labview知识早就忘完了。按照那边的工程师指挥+自己百度查资料。弄了很久终于可以和设备通信了,但是我感觉配置起来很麻烦,而且labview编程我也不熟悉,这个思路很依赖各种软件驱动的版本,可移植性不好。
于是乎,我选择了python的pyvisa库(花了很长时间才找到的解决方案)。
具体实现步骤是:使用GPIB转USB线连接电脑和设备(淘宝上有,我买的安捷伦的82357,花了450大洋)。接上后电脑会自动安装驱动,很方便。百度下载一个NIvisa软件,它是NI公司提供的一个编程接口,可以通过这个接口与各种不同通信协议的一起通信。然后就是pip install pyvisa。很快就搭建好了环境,比老师提供的方案方便很多。
450元的转接线
接下来就是简单的编程了
import pyvisa as visa visa.log_to_screen() rm = visa.ResourceManager() print(rm.list_resources()) my_ins = rm.open_resource('GPIB0::16::INSTR') my_ins.write(‘J0X’)
log_to_screen方法可以显示通信日志,方便调试
list_resources()方法可以列出所有和电脑连接的设备,然后打开你需要的那个就可以了。最后就是write()和read()方法和设备进行通信了。代码里的‘J0X’是我用的设备手册里提供的复位指令,不同设备时不一样的。具体怎么操作设备就要参考手册了。