# Wertänderung

Mit der Operation „Wertänderung“ werden Wert und Eigenschaft von Variable, Objekt und Plattform geändert.

##### Baustein

##### Text

changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, TARGET, EXPRESSION);
3 1 2 4

1: Operation

2: Ziel

3: When over

Legen Sie den Vorgang für den Fall, dass der Wert den Bereich überschreitet, fest.

Einstellung in [When over]:

- [Loop]: Der Teil, der den Bereich überschreitet, wird in einer Schleife auf den Mindest- oder Höchstwert gesetzt. Wenn der Wertebereich beispielsweise 0 bis 10 beträgt, ergibt die Addition von 7 zu einem aktuellen Wert von 5 eine 1. Die einzige Ausnahme gilt für den Vorgang [Set]. Wenn Sie in diesem Fall einen Wert schreiben, der den Wertebereich überschreitet, bleibt der aktuelle Wert unverändert.
- [Stop]: Der Wert wird entweder auf den Mindestwert oder den Höchstwert gesetzt.

Hinweis: [Loop] unterstützt keine Variablen des Datentyps Real, die einen Stopp der Schleife auslösen, wenn der Maximalwert erreicht wird.

4: Quelle

### Operation

[Set] | ##### Baustein [Set] ##### Text '$Enums.AssignmentOperator.Set' Oder '=' | Schreibt das im verbundenen Baustein "Quelle" definierte Element - Variable, Konstante oder Ausdruck - in den Zielbaustein.
[AddTo] | ##### Baustein [AddTo] ##### Text '$Enums.AssignmentOperator.AddTo' Or'+=' | Fügt das im verbundenen Baustein "Quelle" definierte Element - Variable, Konstante oder Ausdruck - zum Zielbaustein hinzu.
[SubTo] | ##### Baustein [SubTo] ##### Text '$Enums.AssignmentOperator.SubTo' Oder '-=' | Subtrahiert das im verbundenen Baustein "Quelle" definierte Element - Variable, Konstante oder Ausdruck - vom Zielbaustein.
[MulTo] | ##### Baustein [MulTo] ##### Text '$Enums.AssignmentOperator.MulTo' Oder'*=' | Multipliziert den Wert des Zielbausteins mit der im Quellbaustein angegebenen Variable, Konstante oder dem Ausdruck und kopiert das Ergebnis in den Zielbaustein.
[DivTo] | ##### Baustein [DivTo] ##### Text '$Enums.AssignmentOperator.DivTo' oder'/=' | Dividiert den Wert des Zielbausteins durch die im Quellbaustein angegebene Variable, Konstante oder den Ausdruck und kopiert das Ergebnis in den Zielbaustein.
[AndTo] | ##### Baustein [AndTo] ##### Text '$Enums.AssignmentOperator.AndTo' oder'&=' | Führt eine AND-Operation (logisches Produkt) zwischen der im Baustein "Quelle" und im Zielbaustein definierten Ganzzahl oder Variablen aus und kopiert das Ergebnis in den Zielbaustein.
[OrTo] | ##### Baustein [OrTo] ##### Text '$Enums.AssignmentOperator.OrTo' oder'|=' | Führt eine OR-Operation (logische Summe) zwischen der im Baustein "Quelle" und im Zielbaustein definierten Ganzzahl oder Variablen aus und kopiert das Ergebnis in den Zielbaustein.
[XorTo] | ##### Baustein [XorTo] ##### Text '$Enums.AssignmentOperator.XorTo' oder'^=' | Führt eine XOR-Operationen (exklusive logische Summe) zwischen der im Baustein "Quelle" und im Zielbaustein definierten Ganzzahl oder Variablen aus und kopiert das Ergebnis in den Zielbaustein.
[NandTo] | ##### Baustein [NandTo] ##### Text '$Enums.AssignmentOperator.NandTo' | Führt eine NAND-Operation (logisches Produkt gefolgt von NOT) zwischen der im Baustein "Quelle" und im Zielbaustein definierten Ganzzahl oder Variablen aus und kopiert das Ergebnis in den Zielbaustein.
[NorTo] | ##### Baustein [NorTo] ##### Text '$Enums.AssignmentOperator.NorTo' | Führt eine NOR-Operation (logische Summe gefolgt von einem Inverter) zwischen der im Baustein "Quelle" und im Zielbaustein definierten Ganzzahl oder Variablen aus und kopiert das Ergebnis in den Zielbaustein.

Hinweis:

- Es können keine negativen Werte in einem Math-Baustein und bei der Operation „Wertänderung“ unter Verwendung der mathematischen Operatoren Dividieren (/) oder Modulo (%) verwenden werden.

- Wenn Sie 16 oder mehr Dezimalziffern in einer Operation „Wertänderung“ (AddTo, SubTo DivTo, MulTo) verwenden, nutzen Sie LINT oder ULINT als Zielvariable.

Mit der Operation [Wertänderung] können Sie eine Variable oder eine Quelleigenschaft als Ziel festlegen.

Ausblenden Show

1. Variablenwertänderung - GANZZAHL
2. Variablenwertänderung - DATUM UND UHRZEIT
3. Variablenwertänderung - BOOL
4. Variablenwertänderung - STRING
5. Wertänderung Objekt-Quelleigenschaft
6. Wertänderung Variablen-Quelleigenschaft
7. Wertänderung Plattform-Quelleigenschaft

## Variablenwertänderung - GANZZAHL

Legen Sie den Wert des Quellblocks auf die Variable im Zielbaustein fest.

(Beispiel): Set

Operation | Zielbaustein | Baustein Quelle
[Set] | Richten Sie die Variable INT1 auf den Baustein "Variable" aus. | Wählen Sie [Int] aus und richten Sie 5 im Baustein Konstante ein.
##### Baustein ##### Text changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, INT1, 5);

→ INT1 wird auf 5 gesetzt, wenn das Skript ausgeführt wird.

(Beispiel): AddTo

Operation | Zielbaustein | Baustein Quelle
[AddTo] | Richten Sie die Variable INT1 auf den Baustein "Variable" aus. | Wählen Sie [Int] aus und richten Sie 7 im Baustein Konstante ein.
##### Baustein ##### Text changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.AddTo, INT1, 7);

→ Wenn INT1 bei der Ausführung des Skripts 3 ist, wird 7 des Quellbausteins hinzugefügt und INT1 wird 10.

(Beispiel): SubTo

Operation | Zielbaustein | Baustein Quelle
[SubTo] | Richten Sie die Variable INT1 auf den Baustein "Variable" aus. | Wählen Sie [Int] aus und richten Sie 3 im Baustein Konstante ein.
##### Baustein ##### Text changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.SubTo, INT1, 3);

→ Wenn INT1 bei der Ausführung des Skripts 5 ist, wird der Wert 3 im Quellbaustein subtrahiert und INT1 wird zu 2.

(Beispiel): DivTo

Operation | Zielbaustein | Baustein Quelle
[DivTo] | Richten Sie die Variable INT1 auf den Baustein "Variable" aus. | Wählen Sie [Int] aus und richten Sie 2 im Baustein Konstante ein.
##### Baustein ##### Text changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.DivTo, INT1, 2);

→ Wenn INT1 bei der Ausführung des Skripts 5 ist, wird sein Wert durch den Quellbausteinwert 2 geteilt und INT1 wird zu 2. Handelt es sich bei dem Wert um eine ganze Zahl, wird der Dezimalpunktwert abgeschnitten.

(Beispiel): MulTo

Operation | Zielbaustein | Baustein Quelle
[MulTo] | Richten Sie die Variable INT1 auf den Baustein "Variable" aus. | Wählen Sie [Int] aus und richten Sie 5 im Baustein Konstante ein.
##### Baustein ##### Text changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.MulTo, INT1, 5);

→ Wenn INT1 bei der Ausführung des Skripts 3 ist, wird sein Wert durch den Quellbausteinwert 5 geteilt und INT1 wird zu 15.

(Beispiel): AndTo

Operation | Zielbaustein | Baustein Quelle
[AndTo] | Richten Sie die Variable SINT1 auf den Baustein "Variable" aus. | Richten Sie die Variable SINT2 auf den Baustein "Variable" aus.
##### Baustein ##### Text changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.AndTo, SINT1, SINT2);

→ Wenn SINT1 den Wert 3 (binär: 00000011) und SINT2 den Wert 5 (binär: 00000101) hat, wird SINT1 beim Auftreten des Auslösers den Wert 1 (binär: 00000001) haben.

Der logische Ausdruck wandelt den Wert des Zielbausteins und des Quellbausteins in Binärzahlen um und berechnet das logische Produkt an jeder Stelle. Setzen Sie das Ergebnis auf die ursprüngliche Radix zurück und in den Zielblock.

(Beispiel): OrTo

Operation | Zielbaustein | Baustein Quelle
[OrTo] | Richten Sie die Variable SINT1 auf den Baustein "Variable" aus. | Richten Sie die Variable SINT2 auf den Baustein "Variable" aus.
##### Baustein ##### Text changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.OrTo, SINT1, SINT2);

→ Wenn SINT1 den Wert 3 (binär: 00000011) und SINT2 den Wert 5 (binär: 00000101) hat, wird SINT1 beim Auftreten des Auslösers den Wert 7 (binär: 00000111) haben.

Der logische Ausdruck wandelt den Wert des Zielbausteins und des Quellbausteins in Binärzahlen um und berechnet die logische Summe an jeder Stelle. Setzen Sie das Ergebnis auf die ursprüngliche Radix zurück und in den Zielblock.

(Beispiel): XorTo

Operation | Zielbaustein | Baustein Quelle
[XorTo] | Richten Sie die Variable SINT1 auf den Baustein "Variable" aus. | Richten Sie die Variable SINT2 auf den Baustein "Variable" aus.
##### Baustein ##### Text changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.XorTo, SINT1, SINT2);

→ Wenn SINT1 den Wert 3 (binär: 00000011) und SINT2 den Wert 5 (binär: 00000101) hat, wird SINT1 beim Auftreten des Auslösers den Wert 6 (binär: 00000110) haben.

Der logische Ausdruck wandelt den Wert des Zielbausteins und des Quellbausteins in Binärzahlen um und berechnet eine exklusive logische Summe an jeder Stelle. Setzen Sie das Ergebnis auf die ursprüngliche Radix zurück und in den Zielblock.

(Beispiel): NandTo

Operation | Zielbaustein | Baustein Quelle
[NandTo] | Richten Sie die Variable SINT1 auf den Baustein "Variable" aus. | Richten Sie die Variable SINT2 auf den Baustein "Variable" aus.
##### Baustein ##### Text changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.NandTo, SINT1, SINT2);

→ Wenn SINT1 den Wert 3 (binär: 00000011) und SINT2 den Wert 5 (binär: 00000101) hat, wird SINT1 beim Auftreten des Auslösers den Wert -2 (binär: 11111110) haben.

Der logische Ausdruck wandelt den Wert des Zielbausteins und des Quellbausteins in Binärzahlen um und berechnet das negative logische Produkt an jeder Stelle. Setzen Sie das Ergebnis auf die ursprüngliche Radix zurück und in den Zielblock.

(Beispiel): NorTo

Operation | Zielbaustein | Baustein Quelle
[NorTo] | Richten Sie die Variable SINT1 auf den Baustein "Variable" aus. | Richten Sie die Variable SINT2 auf den Baustein "Variable" aus.
##### Baustein ##### Text changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.NorTo, SINT1, SINT2);

→ Wenn SINT1 den Wert 3 (binär: 00000011) und SINT2 den Wert 5 (binär: 00000101) hat, wird SINT1 beim Auftreten des Auslösers den Wert -8 (binär: 11111000) haben.

Der logische Ausdruck wandelt den Wert des Zielbausteins und des Quellbausteins in Binärzahlen um und berechnet eine logische Summe, gefolgt von einem Inverter an jeder Stelle. Setzen Sie das Ergebnis auf die ursprüngliche Radix zurück und in den Zielblock.

## Variablenwertänderung - DATUM UND UHRZEIT

Der Wert "Datum und Uhrzeit" der Quellvariable wird auf die Zielvariable ausgerichtet.

Die Variablen DATE, TIME_OF_DAY, und DATE_AND_TIME unterstützen die Operatorem [Set] und [AddTo].

Im folgenden wird die Operation veranschaulicht, wenn der Baustein "Quelle" und der Baustein "Ziel" den Variablen DATE, TIME_OF_DAY oder DATE_AND_TIME entsprechen.

Operation | Baustein Quelle | Zielbaustein | Verhalten
[Set] | DATE | DATE | Datum einrichten.
TIME_OF_DAY | Es wurde kein Wert eingestellt.
DATE_AND_TIME | Nur Datum einrichten.
TIME_OF_DAY | DATE | Es wurde kein Wert eingestellt.
TIME_OF_DAY | Uhrzeit einrichten.
DATE_AND_TIME | Nur Uhrzeit einrichten.
DATE_AND_TIME | DATE | Nur Datum einrichten.
TIME_OF_DAY | Nur Uhrzeit einrichten.
DATE_AND_TIME | Datum und Uhrzeit einrichten.
[AddTo] | DATE | DATE | Datum hinzufügen.
TIME_OF_DAY | Es wurde kein Wert eingestellt.
DATE_AND_TIME | Nur Datum hinzufügen.
TIME_OF_DAY | DATE | Es wurde kein Wert eingestellt.
TIME_OF_DAY | Zeit hinzufügen.
DATE_AND_TIME | Nur Zeit hinzufügen.
DATE_AND_TIME | DATE | Nur Datum hinzufügen.
TIME_OF_DAY | Nur Zeit hinzufügen.
DATE_AND_TIME | Datum und Uhrzeit hinzufügen.

(Beispiel): Set

Operation | Zielbaustein | Baustein Quelle
[Set] | Richten Sie die Variable TIME_OF_DAY1 auf den Baustein "Variable" aus. | Wählen Sie [TIME_OF_DAY] aus und richten Sie im Baustein Konstante 00:15:00 ein.
##### Baustein ##### Text changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, TIME_OF_DAY1, timeOfDay(00, 15, 00));

→ Wenn der Auslöser auftritt, wird die Zeit in TIME_OF_DAY1 auf 00:15:00 eingestellt.

Hinweis: Wenn ein Quellbaustein auf ein [Konstante] Datum oder eine konstante Uhrzeit eingestellt ist, wird jeder nicht in der Konstante enthaltene Datums- oder Zeitwert auf Null gesetzt. Wenn Sie z. B. eine konstante Zeit in die Variable DATE_AND_TIME schreiben, wird der Datumswert 0 (1970/01/01).

(Beispiel): AddTo

Operation | Zielbaustein | Baustein Quelle
[AddTo] | Richten Sie die Variable DATE_AND_TIME1 auf den Baustein "Variable" aus. | Wählen Sie [TIME_OF_DAY] aus und richten Sie im Baustein Konstante 00:15:00 ein.
##### Baustein ##### Text changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.AddTo, DATE_AND_TIME1, timeOfDay(00, 15, 00));

→ Wenn DATE_AND_TIME1 bei der Ausführung des Auslösers 2024/10/01 12:34:56 ist, wird 00:15:00 im Quellbaustein hinzugefügt und DATE_AND_TIME1 wird zu 2024/10/01 12:49:56.

## Variablenwertänderung - BOOL

Ein einziges Datenbit wird auf die Zielvariable ausgerichtet.

(Beispiel): Set

Operation | Zielbaustein | Baustein Quelle
[Set] | Richten Sie die Variable BOOL1 auf den Baustein "Variable" aus. | Wählen Sie [Int] aus und richten Sie 1 im Baustein Konstante ein.
##### Baustein ##### Text changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, BOOL1, 1);

→ BOOL1 wird auf ON gesetzt, wenn der Auslöser auftritt.

## Variablenwertänderung - STRING

Eine Zeichenfolge wird auf die Zielvariable ausgerichtet.

(Beispiel): Set

Operation | Zielbaustein | Baustein Quelle
[Set] | Richten Sie die Variable STRING1 auf den Baustein "Variable" aus. | Wählen Sie [STRING] aus und richten Sie im Baustein Konstante "DEF" ein.
##### Baustein ##### Text changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, STRING1, "DEF");

→ STRING1 wird auf DEF gesetzt, wenn der Auslöser auftritt.

(Beispiel): AddTo

Operation | Zielbaustein | Baustein Quelle
[AddTo] | Richten Sie die Variable STRING1 auf den Baustein "Variable" aus. | Wählen Sie [STRING] aus und richten Sie im Baustein Konstante "DEF" ein.
##### Baustein ##### Text changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.AddTo, STRING1, "DEF");

→ Wenn STRING1 "AB" ist, wird beim Auftreten des Auslösers "DEF" zum Quellbaustein hinzugefügt und STRING1 wird zu "ABDEF".

## Wertänderung Objekt-Quelleigenschaft

Setzen Sie den Wert im Quellbaustein auf die Quelleigenschaft im Zielbaustein.

(Beispiel 1)

Operation | Zielbaustein | Baustein Quelle
[Set] | Legen Sie die Objekt-Quelleigenschaft Rectangle1.Thickness auf den Objektbaustein fest. | Wählen Sie [Int] aus und richten Sie 10 im Baustein Konstante ein.
##### Baustein ##### Text changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $GraphicObject.Rectangle1.Thickness, 10);

→ Die Umrandungsstärke von Rectangle1 wird zu 10, wenn der Auslöser auftritt.

(Beispiel 2)

Operation | Zielbaustein | Baustein Quelle
[Set] | Legen Sie die Objekt-Quelleigenschaft Lamp1.Interlock auf den Objektbaustein fest. | Wählen Sie [Int] aus und richten Sie 0 im Baustein Konstante ein.
##### Baustein ##### Text changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $GraphicObject.Lamp1.Interlock, 0);

→ Der Verrriegelungszustand von Lamp1 wird auf AUS gesetzt, wenn der Auslöser auftritt.

## Wertänderung Variablen-Quelleigenschaft

Setzen Sie den Wert im Quellbaustein auf die Quelleigenschaft im Zielbaustein.

(Beispiel)

Operation | Zielbaustein | Baustein Quelle
[Set] | Legen Sie die Variablen-Quelleigenschaft INT1.Value auf den Baustein Variable fest. | Wählen Sie [Int] aus und richten Sie 1 im Baustein Konstante ein.
##### Baustein ##### Text changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, INT1.Value, 1);

→ INT1.Value wird auf 1 gesetzt, wenn der Auslöser auftritt.

## Wertänderung Plattform-Quelleigenschaft

Setzen Sie den Wert im Quellbaustein auf die Quelleigenschaft im Zielbaustein.

(Beispiel 1)

Legen Sie ein Datum für die Plattform fest.

Operation | Zielbaustein | Baustein Quelle
[Set] | Legen Sie Plattform-Quelleigenschaft Target01.DateAndTime.Date auf den Plattformbaustein fest. | Wählen Sie [Date] aus und richten Sie 10/17/2017 im Baustein Konstante ein.
##### Baustein ##### Text changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $Target.Target01.DateAndTime.Date, date(2017, 10, 17));

→ Anzeigegerät wird auf 17.10.2017 gesetzt, wenn der Auslöser auftritt.

(Beispiel 2)

Passen Sie das Datum und die Uhrzeit des Anzeigegeräts dem Datum und der Uhrzeit des externen Geräts an.

(Beispiel 2- 1)

Legen Sie das Datum und die Uhrzeit (Jahr, Monat, Tag, Stunden, Minuten, Sekunden) des externen Geräts auf die Ganzzahlvariablen INT1 bis INT6 fest.

Operation | Zielbaustein | Baustein Quelle
[Set] | Legen Sie die Plattform-Quelleigenschaft auf den Baustein Plattform fest. Target01.DateAndTime.Year Target01.DateAndTime.Month Target01.DateAndTime.Day Target01.DateAndTime.Hour Target01.DateAndTime.Minute Target01.DateAndTime.Second | Legen Sie die Variablen INT1 bis INT6 auf den Baustein Variable fest
##### Baustein ##### Text onScheduledDay(23, 0, () => { changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $Target.Target01.DateAndTime.Year, INT1.Value); changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $Target.Target01.DateAndTime.Month, INT2.Value); changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $Target.Target01.DateAndTime.Day, INT3.Value); changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $Target.Target01.DateAndTime.Hour, INT4.Value); changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $Target.Target01.DateAndTime.Minute, INT5.Value); changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $Target.Target01.DateAndTime.Second, INT6.Value); });

→ Das Datum und die Uhrzeit am Anzeigegerät werden täglich um 23:00 Uhr auf das Datum und die Uhrzeit des externen Geräts eingestellt.

(Beispiel 2- 2)

Stellen Sie Datum und Uhrzeit des externen Geräts in einer DATE_AND_TIME-Variable Var1 als Anzahl von Sekunden (32-Bit-Ganzzahl) ab 01.01.1970 00:00:00 UTC ein. Informationen zur Beziehung zwischen dem Wert von Var1 und dem Datum und der Uhrzeit erhalten Sie unter:

TIME, DATE, TIME_OF_DAY, DATE_AND_TIME

Operation | Zielbaustein | Baustein Quelle
[Set] | Legen Sie die Plattform-Quelleigenschaft Target01.DateAndTime.DateTime auf den Baustein Plattform fest. | Richten Sie die Variable Var1 auf den Baustein "Variable" aus.
##### Baustein ##### Text onScheduledDay(23, 0, () => { changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $Target.Target01.DateAndTime.DateTime, Var1.Value); });

→ Das Datum und die Uhrzeit am Anzeigegerät werden täglich um 23:00 Uhr auf das Datum und die Uhrzeit des externen Geräts eingestellt.

(Beispiel 3)

Schalten Sie die Hintergrundbeleuchtung des Anzeigegeräts aus.

Operation | Zielbaustein | Baustein Quelle
[Set] | Legen Sie die Plattform-Quelleigenschaft Target01.Preferences.BacklightOff auf den Baustein Plattform fest. | Richten Sie die Variable BOOL1 mit dem Wert 1 im Baustein „Variable“ ein.
##### Baustein ##### Text changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $Target.Target01.Preferences.BacklightOff, BOOL1.Value);

→ Die Hintergrundbeleuchtung des Anzeigegeräts schaltet sich aus, wenn die Auslösung erfolgt.