# Variablen in Skripten

Sie können Variablen verwenden, um die erwünschte Operationen ausführen zu können.

Hinweis:

- OR/AND/XOR/NOT gibt immer einen 32-Bit-Ganzzahlwert ohne Vorzeichen aus.
- Wenn der Eingabewert negativ ist, geben die Bit-Ausdrücke einen 32-Bit-Ganzzahlwert aus.
- Wenn der Eingabewert negativ ist, geben die Bit-Ausdrücke einen 32-Bit-Ganzzahlwert aus.

### Externe Variablen in Skripten

Beim Verwenden externer Variablen in Skripten kann sich der Wert des Anzeigegerätes, der dem externe Gerätes zugewiesen wurde, bei der Skriptverarbeitung ändern.

Wenn Sie zum Zuweisen einer Operation eine Geräteadresse verwenden, kann dies zu Schreibverzögerungen führen, da das Anzeigegerät die Adressdaten erst vom angeschlossenen Gerät ablesen muss.

Hinweis: Wenn Sie den Wert einer externen Variablen mehrmals in einem Script mit einem einzigen Auslöser ändern, wird der Wert der externen Variable nicht sofort aktualisiert.

Um den Wert der aktualisierten externen Variable im ausgelösten Script zu verwenden, speichern Sie den Wert in einer internen Variable und verwenden ihn im Script. Oder aktualisieren Sie den Wert der externen Variable mit einem anderen Auslöser, bevor Sie den Wert der externen Variable verwenden.

(Beispiel)

Fügen Sie folgende Variablen hinzu.

[Name] | [Datentyp] | [Quelle] | [Geräteadresse] | [Anzahl Bytes/Wörter]
Var1 | [INT] | 'Schneider Modbus Serial Equipment' | 400020 | -
Var2 | [INT] | 400021 | -
Var3 | [INT] | 400022 | -

Zeichnen Sie die unten aufgeführten Objekte auf dem Bildschirm.

#### Schalterobjekt (Name: Switch1)

Keine spezielle Konfiguration.

#### Skript

Legende | Baustein
1 | [Trigger] ➞ [Berührung] ➞ [Berührung]
2 | [Operationen] ➞ [Wertänderung] ➞ [Wertänderung]
3 | [Werte] ➞ [Bildschirmobjekt]
4 | [Logik] ➞ [Math]
5 | [Werte] ➞ [Variable]
6 | [Werte] ➞ [Konstante]

Beim Betätigen von Switch1 wird der Wert von Var1+1 der Var2 zugewiesen. Der Wert von Var2 wurde jedoch nicht der Var3 zugewiesen, da die Kommunikation mit dem Gerät zu viel Zeit beansprucht.

In solchen Fällen können Sie ein Skript programmieren, damit das Ergebnis von Var1 zunächst in einer internen Variable Var4 gespeichert wird, bevor die Operaton ausgeführt wird. Siehe nachfolgendes Beispiel.

Fügen Sie folgende Variablen hinzu.

[Name] | [Datentyp] | [Quelle] | [Geräteadresse] | [Anzahl Bytes/Wörter]
Var1 | [INT] | 'Schneider Modbus Serial Equipment' | 400020 | -
Var2 | [INT] | 400021 | -
Var3 | [INT] | 400022 | -
Var4 | [INT] | [Internal] | - | -

#### Skript