WENN SIE ES GENAUER WISSEN WOLLEN:

Einführung in LabVIEW

LabVIEW ist eine im Bereich der Mess- und Automatisierungstechnik weit eingeführte grafisch orientierte Programmieroberfläche, die neben den üblichen Programmablauf- und -bedienstrukturen insbesondere auch eine Vielzahl mathematischer und signalverarbeitungsbezogener Funktionen beinhaltet. Damit erstellte Applikationen können auf dem PC, aber auch auf ausgewählten Embedded Systems-Architekturen ablaufen. LabVIEW verfügt auch über leistungsfähige Funktionen, um ausgehend von mathematischen Modellierungen technische Prozesse in ihrem zeitlichen Verhalten (bzw. auch im sog. Frequenzbereich) zu simulieren.

Projekt-Explorer

Projekte mit LabVIEW werden typischerweise im sog. Projekt-Explorer verwaltet. Dieser speichert seine Daten in einer entsprechenden Projektdatei mit der Dateikennung *.lvproj. Die eigentlichen LabVIEW-Programme befinden sich in eigenen Dateien mit der Kennung *.vi. „vi“ steht hierbei für „virtual instrument“ und lässt den ursprünglichen Hintergrund von LabVIEW erkennen, bei dem es primär um die Programmierung PC-basierter, also „virtueller“ Messgeräte ging.

Das Bild zeigt den mit einer Projektdatei geöffneten Projekt-Explorer zusammen mit zwei weiteren Fenstern, die zu einer VI-Datei gehören. Es handelt sich hierbei einerseits um das Frontpanel, welches beim Programmablauf die Bedienoberfläche darstellt, also den Teil des Programms, den der Benutzer sieht und bedient. Andererseits ist das Blockdiagramm zu sehen, welches das „Innenleben“ des Programms ausmacht, worunter der exakte Programmablauf und sämtliche Verarbeitungs- und Rechenoperationen zu verstehen sind. Frontpanel und Blockdiagramm gehören stets zusammen und werden immer gleichzeitig in derselben VI-Datei abgespeichert.

Projekt-Explorer, Blockdiagramm und Frontpanel

Projekt-Explorer, Blockdiagramm und Frontpanel

Frontpanel

Zur Bestückung des Frontpanels können aus der sog. Elemente-Palette Bedien- und Anzeigeelemente per Drag-and-Drop platziert werden. Erstere lassen sich später bedienen, während letztere der reinen Anzeige dienen. Leider sind beide Elementearten in den entsprechenden Unterpaletten gemischt aufgeführt, so dass eine Unterscheidung auf den ersten Blick bei wenig LabVIEW-Erfahrung mitunter etwas schwer fällt. Es gibt mehrere Designs dieser Elemente, die teilweise für unterschiedliche Zielplattformen optimiert sind. Für Anwendungen am PC ist i.d.R. das Design unter „Modern“ zu bevorzugen. In den meisten automatisierungstechnischen Anwendungen kommen dabei vor numerische Elemente (zum Eingeben bzw. Anzeigen von Zahlenwerten), boolesche Elemente (z.B. in Form von Ein-/Aus-Schaltern oder virtuellen Zustands-LEDs) und Graphen (zur Darstellung des zeitlichen Verlaufs von Signalen über der Zeit).

Blockdiagramm

Die für alle Programme überwiegend notwendigen Basisprogrammierfunktionen finden sich in der Unterpalette „Programmierung“. Man findet u.a. alle Funktionen, wie sie auch in klassischen, textorientierten Programmiertools existieren, also z.B. Ablaufstrukturen wie Schleifen oder Fallunterscheidungen (Unterpalette „Strukturen“), Array-Funktionen (Felder), Clusterfunktionen (in anderen Tools auch als „Records“ geläufig) sowie Rechen- bzw. Verarbeitungsfunktionen für numerische Daten (also Zahlenwerte), boolesche Daten oder Strings (Textzeichenketten).

Funktionen-Palette mit geöffneten Unterpaletten „Programmierung“ und „Mathematik“

Funktionen-Palette mit geöffneten Unterpaletten „Programmierung“ und „Mathematik“

Programmabläufe grafisch codiert

Wir wollen nochmals auf das erste Bild oben zurückkommen und den darin dargestellten grafisch codierten Programmablauf erläutern. Das mit einem grauen Rahmen versehene Rechteck stellt eine While-Scheife dar. Sie wird so oft durchlaufen, bis eine am roten Punkt eingehende Endemeldung in Form eines boolschen False-Werts einläuft. „Durchlaufen“ meint in einem LabVIEW-Blockdiagramm, dass alle grafischen Elemente in einer Reihenfolge abgearbeitet werden, die grob von links nach rechts strukturiert ist bzw. durch die Daten führenden Verbindungsdrähte vorgegeben wird.

Zum Verständnis des Programms ist noch wichtig zu wissen, dass für jedes des im Frontpanel enthaltenen Anzeige- bzw. Bedienelements ein Platzhaltersymbol im Blockdiagramm automatisch angelegt wird, welches über entsprechende Aus- bzw. Eingänge ebenfalls verdrahtet werden kann. Unser Programm liest nun in jedem Schleifendurchlauf zuerst den am Drehknopf aktuell eingestellten Wert ein, addiert 10,35 (als numerische Konstante fest im Blockdiagramm einprogrammiert), berechnet das Quadrat und stellt das Ergebnis in Form eines Tanks mit zusätzlich dabei aktivierter Zahlenwertdarstellung dar. Die Schleife und damit das Programm als Ganzes werden erst beendet, wenn der „BEENDEN“-Knopf gedrückt wird.

Datentypen

LabVIEW besitzt ähnlich den textorientierten Programmiersprachen eine Vielzahl an Datentypen, die zusammen mit den diese Daten übertragenden Verbindungsdrähten jeweils spezifische Farben aufweisen. Unter den numerischen Datentypen finden sich verschiedene Fließkommazahl-Formate sowie mehrere Ganzzahl-Formate (Integer). Weitere Datentypen sind u.a. die in allen Programmiersprachen verbreiteten Aufzählungen (hier „Enum“; sonst auch als „Set“ bekannt), booleschen Werte, Strings, Arrays (Felder) und Cluster (Records) sowie für entsprechende mathematische Operationen Matrixstrukturen. Darüber hinaus existieren spezielle Datentypen wie z.B. Pfade auf Dateien, Signalverläufe (mit denen Abtastsignale mit zugehörigen Zeitinformationen codiert werden können) oder Bilder.

Signalverläufe

Wir wollen abschließend unser einfaches Beispielprogramm noch leicht erweitern, um auch den Verlauf der am Bedienknopf eingegeben Werte über der Zeit darzustellen. Hierzu ergänzen wir gemäß nachfolgendem Bild noch – um beide Varianten der Signaldarstellung zu zeigen – je ein sog. Signalverlaufsdiagramm und einen Signalverlaufsgraphen.

Erweitertes Beispielprogramm (Blockdiagramm)

Erweitertes Beispielprogramm (Blockdiagramm)

Hierbei bauen wir jedoch bewusst eine unterschiedliche Platzierung der beiden Platzhaltersymbole ein. Das Signalverlaufsdiagramm belassen wir innerhalb der Schleife, während wir den Signalverlaufsgraphen außerhalb der Schleife anordnen. Der Unterschied im Programmablauf besteht darin, dass das Signalverlaufsdiagramm bei jedem Schleifendurchlauf mit einem neuen Wert bestückt wird. Im Diagramm läuft die Kurve kontinuierlich weiter. Sie wird durch das Diagrammfenster geschoben, so dass man je nach Konfiguration immer die jüngste Historie „live“ sehen kann. Eine zusätzliche Funktion haben wir mit dem im Schleifenkörper inkl. Eingangskonstante links oben platzierten Symbol ebenfalls noch eingeführt. Es handelt sich um eine in der Funktionen-Unterpalette „Timing“ (diese wiederum unter „Programmierung“ auffindbar) befindliche Wartefunktion, welche die am Eingang übergebene Anzahl von Millisekunden wartet, sobald LabVIEW in der Programmausführung darauf stößt. In unserem Fall erfolgt dies in jedem Schleifendurchlauf einmal, woraufhin 1.000 Millisekunden, also eine Sekunde gewartet wird. Das Signalverlaufsdiagramm wird also im Abstand von jeweils einer Sekunde mit einem neuen Wert bestückt.

WENN SIE ES GENAUER WISSEN WOLLEN: