Implantação Remota de CLP CODESYS através do Edge Stacks do Portainer usando Edge Configuration GitOps

Compartilhe:

Implantação Remota de CLP CODESYS através do Edge Stacks do Portainer usando Edge Configuration GitOps

Autor: Varun Chebbi
Edge IIoT Application Engineer at Portainer.io
 
29 de outubro de 2024
O artigo original em inglês pode ser lido aqui: https://www.portainer.io/blog/codesys-plc-remote-deployment-with-portainers-edge-stacks-using-gitops-edge-configs

 
Em nosso artigo anterior, demonstramos como transferir sem problemas um programa CLP para o sistema de arquivos do host de um dispositivo de borda utilizando o recurso Edge Configurations do Portainer e como ativar o runtime contêiner CODESYS com as Edge Stacks.

Neste artigo, exploraremos como integrar facilmente o programa do CLP (configs) em um repositório Git e utilizar o arquivo docker-compose.yml para executar o runtime contêiner CODESYS, incluindo o arquivo de inicialização do programa CLP dentro do contêiner.

Este blog orienta você nas etapas para integrar múltiplos dispositivos de borda utilizando o recurso de integração automática. Em seguida, será possível implantar um programa CLP em uma frota de CLPs desenvolvidos no CODESYS IDE por meio das Edge Stacks do Portainer. Para esta demonstração, utilizaremos os CLPs WAGO CC100 como dispositivos de borda.

 

Etapa 1: Criação de um Script de Integração Automática no Portainer Server

Como primeira etapa, integramos os dispositivos de borda ao servidor da mesma forma que na configuração anterior. O recurso Auto Onboarding do Portainer permite integrar muitos dispositivos de borda a um único servidor. A Figura 1 ilustra a arquitetura de conectividade entre os dispositivos de borda e o servidor.

Fig. 1: arquitetura do Portainer Server e dos dispositivos de borda para o Auto Onboarding.
Fig. 1: arquitetura do Portainer Server e dos dispositivos de borda para o Auto Onboarding.

Para criar o script de integração automática no Portainer:
1. Navegue até a página de ambiente do servidor Portainer e clique no botão Auto Onboarding.
2. Defina o agente como “Edge Agent Standard”. Os detalhes do servidor serão preenchidos automaticamente.
3. Configure os campos restantes, como Grupos (para controle de acesso baseado em funções), Edge Groups e Tags para gerenciar o acesso.
4. Forneça uma função geradora de Edge ID (por exemplo, uuidgen), para que o Portainer atribua uma identidade única dentro da plataforma.

O gerador de IDs recupera o identificador fornecido pelo dispositivo de borda e atribui o nome correspondente no servidor Portainer, conforme mostrado na Figura 2.

Fig. 2: geração do script de integração automática.
Fig. 2: geração do script de integração automática.

O servidor Portainer gera então um script que pode ser utilizado para integrar novos dispositivos via CLI ou outras ferramentas de provisionamento. É necessário que os dispositivos tenham o Docker instalado (os dispositivos WAGO já vêm com Docker). Após a execução bem-sucedida do script, os dispositivos aparecem na “sala de espera”. Na sala de espera, é possível associar os dispositivos aos respectivos grupos para finalizar a integração, como ilustrado na Figura 3.

Fig. 3: sala de espera no servidor Portainer.
Fig. 3: sala de espera no servidor Portainer.

Após a implantação do script, organize os dispositivos em grupos específicos ou atribua tags para facilitar sua gestão e integração bem-sucedida no Portainer Server.

 

Etapa 2: Criação do arquivo de inicialização no CODESYS

Com o CODESYS IDE, desenvolva o programa CLP utilizando diagramas ladder. Depois de criar e testar o programa para controlar o CLP WAGO CC100, gere o arquivo de inicialização (.app), como mostrado na Figura 4. Esse arquivo deve ser implantado no dispositivo de borda para torná-lo operacional.

No exemplo, o programa faz os LEDs do CLP piscarem. Foram criados três códigos diferentes para reconhecer visualmente os dispositivos, já que cada CLP executa um comportamento distinto.

Fig. 4: Interface do IDE CODESYS para criação do arquivo de inicialização.
Fig. 4: Interface do IDE CODESYS para criação do arquivo de inicialização.

 

Etapa 3: Configuração de Repositório Git e docker-compose.yml

O sistema CODESYS gera dois arquivos principais: .app e .crc. Para organizá-los:
1. Crie um repositório Git e adicione uma pasta chamada configs.
2. Nomeie as subpastas de acordo com o “Portainer Edge ID” de cada dispositivo.

O objetivo é mapear dinamicamente os arquivos de inicialização dos programas CLP para os dispositivos relevantes. A Figura 5 ilustra a estrutura do repositório.

Repositório do GitHub: https://github.com/chebbs/codeys_final.git

Fig. 5: Repositório Git para mapeamento de arquivos de configuração com IDs de borda do Portainer.
Fig. 5: Repositório Git para mapeamento de arquivos de configuração com IDs de borda do Portainer.

 

Etapa 4: Criação de Edge Stacks e Automação com GitOps

As Edge Stacks permitem vincular o repositório Git às configurações específicas dos dispositivos. O arquivo docker-compose.yml orquestra a implantação, garantindo que os arquivos de configuração sejam colocados nos locais apropriados.

Ative o botão de atualizações do GitOps para automatizar a sincronização entre o repositório e os dispositivos de borda. Preencha os detalhes, como:

  • Caminho do sistema de arquivos no host.
  • Diretório relativo ao repositório.
  • Variáveis de ambiente adicionais.

 
Fig. 6: Configuração de GitOps para Edge Stacks.
Fig. 6: Configuração de GitOps para Edge Stacks.

Boas práticas:

  • Ative “nova tentativa de implantação” para corrigir falhas automaticamente.
  • Utilize implantações paralelas para otimizar o tempo ao lidar com múltiplos dispositivos.

 

Conclusão

Este guia demonstra como integrar dispositivos de borda e configurar implantações automáticas usando o Portainer e o CODESYS. No exemplo, controlamos LEDs remotamente em três CLPs, mas a abordagem pode ser aplicada a sistemas SCADA, DCS e outras aplicações industriais.

O Portainer é uma ferramenta poderosa para modernizar o gerenciamento de dispositivos industriais, oferecendo simplicidade e escalabilidade.

 

SAIBA MAIS

Faça o download do catálogo de Produtos e Serviços