So stellen Sie die korrekte Ausführung von OnShow-Skripten sicher
- Last UpdatedSep 25, 2024
- 2 minute read
Wenn ein Skript des Typs OnShow externe Verweise auf Variablens enthält, kann es sein, dass die Daten dieser Variablen zum Ausführungszeitpunkt noch nicht zur Verfügung stehen. Dies kann zu Fehlern im Skript führen.
Um dies zu vermeiden, können Sie einen Wert im Feld Daten-Timeout eingeben. Er legt fest, wie lange das System vor der Skriptausführung maximal darauf wartet, dass die Verbindung zu den externen Datenpunkten hergestellt ist. Steht die Verbindung schon früher, wird das Skript entsprechend früher ausgeführt.
Stehen die Daten bei Ablauf der angegebenen Zeitdauer hingegen immer noch nicht zur Verfügung, so wird das Skript trotzdem ausgeführt. Dann allerdings kann es zu Fehlern im Skript kommen.
Der Standardwert für die Einstellung Daten-Timeout lautet:
-
Bei neuen Industriegrafiken: 1.000 ms
-
Bei einigen HMI-Grafiken: 0 ms, d.h. es wird nicht überprüft, ob die externen Daten zur Verfügung stehen Überprüfen Sie das Verhalten Ihrer HMI-/SCADA-Software.
Der Daten-Timeout kann maximal auf 30.000 ms festgelegt werden.
Beachten Sie folgende Probleme in Bezug auf OnShow-Skripte und die Funktion Daten-Timeout:
-
Die Funktion Daten-Timeout steht bei den anderen Arten von Standardskripten nicht zur Verfügung, weil die betreffende Fehlersituation (=externe Daten stehen nicht rechtzeitig zur Verfügung) bei diesen Skripten sehr unüblich wäre.
-
Ungültige Verweise (mit ungültiger Datenqualität) verzögern die Ausführung des OnShow -Skripts nicht.
-
Benutzerdefinierte Skripte werden erst ausgeführt, nachdem das OnShow -Skript abgeschlossen wurde. Es kann daher sein, dass solche Skripte einige Male nicht ausgeführt werden, obwohl sie gemäß der Entwicklungslogik eigentlich ausgeführt werden sollten. Beispielsweise kann es sein, dass ein Skript mit dem Auslöser „OnDataChange“ bei den ersten paar geänderten Werten nicht ausgeführt wird.
-
Verzögerte OnShow-Skripte (beim Öffnen) innerhalb verschachtelter eingebetteter Grafiken können für die verschiedenen verschachtelten Ebenen nicht in Ordnung sein. So kann es beispielsweise sein, dass die Skripte der eingebetteten Symbole bereits ausgeführt werden, während das Skript des enthaltenden Symbols noch auf seine Daten wartet.