FP_ETHERNETIP_DATA_GET_BYTES

Byte-Daten aus dem Empfangspuffer des EtherNet/IP-Moduls lesen

Dieser FP-Befehl liest Daten aus dem durch FP_ETHERNETIP_DATA_RECEIVE_DUT angegebenen Empfangsdatenpuffer für eine EtherNet/IP-Nachricht, die mit FP_ETHERNETIP_DATA_EXCHANGE_FB ausgetauscht wurde.

Parameter

Eingang

dutReceiveData (FP_ETHERNETIP_DATA_RECEIVE_DUT)

Strukturierter Datentyp des Empfangsdatenpuffers.

nNumberOfBytes (WORD, INT, UINT)

Anzahl der Bytes, die aus dem Empfangsdatenpuffer gelesen werden sollen.

Ein-/Ausgang

ByteOffset (WORD, INT, UINT)

Aktueller Byte-Offset im Empfangsdatenpuffer.

Ausgang

DataStart (WORD, INT, UINT)

Anfangsadresse der Byte-Daten, die aus dem Empfangsdatenpuffer gelesen werden sollen.

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 ein für einen Parameter angegebener Wert außerhalb des zulässigen Bereichs liegt.

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 ein für einen Parameter angegebener Wert außerhalb des zulässigen Bereichs liegt.

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
		awMessageData: ARRAY [0..1] OF WORD:=[2(16#0)];
		dutReceiveData: FP_ETHERNETIP_DATA_RECEIVE_DUT;
		iNumberOfBytes: INT:=3;
		iCurrentByteOffset: INT:=0;
		bDecodeMessage: BOOL:=FALSE;
	END_VAR

KOP-Rumpf

Wenn die Variable bDecodeMessage auf TRUE gesetzt wird, wird die Funktion ausgeführt.

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 9 ;
        NETWORK_BODY
B(B_CONTACT,,bDecodeMessage,5,1,7,3,);
B(B_F,FP_ETHERNETIP_DATA_GET_BYTES!,,17,0,34,6,,?DEN?DdutReceiveData?DnNumberOfBytes?DByteOffset?AByteOffset?AENO?CDataStart);
B(B_VARIN,,dutReceiveData,15,2,17,4,);
B(B_VAROUT,,awMessageData,34,2,36,4,);
B(B_VARIN,,iNumberOfBytes,15,3,17,5,);
B(B_VARIN,,iCurrentByteOffset,15,4,17,6,);
L(1,0,1,9);
L(1,2,5,2);
L(7,2,17,2);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST-Rumpf

if (bDecodeMessage) then
    FP_ETHERNETIP_DATA_GET_BYTES(dutReceiveData := dutReceiveData,
                                  nNumberOfBytes := iNumberOfBytes,
                                  ByteOffset := iCurrentByteOffset,
                                  DataStart => awMessageData);
end_if;

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