Exemple de bloc fonction MBP_MSTR : Get_Attributes_Single
Traduction de la notice originale
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 :
Pour afficher la réponse CIP, procédez comme suit :
Etape
Action
1
Dans Control Expert, choisissez Outils → Navigateur 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.