FP_ETHERNETIP_DATA_EXCHANGE_FB

Nachricht mit EtherNet/IP-Modul austauschen

Dieser Funktionsblock tauscht eine explizite Nachricht mit einem EtherNet/IP-Modul am angegebenen Ziel aus.

Parameter

Eingang

bSend (BOOL)

Der Datenaustausch startet bei steigender Flanke

dutDestination (FP_ETHERNETIP_DATA_DESTINATION_DUT)

Strukturierter Datentyp mit Informationen über das Ziel-EtherNet/IP-Modul

dutSendData (FP_ETHERNETIP_DATA_SEND_DUT)

Strukturierter Datentyp des Sendedatenpuffers.

Die Daten können mit dem Befehl FP_ETHERNETIP_DATA_SET in den Sendedatenpuffer geschrieben werden.

Ausgang

bInProgress (BOOL)

Merker, der anzeigt, dass der Datenaustausch mit dem Ziel-EtherNet\IP-Modul läuft.

dutResult (FP_ETHERNETIP_DATA_EXCHANGE_RESULT_DUT)

Strukturierter Datentyp des Ergebnisses der Befehlsausführung

dutReceiveData (FP_ETHERNETIP_DATA_RECEIVE_DUT)

Strukturierter Datentyp des Empfangsdatenpuffers.

Die Daten können mit den Befehlen FP_ETHERNETIP_DATA_GET und FP_ETHERNETIP_DATA_GET_BYTES aus dem Empfangsdatenpuffer gelesen werden

Fehleralarmmerker

sys_bIsOperationErrorHold (wird auf TRUE gesetzt und bleibt TRUE)
  • wenn der mit dem Index-Modifizierer definierte Bereich größer ist als der zulässige Bereich

  • wenn die EtherNet/IP-Funktion in der Ethernet-Modulkonfiguration nicht verwendet wird.

  • wenn der Befehl in einem Interrupt-Programm ausgeführt wird

  • wenn die Größe des Empfangsdatenpuffers für dutReceiveData außerhalb des zulässigen Bereichs (3-253 Worte) liegt.

  • wenn die Größe des Empfangsdatenpuffers für dutResult weniger als 3 Worte beträgt.

sys_bIsOperationErrorNonHold (wird für einen Zyklus auf TRUE gesetzt)
  • wenn der mit dem Index-Modifizierer definierte Bereich größer ist als der zulässige Bereich

  • wenn die EtherNet/IP-Funktion in der Ethernet-Modulkonfiguration nicht verwendet wird.

  • wenn der Befehl in einem Interrupt-Programm ausgeführt wird

  • wenn die Größe des Empfangsdatenpuffers für dutReceiveData außerhalb des zulässigen Bereichs (3-253 Worte) liegt.

  • wenn die Größe des Empfangsdatenpuffers für dutResult weniger als 3 Worte beträgt.

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
		dutSend: FP_ETHERNETIP_DATA_SEND_DUT;
		FP_ETHERNETIP_DATA_EXCHANGE_FB1: FP_ETHERNETIP_DATA_EXCHANGE_FB;
		bSend: BOOL:=FALSE;
		dutDestination: FP_ETHERNETIP_DATA_DESTINATION_DUT;
		dutReceive: FP_ETHERNETIP_DATA_RECEIVE_DUT;
		dutResult: FP_ETHERNETIP_DATA_EXCHANGE_RESULT_DUT;
	END_VAR

KOP-Rumpf

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

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 6 ;
        NETWORK_BODY
B(B_CONTACT,,sys_bIsEtherNetIPReady,5,2,7,4,);
B(B_CONTACT,,bSend,13,2,15,4,);
B(B_FB,FP_ETHERNETIP_DATA_EXCHANGE_FB!,FP_ETHERNETIP_DATA_EXCHANGE_FB1,21,1,39,6,,?BbSend?BdutDestination?BdutSendData?AbInProgress?AdutReceiveData?AdutResult);
B(B_VARIN,,dutDestination,19,3,21,5,);
B(B_VAROUT,,dutResult,39,3,41,5,);
B(B_VARIN,,dutSend,19,4,21,6,);
B(B_VAROUT,,dutReceive,39,4,41,6,);
L(1,0,1,6);
L(1,3,5,3);
L(7,3,13,3);
L(15,3,21,3);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST-Rumpf

If (sys_bIsEtherNetIPReady) and (bSend) Then
    FP_ETHERNETIP_DATA_EXCHANGE_FB1(bSend := bSend,
                                    dutDestination := dutDestination,
                                    dutSendData := dutSend,
                                    dutResult => dutResult,
                                    dutReceiveData => dutReceive);
End_if;

Letzte Änderung am: 2022-04-19Feedback zu dieser SeitePanasonic Hotline