UDT-Skript hinzufügen
- Last UpdatedJun 29, 2026
- 6 minute read
-
Klicken Sie im Bereich Benutzerdefinierter Typ mit der rechten Maustaste auf den Datentyp, wählen Sie im Kontextmenü die Option Neu, und dann Mitglied aus.

ODER
Wählen Sie in der Symbolleiste Neues Mitglied
aus.
ODER
Verwenden Sie die Tastenkombination Strg+Umschalt+R.
Ein neues Skript mit dem Namen Script001 wird erstellt und im Skripteditor geöffnet. Um das Skript umzubenennen, klicken Sie mit der rechten Maustaste darauf und wählen Umbenennen. Im folgenden Beispiel wird das Skript in UpdateSetpoint umbenannt.

Die Standardsignatur dieser Skriptmethode wird erstellt. Im Folgenden wird die Standardsignatur eines C#-Skripts veranschaulicht.

Im Folgenden wird die Standardsignatur eines Python-Skripts veranschaulicht.

Der Methodenname muss mit dem Skriptnamen übereinstimmen. Wenn dies nicht der Fall ist, wird eine Fehlermeldung angezeigt. Wenn ein Skript mit dem Namen „UpdateSetpoint“ z. B. keine öffentliche Methode namens „UpdateSetpoint“ enthält, wird die folgende Meldung angezeigt.
-
Im Raster Eigenschaften können Sie die Eigenschaften des ausgewählten Skripts anzeigen. Es beinhaltet:
-
Name: Name des Skripts.
-
Kommentar: Beliebiger Kommentar.
-
Sprache: Wählen Sie die Sprache aus, in der Sie das Skript schreiben möchten. Wenn Sie zum ersten Mal ein Skript erstellen, ist standardmäßig C# ausgewählt. Wenn Sie das Python-Skript verwenden möchten, sollten Sie es manuell in Python ändern. Wenn Sie ein neues Skript erstellen, bleibt die zuvor ausgewählte Skriptsprache erhalten. Wenn Sie beispielsweise ein Skript in Python erstellen und speichern, wird für jedes neue Skript standardmäßig Python verwendet. Um C# verwenden zu können, müssen Sie die Skriptsprache manuell ändern.
Hinweis: Nachdem Sie mit der Eingabe eines Skripts begonnen haben, können Sie die Skriptsprache nicht mehr ändern. Um eine andere Sprache auszuwählen, löschen Sie den vorhandenen Skriptinhalt oder erstellen Sie ein neues Skript.
Beispiel:

Hinweis: Wenn die 32-Bit-Version von Python auf Ihrem Computer nicht installiert ist und Sie Python als Sprache auswählen, wird eine Fehlermeldung angezeigt, in der Sie aufgefordert werden, Python zu installieren, um die Funktionalität zu aktivieren. Installationsschritte von Python finden Sie unter Python installieren.
-
-
Geben Sie das Skript in der Sprache ein, die Sie im Raster Eigenschaften ausgewählt haben. Verwenden Sie die Optionen in der Symbolleiste, um verschiedene Bearbeitungsaktionen durchzuführen. Sie können native InTouch-Variablen auch in UDT-Skripten verwenden. Verwenden Sie die folgende Syntax:
-
Für eigenständiges InTouch-Projekt:
<udtinstanceName>.<udtmembers>\ me.<udtmembers>\ <InTouch-Variablen>;
ODER
InTouch.<udtinstanceName>.<udtmembers> \ InTouch.me.<udtmembers>\ <InTouch-Variablen>;
Beispiel:
-
Furnace_1.TemperatureSetPoint = Furnace_1.TemperatureSetPoint + 5;
-
me.TemperatureSetPoint = me.TemperatureSetPoint + 5;
-
-
Für verwaltetes InTouch-Projekt:
InTouch.<udtinstanceName>.<udtmembers> \ InTouch.me.<members>\ <InTouch-Variablen>;
Beispiel:
-
InTouch.Furnace_1.TemperatureSetPoint = InTouch.Furnace_1.TemperatureSetPoint + 5;
-
InTouch.me.TemperatureSetPoint = InTouch.me.TemperatureSetPoint + 5;
-
-
-
Verwenden Sie das Validieren-Symbol
, um das Skript zu validieren.
Wenn ein Fehler auftritt, wird dieser im Abschnitt Fehlerliste am unteren Rand des Skripteditors angezeigt.
-
Beheben Sie den Fehler ggf. und wählen Sie dann das Symbol Speichern in der Symbolleiste aus.
Hinweis: UDT-Skriptdateien werden im Skriptordner unter dem Projektordner gespeichert.
Wichtige Informationen
-
Wenn Sie auf einen Namensbereich (z. B. InTouch oder Galaxy) verweisen, verwenden Sie die Punktnotation (.) anstelle des Doppelpunkts (:). Verweise mit Doppelpunkt werden in C# und Python nicht unterstützt.
-
Es gibt keine Debugging-Unterstützung für Python-UDT-Skripte. Darüber hinaus wird die Referenzvalidierung für Python-Skripte nur zur Laufzeit durchgeführt. Daher zeigt der Skripteditor während des Bearbeitens oder Speicherns des Skripts nicht an, ob ein referenziertes Objekt oder ein Namensbereich existiert. Ungültige oder fehlende Verweise werden nur bei der Ausführung des Skripts zur Laufzeit erkannt. Der Editor warnt Sie während der Skripterstellung nicht vor solchen Problemen.
-
Es sind maximal sechs verschachtelte UDT-Ebenen zulässig. Zum Beispiel „Datatype1.Datatype2.Datatype3.Datatype4.Datatype5.Datatype6.String1“. Weitere Informationen finden Sie unter UDT-Spezifikation.
-
Das Mitglied des UDT-Datentyps „Real“ wird intern als Datentyp „Float“ gespeichert.
-
Die Ausführung von UDT-Skripten erfordert Zugriff auf Zertifikate, die von der Suite Link-basierten sicheren Kommunikation mit dem WindowViewer-Prozess verwendet werden. Standardmäßig haben interaktive Benutzer und Benutzer mit geringen Rechten aus Sicherheitsgründen keinen Zugriff auf diese Zertifikate. Daher muss ein Administrator den Benutzer, der die Ansicht startet, für die folgenden WindowViewer-Szenarien explizit zur ASB-Webhostinggruppe (ArchestraWebHosting) hinzufügen.
-
Interaktive view.exe-Sitzung (Workstation-Modus) ohne Web Clients
-
Interaktive view.exe-Sitzung (Workstation-Modus) mit Web Clients
Wenn dieser Zugriff nicht gewährt wird, führt dies zu Kommunikationsfehlern, wenn bei der Ausführung von UDT-Skripten versucht wird, Variablen über WindowViewer zu lesen oder zu schreiben.
-
-
Konfigurieren Sie im Konfigurator den System Management Server und den Identity Manager Registration Manager unter dem InTouchHMI-Plug-in für den Skripting-Dienst. Starten Sie nach erfolgreicher Konfiguration den InTouchServiceMgr-Dienst neu. Wenn InTouchServiceMgr nicht mehr reagiert, müssen Sie den Rechner neu starten.

Symbolleistenoptionen
|
Option |
Name |
Beschreibung |
|
|
Speichern |
Speichert das Skript. |
|
|
Rückgängig |
Macht die zuvor im Skripteditor ausgeführte Aktion rückgängig. |
|
|
Wiederholen |
Wiederholt den Rückgängig-Vorgang im Skripteditor. |
|
|
Alle auswählen |
Wählt den gesamten Text aus. |
|
|
Ausschneiden |
Schneidet den ausgewählten Text aus. |
|
|
Kopieren |
Kopiert den markierten Text. |
|
|
Einfügen |
Fügt den kopierten Text ein. |
|
|
Suchen |
Sucht Text im Dokument. |
|
|
Replace |
Ersetzt den Text durch den angegebenen Text. Wählen Sie das Symbol Ersetzen aus. Geben Sie im Feld Suchen nach den Text ein, den Sie ersetzen möchten. Geben Sie im Feld Ersetzen durch den Text ein, durch den der Text ersetzt werden soll. |
|
|
Gehe zu |
Springt zu einer bestimmten Zeile. |
|
|
Ansicht vergrößern/verkleinern |
Vergrößert die Ansicht, um eine Nahansicht des Textes zu erhalten. Verkleinert die Anzeige, um mehr von der Seite in verkleinerter Größe zu sehen. |
Unterstützung mehrerer Skript-Registerkarten
-
Benutzer können Skripte innerhalb einzelner Registerkarten erstellen und starten, sodass mehrere Skripte gleichzeitig verwaltet werden können, ohne dass Daten oder Kontext beim Navigieren zwischen den Registerkarten verloren gehen.
-
Durch das Umschalten zwischen den Skript-Registerkarten bleiben der aktuelle Status und Kontext jedes Skripts erhalten, sodass während der Navigation keine Informationen verloren gehen.
-
Auf jeder Registerkarte werden Details zum IRT (Information Resource Tree) sowie Tooltips angezeigt, sodass der Benutzer relevante Informationen für das ausgewählte Skript erhält.
-
Wenn ein Skript aus einer abgeleiteten oder Member-Vorlage auf Registerebene gestartet wird, wird das Skript von der übergeordneten Vorlage aus geöffnet, wobei der Ursprungskontext beibehalten wird.
-
Wenn Sie eine Skript-Registerkarte schließen, wird das zuvor aktive Skript in der Baumansicht hervorgehoben, und seine Eigenschaften werden zur einfachen Verwendung angezeigt.
Beispiele
Die folgenden Skripte aktualisieren den TemperatureSetPoint des aktuellen Objekts, indem sie ihm einen entsprechenden Wert hinzufügen. Wenn der aktuelle Sollwert z. B. 100 ist und Sie 3 überschreiten, wird als neuer Sollwert 103 festgelegt.
Skript mit C#
public async Task UpdateSetPoint1(float value)
{
me.TemperaturesetPoint = me.TemperaturesetPoint + value;
}

Skript mit Python
def UpdateSetPoint(value):
me.TemperaturesetPoint = me.TemperaturesetPoint + value

In beiden Skripten ist InTouch.me ein relativer Verweis, TemperatureSetPoint ist ein Mitglied des UDT.
Was hier passiert:
-
Liest den aktuellen TemperatureSetPoint-Wert
-
Fügt einen Wert hinzu
-
Schreibt das aktualisierte Ergebnis zurück in TemperatureSetPoint
Sie können auch im Anmeldeinformations-Manager gespeicherte Anmeldeinformationen in Ihrem Skript aufrufen.
Zum Beispiel:
public async Task namedcrededential()
{
me.username = SecurityManager.GetUserName(me.CredentialName);
me.password = SecurityManager.GetPassword(me.CredentialName);
me.domain = SecurityManager.GetDomain(me.CredentialName);
me.accesstoken = SecurityManager.GetAccessToken();
}
Hier ist CredentialName der Name der im Anmeldeinformations-Manager gespeicherten Anmeldeinformationen.










