Présentation

Cet exemple de messagerie explicite non connecté montre comment utiliser le bloc fonction MBP_MSTR pour extraire les informations de diagnostic d'un îlot STB à partir d'un module d'interface réseau STB NIC 2212, à l'aide du service Get_Attributes_Single.

Vous pouvez exécuter le même service de messagerie explicite avec la fenêtre Message explicite EtherNet/IP de l'outil de configuration Ethernet de Control Expert.

Mise en œuvre du bloc fonction MBP_MSTR

Pour mettre en œuvre le bloc fonction MBP_MSTR, vous devez créer et attribuer des variables, et le connecter à un bloc AND. Dans l'exemple ci-dessous, la logique envoie de manière continue un message explicite lors de la réception d'une notification de succès :

Variables d'entrée

Vous devez créer des variables et les attribuer aux broches d'entrée. Pour cet exemple nous avons créé et nommé les variables décrites ci-après. (Vous pouvez utiliser d'autres noms de variables dans vos configurations de messagerie explicite.)

Broche d'entrée

Variable

Type de données

ENABLE

Enable

BOOL

ABORT

StopEM

BOOL

Variables de sortie

Vous devez également créer des variables et les attribuer aux broches de sortie. (Les noms attribués aux variables de sortie s'appliquent uniquement à cet exemple. Vous pouvez les modifier dans vos configurations de messagerie explicite.)

Broche de sortie

Variable

Type de données

ACTIVE

EMActive

BOOL

ERROR

EMError

BOOL

SUCCESS

EMSuccess

BOOL

CONTROL

EIP_ControlBuf

Tableau de 10 MOTs

DATABUF

EIP_DataBuf

Tableau de 100 MOTs

NOTE : pour simplifier la configuration, vous pouvez attribuer les broches de sortie CONTROL et DATABUF à un tableau d'octets composé de variables affectées. Lorsque la configuration est effectuée de cette façon, vous n'avez pas besoin de connaître l'emplacement des données au sein d'un mot (par exemple, octet de poids fort ou faible ou encore format gros ou petit-boutiste).

Tableau de commande

Le paramètre de tableau de commande (EIP_ControlBuf) est composé de 9 mots contigus. Vous devez configurer uniquement quelques mots de commande. Les autres mots de commande sont en lecture seule et l'écriture est effectuée par l'opération. Dans cet exemple, le tableau de commande définit l'opération comme un message explicite non connecté et identifie l'équipement cible :

Registre

Description

Configuration

Réglage (hex.)

CONTROL[0]

Fonctionnement :

Octet de poids fort =

  • 00 (non connecté) ou

  • 01 (connecté)

Octet de poids faible = 0E (message explicite CIP)

Oui

16#000E (non connecté)

CONTROL[1]

Etat d'erreur détectée : lecture seule (écriture effectuée par l'opération)

Non

16#0000

CONTROL[2]

Longueur du tampon de données = 100 mots

Oui

16#0064

CONTROL[3]

Décalage de réponse : décalage (en mots) du début de la réponse au message explicite dans le tampon de données

Oui

16#0004

CONTROL[4]

Octet de poids fort = emplacement du module de communication dans l'embase

Octet de poids faible = 0 (non utilisé)

Oui

16#0400

CONTROL[5]1

Adresse IP du module de communication Ethernet :

Octet de poids fort = octet 4 de l'adresse IP

Octet de poids faible = octet 3 de l'adresse IP

Oui

16#C0A8

CONTROL[6]1

Adresse IP du module de communication Ethernet :

Octet de poids fort = octet 2 de l'adresse IP

Octet de poids faible = octet 1 de l'adresse IP

Oui

16#0106

CONTROL[7]

Longueur de la requête CIP (en octets)

Oui

16#0008

CONTROL[8]

Longueur de la réponse reçue (écriture par l'opération)

Non

16#0000

1. Dans cet exemple, le paramètre de commande traite l'adresse IP 192.168.1.6 dans l'ordre suivant : Octet 4 = 192, octet 3 = 168, octet 2 = 1, octet 1 = 6.

Requête CIP

La requête CIP se trouve au début du tampon de données, suivie de la réponse CIP. Dans cet exemple, la requête CIP demande le retour d'une valeur d'attribut unique (données de diagnostic) et décrit le chemin de la requête dans la structure d'objet de l'équipement cible vers l'attribut cible :

Mot de requête

Octet de poids fort

Octet de poids faible

Description

Valeur (hex.)

Description

Valeur (hex.)

1

Taille du chemin de requête (en mots)

16#03

Service EM : Get_Attributes_Single

16#0E

2

Chemin de requête : objet assemblage de classe

16#04

Chemin de requête : segment de classe logique

16#20

3

Chemin de requête : instance

16#64

Chemin de requête : segment d'instance logique

16#24

4

Chemin de requête : attribut

16#03

Chemin de requête : segment d'attribut logique

16#30

Si l'on associe les octets de poids faible et de poids fort qui précèdent, la requête CIP a l'apparence suivante :

Mot de requête

Valeur

1

16#030E

2

16#0420

3

16#6424

4

16#0330

Affichage de la réponse

Utilisez une table d'animation Control Expert pour afficher le tableau de variables EIP_DataBuf. Notez que le tableau de variables EIP_DataBuf reprend l'intégralité du tampon de données, qui comporte :

  • la requête CIP (4 mots) située dans EIP_DataBuf(1-4),

  • le type de service CIP (1 mot) situé dans EIP_DataBuf(5),

  • l'état de la requête CIP (1 mot) situé dans EIP_DataBuf(6),

  • la réponse CIP (dans ce cas, 10 mots) située dans EIP_DataBuf(7-16).

Pour afficher la réponse CIP, procédez comme suit :

Etape

Action

1

Dans Control Expert, choisissez OutilsNavigateur de projet pour ouvrir le Navigateur de projet.

2

Dans le Navigateur de projet, cliquez avec le bouton droit sur Tables d'animation > Nouvelle table d'animation.

Résultat : une nouvelle table d'animation s'affiche.

3

Dans la boîte de dialogue Nouvelle table d'animation , modifiez les valeurs suivantes :

Nom

Entrez le nom de la table. Dans cet exemple : EIP_DataBuf.

Mode fonctionnel

Acceptez la valeur par défaut <Aucun>.

Commentaire

Laissez ce champ vide.

Nombre de caractères animés

Entrez 100 pour représenter la taille du tampon de données en mots.

4

La boîte de dialogue renseignée se présente comme suit :

Cliquez sur OK pour fermer la boîte de dialogue.

5

Dans la colonne Nom de la table d'animation, entrez le nom de la variable attribuée au tampon de données EIP_DataBuf, et appuyez sur Entrée. La table d'animation affiche la variable EIP_DataBuf.

6

Déployez la variable EIP_DataBuf pour afficher son tableau de mots et y visualiser la réponse CIP aux mots EIP_DataBuf(7-16) :

Remarque : chaque mot présente 2 octets de données au format Little Endian, dans lequel l'octet de poids faible est stocké dans la plus petite adresse mémoire. Par exemple, « 0E » dans EIP_DataBuf[0] est l'octet de poids faible, tandis que « 03 » est l'octet de poids fort.