- Beiträge
- 24.187
- Reaktionspunkte
- 7.681
-> Hier kostenlos registrieren
leider nicht ganz richtig...Siemens:
für den Zugriff auf den Wert eines Array-Elements können Sie in VB folgende Syntax verwenden:
SmartTags("ExportData")(0)
oder
SmartTags("ExportData<0>")
SmartTags("ExportData")(0)
ist der Zugriff auf ein Element eines Arrays (dabei wird das gesamte Array gelesen/aktualisiert)SmartTags("ExportData<0>")
da wird der Name einer einzelnen existierenden HMI-Variable zusammengebasteltja, prima Lösung. 23000 Variablen alle 100ms aktualisieren, nur weil sie vielleicht einmal am Tag gebraucht werden...Das Problem ist dann eben die Aktualisierung der Variablen Einstellung auf 100ms zyklisch fortlaufend,

das macht zwar das Skript langsamer (und die Anlage womöglich solange unbedienbar), stellt aber eben nicht sicher, dass alle Variablen aktualisiert wurden. Wann WinCC Adv. RT die Variablen aktualisiert, kann man nicht kontrollieren und man erhält auch keine Rückmeldung ob/wann die Variablen aktualisiert wurden. Das geht nur mit Rezeptur-Variablen.im Script muss man in der For schleife noch einen Wartebefehl einbauen um sicherzustellen das die Variablen mit dem Index aktualisiert werden bevor man sie in die CSV schreiben kann.
Wie willst du Variablen-Werte aktiv ins HMI schreiben? Und wie kannst du sicher sein, dass die Werte 150ms später "im HMI bereit sind"?Ich würde in dem Fall den Weg gehen und die Daten "live"schreiben, also die Aktuellen Werte in einen HMI Puffer schreiben, danach 150ms später ein Bit Setzen das Daten bereit sind und damit ein script triggern
Insgesamt mag deine Lösung vielleicht oft funktionieren, aber eben nicht garantiert sicher. Und als Profi für Industrie-Anlagen sollte man doch den Anspruch haben, eine Lösung zu programmieren, die immer funktioniert und nicht nur meistens ... aber immer so tut als ob es einwandfrei geklappt hätte ...