LabVIEW

LabVIEW

Labview-logo.jpg
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

Image
Eksempel på LabVIEW-kode

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.
  • 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

Weblinks

Individuelle beviser

  1. Rekursion i LabVIEW (engelsk)
  2. Brug af rekursion i VI'er (engelsk)