Ein guter LabVIEW-Programmierer benötigt keine 34-Zoll

Ein guter LabVIEW-Programmierer benötigt keine 34-Zoll-Bildschirme
Veröffentlichungsdatum: Mrz 14, 2016
Inhaltsverzeichnis
1.
2.
3.
4.
Warum ist die Wahl der richtigen Softwarearchitektur so wichtig?
Skalieren mit dem Entwurfsmuster eines Zustandsautomaten
Ausführen paralleler Tasks mit dem Queued Message Handler
So werden Sie zum Profi in der Softwareentwicklung
Dieser Artikel ist Teil der Reihe Top 5 der Empfehlungen für LabVIEW-Einsteiger (
http://www.ni.com/newsletter/51735/de/).
1. Warum ist die Wahl der richtigen Softwarearchitektur so wichtig?
Eine der größten Herausforderungen, für LabVIEW (http://www.ni.com/labview/d/)-Einsteiger, aber auch erfahrene Anwender is
die Gestaltung des Blockdiagramms, um effektiv programmieren zu können. Auch wenn Sie es noch nicht glauben wollen, Sie
brauchen keine Großbildleinwand, um ein guter LabVIEW-Programmierer zu werden. Ein aufgeblähtes Diagramm, in dem man
sich nur schwer zurechtfindet, ist häufig ein Symptom einer mangelhaften Archtitektur.
Bestimmt kennen Sie folgendes Szenario: Sie müssen ein Projekt fertigstellen und beschleunigen diesen Prozess, indem Sie T
des Programmcodes „noch schnell“ verbinden. Das Ergebnis ist zwar ein wahres Monster, aber immerhin klappt das Kompiliere
Zwar mag das kurzfristigen Erfolg versprechen, doch dafür beschert Ihnen dieser Ansatz ein unlesbares Diagramm, das sich ü
längere Zeit hinweg nur schwer verstehen, warten und skalieren lässt. Falls das Beispiel in Abbildung 1 Sie also an Ihren eigen
Programmcode erinnert, ist es an der Zeit, ein bisschen mehr über ein paar Schlüsselarchitekturen zu erfahren, mit deren Hilfe
flexiblen, erweiterbaren und performanten Programmcode schreiben können.
Abb. 1: Mit einem solchen Programmcode brauchen Sie mehr Hilfe, als Ihnen ein größerer Bildschirm bereitstellen kann.
Softwarearchitekturen bilden einen ordentlichen und skalierbaren Rahmen für viele Anwendungsfälle. Eine Vielzahl von
Architekturen in LabVIEW, wie etwa der Zustandsautomat, ähneln denen in anderen Programmiersprachen. Kenntnisse von
LabVIEW-Architekturen verringern die Entwicklungszeit und verbessern die Skalierbarkeit von Anwendungen. Ihr Diagramm wi
dadurch besser für Sie und andere lesbar. Die Vorlagen und Beispielprojekte, die seit der Version LabVIEW 2012 im Lieferumf
enthalten sind, bilden ein hervorragendes Hilfsmittel, um mehr über die LabVIEW-Architekturen zu erfahren. Die Vorlagen
erläutern verschiedene Architekturen und deren typische Anwendungsfälle. Darauf aufbauende Beispielprojekte sind größere
Anwendungen, die zeigen, wie Sie mithilfe von passenden Architekturen reale Herausforderungen bewältigen.
2. Skalieren mit dem Entwurfsmuster eines Zustandsautomaten
Mit einem Zustandsautomaten können Sie zügig Anwendungen erstellen, die Sie später skalieren können, indem Sie weitere
1/5
www.ni.com
Mit einem Zustandsautomaten können Sie zügig Anwendungen erstellen, die Sie später skalieren können, indem Sie weitere
Zustände hinzufügen. Diese Architektur kann verwendet werden, um komplexe Algorithmen zur Entscheidungsfindung zu
implementieren, die von Zustandsdiagrammen oder Flussdiagrammen dargestellt werden. Aufgrund des Designs dieser Vorlag
ist es ein Leichtes, neue Codeabschnitte zu ergänzen, Code zu entfernen oder die Ausführungsreihenfolge der Abschnitte zu
ändern. Das alles ist möglich, ohne größere Änderungen an der Struktur der Anwendung vorzunehmen. Neben der nützlichen
Fähigkeit, Entscheidungsfindungsalgorithmen zu implementieren bieten Zustandsautomaten eine zweckmäßige Art der
Anwendungsplanung. Denn je komplexer eine Anwendung wird, desto mehr muss auf das passende Design geachtet werden.
Zustands- und Flussdiagramme sind nützliche Werkzeuge im Entwicklungsprozess.
Zustandsautomaten sind nicht nur praktisch für die Anwendungsplanung sondern lassen sich auch einfach erstellen. Für einen
Zustandsautomaten brauchen Sie eine Schleife mit einer Case-Struktur in ihrem Inneren, sodass der richtige Programmcode fü
einen bestimmten Zustand ausgeführt wird. Zustandsänderungen erfolgen, wenn der nächste Zustand ein Schieberegister pass
und die entsprechende Zustandsinformation als Eingang für den Case-Selektor verwendet wird. Nutzen Sie die Vorlage „Einfac
Zustandsautomat“ in LabVIEW 2012 oder späteren Versionen für Ihren schnellen Einstieg. Klicken Sie im Fenster Erste Schrit
(Getting Started) auf Projekt erstellen (Create Project) und wählen Sie aus der Liste „Einfacher Zustandsautomat“ (Simple
State Machine). Nachdem Sie Ihr Projekt erstellt haben, können Sie in der umfassenden Projektdokumentation genau nachlese
wie sich diese Architektur an Ihre Anforderungen anpassen lässt. Erfahren Sie mehr über das Entwurfsmuster des
Zustandsautomaten. (http://www.ni.com/white-paper/3024/en/)
Abb. 2: Dieser Programmcode ist bereits kompakter und besser skalierbar.
Zwar ist der Zustandsautomat für viele Anwendungen ein leistungsstarkes Werkzeug, doch hat auch er seine Grenzen. So wer
die Zustände in dieser Struktur mit einer Schleife etwa nacheinander ausgeführt. Sollen Operationen parallel durchgeführt werd
kann die Ausführungszeit durch ein Muster mit mehreren Schleifen verkürzt werden.
3. Ausführen paralleler Tasks mit dem Queued Message Handler
Die Vorlage eines Queued Message Handler (QMH) ermöglicht die parallele Ausführung von und den Datenaustausch zwische
Codeabschnitten. Jeder Abschnitt stellt einen Task wie beispielsweise die Erfassung von Daten dar und ist wie ein
Zustandsautomat aufgebaut. Jedoch kann ein QMH ganz einfach zu einem Muster mit mehreren Schleifen erweitert werden, in
dem Tasks miteinander kommunizieren, indem sie Daten in eine Queue einspeisen. Mit diesem Design können Sie Ihre
Anwendung in Tasks aufteilen und mehrere davon zur selben Zeit ausführen. Ein QMH ist ein skalierbares Design und sogar e
Queued Message Handler mit mehreren Schleifen sollte auf einen einzelnen Bildschirm passen, besonders dann, wenn die
Schleifen zur Verarbeitung von Nachrichten in SubVIs verpackt werden.
2/5
www.ni.com
Ein QMH umfasst im Wesentlichen drei Schritte. Zunächst überwacht die Schleife zur Ereignisbehandlung (EHL) das Frontpan
auf Benutzeraktionen, wie etwa das Klicken auf einen Knopf. Wird eine bestimmte Aktion erfasst, wird eine Nachricht erzeugt u
in einer Queue gespeichert. Anschließend liest die Schleife zur Nachrichtenbehandlung die Nachricht aus der Queue. Zum
Schluss wird der Programmcode ausgeführt, auf den sich die Nachricht bezieht. Für parallele Tasks können einfach mehrere
Schleifen zur Nachrichtenbehandlung erstellt werden.
Ein QMH ermöglicht nicht nur die Ausführung paralleler Tasks, sondern kann auch problemlos an neue Anforderungen angepa
werden. Dazu werden zusätzliche Ereignisse in die Schleifen zur Nachrichtenbehandlung eingefügt bzw. weitere solche Schleif
erstellt. Auf diese Weise entsteht eine gut ansprechbare Bedienoberfläche. Da alle Benutzeraktionen überwacht und in der
Schleife zur Ereignisbehandlung in einer Queue aufgereiht werden, ist es unmöglich, eine Aktion zu verpassen, während ander
Code ausgeführt wird. Erfahren Sie in der Vorlage in LabVIEW 2012 oder später mehr über das Erstellen und Bearbeiten eines
QMH.
Abb. 3: Ein Queued Message Handler benötigt mindestens zwei parallele Schleifen.
Das in Abbildung 4 gezeigte Beispielprojekt für kontinuierliche Messung und Protokollierung ist ein Beispiel einer realen
Anwendung, die mit einer QMH-Architektur erstellt wurde. Hier werden fünf Schleifen parallel ausgeführt: die Schleife zur
Ereignisbehandlung, die UI-Nachrichtenschleife, die Nachrichtenschleife für die Erfassung (verpackt in ein SubVI), die
Nachrichtenschleife für die Protokollierung (verpackt in ein SubVI) sowie die Datenanzeigeschleife. Damit ist die Anwendung au
ansprechbar, während sie Daten parallel erfasst, protokolliert und anzeigt, da kein Schritt einen anderen blockiert. Obwohl dies
Anwendung bereits recht anspruchsvoll ist, passt der Programmcode gut auf einen Bildschirm.
3/5
www.ni.com
Abb. 4: Diese relativ komplexe Anwendung passt problemlos auf einen Bildschirm.
4. So werden Sie zum Profi in der Softwareentwicklung
Investieren Sie anfangs genug Zeit in die Architektur Ihrer Anwendung, dann sparen Sie in Zukunft Zeit und Geld. Sie
programmieren auf diese Weise schneller und effizienter, vermeiden Spaghetticode und riesige Blockdiagramme. Sie müssen
auch nicht gleich Certified LabVIEW Architect sein, um besseren Code zu entwickeln. Der Trainingskurs LabVIEW Core 3 (
http://sine.ni.com/tacs/app/overview/p/ap/of/lang/de/ol/de/oc/de/pg/1/sn/n8:28,n24:12754/id/1584/) bietet eine solide Grundlage
um auf Basis grundlegender Architekturen anspruchsvolle Applikationen in LabVIEW effizient zu erstellen. Sie erwerben dort da
nötige Fachwissen, wie Sie einen flexiblen Softwareentwicklungsprozess vom Entwurf über die Implementierung und
Dokumentation bis hin zum Test von Schlüsselfunktionen der Anwendung in die Tat umsetzen. Besitzen Sie einen aktiven
Servicevertrag mit einer Lizenz für LabVIEW Full oder Professional bzw. die Developer Suite, steht Ihnen LabVIEW Core 3 zum
eigenständigen Lernen kostenlos zur Verfügung. Erfahren Sie mehr darüber, wie Sie Ihre LabVIEW-Kenntnisse erweitern könn
(http://www.ni.com/training/d)
Weiterführende Links
Testen Sie LabVIEW kostenfrei (http://www.ni.com/trylabview/d)
Hier finden Sie Webcasts rund um die grafische Programmierung mit NI LabVIEW – für Einsteiger und Fortgeschrittene (
http://germany.ni.com/multimedia/webcast-bibliothek/labview)
Dieser Artikel ist Teil der Reihe Top 5 der Empfehlungen für LabVIEW-Einsteiger (http://www.ni.com/newsletter/51735/de/).
Weitere Teile
Teil 1 – Going With the (Data) Flow (http://www.ni.com/newsletter/51770/de/)
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
)
4/5
Jobs (http://germany.ni.com/karriere/jobs)
www.ni.com
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)
5/5
www.ni.com