对于一些针对开关机出现偶发启动异常的问题需要捕获下异常情况的波形,但是异常情况并不是每次都能触发到,所以需要自动化去捕捉波形然后进行分析,这里就介绍下使用python控制泰克示波器进行设置单次触发获取触发后进行保存数据。
一:驱动安装(这里介绍windows版本的visa驱动安装)
1,首先需要安装ni-visa到驱动程序,这个是电脑跟示波器通信到驱动程序,是必须安装的,想了解更多的就自行百度,下载链接如下:
下载NI-VISA - NI
这里是提供了两种安装方式,一种是下载在线安装,占用空间小,需要联网,点击【下载】就是该方式,不过不是特别推荐,安装可能需要其他依赖环境;另外一种是离线安装,需要下载全部的安装包,点击【离线安装】即可以下载完整的离线包,大概1.4G。
安装离线文件,直接点击iso文件进入到安装目录下:
点击Install.exe,有可能需要更新,直接先全部点击下一步。
出来如下的界面是进入到安装界面,这里我们只是需要visa的驱动支持就好了,其他环境和编写程序的IDE都不需要安装。
然后等待安装即可;
二:示波器连接
这里使用的示波器是泰克的MDO4104C,不同的示波器连接方式基本都是一致,电脑与示波器通信有两种方式,一种是使用USB接口,另外一种是通过有线网络通信。
如果使用的是USB设备,USB连接之后在我的电脑-管理-设备管理器查看有这个驱动则是正常的,就是可以电脑控制泰克示波器了。
如果是使用网线的方式,则先需要在示波器里面给示波器设置一个IP地址,电脑跟示波器IP地址在同一个网段进行通信。
在电脑上ping或者打开仪器的IP地址查看WEB是否正常。出现这个界面便是电脑与仪器通信正常。
三:python环境安装
这里使用的是python3.6的版本,需要先安装pyvisa的库文件,在cmd或者pycharm里面安装都可以。
先检查配置:
>>> import pyvisa
>>> rm = pyvisa.ResourceManager()
>>> rmlist = rm.list_resources()
>>> print(rmlist)
('USB0::0x0xxxx9::xxxxxx::xxxxx:INSTR',) #返回的是一个USB的接口的元组。
以上测试表明python与仪器使用USB连接成功。现在就可以编写程序了。
如果使用TCP的方式,则接口:TCPIP::xxx.xxx.xxx.xxx::INSTR
选择一个比较常用的说明
先连接仪器
rm = pyvisa.ResourceManager()
my_instrument = rm.open_resource(TCP_connect)
my_instrument.write('TRIGGER:STATE?') 获取示波器的状态
TRIGGER_STATE =my_instrument.read()
print(TRIGGER_STATE)
if TRIGGER_STATE[0] == "S": 读取到是SAVE的时候是在触发后的停止
#下面这两句比较关键,就是说触发后的停止需要执行这两句回到auto状态才能再次设置成单次触发模式
my_instrument.write('ACQUIRE:STOPAFTER RUNSTOP') my_instrument.write('ACQuire:STATE RUN')
else:
print(TRIGGER_STATE)
死循环的捕获出发后波形然后保存在外部U盘:
while True:
time.sleep(1)
my_instrument.write('TRIGGER:STATE?')
TRIGGER_STATE =my_instrument.read()
if TRIGGER_STATE[0] == "S":
print('have triggered')
dt = datetime.datetime.now()
fileName = dt.strftime("%Y%m%d_%H%M%S")
my_instrument.write('SAVE:IMAGE "F:/re_%s.bmp"' %fileName)
time.sleep(1)
my_instrument.write('FILESYSTEM:READFILE "F:/re_%s.bmp"' %fileName)
break