EtherNet/IP-Eingang aktualisieren
Dieser FP-Befehl aktualisiert die Eingangsdaten aus dem Empfangspuffer des Knotens und an der angegebenen Verbindungsnummer. Die Daten werden vom Empfangspuffer der SPS in den Arbeitsspeicher der SPS kopiert.
Eingang
Knotennummer der zu aktualisierenden Eingangsdaten. SPS-Zyklus-Listenbereich: 1–256
Ein Fehler tritt auf, wenn der angegebene Wert außerhalb des SPS-Zyklus-Listenbereichs liegt.
Ein Fehler tritt auch auf, wenn ein reservierter Knoten angegeben wird.
Knotenverbindungsnummer der zu aktualisierenden Eingangsdaten. Bereich: 1–256
Ein Fehler tritt auf, wenn der angegebene Wert außerhalb des SPS-Zyklus-Listenbereichs liegt.
Ausgang
Speicherbereich, der die Aktualisierungsergebnisse speichert.
0: Die Aktualisierungsoperation wurde erfolgreich abgeschlossen.
1: Keine Daten empfangen. Es wird keine Aktualisierung durchgeführt.
2: EtherNet/IP ist nicht bereit für die Kommunikation.
Bevor Sie den Befehl ausführen, prüfen Sie, ob die Kommunikation einer bestimmten Verbindung normal verläuft, mit FP_ETHERNETIP_GET_STATE_TABLE_RUN.
Rufen Sie diesen Befehl auf, nachdem sys_bIsEtherNetIPReady auf TRUE gesetzt wird. Wenn er aufgerufen wird, bevor sys_bIsEtherNetIPReady auf TRUE gesetzt ist, wird ein Fehler geliefert, der anzeigt, dass EtherNet/IP nicht für die Kommunikation bereit ist.
Führen Sie diesen Befehl nicht kontinuierlich in einer SPS-Zykluszeit aus, um die Kommunikationslast zu verringern.
Verwenden Sie diesen Befehl nur für die Verbindung, für die Befehl als Aktualisierungsmethode in Configurator EtherNet/IP ausgewählt ist.
wenn die EtherNet/IP-Funktion in der Ethernet-Modulkonfiguration nicht verwendet wird.
wenn der mit dem Index-Modifizierer definierte Bereich größer ist als der zulässige Bereich
wenn ein für einen Parameter angegebener Wert außerhalb des zulässigen Bereichs liegt.
wenn der durch s1_NodeNumber und s2_ConnectionNumber angegebene Knoten oder die Verbindung nicht existiert.
wenn die für die Verbindung gewählte Aktualisierungsmethode eine andere als Befehl ist.
wenn die Anzahl der Eingangsdaten der angegebenen Verbindung 0 ist.
wenn die Anzahl der aktualisierten Daten der angegebenen Verbindung 0 ist.
wenn die EtherNet/IP-Funktion in der Ethernet-Modulkonfiguration nicht verwendet wird.
wenn der mit dem Index-Modifizierer definierte Bereich größer ist als der zulässige Bereich
wenn ein für einen Parameter angegebener Wert außerhalb des zulässigen Bereichs liegt.
wenn der durch s1_NodeNumber und s2_ConnectionNumber angegebene Knoten oder die Verbindung nicht existiert.
wenn die für die Verbindung gewählte Aktualisierungsmethode eine andere als Befehl ist.
wenn die Anzahl der Eingangsdaten der angegebenen Verbindung 0 ist.
wenn die Anzahl der aktualisierten Daten der angegebenen Verbindung 0 ist.
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;
iNodeNumber: INT:=0;
iConnectionNumber: INT:=0;
wResult: WORD:=0;
END_VAR
VAR
bEnable: BOOL:=FALSE;
iNodeNumber: INT:=0;
iConnectionNumber: INT:=0;
wResult: WORD:=0;
END_VAR
Wenn die Variablen sys_bIsEtherNetIPReady 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 := 7 ;
NETWORK_BODY
B(B_VARIN,,iNodeNumber,13,4,15,6,);
B(B_VARIN,,iConnectionNumber,13,5,15,7,);
B(B_VAROUT,,wResult,31,4,33,6,);
B(B_CONTACT,,bEnable,13,1,15,3,);
B(B_CONTACT,,sys_bIsEtherNetIPReady,5,1,7,3,);
B(B_F,FP_ETHERNETIP_REFRESH_INPUT!,,15,2,31,7,,?DEN?Ds1_NodeNumber?Ds2_ConnectionNumber?AENO?Cd_Result);
L(1,2,5,2);
L(7,2,13,2);
L(15,2,15,4);
L(1,0,1,7);
END_NETWORK_BODY
END_NET_WORK
END_BODY
IF (sys_bIsEtherNetIPReady) AND (bEnable) then
FP_ETHERNETIP_REFRESH_INPUT(s1_NodeNumber := iNodeNumber,
s2_ConnectionNumber := iConnectionNumber,
d_Result => wResult);
END_IF;