-> Hier kostenlos registrieren
Hi zusammen,
ich habe Probleme mit einem Baustein, den ich in TIA migriert habe.
Im folgenden Programmabschnitt soll ein gewählter Parametersatz in den aktuellen Parametersatz mittels Pointeradressierung kopiert werden.
Wieso funktioniert das nicht? CPU ist eine 1511C.
Ich würde gerne den kompletten FB neu und moderner schreiben, aber mein Kollege der den Baustein entwickelt hat möchte wenn möglich alles so lassen wie es ist.
Danke für eure Hilfe.
Edit: Meine Vermutung ist , dass Blk_move variant den Any-Pointer falsch intepretiert.
ich habe Probleme mit einem Baustein, den ich in TIA migriert habe.
Im folgenden Programmabschnitt soll ein gewählter Parametersatz in den aktuellen Parametersatz mittels Pointeradressierung kopiert werden.
Code:
TAR1 #t_RettAR1 //Inhalt AR1 merken
LAR1 P##t_P_Satz_1_20_any //Lade den Zeiger
//modifiziere Zeiger
L B#16#10 // Syntay
T LB [ AR1 , P#0.0 ]
L B#16#2 // Byte oder Wort (2=Byte, 4=Wort)
T LB [ AR1 , P#1.0 ]
L #Blockgroesse_Para_Satz_D// Anzahl der Bytes oder Worte die übertragen werden sollen
T LW [ AR1 , P#2.0 ]
L DINO // Nr. des Instanz-DB's laden
T LW [ AR1 , P#4.0 ]
L P##_P_Satz_1 // Anfangsadresse laden //UDT XY
L #t_Offset_Para_Satz_Nr// Offset laden
SLD 3
+D
T LD [ AR1 , P#6.0 ]
LAR1 #t_RettAR1 //AR1 restaurieren
//Bis hier her alles kein Problem
//Der Blockmove verusacht einen Bereichzugriffsfehler
CALL BLKMOV
blk_type:=Variant
SRCBLK :=#t_P_Satz_1_20_any //Any
RET_VAL :=#t_RET_VAL
DSTBLK :=#t_P_Satz_aktu //UDT XY
Wieso funktioniert das nicht? CPU ist eine 1511C.
Ich würde gerne den kompletten FB neu und moderner schreiben, aber mein Kollege der den Baustein entwickelt hat möchte wenn möglich alles so lassen wie es ist.
Danke für eure Hilfe.
Edit: Meine Vermutung ist , dass Blk_move variant den Any-Pointer falsch intepretiert.