EipDataExch : envoyer un message explicite

Description du bloc fonction

Ce bloc fonction envoie un message explicite.

La durée impartie à l'exécution de cette opération peut être configurée dans Gestionnaire de protocole

Une valeur de timeout est définie pour les messages connectés et une autre pour les messages non connectés.

Ce bloc fonction générique peut être utilisé pour des fonctions qui ne sont pas mises en œuvre dans la bibliothèque de messagerie explicite EtherNet/IP.

Pour utiliser le bloc fonction, vous devez ajouter au moins un équipement EtherNet/IP dans le Gestionnaire de protocole. Consultez la section Ajout d'un équipement.

Représentation graphique

Représentation en langage IL et ST

Pour voir la représentation générale en langage IL ou ST, consultez le chapitre Représentation des fonctions et blocs fonction.

Description des variables d'E/S

Le tableau suivant décrit les variables d'entrée :

Entrée

Type

Hérité de

Commentaire

i_xExecute

BOOL

BASE

Valeur par défaut : FALSE.

Un front montant de l'entrée Execute démarre le bloc fonction. Le bloc fonction poursuit son exécution et la sortie Busy prend la valeur TRUE. Un autre front montant de l'entrée Execute pendant l'exécution du bloc fonction sera ignoré.

  • FALSE : Si l'entrée Execute est définie sur FALSE pendant l'exécution du bloc fonction, la sortie Done ou Error est définie sur TRUE pendant un cycle.

  • TRUE : La sortie Done ou Error est définie sur TRUE tant que l'entrée Execute est définie sur TRUE.

i_xAbort

BOOL

BASE

Valeur par défaut : FALSE.

  • FALSE : l'exécution n'a pas été interrompue.

  • TRUE : l'exécution a été interrompue par un autre bloc fonction.

i_xMsgType

BOOL

-

  • FALSE : UCCM

  • TRUE : message (classe 3) connecté

i_adTargetIP

TCP_ADDR

-

Adresse IP de la cible

i_byService

BYTE

-

Service à effectuer (code de service fourni plus haut)

i_dwClass

DWORD

-

Classe cible.

Consultez la section Comment trouver les informations de l'objet dans la documentation de l'équipement.

Doit correspondre à la valeur 0xFFFFFFFF si la classe ne doit pas faire partie d'une requête

i_dwInstance

DWORD

-

Instance cible.

Consultez la section Comment trouver les informations de l'objet dans la documentation de l'équipement.

Peut correspondre à la valeur 0 si la cible est une instance de classe. Doit correspondre à la valeur 0xFFFFFFFF si l'instance ne doit pas faire partie d'une requête

i_dwAttribute

DWORD

-

Attribut cible.

Consultez la section Comment trouver les informations de l'objet dans la documentation de l'équipement.

Doit correspondre à la valeur 0xFFFFFFFF si l'attribut ne doit pas faire partie d'une requête

i_dwMember

DWORD

-

Membre cible.

Consultez la section Comment trouver les informations de l'objet dans la documentation de l'équipement.

Doit correspondre à la valeur 0xFFFFFFFF si le membre ne doit pas faire partie d'une requête

i_abyRequestTag

ARRAY OF [0…250] BYTE

-

Segment de symbole étendu de la cible. Si non utilisé, i_wTagSize doit être égal à 0

i_wTagSize

WORD

-

Taille réelle de i_abyRequestTag

i_abyRequestData

ARRAY OF [0…999] BYTE

-

Données qui doivent être envoyées à la cible. Si non utilisé, i_wDataSize doit être égal à 0

i_wDataSize

WORD

-

Taille réelle de i_abyRequestData

Le tableau suivant décrit les variables de sortie :

Sortie

Type

Hérité de

Commentaire

q_xDone

BOOL

BASE

Valeur par défaut : FALSE.

  • FALSE : l'exécution n'a pas encore commencé ou une erreur a été détectée.

  • TRUE : exécution terminée sans erreur détectée.

q_xBusy

BOOL

BASE

Valeur par défaut : FALSE.

  • FALSE : le bloc fonction n'est pas exécuté.

  • TRUE : le bloc fonction est en cours d'exécution.

q_xAborted

BOOL

BASE

Valeur par défaut : FALSE.

  • FALSE : l'exécution n'a pas été interrompue.

  • TRUE : l'exécution a été interrompue par l'entrée Abort.

q_xError

BOOL

BASE

Valeur par défaut : FALSE.

  • FALSE : le bloc fonction est en cours d'exécution et aucune erreur n'a été détectée.

  • TRUE : une erreur a été détectée pendant l'exécution du bloc fonction.

q_byCommError

CommunicationErrorCodes

BASE

Code d'erreur de communication

q_dwOperError

OperationErrorCodes

BASE

Code d'erreur de fonctionnement

q_abyResponseData

ARRAY OF [0…999] BYTE

-

Données de réponse en cas de réussite

q_wDataSize

WORD

-

Taille en octets des données de réponse

q_abyExtStatus

ARRAY OF [0…499] BYTE

-

Données d'état étendu en cas de réponse à une erreur

q_wExtStatusSize

WORD

-

Taille des données d'état étendu en mots de 16 bits

q_wExtStatus

WORD

-

Mot d'état étendu

Exemple

Voici un exemple d'appel de cette fonction :

MyEipDataExch(

i_xExecute:= Execute,

i_xAbort:= Abort,

q_xDone=> Done,

q_xBusy=> Busy,

q_xAborted=> Aborted,

q_xError=> Err,

q_byCommError=> CommError,

q_dwOperError=> OperError,

i_adTargetIp:= IpAddr,

i_xMsgType:= MsgType,

i_byService:= Service,

i_dwClass:= Class,

i_dwInstance:= Instance,

i_dwAttribute:= Attribute,

i_dwMember:= Member,

i_abyRequestTag:= RequestTag,

i_wTagSize:= TagSize,

i_abyRequestData:= RequestData,

i_wDataSize:= ReqDataSize,

q_abyResponseData=> ResponseData,

q_wDataSize=> ResDataSize,

q_abyExtStatus=> ExtStatusArray,

q_wExtStatusSize=> ExtStatusSize,

q_wExtStatus => ExtStatus);