FP_ETHERNETIP_REFRESH_OUTPUT

EtherNet/IP-Ausgang aktualisieren

Dieser FP-Befehl aktualisiert die Ausgangsdaten für den Knoten und die angegebene Verbindungsnummer. Die Daten werden vom Arbeitsspeicher der SPS in den Sendepuffer der SPS kopiert.

Parameter

Eingang

s1_NodeNumber (WORD, INT, UINT)

Knotennummer der zu aktualisierenden Ausgangsdaten. SPS-Zyklus-Listenbereich: 1–256

Ein Fehler tritt auf, wenn der angegebene Wert außerhalb des SPS-Zyklus-Listenbereichs liegt.

Die E/A-Adresse wird zum Senden von Daten an eine Zielkomponente (SPS) verwendet.

s2_ConnectionNumber (WORD, INT, UINT)

Verbindungsnummer der zu aktualisierenden Ausgangsdaten. Wertebereich: 1–256

Ein Fehler tritt auf, wenn der angegebene Wert außerhalb des SPS-Zyklus-Listenbereichs liegt.

Ausgang

d_Result (WORD)

Speicherbereich, der die Aktualisierungsergebnisse speichert. Wenn dieser Befehl in Zyklen ausgeführt wird, die schneller sind als RPI, wird die Ausgangsaktualisierung möglicherweise nicht durchgeführt.

  • 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.

Anmerkungen

  • 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.

Fehleralarmmerker

sys_bIsOperationErrorHold (wird auf TRUE gesetzt und bleibt TRUE)
  • 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 die durch s1_NodeNumber und s2_ConnectionNumber angegebene E/A-Adresse oder der Knoten/die Verbindung nicht existiert.

  • wenn die für die Verbindung gewählte Aktualisierungsmethode eine andere als Befehl ist.

  • wenn die Anzahl der Ausgangsdaten der angegebenen Verbindung 0 ist.

  • wenn die Anzahl der aktualisierten Daten der angegebenen Verbindung 0 ist.

sys_bIsOperationErrorNonHold (wird für einen Zyklus auf TRUE gesetzt)
  • 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 die durch s1_NodeNumber und s2_ConnectionNumber angegebene E/A-Adresse oder der Knoten/die Verbindung nicht existiert.

  • wenn die für die Verbindung gewählte Aktualisierungsmethode eine andere als Befehl ist.

  • wenn die Anzahl der Ausgangsdaten der angegebenen Verbindung 0 ist.

  • wenn die Anzahl der aktualisierten Daten der angegebenen Verbindung 0 ist.

Beispiel

POE-Kopf

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

POE-Rumpf

Wenn die Variablen sys_bIsEtherNetIPReady und bEnable auf TRUE gesetzt werden, wird die Funktion ausgeführt.

KOP-Rumpf

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 9 ;
        NETWORK_BODY
B(B_VARIN,,iNodeNumber,13,4,15,6,);
B(B_VARIN,,iConnectionNumber,13,5,15,7,);
B(B_VAROUT,,wResult,32,4,34,6,);
B(B_CONTACT,,bEnable,13,1,15,3,);
B(B_CONTACT,,sys_bIsEtherNetIPReady,5,1,7,3,);
B(B_F,FP_ETHERNETIP_REFRESH_OUTPUT!,,15,2,32,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,9);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST-Rumpf

IF (sys_bIsEtherNetIPReady) AND (bEnable) then
    FP_ETHERNETIP_REFRESH_OUTPUT(s1_NodeNumber := iNodeNumber,
                                 s2_ConnectionNumber := iConnectionNumber,
                                d_Result => wResult);
END_IF;

Letzte Änderung: 2024-03-07Feedback zu dieser SeitePanasonic Hotline