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
© Copyright 2024 ExpyDoc