作者 | Stuart Cording(Elektor)
譯者 | 禾沐
測(cè)試有時(shí)是一件單調(diào)和枯燥的事情,尋找故障也十分具有挑戰(zhàn)性。那么,為什么不利用測(cè)試和測(cè)量?jī)x器上的通信接口來簡(jiǎn)化我們的測(cè)試過程呢?本文中我們將探索用Python進(jìn)行控制,不需要昂貴的軟件和授權(quán)的工具。
對(duì)于大多數(shù)開發(fā)者而言,測(cè)試和測(cè)量設(shè)備在工作臺(tái)上只是靜靜地在等待任務(wù)。不過你把設(shè)備轉(zhuǎn)到背面時(shí),往往會(huì)看到通信接口。只要有合適的軟件,我們就可以控制測(cè)量過程,并收集結(jié)果以供事后分析。尋找偶發(fā)事件和故障,或者在測(cè)試應(yīng)用的多個(gè)系統(tǒng)參數(shù)時(shí),這會(huì)非常有幫助。產(chǎn)品下線測(cè)試和元件的分級(jí)也可以用類似方式進(jìn)行自動(dòng)化測(cè)試。
1 實(shí)驗(yàn)室電源設(shè)備的遠(yuǎn)程控制
電源控制是一個(gè)很好的起點(diǎn)。大多數(shù)應(yīng)用的硬重置都需要一次電源重啟,更進(jìn)階的測(cè)試可能包括極端電源輸入,甚至是過電壓測(cè)試。這類測(cè)試在汽車中很常見,系統(tǒng)需要能承受400ms的87V輸入(ISO 7637-2)。另一種和電源相關(guān)的常見故障模式是電壓逐漸升高或降低。此時(shí)電路往往會(huì)進(jìn)入欠壓狀態(tài),不能自行恢復(fù)。最后,自動(dòng)測(cè)試系統(tǒng)中的設(shè)備應(yīng)該能夠設(shè)定電壓和最大電流,特別是系統(tǒng)會(huì)用于不同產(chǎn)品時(shí)。
近年來,實(shí)驗(yàn)室電源設(shè)備的價(jià)格大幅下降,面對(duì)大量低價(jià)的設(shè)備,知名廠商往往不愿意(或者無法)在價(jià)格上競(jìng)爭(zhēng),而是增加更多功能。我們不知道英國劍橋的Aim and Thurlby Thandar Instruments(Aim-TTi)是不是也是如此,但他們的產(chǎn)品確實(shí)無愧于公司口號(hào)“測(cè)得到的好價(jià)值”。在他們的直流電源產(chǎn)品中,入門級(jí)的EL-R系列(見圖1)值得關(guān)注,特別是如果你想要試著搭建自動(dòng)測(cè)試系統(tǒng)時(shí)。該系列的設(shè)備使用低噪音線性調(diào)節(jié)提供單、雙和三輸出,設(shè)備散熱不使用風(fēng)扇,輸出范圍是30到130W。設(shè)備上有一個(gè)或兩個(gè)LED顯示和模擬控制,一些型號(hào)還包括遙感終端。單輸出的EL302P(支持RS-232接口)和EL302P-USB(支持USB接口)是值得關(guān)注的兩個(gè)型號(hào),它們的輸出功率為60W,輸出電壓0-30V,電流0-2A。
圖1 EL-R系列直流電源通過串行接口(RS-232或通過USB)實(shí)現(xiàn)的虛擬COM)支持測(cè)試自動(dòng)化(來源:Aim-TTi)
這兩個(gè)型號(hào)的設(shè)備包括軟件驅(qū)動(dòng),廠家網(wǎng)站上還提供PSU Sequencer工具,幫助用戶通過手動(dòng)或者自動(dòng)的方式逐步調(diào)整電壓/電流設(shè)定(見圖2)。軟件還可以從數(shù)據(jù)表中引入預(yù)先準(zhǔn)備好的序列。
圖2:通過Aim-TTi的PSU Sequencer軟件可以簡(jiǎn)單地進(jìn)行電壓/電流的重復(fù)設(shè)定(來源:Aim-TTi)
2 用Python進(jìn)行電源控制
根據(jù)你的測(cè)試需要開發(fā)控制軟件也不困難。設(shè)備的硬件RS-232接口的波特率為600到9600,USB接口則會(huì)以一個(gè)虛擬COM口的形式出現(xiàn)。用戶手冊(cè)中給出了全部的命令,稍做規(guī)劃就可以開發(fā)一個(gè)將每個(gè)命令單獨(dú)包裝為函數(shù)/方法的軟件庫。一種方法是運(yùn)用Arduino和一個(gè)RS-232收發(fā)器來控制電源供應(yīng),這種做法還有可以和其他測(cè)試功能結(jié)合的優(yōu)勢(shì),例如信號(hào)傳輸中繼或是捕捉模擬/數(shù)字信號(hào)。
或者,Python提供pySerial模塊,利用它可以很容易地編寫一個(gè)Python命令接口模塊(見例1),實(shí)現(xiàn)自動(dòng)控制機(jī)制。對(duì)文檔稍加研究,還可以實(shí)現(xiàn)TCP/IP到串口的接口;實(shí)驗(yàn)性的RFC2217備忘錄中定義了這一功能,讓用戶可以在遠(yuǎn)程PC上配置串口接口并實(shí)現(xiàn)通信。
例1:通過pySerial獲取PSU ID的Python代碼
3 示波器和自動(dòng)化
示波器也能夠遠(yuǎn)程控制。示波器有許多功能,從捕獲模擬/數(shù)字信號(hào)到快速傅里葉變換,我們可以在多種自動(dòng)測(cè)試中使用示波器。例如,一些故障需要一系列復(fù)雜事件以特定順序出現(xiàn)才會(huì)發(fā)生。如果你的團(tuán)隊(duì)發(fā)現(xiàn)了觸發(fā)故障的方法,下一步就是配置示波器捕獲相關(guān)的信號(hào),幫助尋找故障的原因。
Arduino和樹莓派等開發(fā)板可以通過模擬輸出和數(shù)字信號(hào)很快變成觸發(fā)故障的工具,需要時(shí)還可以增加信號(hào)中繼或是場(chǎng)效應(yīng)管。這些開發(fā)板還能向示波器提供準(zhǔn)確的觸發(fā)信號(hào),幫助采集分析故障所需的數(shù)據(jù)。
大多數(shù)示波器上有USB和LAN接口,但是一些型號(hào)只支持私有軟件或是只能從瀏覽器上進(jìn)行配置。好消息是,我們已經(jīng)有了一個(gè)基于USB的測(cè)試和測(cè)量類規(guī)格(USBTMC)。類似于存儲(chǔ)設(shè)備類(閃存盤等)和人機(jī)接口設(shè)備類(鍵盤、鼠標(biāo)等),這一USB類預(yù)先定義好了與測(cè)試和測(cè)量設(shè)備交互的命令。
一些示波器支持USBTMC,像是200MHz、2GSa/s(GSa/s:每秒千兆采樣)的B&K Precision 2567B混合信號(hào)示波器(見圖3)。該設(shè)備上搭載4個(gè)模擬頻道,有一個(gè)16頻道的數(shù)字接口,內(nèi)置50MHz隨機(jī)波形產(chǎn)生器,支持高級(jí)觸發(fā)方式。雖然它10.1寸的觸摸屏讓手動(dòng)配置變得十分簡(jiǎn)單,我們同樣可以很容易地通過USB進(jìn)行配置。
圖3 B&K Precision 2560B系列混合信號(hào)示波器的USB接口兼容USBTMC規(guī)格,
可以很容易地用Python進(jìn)行自動(dòng)化(來源:B&K Precision)
4 示波器的遠(yuǎn)程配置
多虧了Alex Forencich在GitHub上的USBTMC開源項(xiàng)目,Python是進(jìn)行示波器遠(yuǎn)程配置的最佳編程語言。在Linux上使用這一模塊需要適當(dāng)?shù)臋?quán)限,在Windows上則需要先安裝PyUSB和libusb。
首先,你需要指定用于識(shí)別USB設(shè)備的廠商(VID)和產(chǎn)品(PID)信息。在Linux上,你可以連接你的設(shè)備,然后在命令行運(yùn)行l(wèi)susb,命令的結(jié)果會(huì)包括這些信息。在Windows上,你可以從設(shè)備管理器的設(shè)備屬性中找到必要的信息。在兩種系統(tǒng)中VID和PID都應(yīng)該是16位的16進(jìn)制數(shù)值。
然后,需要在Python代碼中引入usbtmc模塊,并使用其中的接口(API)。代碼基本上就是在屏幕上打印文字,并讀取鍵盤輸入。USBTMC的本質(zhì)就是和測(cè)試/測(cè)量?jī)x器進(jìn)行通信的包裝層,控制命令是根據(jù)示波器的編程指南實(shí)現(xiàn)的ASCII字符串,其中包含設(shè)備支持的選項(xiàng)。如果設(shè)備支持,也可以使用VISA資源字符串。
設(shè)備的VID和PID是針對(duì)產(chǎn)品,而不是特定單元的。因此,如果有兩臺(tái)以上同型設(shè)備,可以用它們的序列號(hào)作為第三個(gè)參數(shù)。一般可以從設(shè)備的標(biāo)簽上獲得序列號(hào),或者通過“*IDN?”命令查詢(見例2)。
例2:通過usbtmc控制B&K Precision示波器的Python代碼
示波器間的主要區(qū)別是帶寬、取樣速度和存儲(chǔ)容量。有時(shí)候,一些型號(hào)上會(huì)搭載實(shí)用的小功能。B&K系列支持矮脈沖觸發(fā)(見圖4),即一個(gè)信號(hào)跨過一個(gè)闕值,但是并未達(dá)到另一個(gè)闕值(例如,負(fù)矮脈沖跨過了較高的電平,而沒有越過較低的電平)。分析故障時(shí),設(shè)備上的小功能有時(shí)會(huì)非常有幫助。
圖4 矮脈沖觸發(fā)可以幫助尋找沒有完全升起或降低的脈沖(來源:B&K Precision)
5 無顯示的測(cè)試設(shè)備
Red Pitaya的測(cè)試設(shè)備讓我們產(chǎn)生了疑問,每個(gè)工具都需要自己的顯示器嗎?強(qiáng)大的FPGA和以太網(wǎng)接口能夠讓你的PC/筆記本電腦成為用戶界面。Liquid Instruments的Moku:Lab也采用了類似的思路,只有餐盤大小的設(shè)備上有一系列模擬輸入和輸出接口,讓Moku:Lab成為了盒子里的實(shí)驗(yàn)室。
Moku:Lab的正面有四個(gè)BNC接頭(見圖5),右邊的一對(duì)提供模擬輸出,支持1GSa/s(每秒10億)采樣率,分辨率為16位,帶寬大于300MHz(3dB衰減)。左邊的一對(duì)是模擬輸入,帶寬為200MHz(3dB衰減),輸入阻抗50Ω,12位分辨率下采樣率為每頻道500MSa/s(每秒5億)。設(shè)備內(nèi)部的時(shí)基精度好于500ppb。設(shè)備支持觸發(fā)輸入,提供同步多個(gè)單元用的接頭。有線連接通過以太網(wǎng)和USB接口實(shí)現(xiàn),第二個(gè)USB口還可以用來給平板電腦充電。最后,還有一個(gè)SD卡槽和直流電源接口。
圖5 餐盤大小的Moku:Lab是一臺(tái)12合一的儀器,可以通過Python API進(jìn)行配置(來源:Liquid Instruments)
盡管Moku:Lab上搭載了有線接口,它的設(shè)計(jì)主要是通過Wi-Fi(802.11b/g/n)配合iPad上配套的應(yīng)用使用。在應(yīng)用的用戶界面上可以選擇12種不同的儀器,從我們熟悉的示波器和頻譜分析器,到少見的PID控制器和激光鎖盒。設(shè)備還可以用作數(shù)據(jù)記錄儀,采樣率不到100kSa/s(每秒10萬)時(shí),存儲(chǔ)上限由插入的SD卡決定(即直接寫入SD卡);采樣率較高時(shí),可以以最高1MSa/s(每秒百萬)的速率在內(nèi)部存儲(chǔ)中進(jìn)行記錄。
與其他現(xiàn)代的工具類似,Moku:Lab提供Python API,支持MATLAB和LABVIEW,并附帶數(shù)個(gè)樣例(例3)。設(shè)備可以很快地整合到一個(gè)自動(dòng)測(cè)試系統(tǒng)中,也非常適合射頻設(shè)備的大規(guī)模測(cè)試和元件的分級(jí)。
例3:在Moku:Lab上生成隨機(jī)波形的Python代碼
6 節(jié)省時(shí)間、提升準(zhǔn)確性
在復(fù)雜系統(tǒng)中,測(cè)試設(shè)備就是工程師的眼睛,但它們也不是萬能的。偶發(fā)事件很難進(jìn)行跟蹤,只有知道故障成因時(shí)才能提出解決方案。雖然復(fù)雜度各不相同,如今很多測(cè)試和測(cè)量?jī)x器都提供編程API,而易于學(xué)習(xí)的Python往往是首選的編程語言。如果你想要的測(cè)量場(chǎng)景很難觸發(fā),需要多組操作來完成一輪測(cè)試,或者需要大量重復(fù)操作,那么實(shí)現(xiàn)自動(dòng)化是解決之道,也許并沒有你想的那么困難。
審核編輯:湯梓紅
-
led
+關(guān)注
關(guān)注
242文章
23370瀏覽量
663280 -
編程
+關(guān)注
關(guān)注
88文章
3638瀏覽量
93997 -
測(cè)量?jī)x器
+關(guān)注
關(guān)注
3文章
807瀏覽量
42400 -
電源設(shè)備
+關(guān)注
關(guān)注
0文章
96瀏覽量
11927
原文標(biāo)題:通過編程實(shí)現(xiàn)測(cè)試和測(cè)量的自動(dòng)化
文章出處:【微信號(hào):麥克泰技術(shù),微信公眾號(hào):麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
【OK210申請(qǐng)】與功率測(cè)試儀串行實(shí)現(xiàn)自動(dòng)化數(shù)據(jù)傳輸
開關(guān)電源自動(dòng)化測(cè)試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
如何對(duì)用戶界面進(jìn)行自動(dòng)化測(cè)試
納米軟件案例之電阻自動(dòng)化測(cè)試系統(tǒng)
自動(dòng)化測(cè)試系統(tǒng)問答
LabVIEW與Tektronix示波器實(shí)現(xiàn)電源測(cè)試自動(dòng)化
ATE自動(dòng)化測(cè)試系統(tǒng)是什么_ATE自動(dòng)化測(cè)試系統(tǒng)介紹
怎么實(shí)現(xiàn)儀器的自動(dòng)化測(cè)試和自動(dòng)化計(jì)量
什么是自動(dòng)化測(cè)試框架
接口自動(dòng)化測(cè)試流程講解 企業(yè)接口自動(dòng)化測(cè)試步驟
![接口<b class='flag-5'>自動(dòng)化</b><b class='flag-5'>測(cè)試</b>流程講解 企業(yè)接口<b class='flag-5'>自動(dòng)化</b><b class='flag-5'>測(cè)試</b>步驟](https://file1.elecfans.com/web2/M00/8E/36/wKgaomTDZsaAQyQRAAAHtj9GTJg242.png)
基于應(yīng)用程序編程接口(API)的自動(dòng)化測(cè)試(上)
電源測(cè)試怎么自動(dòng)化?電源模塊自動(dòng)化測(cè)試系統(tǒng)如何實(shí)現(xiàn)?
![電源<b class='flag-5'>測(cè)試</b>怎么<b class='flag-5'>自動(dòng)化</b>?電源模塊<b class='flag-5'>自動(dòng)化</b><b class='flag-5'>測(cè)試</b>系統(tǒng)如何<b class='flag-5'>實(shí)現(xiàn)</b>?](https://file1.elecfans.com/web2/M00/B2/7A/wKgaomVtfdmAa3b7AACWuOQ9aSo399.png)
如何實(shí)現(xiàn)PLC的自動(dòng)化控制邏輯
開關(guān)電源自動(dòng)化測(cè)試設(shè)備:如何實(shí)現(xiàn)自動(dòng)化測(cè)試?
![開關(guān)電源<b class='flag-5'>自動(dòng)化</b><b class='flag-5'>測(cè)試</b>設(shè)備:如何<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>自動(dòng)化</b><b class='flag-5'>測(cè)試</b>?](https://file1.elecfans.com/web2/M00/B7/6D/wKgaomWD-wWAI5dgAAR4rXQbF-s975.png)
通用自動(dòng)化測(cè)試軟件 - TAE
![通用<b class='flag-5'>自動(dòng)化</b><b class='flag-5'>測(cè)試</b>軟件 - TAE](https://file1.elecfans.com/web3/M00/04/8A/wKgZPGd2JdSAOEfOAACF3V0L3w4860.png)
評(píng)論