Tigerente1974
Level-3
- Beiträge
- 1.826
- Reaktionspunkte
- 293
-> Hier kostenlos registrieren
S7-300, Step7 V5.5, SCL
Folgende Aufgabenstellung:
Ich habe immer wieder Anwendungen, in denen eine unterschiedliche Struktur (UDT) in einem Global-DB als Array abgelegt ist.
Z.B. werden da Daten von einem Platz zum anderen übergeben. Das klappt auch problemlos. Jetzt möchte ich aber die Daten an bestimmten Feldelementen des Arrays auch mal löschen / initialisieren.
Für meine Zwecke genügt es, wenn alle Strukturelemente = 0 bzw. FALSE sind.
Aktuell löse ich das so, dass ich das Array mit dem Index 0 verwende, in dem auch alle Strukturelemente 0 / FALSE sind:
Die Daten an Platz 4 werden so z.B. initialisiert. Das funktioniert auch, birgt aber die Gefahr, dass jemand mal versehentlich irgendwas in das Array[0] reinschreibt.
Falls es da etwas "Fertiges" gibt, wäre mir wichtig, dass ich die Länge des "Löschbereichs" nicht handisch anpassen muss, wenn die Struktur verändert wird. Ich strebe also keine Lösung an, bei der ich schreiben muss an welcher Adresse im DB der zu löschende Bereich beginnt und wie lang dieser ist.
Jemand eine Idee für mich?
Folgende Aufgabenstellung:
Ich habe immer wieder Anwendungen, in denen eine unterschiedliche Struktur (UDT) in einem Global-DB als Array abgelegt ist.
Z.B. werden da Daten von einem Platz zum anderen übergeben. Das klappt auch problemlos. Jetzt möchte ich aber die Daten an bestimmten Feldelementen des Arrays auch mal löschen / initialisieren.
Für meine Zwecke genügt es, wenn alle Strukturelemente = 0 bzw. FALSE sind.
Aktuell löse ich das so, dass ich das Array mit dem Index 0 verwende, in dem auch alle Strukturelemente 0 / FALSE sind:
Code:
Status_SFC20:=BLKMOV(SRCBLK :="Daten".Platz[0],DSTBLK :="Daten".Platz[4]);
Die Daten an Platz 4 werden so z.B. initialisiert. Das funktioniert auch, birgt aber die Gefahr, dass jemand mal versehentlich irgendwas in das Array[0] reinschreibt.
Falls es da etwas "Fertiges" gibt, wäre mir wichtig, dass ich die Länge des "Löschbereichs" nicht handisch anpassen muss, wenn die Struktur verändert wird. Ich strebe also keine Lösung an, bei der ich schreiben muss an welcher Adresse im DB der zu löschende Bereich beginnt und wie lang dieser ist.
Jemand eine Idee für mich?