Navigation: CL-Studio Software > Die Programmierung des Systems >

Zuweisungen

 

 

 

 

 

Zuweisungen und Rechenfunktionen

 

 

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, d.h. das Ergebnis hat den Typ der Zielvariable-
Wenn die Zielvariable z.B. eine Uhrzeit ist und es werden zwei Zeichen-Variablen mit Werten im Zeitformat addiert ist das Ergebnis die Summe der Zeiten, ist die Zielvariable aber eine Zeichenvariable werden nur die Texte aneinandergehängt.

Beispiele

ZeichenVariable1 := "14:00:00"

Zeitvariable1 := "03:10:00"

 

Bei einer Zeichenvariablen als Zielvariable: 

ZeichenvariableX := ZeichenVariable1 + Zeitvariable1    ist das Ergebnis "14:00:0003:10:00"

Bei einer Variable vom Typ Uhrzeit als Zielvariable: 
ZeitvariableX := ZeichenVariable1 + Zeitvariable1          ist das Ergebnis "17:10:00"


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, dabei kann hinter dem Komma natürlich auch eine Null stehen.

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 Zuweisung von Zuständen können die Zustandstexte in Hochkomma oder der Index eines Zustands verwendet werden, wobei der erste Zustand den Index 0 hat. Bei Verwendung von Zustandstexten muss das Wort exakt so geschrieben werden wie der definierte Zustand in der Typdefinition, auch Gross/Kleinschreibung muss berücksichtigt werden.
Wenn eine Lampe also den Objektytp Licht mit den Zuständen "aus" und "an" hat kann folgende Anweisung zum Ausschalten verwendet werden:

Lampe:="aus"

oder auch

Lampe:=0


Bitte unbedingt beachten:

Wenn bei Zuweisungen ein Text für den Zustand verwendet wird, muss dieser (auch in der Schreibweise) genau einem Zustand des Objekttyps entsprechen, sonst wird die Zuweisung nicht ausgeführt und der alte Zustand bleibt erhalten.

 

Für bestimmte Objektypen können auch umgangssprachliche Begriffe als Schlüsselwörter verwendet werden.

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

 

Gartenlicht einschalten 

hat die gleiche Wirkung wie

GartenLicht:=1

 

Wird einem Objekt ein 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

Gartenlicht einschalten

könnte man auch die Anweisung

Gartenlicht:=“an“

verwenden, das Wort an muss genau wie in der Typdefinition geschrieben sein und in Hochkommas gesetzt werden.

Eine besondere Anweisung zum Einschalten bei Schaltaktoren 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.

Ein weiteres wichtiges Schlüsselwort ist ausschalten um einen Schaltaktor auszuschalten.

 

Die Art der Rechenoperation bei Zuweisungen wird durch den Typ der Zielvariablen bestimmt.

Wenn der Zieltyp vom Typ Zeichen ist, werden die Zeichen in der Zuweisung als Zeichenkette aneinander gereiht.

Wenn die Zielvariable vom Typ Zahl ist, wird eine normale Rechenoperation vorgenommen falls dies mit den angegebenen Operanden und Operatoren möglich ist, dabei können auch Klammenr gemäss den üblichen Rechenregeln verwendet werden.
 

Rechenfunktionen für Zahlen

Es können die vier Grunrechenarten benutzt werden und die Modulo-Operation. Der Operator für die Modulo-Operation ist das Prozentzeichen %. Das Ergebnis der Modulo-Operation ist der ganzzahlige Rest einer Division, wenn einer der Operanden eine Zahl mit Nachkommastellen ist werden diese abgeschnitten.

Weiterhin werden folgende mathematischen Funktionen unterstützt:

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(Var1)

 

Bitte unbedingt beachten:
Innerhalb der Klammer einer Funktion dürfen keine Rechenoperatioenn stehen, nur eine Konstante oder eine Variable, falls ger Parameter berechnet werden muss, kann er vorher in einer Variablen gespeichert werden..

 

 

Rechenfunktion bei Zuweisungen von Uhrzeiten

Uhrzeiten können mit Hilfe der Operatoren + und - addiert bzw. subtrahiert werden.

Beispiel:

AktuelleWeckzeit:=Weckzeit + "00:30:00"

 

Anstatt von Uhrzeiten in Hochkommas kann auch die Zeit in Sekunden angegeben werden.

Diese Anweisung addiert 2 Minuten zu einer Uhrzeit:

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

 

 

Bitte beachten:
Wenn das Ziel der Wert oder Zustand  eines Hardwaregeräts ist, muss der zugewiesene Wert im Wertebereich und Format sein, der für das Hardwaregerät gültig ist. Dies zu prüfen liegt in der Verantwortung des Anwenders, da eine solche Prüfung weder im Editor noch im Compiler vorgenommen werden kann weil die Werte vom jeweiligen Gerät und bei demselben Gerät teilweise von der im Gerät installierten Firmware abhängig sein kann.

 

 

 

 

 

 

Copyright © 2024 CL-control