Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

AVEVA™ InTouch HMI

IOSetAccessName (Funktion)

  • Last UpdatedSep 14, 2023
  • 2 minute read

Mit der Skriptfunktion IOSetAccessName() können Sie Zugriffsnamen zur Laufzeit umleiten. IOSetAccessName() ändert den Projekt- oder Topic-Namen des Zugriffsnamens einer E/A-Variable während der Laufzeit.

Hinweis: Wenn IOSetAccessName() ausgeführt wird, kommt es zu einer Verzögerung, da die bestehende Kommunikationsverbindung beendet und die neue gestartet wird. Alle während dieser Verarbeitungszeit unternommenen Schreibversuche in das neue Topic gehen verloren.

Kategorie

Sonstige

Syntax

IOSetAccessName("Zugriffsname", "Rechnername", "Anwendungsname", "TopicName");

Argumente

Zugriffsname

Der Zugriffsname, dem die neuen Werte für den Anwendungs- und Topic-Namen zugewiesen werden sollen. Zeichenfolgenkonstante oder Meldungsvariable.

Rechnername

Der neu zuzuweisende Rechnername. Zeichenfolgenkonstante oder Meldungsvariable.

Anwendungsname

Der neu zuzuweisende Anwendungsname. Zeichenfolgenkonstante oder Meldungsvariable.

Topic

Der neu zuzuweisende Topic-Name. Zeichenfolgenkonstante oder Meldungsvariable.

Anmerkungen

Sie können die Argumente als Zeichenfolgenwerte, Meldungsvariablen oder Zeichenfolgenausdrücke angeben.

Die Sekundärquelle eines Zugriffsnamens kann mit der Funktion IOSetAccessName() nicht umgeleitet werden. Es werden immer die Angaben verwendet, die Sie in der Failover-Konfiguration im Dialogfeld Zugriffsname hinzufügen eingerichtet haben.

Hinweis: Wenn Sie einen SuiteLink-Zugriffsnamen erstellen, verhindert InTouch durch eine entsprechende Prüfung, dass Sie zwei Zugriffsnamen mit identischen Angaben für Knoten, Anwendung und Topic anlegen. Achten Sie bei der Verwendung der Funktion IOSetAccessName() zum Umleiten von Zugriffsnamen zur Laufzeit ebenfalls darauf, dass keine solche Situation entsteht. IOSetAccessName() führt keine diesbezügliche Prüfung durch, sodass der Fehler nicht abgefangen wird. Der solchermaßen umgeleitete Zugriffsname funktioniert jedoch nicht ordnungsgemäß.

Beispiele

Die folgende Anweisung stellt den Zugriffsnamen MeinZN1 auf den Anwendungsnamen excel und den Topic-Namen [Mappe1]Tabelle1 um. Der Rechnername bleibt unverändert.

IOSetAccessName("MeinZN1", "", "excel", "[Mappe1]Tabelle1");

Wird eine leere Zeichenkette als Topic übergeben, so wird das aktuelle Topic des Zugriffsnamens beibehalten und nur der Anwendungsname aktualisiert.

Die folgende Anweisung ändert beispielsweise den Anwendungsnamen für den Zugriffsnamen MeinZN2 auf „excel“, ohne dass dies sich auf den aktuellen Topic-Wert auswirkt:

IOSetAccessName("MeinZN2", "", "excel", "");

Entsprechend wird bei Angabe einer leeren Zeichenfolge nur für den Anwendungsnamen der aktuelle Anwendungsname des Zugriffsnamens beibehalten und der Topic-Wert aktualisiert. Die folgende Anweisung ändert beispielsweise das Topic für den Zugriffsnamen MeinZN3 auf [Mappe2]Tabelle1, ohne dass sich dies auf den aktuellen Wert des Anwendungsnamens auswirkt:

IOSetAccessName("MeinZN3", "", "", "[Mappe2]Tabelle1");

Diese Skriptfunktion eignet sich beispielsweise, um zwischen zwei redundant angelegten Datenquellen umzuschalten.