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.
Pour voir la représentation générale en langage IL ou ST, consultez le chapitre Représentation des fonctions et blocs fonction.
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é.
|
i_xAbort |
BOOL |
BASE |
Valeur par défaut : FALSE.
|
i_xMsgType |
BOOL |
- |
|
i_adTargetIP |
- |
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.
|
q_xBusy |
BOOL |
BASE |
Valeur par défaut : FALSE.
|
q_xAborted |
BOOL |
BASE |
Valeur par défaut : FALSE.
|
q_xError |
BOOL |
BASE |
Valeur par défaut : FALSE.
|
q_byCommError |
BASE |
Code d'erreur de communication |
|
q_dwOperError |
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 |
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);