Échanger un message avec une unité EtherNet/IP
Ce bloc fonction échange un message explicite avec une unité EtherNet/IP à la destination spécifiée.
Entrée
L’échange de données démarre en front montant.
Type de donnée structurée avec les informations de l’unité EtherNet/IP de destination.
Type de donnée structurée du tampon de données d’envoi.
Les données peuvent être écrites dans le tampon d’envoi des données à l’aide de l’instruction FP_ETHERNETIP_DATA_SET.
Sortie
Drapeau indiquant que l’échange des données avec l’unité EtherNet/IP de destination est en cours.
Type de donnée structurée avec le résultat de l’exécution de l’instruction.
Type de donnée structurée du tampon de réception des données.
Les données peuvent être lues à partir du tampon de réception des données à l’aide des instructions FP_ETHERNETIP_DATA_GET et FP_ETHERNETIP_DATA_GET_BYTES.
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 l’instruction est exécutée dans un programme d’interruption.
Si la taille du tampon de réception des données pour dutReceiveData est en dehors de l’intervalle autorisé (3–253 mots).
Si la taille du tampon de réception des données pour dutResult est inférieure à 3 mots.
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 l’instruction est exécutée dans un programme d’interruption.
Si la taille du tampon de réception des données pour dutReceiveData est en dehors de l’intervalle autorisé (3–253 mots).
Si la taille du tampon de réception des données pour dutResult est inférieure à 3 mots.
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
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
Lorsque les variables sys_bIsEtherNetIPReady et bSend sont définies sur TRUE, la fonction est exécutée.
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
If (sys_bIsEtherNetIPReady) and (bSend) Then
FP_ETHERNETIP_DATA_EXCHANGE_FB1(bSend := bSend,
dutDestination := dutDestination,
dutSendData := dutSend,
dutResult => dutResult,
dutReceiveData => dutReceive);
End_if;