Rockwell EtherNet/IP

Conectar controladores Allen-Bradley sobre EtherNet/IP: ControlLogix, CompactLogix, PLC-5, SLC 500, MicroLogix y Micro800, sus direcciones de tag, tipos de dato y descubrimiento por red.

Ver como Markdown

El driver Rockwell EtherNet/IP habla con controladores Allen-Bradley / Rockwell sobre EtherNet/IP. Los controladores ControlLogix y CompactLogix se direccionan por el nombre de tag del controlador declarado en el proyecto de Logix, un Micro800 por el nombre de su variable global, y un PLC-5, SLC 500 o MicroLogix por dirección de archivo de datos, sin ningún mapa de registros de por medio. Agregue un dispositivo bajo el driver Rockwell EtherNet/IP en el Connector y elija su Familia del controlador; el panel muestra solo los campos que usa esa familia.

Familias de controlador

La Familia del controlador del dispositivo decide cómo se alcanza el controlador y cómo se direccionan sus tags:

Familia del controlador Controladores Los tags se direccionan por Ranura
ControlLogix / CompactLogix ControlLogix, CompactLogix Tag del controlador, el nombre del tag sí
PLC-5 PLC-5 con puerto Ethernet (PLC-5/20E, /40E, /80E) Dirección de archivo de datos, como N7:0 no
SLC 500 SLC 5/05 Dirección de archivo de datos no
MicroLogix MicroLogix 1100 y 1400, y los demás a través de un 1761-NET-ENI Dirección de archivo de datos no
Micro800 Micro820, Micro850, Micro870 Tag del controlador, el nombre de una variable global no

ControlLogix / CompactLogix es el valor inicial, y un dispositivo creado antes de que existiera el campo es uno de ellos, así que lee exactamente como siempre. Solo un controlador ControlLogix o CompactLogix se alcanza por el backplane en una ranura: cualquier otra familia responde en su propio puerto Ethernet, y su dispositivo no tiene el campo Ranura. Un descubrimiento lee la familia en la identidad del controlador, así que un controlador encontrado llega con su familia ya elegida.

Conexión

Campo Significado Valor inicial
Host o IP Dirección IP o nombre de host del puerto Ethernet del controlador. vacío
Familia del controlador A qué familia pertenece el controlador; decide los campos de abajo y cómo se direccionan los tags. ControlLogix / CompactLogix
Ranura Solo ControlLogix / CompactLogix: en qué posición del chasis está montado el controlador, contada desde 0. 0
Intervalo de sondeo (ms) El periodo de lectura de todo el dispositivo, para los tags que no lo invaliden. 1,000

No hay campo de puerto: EtherNet/IP usa su puerto TCP estándar, el 44818. La ruta CIP es el backplane más la Ranura, así que un controlador montado en cualquier lugar del chasis es alcanzable; un controlador descubierto arranca en el slot 0 y el campo es donde usted lo corrige. No hay campo de rack: una ruta CIP no lleva número de rack. Las peticiones agotan su tiempo de espera a los 10 segundos. El encabezado del dispositivo muestra el endpoint armado, por ejemplo eip://192.168.0.10:0, donde el número que sigue a la dirección es el slot.

Un controlador de cualquier otra familia no lleva slot, y su encabezado nombra la familia en su lugar, por ejemplo eip://192.168.0.20?family=slc500.

Cada tag puede poner su propio Intervalo de sondeo (ms); un valor de 0 en el tag cae en el intervalo del dispositivo.

El direccionamiento

Un tag de Rockwell se direcciona con dos campos de la tarjeta Fuente del tag:

Campo Significado Valores aceptados Valor inicial
Tag del controlador El nombre del tag tal como está declarado en el controlador. Obligatorio. texto libre vacío
Desplazamiento en el tag (bytes, bits para BOOL) Dónde queda el valor dentro de los datos de ese tag: un desplazamiento en bytes, o un desplazamiento en bits para los tags booleanos. de 0 a 255 0

El driver abre el tag del controlador que se nombra y saca el valor de su búfer de datos en el desplazamiento. Para un tag atómico simple, el desplazamiento se queda en 0. El desplazamiento es lo que permite que un solo tag del controlador sirva a varios canales: un DINT al inicio de una estructura es el desplazamiento 0, el REAL cuatro bytes después es el desplazamiento 4, y para un tag booleano el desplazamiento cuenta bits en lugar de bytes.

Para leer Tag del controlador Desplazamiento Tipo de dato
Un DINT Counter de alcance de controlador Counter 0 Int32
Un DINT de alcance de programa en Main Program:Main.Counter 0 Int32
Un elemento de arreglo REAL Temps[2] Temps[2] 0 Float
Un elemento de arreglo BOOL Flags[5] Flags[5] 0 Boolean
El segundo DINT dentro de la estructura Recipe Recipe 4 Int32
El bit 3 de los datos de Flags Flags 3 Boolean

En un arreglo BOOL el índice nombra el BOOL, no la palabra de 32 bits del controlador: Flags[5] es el BOOL 5, y un desplazamiento en bits cuenta a partir del BOOL nombrado, así que Flags[5] con desplazamiento 2 es el BOOL 7.

El nombre llega entero al controlador, con puntos y todo, y una lectura y una escritura del mismo tag aterrizan en el mismo lugar. Eso es lo que hace funcionar un nombre de alcance de programa como Program:Main.Counter. Una ruta de miembro con puntos (MyUdt.Member) la resuelve el controlador cuando el controlador publica ese miembro por su nombre; donde no lo hace, nombre el tag base de alcance de controlador y llegue dentro de él con el desplazamiento en bytes, que siempre funciona. La línea de solo lectura Dirección de origen (bus) de la tarjeta Fuente muestra la dirección armada conforme usted edita.

Un Micro800 se direcciona igual, por el nombre de una variable global como Level: no tiene tags de alcance de programa que nombrar.

Direcciones de archivo de datos

Un tag de PLC-5, SLC 500 o MicroLogix se direcciona con un solo campo, Dirección de archivo de datos: la letra y el número del archivo, dos puntos y el elemento, y después un miembro tras un punto o un bit tras una barra. No hay campo de desplazamiento, porque la dirección nombra su propio elemento, miembro y bit, y el campo rechaza mientras usted escribe una dirección que el driver no puede leer, diciendo por qué.

Archivo Ejemplos Lee Tipo de dato
Entero (N) N7:0, N7:0/15 una palabra de 16 bits, o uno de sus bits Int16 o UInt16; Boolean para un bit
Bit (B) B3:0, B3:0/2 una palabra de 16 bits, o uno de sus bits Int16 o UInt16; Boolean para un bit
Punto flotante (F) F8:1 un valor de punto flotante de 32 bits Float
Entero largo (L) L9:0 un entero de 32 bits Int32 o UInt32
Temporizador (T) T4:0.ACC, T4:0.PRE, T4:0.DN ACC o PRE, o el bit EN, TT o DN Int16 o UInt16; Boolean para un bit
Contador (C) C5:0.ACC, C5:0.PRE, C5:0.DN ACC o PRE, o el bit CU, CD, DN, OV o UN Int16 o UInt16; Boolean para un bit
Control (R) R6:0.LEN, R6:0.POS LEN o POS Int16 o UInt16
Estado (S) S:1, S:1/15 una palabra del archivo de estado, o uno de sus bits Int16 o UInt16; Boolean para un bit
Entrada (I), salida (O) I:0, I:0/1, O:0/1 una palabra de la imagen de entradas o de salidas, o uno de sus bits Int16 o UInt16; Boolean para un bit

El Tipo de dato que se ofrece sigue al archivo, y escribir una dirección cuyo archivo no guarda el tipo del tag lo cambia al del archivo. Los archivos de estado, de entradas y de salidas pueden escribirse sin su número, como los escribe el software de programación; el driver los envía como S2:1, I1:0/1 y O0:0/1, y la línea Dirección de origen (bus) lo muestra. En una dirección de entrada o de salida, el elemento es la posición de la palabra en la imagen: las entradas integradas de un MicroLogix van de I:0/0 en adelante. Un elemento de temporizador, contador o control se lee a través de uno de sus miembros, nunca entero, y los archivos de cadena, ASCII, BCD, mensaje y PID no se leen. Un PLC-5 numera sus entradas y salidas en octal, y el driver no lee esa numeración, así que sus archivos I y O se rechazan: lea ese valor a través de un archivo de datos al que el programa lo copie. Si un archivo existe solo se sabe al leerlo: un archivo que el controlador no tiene (N9:0 sin N9) se lee como error desde la primera lectura de ese tag, y todos los demás tags del dispositivo siguen leyendo.

Los tipos de dato

Todos los tipos atómicos de CIP están disponibles como Tipo de dato de un tag:

Tipo de dato Tipo de CIP Tamaño
Boolean BOOL 1 bit en el desplazamiento de bit
SByte SINT 1 byte
Byte USINT 1 byte
Int16 INT 2 bytes
UInt16 UINT 2 bytes
Int32 DINT 4 bytes
UInt32 UDINT 4 bytes
Int64 LINT 8 bytes
UInt64 ULINT 8 bytes
Float REAL 4 bytes
Double LREAL 8 bytes

Las estructuras y los UDT no se admiten: solo se pueden leer o escribir los tipos atómicos de arriba, que es para lo que existe el desplazamiento en bytes, para llegar a los miembros que hay dentro de ellos. String falta a propósito en el selector: un STRING de Logix no es un tipo atómico, sino una estructura con una longitud y un arreglo de 82 bytes, y el driver no lo sabe ni leer ni escribir. El orden de bytes en el bus es el little-endian propio de CIP y se maneja automáticamente; no hay opción de orden de bytes.

En un PLC-5, SLC 500 o MicroLogix, el tipo sigue en cambio al archivo de datos, como muestra la tabla de direcciones de archivo de datos de arriba.

Las escrituras

Los tags cuyo Acceso es Lectura y escritura o Solo escritura se pueden escribir. Una escritura manda el valor que se le pidió y nada más, así que un bit o un miembro que cambia en el controlador en ese mismo instante nunca regresa a lo que era un momento antes:

El tag direcciona Lo que manda la escritura
Un tag atómico completo (desplazamiento 0 y el tamaño del propio tag), o un tag BOOL El valor, a ese tag
Un bit de un tag de tipo entero (Flags, desplazamiento 3, Boolean) Nada más ese bit, como Flags.3: el controlador lo cambia ahí mismo y deja los demás bits como están
Un elemento de un arreglo BOOL (Flags[5], Boolean) Nada más ese BOOL, como el bit 5 de la primera palabra del arreglo (Flags[0].5): el controlador lo cambia ahí mismo y deja los demás BOOL de la palabra como están
Un valor dentro de una estructura (Recipe, desplazamiento 4) Nada más ese miembro, por su nombre (Recipe.Speed), que se encuentra en la definición de la estructura que publica el controlador

Una escritura que solo se podría hacer mandando de regreso el resto del tag se rechaza, y el motivo menciona la dirección: una parte de un tag atómico (un Int16 en el desplazamiento 2 de un DINT), un bit de un REAL, o un desplazamiento donde ningún miembro de la estructura empieza con el tamaño del valor. En ese caso, direccione el valor por su propio nombre, por ejemplo Recipe.Speed con desplazamiento 0. El driver averigua a dónde van las escrituras de un tag en su primera escritura y lo guarda mientras el dispositivo sigue conectado. Un tag nuevo arranca como Solo lectura.

Una dirección de archivo de datos se escribe tal como se nombra: una palabra, un valor de punto flotante o un miembro enteros, y un bit (B3:0/2, T4:0.DN) solo, que el controlador cambia en el lugar, dejando los demás bits de su palabra como están.

El descubrimiento

El botón Descubrir del Connector difunde una petición CIP List Identity en todas las redes en las que está esta computadora y sigue escuchando hasta que pasen 10 segundos sin ninguna respuesta nueva. El escaneo nombra esas redes mientras corre, así que un resultado de cero dice a dónde fue realmente la pregunta: una estación con adaptadores virtuales para máquinas, para WSL o para una VPN a menudo tiene más redes de las que el operador espera, y los candidatos pueden llegar por cualquiera de ellas.

Las interfaces que no pueden llevar la petición se saltan: todo lo que no está arriba, los adaptadores de loopback y de túnel, y una dirección que la interfaz se dio a sí misma porque nadie contestó DHCP (169.254.x.x). Solo una respuesta que sea la respuesta de identidad propia de un controlador se convierte en un dispositivo candidato, nombrado con eip:// más su dirección; cualquier otra cosa que conteste en el puerto de EtherNet/IP se ignora y se dice en el diario técnico. Un controlador Omron contesta a la misma petición y también se deja fuera, con una línea propia en el diario técnico: a un controlador NJ, NX o NY lo ofrece el escaneo del driver Omron. Para cada candidato, el escaneo lee después la lista de tags de alcance de controlador y ofrece sus tags atómicos como canales candidatos, cada uno con el desplazamiento 0. Un arreglo de un tipo atómico se ofrece como su primer elemento, en ese tipo (Temps[0], o Grid[0,0] con dos dimensiones), y un arreglo BOOL como un Boolean sobre su primer BOOL (Flags[0]).

El descubrimiento descarta lo que el driver no puede sondear: los tags de estructura y los UDT (los STRING de Logix incluidos) se tiran, y las entradas Program:, Task: y Map: se saltan. Un controlador que está en una red en la que esta computadora no está no contesta la difusión; agréguelo a mano. Un tag de cualquier otro tipo, como un tipo de sistema, tampoco se ofrece, y el diario técnico lo dice.

La identidad con la que responde un controlador lleva su número de catálogo, que nombra su familia: un PLC-5, SLC 500, MicroLogix o Micro800 llega con su familia elegida y con su dirección nombrándola (eip://192.168.0.20?family=micrologix). Un PLC-5, SLC 500 o MicroLogix no publica ninguna lista de tags, así que llega sin canales candidatos y sus tags se escriben por dirección de archivo de datos; la lista de tags de un Micro800 se lee como la de un Logix.

Un controlador Logix o Micro800 que ya tiene vuelve a leer su lista de tags desde su propia página: Descubrir tags, en el encabezado de su tarjeta de tags, ofrece solo los tags del controlador para los que todavía no tiene tag, comparados por el nombre sin distinguir mayúsculas de minúsculas. Un controlador de archivos de datos no tiene lista que leer y no muestra Descubrir tags (vea Descubrir los tags de un dispositivo).

Bueno saber

  • Cada petición al controlador agota su tiempo de espera a los 10 segundos, y la ventana de escucha del descubrimiento se cierra después de 10 segundos de silencio.
  • El driver abre cada tag del controlador una sola vez y lo deja abierto mientras el equipo siga conectado, de modo que un controlador con decenas de tags se lee sobre las sesiones que ya tiene, en vez de abrir y cerrar una por cada lectura. Una lectura que falla suelta su tag, y la siguiente lo vuelve a abrir por el nombre.
  • Renombrar un tag en el proyecto de Logix rompe el canal en silencio; el tag se lee entonces con mala calidad hasta que el nombre configurado vuelva a coincidir.