-> Hier kostenlos registrieren
Hallo,
Ich hab ein paar grundlegende Fragen zur indirekten Adressierung in AWL:
1. Warum geht:
L DB30.DBW45
und
L DB30.DBW[MD20] nicht
aber
L DBW[MD20] geht wieder
==>Ein Zeiger hat 32 Bit.
Nun möchte ich im FB einen eigenen Zeiger deklarieren, der im Programm dynamisch hochgezählt wird.
Beispiel:
Variablenansicht: STAT: #zeiger (Datentyp DWord bzw. DINT)
Und warum geht dann
L DBW[#zeiger] nicht?
3. Wie funktioniert die Umwandlung eines Integerwertes ins Zeigerformat?
Beispiel: Möchte das DB-Doppelwort an der Adresse 20 auslesen.
Habe schon folgendes erfolglos probiert:
...
AUF DB30 //DB aufschlagen
L #zeiger //Hier steht jetzt "20" (dezimal) drin
LAR1 //#zeiger ins Adressregister 1
L DBD[ar1,p#0.0] //AR1 mit 0.0Bit Offset
...
Wenn ich den Zeiger erst mit 32 multipliziere (32Bit) also (640 dezimal) gehts nicht.
Und wenn ich das ganze im Hex-Format mache gehts auch nicht.
???
Ich denke, mir fehlen da ein paar Grundlagen, versuche gerade, mir das Ganze selbst beizubringen.
Wäre nett, wenn ihr mir ein paar Tips geben könntet.
Danke!
Ich hab ein paar grundlegende Fragen zur indirekten Adressierung in AWL:
1. Warum geht:
L DB30.DBW45
und
L DB30.DBW[MD20] nicht
aber
L DBW[MD20] geht wieder
==>Ein Zeiger hat 32 Bit.
Nun möchte ich im FB einen eigenen Zeiger deklarieren, der im Programm dynamisch hochgezählt wird.
Beispiel:
Variablenansicht: STAT: #zeiger (Datentyp DWord bzw. DINT)
Und warum geht dann
L DBW[#zeiger] nicht?
3. Wie funktioniert die Umwandlung eines Integerwertes ins Zeigerformat?
Beispiel: Möchte das DB-Doppelwort an der Adresse 20 auslesen.
Habe schon folgendes erfolglos probiert:
...
AUF DB30 //DB aufschlagen
L #zeiger //Hier steht jetzt "20" (dezimal) drin
LAR1 //#zeiger ins Adressregister 1
L DBD[ar1,p#0.0] //AR1 mit 0.0Bit Offset
...
Wenn ich den Zeiger erst mit 32 multipliziere (32Bit) also (640 dezimal) gehts nicht.
Und wenn ich das ganze im Hex-Format mache gehts auch nicht.
???
Ich denke, mir fehlen da ein paar Grundlagen, versuche gerade, mir das Ganze selbst beizubringen.
Wäre nett, wenn ihr mir ein paar Tips geben könntet.
Danke!