- Beiträge
- 21.965
- Reaktionspunkte
- 6.836
-> Hier kostenlos registrieren
In diese Gefilde kommt er mit dem +AR1 Befehl eh nicht.Ein DB kann doch nur max 64kB groß sein, oder???
Wie weit kann AR1/AR2 adressieren? Um jetzt nichts falsches zu schreiben,
mußte ich das erst nachlesen und ausprobieren.
Als Konstante Adresse kann man maximal P#65535.7 laden (LAR1 P#65535.7).
Mehr läßt der Step7-AWL-Editor nicht zu.
Man kann also schon weiter Adressieren, als ein DB überhaupt lang sein kann
(P#DBX65535.7 ist größer als 65534).
Über den Umweg Akku1 oder per +AR1 P#x.y (notfalls mehrmals) kann man die
AR-Register bis max P#2097151.7 (ca. 2MB) bringen.
Mehr geht nicht mit 24 Bit Adresse und 8 Bit Bereichskennung.
Wenn man dann noch etwas zum AR dazuaddieren will, dann wird die Addition
tatsächlich ausgeführt und das AR-Register hat einen klassischen Überlauf
(fängt wieder "unten" an).
Eine Adresse > P#65535.7 zeigt natürlich garantiert ins nirgendwo, ist aber
möglich.
Zum Programmentwurf von ibanesch:
Beim Aufruf mit der maximal möglichen DB-Länge und wenn #Can_msg nicht
gefunden wird wäre die Schleife 65536 mal durchlaufen worden und AR1 hätte
am Ende auf P#131072.0 gestanden (65536 * P#2.0).
(das wäre natürlich nur mit OB121 gegangen)
Harald