3Datentypen und ein erstes Programm
Das Frontpanel, das der spätere Benutzer bei der Bedienung des Programms sieht, muss Möglichkeiten zur Eingabe und Ausgabe von Daten bieten. Diese findet man in der Elementpalette (Rechtsklick), die Eingabeelemente und Anzeigeelemente bereitstellt, nach Datentypen und Kommunikationsrichtung geordnet. Die Daten werden entsprechend auf verschiedene Weisen gespeichert und verarbeitet, von denen hier die elementaren und für Einsteiger relevanten vorgestellt werden.
Abb. 3.1: Datentypen von Frontpanelelementen
3.1Numerische Datentypen
Je nach Verwendung werden numerische Daten in verschiedenen Formaten gespeichert:
•EXT: Kommazahl mit besonders großer Genauigkeit
•DBL: Kommazahl mit normaler Genauigkeit
•SGL: Kommazahl mit geringer Genauigkeit
•I8-I64: Integerzahlen (ohne Komma), die positiv und negativ sein können
•U8-U64: Unsigned Integer, die nur positive Zahlen sein können
•CXT, CDB, CSG: komplexe Zahlen
Welche Werte können mit den verschiedenen Datentypen abgebildet werden?
Tabelle 3.1: Wertebereiche einiger numerischer Datentypen
I8 | -27 bis + 27 – 1 | -128 bis 127 |
U16 | 0 bis + 216 – 1 | 0 bis 65535 |
I16 | -215 bis + 215 – 1 | -32768 bis 32767 |
Es ist immer darauf zu achten, dass man bei einer Rechnung den Wertebereich nicht überschreitet. Verwendet man den Typ U8, ergibt die Rechnung 100 – 101 = 255, was aber falsch ist.
Tabelle 3.2: Numerische Datentypen
3.1.1Erzeugen eines Eingabeelements
Ein Eingabeelement erhält man aus der Elementpalette durch Rechtsklick im Frontpanel und Auswählen eines entsprechenden Bedienelements. Es stehen verschiedene Optionen zur Verfügung. Typische wurden bereits in der ersten Grafik angezeigt.
Abb. 3.2: Erzeugung eines Eingabeelements
Bei der Erstellung können Sie nicht auswählen, ob ein Eingabe-/Anzeigeelement für eine numerische Eingabe den Datentyp DBL oder U8 hat. Sie müssen nachträglich den Datentyp festlegen.
Abb. 3.3: Kontextmenü-Darstellung zur Auswahl des Datentyps
Die Entscheidung, ob es sich um eine Eingabe oder Ausgabe handelt, kann man auch nachträglich über die rechte Maustaste >> In Bedienelement/Anzeigeelement umwandeln ändern.
3.1.2Darstellung der Symbole der Frontpanelelemente im Blockdiagramm
Im Blockdiagramm sind zwei Darstellungen für Ein- und Anzeigeelemente möglich. Die größere Darstellung enthält mitunter noch zusätzliche Informationen, z. B. über den Typ der Ausgabe (Zeigerinstrument ...). Über das Kontextmenü (rechte Maustaste) kann man die gewünschte Darstellung wählen.
Abb. 3.4: Symbole für Ein- und Anzeigeelemente
3.1.3Einfache Berechnungen
Die grundlegenden mathematischen Funktionen lassen sich im klassischen Menü unter Programmierung >> Numerisch finden. Die Programmierung dieser Funktionen ist einleuchtend. Links wird mit Eingabevariablen verbunden, rechts erhält man das Ergebnis.
Abb. 3.5: Auswahl der Funktion Addieren
In Abb. 3.6 wurde das am Beispiel der Addition ausgeführt, die einfach mit Ein- und Anzeigeelementen verbunden wird. Das Programm in diesem Bild ist bereits lauffähig. Die Verbindung (mit der Drahtspule) und das Starten des Programms werden am Ende des Kapitels erläutert.
Abb. 3.6: Ausführbares Programm zur Addition von zwei Zahlen
3.2Strings oder Zeichenketten
Ein weiterer wichtiger Datentyp ist ein String. Strings sind Zeichenketten und können Buchstaben, Sonderzeichen oder Ziffern enthalten. Strings werden ähnlich erzeugt wie numerische Datentypen, und so sehen sie auch im Programm aus.
Abb. 3.7: Erzeugung, Strings im Programm
Im Bild oben werden auf der rechten Seite ein Programm mit einer String-Ausgabe und eine Pfadanzeige dargestellt. Ein Pfad ist ein spezieller Datentyp, der die typische Formatierung eines Dateipfads aufweist. Die besondere Eigenschaft dieses Elements zeigt sich erst (später) im Blockdiagramm: Man kann diesen Pfad konkret zur Dateibearbeitung verwenden. Mit dem, was bis hier vorgestellt wurde, kann bereits die „Hallo, Welt!“-Übung am Ende des Kapitels durchgeführt werden.
3.3Boolesch
Binäre Daten (true/false) werden in der deutschen Version von LabVIEW als boolesch (wahr/falsch) bezeichnet. Sie können z. B. damit den Zustand eines Schalters zeigen.
Abb. 3.8: Bedienen des Schalters mit dem Finger aus der Werkzeugpalette
3.4Weitere Datentypen
Es gibt noch mehr Datentypen, die aber nicht hier besprochen werden. Einer davon ist der Typ dynamische Daten, der beim Einsatz der Expresstechnik vorkommt. Ein Signal enthält nicht nur die (Mess-)Daten, sondern auch die Startzeit und ein dt, das den zeitlichen Abstand der Werte angibt.
Weiterführender Hinweis: Im Kap. 17 („Soundkarte“) wird die Verwendung von Arrays >> Signalverlauf >> Dynamische Daten erläutert.
3.5Umwandlung von Daten in einen anderen Datentyp
Numerische Daten können in einen anderen numerischen Datentyp umgewandelt werden. Dafür stehen schon Funktionen im Menü Konvertierung zur Verfügung.
Abb. 3.9: Konversion vom Typ Double in Integer
Da ein Integer ganze Zahlen darstellt, geht der Wert nach dem Dezimalpunkt verloren. Die Umwandlungsfunktionen finden Sie unter Programmierung >> Numerisch >> Konvertierung.
Abb. 3.10: Konversionsfunktion für die Umwandlung in einen U32 (vorzeichenlos und 32 Bit)
3.6Konstanten
Eine Konstante ist im Blockdiagramm zu finden und hat einen Wert, den der Programmierer festgelegt hat. Der Benutzer kann diesen Wert nicht verändern. Eine Konstante kann man auf zwei Arten erzeugen: im Menü, durch Wahl bei den entsprechenden Funktionen oder indem man mit der Drahtspule an einen Eingang geht und sie über das Kontextmenü erstellt.
Abb. 3.11: Erstellen einer Konstante über das Kontextmenü
Abb. 3.12: Erstellen einer Konstanten vom Typ Numerisch, Binär oder String
3.7Hallo, Welt!
An dieser Stelle folgt das meistgeschriebene Programm der Welt in der LabVIEW-Version: An einer String-Konstante ist eine Ausgabe angeschlossen, sodass nach dem Programmstart der Text ausgegeben wird.
Fügen Sie zunächst in ein leeres VI eine String-Anzeige (aus der Elementpalette) ein. Drücken Sie auf ausführen, Wiederholt ausführen oder Ausführung abbrechen. Der Unterschied zwischen den ersten beiden ist, ob ständig auf Änderungen gewartet wird oder ob nur der Zustand vor dem Starten abgefragt wird.
Abb. 3.13: Ausführen und Stoppen eines Programms
Hier passiert aber nichts – wo nichts programmiert wurde, kann nichts angezeigt werden. Stoppen Sie Ihr Programm und klicken Sie im Frontpanel doppelt auf die Ausgabe. Sie wechseln dadurch ins Blockdiagramm und finden so den zugehörigen Block. Das funktioniert auch umgekehrt. Im Blockdiagramm wird nun der Anzeige ein konstanter Wert zugewiesen. Dazu klicken Sie mit der rechten Maustaste auf den Block und folgen dem Bild:
Abb. 3.14: Erzeugung einer String-Konstanten
Es entsteht ein kleines Feld, das mit dem Block verbunden ist. Wenn keine Verbindung besteht, haben Sie versehentlich ein Eingabeelement gewählt. Ändern Sie dies (z. B. mit Rechtsklick, in Anzeigeelement umwandeln).
Tippen Sie „Hallo, Welt!“ in dieses Feld. Wenn Sie den Cursor im Feld verlieren, können Sie mit dem Schreibwerkzeug aus der Werkzeugpalette wieder dorthin gelangen.
Wechseln Sie jetzt zum gewöhnlichen Mauszeiger (aus der Werkzeugpalette) und starten Sie das Programm.
3.7.1Hinweis zur Drahtspule
Die Drahtspule ist eines der wichtigsten Werkzeuge in LabVIEW. Mit ihr kann man verschiedene Blöcke im Blockdiagramm verbinden, wie es schon ohne ihr Zutun zwischen der Konstante (Hallo, Welt!) und dem Anzeigeelement geschehen ist. Klicken Sie mit dem Mauszeiger auf die Verbindung und löschen Sie diese....