worst_case
Level-2
- Beiträge
- 10
- Reaktionspunkte
- 3
-> Hier kostenlos registrieren
Hallo,
ich habe in einem DB ein UDT das bool Variablen (High/Low Byte verdreht) beinhaltet.
Meine Variablen heißen dann z.B. ST_mem.message.nr_1, ST_mem.message.nr_2, ST_mem.message.nr_3, ST_mem.message.nr_x,
Jetzt muss eine Funktion her, die Anhand von einer übergebenen Nummer z.B. 123, das 123 Bit in diesem DB/UDT setzt.
Die Adresse des DB/UDT ändert sich während des Programms nicht und der DB ist nicht speicheroptimiert.
Ich habe dazu POKE_BOOL gefunden, sollte das richtige sein, ändert aber nicht das richtige Bit, da er nur auf den Speicher sieht und nicht das UDT erkennt.
Meine Frage ist, wie kann ich die Adresse oder Referenz des DB/UDT so an den FC übergeben ?
Sollte ich im FC das UDT auf TEMP kopieren, dann das Bit setzen/löschen und wieder komplett zurückkopieren ??
Kann ich die slice Anweisung dynamisch machen DB.WORD.%xxxx ?
Hier bräuchte ich einen, oder mehrere Denkanstöße ... ;-)
Danke !!
CPU: S71200
TIA: V19
Sprache: SCL
ich habe in einem DB ein UDT das bool Variablen (High/Low Byte verdreht) beinhaltet.
Meine Variablen heißen dann z.B. ST_mem.message.nr_1, ST_mem.message.nr_2, ST_mem.message.nr_3, ST_mem.message.nr_x,
Jetzt muss eine Funktion her, die Anhand von einer übergebenen Nummer z.B. 123, das 123 Bit in diesem DB/UDT setzt.
Die Adresse des DB/UDT ändert sich während des Programms nicht und der DB ist nicht speicheroptimiert.
Ich habe dazu POKE_BOOL gefunden, sollte das richtige sein, ändert aber nicht das richtige Bit, da er nur auf den Speicher sieht und nicht das UDT erkennt.
Meine Frage ist, wie kann ich die Adresse oder Referenz des DB/UDT so an den FC übergeben ?
Sollte ich im FC das UDT auf TEMP kopieren, dann das Bit setzen/löschen und wieder komplett zurückkopieren ??
Kann ich die slice Anweisung dynamisch machen DB.WORD.%xxxx ?
Hier bräuchte ich einen, oder mehrere Denkanstöße ... ;-)
Danke !!
CPU: S71200
TIA: V19
Sprache: SCL