WinCC Tia PC Runtime Advanced V17 HMI UDT Array per VBA Skript über Index Variable zugreifen.

Zuviel Werbung?
-> Hier kostenlos registrieren
Der PP_Vorgang_Index ist eine HMI interne Variable die z.B. in der FOR-Schleife hochgezählt wird.
Die Obergrenze des Array muss zusätzlich übergeben werden um das Ende der Schleife zu definieren.

Das ist jetzt natürlich nur ein einfaches Beispiel um das Prinzip darzustellen,

Multiplex HMI Variable
1745413362870.png

Index Variable
1745413422488.png

Wenn man jetzt innerhalb eine Schleife die Index Variable ändert, dann hat man eben das Problem das die Werte nicht aktuell sind. Deswegen das Konstrukt mit der Wartezeit um zu warten bis das doppelte des Aktualisierungsintervalls abgelaufen ist. damit neue Werte da sind. Zusätzlich kann man das mit der Nummer abgleichen weil die und der HMI Schleifenindex gleich sein müssen.

In dem Fall ist es ein Struct da braucht man paar mehr HMI Variablen

Mit einem richtigen UDT reichen sogar 2 HMI Variablen,
oder als Beispiel 10 Zeilen aus einem Array[0..100] für die Visualisierung
1745414489197.png
 

Anhänge

  • 1745413647057.png
    1745413647057.png
    60,7 KB · Aufrufe: 5
nur so zur Info : ich hatte schon den Fall (Stichwort Konsistenz), dass nach der 10 fachen Aktualisierungszeit verschiedene Variablen noch nicht aktuell waren. Das Thema stellt sich für die eigentliche Visu-Aufgabe nicht, da es im Grunde überhaupt nicht auffällt ob eine Variable nach 100ms oder nach 1s aktuell ist - für dein Script ist das aber schon ein Thema. Wie schon geschrieben : es gibt kein Ereignis, auf das man aufbauen kann.
Außerdem musst du hier berücksichtigen, dass deine hier verwendeten Variablen ja immer alle 100ms aktualisiert werden sollen (idealerweise), was die Visu bei allen anderen Variablen, die sie ggf. noch gerade so in der Aktualisierung hat, eben NICHT zuverlässig hinbekommt.
Aber du kannst es ja halten wie du willst ...
 
Zurück
Oben