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.
Eingang
Strukturierter Datentyp des Empfangsdatenpuffers.
Ein-/Ausgang
Aktueller Byte-Offset im Empfangsdatenpuffer.
Um Daten von der Anfangsadresse zu lesen, stellen Sie den Byte-Offset 0 ein.
Ausgang
Daten, die aus dem Empfangspuffer gelesen werden sollen.
Die Menge der Daten, die aus dem Empfangspuffer gelesen werden, hängt vom Datentyp der verbundenen Variablen ab.
Beim Datentyp STRING werden die aktuelle Zeichenfolgenlänge und die Zeichen aus dem Puffer gelesen.
Boolesche Variable sind nicht zulässig.
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.
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.
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
sData: STRING[32]:='';
iOffset: INT:=0;
bEnable: BOOL:=FALSE;
dutReceive: FP_ETHERNETIP_DATA_RECEIVE_DUT;
END_VAR
Wenn die Variable bEnable 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 := 6 ;
NETWORK_BODY
B(B_CONTACT,,bEnable,4,1,6,3,);
B(B_F,FP_ETHERNETIP_DATA_GET!,,17,0,31,5,,?DEN?DdutReceiveData?DByteOffset?AByteOffset?AENO?CData);
B(B_VARIN,,dutReceive,15,2,17,4,);
B(B_VAROUT,,sData,36,2,38,4,);
B(B_VARIN,,iOffset,15,3,17,5,);
L(1,0,1,6);
L(1,2,4,2);
L(6,2,17,2);
L(31,3,36,3);
END_NETWORK_BODY
END_NET_WORK
END_BODY
If (bEnable) Then
FP_ETHERNETIP_DATA_GET(dutReceiveData := dutReceive,
ByteOffset := iOffset,
Data => sData);
End_if;