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

Bedingungen

 

 

 

 

 

Bedingungen

 

Im Folgenden werden die Formen der Bedingungen in wenn-Anweisungen beschrieben, nicht die Wenn-Anweisung selber.

Details zu dieser Anweisung finden Sie im Kapitel wenn-Anweisungen.

In wenn-Anweisungen wird aufgrund von Bedingungen entschieden welche weiteren Anweisungen ausgeführt werden. Eine Bedingung ist entweder WAHR oder FALSCH. Bedingungen können mit UND bzw. ODER verknüpft werden.

Bedingungen sind folgendermaßen aufgebaut:

wenn Operand1 Vergleichsoperator Operand2

Beispiel:

wenn  Temperatur  kleiner  21,5

 

Wenn die Operanden unterschiedlichen Typs sind, findet soweit möglich eine automatische Konvertierung statt. Dazu ist es erforderlich, dass das in der Bedingungs abgefragte Objekt bzw. die Variable ímmer Operand1 in der Vergleichsabfrage ist, wie es der Logik einer Abfrage entspricht. So kann der Operand2 dann auf den passenden Typ konvertiert werden wenn unterschiedliche Typen verglichen werden sollen.

Wenn einer der Operanden eine Konstante ist muss diese immer Operand2 sein damit eine Konvertierung auf den Typ des abzufragenden Objekts/Variablen durchgeführt werden kann.

Beispiel einer Uhrzeitabfrage:

Richtig: wenn Uhrzeit = "15:15:00" dann

Falsch:  wenn "15:15:00" = Uhrzeit dann

 

Standard-Vergleichsoperatoren

= oder gleich

<> oder ungleich

< oder kleiner

> oder groesser

<= (kleiner oder gleich)

>= (grösser oder gleich)

 

 

Vergleichsbedingungen

 

          Bei Vergleichen von Zuständen können die Zustandstexte in Hochkomma oder der Index eines Zustands verwendet werden, wobei der erste Zustand den Index 0 hat.
Die Abfrage ob eine Lampe ausgeschaltet ist kann also mit der Anweisung

wenn Lampe = "aus" dann

oder auch

wenn Lampe = 0 dann
durchgeführt werden.
 

Schlüsselwörter in Vergleichsbedingungen

 

Bei Vergleichen können für bestimmte Objekttypen auch Schlüsselwörter benutzt werden.

wenn Lampe eingeschaltet

hat die gleiche Wirkung wie

wenn Lampe = "an"

bzw.

wenn Lampe = 1 

 

wenn Lampe ausgeschaltet

hat die gleiche Wirkung wie

wenn Lampe = "aus"
bzw.
wenn Lampe = 0

 

weitere besondere Schlüsselwörter für Bedingungen sind

GEÖFFNET und GESCHLOSSEN für Tür/Fensterkontakte (nicht für Rollladen, Jalousien, KeyMatic, Winmatic !),

also z.B.:

wenn Fenster geoeffnet dann

 

Um bei einer Fernbedienungstaste festzustellen ob diese kurz oder lang gedrückt wurde kann z.B. folgende Abfrage verwendet werden:

 

WENN FBWohnenTaste2 = "lang" dann

  Stehlampe einschalten

SONST

  Stehlampe ausschalten

ENDEWENN

 

 

Zeit-Vergleiche

Bei Zeitvergleichen ist zu beachten, dass die Uhrzeit im 5-Sekunden-Takt aktualisiert wird, die Sekunden der Uhrzeit bei der Prüfung auf Zeitgleichheit also immer durch 5 teilbar sein müssen.

Wenn Uhrzeitvergleiche verwendet werden, muss sichergestellt sein, dass das Makro zu dem Zeitpunkt zu dem die Bedingung zutrifft könnte auch ausgeführt wird. Wenn also die Vergleichszeit volle Minuten hat, muss das Zeitintervall für das Makro mindestens auf 1 x in der  Minute gesetzt sein, wenn es eine durch 5 Sekunden teilbare Uhrzeit ist muss das Ausführungsintervall auf 5 Sekunden gesetzt werden.

 

wenn Uhrzeit = "HH:MM:SS" .....

 

bei dieser Bedingung ist zu beachten, dass die Uhrzeit in Hochkommas gesetzt wird. Weiterhin müssen die Sekunden durch 5 teilbar sein, da die Bedingung sonst nie zutrifft.

 

wenn Datum = "TT.MM.JJJJ"

 

bei dieser Bedingung ist zu beachten, dass das Datum in Hochkommas gesetzt wird und das Jahr vollständig, also 4-stellig mit Jahrtausend angegeben werden muss.

 

wenn Wochentag = "Wochentag"

 

Prüfung auf einen Wochentag. Der Wochentag wird in Hochkommas gesetzt und muss mit einem Großbuchstaben und nachfolgenden Kleinbuchstaben geschrieben werden.

Beispiel : wenn Wochentag = "Freitag" dann

 

wenn Monat Vergleichsoperator Zahl

 

Beispiel :

 

wenn Monat groesser 4 und Monat kleiner 10 dann

 

bewirkt, dass die folgenden Anweisungen nur zwischen Mai und September ausgeführt werden.

Vergleichsoperator =* für Vergleiche mit Jokerzeichen

Beim Vergleich von Uhrzeit und Datum mit einer Konstanten können auch Jokerzeichen verwendet werden. Als Vergleichsoperator muss dann =* verwendet werden. Operand2 muss eine Konstante in Hochkommas sein.

Beispiele:

Um Anweisungen jede volle und halbe Stunde auszuführen:

 

wenn Uhrzeit =* "**:00:00" oder Uhrzeit =* "**:30:00" dann

......

Um Anweisungen immer am Ersten eines Monats auszuführen:

 

wenn Datum =* "01.**.****" dann

 

Bedingung für Bereiche

Mit diesem besonderen Bedingungstyp ist es möglich z.B. Aktionen nur innerhalb bestimmter Bereiche und Zeiträume auszuführen.

 

wenn Prüfwert zwischen Startwert und Endwert dann

......

Beispiele für Zeiträume:

 

wenn Uhrzeit/Datum zwischen "Zeitkonstante" und "Zeitkonstante" dann

 

wenn Uhrzeit zwischen "23:00:00" und "05:00:00" dann

 

wenn Monat zwischen 5 und 9 dann

ist wahr von Mai bis September

 

wenn Monat zwischen 10 und 4 dann

ist wahr von Oktober bis April

 

wenn Monat zwischen 6 und 6 dann

ist nur im Juni wahr

 

Dieser Bedingungstyp kann nicht nur für Zeiträume, sondern grundsätzlich für alle Werte benutzt werden.

 

wenn Temperatur zwischen 18,0 und 21,0 dann

ist von 18,0 bis 21,0 Grad wahr

 

Bitte beachten - grundsätzlich gilt:

wenn der Startwert kleiner ist als der Endwert ist die Bedingung wahr wenn der Prüfwert im zu prüfenden Bereich liegt, also auch wenn er gleich mit dem Start- oder Endwert ist.

wenn der Startwert grösser ist als der Endwert ist die Bedingung wahr wenn der Prüfwert nicht zwischen Startwert und Endwert liegt.

Diese Verfahrensweise bietet die grösste Flexibilität und ergibt auch bei Bedingungen für Zeiträume mit Tageswechsel wie z.B. "wenn Uhrzeit zwischen "23:00:00" und "05:00:00" dann" das richtige Ergebnis, aber es muss genau darauf geachtet werden in welcher Reihenfolge Start- und Endwert angegeben werden.

 

Vergleichsoperator =+ für Vergleiche mit Wochenmaske

Mit diesem Vergleichsoperator ist es möglich Anweisungen nur an bestimmten Wochentagen ausführen zu lassen. Als Operand2 muß eine 7-stellige Konstante oder Variable vom Ty Zeichen bestehend aus Nullen und Einsen in Hochkommas verwendet werden. Jede Stelle steht für einen Wochentag, beginnend mit Sonntag. Die Bedingung ist wahr wenn an der Stelle des aktuellen Wochentags eine Eins steht.

 

Beispiel : Es soll geprüft werden, ob der aktuelle Tag ein Freitag, Samstag oder Sonntag ist.

 

wenn Wochentag =+ "1000011" dann

 

 

 

 

 

 

Copyright © 2023 CL-control