Detailed description
2.14 Programming tips with STEP 7
Basic logic functions: PLC basic program solution line (P3 sl)
256 Function Manual, 11/2006, 6FC5397-0BP10-2BA0
FUNCTION FC 99: VOID Comment
T #typ;
L W [AR1,P#2.0]; //Retrieve amount
T #Amount;
L W [AR1,P#4.0]; //Retrieve DB number
T #dbchr;
L D [AR1,P#6.0]; //Offset part of pointer
LAR1 ;
OPEN DB [#dbchr]; //Open DB of variables
L B [AR1,P#0.0]; //Retrieve byte value using ANY
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 Comment
VAR_INPUT
Row : BYTE ;
Convert : BOOL ; //Activate numerical conversion
Addr: POINTER; //Points to variable
Addr1 : ANY ;
END_VAR
VAR_TEMP
dbchr : WORD ;
Number: WORD ;
type : BYTE ;
END_VAR
BEGIN
NETWORK
TITLE =
//POINTER