Heino Geerdens
Member
Hi all,
I struggling for a few days now, with passing a pointer value in a block call.
In the following example I call FC650, BronDW & DoelDW are declared as pointers.
CALL "Send Data samenstellen"
BronDB :=#DBNr
BronDW :=P#12.0 // Declared as Pointer in FC650
DoelDB :=611 // Data Ring Buffer Send
DoelDw :=P#12.0 // Start Adress Send Buffer Declared as Pointer in FC650
DataLength :=W#16#8 // Panelnaam = 8 Char
TelegramType:=2
ButtonNr :=#Index_BtNr
StatusNr :=#Index_StatNr
When I try an load then the address register in the called FC, using on the following methods, it loads a different value in AR1 then the one I pass???
.
L P##BronDW
LAR1
And this method is not permitted.
LAR2 P##DoelDw
I also tried passing the value as an ‘Integer’ or as ‘any’, but still it doens’t work.
The only thing that Works is loading the address directly using LAR1 P#value.
I would definitely appreciate some help on this one.
Grtz,
GeHe
I struggling for a few days now, with passing a pointer value in a block call.
In the following example I call FC650, BronDW & DoelDW are declared as pointers.
CALL "Send Data samenstellen"
BronDB :=#DBNr
BronDW :=P#12.0 // Declared as Pointer in FC650
DoelDB :=611 // Data Ring Buffer Send
DoelDw :=P#12.0 // Start Adress Send Buffer Declared as Pointer in FC650
DataLength :=W#16#8 // Panelnaam = 8 Char
TelegramType:=2
ButtonNr :=#Index_BtNr
StatusNr :=#Index_StatNr
When I try an load then the address register in the called FC, using on the following methods, it loads a different value in AR1 then the one I pass???
.
L P##BronDW
LAR1
And this method is not permitted.
LAR2 P##DoelDw
I also tried passing the value as an ‘Integer’ or as ‘any’, but still it doens’t work.
The only thing that Works is loading the address directly using LAR1 P#value.
I would definitely appreciate some help on this one.
Grtz,
GeHe
Last edited: