-> Hier kostenlos registrieren
Hallo Gemeinde,
ich suche gerade nach einer eleganten (sprich: faulen) Lösung, um eine große Menge an Bits zu setzen. Folgendes sind die Rahmenbedingungen: S7-1515; TIA V18.
Ich habe einen (nicht-optimierten) DB, in dem 175 Elemente liegen. Dabei handelt es sich um verschiedene UDTs (4 UDTs werden verwendet). Die vier UDTs sind prinzipiell ähnlich aufgebaut, sie unterscheiden sich aber in Details. Sie verfügen aber alle über das Bit, um das es hier gehen soll ("CMD_05")
Wenn jetzt ein bestimmter Zustand eintritt (gespeichert in einem Bit an anderer Stelle in der CPU), möchte ich bei allen Elementen in dem DB das obige Bit setzen.
Natürlich könnte ich eine große Tipp-Arbeit leisten und von jedem Element mit einem richtigen UDT das Bit einzeln ansteuern. Aber dann hätte ich natürlich wieder Aufwand, wenn später weitere Elemente hinzukommen.
Aus dem Grund kommt auch keine Schleife mit POKE in Betracht, zudem die UDTs unterschiedlich groß sind, weswegen keine gleichmäßige Distanz zwischen den entsprechenden Bits liegen.
Ich suche nach einer Möglichkeit, automatisiert jedes Element des DBs zu bearbeiten (idealerweise noch mit Unterscheidung, welcher UDT definiert ist), und dann das entsprechende Bit zu setzen. Ähnlich wie "For each" in einer Hochsprache.
Gruß, Januar
ich suche gerade nach einer eleganten (sprich: faulen) Lösung, um eine große Menge an Bits zu setzen. Folgendes sind die Rahmenbedingungen: S7-1515; TIA V18.
Ich habe einen (nicht-optimierten) DB, in dem 175 Elemente liegen. Dabei handelt es sich um verschiedene UDTs (4 UDTs werden verwendet). Die vier UDTs sind prinzipiell ähnlich aufgebaut, sie unterscheiden sich aber in Details. Sie verfügen aber alle über das Bit, um das es hier gehen soll ("CMD_05")
Wenn jetzt ein bestimmter Zustand eintritt (gespeichert in einem Bit an anderer Stelle in der CPU), möchte ich bei allen Elementen in dem DB das obige Bit setzen.
Natürlich könnte ich eine große Tipp-Arbeit leisten und von jedem Element mit einem richtigen UDT das Bit einzeln ansteuern. Aber dann hätte ich natürlich wieder Aufwand, wenn später weitere Elemente hinzukommen.
Aus dem Grund kommt auch keine Schleife mit POKE in Betracht, zudem die UDTs unterschiedlich groß sind, weswegen keine gleichmäßige Distanz zwischen den entsprechenden Bits liegen.
Ich suche nach einer Möglichkeit, automatisiert jedes Element des DBs zu bearbeiten (idealerweise noch mit Unterscheidung, welcher UDT definiert ist), und dann das entsprechende Bit zu setzen. Ähnlich wie "For each" in einer Hochsprache.
Gruß, Januar