Exemple SEND_REQ - Get_Attributes_Single
Traduction de la notice originale
Présentation
L'exemple de messagerie explicite non connectée ci-après montre comment utiliser le bloc fonction SEND_REQ pour récupérer l'ID du fournisseur d'un équipement tiers, en l'occurrence une carte Rockwell Automation 1734-AENT PointIO EtherNet/IP (révision 2.1), à l'aide du service Get_Attributes_Single.
Vous pouvez exécuter le même service de messagerie explicite dans la fenêtre Action en ligne de l'outil de configuration EtherNet/IP 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, comme suit :
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 bien entendu utiliser d'autres noms dans vos configurations de messagerie explicite.)
Broche d'entrée
Variable
Type de données
IN
start
BOOL
IN
Send_data_bytes
INT
CODE
Request_Code
INT
EMIS
Data_to_Send
Array [0...4] of 5 INT
Remarque : la valeur de Send_data_bytes est égale à la longueur de la variable Data_to_Send, en octets. Dans cet exemple, Send_data_bytes = 16#000A.
Variables d'entrée/sortie
Vous devez créer une seule variable et l'attribuer aux broches doubles d'entrée/sortie GEST Pour cet exemple, nous avons créé et nommé la variable décrite ci-après. (Vous pouvez bien entendu utiliser d'autres noms dans vos configurations de messagerie explicite.)
Broche d'entrée
Variable
Type de données
GEST
Management_Param
Array [0...3] of 4 INT
Variables de sortie
Vous devez également créer une variable et l'attribuer à la broche simple de sortie RECP. (Le nom attribué à la variable de sortie s'applique uniquement à cet exemple. Vous pouvez le modifier dans vos configurations de messagerie explicite.)
Broche de sortie
Variable
Type de données
RECP
Received_Data
Array [0...3] of 4 INT
Configuration de la variable Address
La variable Address identifie l'équipement d'où provient le message explicite, en l'occurrence le module de communication TSX ETC 100, et l'équipement cible. Notez que cette variable n'inclut pas les éléments d'adresse Xway {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.10’), où :
Configuration de la variable Request_Code
La variable Request_Code identifie le type de fonction du bloc fonction SEND_REQ, en l'occurrence une requête CIP :
Variable
Description
Valeur (hex.)
Request_Code
Le code identifie une requête CIP
16#000E
Configuration de la variable Data_to_Send
La variable Data_to_Send identifie le type de message explicite et la requête CIP :
Variable
Description
Valeur (hexa)
Data_to_Send[0]
Type de message :
  • 0000 (non connecté) ou
  • 0001 (connecté).
Dans cet exemple, Non connecté est sélectionné.
16#0000
Data_to_Send[1]
Octet de poids fort = Taille du chemin de requête (03)
Octet de poids faible = Service : Get_Attribute_Single (0E)
16#030E
Data_to_Send[2]
Octet de poids fort = Classe (01)
Octet de poids faible = Segment de classe (20)
16#0120
Data_to_Send[3]
Octet de poids fort = Instance (01)
Octet de poids faible = Segment d'instance (24)
16#0124
Data_to_Send[4]
Octet de poids fort = Attribut (01)
Octet de poids faible = Segment d'attribut (30)
16#0130
Configuration de la variable Management_Param
La variable Management_Param gère le message explicite :
Variable
Description
Valeur (hexa)
Management_Param[0]
Octet de poids fort = Numéro d'échange (géré par le système)
Octet de poids faible = Bit d'activité (géré par le système)
(lecture seule)
Management_Param[1]
Octet de poids fort = Rapport d'opération
Octet de poids faible = Rapport de communication
(lecture seule)
Management_Param[2]
Timeout en ms (0 correspond à l'infini)
16#0000
Management_Param[3]
En entrée = Longueur de la variable Data_to_Send (en octets)
En sortie = Longueur de la variable Received_Data (en octets)
16#000A
Affichage de la réponse
Utilisez une table d'animation Control Expert pour afficher le tableau de variables Received_Data. Notez que le tableau de variables Received_Data 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 : Received_Data.
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, saisissez le nom de la variable attribuée au tampon de données (Received_Data) et appuyez sur Entrée. La table d'animation affiche la variable Received_Data.
7
Développez la variable Received_Data pour afficher son tableau de mots et y visualiser la réponse CIP aux mots Received_Data(0-4) :
Remarque : chaque entrée du tableau contient deux octets de données au format « petit-boutiste », où l'octet de poids faible est stocké dans la plus petite adresse mémoire. Par exemple, « 8E » dans word[0] est l'octet de poids faible, tandis que « 00 » est l'octet de poids fort.