Lire les octets du tampon de réception de l’unité EtherNet/IP
Cette instruction FP lit les octets du tampon de réception des données spécifié par FP_ETHERNETIP_DATA_RECEIVE_DUT pour un message EtherNet/IP qui a été échangé avec FP_ETHERNETIP_DATA_EXCHANGE_FB.
Entrée
Type de donnée structurée du tampon de réception des données.
Nombre d’octets à lire à partir du tampon de réception des données.
Entrée/sortie
Offset de l’octet actuel dans le tampon de réception des données
Sortie
Adresse de départ des octets à lire à partir du tampon de réception des données.
Si la zone spécifiée à l’aide du modificateur d’adresse est en dehors des limites autorisées.
Si la fonction EtherNet/IP n’est pas utilisée dans la configuration de l’unité Ethernet.
Si une valeur spécifiée pour un paramètre est en dehors de l’intervalle autorisé.
Si la zone spécifiée à l’aide du modificateur d’adresse est en dehors des limites autorisées.
Si la fonction EtherNet/IP n’est pas utilisée dans la configuration de l’unité Ethernet.
Si une valeur spécifiée pour un paramètre est en dehors de l’intervalle autorisé.
Toutes les variables d’entrée et de sortie utilisées pour programmer cette fonction ont été déclarées dans l’en-tête du POU. Le même en-tête de POU est utilisé pour tous les langages de programmation.
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
La fonction est exécutée lorsque la variable bDecodeMessage est sur TRUE.
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
if (bDecodeMessage) then
FP_ETHERNETIP_DATA_GET_BYTES(dutReceiveData := dutReceiveData,
nNumberOfBytes := iNumberOfBytes,
ByteOffset := iCurrentByteOffset,
DataStart => awMessageData);
end_if;