Detailed description
2.14 Programming tips with STEP 7
FUNCTION FC 99: VOID
T
L
T
L
T
L
LAR1 ;
OPEN
L
2.14.3.3
Use of POINTER and ANY in FB if POINTER or ANY is available as parameter
Description of Functions
FB 99 has inputs parameters that are defined as POINTER or ANY.
The example shows a body program via which the subcomponents of the POINTER or ANY
can be accessed. In this case, the DB parameterized with POINTER or ANY is opened and
the address offset stored as a crossarea pointer in address register AR1, thus allowing
access to data elements of variables (generally structures and arrays) that are addressed via
the POINTER, ANY.
This access operation is described at the end of the relevant program sequence in the
example. With data type ANY, it is also possible to execute a check or branch when the
variable is accessed based on the data type and the number of elements involved.
Example in FB, if POINTER or ANY are present as parameters
FUNCTIONBLOCK FB 99
VAR_INPUT
Row : BYTE ;
Convert : BOOL ;
Addr: POINTER;
Addr1 : ANY ;
END_VAR
VAR_TEMP
dbchr : WORD ;
Number: WORD ;
type : BYTE ;
END_VAR
BEGIN
NETWORK
TITLE =
256
#typ;
W [AR1,P#2.0];
#Amount;
W [AR1,P#4.0];
#dbchr;
D [AR1,P#6.0];
DB [#dbchr];
B [AR1,P#0.0];
//Activate numerical conversion
//Points to variable
Comment
//Retrieve amount
//Retrieve DB number
//Offset part of pointer
//Open DB of variables
//Retrieve byte value using ANY
Comment
//POINTER
Basic logic functions: PLC basic program solution line (P3 sl)
Function Manual, 11/2006, 6FC5397-0BP10-2BA0