Integração via EtherNet/IP entre CompactLogix e Cobot UR5
Integra um CompactLogix 5480 e um cobot UR5 via EtherNet/IP para trocar dados cíclicos, monitorar estados e validar comunicação bidirecional.
Esta aplicação integra um cobot Universal Robots UR5 com um controlador Allen-Bradley CompactLogix 5480 por meio de EtherNet/IP. O CompactLogix funciona como originator/scanner da conexão e o UR5 como target/adapter, permitindo uma troca cíclica de dados de processo entre ambos os controladores.
A implementação mostrada neste guia foi desenvolvida com um CompactLogix 5069-L4200ERMW conectado por sua interface LAN B1, um switch Stratix 5700, um UR5 CB-Series com PolyScope 3 e uma estação de engenharia com Studio 5000 Logix Designer. O guia valida tanto a leitura de informações do robô para o PLC quanto o envio de dados do PLC para o UR5.
O que esta aplicação faz?
O objetivo é fornecer uma referência prática e reutilizável para integrar um UR5 dentro de uma máquina ou célula automatizada controlada por Logix. A conexão permite supervisionar estados do robô, posições articulares, informações TCP, sinais de I/O e registros gerais, além de transferir comandos ou parâmetros do CompactLogix para um programa do PolyScope.
Download
Importante: Será necessário aceitar os Termos e Condições para cada download.
Precisa de ajuda?
Se precisar de ajuda com uma aplicação ou tiver feedback do Innovation Center, por favor, entre em contato conosco.
Esta aplicação é relevante para mim?
Esta aplicação é útil quando o CompactLogix deve coordenar a sequência geral do processo e o robô deve atuar como um subsistema dentro da célula. Entre os principais benefícios estão:
- Estabelecer uma comunicação EtherNet/IP cíclica e padronizada entre CompactLogix e Universal Robots.
- Ler no PLC estados do robô, modos de operação, variáveis de segurança, joints, TCP, I/O e registros gerais.
- Enviar parâmetros, comandos e valores de teste do Studio 5000 para um programa do PolyScope.
- Criar uma base reutilizável para handshakes de Ready, Busy, Done, Fault, seleção de receita ou seleção de tarefa.
- Facilitar o diagnóstico ao disponibilizar informações do robô diretamente em Controller Tags.
Como posso fazer funcionar?
Requisitos: produtos, ferramentas e conhecimentos prévios.
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
Conhecimento Prévio
- Conhecimento básico do Studio 5000 Logix Designer e do FactoryTalk Linx.
- Conceitos básicos de EtherNet/IP.
- Operação básica do PolyScope 3 da Universal Robots.
Links de Interesse (interno ou externo)
Guia de Implementação
O seguinte ambiente de hardware e software é necessário para executar a aplicação.
Revisão do Controlador e Compatibilidade de Software
- O controlador CompactLogix 5480 requer o Studio 5000 Logix Designer v32.01 ou posterior. Além disso, o firmware v32.012 é exigido como a revisão base para a geração. Para este exercício, identificou-se que o controlador físico estava operando com a revisão 37.013; portanto, recomenda-se utilizar o Studio 5000 v37.x e criar o projeto utilizando a mesma revisão principal (major revision) do controlador, a fim de evitar incompatibilidades durante o processo de download.
IMPORTANTE: Se a revisão instalada no controlador não estiver disponível no Studio 5000, instale o suporte para essa revisão ou considere uma atualização de firmware. O processo de atualização de firmware (flashing) não deve ser interrompido por perda de energia ou de comunicação, pois isso poderia tornar o controlador inoperante.
SEGURANÇA: Os estados de segurança recebidos via EtherNet/IP são úteis para diagnósticos e lógica de supervisão; no entanto, a conexão EtherNet/IP padrão aqui descrita não substitui as funções de segurança cabeadas ou com classificação de segurança exigidas pela avaliação de risco da célula.
As etapas a seguir documentam a configuração completa utilizada para estabelecer e validar a comunicação bidirecional entre o CompactLogix e o UR5. As imagens são apresentadas na ordem de execução e numeradas sequencialmente para facilitar a consulta durante o exercício.
Passo 1.1
Crie o projeto Studio 5000 e identifique o controlador.
Abra o Studio 5000 Logix Designer e crie um novo projeto. Antes de selecionar a revisão, utilize o FactoryTalk Linx Network Browser para localizar o CompactLogix conectado e verificar seu catálogo e firmware. Nesta aplicação, foi utilizado o 5069-L4200ERMW com endereço IP 192.168.1.102 e revisão 37.013.
Abra o menu do Windows e digite “Studio 5000” na caixa de pesquisa. Selecione o aplicativo Studio 5000 Logix Designer para iniciar o ambiente de programação a partir do qual o projeto do CompactLogix será criado.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_01_Studio5000_Search.png
Na tela inicial do Studio 5000, localize a seção Create e selecione New Project. Esta opção abre o assistente para definir a família, o catálogo e a revisão do controlador que será utilizado na aplicação.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_02_Studio5000_NewProject.png
Passo 1.2
Abra o FactoryTalk Linx Network Browser no Windows. Esta ferramenta permite detectar os dispositivos Rockwell Automation disponíveis na rede e verificar o modelo real do CompactLogix antes de criar o projeto.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_04_FactoryTalkLinx_Open.png
No FactoryTalk Linx, expanda o adaptador Ethernet correspondente à rede da prática. Localize o controlador com endereço 192.168.1.102 e verifique se é um 5069-L4200ERMW antes de continuar.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_05_FactoryTalkLinx_Controller.png
Em Project Types, selecione Logix e localize a família CompactLogix 5480 Controller.
Antes de finalizar a seleção, é conveniente confirmar o catálogo e a revisão do equipamento físico, por isso, nos passos seguintes, esses dados serão consultados com o FactoryTalk Linx.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_03_Select_Controller_Family.png
Passo 1.3
Em Device Properties, confirme o catálogo do controlador e anote a revisão de firmware exibida pelo equipamento. A revisão selecionada no Studio 5000 deve ser compatível com a instalada no CompactLogix para que seja possível fazer o download do projeto.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_07_Controller_Properties.png
Clique com o botão direito sobre o controlador detectado e selecione Device Properties. Esta janela contém as informações que serão usadas para configurar corretamente o novo projeto do Studio 5000.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_06_FactoryTalkLinx_DeviceProperties.png
Passo 1.4
No campo Name, digite “Application_UR5_CompactLogix” e confirme a pasta onde o arquivo do projeto será armazenado. Depois, selecione Next para continuar com a configuração do controlador.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_09_Project_Name.png
Com as informações do equipamento físico confirmadas, selecione CompactLogix 5480 Controller, catálogo 5069-L4200ERMW, atribua o nome Application_UR5_CompactLogix e configure a revisão do projeto para que corresponda ao controlador. Mantenha as opções de segurança de acordo com a política da sua instalação.
Retorne ao Studio 5000 e, dentro da família CompactLogix 5480 Controller, selecione o catálogo 5069-L4200ERMW. Certifique-se de escolher exatamente o mesmo modelo identificado anteriormente no FactoryTalk Linx.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_08_Select_5069_L4200ERMW.png
Passo 1.5
Aguarde até que o Studio 5000 termine de criar e abrir o projeto. Verifique se, no Controller Organizer, aparecem o controlador 5069-L4200ERMW e suas interfaces Ethernet antes de continuar com a rede do UR5.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_11_Studio5000_Project_Open.png
Na tela seguinte, selecione uma revisão compatível com a instalada no controlador físico. Mantenha os demais parâmetros de segurança de acordo com as condições da prática e selecione Finish para criar o projeto.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_10_Project_Controller_Revision.png
Passo 2.1
Verifique a rede física e o endereço IP.
A rede utilizada para a prática conecta os três equipamentos a um Stratix 5700. O CompactLogix é conectado por meio da LAN B1; o UR5 e o PC compartilham a mesma rede Ethernet. O Stratix atua como switch de camada 2, portanto não é necessário adicioná-lo à árvore de I/O do Studio 5000 para que haja comunicação básica entre o PLC e o robô.
Verifique fisicamente se o cabo Ethernet utilizado para esta aplicação está conectado à interface B1 do CompactLogix. Confirme também se os indicadores NET B1 e LINK B1 mostram atividade de rede.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_12_CompactLogix_B1_Physical.png
Verifique as conexões do Stratix 5700. Para esta prática, conecte o CompactLogix à porta 1, o controlador do UR5 à porta 2 e o PC de engenharia à porta 3; verifique se os LEDs das portas utilizadas indicam conexão.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_13_Stratix5700_Physical.png
Passo 2.2
No Studio 5000, expanda I/O Configuration e verifique as interfaces B1, A1 e A2 do CompactLogix. A integração com o UR5 será realizada abaixo de B1, Ethernet, porque essa é a interface utilizada fisicamente na prática.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_14_Studio5000_IO_Configuration.png
NOTA: Verifique se não existem endereços IP duplicados e se os três equipamentos pertencem à mesma sub-rede. O UR5 utilizado é CB-Series com PolyScope 3; a disposição dos menus é diferente da de um UR5e com PolyScope 5.
Passo 3.1
Adicione o UR5 como um módulo Ethernet genérico.
Em I/O Configuration, clique com o botão direito em B1, Ethernet e selecione New Module. Procure Generic Ethernet Module e crie um ETHERNET-MODULE. O CompactLogix será o originator da conexão Class 1 e o UR5 funcionará como adapter.
Clique com o botão direito em B1, Ethernet e selecione New Module. Com esta ação, será adicionada à árvore de I/O a representação EtherNet/IP do controlador do UR5.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_15_B1_NewModule.png
Na janela Select Module Type, utilize a caixa de pesquisa para filtrar os módulos disponíveis. O objetivo é utilizar um módulo Ethernet genérico que permita inserir manualmente os assemblies definidos pela Universal Robots.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_16_Select_Module_Type.png
Digite “Generic Ethernet Module” na caixa de pesquisa e selecione ETHERNET-MODULE. Clique duas vezes no resultado para abrir a configuração do novo dispositivo.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_17_Generic_Ethernet_Search.png
Passo 3.2
Ao abrir New Module, revise os valores padrão sem aceitá-los ainda. No próximo passo, o formato de comunicação será alterado para SINT e serão inseridos o endereço IP e os assemblies correspondentes ao UR5.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_18_Generic_Ethernet_Default.png
Configure o módulo com os parâmetros de assembly definidos pela Universal Robots:
Passo 3.3
Configure o módulo com Name = UR5, Comm Format = Data - SINT e IP Address = 192.168.1.150. Em Connection Parameters, insira Input Assembly 100 com Size 480, Output Assembly 112 com Size 224 e Configuration Assembly 1 com Size 0; depois, selecione OK.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_19_UR5_EtherNetIP_Assemblies.png
Em Module Properties, abra a guia Connection. Configure o Requested Packet Interval em 10.0 ms, mantenha habilitada a opção Use Unicast Connection over EtherNet/IP e deixe desmarcadas Inhibit Module e Major Fault On Controller If Connection Fails While in Run Mode; confirme com OK.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_20_UR5_RPI_Unicast.png
Do ponto de vista do PLC, Input corresponde às informações recebidas do UR5 e Output às informações que o CompactLogix envia ao robô. O RPI de 10 ms fornece uma atualização suficientemente rápida para esta demonstração sem utilizar o mínimo de 2 ms disponível no dispositivo.
Passo 4.1
Baixe o projeto e alinhe o modo Ethernet A1/A2 se necessário.
Abra Who Active, selecione o CompactLogix 192.168.1.102 e execute Download. O Studio 5000 mostrará o aviso padrão de download. Se aparecer um segundo aviso indicando que o projeto tenta alterar A1/A2 de Linear/DLR para Dual-IP, não realize a alteração automaticamente para esta prática.
Abra o seletor de caminho de comunicação por meio de Who Active. Esta janela permite escolher o controlador físico para o qual o projeto recém-configurado será baixado.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_21_WhoActive_Access.png
Em Who Active, expanda a rede Ethernet e selecione o CompactLogix 5069-L4200ERMW com IP 192.168.1.102. Verifique se o caminho exibido corresponde ao controlador correto e selecione Download.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_22_WhoActive_Controller.png
Passo 4.2
Revise o aviso anterior ao download e confirme que a área de trabalho esteja segura. Se o controlador selecionado, o caminho e o projeto estiverem corretos, pressione Download para iniciar a transferência.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_23_Download_Warning.png
Se o Studio 5000 mostrar um aviso indicando que o modo A1/A2 do projeto é diferente do controlador, não aceite a alteração automaticamente. Selecione No ou cancele o download para revisar primeiro a configuração, pois nesta aplicação a comunicação com o UR5 utiliza B1.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_24_A1A2_Mode_Warning.png
Passo 4.3
Na guia General de Controller Properties, localize o campo EtherNet/IP Mode. Se o projeto aparecer como A1/A2: Dual-IP enquanto o controlador físico estiver em Linear/DLR, selecione Change IP Mode para corrigir a discrepância.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_26_Controller_IP_Mode_DualIP.png
Nesta montagem, a comunicação com o UR5 é realizada por B1 e as portas A1/A2 não são utilizadas. Portanto, se o controlador físico já estiver configurado em Linear/DLR, cancele o download e modifique o projeto offline para que A1/A2 também fiquem em Linear/DLR. Isso evita alterar desnecessariamente a topologia existente do controlador.
Com o download cancelado, clique com o botão direito sobre o nome do controlador no Controller Organizer e selecione Properties. A partir desta janela, a configuração de A1/A2 do projeto será alinhada com a configuração existente no equipamento físico.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_25_Controller_Properties_Menu.png
Passo 4.4
Em Change EtherNet/IP Mode, selecione A1/A2: Linear/DLR e confirme com OK. Este ajuste modifica o projeto para que corresponda ao modo atual do controlador sem alterar a interface B1 utilizada pelo UR5.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_27_Change_IP_Mode_LinearDLR.png
Abra novamente Who Active e selecione outra vez o CompactLogix 192.168.1.102. Confirme se o caminho de comunicação está correto antes de repetir o download.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_28_WhoActive_Redownload.png
Passo 4.5
Selecione Download e revise novamente o aviso padrão. Com o modo A1/A2 já alinhado, confirme o download para transferir o projeto atualizado para o controlador.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_29_Download_Confirmation.png
Aguarde até que o processo de download seja concluído e revise o painel de mensagens. O procedimento deve terminar com “Complete - 0 error(s), 0 warning(s)” antes de continuar com a configuração do UR5.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_30_Download_Complete.png
Repita o download e confirme que o processo termina com 0 Errors e 0 Warnings. Após o download, o Studio 5000 pode permanecer em Program Mode enquanto o adapter EtherNet/IP do robô termina de ser habilitado.
Passo 5.1
Habilite o adaptador EtherNet/IP no UR5.
No Teach Pendant, retorne à tela principal do PolyScope 3, selecione Program Robot e abra a guia Installation. No menu lateral, selecione EtherNet/IP e pressione Enable. O indicador deve ficar verde e mostrar EtherNet/IP Adapter: Connected quando o CompactLogix estabelecer a conexão cíclica.
No Teach Pendant do UR5, retorne à tela principal do PolyScope 3. Se estiver dentro de outro programa, utilize File > Exit e, na tela principal, prepare o acesso ao ambiente de programação do robô.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_31_UR_Main_Menu.png
Selecione Program Robot. Esta opção abre o ambiente no qual é possível editar a instalação do robô e habilitar o adaptador EtherNet/IP necessário para a conexão com o CompactLogix.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_32_UR_Program_Robot.png
Passo 5.2
Dentro do editor do robô, selecione a guia Installation. No painel esquerdo aparecerão as opções de configuração da instalação, incluindo os barramentos de comunicação disponíveis.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_33_UR_Installation_Tab.png
No menu lateral de Installation, selecione EtherNet/IP. Se o cabeçalho indicar “EtherNet/IP Adapter: Disabled”, pressione Enable para ativar o adaptador de comunicação do UR5.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_34_UR_EtherNetIP_Disabled.png
Passo 5.3
Aguarde alguns segundos após habilitar o adaptador. Quando o CompactLogix estabelecer a conexão, o cabeçalho deve mudar para “EtherNet/IP Adapter: Connected” e o indicador deve aparecer em verde.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_35_UR_EtherNetIP_Connected.png
Salve a instalação em Installation > Load/Save. Isso mantém a habilitação do adapter EtherNet/IP na próxima vez que a instalação for carregada.
Com o adaptador conectado, abra Installation > Load/Save. Pressione Save para armazenar a instalação atual e manter a habilitação de EtherNet/IP quando esta configuração for carregada novamente.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_36_UR_Save_Installation.png
Passo 6.1
Verifique se a E/S está correta e importe os UDTs da Universal Robots.
NOTA: Se o PC conseguir executar ping no UR5, mas o Studio 5000 apresentar 16#0204 Connection Request Error: Connection request timed out, verifique primeiro se o EtherNet/IP Adapter está habilitado e se o IP e os assemblies do módulo correspondem aos valores deste guia.
Quando a conexão está estabelecida, o Studio 5000 mostra I/O OK. Neste ponto, o módulo genérico já troca 480 bytes de entrada e 224 bytes de saída, mas esses dados aparecem como arrays de SINT sem significado visível, por exemplo UR5:I.Data[] e UR5:O.Data[].
Retorne ao Studio 5000 e fique online com o CompactLogix. Verifique na parte superior se o estado mostra I/O OK; isso confirma que a conexão cíclica EtherNet/IP com o UR5 foi estabelecida corretamente.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_37_Studio5000_IO_OK.png
Os “bytes brutos” são simplesmente o bloco de memória que o EtherNet/IP transporta entre o robô e o PLC. Cada byte ocupa uma posição fixa dentro do mapa de mensagens, mas um array SINT por si só não indica quais posições representam Robot Mode, Safety, Joint 1, TCP X ou um registro inteiro. O arquivo UR_DataTypes.L5X define estruturas UDT com nomes e tipos de dados que refletem esse mapa oficial. Dessa forma, o programa pode trabalhar com membros legíveis em vez de manipular offsets de bytes manualmente.
Coloque o projeto em Offline, acesse Data Types > User-Defined > Import Data Type e selecione UR_DataTypes.L5X. A importação adiciona 14 UDTs, entre eles as estruturas combinadas T2O e O2T e suas subestruturas de Robot, Safety, I/O, Tool, Joints, TCP e registros gerais.
Para importar novos tipos de dados, altere o projeto para Offline pelo menu de modo do Studio 5000. As modificações estruturais seguintes serão realizadas no projeto offline e, posteriormente, baixadas para o PLC.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_38_Studio5000_GoOffline.png
Passo 6.2
No Controller Organizer, expanda Data Types > User-Defined. Clique com o botão direito em User-Defined e selecione Import Data Type para carregar as estruturas oficiais da Universal Robots.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_39_Import_DataType_Menu.png
No explorador de arquivos, localize UR_DataTypes.L5X e selecione-o. Este arquivo contém os User-Defined Data Types que descrevem o formato dos dados trocados por EtherNet/IP com o UR5.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_40_UR_DataTypes_File.png
Passo 6.3
Em Import Configuration, verifique se são exibidos os 14 Data Types a serem importados e se não há erros. Mantenha os nomes originais e selecione OK para concluir a importação.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_41_UR_DataTypes_Import.png
Expanda novamente Data Types > User-Defined e verifique se aparecem os UDTs da Universal Robots, incluindo UR_T2O_Assembly_Combined e UR_O2T_Assembly_Combined. Esses tipos permitirão interpretar os bytes do módulo genérico com nomes e estruturas legíveis.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_42_UR_UDTs_Imported.png
Passo 7.1
Crie URI/URO e mapeie os dados de entrada do UR5 com CPS.
Crie duas Controller Tags com os tipos importados: URI com UR_T2O_Assembly_Combined e URO com UR_O2T_Assembly_Combined. T2O significa Target to Originator, portanto representa UR5 → CompactLogix. O2T significa Originator to Target e representa CompactLogix → UR5.
Abra Controller Tags para criar as duas estruturas de trabalho que representarão o fluxo de informações entre o robô e o PLC. Utilize New Tag ou Edit Tags para adicionar as novas tags no scope do controlador.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_43_ControllerTags_Menu.png
Crie a tag URI e atribua como Data Type UR_T2O_Assembly_Combined. Mantenha a tag no scope do controlador; URI armazenará as informações recebidas do UR5.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_44_URI_Tag.png
Passo 7.2
Crie uma segunda tag chamada URO com Data Type UR_O2T_Assembly_Combined. Essa estrutura será utilizada posteriormente para preparar os dados que o CompactLogix enviará ao robô.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_45_URO_Tag.png
Em MainRoutine, adicione uma instrução CPS para copiar o assembly de entrada para o UDT URI. A instrução deve ser executada continuamente:
Passo 7.3
Abra Tasks > MainTask > MainProgram > MainRoutine. Insira um rung disponível e prepare uma instrução de cópia para transferir o bloco de entrada EtherNet/IP para a estrutura URI.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_46_MainRoutine_Preparation.png
Adicione uma instrução CPS ao rung. A CPS é utilizada para copiar o bloco de dados de forma síncrona, evitando que a lógica leia uma estrutura parcialmente atualizada durante a transferência.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_47_CPS_Input_Rung.png
Passo 7.4
Configure a CPS com Source = UR5:I.Data[0], Dest = URI e Length = 1. Essa instrução copiará o assembly de entrada completo do módulo UR5 para a estrutura URI em cada scan da rotina.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_48_CPS_Input_Config.png
Length = 1 significa que o destino é uma estrutura completa UR_T2O_Assembly_Combined. A CPS realiza uma cópia síncrona para evitar que o programa utilize uma estrutura parcialmente atualizada durante o scan.
Baixe novamente o projeto. Coloque o seletor físico do CompactLogix em REM e altere o controlador para Remote Run no Studio 5000.
Depois de adicionar a lógica de leitura, abra o menu de modo do Studio 5000 e selecione Download para enviar a nova configuração ao CompactLogix.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_49_Studio5000_Download.png
Passo 7.5
Na janela de confirmação, verifique se o controlador conectado é o 5069-L4200ERMW da prática. Se as informações estiverem corretas e a área estiver segura, pressione Download.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_50_Download_Project_Confirmation.png
No controlador físico, abra a tampa do seletor de modo e coloque o interruptor em REM. Essa posição permite que o Studio 5000 altere o controlador entre Remote Program e Remote Run sem mover fisicamente o seletor novamente.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_51_CompactLogix_Mode_REM.png
Passo 7.6
No Studio 5000, abra o menu de modo e selecione Run Mode. Como o seletor físico está em REM, a opção deve estar habilitada para alterar o controlador para Remote Run.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_52_Studio5000_RunMode.png
Quando o Logix Designer solicitar confirmação para alterar para Remote Run, verifique se a lógica não poderá gerar uma operação inesperada e selecione Yes para iniciar a execução do programa.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_53_RemoteRun_Confirmation.png
Passo 7.7
Abra Controller Tags e altere para a guia Monitor Tags. Essa visualização mostra em tempo real os valores atualizados pela instrução CPS enquanto o controlador está em execução.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_54_ControllerTags_Monitor.png
Expanda URI e depois URI.Robot. Verifique se Controller Major e Controller Minor correspondem à versão do PolyScope do UR5 e observe Robot_Mode para confirmar que as informações estão sendo decodificadas corretamente.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_55_URI_Robot_Data.png
Validar e interpretar os dados recebidos do UR5.
Em Controller Tags > Monitor Tags, expanda URI.Robot. No teste, foram observados Controller Major = 3 e Controller Minor = 15, coerentes com o PolyScope 3.15.4. O valor Robot_Mode = 5 corresponde ao estado IDLE do robô nessa condição de teste. Essa correspondência confirma que a CPS está alinhando corretamente o mapa de bytes com os UDTs.
Os grupos mais úteis para supervisão são os seguintes:
Retorne ao nível principal de URI e revise os grupos disponíveis: Robot, Safety, I/O, Tool, Joints, TCP, Bit, Int e Float. Essas estruturas organizam os dados recebidos do robô e facilitam seu uso na lógica de controle e no diagnóstico.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_56_URI_Data_Groups
Prepare o caminho de escrita do CompactLogix para o UR5.
Para transmitir dados ao robô, adicione uma segunda CPS que copie a estrutura URO para o assembly de saída. Durante a preparação inicial, recomenda-se colocar uma AFI antes da CPS para manter a escrita desabilitada até concluir o programa de teste no PolyScope.
Para preparar a direção CompactLogix → UR5, retorne à MainRoutine e insira um segundo rung. Coloque temporariamente uma AFI no início do rung e adicione depois uma CPS; a AFI manterá desabilitada a cópia de saída enquanto a configuração é concluída.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_57_CPS_Output_with_AFI.png
Configure a segunda CPS com Source = URO, Dest = UR5:O.Data[0] e Length = 224. Mantenha a AFI antes da instrução para evitar que o PLC comece a escrever no assembly de saída antes de criar o programa de teste no UR5.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_58_CPS_Output_Config.png
O valor 224 corresponde aos 224 SINT/bytes do Output Assembly configurado no Generic Ethernet Module. Enquanto a AFI estiver presente, os valores preparados em URO não serão copiados para UR5:O.Data[].
Passo 10.1
Criar um programa de teste PolyScope para ler um registro inteiro.
No Teach Pendant, crie um Empty Program e verifique se Program Loops Forever permanece habilitado. Selecione o nó <empty>, abra Structure e, dentro de Advanced, insira um Assignment.
No Teach Pendant, abra Program Robot e selecione Empty Program. Será criado um programa novo e simples que apenas lerá um registro EtherNet/IP, sem conter instruções de movimento.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_59_UR_Empty_Program.png
Selecione Robot Program na árvore e confirme se Program Loops Forever está habilitado. Essa opção fará com que a leitura do registro se repita continuamente enquanto o programa estiver em execução.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_60_UR_Program_Loops_Forever.png
Selecione o nó <empty> na árvore do programa e abra a guia Structure. A partir daqui serão inseridas as instruções necessárias para o teste de comunicação.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_61_UR_Select_Empty_Structure.png
Passo 10.2
Dentro de Structure, abra a guia Advanced e selecione Assignment. Isso adicionará uma linha de atribuição ao programa do UR5 para armazenar o valor recebido do PLC.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_62_UR_Assignment_Node.png
Configure o Assignment da seguinte forma:
Os registros int 0…23 pertencem ao intervalo reservado pela Universal Robots para interfaces Fieldbus/PLC. Neste teste, utiliza-se o registro 23 para evitar interferência com registros que possam ser utilizados por outros programas do robô.
Selecione o novo Assignment e, em Command, crie ou selecione a variável PLC_Value. Em Expression, digite read_input_integer_register(23) para ler o registro inteiro 23 reservado para a interface Fieldbus/PLC.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_63_UR_PLC_Value_Assignment.png
Adicione um Wait de 0.1 s. O atraso não é obrigatório para EtherNet/IP, mas torna o teste simples e evita executar a atribuição na velocidade máxima do ciclo do PolyScope.
Adicione uma instrução Wait depois do Assignment e configure um tempo de 0.1 s. O programa continuará lendo PLC_Value de forma cíclica, com uma pequena pausa entre as iterações para facilitar a observação do teste.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_64_UR_Wait_01s.png
Passo 10.3
Salve o programa por meio de File > Save As com o nome PLC_EIP_Test.urp e confirme se a instalação do robô também está salva.
Abra o menu File no canto superior esquerdo do Teach Pendant e selecione Save As. Essa opção permite salvar o programa de teste com um nome independente dos programas existentes no robô.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_65_UR_SaveAs.png
Em Save Program, digite PLC_EIP_Test como nome do arquivo e confirme com Save. Verifique se o programa foi armazenado como PLC_EIP_Test.urp.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_66_UR_Save_PLC_EIP_Test.png
Abra Installation > Load/Save e revise o estado da instalação. Se o botão Save estiver habilitado, pressione-o para salvar qualquer alteração pendente; se aparecer desabilitado, a instalação já está salva.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_67_UR_Save_Installation_Check.png
Substitua o AFI por uma habilitação controlada de escrita.
No Studio 5000, crie uma Controller Tag BOOL chamada UR_Enable_Write. Substitua o AFI do rung de saída por um XIC associado a essa tag. Dessa forma, a escrita para o UR5 pode ser habilitada ou bloqueada sem modificar a lógica durante os testes.
No Studio 5000, abra Controller Tags e crie uma nova tag do tipo BOOL chamada UR_Enable_Write. Esse bit será utilizado como permissão explícita para habilitar ou bloquear a escrita do CompactLogix para o UR5.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_68_UR_Enable_Write_Tag.png
Retorne à MainRoutine e substitua o AFI do rung de saída por um XIC associado a UR_Enable_Write. Inicialmente, mantenha o bit em 0 para que o CPS de saída permaneça desabilitado até o momento do teste.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_69_UR_Enable_Write_XIC.png
IMPORTANTE: Antes de habilitar UR_Enable_Write, mantenha em zero as masks do Speed Slider e das saídas físicas dentro de URO se não quiser assumir o controle desses recursos. Para este teste, apenas URO.Int.Registers[23] é modificado.
Baixe o projeto, deixe o controlador em Remote Run e escreva o valor 123 em URO.Int.Registers[23].
Baixe o projeto atualizado, coloque o controlador em Remote Run e abra Controller Tags > Monitor Tags. Expanda URO.Int.Registers e escreva o valor 123 em URO.Int.Registers[23], mantendo ainda UR_Enable_Write em 0.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_70_URO_Int_Register23.png
Passo 12.1
Execute o teste do UR5 e valide a comunicação bidirecional.
No Teach Pendant, inicialize o robô até que esteja em START, carregue PLC_EIP_Test e pressione Play. Na guia Variables, observe PLC_Value. Antes de habilitar a CPS de saída, o valor pode permanecer em 0.
No Teach Pendant, inicialize o robô e verifique se a tela indica o estado Normal e se o botão START permite concluir a inicialização. Não é necessário movimentar o braço para este teste, mas o robô deve estar corretamente inicializado para executar o programa.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_71_UR_Initialize_Start.png
Carregue PLC_EIP_Test se não estiver ativo e pressione o botão Play na parte inferior do Teach Pendant. O programa começará a executar repetidamente a atribuição e o Wait configurados.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_72_UR_Play_Program.png
Passo 12.2
Com o programa em execução, abra a guia Variables e localize PLC_Value. Antes de habilitar a escrita do PLC, confirme o valor exibido; no teste inicial, ele aparece em 0 porque a CPS de saída ainda está bloqueada.
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_73_UR_PLC_Value_Zero.png
Retorne ao Studio 5000 e ative UR_Enable_Write por meio de Toggle Bit. O XIC se torna verdadeiro e a CPS começa a copiar URO para UR5:O.Data[0]. O valor 123 enviado em URO.Int.Registers[23] é recebido no UR5 e a instrução read_input_integer_register(23) atualiza PLC_Value.
Retorne ao Studio 5000 e, estando online, clique com o botão direito sobre o XIC UR_Enable_Write e selecione Toggle Bit, ou altere a tag para 1 em Monitor Tags. Quando o XIC for ativado, a CPS começará a copiar URO para UR5:O.Data[0].
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_74_Studio5000_Toggle_Write.png
Passo 12.3
Ao observar PLC_Value = 123 no Teach Pendant, valida-se a segunda direção da comunicação. Neste ponto, foram comprovadas tanto a direção UR5 → CompactLogix por meio de URI quanto a direção CompactLogix → UR5 por meio de URO.
Retorne à guia Variables do Teach Pendant e observe PLC_Value. O valor deve mudar para 123, demonstrando que URO.Int.Registers[23] foi enviado por EtherNet/IP e lido corretamente por meio de read_input_integer_register(23).
ethernet-ip-integration-between-compactlogix-and-ur5-cobot_75_UR_PLC_Value_123.png
A aplicação final estabelece comunicação EtherNet/IP bidirecional entre um CompactLogix 5480 e um UR5 CB-Series. O PLC recebe e decodifica informações do robô por meio de URI e pode transmitir registros para o PolyScope por meio de URO. O teste com o registro inteiro 23 demonstra que a configuração de rede, os assemblies, os UDTs e as instruções CPS funcionam de forma coerente.
A partir desta base, podem ser implementados handshakes de aplicação como Ready, Start, Busy, Done, Fault, seleção de receita ou seleção de tarefa. Para uma integração de produção, recomenda-se separar claramente os registros atribuídos a cada função, documentar o handshake e validar o comportamento diante da perda de comunicação, reinicializações e estados de segurança.
Integração via EtherNet/IP entre CompactLogix e Cobot UR5
Versão 1.0 - Outubro de 2026