Rockwell EtherNet/IP

Conectar controladores Allen-Bradley Logix sobre EtherNet/IP (CIP): nombres de tag del controlador, desplazamientos en bytes, tipos atómicos de CIP y descubrimiento por red.

Ver como Markdown

El driver Rockwell EtherNet/IP habla con controladores Allen-Bradley / Rockwell Logix (ControlLogix, CompactLogix) sobre EtherNet/IP con direccionamiento de tags CIP. Usted direcciona los valores por el nombre de tag del controlador declarado en el proyecto de Logix, sin ningún mapa de registros de por medio. Agregue un dispositivo bajo el driver Rockwell EtherNet/IP en el Connector; el panel muestra solo los campos que usa este protocolo.

La conexión

Campo Significado Valor inicial
Host o IP Dirección IP o nombre de host del puerto Ethernet del controlador. vacío
Slot 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 el Slot, 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 punto de conexión armado, por ejemplo eip://192.168.0.10:0, donde el número que sigue a la dirección es el slot.

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 Origen 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
El segundo DINT dentro de la estructura Recipe Recipe 4 Int32
El bit 3 de los datos de Flags Flags 3 Boolean

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 Origen muestra la dirección armada conforme usted edita.

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.

Las escrituras

Los tags cuyo Acceso es Lectura y escritura o Solo escritura se pueden escribir. Una escritura lee el tag del controlador, cambia los bytes direccionados (o el bit direccionado, para Boolean) y lo escribe de regreso. Un tag nuevo arranca como Solo lectura.

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. 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.

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.

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.