LabVIEW
| LabVIEW
| |
|---|---|
|
| |
| Grundlæggende data
| |
| Udvikler | Nationale instrumenter |
| Udgivelsesår | 1986 |
| Aktuel version | LabVIEW 2020 (maj 2020) |
| operativ system | macOS , Windows , Linux |
| kategori | programmeringssprog |
| Licens | proprietære |
| Tysktalende | Ja |
| LabVIEW | |
LabVIEW er et grafisk programmeringssystem fra National Instruments . Den akronym står for ” Lab talekunst V irtual jeg nstrumentation E ngineering W orkbench”.
Den første version dukkede op i 1986 til Macintosh- computere. I dag er udviklingsmiljøet også tilgængeligt for Windows og Linux . Tilsvarende udviklede Hewlett-Packard (nu Agilent ) det visuelle programmeringssprog VEE . De vigtigste anvendelsesområder for LabVIEW er måle- , kontrol- og automatiseringsteknologi . Programmeringen foregår med et grafisk programmeringssprog, kaldet "G" , i henhold til datastrømningsmodellen . Fokus er på dataindsamling og -behandling. LabVIEW-programmer er kendt som Virtual Instruments eller simpelthen VI'er. De består af to komponenter: frontpanelet indeholder brugergrænsefladen , og blokdiagrammet indeholder den grafiske programkode. Dette behandles ikke af en tolk , men kompileres . Dette gør ydeevnen sammenlignelig med andre sprog på højt niveau . LabVIEW bruger de samme biblioteker og dataopsamlingsmoduler som LabWindows / CVI , det integrerede udviklingsmiljø fra National Instruments, og er derfor kompatibelt med LabWindows / CVI. Funktionsbiblioteker er også tilgængelige til mange komplekse matematiske opgaver. I lighed med Matlab dækker LabVIEW også områderne SP-kontrol og fleksibel testautomatisering.
Programmeringsmetode
Funktionsblokke kaldes Virtual Instruments (VIs) i LabVIEW, ligesom komplette programmer. Dette skyldes, at hvert program i princippet kan bruges som et underprogram (SubVI) i et andet, eller at hver SubVI også kan køre uafhængigt. På grund af datastrømskonceptet var rekursive opkald generelt ikke mulige op til version 8.6 . Med yderligere indsats kunne rekursioner også implementeres. Fra version 9.0 kan en invariant VI indeholde sig selv som en subVI og dermed kalde den rekursivt.
Programmøren forbinder VI'er med forbindelsesledninger (ledninger) og definerer således datastrømmen. Hver VI kan have ind- og udgange. En VI begynder at udføre, når den har alle sine inputdata; resultaterne er kun tilgængelige ved output, når hele subrutinen er behandlet. På denne måde er behandlingssekvensen af trinene defineret af dataafhængigheder. Der er ingen foruddefineret sekvens (f.eks. "Fra højre til venstre").
Hvis en SubVI ikke har nogen input, udføres den, når programmet starter. Hvis den ikke har nogen output, kasseres resultatdataene eller "behandles" på en anden måde (f.eks. Skrivning til harddisk eller netværk , output til perifere enheder ). På samme måde kan en SubVI uden input modtage data fra perifere enheder eller generere dem selv (f.eks. Ved hjælp af en tilfældig generator ).
SubVI'er kan indlejres så dybt, som du vil. Mange af LabVIEWs proprietære funktioner er i sig selv normale VI'er, som programmøren kan redigere (selvom dette normalt ikke anbefales). I sidste ende er alle VI'er baseret på et sæt grundlæggende funktioner, kaldet primitiver, der ikke kan åbnes som VI'er.
Mange VI'er og funktioner i LabVIEW er polymorfe ; H. deres funktionalitet tilpasser sig den type data, der overføres. For eksempel kan funktionen "Opret matrix" bruges til at oprette ethvert felt, dvs. H. Strenge, heltal eller arrays og klynger. Du kan også oprette dine egne polymorfe VI'er. I sidste ende er dette en samling af flere VI'er med forskellige datatyper ved input og output.
Datakilder og datasænk kan linkes til indikatorer og kontroller på frontpanelet. Så z. B. et talindgang med en drejeknap og et output fra en boolsk variabel med en lysemitterende diode kan implementeres.
I meget store og omfattende projekter, som i andre programmeringssprog, er det vigtigt at bruge en gennemtænkt struktur fra starten og at modulere koden. Dette understøttes af den eksisterende projektleder (fra V8.0). Dette gør det lettere at administrere et stort antal VI'er og eksterne filer. Den versionering der er designet hermed lettere. En stor innovation (fra og med V8.20) er evnen til at programmere på en objektorienteret måde. Klasser og attributter samt deres metoder kan også nedarves .
LabVIEW Robotics 2009 inkluderer værktøjer til design af et robotsystem. En del af softwarepakken er Robotics Module, som omfatter et omfattende robotbibliotek med forbindelsesmuligheder til standardrobotsensorer og aktuatorer, grundlæggende algoritmer til intelligent drift samt opfattelses- og motorstyringsfunktioner til robotter og autonome køretøjer.
LabVIEW-, TCP / IP- og XML-webtjenester
TCP / IP-stik sender karakterstrenge i LAN og Internet. De bruges for eksempel til HTTP-protokollen, der viser websteder i webbrowseren. LabVIEW gør brug af TCP / IP-stik i LAN til en række formål:
- Funktioner under datakommunikation → protokoller → TCP .
- Inkluder webbrowser OLE på frontpanelet.
- Aflæsning af målte værdier, f.eks. B. fra DMM- og NWA- enheder (se Measuring and Automation Explorer).
- Fjernbetjening via fjernbetjening.
- XML-webservice.
På den ene side er fjernbetjeningen via fjernbetjeningen LabVIEW-specifik. En bruger kan oprette forbindelse til et åbent frontpanel via webbrowseren (IE foretrækkes understøttet). Selve frontpanelet giver derefter kontrol. Den tilsigtede fordel er adgang via en anden pc. Dog skal et vindue være åbent på kilde-pc'en. NI kræver også yderligere licensafgifter for brugernumre, der er større end en.
På den anden side er XML-webtjenester, som du selv kan oprette, LabVIEW-specifikke. De er kun inkluderet i den fulde version til en pris på omkring € 3300. Disse webtjenester kræver ikke et GUI-vindue på værts-pc'en. Et eksempel på howto viser, hvordan brugeren sender en HTTP GET-anmodning med to parametre til tjenesten. Parametrene findes i URL'en. Tjenesten kører en VI og svarer med en XML-fil. URL-parametrene oprettes i tjenesten, der skal implementeres som kontrolelementer i VI - alle displayelementer i VI vises med deres værdier i den returnerede XML-fil. En webservice kunne derfor bruges til at styre aktuatorer og registrere målte værdier. Med webservicen kan du implementere dine egne grafiske grænseflader og faktisk bruge ethvert klientoperativsystem. Batchskripter til lange testkørsler ville også være mulige.
For implicit at levere en TCP-servicestik er der mulighed for at vedhæfte den til en eksekverbar EXE via projekttræstrukturen. Hvis du starter et program med Remote Panel, er stikkontakten tilgængelig ved kørsel.
Den anden måde at implementere den på er at bruge NI-webserveren og dens dokumentrodkatalog, f.eks. F.eks. Under C: \ Program Files (x86) \ National Instruments \ Shared \ NI WebServer \ www . Tjenesten vises i servicekonsollen under NI APPLICATION WEBSERVER og overvåger port 8080. Hvis serveren bruges på en vært med LabVIEW-udviklingsmiljøet, kan tjenesten leveres via projekttræstrukturen. Hvis du bruger LabVIEW-runtime-miljøet på en anden vært, kan du levere tjenesten via et installationsprogram, du opretter på udviklingssystemet ved hjælp af projekttræstrukturen.
fordele
- En vigtig konsekvens af grafisk programmering med LabVIEW er den lethed, hvormed parallelle sekvenser kan programmeres i LabVIEW. Det er tilstrækkeligt at placere to subVI'er ved siden af hinanden uden datavhengighed for at behandle dem samtidigt med multithreading . I lighed med tekstbaserede programmeringssystemer skal du dog være opmærksom på mulige løbsbetingelser og om nødvendigt blokere ressourcer . Til synkronisering og kommunikation mellem flere tråde er forskellige muligheder tilgængelige (f.eks. Som semaforer , alarmer, køer ).
- LabVIEW frontpanelet er et meget praktisk middel til at oprette programmer med en god grafisk brugergrænseflade. For alt programmeringsarbejde i LabVIEW behøver programmøren ikke at indtaste nogen tekst undtagen etiketter på designelementer.
- Den grafiske gengivelse af programsekvensen øger læsbarheden betydeligt, i det mindste for projekter, der ikke er for omfattende. Især forskere og teknikere forstår normalt programmelogikken meget hurtigt og kan bruge den til at tilpasse software til deres specifikke behov.
- De omfattende funktionsbiblioteker, der leveres afhængigt af licensen, dækker i vid udstrækning dataanalyse og matematik. Men styringen af yderligere (også eksterne) (måle) enheder og systemfunktioner er godt løst.
- De understøttede kommunikationsprotokoller og forbindelsesteknologier gør det muligt at kontrollere og bruge enheder, der er langt væk (f.eks. På utilgængelige steder eller i andre lande). Blandt andet bruges TCP her.
- LabVIEW version 8.6.1 og nyere muliggør også programmering af mikrokontrollere og DSP'er, der er indeholdt i måleenheder produceret af National Instruments. Det understøtter også nogle operativsystemer i realtid .
- Fra version 2009 tilbyder LabVIEW muligheden for parallel programmering af multicore-processorer og FPGA'er og adgang til trådløse teknologier.
ulempe
Ud over de nævnte fordele har grafisk programmering også ulemper i forhold til tekstbaseret programmering:
- LabVIEW-programmer kan kun redigeres med det originale LabVIEW-udviklingsmiljø, hvis funktion du er bundet til. Funktioner fra dynamiske biblioteker eller ActiveX- objekter kan dog bruges. Platformens uafhængighed skyldes forhindringer i designet af brugergrænseflader, så Windows- genvejstaster understøttes ikke, og opførelsen af acceleratortaster svarer ikke nøjagtigt til operativsystemets opførsel (her: fokus tab). Den Unicode støtte er utilstrækkelig.
- Eksekverbare LabVIEW-programmer kan oprettes af udviklingssystemet, men kræver installation af et runtime-miljø på målsystemet (sammenlignes med installationen af .NET framework til. NET-applikationer). Når du bruger visse yderligere moduler, f.eks B. IMAQ Vision , der kræves også en gebyrbaseret licens for hver målplatform .
- National Instruments forsøger at efterligne principperne for moderne objektorientering med nyere versioner af LabVIEW, men indtil videre har dette kun været utilstrækkeligt. Derudover viser programmeringen mod store eksisterende klassehierarkier såsom Microsoft .NET- rammen grænserne for håndtering af grafiske adgangsknudepunkter - med tekstbaserede programmeringssprog, for eksempel C # , kan de samme opgaver normalt programmeres hurtigere.
- Små ændringer kan resultere i kostbar omstrukturering, hvis der skabes plads på blokdiagrammet ved at flytte det, da ledningerne og symbolerne ofte skal omarrangeres for at genskabe klarheden. Struktureret programmering kan dog afhjælpe dette problem (især ved konsekvent brug af sub-VI'er).
- Den enkle introduktion til LabVIEW-programmering fører til forsømmelse af den korrekte planlægning af projektet.
Versioner
| Navn / version | Bygge nummer | dato |
|---|---|---|
| Start af LabVIEW-projektet | April 1983 | |
| LabVIEW 1.0 (til Apple Macintosh) | Oktober 1986 | |
| LabVIEW 2.0 | Januar 1990 | |
| LabVIEW 2.5 (første version til Sun & Microsoft Windows) | August 1992 | |
| LabVIEW 3.0 (multiplatform) | Juli 1993 | |
| LabVIEW 3.0.1 (Første version til Windows NT) | 1994 | |
| LabVIEW 3.1 | 1994 | |
| LabVIEW 3.1.1 (Første version med "applikationsbygger") | 1995 | |
| LabVIEW 4.0 | April 1996 | |
| LabVIEW 4.1 | 1997 | |
| LabVIEW 5.0 | Februar 1998 | |
| LabVIEW RT (realtid) | Maj 1999 | |
| LabVIEW 6.0 (6i) | 6.0.0.4005 | 26. juli 2000 |
| LabVIEW 6.1 | 6.1.0.4004 | 4. december 2001 |
| LabVIEW 7.0 (Express) | 7.0.0.4000 | April 2003 |
| LabVIEW PDA-modul (første version) | Maj 2003 | |
| LabVIEW FPGA-modul (første version) | Juni 2003 | |
| LabVIEW 7.1 | 2004 | |
| LabVIEW Integreret modul (første version) | Maj 2005 | |
| LabVIEW 8.0 | September 2005 | |
| LabVIEW 8.20 (objektorienteret programmering) | August 2006 | |
| LabVIEW 8.2.1 | 8.2.1.4002 | 21. februar 2007 |
| LabVIEW 8.5 | 8.5.0.4002 | 2007 |
| LabVIEW 8.6 | 8.6.0.4001 | 24. juli 2008 |
| LabVIEW 8.6.1 | 8.6.0.4001 | 12/10/2008 |
| LabVIEW 2009 (32 og 64-bit) | 9.0.0.4022 | 4.8.2009 |
| LabVIEW 2009 SP2 | 9.0.1.4011 | 8.1.2010 |
| LabVIEW 2010 | 10.0.0.4032 | 4.8.2010 |
| LabVIEW 2010 f2 | 10.0.0.4033 | 16.9.2010 |
| LabVIEW 2010 SP1 | 10.0.1.4004 | 17. maj 2011 |
| LabVIEW til LEGO MINDSTORMS (2010 SP1) | August 2011 | |
| LabVIEW 2011 | 11.0.0.4029 | 22. juni 2011 |
| LabVIEW 2011 SP1 | 11.0.1.4015 | 1.3.2012 |
| LabVIEW 2012 | 12.0.0.4029 | August 2012 |
| LabVIEW 2012 SP1 | 12.0.1.4013 | Marts 2013 |
| LabVIEW 2013 | 13.0.0.4047 | August 2013 |
| LabVIEW 2013 SP1 | 13.0.1.4017 | Marts 2014 |
| LabVIEW 2014 | 14.0.0.4036 | August 2014 |
| LabVIEW 2014 SP1 | Marts 2015 | |
| LabVIEW 2015 | August 2015 | |
| LabVIEW 2015 SP1 | Marts 2016 | |
| LabVIEW 2016 | August 2016 | |
| LabVIEW 2017 | Maj 2017 | |
| LabVIEW 2017 SP1 | 01/23/2018 | |
| LabVIEW 2018 | 18.0.0.4012 | Marts 2018 |
| LabVIEW 2018 SP1 | 3. december 2018 | |
| LabVIEW 2019 | 15. maj 2019 | |
| LabVIEW 2019 SP1 | 28. oktober 2019 | |
| LabVIEW 2020 | 05/15/2020 |
litteratur
- Wolfgang Georgi; Ergun Metin: Introduktion til LabVIEW , Fachbuchverlag Leipzig i Carl Hanser Verlag, 4. reviderede udgave 2009, ISBN 978-3-446-41560-7
- Bernward Mütterlein: Manual til programmering med LabVIEW. Med elevversion LabVIEW 8 (Hardcover) , 1. udgave april 2007, ISBN 3-8274-1761-9
- Kurt Reim: LabVIEW-kursus: Grundlæggende, opgaver, løsninger , Vogel Buchverlag, 1. udgave 2014, ISBN 978-3-8343-3294-3
- Sebastian Trella; Thorsten Leimbach: Roberta - Programmering med LabVIEW , Fraunhofer Verlag, 1. udgave maj 2014, 118 sider, ISBN 978-3-8396-0692-6