-> Hier kostenlos registrieren
Hallo zusammen,
wie schon in der Überschrift erwähnt möchte ich in einem FC via Zeiger Werte schreiben und lesen.
Anbei meine Versuche.
Versuch 1 funktioniert bis ich an das Ende des DB komme, letzter Zeigerwert stimmt dann nicht mehr?
Angenommen Startadresse ist 34, Zeiger past bis zum letzten Wert, bei diesem zeigt "er" dann auf 32???
Versuch 2 sollte doch auch funktionieren, oder?
Besten Dank schon im Voraus für die Hilfe.
wie schon in der Überschrift erwähnt möchte ich in einem FC via Zeiger Werte schreiben und lesen.
Anbei meine Versuche.
Versuch 1 funktioniert bis ich an das Ende des DB komme, letzter Zeigerwert stimmt dann nicht mehr?
Angenommen Startadresse ist 34, Zeiger past bis zum letzten Wert, bei diesem zeigt "er" dann auf 32???
Versuch 2 sollte doch auch funktionieren, oder?
Besten Dank schon im Voraus für die Hilfe.
Code:
//--- Datenbaustein öffnen
L #IN_DBNr
T #DB_open
AUF DB [#DB_open]
//--- Pointer auf die Anfangsadresse des Datenbausteinbereichs
L #IN_Start_Nr //Anfangsadresse sprich erster Wert
SLD 3
LAR1
T #Zeiger_auf_Wert
// Messwert nach DB schreiben
L #Messwert_REAL // hole umgewandelten Wert
T DBD [#Zeiger_auf_Wert] // schreibe in DB
// Werte aus DB holen Versuch 1
L #Zeiger_auf_Wert // hole Zeiger Wert
INC 32 // erhöhe um 4x8 Bit
T #Zeiger_auf_Wert // schreibe Zeiger zurueck
L DBD [#Zeiger_auf_Wert] // hole gezeigten Wert
T #GW_Min_Ein // schreibe in Temp Variable
// dies wiederholt sich 5x, dann letzter Wert lesen, funktioniert nicht
//10Byte entfernt vom Startwert, zeigt dann auf nicht plausiblen Wert?
L #Zeiger_auf_Wert
INC 80
T #Zeiger_auf_Wert
L DBD [#Zeiger_auf_Wert] // hole gezeigten Wert
T #Offset_Fuehler
// Werte aus DB holen Versuch 2
+AR1 P#4.0 // erhoehe Zeiger um 4x8 Bit (naechste REAL Zahl)
T #Zeiger_auf_Wert // schreibe auf Zeiger
L DBD [#Zeiger_auf_Wert] // hole gezeigten Wert
T #GW_Min_Ein // schreibe in Temp Variable