Step 7 Pointer oder ANY oder ...?

Holle-52499

Level-2
Beiträge
52
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,

stehe gerade vor einem kleinen Problem.

Ich möchte aus einem DB(DB103) einen Integerwert (DBW2) rauslesen und in einen anderen Datenbaustein(DB64) reinschreiben. Der DB64 besteht aus einem Array mit 3000 Feldern. Die Felder sind logischerweise vom Datentyp Integer.
Der Wert aus dem DB103.DBW2 soll aber nur bei einer positiven Flanke an einem Eingang in den DB64 geschrieben werden.
Sollten im DB64 alle 3000 Felder schon beschrieben sein, soll einfach wieder der erste Eintrag überschrieben werden.

Jetzt zu meiner Frage: Arbeite ich da besser mit einem Pointer oder mit einem ANY?
Habe bisher auch leider 0 Erfahrungen mit Pointer oder ANY.
Oder fällt euch eine einfachere Lösung ein?

Gruß Holger
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Habe mich da jetzt mal versucht durch zu arbeiten, weiß aber nicht ob das so richtig ist.

Könnte vielleicht jemand von euch noch ein Auge darauf werfen?

Hier der Code:
U E9.1
FP M60.1
SPBN Ende

L MW62
L 2
+I
T MW62

L MW62
L 6000
>I
SPBN Next

L 0
T MW62

Next: Auf DB64
L MW62
SLD3
LAR1
L DB103.DBW2
T DBW [AR1,P#0.0]

Ende: NOP 0
 
Next: Auf DB64
L MW62
SLD3
LAR1
L DB103.DBW2
T DBW [AR1,P#0.0] <-- schreibt hier in DB103 !

Ende: NOP 0
Du darfst den Ziel-DB (DB64) erst unmittelbar vor dem Zugriff auf den DB öffnen, weil das "L DB103.DBW2" öffnet den DB103 und der nächste Zugriff ohne DB-Angabe greift auf DB103 zu.
Code:
Next: L MW62
SLD3
LAR1
L DB103.DBW2
[COLOR="#0000FF"]AUF DB64
T DBW [AR1,P#0.0][/COLOR]

Ende: NOP 0

PS: Ich würde für die Schreibpositions-Verwaltung kein Merkerwort (MW62) nehmen sondern ein remanentes DB-Wort. Bei Merkerwort reicht einmal CPU Aus/Ein bzw. Stop/Run und das Merkerwort steht wieder bei 0.

Harald
 
Zurück
Oben