Liefert die Adresse einer Ein-/Ausgangsvariable
Diese Funktion liefert die Adresse einer Variablen am Ein-/Ausgang eines nicht-überladenen Systembefehls.
Eingang
Dieser Pin muss am Ein-/Ausgang einer FP-Funktion angeschlossen sein, an dem der Typ INT, WORD zulässig ist.
Liefert 16-Bit-Anfangsadresse der Ein-/Ausgangsvariablen
Ausgang
Ein-/Ausgangsvariable, von der die 16-Bit-Anfangsadresse benötigt wird
Von der Variablen am Ein-/Ausgang Var wird am Ein-/Ausgang Adr die 16-Bit-Anfangsadresse erzeugt. Dieser Ein-/Ausgang muss unmittelbar an einem 16-Bit-Ein- oder -Ausgang eines nicht-überladenen Systembefehls angeschlossen sein.
Nur für KOP- und FBS-Editoren: Wählen Sie im Fenster Befehle die Option Eingangsbefehl oder Ausgangsbefehl, um den erforderlichen Befehl in das Programmierfenster einzufügen.
Unter SDT wird ein strukturierter Datentyp angelegt, in dem beliebige nicht boolesche Variablen der Struktur deklariert werden.
Im POE-Kopf werden alle Ein- und Ausgangsvariablen deklariert, die für die Programmierung dieser Funktion verwendet werden. Für alle Programmiersprachen wird der gleiche POE-Kopf verwendet.
VAR
start: BOOL:=FALSE;
DutNonBoolean: @'Dut_NonBoolean';
END_VAR
Hier wurde die Variable DutNonBoolean vom Typ des oben angelegten SDT deklariert. Die Belegung der Elemente der Variablen DutNonBoolean mit Werten wurde im POE-Kopf bzw. Rumpf nicht vorgenommen, da die Werte der Variablen DutNonBoolean nach Ausführung der Funktion F12_ICRD überschrieben werden.
Wenn die Variable start auf TRUE gesetzt wird, wird die Funktion F12_ICRD ausgeführt. Sie liest Werte auf der IC-Karte ab der Adresse 100 und schreibt die Information in die Variable DutNonBoolean. Beachten Sie, dass vorher die IC-Karte über das Menü entsprechend formatiert sein muss und ggf. Werte ab der Adresse 100 auf der IC-Karte vorhanden sein sollten.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 12 ;
NETWORK_BODY
B(B_COMMENT,,It reads the values on the IC card from address 100 and writes theø^information to the variable DutNonBoolean,2,0,27,2,);
B(B_F,P12_ICRD!,Instance,9,2,17,7,,?DEN?Ds1_Start?Ds2_Number?AENO?Cd_Start);
B(B_VARIN,,start,7,3,9,5,);
B(B_VARIN,,100,7,4,9,6,);
B(B_VAROUT,,DutNonBoolean,26,4,28,6,);
B(B_F,Adr_Of_Var_O!,Instance,18,4,26,6,,?D?C);
B(B_F,Size_Of_Var!,Instance,10,10,17,12,,?D?C);
B(B_VARIN,,DutNonBoolean,8,10,10,12,);
B(B_F,INT_TO_DINT!,Instance,17,10,25,12,,?D?C);
L(17,5,18,5);
L(1,0,1,12);
L(7,6,9,6);
L(7,6,7,9);
L(7,9,26,9);
L(26,9,26,11);
L(25,11,26,11);
END_NETWORK_BODY
END_NET_WORK
END_BODY
Weitere Beispiel-Projekte befinden sich im Installationsverzeichnis von Control FPWIN Pro unter "Samples":
Read, write IC card
Read, write shared memory