python控制泰克示波器捕捉触发波形

对于一些针对开关机出现偶发启动异常的问题需要捕获下异常情况的波形,但是异常情况并不是每次都能触发到,所以需要自动化去捕捉波形然后进行分析,这里就介绍下使用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

您好!要利用SCPI(Standard Commands for Programmable Instruments)控制泰克示波器进行自动量测时间,您可以按照以下步骤进行操作: 1. 确保您已经连接好示波器并正确地配置了通信接口(例如USB、LAN等)。 2. 使用合适的SCPI命令来控制示波器泰克示波器通常支持常见的SCPI命令,可以通过示波器的手册或官方网站获取相关命令文档。 3. 在您的控制程序中,使用SCPI命令来设置示波器的测量参数,例如时间范围、采样率等。 4. 使用SCPI命令来触发示波器开始测量,并等待测量完成。 5. 通过SCPI命令获取测量结果,并进行后续处理或显示。 以下是一个示例代码,用于控制泰克示波器进行自动量测时间: ```python import visa # 连接示波器 rm = visa.ResourceManager() scope = rm.open_resource('USB0::0x1234::0x5678::C012345::INSTR') # 根据实际情况修改示波器的VISA地址 # 设置测量参数 scope.write('TIMEBASE:RANGE 1E-3') # 设置时间范围为1ms scope.write('ACQUIRE:SRATE 1E6') # 设置采样率为1MHz # 触发测量 scope.write('ACQUIRE:STATE RUN') # 开始测量 scope.query('*OPC?') # 等待测量完成 # 获取测量结果 result = scope.query('MEASU:TIME?') # 获取时间测量结果 print('测量结果:', result) # 关闭连接 scope.close() rm.close() ``` 请注意,示例代码仅供参考,您需要根据实际情况和示波器型号进行相应的修改和调整。同时,请确保您已经安装了相应的VISA驱动程序和SCPI控制库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李夕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值