Zuweisungen

 
Zustände bzw. Werte von Objekten oder Variablen können durch Zuweisungen geändert werden.
Die grundsätzliche Form einer Zuweisung im Programm ist
Ziel := Quelle
wobei Ziel ein Objekt oder eine Variable sein kann. Quelle kann ein Objekt, eine Variable oder eine Konstante sein kann. Bei Zuweisungen von Werten unterschiedlichen Typs wird soweit möglich automatisch eine Konvertierung entsprechend des Typs des Ziels vorgenommen. Bitte beachten Sie, dass Zahlen mit bzw- ohne Kommastellen intern in unterschiedlichen Formaten dargestellt werden und es daher zu Problemen kommen kann wenn diese unterschiedlichen Zahlentypen einander zugewiesen werden. Bei Zuweisungen von Konstanten an Zahlenvariablen mit Nachkommastellen sollte die Konstante immer ein Komma beinhalten damit diese als Gleitkommazahl gespeichert wird. Es wird zwar bei der Ausführung versucht solche Probleme automatisch auszuschalten, wenn bestimmte Grössen überschritten werden funktioniert das aber nicht mehr (wenn eine Integer-Zahl grösser als 2147483647 einer Gleitkommavariablen zugewiesen wird, wird diese Zahl als negative Zahl interpretiert).
Bei Zuweisungen zwischen nicht gleichen selbstdefinierten Typen erfolgt die Zuweisung entsprechend der Reihenfolge der für diesen Typ definierten Zustände, unabhängig von der Bezeichnung des Zustands. Zum Beispiel muss bei der Definition neuer Typen mit den Zuständen AUS/AN darauf geachtet werden, dass der Zustand AUS immer zuerst definiert wird, damit bei Zuweisung an andere AUS/AN-Objekte der richtige Zustand übertragen wird.
Bei der Verwendung von Schlüsselwörtern wie einschalten bei Zuweisungen oder ausgeschaltet in wenn-Bedingungen ist es erforderlich, dass AUS immer als erster Zustand definiert wird, da intern mit der numerischen Reihenfolge der Zustände gearbeitet wird. Durch diese Verfahrensweise ist es möglich, auch Zuweisungen zwischen Typen mit unterschiedlicher Bezeichnung für gleiche Zustände durchführen zu können. Bei der Definition der Zustände von Fenstern und Türen muss offen als erster Zustand und zu als zweiter Zustand definiert werden, damit die entsprechenden Schlüsselwörter bei Zuweisungen und Bedingungen benutzt werden können.
Beispiele für Zuweisungen:
LichtBad:=SchalterBad hat die gleiche Wirkung wie
LichtBad wie SchalterBad
Licht1Garten einschalten hat die gleiche Wirkung wie
Licht1Garten:=1
Wird einem Objekt ein anderer Zustand als Text zugewiesen, so muss dieser in Hochkommas gesetzt werden und genau der Schreibweise der Typdefinition entsprechen, auch Gross/Kleinschreibung muss berücksichtigt werden.
Beispiel:
Anstatt
Rolllade runterfahren
Könnte man auch die Anweisung
RollladeWohnen:=“unten“
verwenden, das Wort unten muss genau wie in der Typdefinition geschrieben sein und in Hochkommas gesetzt werden.
Eine besondere Anweisung zum Einschalten von Lichtern oder Geräten ist die Anweisung
 
Objekt einschalten für Zeitdauer
 
als Zeitdauer kann die Zeit in Hochkommas oder als Variable angegeben werden.
 
Beispiel:
 
Stehlampe einschalten für "00:30:00"
oder
 
Dauer1:="00:10:00"
Gartenlicht einschalten für Dauer1
 
wobei Dauer1 eine Variable vom Typ Uhr oder Zeichen sein muss.
 
Weitere besondere Schlüsselwörter für Zuweisungen sind:
AUSSCHALTEN
und für Rollladen
ÖFFNEN
SCHLIESSEN
RAUFFAHREN
RUNTERFAHREN
 
Für Keymatic können die Schlüsselwörter öffnen und schliessen nicht benutzt werden, dafür gibt es die Schlüsselwörter:
 
ENTRIEGELN
VERRIEGELN
TÜRÖFFNEN
 
Rechenfunktionen bei Zuweisungen numerischer Werte
Bei Zuweisungen an ein Objekt bzw. eine Variable des Typs Zahl können die vier Grundrechenarten und einige mathematische Funktionen benutzt werden, dabei können auch Klammrn benutzt werden. So ist es z.B. möglich Eingabewerte von Sensoren für die weitere Verarbeitung zu verändern.
Folgende mathematischen Funktionen stehen zur Verfügung:
LN = natürlicher Logarithmus
EXP = Exponentialfunktion (Umkehrfunktion von LN)
LOG = dekadischer Logarithums (zur Basis 10)
SIN = Sinus
ASIN = Arcus Sinus
COS = Cosinus
ACOS = Arcus Cosinus
TAN = Tangens
ATAN = Arcus Tangens
SQRT = Quadratwurzel
ABS = Absolutwert
 
Beispiel:
Durchschnitt:=Summe / Anzahl
Var1:=Wert1 * (Wert2 + Wert3)
QW:=SQRT(Meinwert)
 
 
Rechenfunktion bei Zuweisungen von Uhrzeiten
Uhrzeiten können mit Hilfe der Operatoren + und - addiert bzw. subtrahiert werden.
Beispiel:
Sie wollen, dass ein Makro alle morgendlichen Aktivitäten um eine Viertelstunde verzögert. Dies könnte so aussehen:
 
RollRaufZeit:= RollRaufZeit + "00:15:00"
KaffeeEinZeit:= KaffeeEinZeit + "00:15:00"
 
Anstatt von Uhrzeiten in Hochkommas kann auch die Zeit in Sekunden angegeben werden.Um also 2 Minuten zu einer Uhrzeit zu addieren könnte man schreiben:
 
ZeitLicht1:=ZeitLicht1 + 120
 
Rechenfunktion bei Zuweisungen von Datumswerten
 
Es ist auch möglich ein Datum durch eine Rechenoperation zu ermitteln.
Das Datum 11 Tage nach dem aktuellen Tag kann man z.B. einfach ermitteln mit der Anweisung:
 
Zukunft:=Datum+11
 
wobei die Variable Zukunft natürlich vom Typ Datum sein muss.
 
Verknüpfungsfunktion bei Zuweisungen von Texten
Mit Hilfe von Zuweisungen können zwei oder mehr Zeichenketten verbunden werden. Wenn in der Anweisung Operanden eines anderen Typs als Zeichenkette benutzt wird, werden diese soweit möglich automatisch konvertiert.
Beispiel:
 
AnzeigeKueche:="Garage ist "+Garagentor
 
Wenn das Objekt Garagentor die Typen auf und zuhat, und das Garagentor auf ist erscheint in der Anzeige Garage ist auf
 
AnzeigeBad:=Uhrzeit+" Uhr"
 
Der Text in der Anzeige sieht dann so aus: 22:30:00 Uhr
 

Created with help of DrExplain