O Docker foi lançado em 2013, e desde então vem resolvendo problemas na área de TI. E além do universo do TI, recentemente uma fabricante de CLP’s vem usando o Docker com sucesso no meio industrial.

É uma plataforma para virtualização de contêineres, que “empacota” uma aplicação e permite que ela utilize uma quantidade limitada de recursos do hardware.

Também garante a compatibilidade do ambiente de produção para trabalho em equipe de desenvolvimento, evitando erros do tipo “roda na minha máquina, mas não na sua”.

Mas o que é contêiner?

O conceito de contêiner é definido no site www.docker.com como “unidade padrão de software que empacota o código e todas as suas dependências para que o aplicativo seja executado de maneira rápida e confiável de um ambiente de computação para outro”.

O contêiner é um “espaço” delimitado do seu hardware, com acesso a uma parcela da sua memória, da capacidade de processamento…

Isso é importante porque um programa instalado num contêiner não pode utilizar toda a capacidade do hardware, apenas aquela parcela que lhe é destinada.

E mais que isso: uma falha dentro de um contêiner fica restrita àquele espaço limitado, preservando o restante do ambiente de software.

O contêiner é leve e tem dentro dele tudo que é necessário para a aplicação rodar, de maneira autônoma.

Docker x Máquina Virtual:

Uma máquina virtual é uma simulação de hardware dentro de um ambiente virtual. Portanto, é uma duplicata isolada e eficiente de uma máquina real.

Por abrigar seu próprio sistema operacional a máquina virtual é bem mais pesada que a conteinerização do Docker.

2 pontos onde o Docker se diferencia:

  1. Compartilhamento de kernel: O Docker consome apenas o que precisa do Hardware, enquanto a máquina virtual reserva parte do Hardware para quando precisar;
  2. Menos espaço: A máquina virtual precisa receber um sistema operacional (o que pode gerar custos de licença), enquanto no Docker só precisamos instalar os aplicativos – a atmosfera operacional já está pronta.

Imagem: à esquerda, os contêineres compartilham o kernel, enquanto as máquinas virtuais tem seu espaço delimitado, e possuem cada uma um sistema operacional instalado.

Mesmo sendo desenvolvido para o Linux, podemos usar o Docker tranquilamente no Windows ou MAC, utilizando plataformas próprias de virtualização ou usando o Docker Toolbox, que instala uma máquina virtual em Linux dentro desse sistema por onde o Docker funciona.

O TI é necessário no meio industrial

Isso porque as funcionalidades de TI apoiam a indústria com alta performance em processamento de dados e flexibilidade operacional.

A indústria precisa ser medida, controlada, digitalizada e administrada. O TI é uma necessidade.

Ainda assim, utilizar um computador comum na indústria é inviável pelas seguintes razões:

  • A diversidade de funções para as quais um PC convencional está pronto é ampla, mas nem todas totalmente testadas. Para a indústria a confiabilidade dos softwares tem que ser bem maior;
  • A cibersegurança é uma variável importante, sendo que um computador é mais propenso a receber ataques maliciosos;
  • Vibrações, choques mecânicos e campos eletromagnéticos podem danificar um computador com muito mais facilidade que um CLP;
  • O computador não se comunica nativamente com os protocolos de comunicação industriais.

É claro que poderíamos usar um computador industrial, mas ele é mais caro que um CLP convencional que atenda às mesmas funções, e a maior diferença é sua interface de front-end, a facilidade de ver os processos numa tela.

Portanto, é bem mais interessante que utilizemos o próprio CLP para rodar funções de TI, visto que tem hardware e software muito mais confiáveis.

Imagem: Computador Industrial Edge e CLP PFC200 XTR, ambos da WAGO.

Isso tem se tornado um foco de alguns fabricantes da área de automação, principalmente da alemã WAGO. E nossa experiência na Safety Control é ver os clientes bastante impressionados quando conhecem algumas possibilidades de TI dentro do CLP.

Afinal, hoje é possível ter um CLP com sistema operacional Linux que abrigue recursos de TI, como o próprio Docker.

Tudo sem perder segurança, compatibilidade com equipamentos de campo e protocolos de comunicação industriais… Comentaremos mais sobre isso abaixo.

CLP com Docker: quais são as vantagens?

O Docker abre diversas possibilidades para um CLP, trazendo possibilidades de TI num controlador do universo da automação, ou TA.

Como o Docker trabalha com uma lógica de contêineres, caso um aplicativo falhe dentro do CLP ele não afeta os processos do controlador. O contêiner limita a falha ao espaço interno do próprio contêiner onde o aplicativo está instalado.

Isso possibilita a união entre TA e TI de maneira segura para os processos da indústria.

Algumas das possibilidades quando você usa um CLP com Docker:

1.    Utilizar o NodeRed;

Imagem: funções criadas pela Safety Control no NodeRED para que uma linha de produção emita alertas via Telegram.

O NodeRed é uma ferramenta de programação, e sua maior característica é ser visual. Nele podemos desenvolver aplicações usando JavaScript.

É moldado no Node.js, o maior ecossistema de componentes de código aberto do mundo.

E sua utilização mais notável na indústria é a de conectar, implementar e criar dispositivos de IoT, sendo estendida para API’s, web services e Hardwares. E há uma biblioteca de aplicativos para usar no NodeRED.

Você pode, por exemplo, conectar um CLP com seu ERP e fazer o controle de máquinas com base nas necessidades da gestão da sua empresa, e reversamente você pode enviar dados para seu ERP.

E já que o NodeRED fica num contêiner do Docker, falhas ou erros não afetarão os processos do CLP.

2.    Manter um banco de dados (exemplo: MySQL) dentro do CLP;

O MySQL, propriedade da Oracle Corporation, é um dos componentes centrais na maioria das aplicações públicas na internet.

É um software para criação de bancos de dados usado na maioria das aplicações gratuitas, de código aberto e com linguagem SQL (Search Query Language – Linguagem de consulta estruturada) para busca de dados internos.

Com o MySQL no CLP, dentro de um contêiner do Docker, é possível armazenar dados no CLP sem depender de um servidor local.

3.    Utilizar o Grafana

O Grafana permite a criação de gráficos, tabelas e dashboards a partir de um banco de dados como o MySQL. Também é uma plataforma de código aberto.

Com o Grafana o próprio CLP te entrega um dashboard agradável, com informações claras e bem distribuídas, a partir de programações básicas.

4.    Outras possibilidades:

  • Utilizar plataformas para linguagem Python;
  • Ter o aplicativo Tosibox® para segurança dos dispositivos IoT;
  • App para produção de arquivos IPK;
  • Outros aplicativos para estrutura “ARM”, que podem ser encontrados no site https://hub.docker.com/.

Programe processos industriais em linguagens de TI

O Docker te possibilita uso do NodeRED e de linguagens como JavaScript e Python para programação de processos industriais.

O PFC200 é o controlador da WAGO que possui o Docker e possibilita a integração entre TI e TA.

O PFC200 é seguro?

A segurança é muito importante quando integramos um controlador de automação ao universo de TI.

É por isso que a WAGO dá ênfase a questões de segurança cibernética, garantindo que o cliente final fique protegido de ataques virtuais.

O PFC200 está protegido por:

  • Redes Privadas via OpenVPN, e IPsec;
  • Protocolo de Segurança SSL;
  • Protocolo de Segurança SSH;
  • Senhas para acesso das funções;
  • Firewall contra acessos não autorizados.

Um case para mostrar as possibilidades do PFC200

Veja uma aplicação prática do PFC200 utilizando Docker.

Uma cooperativa agroindustrial produtora de soja precisa armazenar seus grãos enquanto estes não são negociados e vendidos.

Esses grãos são transportados por caminhões e depositados em silos. Os caminhões são pesados antes e depois de serem descarregados e assim é informada a massa de grãos armazenada.

Imagem: Caminhões em local de armazenamento de grãos.

Imagine quais processos são necessários para realizar a pesagem desses caminhões…

  1. Validar se a placa do caminhão é reconhecida no banco de dados da cooperativa;
  2. Abrir e fechar a cancela da entrada;
  3. Sinalizar ao caminhoneiro o momento de subir na balança;
  4. Medir a massa e enviar para um banco de dados;
  5. Indicar o momento de saída da balança.

Tudo isso de forma integrada com o ERP da cooperativa, para permitir a gestão por dados da operação.

Para uma operação automatizada desta natureza a cooperativa adquiriu uma solução em softwares, com as seguintes características:

  • A recepção dos dados era direcionada a um servidor local;
  • Havia a comunicação com o ERP, que comandava os equipamentos periféricos como cancelas, sinaleiros e afins;
  • O software era fechado, portanto qualquer desenvolvimento ou adaptação gerava novos custos. Qualquer troca dos equipamentos de campo ou da lógica da operação precisaria de uma alteração no sistema, com custos.

A autonomia faria toda a diferença nesse cenário.

Qual seria nossa sugestão?

Utilizar o PFC200 da WAGO por conta de seus recursos de TI.

Com o PFC200 seria possível:

  • Armazenar dados (horários das operações, identificação dos veículos, massas medidas) num banco de dados MySQL dentro do próprio controlador, que dispensaria uso de servidor (que tem alto custo de hardware);
  • Receber dados via ModBus e, utilizando o NodeRed, transmitir para a cooperativa via requisição HTTP, unindo TA e TI;
  • Utilizar o NodeRed para que o ERP da cooperativa comande os equipamentos periféricos via requisições HTTP;
  • Como a lógica da operação é desenvolvida dentro do ERP pela cooperativa, o sistema fica flexível para receber alterações sem custo algum. Isso dá autonomia ao TI da cooperativa.