-> Hier kostenlos registrieren
Hallo, ich versuche gerade ANY Pointer zu verstehen und habe hierzu folgendes probiert:
Das ganze ist auf einer 300 in einem FB geschrieben und ich will mir den Wert 44 auf Array[0..10]ofReal Adresse 0.0 im globalen Datenbaustein 1 schreiben.
Problem:
Der Wert 44 wird nicht auf mein erstes REAL im Array (Adresse 0.0) sondern auf das 4e (Adresse 12.0) geschrieben.
Auf dem 4en REAL steht nun also der Wert 002C0000.
Hab ich hier was falsch verstanden?
Ich dachte der Befehl T DBD[AR1, P#0.0] soll mir den Wert 44 als Double in DB1 auf Stelle AR1 mit Offset 0 schreiben.
Lg
Das ganze ist auf einer 300 in einem FB geschrieben und ich will mir den Wert 44 auf Array[0..10]ofReal Adresse 0.0 im globalen Datenbaustein 1 schreiben.
Code:
LAR1 P##tPoint1 //Zeiger ins Adressregister laden
L W#16#10 //Syntax ID --> bei S7 immer 10
T LB [AR1,P#0.0]
L W#16#8 //Typ REAL
T LB [AR1,P#1.0]
L 11 //Anzahl der REAL
T LW [AR1,P#2.0]
L 1 //Quell-Datenbaustein
T LW [AR1,P#4.0]
L 0 //Anfang der Quelle
SLD 3 //Pointer bauen
T LD [AR1,P#6.0]
L DW#16#84000000 //Speicherbereich
T LB [AR1,P#6.0]
AUF "DB_DATA"
L 44
T DBD [AR1,P#0.0]
Problem:
Der Wert 44 wird nicht auf mein erstes REAL im Array (Adresse 0.0) sondern auf das 4e (Adresse 12.0) geschrieben.
Auf dem 4en REAL steht nun also der Wert 002C0000.
Hab ich hier was falsch verstanden?
Ich dachte der Befehl T DBD[AR1, P#0.0] soll mir den Wert 44 als Double in DB1 auf Stelle AR1 mit Offset 0 schreiben.
Lg