Variablen

Q-SYS Control 101 Training (German) : Flow Control

3 ) Einfache Kommunikation

12m 54s

4 ) Block Controller

18m 50s

6 ) Flow Control

36m 23s

7 ) Fazit „Control 101“

1m 29s

Übungsbeschreibung

Variablen 5m 18s

Mache dir das Programmieren leichter, indem du in Lua und im Block Controller Objekte mit Variablen referenzierst.

Video Transkript

Variablen 5m 18s
0:08
Lasst uns über Variablen sprechen. In Filmen über Banküberfälle ist häufig von „Variablen“ die Rede,
0:14
wenn es darum geht, was alles schief gehen könnte. Manchmal wird eine Variable als „bekannte
0:20
Unbekannte“ bezeichnet – etwas, von dem du weißt, dass es existiert, aber nicht, was es ist. Doch im
0:26
Scripting weißt du oft ganz genau, was deine Variable ist, und du wählst einfach eine aus, die dir das
0:32
Schreiben deines Skripts erleichtert. Ich betrachte eine Variable am liebsten als Bezeichnung für
0:37
einen Wert, der sich ändern kann oder auch nicht.
0:41
In der Algebra werden oft ein x, y oder z für Variablen eingesetzt – dies sind nur Buchstaben, die
0:47
irgendeine andere Zahl repräsentieren. In Lua können diese Variablen so definiert werden: Du
0:54
schreibst den Namen der Variablen, ein Gleichheitszeichen und das, was diese Variable
0:59
repräsentieren soll.
1:01
Doch beschränkt sich dies nicht nur auf einzelne Buchstaben oder Zahlen. Es können ganze Wörter
1:06
für Variablen stehen, und eine Variable könnte einen Zahlenwert, eine Zeichenfolge oder
1:12
Steuerungseigenschaft definieren, oder sogar eine ganze Funktion oder mehr.
1:17
In diesem Beispiel repräsentiert eine Variable einen veränderlichen Wert. Ich setze die Variable „s“
1:24
für die Zeichenfolge „Hello“ ein und „drucke“ „(s)“. Angezeigt wird die Variable „s“, nicht der
1:31
Buchstabe „s“. Dann weise ich die Variable „s“ neu zu, und zwar der Zeichenfolge „World“, und
1:39
„drucke“ „(s)“ noch einmal.
1:42
Die beiden „drucke(s)“-Befehle sind identisch, aber weil die Variable sich zwischenzeitlich geändert
1:48
hat, liefert uns der Compiler beim Durchlaufen des Skripts zwei Ergebnisse, je nachdem, was die
1:54
Variable zum Zeitpunkt der Befehlsausgabe war.
1:58
Genauso kann eine Variable den Wert oder String eines Steuerungselements repräsentieren. Diese
2:04
Information wird nicht in deinem Skript definiert, sie kommt aus der normalen Q-SYS-Umgebung.
2:10
Aber wenn du die Variable anzeigst, stellt sie den aktuellen Zustand dieses Steuerungselements dar.
2:16
Oft nutzt man eine Variable als einfache Abkürzung für etwas, das häufig verwendet wird.
2:22
Angenommen, du hast ein längeres Skript mit mehreren Funktionen, die alle mit dem String
2:27
„Message Complete“ antworten.
2:30
Falls du diesen String später ändern möchtest, musst du alle Funktionen durchgehen und sie Zeile für
2:35
Zeile ändern, oder aber du nimmst von vornherein eine Variable. Dann definierst du deine Variable
2:41
am Anfang des Skripts und brauchst sie dann immer nur an einer Stelle zu ändern. Das wird dann an
2:47
jede Instanz mit Bezug auf diese Variable übertragen.
2:51
Die Variablen, die wir bis hierher erstellt haben, heißen „globale Variablen“, weil sie überall in
2:56
deinem Skript gelten. Manchmal brauchst du vielleicht eine lokale Variable, die innerhalb einer
3:02
Funktion oder Steuerungsstruktur definiert sein soll, und nur im Regelungsbereich dieser Funktion
3:07
gelten soll. Hast du z.B. viele Funktionen, die alle etwas ähnliches tun, wäre es recht mühsam, globale
3:13
Variablen wie „output1“, „output2“, „output3“ usw. zu verwenden. Stattdessen könnte jede Funktion
3:20
ihre eigene Variable nams „output“ erstellen, die niemals außerhalb ihrer eigenen Funktion agieren
3:26
wird. Wie Funktionen erstellt werden, sehen wir uns im nächsten Video an.
3:30
Im Block Controller kannst du Variablen mit den Blöcken im Tab „Variables and Functions“
3:35
manipulieren. Mit dem „create“-Block erstellst du eine neue Variable und kannst diese auf der
3:41
anderen Seite des Gleichheitszeichens definieren (oder auch nicht).
3:45
Anschließend kannst du für diese Variable mit dem „set“-Block einen neuen Wert festlegen. Falls auf
3:51
diese Variable Bezug referenzieren willst, kannst du diesen Block hier mit ihrem Namen verwenden.
3:55
Falls ich eine Variable anzeigen möchte, die durch den Wert eines Steuerungselements definiert wird,
4:04
Nachdem du eine Reihe von Variablen erstellt hast, stehen diese alle im Aufklappmenü zur
4:08
Verfügung. Dir fällt sicher auf, dass der Standardname für Variablen „foo“ ist, und – ich kann dies
4:15
nicht stark genug betonen – du solltest Mitleid haben.
4:19
Noch eine letzte Sache zum Block Controller – wie du siehst, weiß er, dass die Variable eine globale
4:24
Variable ist. Wenn du dagegen die Variable innerhalb der Konstruktion eines Funktionsblocks
4:29
erstellst, versteht er automatisch, dass es sich um eine lokale Variable handelt. Du must dich nicht für
4:35
eine Variante entscheiden.
4:37
Auch kannst du im Block Controller den „create“-Block nur einmal für jede Variable verwenden.
4:43
Nachdem die Variable erstellt ist, kannst du sie nur mit dem „set“-Block in etwas anderes
4:47
umwandeln. In Lua kannst du denselben Befehl verwenden, um eine Variable entweder zu erstellen
4:54
oder neu zu definieren – das siehst du im Lua-Tab dieser Blöcke: „foo=‘awesome’“ und
5:00
„foo=‘moreawesome’“ –, aber der Block Controller braucht diese beiden Konzepte getrennt.
5:06
Und das war‘s schon mit den Variablen. Im Control Worksheet findet ihr eine Übungsaufgabe, und
5:11
wenn ihr sie erledigt haben, machen wir mit den „Funktionen“ weiter.