New Immissions/Updates:
boundless - educate - edutalab - empatico - es-ebooks - es16 - fr16 - fsfiles - hesperian - solidaria - wikipediaforschools
- wikipediaforschoolses - wikipediaforschoolsfr - wikipediaforschoolspt - worldmap -

See also: Liber Liber - Libro Parlato - Liber Musica  - Manuzio -  Liber Liber ISO Files - Alphabetical Order - Multivolume ZIP Complete Archive - PDF Files - OGG Music Files -

PROJECT GUTENBERG HTML: Volume I - Volume II - Volume III - Volume IV - Volume V - Volume VI - Volume VII - Volume VIII - Volume IX

Ascolta ""Volevo solo fare un audiolibro"" su Spreaker.
CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
LabVIEW - Wikipedia

LabVIEW

aus Wikipedia, der freien Enzyklopädie

LabVIEW ist ein graphisches Programmiersystem von National Instruments. Das Akronym steht für "Laboratory Virtual Instrumentation Engineering Workbench".

Die erste Version erschien 1986 für Macintosh-Computer. Heute gibt es die Entwicklungsumgebung außerdem für Windows, Linux und Solaris.

Haupt-Anwendungsgebiete von LabVIEW sind die Mess- und Automatisierungstechnik. Die Programmierung erfolgt mit einer graphischen Programmiersprache genannt "G", nach dem Datenfluss-Modell. Durch diese Besonderheit eignet sich LabVIEW besonders gut zur Datenerfassung und -Verarbeitung.

LabVIEW-Programme werden als Virtuelle Instrumente oder einfach VIs bezeichnet. Sie bestehen aus zwei Komponenten: das Frontpanel enthält die Benutzerschnittstelle, das Blockdiagramm den graphischen Programmcode. Dieser wird nicht von einem Interpreter abgearbeitet, sondern compiliert. Dadurch ist die Performance vergleichbar mit der anderer Hochsprachen.

LabVIEW wird laufend weiterentwickelt. Die derzeit aktuelle Version ist 8.20 (Stand August 2006).

Inhaltsverzeichnis

[Bearbeiten] Programmiermethode

Funktionsblöcke werden in LabVIEW (genau wie vollständige Programme) als Virtuelle Instrumente (VIs) bezeichnet. Dies kommt daher, dass prinzipiell jedes Programm als Unterprogramm (Sub-VI) in einem anderen verwendet werden kann, bzw. jedes Sub-VI auch eigenständig lauffähig ist. Aufgrund des Datenfluss-Konzeptes sind rekursive Aufrufe grundsätzlich nicht möglich, mit etwas zusätzlichem Aufwand lassen sich aber auch Rekursionen verwirklichen.

Der Programmierer verbindet VIs mit Verbindungslinien (Drähten) und definiert damit den Datenfluss. Jedes VI kann dabei Ein- oder Ausgänge besitzen. Die Ausführung eines VIs beginnt, wenn alle Eingangsdaten vorhanden sind; die Ergebnisse liegen erst dann an den Ausgängen an, wenn das gesamte Unterprogramm abgearbeitet ist. Auf diese Weise wird die Abarbeitungsreihenfolge der Schritte durch Datenabhängigkeiten definiert. Eine vordefinierte Reihenfolge (z. B. „von rechts nach links“) gibt es nicht.

Besitzt ein Sub-VI keine Eingänge so wird es bei Programmstart ausgeführt, besitzt es keine Ausgänge so werden die Ergebnisdaten entweder verworfen oder auf einem anderen Weg „verwertet“ (z. B. Schreiben auf Festplatte oder Netzwerk, Ausgabe auf Peripheriegeräte). Genauso kann ein Sub-VI ohne Eingänge Daten von Peripheriegeräten erhalten oder auch selbst generieren (z. B. Zufallsgenerator).

Sub-VIs können beliebig tief verschachtelt werden. Viele der LabVIEW-eigenen Funktionen sind ihrerseits normale VIs, die auch vom Programmierer bearbeitet werden können (wenngleich dies in der Regel nicht zu empfehlen ist). Letztlich basieren alle VIs auf einer Reihe grundlegender Funktionen, sog. Primitives, die sich nicht als VIs öffnen lassen.

Viele VIs und Primitives in LabVIEW sind polymorph, d. h. ihre Funktionalität passt sich an die Art der übergebenen Daten an. z. B. kann die Build-Array Funktion für die Erstellung jeglicher Felder genutzt werden, d. h. Strings, Integer oder auch Arrays und Cluster. Es ist auch möglich, eigene polymorphe VIs zu erstellen. Letztlich handelt es sich hierbei um eine Sammlung mehrerer VIs mit unterschiedlichen Datentypen an den Ein- und Ausgängen.

Datenquellen und Datensenken können mit Anzeige- und Bedienelementen auf dem Frontpanel verknüpft sein. So kann z. B. eine Zahleneingabe mit einem Drehknopf und eine Ausgabe einer booleschen Variablen mit einer Leuchtdiode realisiert werden.

Bei sehr großen und umfangreichen Projekten ist es (wie in jeder Programmiersprache) extrem wichtig, von Anfang an eine durchdachte Struktur zu verwenden und den Code zu modularisieren. Durch den vorhandenen Projektmanager (ab V8.0) wird dies um einiges erleichtert. Die Verwaltung einer großen Anzahl an VIs sowie externer Dateien ist dadurch um vieles übersichtlicher. Auch die major und minor Versionsverwaltung gestaltet sich hiermit wesentlich einfacher. Eine wesentliche Neuerung (ab V8.20) besteht darin, objektorientiert programmieren zu können. Klassen und Attribute sowie deren Methoden können natürlich auch vererbt werden.

[Bearbeiten] Vorteile

  • Eine wichtige Konsequenz LabVIEWs graphischer Programmierung ist die Einfachheit, mit der in LabVIEW parallele Abläufe programmiert werden können. Es reicht, zwei Sub-VIs ohne Datenabhängigkeit nebeneinander zu legen, um sie gleichzeitig mit Multithreading abzuarbeiten.
  • Das Frontpanel von LabVIEW ist ein sehr bequemes Mittel um Programme mit guter grafischer Bedieneroberfläche zu erstellen. Bei allen Programmierarbeiten in LabVIEW muss der Programmierer prinzipiell keinen Text eingeben.
  • Die graphische Darstellung des Programmablaufs erhöht zumindest bei nicht zu umfangreichen Vorhaben die Lesbarkeit deutlich. Insbesondere Naturwissenschaftler und Techniker verstehen die Programmlogik meist recht schnell und können Software damit an ihre konkreten Bedürfnisse anpassen.
  • Die mitgelieferten umfangreichen Funktionsbibliotheken decken insbesondere die Datenanalyse und Mathematik sehr weitgehend ab. Aber auch die Ansteuerung von zusätzlichen (auch externen) (Mess-)Geräten und Systemfunktionen ist gut gelöst.
  • Bei vernünftiger Planung lassen sich sehr komplexe Programme mit weit mehr als 1000 Unterprogrammen und Modulen beherrschen.
  • Über die unterstützten Kommunikationsprotokolle und Verbindungstechniken ist es möglich, auch weit entfernte Geräte (z. B. an unzugänglichen Stellen oder in anderen Ländern) zu steuern und zu nutzen.
  • LabVIEW ermöglicht in der aktuellen Version 8 auch die Programmierung auf/von Mikrokontrollern und DSPs. Es unterstützt auch einige Realtime-Betriebssysteme.

[Bearbeiten] Nachteile

Neben den genannten Vorteilen hat die graphische Programmierung gegenüber der textbasierten auch Nachteile, die mit der Größe des Projekts schwerer wiegen:

  • Kleine Änderungen können aufwendige Neustrukturierungen nach sich ziehen, wenn das Schaffen von Raum auf dem Blockdiagramm durch Verschieben geschieht. Denn dann müssen die Drähte und Symbole oftmals neu geordnet werden, um die Übersichtlichkeit wiederherzustellen. Alternativ kann aber auch ein Teil des Codes in ein neues Unterprogramm ausgelagert werden.
  • Um keinen Drahtwirrwarr zu erzeugen, werden von weniger versierten Nutzern oft vermehrt Variablen eingeführt, die die Geschwindigkeit herabsetzen und dem Datenflussmodell widersprechen. Erfahrene 'Verdrahter' definieren zusammengesetzte Datentypen, um weniger Drähte verlegen zu müssen.
  • Der einfache Einstieg in die LabVIEW-Programmierung verleitet leider dazu, "einfach drauflos zu programmieren", allerdings kann auch die grafische Programmierung nicht die ordentliche Planung des Projektes ersetzen.
  • Die Signalorientierung führte in früheren Versionen zu einem Polling der Signalquellen und GUI-Elemente in Schleifen, anstatt zu einem von Ereignissen ausgelösten Signalfluss. Seit LabVIEW 7 existieren auch sehr weitgehend konfigurierbare Eventstrukturen, die auf Ereignisse aus dem Benutzerinterface und auf Systemereignisse reagieren können. Das vermeidet beim Pollen verschwendete Rechenzeit und erlaubt sehr effektive Konstrukte, insbesondere beim Benutzerinterface.
  • Ausführbare LabVIEW-Programme können vom Entwicklungssystem zwar erstellt werden, erfordern jedoch die Installation einer Laufzeitumgebung auf dem Zielsystem. Bei Verwendung von bestimmten Zusatzmodulen, wie z.B. IMAQ Vision, ist zudem eine kostenpflichtige Lizenz pro Zielplattform notwendig.

[Bearbeiten] Literatur

  • Wolfgang Georgi; Ergun Metin: Einführung in LabVIEW, Fachbuchverlag Leipzig im Carl Hanser Verlag, 2. Auflage 2006, ISBN 978-3-446-40400-7

[Bearbeiten] Weblinks

Static Wikipedia (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu