Potz Blitz
Level-1
- Beiträge
- 6
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Moin moin
ich habe einen Multiinstanzfähigen Instanz-FB.
In den statischen Variablen habe ich ein ARRAY[1..500] of REAL angelegt. Das Array soll sich wie ein Schieberegister verhalten. Das heißt, ich kopiere per SFC20 die Bytes die Felder 1-499 an 2..500.
Hierfür baue ich mir einen ANY auf die Quelle und einen aufs Ziel. Aber irgendwie schiebt mir der SFC20 die REALS nicht einen Schritt weiter, sonder macht murks (meldet aber keinen Fehler). Könnt Ihr da mal draufgucken? Baue ich den Pointer falsch?
ich habe einen Multiinstanzfähigen Instanz-FB.
In den statischen Variablen habe ich ein ARRAY[1..500] of REAL angelegt. Das Array soll sich wie ein Schieberegister verhalten. Das heißt, ich kopiere per SFC20 die Bytes die Felder 1-499 an 2..500.
Hierfür baue ich mir einen ANY auf die Quelle und einen aufs Ziel. Aber irgendwie schiebt mir der SFC20 die REALS nicht einen Schritt weiter, sonder macht murks (meldet aber keinen Fehler). Könnt Ihr da mal draufgucken? Baue ich den Pointer falsch?
Code:
LAR1 P##P_ANY_Quelle // Pointer ins Adressregister 1
L W#16#10
T LB [AR1,P#0.0]
L W#16#8 // HEX08 für REAL
T LB [AR1,P#1.0]
L 499 // Pointerbreite (Anzahl Elemente im Array minus eins)
T LW [AR1,P#2.0]
L DINO // Lade Instanz-DB Nr. in Akku 1
T LW [AR1,P#4.0]
L 54 // Anfangsadresse im DB (Startadresse des Arrays]
SLD 3
T LD [AR1,P#6.0]
L B#16#85 // Speicherbereich => HEX85 für Instanz-DB
T LB [AR1,P#6.0]
LAR1 P##P_ANY_Ziel // Pointer ins Adressregister 1
L W#16#10
T LB [AR1,P#0.0]
L W#16#8 // HEX08 für REAL
T LB [AR1,P#1.0]
L 499 // Pointerbreite (Anzahl Elemente im Array minus eins)
T LW [AR1,P#2.0]
L DINO // Lade Instanz-DB Nr. in Akku 1
T LW [AR1,P#4.0]
L 58 // Anfangsadresse im DB (Startadresse des Arrays + 4 Bytes]
SLD 3
T LD [AR1,P#6.0]
L B#16#85 // Speicherbereich => HEX85 für Instanz-DB
T LB [AR1,P#6.0]
CALL SFC 20
SRCBLK :=#P_ANY_Quelle
RET_VAL:=#RETVAL
DSTBLK :=#P_ANY_Ziel