Step 7 ANY-Pointer Indirekt Adressieren

Zuviel Werbung?
-> Hier kostenlos registrieren
Es kann natürlich jeder so programmieren wie er will und für richtig hält. Sauber wäre es, die paar Variablen zur Verbindungsüberwachung vom Anfang des Speicherbereiches zusätzlich getrennt an den FB zu übergeben.


Wenn Du aber die Variablen partout nicht extra übergeben willst, dann ermittle deren Adresse meinetwegen aus dem übergebenen ANY. Alle Tipps und Informationen die Du dazu brauchst findest Du bereits hier seit Beitrag #10. Insbesondere solltest Du den von mir übernommenen Code für das Kopieren des ANY von INOUT zu TEMP auch mal gründlich lesen (insbesondere die Kommentare) und versuchen zu verstehen.

Auf das erste Word des per ANY als INOUT.SendData übergebenen Datenbereichs zugreifen:
Code:
      LAR1  P##SendData                 // SendData enthält P#DB100.DBX0.0 BYTE 100
      TAR2
      +AR1

      L     W [AR1,P#4.0]               // (DB_Nr)
      T     #tmp_DBNo
      L     D [AR1,P#6.0]               // (Bereichsadresse)
      LAR1
      AUF   DB [#tmp_DBNo]
      L     W [AR1,P#0.0]

// der Akku1 enthält nun den Wert aus DB100.DBW0

Harald
 
Danke Harald,
in der tat hab ich deinen Code nicht ganz durchblickt. Aber er funktioniert :D. Werde mich aber mal dran begeben ihn richtig zu verstehen. Danach leuchtet es bestimmt bei mir!

Schon einmal vielen Dank für die gute Hilfe.
Ein wenig Eigenleistung muss ja auch noch sein.:D
 
Zurück
Oben