Förenklat test
Automation med
tm_devices och Python
HUR MAN GÖR
Förenkla testautomatisering med tm_-enheter och Python
HUR MAN GÖR
Förenkla testautomatisering med tm_devices och Python
Ingenjörer i många branscher använder automation för att utöka kapaciteten hos sina testinstrument. Många ingenjörer väljer det fria programmeringsspråket Python för att åstadkomma detta. Det finns många betydande fördelartagsom gör Python till ett bra programmeringsspråk för automatisering:
- Mångsidighet
- Lätt att lära ut och lära
- Kodens läsbarhet
- Allmänt tillgängliga kunskapsbaser och moduler
Det finns två huvudsakliga användningsfall för automatisering:
- Rutiner som efterliknar mänskligt beteende för att automatisera frontpanelen och spara tid, t.ex. automatisk efterlevnadstestning.
Istället för att sätta sig vid skopet, lägga till lämpliga mätningar och skriva ner resultaten varje gång du behöver testa en ny del, utvecklar ingenjören ett skript som gör allt detta och visar resultatet. - Användningar som utökar instrumentets funktionalitet; till exempelample: mätloggning, validering eller kvalitetssäkring.
Automatisering tillåter ingenjören att utföra komplexa tester utan många av nackdelarna med dessa tester. Det finns inget behov för en operatör att ställa in skopet och manuellt registrera resultaten, och testet kan utföras på samma sätt varje gång.
Den här instruktionsguiden kommer att täcka vad du behöver för att komma igång med att programmera scopes i Python, inklusive grunderna för programmatiska gränssnitt och hur du laddar ner och kör ett example.
Vad är ett programmatiskt gränssnitt?
Ett programmatiskt gränssnitt (PI) är en gräns eller en uppsättning gränser mellan två datorsystem som kan programmeras för att utföra specifika beteenden. För våra syften är det bryggan mellan datorn som kör varje del av Tektronix-testutrustningen och applikationen som skrivs av en slutanvändare. För att begränsa detta ytterligare är det ett soft-kommando som kan skickas på distans till ett instrument som sedan bearbetar dessa kommandon och utför en motsvarande uppgift. PI-stacken (Figur 1) visar informationsflödet från värdstyrenheten ner till instrumentet. Applikationskoden som skrivits av slutanvändaren definierar beteendet för målinstrumentet. Detta skrivs vanligtvis i en av utvecklingsplattformarna i branschen som Python, MATLAB, LabVIEW, C++ eller C#. Denna applikation skickar data med standardkommandon för programmerbar instrumentering (SCPI), som är en standard som stöds av de flesta test- och mätutrustningar. SCPI-kommandon skickas ofta genom ett VISA-lager (Virtual Instrument Software Architecture), som används för att underlätta överföringen av data genom att inkludera ytterligare robusthet (t.ex. felkontroll) i kommunikationsprotokollet. I vissa fall kan applikationer anropa en drivrutin som sedan skickar ett eller flera SCPI-kommandon till VISA-lagret.Figur 1. Det programmatiska gränssnittet (PI)-stacken visar informationsflödet mellan en värdstyrenhet och instrument.
Vad är paketet tm_devices?
tm_devices är ett enhetshanteringspaket utvecklat av Tektronix som innehåller en mängd kommandon och funktioner för att hjälpa användare att enkelt automatisera tester på Tektronix- och Keithley-produkter med hjälp av programmeringsspråket Python. Den kan användas i de mest populära IDE:erna för Python och stöder kodkompletteringshjälpmedel. Detta paket gör kodning och testautomatisering enkel och lätt för ingenjörer med mjukvarukunskaper på alla nivåer. Installationen är också enkel och använder pip, Pythons pakethanteringssystem.
Ställa in din miljö
Det här avsnittet guidar dig genom förutsättningarna och installationerna för att förbereda dig för att göra utvecklingsarbete med tm_devices. Den innehåller också instruktioner som stöder virtuella miljöer i Python (venvs) för att göra dina projekt lättare att hantera och underhålla, speciellt om du bara testar det här paketet innan du börjar använda det.
Notera: Om du har en miljö utan direkt tillgång till internet måste du ändra dina steg med hjälp av kommandona i bilagan. Om du har problem får du gärna skriva i github-diskussioner för hjälp.
Installation och förutsättningar överview
- Installera Python
a. Python ≥ 3.8 - PyCharm – PyCharm Installation, Starta ett projekt och tm_devices installation
- VSCode – VSCode Installation, Starta ett projekt och tm_devices installation
PyCharm Community (gratis) utgåva
PyCharm är en populär Python IDE som används av mjukvaruutvecklare i alla branscher. PyCharm har en integrerad enhetstestare som tillåter användare att köra tester med file, klass, metod eller alla tester i en mapp. Liksom de flesta moderna IDE:er har den en form av kodkomplettering som påskyndar din utveckling enormt jämfört med en grundläggande textredigerare.
Vi kommer att gå igenom installationen av PyCharm community edition (gratis), följt av att installera tm_devices i IDE och ställa in en virtuell miljö att utvecklas i.
- Gå till https://www.jetbrains.com/pycharm/
- Scrolla förbi PyCharm Professional till PyCharm Community Edition, klicka på ladda ner
- Du bör kunna fortsätta med bara standardinstallationsstegen. Vi kräver inget unikt.
- Välkommen till PyCharm!
- Nu måste du skapa ett nytt projekt och se till att skapa en virtuell miljö. Klicka på "Nytt projekt"
- Bekräfta sökväg för projektet, se till att "Virtualenv" är valt
- Öppna en terminal. Om din view inkluderar inte den märkta knappen längst ned, leta efter detta:
- Bekräfta att den virtuella miljön har konfigurerats genom att kontrollera (venv) före prompten i din terminal
- Installera drivrutinen från terminalen
Typ: pip install tm_devices - Din terminal bör vara felfri! Lycka till med hackandet!
Visual Studio Code
Visual Studio Code är en annan populär gratis IDE som mjukvaruutvecklare inom alla branscher använder. Det är bra för de flesta språk och har tillägg för de flesta språk som gör kodning i denna IDE mycket bekväm och effektiv. Visual Studio Code tillhandahåller IntelliSense som är ett extremt användbart verktyg vid utveckling eftersom det hjälper till med kodkomplettering, parameterinformation och annan information om objekt och klasser. Bekvämt stöder tm_devices kodkomplettering som beskriver kommandoträdet för objekten och klasserna.
Vi har en utmärkt guide om installation av både Python och Visual Studio Code, inklusive information om installation av virtuell miljö här.
Example Kod
I det här avsnittet kommer vi att gå igenom delar av en enkel kod example och markera några nödvändiga komponenter för att använda tm_-enheter effektivt.
ImporterDessa två rader är avgörande för effektiv användning av tm_devices. På första raden importerar vi DeviceManager. Detta kommer att hantera anslutning och bortkoppling av flera enhetsklasser.
På den andra raden importerar vi en specifik drivrutin, i det här fallet MSO5B.
Vi ställer in en kontexthanterare med DeviceManager:Och sedan när vi använder enhetshanteraren och drivrutinen tillsammans:
Vi kan instansiera ett instrument med en specifik kommandouppsättning som matchar dess modell. Ange bara ditt instruments IP-adress (andra VISA-adresser fungerar också).
Med dessa fyra rader klara kan vi börja skriva meningsfull och specifik automatisering för MSO5B!
Kodsnuttar
Låt oss ta en titt på några enkla åtgärder –
Ställ in triggertypen på EdgeSå här lägger du till och frågar en topp-till-topp-mätning på CH1:
Om du ville ta en amplitudmätning på CH2:
Använda IntelliSense/Code Completion
IntelliSense – Microsofts namn för Code Completion är en mycket kraftfull funktion hos IDE:er som vi har försökt utnyttja så mycket som möjligt.
En av kärnbarriärerna för automatisering med test- och mätanordningar är SCPI-kommandouppsättningen. Det är en daterad struktur med syntax som inte har allmänt stöd i utvecklingsgemenskapen.
Vad vi har gjort med tm_devices är att skapa en uppsättning Python-kommandon för varje SCPI-kommando. Detta gjorde det möjligt för oss att generera Python-kod från befintlig kommandosyntax för att undvika manuell utveckling av drivrutinerna, samt skapa en struktur som är bekant för befintliga SCPI-användare. Den mappas också till koden på lägre nivå som kan kräva avsiktlig felsökning under ditt programskapande. Strukturen för Python-kommandona efterliknar SCPI-kommandostrukturen (eller i vissa Keithley-fall TSP)-kommandonstrukturen så om du är bekant med SCPI kommer du att vara bekant med dessa.
Det här är ett exampläs av hur IntelliSense visar alla kommandon som är tillgängliga med det tidigare inskrivna kommandot:
I den rullningsbara listan som visas efter punkten på scope kan vi se en alfabetisk lista över scope-kommandokategorier:Genom att välja afg kan vi sedan se en lista över AFG-kategorier:
Sista kommando skrivet med hjälp av IntelliSense:
Docstring Hjälp
När du kodar, eller när du läser någon annans kod, kan du hålla muspekaren över olika delar av syntaxen för att få den nivåns specifika hjälpdokumentation. Ju närmare du är den fullständiga kommandosyntaxen desto mer specifik blir den.Beroende på dina IDE-förhållanden kan du visa både IntelliSense och docstring-hjälp samtidigt.
Med den här guiden har du sett några av fördelarna med Teks python-drivrutinpaket tm_devices och kan starta din automatiseringsresa. Med den enkla installationen, kodkompletteringen och den inbyggda hjälpen kommer du att kunna lära dig utan att lämna din IDE, snabba upp din utvecklingstid och kod med högre tillförsikt.
Det finns bidragsriktlinjer i Github-repo om du vill förbättra paketet. Det finns gott om mer avancerade exampfiler som är markerade i dokumentationen och i paketets innehåll i examples mapp.
Extra resurser
tm_devices · PyPI – Paketdrivrutinsnedladdning och information
tm_devices Github – Källkod, problemspårning, bidrag
tm_devices Github – Onlinedokumentation
Felsökning
Att uppgradera pip är vanligtvis ett bra första steg till felsökning:
I din terminal skriv: Python.exe -m pip install -upgrade pip
Fel: whl ser ut som en filenamn, men file existerar inte ELLER .whl är inte ett hjul på denna plattform.
Lösning: Pip-installationshjulet så att det känner igen file formatera.
I din terminaltyp: pipinstallationshjul
Om du behöver installera hjulet offline kan du följa liknande instruktioner som Appendix A, men det kräver tar.gz-nedladdningen istället för .whl file.
Bilaga A – Offlineinstallation av tm_devices
- På en dator med internet laddar du ner paketet tillsammans med alla beroenden till den angivna sökvägen med:
pip nedladdning –dest hjulsetuptools tm_devices - Kopiera files till din dator som inte har tillgång till internet
- Följ sedan instruktionerna från huvudguiden för vilken IDE du än använder men byt ut installationskommandot mot följande:
pip install –no-index –find-links files> tm_devices
Kontaktinformation:
Australien 1 800 709 465
Österrike* 00800 2255 4835
Balkan, Israel, Sydafrika och andra ISE-länder +41 52 675 3777
Belgien* 00800 2255 4835
Brasilien +55 (11) 3530-8901
Kanada 1 800 833 9200
Centrala Östeuropa / Baltikum +41 52 675 3777
Centraleuropa / Grekland +41 52 675 3777
Danmark +45 80 88 1401
Finland +41 52 675 3777
Frankrike* 00800 2255 4835
Tyskland* 00800 2255 4835
Hong Kong 400 820 5835
Indien 000 800 650 1835
Indonesien 007 803 601 5249
Italien 00800 2255 4835
Japan 81 (3) 6714 3086
Luxemburg +41 52 675 3777
Malaysia 1 800 22 55835
Mexiko, Central-/Sydamerika och Karibien 52 (55) 88 69 35 25
Mellanöstern, Asien och Nordafrika +41 52 675 3777
Nederländerna* 00800 2255 4835
Nya Zeeland 0800 800 238
Norge 800 16098
Folkrepubliken Kina 400 820 5835
Filippinerna 1 800 1601 0077
Polen +41 52 675 3777
Portugal 80 08
Republiken Korea +82 2 565 1455
Ryssland / CIS +7 (495) 6647564
Singapore 800 6011 473
Sydafrika +41 52 675 3777
Spanien* 00800 2255 4835
Sverige* 00800 2255 4835
Schweiz* 00800 2255 4835
Taiwan 886 (2) 2656 6688
Thailand 1 800 011 931
Storbritannien/Irland* 00800 2255 4835
USA 1 800 833 9200
Vietnam 12060128
* Europeiskt avgiftsfritt nummer. Om inte
tillgänglig, ring: +41 52 675 3777
Rev. 02.2022
Hitta mer värdefulla resurser på TEK.COM
Copyright © Tektronix. Alla rättigheter förbehållna. Tektronix produkter omfattas av amerikanska och utländska patent, utfärdade och väntande. Informationen i denna publikation ersätter den i allt tidigare publicerat material. Specifikationer och prisändringsprivilegier reserverade. TEKTRONIX och TEK är registrerade varumärken som tillhör Tektronix, Inc. Alla andra handelsnamn som refereras är servicemärken, varumärken eller registrerade varumärken som tillhör respektive företag.
052124 SBG 46W-74037-1
Dokument/resurser
![]() |
Tektronix förenklar testautomatisering med tm_-enheter och Python [pdf] Användarhandbok 48W-73878-1, förenkling av testautomation med tm_-enheter och Python, testautomatisering med tm_-enheter och Python, automatisering med tm_-enheter och Python, tm_-enheter och Python, enheter och Python, Python |