FP_ETHERNETIP_DATA_SET_BYTES

Écrire les octets dans le tampon d’envoi de l’unité EtherNet/IP

Cette instruction FP écrit les octets dans le tampon d’envoi des données spécifié par FP_ETHERNETIP_DATA_SEND_DUT pour un message EtherNet/IP qui a été échangé avec FP_ETHERNETIP_DATA_EXCHANGE_FB.

Paramètres

Entrée

DataStart (BOOL, INT, UINT, WORD, DINT, UDINT, DWORD, REAL, DATE, TOD, DT, STRING)

Adresse de départ des octets à écrire dans le tampon d’envoi des données.

nNumberOfBytes (WORD, INT, UINT)

Nombre d’octets à à écrire dans le tampon d’envoi des données.

bAppendData (BOOL)

Drapeau indiquant que les données doivent être ajoutées à un tampon existant.

  • Lorsque FALSE est défini, la taille du tampon d’envoi des données est définie sur 0 et les données sont écrites à la première position.

  • Lorsque TRUE est défini, les données sont écrites dans le tampon d’envoi des données à la position actuelle et la taille du tampon d’envoi est augmentée de la valeur de nNumberOfBytes.

Entrée/sortie

dutSendData (FP_ETHERNETIP_DATA_SEND_DUT)

Type de donnée structurée du tampon de données d’envoi.

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 une valeur spécifiée pour un paramètre est en dehors de l’intervalle autorisé.

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 une valeur spécifiée pour un paramètre est en dehors de l’intervalle autorisé.

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
		awMessageData: ARRAY [0..1] OF WORD:=[16#0B0A,16#000C];
		bEncodeMessage: BOOL:=FALSE;
		bAppendData: BOOL:=FALSE;
		dutSendData: FP_ETHERNETIP_DATA_SEND_DUT;
		iNumberOfBytes: INT:=3;
	END_VAR

Corps en LD

La fonction est exécutée lorsque la variable bEncodeMessage est sur TRUE.

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 7 ;
        NETWORK_BODY
B(B_CONTACT,,bEncodeMessage,5,1,7,3,);
B(B_F,FP_ETHERNETIP_DATA_SET_BYTES!,,15,0,32,7,,?DEN?DDataStart?DnNumberOfBytes?DbAppendData?DdutSendData?AdutSendData?AENO);
B(B_VARIN,,awMessageData,13,2,15,4,);
B(B_VARIN,,iNumberOfBytes,13,3,15,5,);
B(B_VARIN,,bAppendData,13,4,15,6,);
B(B_VARIN,,dutSendData,13,5,15,7,);
L(1,0,1,7);
L(1,2,5,2);
L(7,2,15,2);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corps en ST

if (bEncodeMessage) then
    FP_ETHERNETIP_DATA_SET_BYTES(DataStart := awMessageData,
                                  nNumberOfBytes := iNumberOfBytes,
                                  bAppendData := bAppendData,
                                  dutSendData := dutSendData);	
end_if;

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