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 |
|
|
StopEM |
|
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 |
---|---|---|
|
EMActive |
|
|
EMError |
|
|
EMSuccess |
|
|
EIP_ControlBuf |
Tableau de 10 |
|
EIP_DataBuf |
Tableau de 100 |
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.) |
---|---|---|---|
|
Fonctionnement : Octet de poids fort =
Octet de poids faible = 0E (message explicite CIP) |
Oui |
16#000E (non connecté) |
|
Etat d'erreur détectée : lecture seule (écriture effectuée par l'opération) |
Non |
16#0000 |
|
Longueur du tampon de données = 100 mots |
Oui |
16#0064 |
|
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 |
|
Octet de poids fort = emplacement du module de communication dans l'embase Octet de poids faible = 0 (non utilisé) |
Oui |
16#0400 |
|
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 |
|
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 |
|
Longueur de la requête CIP (en octets) |
Oui |
16#0008 |
|
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 Outils → Navigateur de projet pour ouvrir le . |
|
2 |
Dans le , cliquez avec le bouton droit sur .Résultat : une nouvelle table d'animation s'affiche. |
|
3 |
Dans la boîte de dialogue , 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 pour fermer la boîte de dialogue. |
|
5 |
Dans la colonne 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. |