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