<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

教你一招,簡化儀器Python編程控制!

泰克科技 ? 來源:泰克科技 ? 2024-03-15 14:31 ? 次閱讀

引言

許多行業的工程師都使用自動化來擴展其測試儀器的功能,而大多是選擇免費的編程語言——Python來完成。作為適用于自動化的主要編程語言,Python具備許多顯著優勢:

多功能性

易于教學

代碼可讀性

廣泛可用的知識庫和模塊

自動化包含兩種主要使用情形:

? 模擬人類行為以自動化前面板并節省時間的例程,例如自動化合規性測試。每次需要測試新零件時,工程師不會呆坐在示波器前,添加相應的測量值并記下結果,而是開發一個腳本來完成所有工作并顯示最終結果。

?擴展儀器功能的用途,例如:測量記錄、驗證或質量保證。自動化操作支持工程師執行復雜的測試,且能夠規避測試過程中的許多固有缺點。操作人員無需設置示波器和手動記錄結果,且每次都可以以相同的方式進行測試。

本技術簡介將涵蓋使用Python進行編程所需的內容,包括編程接口的基礎知識以及下載和運行方法的示例。

1

編程接口的定義

編程接口(PI)是兩個計算系統之間的一個或多個邊界,可以通過編程來執行特定行為。就本文而言,編程接口是運行每臺泰克測試設備的計算機和最終用戶編寫的應用程序之間的橋梁。為了進一步縮小范圍,編程接口在此處定義為一組可以遠程發送到儀器的命令,儀器會處理這些命令并執行相應的任務。PI堆棧(圖1)顯示了從主機控制器到儀器的信息流。最終用戶編寫的應用程序代碼用于定義目標儀器的行為。

最終用戶通常用業內流行的開發平臺編寫代碼,如Python、MATLAB、LabVIEW、C++C#。這些應用程序將使用可編程儀器標準命令(SCPI)格式——大多數測試和測量設備都支持的標準格式——發送數據。SCPI命令通常通過虛擬儀器軟件架構(VISA)層發送,VISA層可通過為增強通信協議的魯棒性(例如錯誤檢查)促進數據傳輸。在某些情況下,應用程序可能會調用驅動程序,然后驅動程序會向VISA層發送一個或多個SCPI命令。

2

tm_devices驅動程序包的內容

泰克的tm_devices是泰克自行開發的設備管理包,支持用戶使用編程語言Python控制和自動化泰克和吉時利產品的測試過程。使用Python的軟件包管理系統pip可快速安裝tm_devices。

Python軟件包包含大量命令和功能,可幫助用戶輕松地對泰克和吉時利產品進行自動化測試。其可在最流行的Python IDE中使用,且支持代碼補全輔助。此外,Python軟件包還可以幫助任何水平軟件技能的工程師簡單輕松地進行編碼和測試自動化。

3

環境設置

本節將指導您完成使用tm_ devices進行開發工作的先決條件和安裝。我們特意在Python(venvs)中提供了支持虛擬環境的指令,因為我們相信這樣可以幫助您更輕松地管理和維護項目,特別是在使用Python軟件包之前,您只是簡單地試用了一下的情況下。

3.1

安裝與先決條件概述

1. 安裝 Python.

a.Python >=3.8

2. PyCharm——PyCharm安裝、啟動項目和tm_devices安裝

3. VSCode——VSCode安裝、啟動項目和tm_devices安裝

3.2

PyCharm社區版(免費)

PyCharm是一款各行各業軟件開發人員廣泛使用的Python IDE。PyCharm有一個集成的單元測試器,支持用戶按文件、類、方法的運行測試,或直接運行文件夾中的所有測試。與大多數現代IDE一樣,PyCharm擁有代碼補全形式,和基本的文本編輯器相比,可以大大加快開發速度。

接下來,我們將為您介紹PyCharm社區版(免費)的安裝過程,然后在IDE中安裝tm_devices并設置一個虛擬環境進行開發。

1. 訪問

https://www.jetbrains.com/pycharm/

2. 跳過PyCharm專業版,下拉至PyCharm社區版,然后點擊下載。

96c51618-e284-11ee-a297-92fbcf53809c.jpg

3. 請繼續執行默認的安裝步驟。無需進行任何特殊操作。

4. 歡迎使用PyCharm!

96cfc590-e284-11ee-a297-92fbcf53809c.png

在PyCharm中創建新項目并設置虛擬環

5. 點擊“新建項目”。

6. 確認項目路徑,確保選擇“Virtualenv”。

9777eb58-e284-11ee-a297-92fbcf53809c.png

7. 打開一個終端。如果您的視圖底部沒有帶標簽的按鈕,請查看以下內容:

978464aa-e284-11ee-a297-92fbcf53809c.png

8. 在終端提示符出現之前進行檢查(venv),確認虛擬環境已設置。

9791f26e-e284-11ee-a297-92fbcf53809c.png

9.從終端安裝驅動程序。

鍵入:pip install tm _ devices

97994e9c-e284-11ee-a297-92fbcf53809c.png

10. 確保終端沒有出錯!開始使用吧!

3.3

Visual Studio Code

Visual Studio Code是另一款各行各業的軟件開發人員都在使用的免費IDE。其適用于大多數語言,且具有針對大多數語言的擴展包,因此用戶能夠在此IDE中快捷高效地進行編碼。Visual Studio Code可提供IntelliSense。IntelliSense是非常實用的開發工具,有助于代碼補全、參數信息以及其他有關對象和類的信息。tm_devices支持對描述對象和類的命令樹快速進行代碼補全。

4

示例代碼

在本節中,我們將逐步介紹一個簡單的代碼示例,并重點介紹一些有效使用tm_ devices的必要組件。

4.1

導入

97c7a77e-e284-11ee-a297-92fbcf53809c.png

這兩行對于tm_devices的有效使用至關重要。在第一行中,我們導入DeviceManager。這將處理多個設備類的樣板連接和斷開。

在第二行中,我們導入一個特定的驅動程序(在本例中是MSO4B)。

我們用DeviceManager設置一個上下文管理器:

97d5d128-e284-11ee-a297-92fbcf53809c.png

然后,當我們同時使用設備管理器和驅動程序時:

97df674c-e284-11ee-a297-92fbcf53809c.png

我們可以用與其型式匹配的特定命令集來實例化儀器。輸入您儀器的ip地址(其他VISA地址也可)即可。

補全以上四行代碼后,我們就可以開始為MSO4B編寫特定的自動化代碼了!

4.2

代碼片段

接下來我們來看看幾個簡單的操作:

將觸發類型設置為邊沿觸發

97f11582-e284-11ee-a297-92fbcf53809c.png

以下是添加和查詢CH1峰-峰值測量值的方法:

97fb0704-e284-11ee-a297-92fbcf53809c.png

如果您想對CH2進行幅值測量:

9808178c-e284-11ee-a297-92fbcf53809c.png

5

使用IntelliSense/代碼補全

IntelliSense——微軟的代碼補全系統,也是我們在盡可能利用的IDE的一個強大功能。

SCPI命令集是測試和測量設備自動化面臨一大障礙。這是一種較為過時的結構,其語法在開發社區中并未得到廣泛支持。

我們使用tm_devices所做的是為每個SCPI命令創建一組Python命令。我們可以從現有的命令語法中生成Python代碼,避免手動開發驅動程序,并創建現有SCPI用戶熟悉的結構。tm_devices還可映射在程序創建期間可能需要特意調試的底層代碼。Python命令的結構模仿了SCPI(或在某些吉時利案例中的TSP)命令結構,因此如果您熟悉SCPI,您就知道這些結構。

以下是關于“IntelliSense如何顯示先前鍵入的命令”的所有可用命令示例。

在Scope上的圓點后出現的可滾動列表中,我們可以看到按字母順序排列的Scope命令類別列表:

980e4ca6-e284-11ee-a297-92fbcf53809c.png

選擇afg,我們可以看到afg類別列表。

981adcaa-e284-11ee-a297-92fbcf53809c.png

在IntelliSense的幫助下編寫的最終命令:

9826d51e-e284-11ee-a297-92fbcf53809c.png

6

文檔字符串幫助

編寫代碼之時,或者查看其他人的代碼時,您可以將鼠標懸停在語法的不同部分上,以獲得該級別的特定幫助文檔。越接近完整的命令語法,其內容就越具體。

983aa062-e284-11ee-a297-92fbcf53809c.png

根據您的IDE設置,您可以同時查看IntelliSense和文檔字符串幫助。

9842565e-e284-11ee-a297-92fbcf53809c.png984d0cb6-e284-11ee-a297-92fbcf53809c.png

閱讀本指南后,您可以了解泰克Python驅動程序包tm_devices的部分優勢,接下來便可以開始您的自動化之旅了。通過簡單的設置、代碼補全和內置幫助,您無需離開IDE就能學習,進而可以加快開發速度,并以更高的信心進行編碼。

如果您希望改進軟件包,Github repo中有編輯指南。在文檔和examples文件夾的軟件包內容中突出顯示了大量更高級的示例。

7

其他資源

tm_devices·PyPI——軟件包驅動程序下載和信息

tm_devices Github——源代碼、問題跟蹤、編輯

https://github.com/tektronix/tm_devices#documentation ——在線文檔

8

故障排除

通常情況下,故障排除的第一步是升級pip:

在您的終端鍵入:Python.exe -m pip install -upgrade pip

錯誤:whl看起來像文件名,但文件不存在或此平臺不支持whl。

98c4e1dc-e284-11ee-a297-92fbcf53809c.png

解決方案:在pip中安裝wheel,使其能夠識別文件格式。

在您的終端鍵入:pip install wheel

如果您需要離線安裝wheel,您可以遵循與附件A類似的說明,但其需要下載tar.gz格式文件而非.whl文件。


審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 控制器
    +關注

    關注

    112

    文章

    15320

    瀏覽量

    172179
  • 示波器
    +關注

    關注

    111

    文章

    5868

    瀏覽量

    182097
  • LabVIEW
    +關注

    關注

    1926

    文章

    3619

    瀏覽量

    317831
  • 編程語言
    +關注

    關注

    9

    文章

    1880

    瀏覽量

    33499
  • python
    +關注

    關注

    52

    文章

    4697

    瀏覽量

    83578

原文標題:【操作指南】教你一招,簡化儀器Python編程控制!

文章出處:【微信號:泰克科技,微信公眾號:泰克科技】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    轉載:每天學一招:設計Q&A

    學習他人經驗就等于站在巨人的肩膀上創新,這里以Q&A的形式,把些實用設計技巧用簡短等語句表述出來,幫助大家簡化設計,歡迎大家跟帖補充!第一招:如何設計ADC前端的輸入,以達到更好的性能
    發表于 07-15 09:52

    簡單一招解決焊電路被煙熏的辦法

    相信筆記本電腦的散熱器大家都有吧,哈哈,一招搞定!貼圖看效果:效果還不錯,做硬件,焊電路的要多注意身體。
    發表于 03-07 09:17

    Labview與Python的網絡編程

    。Python與C系列相比,開發效率極高。如果用Python開發安卓APP,通過以太網控制Labview開發的自動化測試軟件。將可以實現手機遠程控制設備監控設備的功能。圖片是我做的La
    發表于 11-12 13:48

    學會一招,精密小信號處理的目標就會變得很簡單

    學會一招,低噪聲,低偏移電壓,低漂移的目標就會變得很簡單
    發表于 04-09 07:11

    教你一招如何分辨PCB板層數

    教你一招如何分辨PCB板層數
    發表于 04-23 06:36

    教你一招如何去實現傅立葉變換算法?

    教你一招如何去實現傅立葉變換算法?
    發表于 04-30 06:05

    教你一招怎樣去選擇合適的CPLD

    CPLD有哪些優點?教你一招怎樣去選擇合適的CPLD
    發表于 05-06 09:48

    教你一招分分鐘實現頻譜儀帶寬的正確設置

    教你一招分分鐘實現頻譜儀帶寬的正確設置
    發表于 05-07 06:36

    教你一招定時器中斷該怎么辦?

    教你一招定時器中斷該怎么辦?
    發表于 05-14 06:34

    教你一招如何通過手機的芯片來判斷手機的價格?

    教你一招如何通過手機的芯片來判斷手機的價格?
    發表于 05-24 06:47

    教你一招如何去選擇射頻濾波器?

    教你一招如何去選擇射頻濾波器?
    發表于 05-28 07:05

    Python中的流程控制

    程控制無非就是if else之類的控制語句,今天我們來看Python中的流程控制會有什么不太
    發表于 06-28 08:54

    python基礎語法及流程控制

    爬蟲復習1.python基礎python基礎語法 流程控制 函數封裝2.防爬措施整體防爬User-AgentrefererIP代理池Cookie代理池 各自防爬數據內部動態加載網頁設置有干擾項標簽
    發表于 08-31 07:41

    什么是Python中的流程控制?

    什么是Python中的流程控制?
    發表于 10-09 07:24

    教你一招RK31885.1藍牙MAC怎樣才能從模組中獲取MAC地址

    教你一招RK31885.1藍牙MAC怎樣才能從模組中獲取MAC地址
    發表于 02-18 06:28
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>