-> Hier kostenlos registrieren
Hallo,
Mit diesem Code werden über ein Array-Index (int) Werte in eine DB geschrieben.
Ich möchte gerne die beiden Inputs #DB_Nr(Block_DB) und #Array_Index(int)
gegen einen Any-Pointer austauschen.
Folgenden Code-Schnipsel habe ich im I-Net gefunden, mit meinem Any-Pointer parametriert
und im Simulator ausprobiert.
So weit so gut.
Was ich jetzt nicht weiß wie ich in AWL #QuellAdr (DWord) zu meinem #Array_Index(int)
und #QuellDB (Word) zu meiner #DB_Nr(Block_DB) um wandeln kann.
Kann mir einer von Euch sagen wie ich die beiden Codeschnipsel zusammen bekomme?
Wäre Super und vielen Dank im vorraus.
Mfg Tommylik
Mit diesem Code werden über ein Array-Index (int) Werte in eine DB geschrieben.
Code:
U e30.0
SPBN M001
L #Ist_Punkt // Byte
+ -1
L 4 // Doppelwortzugriff
*D
L #Array_Index // int
+D
SLD 3 // Pointerformat erstellen
LAR1
AUF #DB_Nr // DB Aufrufen Block_DB
L #ID // DWord
T DBD [AR1,P#0.0] //Wert in den DB übertragen
M001: NOP 0
Ich möchte gerne die beiden Inputs #DB_Nr(Block_DB) und #Array_Index(int)
gegen einen Any-Pointer austauschen.
Folgenden Code-Schnipsel habe ich im I-Net gefunden, mit meinem Any-Pointer parametriert
und im Simulator ausprobiert.
So weit so gut.
Code:
L P##Startadr //Adresse des IN-Parameters (Any)
LAR1 // Any-Pointer laden
L B [AR1,P#0.0] //Prüfen ANY:S7-ANY-Kennung muß 16#10 sein!
L B#16#10
<>I
SPB err //Fehler: Aktualoperand ist kein ANY!
L B [AR1,P#1.0] //ANY:Datentyp, z.B. 16#05 für INT
T #Typ // (TEMP, Int)
L W [AR1,P#2.0] //ANY:Wiederholfaktor
T #Anzahl // (TEMP, Int)
L W [AR1,P#4.0] //ANY:DB-Nummer
T #QuellDB // (TEMP, Word)
L D [AR1,P#6.0] //ANY:Bereichsadresse mit Bereichskennung, muß auf .0 enden!
T #QuellAdr // (TEMP, DWord)
err: NOP 0
Was ich jetzt nicht weiß wie ich in AWL #QuellAdr (DWord) zu meinem #Array_Index(int)
und #QuellDB (Word) zu meiner #DB_Nr(Block_DB) um wandeln kann.
Kann mir einer von Euch sagen wie ich die beiden Codeschnipsel zusammen bekomme?
Wäre Super und vielen Dank im vorraus.
Mfg Tommylik