乱伦最新网址,欧美精品一区二区蜜臀亚洲,中文字幕 日韩 人妻 无码,护士长在办公室躁BD视频,日本乱偷中文字幕av,国产亚洲国际精品福利

新聞資訊
您當(dāng)前的位置 : 首 頁 > 新聞資訊 > 技術(shù)資訊

Python編程控制示波器

2022-05-23 11:35:01

    示波器作為電子工程師常用的測試測量儀器之一,在有些情況下,需要編程控制示波器采集數(shù)據(jù),并進(jìn)行數(shù)據(jù)處理和分析,實(shí)現(xiàn)對示波器的自動化操作完成自動測試。

    有些特殊場合由于安全問題,需要把示波器放到封閉實(shí)驗(yàn)室環(huán)境下進(jìn)行測試,也需要編程控制示波器采集數(shù)據(jù)安全地完成測試任務(wù)。

實(shí)現(xiàn)對示波器的自動設(shè)置和遠(yuǎn)程采集數(shù)據(jù),成為很多前沿科學(xué)研究和實(shí)驗(yàn),以及生產(chǎn)自動化的必需環(huán)節(jié)。


    由于Python免費(fèi)、開源、語法簡單、開發(fā)效率高,深受廣大工程師的喜愛。今天以實(shí)時示波器為例,介紹利用Python編程控制示波完成采集數(shù)據(jù)并顯示波形。 相應(yīng)的方法同樣適用于其它開發(fā)工具和其它測試儀器,例如采樣示波器、頻譜分析儀、任意波形發(fā)生器AWG,源表SMU,函數(shù)發(fā)生器AFG等。


示波器廠家


利用Python編程控制示波器▽


編程前的準(zhǔn)備工作

   利用Python控制儀器,需要安裝相應(yīng)的功能模塊庫才能實(shí)現(xiàn)控制儀器。下面介紹Python編程之前的準(zhǔn)備工作。


1、安裝Python

    可登錄Python官方網(wǎng)站www.python.org下載Python,然后安裝Python 3.10.4新版。


示波器


2、安裝PyVISA 

    PyVISA是用來控制各種測量儀器的Python包,可支持GPIB、RS232、USB、Ethernet等接口。可以自由的運(yùn)行在Windows,Linux和Mac上,適用于不同儀器廠家。PyVISA也可以通過pip命令安裝(pip install pyvisa)。


3、安裝NI-VISA

   為了PyVISA可靠工作,還需要安裝一個VISA。建議安裝NI-VISA庫,可以去NI官方網(wǎng)站下載安裝。


示波器價格


4、接口的選擇和設(shè)置

   根據(jù)儀器支持的接口,可選用GPIB、RS232、USB、Ethernet等接口來編程控制儀器,本文利用Python通過以太網(wǎng)接口編程控制示波器為例。


控制接口的選取 

a. LAN  

  [TCPIP0::192.168.0.1::inst0::INSTR]

b. GPIB  

  [GPIB0::1::INSTR]

c. Serial

  [serial('COM1','BaudRate',4800)]

d. USB 

[USB::XXX::XXX::XXX::INSTR]


示波器和PC的設(shè)置(以LAN為例)

a. 設(shè)置示波器的IP地址 例如: 192.168.0.2

b. 設(shè)置PC的IP地址 例如: 192.168.0.1

c. 關(guān)閉示波器和PC的防火墻

d. 在PC端 ping 192.168.0.2,看是否ping通


示波器


Python控制示波器實(shí)戰(zhàn)

    利用Python控制示波器,通過發(fā)送SCPI指令實(shí)現(xiàn)對示波器的控制和操作,設(shè)置示波器的參數(shù),然后采集示波器的數(shù)據(jù)并顯示。


1、調(diào)用功能模塊

利用import調(diào)用相關(guān)的功能模塊。

import time   

import pyvisa   

import matplotlib.pyplot as plt 

import numpy as np  


2、連接示波器 

Python可以利用GPIB、RS232、USB、Ethernet等接口控制示波器,今天利用以太網(wǎng)口控制示波器為例。

visa_address = 'TCPIP0::192.168.0.2::inst0::INSTR'

rm = pyvisa.ResourceManager()

scope = rm.open_resource(visa_address)

print(scope.query('*idn?'))


示波器


3、設(shè)置示波器

利用Wrtie發(fā)送SCPI命令設(shè)置的參數(shù),參考示波器的編程手冊。

Reset 示波器

    scope.write('*RST')  

自動設(shè)置示波器

scope.write('AUTOSET EXECUTE') 

設(shè)置示波器的采樣率

scope.write('HORIZONTAL:SAMPLERATE 25e9') 

設(shè)置示波器運(yùn)行

scope.write('acquire:state 1')


4、讀取測量結(jié)果

先用Wrtie發(fā)送SCPI命令設(shè)置測量項(xiàng)和參數(shù),然后用Query讀取測量結(jié)果。

添加測量項(xiàng)

scope.write("MEASU:MEAS1:TYPE PERIOD")

設(shè)置測量通道

scope.write('MEASU:MEAS1:SOU CH1') 

讀取測量結(jié)果

scope.query(MEASU:MEAS1:VAL?') 


5、讀取波形數(shù)據(jù)

    可以利用query_ascii_values讀取ASCII數(shù)據(jù),也可以利用read_raw()讀取數(shù)據(jù),還可以query_binary_values讀取讀二進(jìn)制數(shù)據(jù),今天我利用query_binary_values讀取示波器的數(shù)據(jù)為例,注意:讀取的數(shù)據(jù)還需要轉(zhuǎn)換成電壓,如何轉(zhuǎn)換電壓,請看上面的視頻。

bin_wave = scope.query_binary_values('curve?', datatype='b', container=np.array) 


6、畫波形圖

利用plt把示波器采集的波形數(shù)據(jù)畫圖。

plt.plot(scaled_time, scaled_wave)

plt.title('channel 1') 

plt.xlabel('time (s)') 

plt.ylabel('voltage (V)')

plt.minorticks_on()

plt.show()


示波器


7、斷開儀器連接


利用close斷開與示波器通信連接。

scope.close()

rm.close()


    總結(jié):本文介紹如何利用Python語言編程控制示波器采集數(shù)據(jù)并顯示波形,從而實(shí)現(xiàn)對示波器的自動化操作,完成自動測試和分析,大大提高工作效率。如果對Python編程控制示波器完整源代碼感興趣的,可在線溝通,或致電客服!

近期瀏覽:

从江县| 江山市| 红安县| 什邡市| 焦作市| 土默特左旗| 什邡市| 潮安县| 建始县| 新巴尔虎右旗| 迭部县| 肥东县| 宜城市| 金平| 荆门市| 赣州市| 康定县| 甘南县| 汕头市| 珠海市| 中西区| 青川县| 大足县| 阳城县| 日土县| 龙陵县| 阳春市| 临夏市| 改则县| 亳州市| 浦北县| 那坡县| 礼泉县| 武山县| 柳河县| 加查县| 弋阳县| 土默特右旗| 丰顺县| 雷山县| 兴文县|