Exemple de message explicite EtherNet/IP : objet Modbus de lecture
(Traduction du document original anglais)
Présentation
L'exemple de messagerie explicite déconnectée ci-dessous indique comment utiliser le bloc fonction SEND_REQ pour extraire des données d'un équipement distant (par exemple, un module de communication Ethernet 140 NOC 771 01, TSX ETC 101 ou BMX NOC 0401) à l'adresse IP 192.168.1.102 avec le service Read_Holding_Registers de l'objet Modbus.
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 SEND_REQ
Pour mettre en œuvre le bloc fonction SEND_REQ, vous devez créer des variables et les attribuer aux blocs suivants :
NOTE : Dans la configuration ci-dessus, le module cible se trouve à l'emplacement 4.
Déclaration de variables
Dans cet exemple, les variables ci-dessous sont définies. Bien entendu, vous pouvez utiliser d'autres noms dans votre configuration de messagerie explicite.
Configuration de la variable Address
La variable Address identifie l'équipement source du message explicite (dans cet exemple, le module de communication TSX ETC 101) et l'équipement cible. Notez que cette variable n'inclut pas les éléments d'adresse X-Way {Réseau.Station}, car nous n'établissons pas de pont à travers une autre station automate. Utilisez la fonction ADDR pour convertir la chaîne de caractères ci-dessous en adresse :
ADDR(‘0.4.0’), où :
Configuration de la variable ReqCode
La variable ReqCode identifie le type de fonction du bloc fonction SEND_REQ, dans ce cas, une requête CIP :
Variable
Description
Valeur (hex.)
ReqCode
Le code identifie une requête CIP.
16#000E
Configuration de la variable DataToSend
La variable DataToSend identifie le type de message explicite et la requête CIP :
Variable
Description
Valeur (hex.)
DataToSend[0]
Type de message :
  • 16#0000 (non connecté), ou
  • 16#0001 (connecté)
Dans cet exemple, le message est non connecté.
16#0000
DataToSend[1]
Deux premiers octets de l'adresse IP (192.168.1.102) de l'équipement cible :
  • Octet de poids fort = octet 4 : 16#C0 (192, décimal)
  • Octet de poids faible = octet 3 : 16#A8 (168, décimal)
16#C0A8
DataToSend[2]
Deux derniers octets de l'adresse IP (192.168.1.102) de l'équipement cible :
  • Octet de poids fort = octet 2 : 16#01 (1, décimal)
  • Octet de poids faible = octet 1 : 16#66 (106, décimal)
16#0166
DataToSend[3]
Informations sur le service de la requête CIP :
  • Octet de poids fort = taille de la requête en mots : 16#02 (2, décimal)
  • Octet de poids faible = code du service : 16#4E (78, décimal)
16#024E
DataToSend[4]
Informations sur la classe de la requête CIP :
  • Octet de poids fort = classe : 16#44 (68, décimal)
  • Octet de poids faible = segment de classe : 16#20 (32, décimal)
16#4420
DataToSend[5]
Information d'instance de la requête CIP :
  • Octet de poids fort = instance : 16#01 (1, décimal)
  • Octet de poids faible = segment d'instance : 16#24 (36, décimal)
16#0124
DataToSend[6]
Registre de départ (par exemple, %MW255) :
  • Octet de poids fort = 16#00 (0, décimal)
  • Octet de poids faible = 16#FF (255, décimal)
16#00FF
DataToSend[7]
Nombre de registres à lire :
  • Octet de poids fort = 16#00 (0, décimal)
  • Octet de poids faible = 16#05 (5, décimal)
16#0005
Affichage de la réponse
Utilisez une table d'animation Control Expert pour afficher le tableau de la variable ReceivedData. Notez que ce tableau reprend l'intégralité du tampon de données.
Pour afficher la réponse CIP, procédez comme suit :
Etape
Action
1
Dans Control Expert, sélectionnez Outils → Navigateur du projet pour ouvrir le navigateur du projet.
2
Dans le Navigateur de projet, sélectionnez le dossier Tables d'animation, puis cliquez avec le bouton droit. Un menu contextuel apparaît.
3
Sélectionnez Nouvelle table d'animation dans le menu contextuel. Une nouvelle table d'animation s'ouvre, ainsi que la boîte de dialogue de propriétés correspondante.
4
Dans la boîte de dialogue de propriétés, modifiez les valeurs suivantes :
Nom
Entrez le nom de la table. Dans cet exemple : ReceivedData.
Module fonctionnel
Acceptez la valeur par défaut <Aucun>.
Commentaire
(Facultatif) Entrez un commentaire ici.
Nombre de caractères animés
Saisissez 100, soit la taille du tampon de données en mots.
5
La boîte de dialogue Propriétés est du type suivant :
Cliquez sur OK pour fermer la boîte de dialogue.
6
Dans la colonne Nom de la table d'animation, entrez le nom de la variable attribuée à la broche RECP : ReceivedData et appuyez sur Entrée. La table d'animation affiche la variable ReceivedData.
7
Développez la variable ReceivedData pour afficher son tableau de mots et visualiser la réponse CIP :
Remarque : chaque entrée de tableau présente deux 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, CE dans word[0] est l'octet de poids faible, tandis que 00 est l'octet de poids fort.