www.wikidata.de-de.nina.az
LabVIEW ist ein grafisches Programmiersystem von National Instruments Das Akronym steht fur Laboratory Virtual Instrumentation Engineering Workbench LabVIEWBasisdatenEntwickler National InstrumentsErscheinungsjahr 1986Aktuelle Version LabVIEW 2023 Q3 24 Juli 2023 Betriebssystem macOS Windows LinuxKategorie ProgrammierspracheLizenz proprietardeutschsprachig jaLabVIEWDie erste Version erschien 1986 fur Macintosh Computer Heute gibt es die Entwicklungsumgebung ausserdem fur Windows und Linux Vergleichbar entwickelte Hewlett Packard inzwischen Agilent die visuelle Programmiersprache VEE Hauptanwendungsgebiete von LabVIEW sind die Mess Regel und Automatisierungstechnik Die Programmierung erfolgt mit einer grafischen Programmiersprache genannt G nach dem Datenfluss Modell Im Vordergrund steht dabei die Datenerfassung und verarbeitung LabVIEW Programme werden als Virtuelle Instrumente oder einfach VIs bezeichnet Sie bestehen aus zwei Komponenten Das Frontpanel enthalt die Benutzerschnittstelle das Blockdiagramm den grafischen Programmcode Dieser wird nicht von einem Interpreter abgearbeitet sondern kompiliert Dadurch ist die Leistung vergleichbar mit anderen Hochsprachen LabVIEW benutzt die gleichen Bibliotheken und Datenerfassungsmodule wie LabWindows CVI der Integrierten Entwicklungsumgebung der Firma National Instruments und ist deshalb kompatibel mit LabWindows CVI Fur viele komplexe mathematische Aufgaben stehen auch Funktionsbibliotheken zur Verfugung Ahnlich wie Matlab deckt LabVIEW auch die Bereiche SP Steuerung und flexible Versuchsautomatisierung ab Inhaltsverzeichnis 1 Programmiermethode 2 LabVIEW TCP IP und XML Webdienste 3 Vorteile 4 Nachteile 5 Versionen 6 Literatur 7 Weblinks 8 EinzelnachweiseProgrammiermethode Bearbeiten nbsp LabVIEW Code BeispielFunktionsblocke werden in LabVIEW genau wie vollstandige Programme als Virtuelle Instrumente VIs bezeichnet Dies kommt daher dass prinzipiell jedes Programm als Unterprogramm SubVI in einem anderen verwendet werden kann bzw jedes SubVI auch eigenstandig lauffahig ist Aufgrund des Datenfluss Konzeptes waren bis zu Version 8 6 rekursive Aufrufe grundsatzlich nicht moglich Mit zusatzlichem Aufwand liessen sich aber auch Rekursionen verwirklichen 1 Ab Version 9 0 kann ein ablaufinvariantes VI sich selbst als SubVI enthalten und damit rekursiv aufrufen 2 Der Programmierer verbindet VIs mit Verbindungslinien Drahten und definiert damit den Datenfluss Jedes VI kann dabei Ein und Ausgange besitzen Die Ausfuhrung eines VIs beginnt wenn alle Eingangsdaten vorhanden sind die Ergebnisse liegen erst dann an den Ausgangen an wenn das gesamte Unterprogramm abgearbeitet ist Auf diese Weise wird die Abarbeitungsreihenfolge der Schritte durch Datenabhangigkeiten definiert Eine vordefinierte Reihenfolge z B von rechts nach links gibt es nicht Besitzt ein SubVI keine Eingange wird es bei Programmstart ausgefuhrt Besitzt es keine Ausgange werden die Ergebnisdaten entweder verworfen oder auf einem anderen Weg verwertet z B Schreiben auf Festplatte oder Netzwerk Ausgabe auf Peripheriegerate Genauso kann ein SubVI ohne Eingange Daten von Peripheriegeraten erhalten oder selbst generieren z B per Zufallsgenerator SubVIs konnen beliebig tief verschachtelt werden Viele der LabVIEW eigenen Funktionen sind ihrerseits normale VIs die auch vom Programmierer bearbeitet werden konnen wenngleich dies in der Regel nicht zu empfehlen ist Letztlich basieren alle VIs auf einer Reihe grundlegender Funktionen sogenannter Primitive die sich nicht als VIs offnen lassen Viele VIs und Funktionen in LabVIEW sind polymorph d h ihre Funktionsweise passt sich an den Typ der ubergebenen Daten an Beispielsweise kann die Funktion Array erstellen fur die Erstellung jeglicher Felder genutzt werden d h Strings Integer oder auch Arrays und Cluster Es ist auch moglich eigene polymorphe VIs zu erstellen Letztlich handelt es sich hierbei um eine Sammlung mehrerer VIs mit unterschiedlichen Datentypen an den Ein und Ausgangen Datenquellen und Datensenken konnen mit Anzeige und Bedienelementen auf dem Frontpanel verknupft sein So kann z B eine Zahleneingabe mit einem Drehknopf und eine Ausgabe einer booleschen Variablen mit einer Leuchtdiode realisiert werden Bei sehr grossen und umfangreichen Projekten ist es wie in anderen Programmiersprachen wichtig von Anfang an eine durchdachte Struktur zu verwenden und den Code zu modularisieren Durch den vorhandenen Projektmanager ab V8 0 wird dies unterstutzt Die Verwaltung einer grossen Anzahl an VIs sowie externer Dateien wird dadurch ubersichtlicher Auch die Versionsverwaltung gestaltet sich hiermit einfacher Eine wesentliche Neuerung ab V8 20 besteht darin objektorientiert programmieren zu konnen Klassen und Attribute sowie deren Methoden konnen dabei auch vererbt werden LabVIEW Robotics 2009 enthalt Werkzeuge fur den Entwurf eines Robotersystems Teil des Softwarepakets ist das Robotics Module das eine umfassende Robotikbibliothek mit Anbindungsmoglichkeiten an Standard Robotiksensoren und aktoren grundlegenden Algorithmen fur den intelligenten Betrieb sowie Wahrnehmungs und Motorsteuerungsfunktionen fur Roboter und autonome Fahrzeuge umfasst LabVIEW TCP IP und XML Webdienste BearbeitenTCP IP Sockets ubertragen Zeichenketten in LAN und Internet Sie werden zum Beispiel fur das HTTP Protokoll verwendet welches Websites im Webbrowser darstellt LabVIEW macht im LAN Gebrauch von TCP IP Sockets und das fur unterschiedliche Zwecke Funktionen unter Datenkommunikation Protokolle TCP Webbrowser OLE auf dem Frontpanel einbinden Auslesen von Messwerten z B von Digitalmultimetern und Netzwerkanalysatoren Fernsteuerung Remote Panel XML Web Dienst LabVIEW spezifisch ist dabei einerseits die Fernsteuerung uber das Remote Panel Dabei kann ein Benutzer sich uber den Webbrowser Internet Explorer wird bevorzugt unterstutzt mit einem geoffneten Frontpanel verbinden Das Frontpanel selbst gibt die Steuerung dann ab Der beabsichtigte Nutzeffekt ist der Zugang uber einen zweiten PC Jedoch muss auf dem Quell PC ein Fenster geoffnet sein Weiter verlangt NI fur Nutzeranzahlen grosser als eins zusatzliche Lizenzgebuhren LabVIEW spezifisch sind andererseits selbst erstellbare XML Webdienste Sie sind erst in der Vollversion enthalten Diese Webdienste benotigen kein GUI Fenster auf dem Host PC Ein Beispiel ist wenn der Nutzer einen HTTP GET Request mit zwei Parametern an den Service sendet Die Parameter sind dabei in der URL enthalten Der Dienst fuhrt ein VI aus und antwortet mit einer XML Datei Die URL Parameter werden in dem zu implementierenden Dienst als Controls in dem VI erstellt alle Anzeigeelemente des VIs erscheinen mit ihren Werten in der zuruckgesendeten XML Datei Einen Webdienst konnte man also anwenden um Aktuatoren zu steuern und Messwerte zu erfassen Mit dem Webdienst kann man eigene grafische Oberflachen implementieren und eigentlich jedes Client Betriebssystem nutzen Auch Batch Skripte fur lange Versuchsablaufe waren moglich Um ein TCP Service Socket implizit bereitzustellen gibt es einerseits die Moglichkeit es uber die Projekt baumstruktur einer ausfuhrbaren EXE beizulegen Falls man eine Anwendung mit Remote Panel startet so ist zur Laufzeit das Socket vorhanden Die andere Moglichkeit der Bereitstellung ist der NI Webserver und sein Dokument Stammverzeichnis z B unter C Program Files x86 National Instruments Shared NI WebServer www Der Dienst erscheint in der Dienstekonsole unter NI APPLICATION WEBSERVER und uberwacht den Port 8080 Nutzt man den Server auf einem Host mit der LabVIEW Entwicklungsumgebung so kann man den Dienst uber die Projekt Baumstruktur bereitstellen Nutzt man die LabVIEW Laufzeitumgebung auf einem anderen Host kann man den Service uber einen Installer bereitstellen den man auf dem Entwicklungssystem uber die Projekt Baumstruktur erstellt Vorteile BearbeitenEine wichtige Konsequenz der grafischen Programmierung mit LabVIEW ist die Einfachheit mit der in LabVIEW parallele Ablaufe programmiert werden konnen Es reicht zwei SubVIs ohne Datenabhangigkeit nebeneinander zu legen um sie gleichzeitig mit Multithreading abzuarbeiten Man muss allerdings ahnlich wie in textbasierten Programmiersystemen auf mogliche Race Conditions achten und wo notig Ressourcen sperren Zur Synchronisierung bzw Kommunikation zwischen mehreren Threads stehen verschiedene Moglichkeiten zur Verfugung z B Semaphoren Melder Warteschlangen Das Frontpanel von LabVIEW ist ein sehr bequemes Mittel um Programme mit guter grafischer Bedieneroberflache zu erstellen Bei allen Programmierarbeiten in LabVIEW muss der Programmierer prinzipiell keinen Text eingeben ausser Beschriftungen von Gestaltungselementen Die grafische Darstellung des Programmablaufs erhoht zumindest bei nicht zu umfangreichen Vorhaben die Lesbarkeit deutlich Insbesondere Naturwissenschaftler und Techniker verstehen die Programmlogik meist recht schnell und konnen Software damit an ihre konkreten Bedurfnisse anpassen Die je nach Lizenz mitgelieferten umfangreichen Funktionsbibliotheken decken insbesondere die Datenanalyse und Mathematik sehr weitgehend ab Aber auch die Ansteuerung von zusatzlichen auch externen Mess Geraten und Systemfunktionen ist gut gelost Uber die unterstutzten Kommunikationsprotokolle und Verbindungstechniken ist es moglich auch weit entfernte Gerate z B an unzuganglichen Stellen oder in anderen Landern zu steuern und zu nutzen Hier kommt unter anderem TCP zum Einsatz LabVIEW ermoglicht ab der Version 8 6 1 auch die Programmierung von Mikrocontrollern und DSPs die in von National Instruments produzierten Messgeraten enthalten sind Es unterstutzt auch einige Echtzeitbetriebssysteme Ab Version 2009 bietet LabVIEW die Moglichkeit der parallelen Programmierung von Multicore Prozessoren und FPGAs und den Zugriff auf Wireless Technologien Nachteile BearbeitenNeben den genannten Vorteilen hat die graphische Programmierung gegenuber der textbasierten auch Nachteile LabVIEW Programme lassen sich nur mit der originalen LabVIEW Entwicklungsumgebung bearbeiten an deren Funktionsumfang man gebunden ist Allerdings lassen sich Funktionen aus dynamischen Bibliotheken oder ActiveX Objekte nutzen Der Plattformunabhangigkeit geschuldet sind Hindernisse in der Gestaltung von Benutzeroberflachen so werden Windows Hotkeys nicht unterstutzt und das Verhalten von Accelerator Keys entspricht nicht exakt dem Verhalten des Betriebssystems hier Fokus Verlust Die Unicode Unterstutzung ist unzureichend Ausfuhrbare LabVIEW Programme konnen vom Entwicklungssystem zwar erstellt werden erfordern jedoch die Installation einer Laufzeitumgebung auf dem Zielsystem vergleichbar mit der Installation des Net Frameworks fur NET Anwendungen Bei Verwendung von bestimmten Zusatzmodulen wie z B IMAQ Vision ist zudem eine kostenpflichtige Lizenz pro Zielplattform notwendig Die Prinzipien moderner Objektorientierung versucht National Instruments mit neueren LabVIEW Versionen zwar nachzubilden jedoch gelingt dies bisher nur unzureichend Zudem zeigt die Programmierung gegen grosse bestehende Klassenhierarchien wie das Microsoft Net Framework die Grenzen im Umgang mit grafischen Zugriffsknoten auf mit textbasierten Programmiersprachen zum Beispiel C sind dieselben Aufgaben i d R schneller programmierbar Kleine Anderungen konnen aufwendige Neustrukturierungen nach sich ziehen wenn das Schaffen von Raum auf dem Blockdiagramm durch Verschieben geschieht da dann die Drahte und Symbole oftmals neu geordnet werden mussen um die Ubersichtlichkeit wiederherzustellen Dieses Problem kann jedoch durch Strukturierte Programmierung gemildert werden insbesondere durch konsequente Verwendung von Sub VIs Der einfache Einstieg in die LabVIEW Programmierung verleitet dazu die ordentliche Planung des Projektes zu vernachlassigen Versionen BearbeitenName Version Build Nummer DatumStart des LabVIEW Projekts April 1983LabVIEW 1 0 fur Apple Macintosh Oktober 1986LabVIEW 2 0 Januar 1990LabVIEW 2 5 Erste Version fur Sun amp Microsoft Windows August 1992LabVIEW 3 0 Multiplattform Juli 1993LabVIEW 3 0 1 Erste Version fur Windows NT 1994LabVIEW 3 1 1994LabVIEW 3 1 1 Erste Version mit application builder 1995LabVIEW 4 0 April 1996LabVIEW 4 1 1997LabVIEW 5 0 Februar 1998LabVIEW RT Real Time Mai 1999LabVIEW 6 0 6i 6 0 0 4005 26 Juli 2000LabVIEW 6 1 6 1 0 4004 4 Dezember 2001LabVIEW 7 0 Express 7 0 0 4000 April 2003LabVIEW PDA module Erste Version Mai 2003LabVIEW FPGA module Erste Version Juni 2003LabVIEW 7 1 2004LabVIEW Embedded module Erste Version Mai 2005LabVIEW 8 0 September 2005LabVIEW 8 20 Objektorientierte Programmierung August 2006LabVIEW 8 2 1 8 2 1 4002 21 Februar 2007LabVIEW 8 5 8 5 0 4002 2007LabVIEW 8 6 8 6 0 4001 24 Juli 2008LabVIEW 8 6 1 8 6 0 4001 10 Dezember 2008LabVIEW 2009 32 und 64 bit 9 0 0 4022 4 8 2009LabVIEW 2009 SP2 9 0 1 4011 8 Januar 2010LabVIEW 2010 10 0 0 4032 4 August 2010LabVIEW 2010 f2 10 0 0 4033 16 September 2010LabVIEW 2010 SP1 10 0 1 4004 17 Mai 2011LabVIEW fur LEGO MINDSTORMS 2010 SP1 August 2011LabVIEW 2011 11 0 0 4029 22 Juni 2011LabVIEW 2011 SP1 11 0 1 4015 1 Marz 2012LabVIEW 2012 12 0 0 4029 August 2012LabVIEW 2012 SP1 12 0 1 4013 Marz 2013LabVIEW 2013 13 0 0 4047 August 2013LabVIEW 2013 SP1 13 0 1 4017 Marz 2014LabVIEW 2014 14 0 0 4036 August 2014LabVIEW 2014 SP1 Marz 2015LabVIEW 2015 August 2015LabVIEW 2015 SP1 Marz 2016LabVIEW 2016 August 2016LabVIEW 2017 Mai 2017LabVIEW 2017 SP1 23 Januar 2018LabVIEW 2018 18 0 0 4012 Marz 2018LabVIEW 2018 SP1 3 Dezember 2018LabVIEW 2019 15 Mai 2019LabVIEW 2019 SP1 28 Oktober 2019LabVIEW 2020 15 Mai 2020LabVIEW 2020 SP1 8 Januar 2021LabVIEW 2021 13 August 2021LabVIEW 2021 SP1LabVIEW 2021 SP1 f1 21 1 1 22 April 2022LabVIEW 2021 SP1 f2 21 1 2 16 Februar 2022Literatur BearbeitenWolfgang Georgi Ergun Metin Einfuhrung in LabVIEW Fachbuchverlag Leipzig im Carl Hanser Verlag 4 neu bearbeitete Auflage 2009 ISBN 978 3 446 41560 7 Bernward Mutterlein Handbuch fur die Programmierung mit LabVIEW Mit Studentenversion LabVIEW 8 Gebundene Ausgabe 1 Auflage April 2007 ISBN 3 8274 1761 9 Sebastian Trella Thorsten Leimbach Roberta Programmieren mit LabVIEW Fraunhofer Verlag 1 Auflage Mai 2014 118 S ISBN 978 3 8396 0692 6 Corinna Meiwald Melanie von der Crone LabVIEW fur Dummies Wiley VCH 1 Auflage April 2022 ISBN 978 3 527 71820 7Weblinks BearbeitenHandbuch LabView und WebtechnologienEinzelnachweise Bearbeiten Rekursion in LabVIEW english Verwendung der Rekursion bei VIs english Abgerufen von https de wikipedia org w index php title LabVIEW amp oldid 236312094