Adresse des geöffneten DBs ermitteln

Woto

Level-1
Beiträge
82
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
ich muss folgenden S5-Code in der S7 realisieren:
Code:
 MAB
 LRW +3 ;Schreibzeiger
 LRW +12 ;Laenge des Datensatzes
 XF
 LRW +13 ;Datenwort Beginn Eintrag
 +F
usw.
Im Basisadressregister steht die Adresse des aktuell geöffneten DBs.

Um dies effizient umzusetzen, habe ich mir gedacht, dass man die Adresse des Datenbausteins ins AR1 oder AR2 schreibt und dann mit
Code:
L LW[AR1,P#6.0]
lädt.
Nur dafür muß man die Adresse als Pointer ins AR1 schreiben und genau da liegt mein Problem. Wie kann ich die Adresse des aktuell geöffneten DBs ermitteln:confused:
Der DB wird vorher indirekt geöffnet:
Code:
Auf DB[DBNR]
Ich habe also nur die temporäre Variable DBNR.

Gruß,
Woto
 
wenn der DB schon offen ist, wofür dann noch die adresse?

bzw.

die db-nummer ist doch schon bekannt :confused:

aber mit:

Code:
*
      L     DBNO                        // letzten offenen Globaldatenbaustein ...
      T     #wDbnoSave                  // ... sichern

bekommst du die nummer des letzen, offenen DBs
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Vierlagig,
ich möchte ganz gerne mit dem AR1 arbeiten. Dann könnte man den Code einfach umsetzen:
Code:
L LW[AR1,P#6.0]
L LW[AR1,P#24.0]
*I
T LW[AR1,P#26.0]

Ansonsten müßte man einen Datenwort-Zeiger realisieren:
Code:
L 6
SLD 3
T #DWZeiger
L DBW[#DWZeiger]
T #Zwischen
 
L 24
SLD 3
T #DWZeiger
L DBW[#DWZeiger]
L #Zwischen
*I
T #Zwischen
 
L 26
SLD 3
T #DWZeiger
L #Zwischen
T DBW[#DWZeiger]

Ich finde das ein wenig unübersichtlich.
 
Code:
*
      L     6
      SLD   3
      LAR1  
      AUF   DB [#wDbNumberTemp]
      L     DBW [AR1,P#0.0]
      L     DBW [AR1,P#18.0]
      *I    
      T     DBW [AR1,P#20.0]

ist es das, was du willst?
 
Hallo Vierlagig,
sieht ganz gut aus. Würde auch
Code:
      L     0
      LAR1  
      AUF   DB [#wDbNumberTemp]
      L     DBW [AR1,P#6.0]
      L     DBW [AR1,P#24.0]
      *I    
      T     DBW [AR1,P#26.0]
funktionieren :confused:

Gruß,
Woto
 
Zurück
Oben