Variablen

Site: QSC
Course: Q-SYS Control 101 Training (German)
Book: Variablen
Printed by: Guest user
Date: Tuesday, 21 May 2024, 10:43 AM

Description

Übungsbeschreibung

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

Video Transkript

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.