Top 5 der Empfehlungen für LabVIEW-Einsteiger

Top 5 der Empfehlungen für LabVIEW-Einsteiger
Veröffentlichungsdatum: Mai 05, 2015
Inhaltsverzeichnis
1.
2.
3.
4.
5.
6.
7.
Flache Sequenzstrukturen vermeiden
Daten effektiv weitergeben
Mit Modularität Entwicklungszeit sparen
Kompakte Blockdiagramme erstellen
Ausführliche Dokumentation verfassen
Weitere Informationen
Weitere Teile dieser Reihe
Die Software NI LabVIEW (http://www.ni.com/labview/d/) unterstützt Ingenieure und Wissenschaftler schon länger bei der
schnellen Entwicklung funktioneller Mess-, Steuer- und Regelanwendungen, doch befolgen nicht alle Anwender die bewährten
Vorgehensweisen bei der LabVIEW-Programmierung. Die grafische Programmierung in LabVIEW ist dahingehend einzigartig,
dass schon bei einem Blick auf eine Anwendung sichtbar wird, wenn beste Vorgehensweisen bei der Programmierung nicht
eingehalten wurden. Einige Anwender sind sich des Datenflusses in LabVIEW-Programmen nicht bewusst und kennen oft die
Funktionen nicht, mit denen sich die Qualität eines LabVIEW-Programms verbessern lässt.
Dieser Artikel zeigt einige grundlegende Empfehlungen und Programmiermethoden auf, die jeder LabVIEW-Einsteiger kennen
sollte.
Abbildung 1: Programmcode voller LabVIEW-Einsteigerfehler
1. Flache Sequenzstrukturen vermeiden
Viele LabVIEW-Einsteiger haben nur unzureichende Kenntnisse des Datenflussprinzips, das allerdings elementar für die
LabVIEW-Programmierung ist. Anwender stützen sich häufig auf flache Sequenzstrukturen, um die serielle Ausführung von
Programmcode auf dem Blockdiagramm zu steuern, statt den Datenfluss mit Drähten zwischen den Knoten zu nutzen.
1/6
www.ni.com
Abbildung 2: Anwender verwenden häufig flache Sequenzstrukturen, anstatt sich näher mit den Konzepten der
Datenflussprogrammierung zu beschäftigen.
Datenflussprogrammierung bedeutet, dass ein Knoten auf dem Blockdiagramm (SubVI, Funktion, Struktur usw.) erst ausgeführ
wird, wenn alle benötigten Dateneingaben vorhanden sind. Davon profitieren LabVIEW-Programmierer, da voneinander
unabhängige Prozesse nativ so angelegt werden, dass sie parallel ablaufen können, während imperative Sprachen für die
parallele Ausführung eigens konfiguriert werden müssen. Da Computer über immer mehr Rechenleistung verfügen, lagert
LabVIEW automatisch parallele Prozesse aus und erhöht die Leistung von Programmcode, ohne dass zusätzlicher
Kodierungsaufwand erforderlich wäre. Die durch flache Sequenzstrukturen gesteuerte Ausführung auf dem Blockdiagramm kan
die parallele Ausführung einschränken und diesen Vorteil zunichtemachen. Die Einschränkung unnötiger Strukturen auf dem
Blockdiagramm unterstützt die allgemeine Lesbarkeit und sorgt zudem für kleinere Diagramme.
Fehler-Verbindungen eignen sich besonders gut dafür, den Datenfluss auf dem Blockdiagramm zu steuern, statt nur flache
Sequenzstrukturen zu nutzen, wobei sich fast beiläufig ein Error-Handling realisieren lässt.
Wann sollte ich eine flache Sequenzstruktur einsetzen?
Das Steuern der Ausführung mittels flacher Sequenzstruktur ist nützlich, um die Leistung des Programmcodes einordnen zu
können. Durch Gebrauch einer flachen Sequenzstruktur mit einem Timer innerhalb des Rahmens lässt sich die bei der
Codeausführung zwischen zwei Timerwerten verstrichene Zeit ermitteln. Dies ist mit normaler Datenflussprogrammierung nicht
möglich.
Abbildung 3: Der Gebrauch flacher Sequenzstrukturen und von „Tick Count“-VIs ist nützlich für die Bewertung von
Programmcode.
2. Daten effektiv weitergeben
Ein weiterer gängiger Fehler in LabVIEW-Programmen ist der übermäßige Gebrauch lokaler Variablen. Bei lokalen Variablen
handelt es sich um einen Teil gemeinsam genutzten Speichers, mit dem Daten zwischen verschiedenen Abschnitten eines
Computerprogramms übertragen werden können. Variablen werden gewöhnlich in textbasierten Sprachen eingesetzt und könn
sehr hilfreich sein, doch auch Fehler verursachen, wenn ein Laufzeitproblem auftritt.
Anders als bei Programmiersprachen, bei denen die Weitergabe von Daten über Variablen essenziell ist, bietet LabVIEW die
2/6
www.ni.com
Anders als bei Programmiersprachen, bei denen die Weitergabe von Daten über Variablen essenziell ist, bietet LabVIEW die
Datenflussmethode zum Bewegen von Daten von einem Teil eines Programms zum anderen. Der LabVIEW inhärente
Parallelismus gestaltet die übermäßige Nutzung von Variablen schwierig, da häufig von verschiedenen Stellen gleichzeitig auf
gemeinsamen Speicher zugegriffen wird. Falls dies passiert, gewinnt gewissermaßen einer der Lese-/Schreibvorgänge das
„Rennen“, während der andere verliert. Dieser Vorgang geht buchstäblich verloren, sodass der übermäßige Gebrauch lokaler
Variablen in LabVIEW schlussendlich zu Datenverlust führen kann.
Daten können innerhalb eines LabVIEW-Programms auf sicherem Wege mithilfe unterschiedlicher Methoden übertragen werde
darunter Verbindungen, Queues, Ereignisse, Melder, funktionale globale Variablen u. a. m. Diese Mechanismen sind jeweils fü
bestimmte Anwendungsfälle entwickelt, doch alle können Laufzeitprobleme verhindern.
Mehr Informationen zu den verschiedenen Methoden zum Weitergeben von Daten in LabVIEW-Programmen erhalten Sie in de
Online-Selbstlernkursen (http://www.ni.com/self-paced-training) zu lokalen Variablen in LabVIEW-Grundlagen 1 sowie zu Melde
Queues und Ereignissen in LabVIEW-Grundlagen 2.
3. Mit Modularität Entwicklungszeit sparen
Neue LabVIEW-Anwender erstellen häufig Ad-hoc-Anwendungen, um einfache Aufgaben zu erledigen. Dabei machen sie sich
keine Gedanken darüber, wie sie den Code auch im Nachhinein weiterverwenden können. Sobald Anwender beginnen, häufige
zu programmieren, kann es passieren, dass der gleiche Programmcode immer wieder neu geschrieben werden muss. Anwend
können sich viel Entwicklungszeit sparen, wenn sie aus ihren Codeabschnitten modulare SubVIs erstellen, die innerhalb ander
Applikationen wiederverwendet werden können.
Wenn bereits bekannt ist, dass ein bestimmter Codeabschnitt innerhalb derselben Anwendung wiederverwendet werden wird o
der erneute Einsatz in einer künftigen Anwendung wahrscheinlich ist, dann empfiehlt sich die zusätzliche Erstellung eines SubV
Um einen Codeabschnitt zu einem SubVI aufzubereiten, müssen Anwender Dokumentation hinzufügen, das Anschlussfeld
bedienen sowie einige VI-Eigenschaften deaktivieren. Ein SubVI können Anwender leicht erstellen, indem sie den gewünschten
Codeabschnitt auf dem Blockdiagramm markieren und anschließend Bearbeiten>>SubVI erzeugen in der Menüleiste wählen.
Dabei wird ein Skript des Vorgangs zur Generierung eines separaten VIs aus dem Codeabschnitt sowie zur Bedienung des
Anschlussfelds erstellt. Das Icon muss nach wie vor sinnvoll bearbeitet, dem Blockdiagramm und VI-Eigenschaften
Dokumentation hinzugefügt sowie einige Einstellungen zu VIs deaktiviert werden, doch Bearbeiten>>SubVI erzeugen ist ein gu
Ausgangspunkt für modularen Programmcode.
Abbildung 4: Mit geeigneten Methoden zur Erstellung von modularem LabVIEW-Code können Anwender viel Entwicklungsze
sparen.
Bei der Aufbereitung von Programmcode für die Wiederverwendung ist darauf zu achten, dass die VI-Einstellung zur
Fehlerbehandlung deaktiviert ist. Diese Option finden Anwender in den Einstellungen zum VI (Datei>>VI-Einstellungen) in der
Kategorie „Ausführung“. Wenn der Code voll funktionsfähig ist und keine Fehlerbehandlung beispielsweise über die
Highlight-Funktion erfordert, kann die Fehlerbehandlung in den Ausführungseinstellungen deaktiviert und das VI neu gestartet
werden. Dies ist durchaus sinnvoll, da mehr Optimierung während des Kompiliervorgangs stattfindet und die Anwendung so
schneller abläuft. Zudem nimmt das VI eine etwas geringere Größe auf der Festplatte ein, da der zusätzliche Code für die
Fehlerbehandlung wegfällt.
4. Kompakte Blockdiagramme erstellen
Viele neue LabVIEW-Anwender verwenden Blockdiagramme, die beachtliche Größen annehmen können. Einige Anwendungen
sind in der Tat komplex und umfangreiche Diagramme lassen sich dann nicht vermeiden, doch können diese auch ein Hinweis
fehlende Kenntnisse der Programmierarchitektur sein. Ohne zugrunde liegende Architektur gestaltet sich die Wartung des
Programms auf Dauer schwierig und das spätere Hinzufügen neuer Funktionen kostspielig. Genau wie die Errichtung eines
geeigneten Grundgerüsts die Basis eines stabilen Gebäudes ist, liefert eine gute Programmierarchitektur das Framework zum
Aufbau einer Anwendung.
Bei Softwarearchitekturen handelt es sich um gängige Frameworks, die nahezu alle Programmierer nützlich finden. Viele der
3/6
www.ni.com
Bei Softwarearchitekturen handelt es sich um gängige Frameworks, die nahezu alle Programmierer nützlich finden. Viele der
Architekturen innerhalb von LabVIEW wie Erzeuger/Verbraucher und Zustandsautomaten ähneln jenen anderer
Programmiersprachen.
Kenntnisse von LabVIEW-Architekturen verringern Entwicklungszeiten und verbessern die Skalierbarkeit von Anwendungen.
LabVIEW 2012 erleichtert Anwendern mit den enthaltenen Vorlagen und Beispielprojekten noch mehr das Begreifen von
Architekturen. Die Vorlagen erläutern verschiedene Architekturen und deren typische Anwendungsfälle. Bei Beispielprojekten
handelt es sich um größere Anwendungen, die auf den Vorlagen basieren, und zeigen sollen, wie Vorlagen zur Bewältigung re
Aufgaben eingesetzt werden können. Wird Hardware in ein Beispielprojekt eingebunden, kann es bei Bedarf als schlüsselfertig
Anwendung eingesetzt werden. Diese bleibt jedoch offen zugänglich und umfassend dokumentiert, sodass sie individuell
angepasst werden kann.
Abbildung 5: Vorlagen und Beispielprojekte in LabVIEW 2012 ermöglichen ein besseres Begreifen von Softwarearchitekturen
5. Ausführliche Dokumentation verfassen
Um nachzuvollziehen, was genau ein bestimmtes Programm tut, ist eine gute Codedokumentation äußerst hilfreich. Leider wird
die Dokumentation bis zum Ende des Entwicklungszyklus üblicherweise erst einmal liegen gelassen, sobald die Funktionalität
vollständig ist. Daher bleibt nur wenig Zeit zur ordentlichen Codedokumentation. Stattdessen sollte während der Entwicklung
ausreichend Zeit zur Verfügung stehen, um mit dem Dokumentationsprozess zu beginnen. Dokumentation dient auch sehr den
Verfassern von Programmcode, wenn sie diesen später erneut einsetzen möchten, aber sich nicht daran erinnern können, aus
welchem Grund sie sich für diesen oder jenen Aspekt entschieden. Programmierer sind häufig Kaffeejunkies und nachtaktiv, w
schon einmal zu temporärem Gedächtnisverlust führen kann – aber Spaß beiseite: Mit der Dokumentation haben Programmier
jederzeit eine zuverlässige Nachschlagequelle zur Hand.
Im Allgemeinen gestaltet der grafische Charakter von LabVIEW das Lesen von Code einfacher als bei textbasierten Programm
aber eine gute Dokumentation kann den Zeitaufwand für die „Dekodierung“ eines Programms noch weiter verringern.
Dokumentation lässt sich dem Blockdiagramm am einfachsten durch freie Beschriftungen hinzufügen. Diese lassen sich durch
einen Doppelklick mit der linken Maustaste in einen leeren Bereich auf dem Blockdiagramm und die Eingabe von Text hinzufüg
Dann kann ein Pfeilsymbol verwendet werden, um auf den Code hinzuweisen, der in der freien Beschriftung steht. Bilder könne
einfach durch Kopieren und Einfügen auf dem Blockdiagramm hinzugefügt werden. Bilder von physikalischen Systemen oder
mathematische Formeln können Anwender bei der Formulierung von Codekontext innerhalb des Blockdiagramms unterstützen
4/6
www.ni.com
Abbildung 6: Programmcode mit sauberer Architektur und Dokumentation unterstützt andere bei der Verwendung desselben
Codes und gibt dem Verfasser selbst einen besseren Überblick.
Die Dokumentation von Code ist nicht nur für wiederverwendbare Bibliotheken gedacht, sie sollte für jedes Programm erstellt
werden. Menschen lernen viel mehr über ein Thema, wenn sie gezwungen sind, es anderen zu vermitteln. Das Verfassen von
Dokumentation erzwingt diesen Vermittlungsprozess und kann Anwender dabei unterstützen, ihren eigenen Code besser zu
verstehen.
6. Weitere Informationen
Weitere Tipps und Tricks (http://germany.ni.com/multimedia/webcast-bibliothek/labview-4), Informationen zu leistungsfähigen
Programmierarchitekturen (http://zone.ni.com/wv/app/doc/p/id/wv-3661) und LabVIEW-Trainingskursen (
http://www.ni.com/training/d/) sowie Kundenlösungen (http://www.ni.com/case-studies/d/) und vieles mehr finden Sie auf unsere
Homepage (http://germany.ni.com/).
LabVIEW wurde entwickelt, damit Ingenieure und Wissenschaftler auch komplexeste Herausforderungen bewältigen können. D
Vorteil einer großen Programmierergemeinde aus Ingenieuren und Wissenschaftlern besteht im Wissensaustausch. Haben Sie
weitere Tipps für LabVIEW-Einsteiger? Dann teilen Sie uns diese auf bit.ly/lvrookiemistakes (
http://forums.ni.com/t5/LabVIEW/Top-LabVIEW-Rookie-Mistakes/td-p/2354976) mit!
Testen Sie LabVIEW kostenfrei (http://www.ni.com/trylabview/d)
7. Weitere Teile dieser Reihe
Teil 1 – Going With the (Data) Flow (http://www.ni.com/newsletter/51770/de/)
5/6
www.ni.com
Teil 2 – Steuert Ihr Code auf einen teuren Crash zu? (http://www.ni.com/newsletter/51890/de/)
Teil 3 – Programmcode wiederverwenden (http://www.ni.com/newsletter/52451/de/)
Teil 4 – Ein guter LabVIEW-Programmierer benötigt keine 34-Zoll-Bildschirme (http://www.ni.com/newsletter/52471/de/)
Teil 5 – Programmcode dokumentieren und technische Schulden vermeiden (http://www.ni.com/newsletter/52486/de/)
PRODUKTE
SUPPORT
UNTERNEHMEN
Bestellstatus und Bestellverlauf (
http://www.ni.com/status/)
Serviceanfrage stellen (
https://sine.ni.com/srm/app/myServiceRequests)
Über National Instruments (
http://www.ni.com/company/)
Bestellen über Artikelnummer (
Handbücher (http://www.ni.com/manuals/d/)
http://sine.ni.com/apps/utf8/nios.store?action=purchase_form
)
Treiber (http://www.ni.com/downloads/drivers/d/)
Über National Instruments Deutschland (
http://germany.ni.com/firmenprofil)
Veranstaltungen (http://germany.ni.com/events/)
Produktaktivierung (
Alliance Partner (http://www.ni.com/alliance/)
http://sine.ni.com/myproducts/app/main.xhtml?lang=de
)
Jobs (http://germany.ni.com/karriere/jobs)
Hinweise zur Bestellung (
http://www.ni.com/howtobuy/d/)
GEMEINSAM IN DIE ZUKUNFT
NI stellt Systeme bereit, mit denen Ingenieure und
Wissenschaftler die Herausforderungen einer immer
komplexeren Welt bewältigen.
(
http://www.facebook.com/NationalInstrumentsDACh
)
(
http://www.linkedin.com/company/national-instruments-germany
)
(http://www.youtube.com/NIGermany/)
(http://twitter.com/niglobal)
(
http://www.ni.com/rss/)
Kontakt (http://www.ni.com/contact-us/)
Datenschutz | (http://www.ni.com/legal/privacy/d/) Rechtliche Hinweise (http://germany.ni.com/impressum) | ©
National Instruments Corporation. Alle Rechte vorbehalten. | Sitemap (http://www.ni.com/help/map.htm)
6/6
www.ni.com