Integración mediante EtherNet/IP entre CompactLogix y Cobot UR5
Integra un CompactLogix 5480 y un cobot UR5 mediante EtherNet/IP para intercambiar datos cíclicos, supervisar estados y validar comunicación bidireccional.
Esta aplicación integra un cobot Universal Robots UR5 con un controlador Allen-Bradley CompactLogix 5480 mediante EtherNet/IP. El CompactLogix funciona como originator/scanner de la conexión y el UR5 como target/adapter, permitiendo un intercambio cíclico de datos de proceso entre ambos controladores.
La implementación mostrada en esta guía se desarrolló con un CompactLogix 5069-L4200ERMW conectado por su interfaz LAN B1, un switch Stratix 5700, un UR5 CB-Series con PolyScope 3 y una estación de ingeniería con Studio 5000 Logix Designer. La guía valida tanto la lectura de información del robot hacia el PLC como el envío de datos desde el PLC hacia el UR5.
¿Qué hace esta aplicación?
El objetivo es proporcionar una referencia práctica y reutilizable para integrar un UR5 dentro de una máquina o celda automatizada gobernada por Logix. La conexión permite supervisar estados del robot, posiciones articulares, información TCP, señales de I/O y registros generales, además de transferir comandos o parámetros desde el CompactLogix hacia un programa de PolyScope.
Descarga
Tenga en cuenta: deberá aceptar los Términos y Condiciones para cada descarga.
¿Necesita ayuda?
Si necesita ayuda con alguna aplicación o tiene comentarios acerca del Innovation Center, por favor contáctenos.
¿Esta aplicación es relevante para mí?
Esta aplicación es útil cuando el CompactLogix debe coordinar la secuencia general del proceso y el robot debe actuar como un subsistema dentro de la celda. Entre los beneficios principales se encuentran:
- Establecer una comunicación EtherNet/IP cíclica y estandarizada entre CompactLogix y Universal Robots.
- Leer desde el PLC estados del robot, modos de operación, variables de seguridad, joints, TCP, I/O y registros generales.
- Enviar parámetros, comandos y valores de prueba desde Studio 5000 hacia un programa de PolyScope.
- Crear una base reutilizable para handshakes de Ready, Busy, Done, Fault, selección de receta o selección de tarea.
- Facilitar el diagnóstico al disponer de información del robot directamente en Controller Tags.
¿Cómo puedo hacerlo funcionar?
Requisitos: productos, herramientas, conocimientos previos.
Hardware
- CompactLogix 5480 (5069-L4200ERMW)
- Universal Robots UR5 CB-Series
- Allen-Bradley Stratix 5700
- Engineering Workstation (Windows, Ethernet 192.168.1.167)
Software
- Studio 5000 Logix Designer v37.x
- PolyScope 3.15.4
- UR_DataTypes.L5X
Conocimiento previos
- Conocimientos Basicos Studio 5000 Logix Designer y FactoryTalk Linx.
- Conceptos Basicos EtherNet/IP.
- Operación básica Universal Robots PolyScope 3.
Enlaces de interés (internos o externos)
Guía de Implementación
Para reproducir la aplicación se requiere el siguiente entorno de hardware y software.
Revisión del controlador y compatibilidad de software
- El Controlador CompactLogix 5480 requiere Studio 5000 Logix Designer v32.01 o posterior. A su vez se debe de disponer de firmware v32.012 como revisión base de la generación. Para esta práctica el controlador físico fue identificado con revisión 37.013, por lo que se recomienda utilizar Studio 5000 v37.x y crear el proyecto con la misma revisión mayor del controlador para evitar incompatibilidades durante la descarga.
IMPORTANTE: Si la revisión instalada en el controlador no está disponible en Studio 5000, instale el soporte de esa revisión o evalúe un cambio de firmware. Un proceso de flash no debe interrumpirse por pérdida de energía o comunicación, ya que puede dejar el controlador fuera de servicio.
SEGURIDAD: Los estados de Safety recibidos por EtherNet/IP son útiles para diagnóstico y lógica de supervisión, pero la conexión EtherNet/IP estándar descrita aquí no sustituye las funciones de seguridad cableadas o safety-rated requeridas por la evaluación de riesgos de la celda.
Los pasos siguientes documentan la configuración completa utilizada para establecer y validar comunicación bidireccional entre el CompactLogix y el UR5. Las imágenes se presentan en el mismo orden de ejecución y cada una cuenta con una identificación consecutiva para facilitar su referencia durante la práctica.
Paso 1.1
Crea el proyecto Studio 5000 e identifica el controlador.
Abra Studio 5000 Logix Designer y cree un proyecto nuevo. Antes de seleccionar la revisión, utilice FactoryTalk Linx Network Browser para localizar el CompactLogix conectado y verificar su catálogo y firmware. En esta aplicación se utilizó el 5069-L4200ERMW con dirección IP 192.168.1.102 y revisión 37.013.
Abra el menú de Windows y escriba “Studio 5000” en el buscador. Seleccione la aplicación Studio 5000 Logix Designer para iniciar el entorno de programación desde el que se creará el proyecto del CompactLogix.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_01_Studio5000_Search.png
En la pantalla inicial de Studio 5000, ubique la sección Create y seleccione New Project. Esta opción abre el asistente para definir la familia, el catálogo y la revisión del controlador que se utilizará en la aplicación.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_02_Studio5000_NewProject.png
Paso 1.2
Abra FactoryTalk Linx Network Browser desde Windows. Esta herramienta permite detectar los dispositivos Rockwell Automation disponibles en la red y comprobar el modelo real del CompactLogix antes de crear el proyecto.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_04_FactoryTalkLinx_Open.png
En FactoryTalk Linx, expanda el adaptador Ethernet que corresponde a la red de la práctica. Localice el controlador con dirección 192.168.1.102 y verifique que sea un 5069-L4200ERMW antes de continuar.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_05_FactoryTalkLinx_Controller.png
Dentro de Project Types, seleccione Logix y localice la familia CompactLogix 5480 Controller.
Antes de finalizar la selección conviene confirmar el catálogo y la revisión del equipo físico, por lo que en los siguientes pasos se consultarán esos datos con FactoryTalk Linx.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_03_Select_Controller_Family.png
Paso 1.3
En Device Properties, confirme el catálogo del controlador y anote la revisión de firmware mostrada por el equipo. La revisión seleccionada en Studio 5000 debe ser compatible con la que está instalada en el CompactLogix para poder descargar el proyecto.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_07_Controller_Properties.png
Haga clic derecho sobre el controlador detectado y seleccione Device Properties. Esta ventana contiene la información que se usará para configurar correctamente el nuevo proyecto de Studio 5000.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_06_FactoryTalkLinx_DeviceProperties.png
Paso 1.4
En el campo Name escriba “Application_UR5_CompactLogix” y confirme la carpeta donde se almacenará el archivo del proyecto. Después seleccione Next para continuar con la configuración del controlador.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_09_Project_Name.png
Con la información del equipo físico confirmada, seleccione CompactLogix 5480 Controller, catálogo 5069-L4200ERMW, asigne el nombre Application_UR5_CompactLogix y configure la revisión del proyecto para que corresponda con el controlador. Mantenga las opciones de seguridad de acuerdo con la política de su instalación.
Regrese a Studio 5000 y, dentro de la familia CompactLogix 5480 Controller, seleccione el catálogo 5069-L4200ERMW. Asegúrese de elegir exactamente el mismo modelo identificado anteriormente en FactoryTalk Linx.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_08_Select_5069_L4200ERMW.png
Paso 1.5
Espere a que Studio 5000 termine de crear y abrir el proyecto. Verifique que en Controller Organizer aparezcan el controlador 5069-L4200ERMW y sus interfaces Ethernet antes de continuar con la red del UR5.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_11_Studio5000_Project_Open.png
En la siguiente pantalla seleccione una revisión compatible con la instalada en el controlador físico. Mantenga los demás parámetros de seguridad según las condiciones de la práctica y seleccione Finish para crear el proyecto.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_10_Project_Controller_Revision.png
Paso 2.1
Verifica la red física y la dirección IP.
La red utilizada para la práctica conecta los tres equipos a un Stratix 5700. El CompactLogix se conecta mediante LAN B1; el UR5 y la PC comparten la misma red Ethernet. El Stratix actúa como switch de capa 2, por lo que no es necesario agregarlo al árbol de I/O de Studio 5000 para que exista comunicación básica entre el PLC y el robot.
Verifique físicamente que el cable Ethernet utilizado para esta aplicación esté conectado a la interfaz B1 del CompactLogix. Confirme también que los indicadores NET B1 y LINK B1 muestren actividad de red.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_12_CompactLogix_B1_Physical.png
Revise las conexiones del Stratix 5700. Para esta práctica, conecte el CompactLogix al puerto 1, el controlador del UR5 al puerto 2 y la PC de ingeniería al puerto 3; compruebe que los LEDs de los puertos utilizados indiquen enlace.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_13_Stratix5700_Physical.png
Paso 2.2
En Studio 5000, expanda I/O Configuration y revise las interfaces B1, A1 y A2 del CompactLogix. La integración con el UR5 se realizará debajo de B1, Ethernet, porque esa es la interfaz utilizada físicamente en la práctica.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_14_Studio5000_IO_Configuration.png
NOTA: Verifique que no existan direcciones IP duplicadas y que los tres equipos pertenezcan a la misma subred. El UR5 utilizado es CB-Series con PolyScope 3; la distribución de menús es diferente a la de un UR5e con PolyScope 5.
Paso 3.1
En I/O Configuration, haga clic derecho sobre B1, Ethernet y seleccione New Module. Busque Generic Ethernet Module y cree un ETHERNET-MODULE. El CompactLogix será el originator de la conexión Class 1 y el UR5 funcionará como adapter.
Haga clic derecho sobre B1, Ethernet y seleccione New Module. Con esta acción se agregará al árbol de I/O la representación EtherNet/IP del controlador del UR5.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_15_B1_NewModule.png
En la ventana Select Module Type, utilice el cuadro de búsqueda para filtrar los módulos disponibles. El objetivo es utilizar un módulo Ethernet genérico que permita introducir manualmente los assemblies definidos por Universal Robots.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_16_Select_Module_Type.png
Escriba “Generic Ethernet Module” en el buscador y seleccione ETHERNET-MODULE. Haga doble clic sobre el resultado para abrir la configuración del nuevo dispositivo.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_17_Generic_Ethernet_Search.png
Paso 3.2
Al abrirse New Module, revise los valores predeterminados sin aceptarlos todavía. En el siguiente paso se cambiará el formato de comunicación a SINT y se introducirán la dirección IP y los assemblies correspondientes al UR5.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_18_Generic_Ethernet_Default.png
Configure el módulo con los parámetros de assembly definidos por Universal Robots:
Paso 3.3
Configure el módulo con Name = UR5, Comm Format = Data - SINT e IP Address = 192.168.1.150. En Connection Parameters introduzca Input Assembly 100 con Size 480, Output Assembly 112 con Size 224 y Configuration Assembly 1 con Size 0; después seleccione OK.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_19_UR5_EtherNetIP_Assemblies.png
En Module Properties abra la pestaña Connection. Configure el Requested Packet Interval en 10.0 ms, mantenga habilitada la opción Use Unicast Connection over EtherNet/IP y deje desmarcadas Inhibit Module y Major Fault On Controller If Connection Fails While in Run Mode; confirme con OK.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_20_UR5_RPI_Unicast.png
Desde el punto de vista del PLC, Input corresponde a la información recibida desde el UR5 y Output a la información que el CompactLogix envía al robot. El RPI de 10 ms proporciona una actualización suficientemente rápida para esta demostración sin utilizar el mínimo de 2 ms disponible en el dispositivo.
Paso 4.1
Abra Who Active, seleccione el CompactLogix 192.168.1.102 y ejecute Download. Studio 5000 mostrará la advertencia estándar de descarga. Si aparece una segunda advertencia indicando que el proyecto intenta cambiar A1/A2 de Linear/DLR a Dual-IP, no realice el cambio automáticamente para esta práctica.
Abra el selector de ruta de comunicación mediante Who Active. Esta ventana permite elegir el controlador físico al que se descargará el proyecto recién configurado.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_21_WhoActive_Access.png
En Who Active, expanda la red Ethernet y seleccione el CompactLogix 5069-L4200ERMW con IP 192.168.1.102. Compruebe que la ruta mostrada corresponda al controlador correcto y seleccione Download.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_22_WhoActive_Controller.png
Paso 4.2
Revise la advertencia previa a la descarga y confirme que el área de trabajo sea segura. Si el controlador seleccionado, la ruta y el proyecto son correctos, presione Download para iniciar la transferencia.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_23_Download_Warning.png
Si Studio 5000 muestra una advertencia indicando que el modo A1/A2 del proyecto es diferente al del controlador, no acepte el cambio automáticamente. Seleccione No o cancele la descarga para revisar primero la configuración, ya que en esta aplicación la comunicación con el UR5 utiliza B1.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_24_A1A2_Mode_Warning.png
Paso 4.3
En la pestaña General de Controller Properties, localice el campo EtherNet/IP Mode. Si el proyecto aparece como A1/A2: Dual-IP mientras el controlador físico está en Linear/DLR, seleccione Change IP Mode para corregir la discrepancia.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_26_Controller_IP_Mode_DualIP.png
En este montaje la comunicación con el UR5 se realiza por B1 y los puertos A1/A2 no se utilizan. Por ello, si el controlador físico ya está configurado en Linear/DLR, cancele la descarga y modifique el proyecto offline para que A1/A2 también queden en Linear/DLR. Esto evita alterar innecesariamente la topología existente del controlador.
Con la descarga cancelada, haga clic derecho sobre el nombre del controlador en Controller Organizer y seleccione Properties. Desde esta ventana se alineará la configuración de A1/A2 del proyecto con la configuración existente en el equipo físico.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_25_Controller_Properties_Menu.png
Paso 4.4
En Change EtherNet/IP Mode seleccione A1/A2: Linear/DLR y confirme con OK. Este ajuste modifica el proyecto para que coincida con el modo actual del controlador sin alterar la interfaz B1 utilizada por el UR5.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_27_Change_IP_Mode_LinearDLR.png
Vuelva a abrir Who Active y seleccione nuevamente el CompactLogix 192.168.1.102. Confirme que la ruta de comunicación sea correcta antes de repetir la descarga.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_28_WhoActive_Redownload.png
Paso 4.5
Seleccione Download y revise nuevamente la advertencia estándar. Con el modo A1/A2 ya alineado, confirme la descarga para transferir el proyecto actualizado al controlador.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_29_Download_Confirmation.png
Espere a que finalice el proceso de descarga y revise el panel de mensajes. El procedimiento debe terminar con “Complete - 0 error(s), 0 warning(s)” antes de continuar con la configuración del UR5.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_30_Download_Complete.png
Repita la descarga y confirme que el proceso finaliza con 0 Errors y 0 Warnings. Después del download, Studio 5000 puede permanecer en Program Mode mientras se termina de habilitar el adapter EtherNet/IP del robot.
Paso 5.1
En el Teach Pendant, regrese a la pantalla principal de PolyScope 3, seleccione Program Robot y abra la pestaña Installation. En el menú lateral seleccione EtherNet/IP y pulse Enable. El indicador debe cambiar a verde y mostrar EtherNet/IP Adapter: Connected cuando el CompactLogix establezca la conexión cíclica.
En el Teach Pendant del UR5, regrese a la pantalla principal de PolyScope 3. Si se encuentra dentro de otro programa, utilice File > Exit y, en la pantalla principal, prepare el acceso al entorno de programación del robot.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_31_UR_Main_Menu.png
Seleccione Program Robot. Esta opción abre el entorno donde se puede editar la instalación del robot y habilitar el adaptador EtherNet/IP requerido para la conexión con el CompactLogix.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_32_UR_Program_Robot.png
Paso 5.2
Dentro del editor del robot, seleccione la pestaña Installation. En el panel izquierdo aparecerán las opciones de configuración de la instalación, incluidos los buses de comunicación disponibles.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_33_UR_Installation_Tab.png
En el menú lateral de Installation seleccione EtherNet/IP. Si el encabezado indica “EtherNet/IP Adapter: Disabled”, presione Enable para activar el adaptador de comunicación del UR5.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_34_UR_EtherNetIP_Disabled.png
Paso 5.3
Espere unos segundos después de habilitar el adaptador. Cuando el CompactLogix establezca la conexión, el encabezado debe cambiar a “EtherNet/IP Adapter: Connected” y el indicador debe aparecer en verde.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_35_UR_EtherNetIP_Connected.png
Guarde la instalación en Installation > Load/Save. Esto conserva la habilitación del adapter EtherNet/IP para la próxima vez que se cargue la instalación.
Con el adaptador conectado, abra Installation > Load/Save. Presione Save para almacenar la instalación actual y conservar la habilitación de EtherNet/IP cuando vuelva a cargarse esta configuración.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_36_UR_Save_Installation.png
Paso 6.1
Verifica que está bien la E/S e importa los UDT de Universal Robots.
Si la PC puede hacer ping al UR5 pero Studio 5000 presenta 16#0204 Connection Request Error: Connection request timed out, revise primero que el EtherNet/IP Adapter esté habilitado y que la IP y los assemblies del módulo coincidan con los valores de esta guía.
Cuando la conexión está establecida, Studio 5000 muestra I/O OK. En este punto el módulo genérico ya intercambia 480 bytes de entrada y 224 bytes de salida, pero esos datos aparecen como arreglos de SINT sin significado visible, por ejemplo UR5:I.Data[] y UR5:O.Data[].
Regrese a Studio 5000 y póngase online con el CompactLogix. Verifique en la parte superior que el estado muestre I/O OK; esto confirma que la conexión cíclica EtherNet/IP con el UR5 se ha establecido correctamente.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_37_Studio5000_IO_OK.png
Los “bytes crudos” son simplemente el bloque de memoria que EtherNet/IP transporta entre el robot y el PLC. Cada byte ocupa una posición fija dentro del mapa de mensajes, pero un arreglo SINT por sí solo no indica qué posiciones representan Robot Mode, Safety, Joint 1, TCP X o un registro entero. El archivo UR_DataTypes.L5X define estructuras UDT con nombres y tipos de datos que reflejan ese mapa oficial. De esta forma, el programa puede trabajar con miembros legibles en lugar de manipular offsets de bytes manualmente.
Pase el proyecto a Offline, vaya a Data Types > User-Defined > Import Data Type y seleccione UR_DataTypes.L5X. La importación agrega 14 UDTs, entre ellos las estructuras combinadas T2O y O2T y sus subestructuras de Robot, Safety, I/O, Tool, Joints, TCP y registros generales.
Para importar nuevos tipos de datos, cambie el proyecto a Offline desde el menú de modo de Studio 5000. Las modificaciones estructurales que siguen se realizarán sobre el proyecto offline y posteriormente se descargarán al PLC.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_38_Studio5000_GoOffline.png
Paso 6.2
En Controller Organizer expanda Data Types > User-Defined. Haga clic derecho sobre User-Defined y seleccione Import Data Type para cargar las estructuras oficiales de Universal Robots.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_39_Import_DataType_Menu.png
En el explorador de archivos localice UR_DataTypes.L5X y selecciónelo. Este archivo contiene los User-Defined Data Types que describen el formato de los datos intercambiados por EtherNet/IP con el UR5.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_40_UR_DataTypes_File.png
Paso 6.3
En Import Configuration verifique que se muestren los 14 Data Types a importar y que no existan errores. Mantenga los nombres originales y seleccione OK para completar la importación.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_41_UR_DataTypes_Import.png
Expanda nuevamente Data Types > User-Defined y compruebe que aparezcan los UDT de Universal Robots, incluidos UR_T2O_Assembly_Combined y UR_O2T_Assembly_Combined. Estos tipos permitirán interpretar los bytes del módulo genérico con nombres y estructuras legibles.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_42_UR_UDTs_Imported.png
Paso 7.1
Crea URI/URO y mapea los datos de entrada UR5 con CPS.
Cree dos Controller Tags con los tipos importados: URI con UR_T2O_Assembly_Combined y URO con UR_O2T_Assembly_Combined. T2O significa Target to Originator, por lo que representa UR5 → CompactLogix. O2T significa Originator to Target y representa CompactLogix → UR5.
Abra Controller Tags para crear las dos estructuras de trabajo que representarán el flujo de información entre robot y PLC. Utilice New Tag o Edit Tags para agregar los nuevos tags en el scope del controlador.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_43_ControllerTags_Menu.png
Cree el tag URI y asigne como Data Type UR_T2O_Assembly_Combined. Mantenga el tag en el scope del controlador; URI almacenará la información recibida desde el UR5.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_44_URI_Tag.png
Paso 7.2
Cree un segundo tag llamado URO con Data Type UR_O2T_Assembly_Combined. Esta estructura se utilizará posteriormente para preparar los datos que el CompactLogix enviará al robot.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_45_URO_Tag.png
En MainRoutine agregue una instrucción CPS para copiar el assembly de entrada al UDT URI. La instrucción debe ejecutarse de forma continua:
Paso 7.3
Abra Tasks > MainTask > MainProgram > MainRoutine. Inserte un rung disponible y prepare una instrucción de copia para trasladar el bloque de entrada EtherNet/IP hacia la estructura URI.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_46_MainRoutine_Preparation.png
Agregue una instrucción CPS al rung. CPS se utiliza para copiar de forma síncrona el bloque de datos, evitando que la lógica lea una estructura parcialmente actualizada durante la transferencia.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_47_CPS_Input_Rung.png
Paso 7.4
Configure el CPS con Source = UR5:I.Data[0], Dest = URI y Length = 1. Esta instrucción copiará el assembly de entrada completo del módulo UR5 hacia la estructura URI en cada scan de la rutina.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_48_CPS_Input_Config.png
Length = 1 significa que el destino es una estructura completa UR_T2O_Assembly_Combined. CPS realiza una copia síncrona para evitar que el programa utilice una estructura parcialmente actualizada durante el scan.
Descargue nuevamente el proyecto. Coloque el selector físico del CompactLogix en REM y cambie el controlador a Remote Run desde Studio 5000.
Una vez agregada la lógica de lectura, abra el menú de modo de Studio 5000 y seleccione Download para enviar la nueva configuración al CompactLogix.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_49_Studio5000_Download.png
Paso 7.5
En la ventana de confirmación revise que el controlador conectado sea el 5069-L4200ERMW de la práctica. Si la información es correcta y el área es segura, presione Download.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_50_Download_Project_Confirmation.png
En el controlador físico, abra la tapa del selector de modo y coloque el interruptor en REM. Esta posición permite que Studio 5000 cambie el controlador entre Remote Program y Remote Run sin mover físicamente el selector nuevamente.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_51_CompactLogix_Mode_REM.png
Paso 7.6
En Studio 5000 abra el menú de modo y seleccione Run Mode. Como el selector físico está en REM, la opción debe estar habilitada para cambiar el controlador a Remote Run.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_52_Studio5000_RunMode.png
Cuando Logix Designer solicite confirmación para cambiar a Remote Run, revise que la lógica no pueda generar una operación inesperada y seleccione Yes para iniciar la ejecución del programa.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_53_RemoteRun_Confirmation.png
Paso 7.7
Abra Controller Tags y cambie a la pestaña Monitor Tags. Esta vista muestra en tiempo real los valores actualizados por la instrucción CPS mientras el controlador está en ejecución.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_54_ControllerTags_Monitor.png
Expanda URI y después URI.Robot. Verifique que Controller Major y Controller Minor correspondan con la versión de PolyScope del UR5 y observe Robot_Mode para confirmar que la información está siendo decodificada correctamente.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_55_URI_Robot_Data.png
En Controller Tags > Monitor Tags, expanda URI.Robot. En la prueba se observaron Controller Major = 3 y Controller Minor = 15, coherentes con PolyScope 3.15.4. El valor Robot_Mode = 5 corresponde al estado IDLE del robot en esta condición de prueba. Esta coincidencia confirma que el CPS está alineando correctamente el mapa de bytes con los UDTs.
Las ramas más útiles para supervisión son las siguientes:
Regrese al nivel principal de URI y revise las ramas disponibles: Robot, Safety, I/O, Tool, Joints, TCP, Bit, Int y Float. Estas estructuras organizan los datos recibidos del robot y facilitan su uso en lógica de control y diagnóstico.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_56_URI_Data_Groups
Para transmitir datos hacia el robot, agregue un segundo CPS que copie la estructura URO hacia el assembly de salida. Durante la preparación inicial se recomienda colocar un AFI antes del CPS para mantener la escritura deshabilitada hasta completar el programa de prueba en PolyScope.
Para preparar la dirección CompactLogix → UR5, vuelva a MainRoutine e inserte un segundo rung. Coloque temporalmente un AFI al inicio del rung y agregue después un CPS; el AFI mantendrá deshabilitada la copia de salida mientras se termina la configuración.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_57_CPS_Output_with_AFI.png
Configure el segundo CPS con Source = URO, Dest = UR5:O.Data[0] y Length = 224. Mantenga el AFI delante de la instrucción para evitar que el PLC empiece a escribir el assembly de salida antes de crear el programa de prueba en el UR5.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_58_CPS_Output_Config.png
El valor 224 corresponde a los 224 SINT/bytes del Output Assembly configurado en el Generic Ethernet Module. Mientras el AFI esté presente, los valores preparados en URO no se copiarán a UR5:O.Data[].
Paso 10.1
En el Teach Pendant cree un Empty Program y verifique que Program Loops Forever permanezca habilitado. Seleccione el nodo <empty>, abra Structure y, dentro de Advanced, inserte un Assignment.
En el Teach Pendant, abra Program Robot y seleccione Empty Program. Se creará un programa nuevo y sencillo que solo leerá un registro EtherNet/IP, sin contener instrucciones de movimiento.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_59_UR_Empty_Program.png
Seleccione Robot Program en el árbol y confirme que Program Loops Forever esté habilitado. Esta opción hará que la lectura del registro se repita continuamente mientras el programa esté en ejecución.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_60_UR_Program_Loops_Forever.png
Seleccione el nodo <empty> en el árbol del programa y abra la pestaña Structure. Desde aquí se insertarán las instrucciones necesarias para la prueba de comunicación.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_61_UR_Select_Empty_Structure.png
Paso 10.2
Dentro de Structure, abra la pestaña Advanced y seleccione Assignment. Esto agregará una línea de asignación al programa del UR5 para almacenar el valor recibido desde el PLC.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_62_UR_Assignment_Node.png
Configure el Assignment de la siguiente forma:
Los registros int 0…23 pertenecen al rango reservado por Universal Robots para interfaces Fieldbus/PLC. En esta prueba se utiliza el registro 23 para evitar interferir con registros que pudieran utilizar otros programas del robot.
Seleccione el nuevo Assignment y, en Command, cree o seleccione la variable PLC_Value. En Expression escriba read_input_integer_register(23) para leer el registro entero 23 reservado para la interfaz Fieldbus/PLC.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_63_UR_PLC_Value_Assignment.png
Agregue un Wait de 0.1 s. El retardo no es obligatorio para EtherNet/IP, pero hace que la prueba sea sencilla y evita ejecutar la asignación con la máxima velocidad del ciclo de PolyScope.
Agregue una instrucción Wait después del Assignment y configure un tiempo de 0.1 s. El programa quedará leyendo PLC_Value de forma cíclica, con una pequeña pausa entre iteraciones para facilitar la observación de la prueba.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_64_UR_Wait_01s.png
Paso 10.3
Guarde el programa mediante File > Save As con el nombre PLC_EIP_Test.urp y confirme que la instalación del robot también esté guardada.
Abra el menú File en la esquina superior izquierda del Teach Pendant y seleccione Save As. Esta opción permite guardar el programa de prueba con un nombre independiente de los programas existentes en el robot.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_65_UR_SaveAs.png
En Save Program escriba PLC_EIP_Test como nombre del archivo y confirme con Save. Verifique que el programa quede almacenado como PLC_EIP_Test.urp.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_66_UR_Save_PLC_EIP_Test.png
Abra Installation > Load/Save y revise el estado de la instalación. Si el botón Save está habilitado, presiónelo para guardar cualquier cambio pendiente; si aparece deshabilitado, la instalación ya se encuentra guardada.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_67_UR_Save_Installation_Check.png
En Studio 5000 cree un Controller Tag BOOL llamado UR_Enable_Write. Sustituya el AFI del rung de salida por un XIC asociado a ese tag. De este modo la escritura hacia el UR5 puede habilitarse o bloquearse sin modificar la lógica durante las pruebas.
En Studio 5000 abra Controller Tags y cree un nuevo tag de tipo BOOL llamado UR_Enable_Write. Este bit se utilizará como permiso explícito para habilitar o bloquear la escritura desde el CompactLogix hacia el UR5.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_68_UR_Enable_Write_Tag.png
Regrese a MainRoutine y sustituya el AFI del rung de salida por un XIC asociado a UR_Enable_Write. Deje inicialmente el bit en 0 para que el CPS de salida permanezca deshabilitado hasta el momento de la prueba.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_69_UR_Enable_Write_XIC.png
IMPORTANTE: Antes de habilitar UR_Enable_Write, mantenga en cero los masks de Speed Slider y de salidas físicas dentro de URO si no desea tomar control de esos recursos. Para esta prueba solo se modifica URO.Int.Registers[23].
Descargue el proyecto, deje el controlador en Remote Run y escriba el valor 123 en URO.Int.Registers[23].
Descargue el proyecto actualizado, coloque el controlador en Remote Run y abra Controller Tags > Monitor Tags. Expanda URO.Int.Registers y escriba el valor 123 en URO.Int.Registers[23], manteniendo todavía UR_Enable_Write en 0.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_70_URO_Int_Register23.png
Paso 12.1
En el Teach Pendant inicialice el robot hasta que se encuentre en START, cargue PLC_EIP_Test y pulse Play. En la pestaña Variables observe PLC_Value. Antes de habilitar el CPS de salida, el valor puede permanecer en 0.
En el Teach Pendant inicialice el robot y verifique que la pantalla indique estado Normal y que el botón START permita completar la inicialización. No se requiere movimiento del brazo para esta prueba, pero el robot debe estar correctamente inicializado para ejecutar el programa.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_71_UR_Initialize_Start.png
Cargue PLC_EIP_Test si no está activo y pulse el botón Play en la parte inferior del Teach Pendant. El programa comenzará a ejecutar repetidamente la asignación y el Wait configurados.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_72_UR_Play_Program.png
Paso 12.2
Con el programa ejecutándose, abra la pestaña Variables y localice PLC_Value. Antes de habilitar la escritura del PLC, confirme el valor mostrado; en la prueba inicial se observa en 0 porque el CPS de salida todavía está bloqueado.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_73_UR_PLC_Value_Zero.png
Regrese a Studio 5000 y active UR_Enable_Write mediante Toggle Bit. El XIC se vuelve verdadero y el CPS comienza a copiar URO hacia UR5:O.Data[0]. El valor 123 enviado en URO.Int.Registers[23] se recibe en el UR5 y la instrucción read_input_integer_register(23) actualiza PLC_Value.
Regrese a Studio 5000 y, estando online, haga clic derecho sobre el XIC UR_Enable_Write y seleccione Toggle Bit, o cambie el tag a 1 desde Monitor Tags. Al activarse el XIC, el CPS comenzará a copiar URO hacia UR5:O.Data[0].
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_74_Studio5000_Toggle_Write.png
Paso 12.3
Al observar PLC_Value = 123 en el Teach Pendant se valida la segunda dirección de la comunicación. En este punto se ha comprobado tanto UR5 → CompactLogix mediante URI como CompactLogix → UR5 mediante URO.
Vuelva a la pestaña Variables del Teach Pendant y observe PLC_Value. El valor debe cambiar a 123, demostrando que URO.Int.Registers[23] fue enviado por EtherNet/IP y leído correctamente mediante read_input_integer_register(23).
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_75_UR_PLC_Value_123.png
La aplicación final establece comunicación EtherNet/IP bidireccional entre un CompactLogix 5480 y un UR5 CB-Series. El PLC recibe y decodifica información del robot mediante URI y puede transmitir registros hacia PolyScope mediante URO. La prueba con el registro entero 23 demuestra que la configuración de red, los assemblies, los UDTs y las instrucciones CPS trabajan de forma coherente.
A partir de esta base se pueden implementar handshakes de aplicación como Ready, Start, Busy, Done, Fault, selección de receta o selección de tarea. Para una integración de producción se recomienda separar claramente los registros asignados a cada función, documentar el handshake y validar el comportamiento ante pérdida de comunicación, reinicios y estados de seguridad.
Step 3: Lorem Ipsum
Integración mediante EtherNet/IP entre CompactLogix y Cobot UR5
Versión 1.0 - Septiembre de 2026