# Textmodus für Skripte

## Infos zum Textmodus

Im Textmodus können Sie die gleichen Skripte wie im Blockmodus einrichten. Alle Operationen, die von der Bildschirmbearbeitungs-Software in Skripten im Blockmodus unterstützt werden, werden auch von Skripten im Textmodus unterstützt, z. B. mathematische Operationen (Sinus, Kosinus usw.), logische Operationen (&&, || usw.) und Vergleichsoperationen (==, != usw.). Skripte, die nicht im [Werkzeugkasten] aufgeführt sind, werden nicht unterstützt.

### Skript-Editor

Im Textmodus unterteilt der Skript-Editor das Skript in Abschnitte, wobei jeder Skriptabschnitt einen Auslöser und eine oder mehrere Operationen enthält.

Auslöser, wie z. B. Berührung, Periodisch/Zeitplan und Bedingung, haben die Form einer Funktion. Wenn ein Auslöser Parameter benötigt, übergeben Sie diese als Funktionsparameter.

Operationen werden in Form einer Anweisung mit einem Semikolon (;) am Ende der Anweisung ausgeführt.

Das Format des Textmodus ist im folgenden Beispiel dargestellt:

- „onClick“ ist der Auslöser-Handler für einen Klick-Auslöser.
- Der erste Parameter „$GraphicObject“ ist die Quelle des Auslösers.
- Der zweite Parameter „$Math.max(EXPRESSION1, EXPRESSION2);“ ist die Menge der Operationen, die durch den Auslöser ausgeführt werden. Die Operationen sind durch den Pfeil „=>“ gekennzeichnet.

#### Objekte und Variablen

Fügen Sie ein Schlüsselwort hinzu, um ein referenziertes Objekt oder eine Variable zu identifizieren. Stellen Sie dem Schlüsselwort das Symbol „$“ voran. (Bitte beachten Sie die folgende Tabelle.)

Modul-Bezeichner

Schlüsselwort | Beschreibung | Beispiel
$Alarm | Zugriff auf eine Alarmeigenschaft. | $Alarm.AlarmGroup1.Var1_HiHi.Message
$AlarmGroup | Zugriff auf eine Alarmgruppeneigenschaft. | $AlarmGroup.AlarmGroup1.CurrentActiveCount
$AllAlarm | Zugriff auf eine Eigenschaft aller Alarme. | $AllAlarm.MaxRecord
$SystemErrorGroup | Identifizierung als Systemfehlergruppe. |
$OperationLog | Zugriff auf eine Eigenschaft des Betriebsprotokolls. | $OperationLog.ExportData.FolderName
$RecipeControl | Zugriff auf eine Eigenschaft der Rezeptursteuerung. | $RecipeControl.RecipeControl1.RecipeID
$Ingredient | Zugriff auf eine Rezepturdateneigenschaft. | $Ingredient.RecipeFamily1.RecipeGroup1.Ingredient1.Value
$Local | Zugriff auf eine Eigenschaft einer lokalen Variable. | $Local.Var1.Value
$GraphicObject | Zugriff auf eine Eigenschaft eines Grafikobjekts. | $GraphicObject.NumericDisplay1.CurrentValue
$Screen | Zugriff auf eine Bildschirmeigenschaft oder auf eine Eigenschaft eines Elements auf einem bestimmten Bildschirm. Verwenden Sie diesen Bezeichner, um mögliche Konflikte bei der Benennung von Bildschirmen/Inhalten und Objekten zu vermeiden. | $Screen.Screen1
$Device | Zugriff eine Treiber- oder Geräteeigenschaft. | $Device.Driver1.Equipment1.OnScanMode
$Target | Zugriff auf eine Zieleigenschaft. | $Target.Preferences.ColorSetID
$Math | Zugriff auf mathematische Operationen. | $Math.abs(-100)
$Enums | Zugriff auf Operationen und Werte, die Sie mit Skripten angeben können, z. B. Dateioperationen und Datenformate. | $Enums.FileOperation.CopyPaste $Enums.DataFormat.Float

Durch Referenzieren von Objekten und Variablen in einem Skript können Sie mit den Eigenschaften eines Objekts oder einer Variablen arbeiten. Beispiel: „Var1.Quality“, „$GraphicObject.Ellipse1.Thickness“.

Wenn Sie den Namen eines grafischen Objekts, einer Variable, einer Alarmgruppe, einer Benutzergruppe, einer Protokollierungsgruppe oder eines Rezepts in ein Skript eingeben, wird der Name hervorgehoben.

#### Ändern des Skriptmodus

Im Skript-Editor können Sie entweder den Modus [Block] oder den Modus [Text] verwenden. Skripte können nicht in beiden Modi gleichzeitig bearbeitet werden.

Die Standardeinstellung ist der Modus [Block].

Um den Skriptmodus zu ändern, gehen Sie zu [Projekt] ➞ [Einstellungen], dann im Fenster [Eigenschaften] ➞ [Basis] ➞ [Skript] ➞ [Skriptmodus], und wählen Sie entweder [Block] oder [Text].

Hinweis: Sie können den Skriptmodus nicht ändern, wenn das Skripts teilweise ungültig ist. Der Skriptmodus kann jedoch auch dann geändert werden, wenn ein Datenfehler aufgetreten ist.

## Arbeiten mit Skripten im Textmodus

### Hinzufügen von Funktionen

Bei der Arbeit mit Skripten im Textmodus werden im Werkzeugkasten Auslöser, Operationen, Logik und Ausdrücke aufgelistet. Durch Doppelklick auf einen Auslöser wird im Skript-Editor ein neuer Skriptabschnitt mit dem Standardcode für den ausgewählten Auslöser erstellt.

Funktionen lassen sich auch über die folgenden Methoden hinzufügen.
Sie können einen Auslöser über die Symbolleiste hinzufügen.

- Um ein neues, leeres Skript im Textmodus zu bearbeiten, fügen Sie in der Symbolleiste [Leer] hinzu, oder verwenden Sie den Tastaturbefehl Strg+Umschalt+N.

- Um ein Skript zu erstellen, das durch ein Objekt auf einem Bildschirm ausgelöst wird, öffnen Sie den Bildschirm, wählen Sie das Objekt aus, und das Fenster [Ereignisse] führt die für das Objekt verfügbaren Auslöser auf. Klicken Sie auf [+], um den zugehörigen Auslöser in einen neuen Skriptabschnitt einzufügen.

### Hinzufügen von Quelle und Ziel

- Im Textmodus ist der Skript-Editor mit Intellisense ausgestattet. Wenn Sie im Skript-Editor etwas eingeben, werden die verfügbaren Optionen angezeigt, ganz gleich, ob es sich um ein Skript-Schlüsselwort, einen Objektnamen oder einen Funktionsnamen handelt. Wählen Sie das gewünschte Element aus, um das Schlüsselwort, den Objektnamen bzw. die Funktion einzufügen.
  Nach Eingabe eines Objektnamens und eines Punktes (.) werden die verfügbaren Objekteigenschaften angezeigt. Wählen Sie die gewünschte Eigenschaft aus, um sie in das Skript einzufügen.

- Im Textmodus können Sie auch lokale und globale Variablen im laufenden Betrieb erstellen. Andere Objekte können nicht in einem Skript erstellt werden.

1. Wenn eine undefinierte Variable in einem Skript verwendet wird, bewegen Sie den Mauszeiger über die Variable.

   Hinweis: Stellen Sie beim Erstellen einer lokalen Variable dem Variablennamen das Präfix "$Local" voran.

2. Klicken Sie auf das Symbol , und wählen Sie im Popup-Menü [Variable erstellen] oder [Lokale Variable erstellen] aus.

3. Wählen Sie aus dem Untermenü den Datentyp der Variable aus, um die angegebene Variable zu erstellen.

### Werkzeugkasten

- Klicken Sie im Werkzeugkasten auf </>, um die Syntax für das zugehörige Skript anzuzeigen.

### Kommentare

Im Textmodus können Sie Kommentare zu Skripten mit doppelten Schrägstrichen „//“ hinzufügen. Außerdem können Sie zwischen „/*“ und „*/“ mehrzeilige Kommentare einfügen. Kommentare lassen sich am Ende einer Anweisung oder in einer eigenen Zeile einfügen.

Hinweis:

- Wenn Sie den [Skriptmodus] von [Block] auf [Text] ändern, werden Kommentarblöcke in „//“-Kommentare umgewandelt.

- Bei Änderung des [Skriptmodus] von [Text] in [Block]

- Werden Kommentare in „//“ und „/*“ „*/“ auf der Auslöserebene in Kommentarblöcke umgewandelt.

- Andere „//“-Anweisungen oder „/*“ „*/“, die sich außerhalb der Auslöserebene befinden, werden nicht konvertiert, da der Blockmodus nur [Kommentar]-Blöcke in Auslösern unterstützt.

### Suchen und Ersetzen

- Suchen: Verwenden Sie die Tastenkombination Strg+F, um das Steuerelement Suchen oben rechts im Skript-Editor des Textmodus anzuzeigen. Geben Sie in das Feld den Text ein, nach dem Sie suchen möchten. Klicken Sie auf den Pfeil nach unten oder oben , um den nächsten bzw. vorherigen Treffer zu finden. Wählen Sie das Symbol oder , um die passende Groß-/Kleinschreibung bzw. das passende ganze Wort zu finden.

- Ersetzen: Verwenden Sie die Tastenkombination Strg+H, um das Steuerelement Suchen und Ersetzen oben rechts im Skript-Editor des Textmodus anzuzeigen. Geben Sie in die Felder den zu suchenden Text und den Ersatztext ein. Klicken Sie auf den Pfeil nach unten oder oben , um den nächsten bzw. vorherigen Treffer zu finden. Wählen Sie das Symbol oder , um die passende Groß-/Kleinschreibung bzw. das passende ganze Wort zu finden. Klicken Sie auf das Symbol Ersetzen , um die aktuelle Übereinstimmung zu ersetzen. Klicken Sie auf das Symbol Alles ersetzen , um alle Instanzen des übereinstimmenden Texts zu ersetzen.

In der folgenden Tabelle sind Verknüpfungssysmbole und Tastenkombinationen für die Operationen Suchen und Ersetzen aufgeführt.

Verknüpfungssysmbol | Tastenkombination | Beschreibung
– | Strg+F | Suchen
– | Strg+H | Suchen und Ersetzen
| F3 | Zum nächsten Treffer
| Umschalt+F3 | Zum vorherigen Treffer
| Alt+R | Ersetzen
| Alt+A | Alle ersetzen
| Alt+C | Groß-/Kleinschreibung beachten
| Alt+W | Ganzes Wort suchen

Sie können zwischen Suchen und Ersetzen umschalten, indem Sie entweder die Tastenkombinationen eingeben oder auf das Symbol Nach-oben-Symbol bzw. Nach-unten-Symbol links neben dem Feld [Suchen] klicken.

## Einschränkungen

#### Skriptmodus

- Der Skriptmodus kann nicht geändert werden (Blockmodus in Textmodus oder Textmodus in Blockmodus), wenn ein Teil des Skripts ungültig ist. Ein Datenfehler stellt jedoch kein Hindernis dar, den Skriptmodus zu ändern.

- In Skripten im Blockmodus werden Kommentare nur im Kommentar-Block eines Auslöser-Blocks unterstützt. Daher werden im Textmodus Kommentare, die einem anderen Bereich des Skripts als dem Auslöser hinzugefügt wurden, nicht gespeichert, wenn der [Skriptmodus] in den [Blockmodus] geändert wird.

#### Namen

- Wenn ein Objekt im Projekt gelöscht oder umbenannt wird, erscheinen Verweise auf dieses Objekt in Skripten als undefinierte Fehler.