FP_ETHERNETIP_DATA_EXCHANGE_FB

É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.

Paramètres

Entrée

bSend (BOOL)

L’échange de données démarre en front montant.

dutDestination (FP_ETHERNETIP_DATA_DESTINATION_DUT)

Type de donnée structurée avec les informations de l’unité EtherNet/IP de destination.

dutSendData (FP_ETHERNETIP_DATA_SEND_DUT)

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

bInProgress (BOOL)

Drapeau indiquant que l’échange des données avec l’unité EtherNet/IP de destination est en cours.

dutResult (FP_ETHERNETIP_DATA_EXCHANGE_RESULT_DUT)

Type de donnée structurée avec le résultat de l’exécution de l’instruction.

dutReceiveData (FP_ETHERNETIP_DATA_RECEIVE_DUT)

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.

Drapeaux d’erreur

sys_bIsOperationErrorHold (passe à TRUE et reste TRUE)
  • 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.

sys_bIsOperationErrorNonHold (passe à TRUE pendant un cycle)
  • 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.

Exemple

En-tête du POU

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

Corps en LD

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

Corps en ST

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

Modifié le : 2022-04-20Commentaires sur cette pageAssistance téléphonique