TIA Grundsatzfrage zu Skripten in WinCC

DeltaMikeAir

User des Jahres 2018; 2023
Beiträge
26.763
Reaktionspunkte
10.267
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen zusammen,

ich habe eine Grundsatzfrage zu Skripten in Panels ( also z.B. Comfort Panels, projektiert mit WinCC flex oder TIA 13...15.1 )
Wie reagiert z.B. ein einzelner Befehl, wenn die Variable, welche beschrieben werden soll, aus welchem Grund auch immer nicht
erreichbar ist ( z.B. Verbindung gestört oder Adresse nicht vorhanden ).

Also als Beispiel:
SmartTags("Test") := 50

Die Variable "Test" ist hier nicht erreichbar, arbeitet das Skript dann weiter? Wird eine Systemmeldung erzeugt oder bleibt das Skript an der Stelle stehen?

Des weiteren, wie performant ist so ein Skript und gibt es Timeouts? Also ist es problemlos möglich, z.B. mittels FOR Schleifer 500 Werte zu beschreiben
oder gibt es hier Grenzen ( maximale Laufdauer eines Skriptes begrenzt )?

Hintergrund dieser Frage ist, wir liefern seit einiger Zeit Anlagen mit Comfort Panels anstelle von MP277 MP377 und haben nun schon mehrere Anlagen mit folgendem
Fehler und kommen diesem Problem nicht auf den Grund. Zuerst dachten wir es liegt an einem Überlauf an Systemmeldungen aber anscheinend ist es dies doch nicht.
Evtl. eine Kombination aus mehreren Problemchen.

https://www.sps-forum.de/hmi/82696-...ered-serious-error-shut.html?highlight=tp1200
 
Also als Beispiel:
SmartTags("Test") := 50

Die Variable "Test" ist hier nicht erreichbar, arbeitet das Skript dann weiter? Wird eine Systemmeldung erzeugt oder bleibt das Skript an der Stelle stehen?
Das Skript arbeitet weiter. Irgendwann später wird es eine Systemmeldung geben, daß die Variable nicht aktualisiert werden konnte. VBS-Skripte warten nicht auf das erfolgreiche Lesen oder Schreiben von PLC-Variablen.

Ich weiß es nicht genau wie es in TIA im Detail ist, doch ich meine, die VBS-Skripte arbeiten ja nicht wirklich mit den PLC-Variablen (den Variablen in den PLC) sondern mit den Kopien/Abbildern der PLC-Variablen im HMI (den HMI-Variablen, SmartTags). Ob die Aktualisierung/Synchronisation der HMI-Variablen mit den PLC-Variablen tatsächlich funktioniert, hat auf den Ablauf der Skripte keinen Einfluß (es sei denn, im Skript ist extra ein Warten auf Handshake-Signale programmiert).

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Harald und danke für deine Info´s

dies ist so auch mein Wissensstand allerdings zweifle ich gerade einiges an. Was auch noch interessant ist, was passiert, wenn ein Skript
durchlaufen wird und die Variable ist nicht erreichbar. Wird dann mit einem Ersatzwert ( 0 ) gearbeitet oder wird der Befehl nicht ausgeführt.

Also z.B.
SmartTags("Test") := SmartTags("NichtErreichbar");

Wird "Test" nun auf 0 geschrieben weil "NichtErreichbar" eben nicht erreichbar ist, u.U. aber z.B. den Wert 100 beinhaltet
 
Wenn eine Variable noch nicht aktualisiert wurde dann enthält sie den (festlegbaren) Anfangswert. Wenn sie später nicht mehr aktualisiert werden kann, dann enthält sie den Wert der letzten erfolgreichen Aktualisierung. Beim nicht erfolgreichem Schreiben weiß ich es nicht, ob der letzte erfolgreich geschriebene und zurückgelesene Wert oder der letzte versuchte Soll-Wert drin steht.

Harald
 
Zurück
Oben