node-red-contrib-flex-ethernet-ip
v2.0.0
Published
A Node-RED node to interact with Allen Bradley / Rockwell PLCs using the EtherNet/IP Protocol
Maintainers
Readme
node-red-contrib-flex-ethernet-ip
Contribuição do Node-RED para comunicação robusta e orientada a eventos com PLCs via EtherNet/IP (dispositivos Allen-Bradley/ControlLogix, etc).
Este pacote foi refatorado pela Flex Automação para oferecer uma arquitetura discreta, eliminando o consumo excessivo de banda por polling contínuo e permitindo o controle total sobre quando as leituras e escritas ocorrem.
Características principais
- Arquitetura Orientada a Eventos: As operações ocorrem apenas quando o nó recebe uma mensagem de entrada.
- Configuração Tabular de Tags: Interface intuitiva para cadastro de múltiplas tags no mesmo nó.
- Leitura em Lote (Group Read): Otimiza a comunicação lendo todas as tags configuradas em uma única requisição ao PLC.
- Escrita em Lote (Group Write): Permite escrever múltiplas tags simultaneamente através de um objeto no
msg.payload. - Saída de Status Opcional: O nó de escrita pode emitir uma confirmação de sucesso ou detalhamento em cascata do objeto de erro.
- Reconexão Automática: Gerenciamento inteligente de conexão com o dispositivo.
- Leitura e Escrita de Relógio de Hardware: Nó dedicado
ETHIP_WallClockcompatível com ControlLogix modernos/legados e Micro800 para manipulação da base temporal do PLC. - Tradução Avançada de Códigos CIP: Fim de erros genéricos! O nó traduz ativamente respostas hexagonais do Message Router Rockwell (ex: Path destination unknown) e injeta o
Stringclaro direto na interface gráfica do Node-RED.
Instalação
Dentro do diretório do seu usuário Node-RED (geralmente ~/.node-red):
npm install node-red-contrib-flex-ethernet-ipNós Disponíveis
1. ETHIP_Device (Configuração)
Nó de configuração global que gerencia a conexão física com o PLC.
- Address: IP do PLC.
- Slot: Slot do processador (padrão 0).
- Timeout: Tempo limite para operações em milissegundos.
2. ETHIP_Read
Realiza a leitura das tags configuradas quando recebe um trigger.
- Input: Qualquer mensagem dispara a leitura.
- Output: Retorna o valor da tag no
msg.payload. Se houver múltiplas tags, retorna um objeto{ "Tag1": valor1, ... }. - Dinâmico: Você pode sobrescrever as tags configuradas enviando uma string no
msg.variable.
3. ETHIP_Write
Realiza a escrita de valores nas tags configuradas.
- Input: Pode processar um JSON em payload inteiro ou rotear propriedades nativas do fluxo (ex:
msg.Temperatura). O usuário seleciona no Dropdown visual do nó. - Múltiplas Tags: Para escrever em várias tags via payload matriz, envie um objeto:
msg.payload = { "Luz": true, "Motor": 100 }. - Status de Saída (Optional): Emite um Flow secundário pelo pino de Output trazendo
msg.writeStatus = "success"ou, em caso de falha física na porta do CLP, exporta um Error Dictionary com traduções de CIP cru (como falha em conversão local de array para float).
4. ETHIP_WallClock
Controla estritamente o Relógio e a Zona Horária de Processadores Allen-Bradley.
- Get Time (Leitura): Interroga o Controlador Assincronamente e retorna métricas puras, listando o
Local Timeinjetado como objeto Date nomsg, status doDaylight Savings(DST) e Fuso-HorárioTime Zone. - Set Time (Gravação): Força o Controlador a acatar o tempo atual injetado do Servidor (Node-RED Time Server) ou proveniente de uma folha
msgcustomizada. Equipada com um robusto motor de injeção ("Fallback em 5 passos"), garantindo o acesso ininterrupto a CPUS modernas (Logix L8) e bypass em camadas restritas de ControlLogixes e Micro800 antigas (v5 a v23).
Exemplos
Veja a pasta examples/ dentro do pacote para importar fluxos de demonstração.
Licença
GNU General Public License v3.0
Desenvolvido por Flex Automação.
