Rockwell EtherNet/IP

Relier des automates Allen-Bradley Logix sur EtherNet/IP (CIP) : noms de tags d'automate, décalages en octets, types CIP atomiques et découverte réseau.

Afficher en Markdown

Le pilote Rockwell EtherNet/IP parle à des automates Allen-Bradley et Rockwell Logix (ControlLogix, CompactLogix) sur EtherNet/IP avec l'adressage de tags CIP. Vous adressez les valeurs par le nom de tag d'automate déclaré dans le projet Logix : aucun plan de registres n'entre en jeu. Ajoutez un équipement sous le pilote Rockwell EtherNet/IP dans le Connector; le volet ne montre que les champs que ce protocole emploie.

Connexion

Champ Sens Par défaut
Hôte L'adresse IP ou le nom d'hôte du port Ethernet de l'automate. vide
Emplacement La position du châssis où l'automate est logé, comptée à partir de 0. 0
Intervalle de scrutation (ms) La période de lecture de tout l'équipement, pour les tags qui ne la remplacent pas. 1 000

Il n'y a pas de champ de port : EtherNet/IP emploie son port TCP standard 44818. La route CIP est le fond de panier plus l'emplacement, si bien qu'un automate logé n'importe où dans le châssis est joignable; un automate découvert démarre à l'emplacement 0 et c'est ce champ qui vous permet de le corriger. Il n'y a pas de champ de châssis : une route CIP ne porte aucun numéro de châssis. Les requêtes expirent après 10 secondes. L'en-tête de l'équipement montre le point de terminaison assemblé, par exemple eip://192.168.0.10:0, où le nombre après l'adresse est l'emplacement.

Chaque tag peut poser son propre intervalle de scrutation (ms); une valeur de 0 sur un tag retombe sur l'intervalle de l'équipement.

Adressage

Un tag Rockwell est adressé par deux champs de la carte Source du tag :

Champ Sens Valeurs acceptées Par défaut
Tag d'automate Le nom du tag tel qu'il est déclaré dans l'automate. Obligatoire. texte libre vide
Décalage dans le tag (octets, bits pour un BOOL) Où, dans les données de ce tag, la valeur se trouve : un décalage en octets, ou un décalage en bits pour un tag booléen. 0 à 255 0

Le pilote ouvre le tag d'automate nommé et prélève la valeur dans son tampon de données au décalage indiqué. Pour un tag atomique simple, le décalage reste 0. Le décalage est ce qui permet à un tag d'automate de servir plusieurs voies : un DINT au début d'une structure est au décalage 0, le REAL quatre octets plus loin au décalage 4, et pour un tag booléen le décalage compte des bits au lieu d'octets.

Pour lire Tag d'automate Décalage Type de donnée
Un DINT Counter de portée automate Counter 0 Int32
Un DINT de portée programme dans Main Program:Main.Counter 0 Int32
Un élément de tableau REAL Temps[2] Temps[2] 0 Float
Le deuxième DINT dans la structure Recipe Recipe 4 Int32
Le bit 3 des données de Flags Flags 3 Booléen

Le nom atteint l'automate en entier, points compris, et une lecture et une écriture du même tag arrivent au même endroit. C'est ce qui fait fonctionner un nom de portée programme tel que Program:Main.Counter. Un chemin de membre pointé (MyUdt.Member) est résolu par l'automate quand l'automate publie ce membre par son nom; là où il ne le fait pas, nommez le tag de base, de portée automate, et atteignez son intérieur par le décalage en octets, ce qui fonctionne toujours. La ligne en lecture seule Adresse source (bus) de la carte Source montre l'adresse assemblée au fil de vos modifications.

Types de donnée

Chaque type CIP atomique est disponible comme type de donnée d'un tag :

Type de donnée Type CIP Taille
Boolean BOOL 1 bit au décalage de bit
SByte SINT 1 octet
Byte USINT 1 octet
Int16 INT 2 octets
UInt16 UINT 2 octets
Int32 DINT 4 octets
UInt32 UDINT 4 octets
Int64 LINT 8 octets
UInt64 ULINT 8 octets
Float REAL 4 octets
Double LREAL 8 octets

Les structures et les UDT ne sont pas pris en charge : seuls les types atomiques ci-dessus se lisent et s'écrivent, et c'est pourquoi le décalage en octets existe, pour atteindre les membres à l'intérieur. Le texte est délibérément absent du sélecteur : un STRING Logix n'est pas un type atomique mais une structure faite d'une longueur et d'un tableau de 82 octets, et le pilote ne sait ni en lire ni en écrire. L'ordre des octets sur le bus est le petit-boutiste propre à CIP et il est traité automatiquement; il n'y a pas d'option d'ordre des octets.

Écritures

Les tags dont l'accès est Lecture et écriture ou Écriture seule peuvent être écrits. Une écriture lit le tag d'automate, change les octets adressés (ou le bit adressé pour un booléen), et le réécrit. Un nouveau tag démarre en Lecture seule.

Découverte

Le bouton Découvrir du Connector diffuse une requête CIP List Identity sur chaque réseau où se trouve cet ordinateur et continue d'écouter jusqu'à ce que 10 secondes passent sans nouvelle réponse. Le balayage nomme ces réseaux pendant qu'il tourne, si bien qu'un résultat nul dit où la question est réellement allée : une station avec des adaptateurs virtuels pour des machines, WSL ou un RPV a souvent plus de réseaux que l'opérateur ne l'imagine, et des candidats peuvent arriver de l'un d'eux.

Les interfaces qui ne peuvent pas porter la requête sont sautées : tout ce qui n'est pas actif, les adaptateurs de boucle locale et de tunnel, et une adresse que l'interface s'est donnée elle-même parce que rien n'a répondu au DHCP (169.254.x.x). Seule une réponse qui est la réponse d'identité propre à un automate devient un équipement candidat, nommé eip:// suivi de son adresse; tout ce qui répond autrement sur le port EtherNet/IP est ignoré et cela est dit dans le journal. Pour chaque candidat, le balayage lit ensuite la liste des tags de portée automate et propose ses tags atomiques comme voies candidates, chacune au décalage 0.

La découverte écarte ce que le pilote ne peut pas scruter : les tags de structure et d'UDT (STRING Logix compris) sont abandonnés, et les entrées Program:, Task: et Map: sont sautées. Un automate qui se trouve sur un réseau où cet ordinateur n'est pas ne répond pas à la diffusion; ajoutez-le à la main.

Bon à savoir

  • Chaque requête vers l'automate expire après 10 secondes, et la fenêtre d'écoute de la découverte se ferme après 10 secondes de silence.
  • Le pilote ouvre chaque tag d'automate une seule fois et le laisse ouvert tant que l'équipement demeure connecté; un automate qui porte des dizaines de tags se lit donc sur les sessions qu'il possède déjà, plutôt que d'en ouvrir puis d'en fermer une par lecture. Une lecture qui échoue laisse aller son tag, et la suivante le rouvre par son nom.
  • Renommer un tag dans le projet Logix casse la voie en silence; le tag lit alors une mauvaise qualité jusqu'à ce que le nom configuré corresponde de nouveau.