WinCC flexible Array of Bool Variable und Tastensteuerung

Fluffi

Level-2
Beiträge
449
Reaktionspunkte
69
Zuviel Werbung?
-> Hier kostenlos registrieren
hi

warum kann bei WinCC flexible unter "Setze Bit während Taste gedrückt" kein Element aus einer Array of Bool Variable referenziert werden?
Ich habe einen Array of Bool angelegt und kann die einzelnen Elemente auch in der Oberfläche verlinken, also ohne dass Powertags dabei drauf gehen, aber
bei "Setze Bit während..." geht das nicht.

(sorry, Thread gehört natürlich in Step7 und nicht in TIA)
 
Zuletzt bearbeitet:
Bei jedem Zugriff auf ein Element eines Arrays wird stets das ganze Array gelesen oder geschrieben.
Vermutlich deshalb lässt Siemens kein Arrayelement zu für "Setze Bit während Taste gedrückt".

Arrays helfen zwar Powertags zu sparen, können aber schnell die Kommunikation überlasten.
Tastenbits vom HMI zur CPU sollten stets einzelne Bool-Variablen sein, andere Variablentypen erzeugen mehr Probleme als sie helfen.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn das wirklich der Grund ist, dann ist das aber ganz schön dreist von Siemens.
Man wird ja wohl ein Bit in einem Array setzen dürfen. Sonst geht das ja auch. Warum dann nicht bei einem Taster.
Und ein Array mit 16 Bool-Elementen ist jetzt was die Var-Kommunikation angeht auch nicht die Welt.

Gibt es sonst noch eine Möglichkeit Powertags bei Tasten zu sparen?
 
Ich setze jetzt im Array die Bits über "Setze Bit in Variable" mit einer DWORD-Hilfsvariablen. Ist zwar bescheuert, aber funktioniert als Workaround und kostet mich nur 4Powertags statt über 40
 
Ich setze jetzt im Array die Bits über "Setze Bit in Variable" mit einer DWORD-Hilfsvariablen. Ist zwar bescheuert, aber funktioniert als Workaround und kostet mich nur 4Powertags statt über 40
Diese Idee ist tatsächlich bescheuert und nicht zum Nachmachen zu empfehlen. Es funktioniert nur dann zuverlässig, wenn das HMI der einzige Prozess ist, der schreibend auf das DWORD zugreift.

Jetzt muß das HMI erst ein DWORD aus der Steuerung lesen, darin das Bit setzen und das DWORD in die Steuerung zurückschreiben. Währenddessen vergeht Zeit, wo sich das DWORD in der Steuerung durch die Steuerung oder weitere HMI verändert haben kann. Dann heißt es: "der Letzte gewinnt".

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Da es sich hier um die Abfrage einer Taste handelt, ist das HMI natürlich der einzige Prozess der schreibend darauf zugreift.
Zum Nachmachen ist das sogar äußerst empfehlenswert.
Was du hier als kritisches Zeitverhalten beschrieben hast, trifft auf alles was vom HMI schreibend ausgeht zu. Das Problem hat man immer und ist nichts was nur das Schreiben eines Bits in einer Variablen angeht.
 
Zurück
Oben