Cliente OPC UA com Node-RED

O Node-RED é uma ferramenta de programação para conectar dispositivos de hardware, APIs e serviços on-line de maneiras novas e interessantes. Através de um editor baseado em navegador, é possível conectar objetos (Fluxos) usando a ampla gama de objetos disponíveis.

Eu já expliquei em Neste artigo como instalar o Node-RED em nossos sistemas baseados no Raspberry, agora veremos como usar o Node-RED para se comunicar com outros sistemas usando o protocolo Open Platform Communications Unified Architecture (OPC UA), um protocolo de comunicação unificado para automação industrial.

Instalação do nó do OPC UA

Na instalação padrão do Node-RED, uma base de nós é instalada, a mais comumente usada, mas existe uma enorme biblioteca de nós utilizáveis. Para usar o protocolo OPC UA, instale os nós fornecidos com node-vermelho-contrib-opcua. A instalação pode ser feita a partir da linha de comando com o (npm) Node Package Manager, ou mais simplesmente a partir de um navegador.

No menu, escolha Manage palette, em seguida, procure o formulário node-red-contrib-opcua e para prosseguir com a instalação, para testar o exemplo também é necessário instalar o módulo node-red-dashboard.

Aqui está o programa

Abaixo você pode ver o programa em Node-RED com o painel relativo que se conecta ao programa SimpleOPCUA desenvolvido com o CODESYS, ambos os programas são executados a partir do mesmo módulo CPU SlimLine Framboesa.

A comunicação com o servidor CODESYS OPC UA é executada pelo nó OpcUa Client em que é definido como Endpoint o endereço e a porta do servidor OPC UA (no exemplo, ele é opc.tcp: // 192.168.0.180: 4840). É claro que, ao transformar ambos os programas no mesmo processador, eu poderia definir opc.tcp: // localhost: 4840. Nas operações de leitura (Variáveis DIStatus e Counter) será definido Action READ, em operações de gravação (Variável DOCommand) será definido Action WRITE.

O objeto está localizado no OpcUa Client OpcUa Item que especifica o NodeId da variável a ser acessada para ser reportada no campo Item, para identificar o valor para escrever use o UaExpert como programa mostrado aqui. No exemplo, teremos:

DIStatus: ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.PLC_PRG.DIStatus
DOCommand: ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.PLC_PRG.DOCommand
Counter: ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.PLC_PRG.Counter

No campo Tipo, o tipo da variável deve ser definido:

DIStatus: Boolean
DOCommand: Boolean
Counter: UInt32

Todos os outros nós são usados ​​para ativar os nós do OPC UA por vez e para exibir dados no painel.

Esse artigo foi útil?