Zyklische Kommunikation Anhalteauftrag
Dieser FP-Befehl hält den Knoten an, an dem der Anhalteauftrag gestellt wird, und schreibt das Ergebnis in die Ausgangsvariable d_Result. Die Knotennummerntabelle wird durch FP_ETHERNETIP_STATE_TABLE_DUT angegeben.
Eingang
Knotennummerntabelle für Anhalteaufträge
Speicherbereichsadresse, die die maximale Knotennummer (1-256) oder eine Konstante speichert.
Ausgang
Zieladresse, an die die Daten geschrieben werden.
0: Der angegebene Knotenhalt ist abgeschlossen
1: Die Verarbeitung des angegebenen Knotenhalts läuft.
2: Angegebener Knotenhalt fehlgeschlagen
3: Mehrere Starts von FP_ETHERNETIP_STOP
wenn der Lesebereich außerhalb des zulässigen Bereichs ist
wenn der Befehl in einem Interrupt-Programm ausgeführt wird
wenn der Lesebereich außerhalb des zulässigen Bereichs ist
wenn der Befehl in einem Interrupt-Programm ausgeführt wird
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
bEnable: BOOL:=FALSE;
wResult: WORD:=0;
dutNodes_NodeTableStop: FP_ETHERNETIP_STATE_TABLE_DUT;
END_VAR
Wenn die Variablen sys_bIsEtherNetIPStartStopControllable und bEnable auf TRUE gesetzt werden, wird die Funktion ausgeführt.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 8 ;
NETWORK_BODY
B(B_VARIN,,dutNodes_NodeTableStop,14,5,16,7,);
B(B_VAROUT,,wResult,28,5,30,7,);
B(B_CONTACT,,bEnable,12,4,14,6,);
B(B_CONTACT,,sys_bIsEtherNetIPStartStopControllable,8,1,10,3,);
B(B_F,FP_ETHERNETIP_STOP!,,16,3,28,7,,?DEN?Dd_dutStateTable?AENO?Cd_Result);
L(1,2,8,2);
L(10,2,10,5);
L(10,5,12,5);
L(14,5,16,5);
L(1,0,1,8);
END_NETWORK_BODY
END_NET_WORK
END_BODY
IF (sys_bIsEtherNetIPStartStopControllable) AND (bEnable) then
FP_ETHERNETIP_STOP(d_dutStateTable := dutNodes_NodeTableStart,
d_Result => wResult)
END_IF;