<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 利用Python語(yǔ)言實(shí)現實(shí)驗室自動(dòng)化

利用Python語(yǔ)言實(shí)現實(shí)驗室自動(dòng)化

作者: 時(shí)間:2017-03-23 來(lái)源:電子產(chǎn)品世界 收藏

  作為一名系統和應用工程師,得益于自動(dòng)化儀器和軟件,我已經(jīng)節省了不計其數的日日夜夜;例如,這是一款系統設計平臺和開(kāi)發(fā)環(huán)境,支持可視化編程語(yǔ)言。支持用戶(hù)利用友好的圖形用戶(hù)界面(GUI)構建應用程序。該平臺帶有多個(gè)庫和模塊,使其能夠與儀器通信,所以可用于實(shí)驗室自動(dòng)化。作為用戶(hù),我已經(jīng)使用該工具構建了多款應用程序,但在過(guò)去幾年中,我已經(jīng)開(kāi)始逐步將其淘汰,代之以語(yǔ)言(見(jiàn)側欄:“是什么以及如何使用?”)。

本文引用地址:http://dyxdggzs.com/article/201703/345661.htm

  為了理解其中緣由,我們首先了解一下相對于現有替代語(yǔ)言的主要優(yōu)勢,以及討論Python應用程序的工作實(shí)例。表達Python方便和強大之處的最佳方式是介紹一個(gè)完整、可工作的Python自動(dòng)化腳本,例如我用來(lái)實(shí)現穩壓器(VR)負載調節曲線(xiàn)(負載調節是指輸出電壓隨輸出電流(負載)增大而發(fā)生的變化)自動(dòng)測量的腳本。

  這些穩壓器分為兩類(lèi):零下垂穩壓器設計的輸出電阻為零;因此,輸出電壓設置點(diǎn)不應隨輸出電流增大而變化。相比較而言,下垂穩壓器具有“載重線(xiàn)”,意味著(zhù)被設計成具有特定的等效輸出電阻。本例中所用穩壓器的零電流輸出電壓為1 V,設定的載重線(xiàn)為2.5 mΩ。

圖1. 測量配置

  在圖1所示的試驗配置中,使用Chroma 63201電子負載施加負載電流(VR輸出電流)。通過(guò)采集經(jīng)過(guò)校準的4 mΩ短路器上的電壓,測得輸出電流。利用Agilent 34970A數字采集器(DAQ)采集電壓和電流,DAQ和電子負載均通過(guò)GPIB連接至計算機。我們測量的目的是證明:在一定輸出電流范圍下,輸出電壓在技術(shù)指標范圍之內;圖2所示為應用程序的流程圖。

圖2. 應用程序流程圖

  從基本代碼結構開(kāi)始

  以下是自動(dòng)化腳本代碼的第一部分。Python語(yǔ)言中,注釋用#表示:

  第1至3行引用庫,其中包含隨后代碼中使用的方法:

  ?Numpy是用于科學(xué)計算的封裝庫。本例中,Numpy用于產(chǎn)生輸出電流值的數組。

  ?Pandas (用于數據處理和分析的庫)創(chuàng )建一個(gè)功能強大的數據結構,以?xún)Υ嫖覀兊臏y量結果。

  ?Visa是PyVISA庫,用來(lái)控制我們的儀器。

  ?Time是一個(gè)非常方便的庫,用于產(chǎn)生某些時(shí)間延遲。

  注意,引用的Numpy和Pandas庫被重命名為np和pd,以保持代碼整潔。本文中提及的所有庫要么已經(jīng)隨Python 安裝包提供,要么也很容易從在線(xiàn)軟件庫中安裝。

  第4至5行創(chuàng )建我們用來(lái)訪(fǎng)問(wèn)Chroma電子負載和Agilent DAQ的對象。這正是PyVISA的作用:我們只需調用instrument方法,并提供表示通信接口的字符串(GPIB)以及儀器在總線(xiàn)上的地址。

  第6行創(chuàng )建results數據框(dataframe),用來(lái)儲存測量結果。數據框是一種二維標簽數據結構,各列的數據類(lèi)型可以不同。使用數據框而不使用數組,允許我們通過(guò)容易記憶的字符串而不是數字來(lái)引用列,以及在數據本身中混合數字和文本。

  第7行創(chuàng )建一個(gè)實(shí)數數組,從0到20,步長(cháng)為2。這些數字表示以安培為單位的輸出電流值,在這些電流點(diǎn)測量VOUT。

  第8行用于構建“for”循環(huán)。注意,語(yǔ)法很容易理解:每次執行循環(huán)時(shí),創(chuàng )建一個(gè)load 變量,其值等于loads數組的新元素。當使用了數組的全部元素時(shí),循環(huán)結束。有意思的是,Python利用縮進(jìn)定義代碼的層次結構,而不依賴(lài)于任何類(lèi)型的括號。這樣能夠保持代碼的整潔和易讀性,非常有用。

  既然我們已經(jīng)定義了主循環(huán),就需要告訴儀器設置電流,然后讀取電壓,并保存結果。

  儀器通信及保存數據

  我們接下來(lái)看看第二部分的代碼:

  第9至10行配置相應的負載電流并打開(kāi)負載。只需要使用讀/寫(xiě)方法,并且知道儀器接受的命令串(可查閱儀器手冊),即可通過(guò)GPIB接口進(jìn)行通信。與其他編程語(yǔ)言類(lèi)似,%.2f為占位符,在實(shí)際運行時(shí)用變量load的值代替。也表示我們希望數據表示為帶兩位小數的實(shí)數。第11行產(chǎn)生1秒延遲,這對于確保儀器和電路達到穩態(tài)條件非常有用。

  第12行創(chuàng )建一個(gè)空對象(在Python中稱(chēng)為字典),用于暫存執行一次循環(huán)的結果。

  第13至16行用來(lái)測量輸出電壓和電流。第一條命令告訴儀器我們想要做什么(測量直流電壓,采用自動(dòng)變比)以及對應的采集通道。分別在通道101和102采集輸出電壓和電流。第二條命令讀取返回的結果并將其儲存在temp中。數據以字符串的形式返回,所以必須利用float函數將其轉換為實(shí)數。此外,由于DAQ測量的是電壓,我們需要將讀數與短路器電阻(0.004 Ω)相除,得到正確的電流值。

  看看使用Python和Pandas有條理地保存數據是多么簡(jiǎn)單:temp字典中的字段無(wú)需提前定義,并且使用具有含義的字符串進(jìn)行訪(fǎng)問(wèn)。無(wú)需記憶列號與數據之間的關(guān)系,而如果使用數組存儲數據的話(huà)則必須這么做。

  在第17行中,我們將字段附加到results數據框。注意,results也不需要進(jìn)行初始化;每次附加一個(gè)新行時(shí),將增加新字段至數據框。

  第18行可選,但在終端上打印當前電壓和電流值非常有用,尤其對于長(cháng)時(shí)間測量,可以作為確認應用程序仍然在運行的途徑,以及了解執行到了什么程度。

  在第19至20行,關(guān)閉負載,將數據保存到硬盤(pán)。對于后者,每個(gè)數據框對象都使用一種內置方法將數據保存到CSV文件。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: Python LabVIEW

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>