10.00
7.2.3
Variable POINTER bzw. ANY für Übergabe an FC oder FB
In STEP7 ab der Version 1 besteht die Möglichkeit einen Pointer bzw. einen
ANY in der VAR_TEMP zu definieren. Eine Versorgung eines ANY soll im fol-
genden an 2 Beispielen dargestellt werden.
1. an einem FB (FC) sind mehrere ANY–Parameter definiert. Es soll nun über
Hinweis
Im Baustein wird das Adressregister AR2 verwendet. Dieses Adressregister
AR2 wird bei allerdings auch bei MultiInstanz DB verwendet. Deshalb darf die-
ser FB nicht als MultiInstanzDB erklärt sein.
FUNCTIONBLOCK FB 100
BEGIN
NETWORK
TITLE =
CALL FB 101, DB 100
Siemens AG 2003 All Rights Reserved
SINUMERIK 840D/840Di/810D Funktionsb. Grundmaschine (FB1) – Ausgabe 11.2003
eine Auswahlliste ein bestimmter ANY–Parameter an einen anderen FB
(FC) übergeben werden. Dieses funktioniert nur über einen ANY in der
VAR_TEMP. Im Parameter "WelcherAny" kann 1 bis 4 parametriert sein, um
Addr1 bis Addr4 auszuwählen.
CODE_VERSION1
VAR_INPUT
WelcherAny : INT;
Addr1 : ANY;
//feste Reihenfolge beachten
Addr2 : ANY;
Addr3 : ANY;
Addr4 : ANY;
END_VAR
VAR_TEMP
dbchr : WORD ;
Anzahl : WORD ;
typ : BYTE;
Temp_addr : ANY;
END_VAR
L
WelcherAny;
DEC 1;
L
P#10.0;
*I;
LAR2;
L
P##Addr1;
+AR2;
L
P##Temp_addr;
LAR1 ;
L
DID [AR2,P#0.0];
T
LD [AR1,P#0.0];
L
DID [AR2,P#4.0];
T
LD [AR1,P#4.0];
L
DIW [AR2,P#8.0];
T
LW [AR1,P#8.0];
(ANYPAR := #Temp_addr);
PLC–Grundprogramm (P3)
7.2 ANY und POINTER
//ab STEP7 Version 2 um MultiInstanzDB
//zu deaktivieren
//10 Byte pro ANY
//Anfangsadresse der ANYs addieren
//Pointer holen aus VAR_TEMP
//Zeigerwerte übertragen in VAR_TEM
//ANYPAR ist der
//Datentyp ANY
1/P3/7-261