Rockwell EtherNet/IP

Relier des automates Allen-Bradley Logix en 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 aux automates Allen-Bradley / Rockwell Logix (ControlLogix, CompactLogix) en EtherNet/IP avec l'adressage de tags CIP. Vous adressez les valeurs par le nom du tag d'automate déclaré dans le projet Logix, sans aucun plan de registres. 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 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
Période 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 le champ est là pour que vous le corrigiez. Il n'y a pas de champ de châssis : une route CIP ne porte pas de numéro de châssis. Les requêtes expirent au bout de 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 régler sa propre période de scrutation (ms) ; une valeur de tag à 0 retombe sur la période de l'équipement.

Adressage

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

Champ Sens Valeurs acceptées 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 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 les tags booléens. 0-255 0

Le pilote ouvre le tag d'automate nommé et prélève la valeur de son tampon de données au décalage. Pour un tag atomique simple, le décalage reste 0. Le décalage est ce qui permet à un seul 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 Boolean

Le nom atteint l'automate entier, points compris, et une lecture et une écriture du même tag atterrissent au même endroit. C'est ce qui fait fonctionner un nom de portée programme comme Program:Main.Counter. Un chemin de membre pointé (MyUdt.Member) est résolu par l'automate quand celui-ci publie ce membre par 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 marche toujours. La ligne Adresse source (bus) en lecture seule de la carte Source montre l'adresse assemblée au fil de la saisie.

Types de donnée

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

Type de donnée Type CIP Taille
Boolean BOOL 1 bit au décalage en bits
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 peuvent être lus ou écrits, et c'est pour cela que le décalage en octets existe, pour atteindre les membres à l'intérieur. String est délibérément absent du sélecteur : une 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 VPN a souvent plus de réseaux que l'opérateur ne s'y attend, 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 bouclage et de tunnel, et une adresse que l'interface s'est donnée elle-même faute de réponse DHCP (169.254.x.x). Seule une réponse qui est la réponse d'identité d'un automate devient un équipement candidat, nommé eip:// suivi de son adresse ; tout autre répondant sur le port EtherNet/IP est ignoré et le journal le dit. Pour chaque candidat, le balayage lit ensuite la liste des tags de portée automate et propose ses tags atomiques en 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 comprises) sont abandonnés, et les entrées Program:, Task: et Map: sont sautées. Un automate sur un réseau où cet ordinateur ne se trouve pas ne répond pas à la diffusion ; ajoutez-le à la main.

Bon à savoir

  • Chaque requête vers l'automate expire au bout de 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 garde ouvert tant que l'équipement est connecté ; un automate portant des dizaines de tags est donc lu sur les sessions qu'il a déjà, au lieu d'en ouvrir et d'en fermer une par lecture. Une lecture qui échoue relâche son tag, et la suivante le rouvre par son nom.
  • Renommer un tag dans le projet Logix casse la voie en silence ; le tag se lit alors en mauvaise qualité jusqu'à ce que le nom configuré corresponde de nouveau.