Das Zugreifen auf die Variable im Skript "tritt eine Anforderung los"
Sorry aber das ist definitiv nicht so!!!
Eine "normale" Variable wird durch ein Script schon nicht aktualisiert und erst recht keins mit"Auf Anforderung"
Hab's grade probiert...
Sorry, dann hast Du nicht richtig ausprobiert oder das Verhalten des Panels falsch interpretiert oder wir reden hier aneinander vorbei. Oder Siemens hat in V16 was geändert, was mindestens von WinCC flexible bis TIA V15.1 noch so funktioniert hat wie ich schrieb.
Nach all meiner Erfahrung wird die Aktualisierung definitiv "losgetreten". Das Skript wartet allerdings nicht bis die Variable aktualisiert ist, sondern arbeitet sofort mit dem momentanen Wert weiter. Der aktualisierte Wert ist erst später verfügbar. Ich schrieb bereits in #2 "
und eine unbekannte Zeit warten".
Ob und wann die Aktualisierung angestoßen wird kann man so testen:
1) in einem Bild eine Meldeanzeige (x)Meldepuffer für Meldungen der Klasse System projektieren, damit man Systemmeldungen sieht
2) einen DB mit einer PLC-Variable projektieren, z.B. "DB_HMI", Data : Array[0..99] of Real
3) eine HMI-Variable mit der PLC-Variable verbinden, Erfassungsart "Auf Anforderung"
4) im Skript die HMI-Variable lesen:
Code:
Dim SkriptVar
ShowSystemAlarm "Skript aufgerufen" [COLOR="#008000"]'DEBUG Ausgabe[/COLOR]
SkriptVar = SmartTags("DB_HMI_Data")(0)
5) Projektierung ins Panel laden
6) im DB die PLC-Variable löschen - die HMI-Variable verliert die Verbindung zur PLC-Variable! und kann nicht mehr gelesen werden
7) den DB in die CPU laden
8) jetzt am Panel das Bild mit der Schaltfläche mit dem Skriptaufruf aktivieren oder das Skript aufrufen
Kommt eine Systemmeldung daß auf die HMI-Variable nicht zugegriffen werden konnte z.B. "Adressfehler Steuerung"?
Und jetzt noch eine Rezeptur anlegen ... nö, nicht für ne Aktualisierung.
Notfalls halt ein Servicerequest
Ja bitte tue das und berichte uns hier, was Siemens dazu sagt.
Harald