A busca pela padronização e segurança na comunicação com elementos de IoT Internet das Coisas, são uma necessidade imediata para que tenhamos bons projetos de transformação digital, principalmente em nosso caso, com soluções voltadas para indústria.
Os protocolos de comunicação aplicados no chão de fábrica, são uma realidade desde meados da década de 90, com a evolução da digitalização, a discussão em torno de protocolos novamente ganha um novo entorno, com este texto temos a intenção de falar sobre como:
- Entender sobre os principais protocolos de IoT Internet das Coisas para aplicação na Indústria
- Como aplicar os modelos de protocolos e suas arquiteturas para criar a camada de IoT nos sistemas de automação industrial
- Como criar soluções de IoT e Computação em Nuvem a partir da conectividade entre dispositivos (aplicações)
O foco de nosso texto será explicar e comentar o protocolo de IoT baseado na camada de comunicação no nível de Aplicação, segundo o modelo OSI e o Modelo TCP/IP, tema de apresentações e textos anteriores a este.
Relembrando, o que é protocolo, é um conjunto de regras, normas e padrões (elementos lógicos), que permitem com que dispositivos interconectados se comuniquem entre si, criando uma linguagem única, entendível entre os elementos da rede.
Estes protocolos definem, entre outras variáveis, troca de dados, tamanho, tratamento de erros, tempo de envio e respostas, envio de status e outros.
Como principais desafios para os protocolos de IoT, podemos listar abaixo:
- Permitir comunicação assíncrona na rede (independente de tempo), modelo IoT
- Permitir publicação do dado na rede para todos os dispositivos (Publisher / Subscriber), modelo IoT
- Permitir comandos bidirecionais de forma ativa na rede (em processamento – iniciando a conexão) IoT como complemento da automação
Podemos criar uma rede de IoT sem estas características, onde o perfil seja somente para informação corporativa ou envio de dados (não industriais), daí a importância de conhecer o protocolo.
Evolução da comunicação industrial
A evolução da comunicação industrial, passa por diversas aplicações, na década de 80 e 90, utilizavam-se o conceito de LP Linhas Privadas, onde através de linhas telefônicas, enviava-se dados, em formatos binários, para análise de forma remota em terminais. Com a Internet, nos anos de 2008, passou-se a utilizar os protocolos HTTP e HTTPS, utilizando inclusive browsers de navegação com interface HTML. Nos últimos anos, após 2016, com a IoT na indústria, temos alguns protocolos, onde vamos pontuar o OPC-UA e o MQTT, objeto de nosso estudo.
Temos diversas formas de comunicar em uma rede utilizando Internet como meio, para criar camadas de IoT, vamos pontuar alguns protocolos, tais como, HTTPS, AMQP, MQTT e OPC-UA, lembrando que nosso texto tem aplicação industrial, não excluindo outros tipos de uso.
O HTTPS, Hyper Text Transfer Protocol Secure, é um protocolo síncrono e unidirecional, o ciente espera o servidor responder, para aplicações IoT fica limitado, na automação podemos usar para criar telas de informações via Browser, por exemplo (HTML5).
O protocolo AMQP, Advanced Message Queuing Protocol, assegura confiabilidade e interoperabilidade, porém precisa de boa capacidade computacional, onde a latência de rede também não pode ser uma preocupação, aplicações corporativas em nuvem são adequadas com este protocolo.
O MQTT, MQ Telemetry Transport, é um protocolo mais simples comparado ao AMQP, porém com características de segurança e qualidade de serviço, a ideia é necessitar de baixa capacidade de processamento, fazendo-se ideal para aplicações de IoT em ambiente industrial.
Para aplicações que não são baseadas em TCP/IP existe o MQTT-SN (Sensor Network), está fora de nosso contexto falar deste modelo.
O OPC UA – Unified Architecture (Arquitetura Unificada), é um padrão aberto de comunicação de dados industriais, e ao contrário do OPC Classic, o OPC UA utiliza um modelo de informação orientado a objetos, que suporta estruturas, objetos, máquinas de estado, base legada, além de ser independe de sistema operacional (Windows), onde este:
- Suporta arquitetura orientada a serviços (SOA) que permite a fácil personalização do OPC UA, para diversos tipos de dispositivos e aplicativos
- O OPC UA possibilita a troca de dados brutos e informações pré-processadas entre os sistemas incorporados nos sensores e nos dispositivos de campo e os sistemas de ERP, MES e de visualização de processos (IHM)
- Possui segurança Robusta de dados
Nosso texto irá focar no uso do Protocolo MQTT, devido ao crescimento e alta adesão ao uso em camadas de IoT na industrial, com este foco, poderemos detalhar mais suas aplicações.
Quais os benefícios de uso do MQTT?
- Código simples, permite que o protocolo funcione em sistemas legados ou com limites de armazenamento e internet limitada;
- Sistema só permite passar pelo protocolo MQTT, o dado que é necessário, não sobrecarregando o sistema ou até sofrer panes os travamentos;
- Sistema aberto de domínio público, garante flexibilidade e instalação em qualquer hardware ou sistema, adaptado e configurado conforme escolhas específicas;
- Possui sistema de segurança de dados e qualidade de dados no protocolo.
A tecnologia do MQTT, é baseada em três elementos:
- Publisher – o dado que é publicado no Broker, sinal de um sensor por exemplo
- Subscriber – é o dados consumido que vem o Broker, que organizou e deixou disponível para uso
- Broker – responsável por fazer a gestão dos dados publicados e as subscrições do protocolo (quem requisita) – é desacoplado entre as partes
Exemplo de funcionamento do MQTT, tendo um sensor de temperatura para publicar os dados (mensagem) no tópico “temperatura”, os clientes interessados que se inscreveram no tópico “temperatura” obterão os dados de temperatura publicados. Veja figura na apresentação.
O MQTT é amplamente usado em aplicativos incorporados da Internet das Coisas (Internet of Things), onde todos os sensores estão conectados a um servidor e temos acesso para controlá-los pela Internet.
Quanto ao funcionamento do BROKER, é um servidor que recebe todas as mensagens dos clientes e, em seguida, roteia as mensagens para os clientes de destino apropriados. Um cliente MQTT é qualquer dispositivo (de um microcontrolador a um servidor completo) que executa uma biblioteca MQTT e se conecta a um broker MQTT em uma rede.
Para se criar aplicações com a estrutura do MQTT, utiliza-se as seguintes ferramentas:
- API – Application Programming Interface – conjunto de rotinas e padrões estabelecidos por uma determinada aplicação, para que consigam trocar funcionalidades sem conhecimento de detalhes
- REST – Representational State Transfer – conjunto de princípios e regras para criação de projetos WEB com interfaces bem definidas
- JSON – JavaScript Object Notation – é um formato leve de troca de dados entre dispositivos, bem mais simples que o XML, além da vantagem da leitura simples, velocidade maior no transporte de dados e arquivos de tamanho reduzido
Podemos utilizar em forma de aplicação do MQTT, em diversos aplicativos, bem como, em outros equipamentos que suportem este protocolo, já temos por exemplo, PLC Controladores Programáveis que comunicam em MQTT, gateways que transformam protocolos conhecidos neste padrão, facilitando a integração na nuvem.
O MQTT também permite o serviço de M2M, Machine To Machine, que é a aplicação de trocar dados entre dispositivos, através de Microserviços, tomar decisões supervisionadas ou autônomas.
Conectividade na automação industrial
Para um melhor entendimento sobre a aplicação do MQTT na indústria, vamos entender a evolução da conectividade na automação industrial, onde temos:
- 1ª Geração – Monolítico
- 2ª Geração – Redes de Comunicação
- 3ª Geração – Distribuído
- 4ª Geração – Serviços e Microserviços
Há dois termos muito importantes para serem conhecidos na área de Serviços e Microserviços, que estão permeando as novas arquiteturas de automação:
- SOA – Service-Oriented Architecture, Arquitetura Orientada a Serviços, um modelo de sistema baseado em aplicações distribuídas, acessíveis por Webservices, utilizando Orquestração de dados. Aplicações em Dados Estruturados IIoT, utilizando XML, HTML (SOAP) (ex.)
- MOA – Microservice Oriented Architecture – Arquitetura Orientada a Microserviços, um modelo de sistemas baseado em funções distribuídas, acessíveis por Microserviços, utilizando Coreografia de dados. Aplicações em dados simples (end poits), ideal para IoT, utilizando REST (ex.)
A automação industrial está evoluindo para poder suportar todas as questões de serviços de comunicação, além de seu foco principal de comando e controle, vamos pontuar abaixo algumas tecnologias da Automação Industrial 4.0:
- Entradas e saídas em campo, associada com informações de IoT
- Computação EDGE no campo, pré processamento para Nuvem com cibersegurança
- Controle distribuído, software de controle e lógica como Microserviços (controle virtual)
- Uso de Backbone de rede para convergência da Cadeia de Valor, usando FOG no nível IIoT
- Uso de Microserviços no ecossistema da empresa, compartilhando eventos e tomada de decisões, utilizando I.A. Inteligência Artificial
Outra questão muito importante é quanto a segurança de dados, utilizando em nosso caso o MQTT para a camada de IoT, o protocolo suporta de forma básica algumas funções:
A conexão do cliente ao broker, seja ele subscritor ou publicador, é originalmente feita via TCP, com opções de login (usuário e senha) e uso de criptografia (SSL/TLS).
Para evoluir na questão da Cibersegurança, é necessário aplicar práticas e adicionar ao ambiente de hardware, software, redes e usuários, recomendamos ler nosso texto específico para este tema.
Outra característica importante no protocolo MQTT é sua função que permite o controle sobre a Qualidade de Comunicação ou de Serviço:
- QoS 0 (at most once): É o que conhecemos como “best effort”, ou melhor esforço
- QoS 1 (at least once): Neste nível existe a confirmação de entrega de uma mensagem
- QoS 2 (exactly once): Garante que a mensagem seja entregue exatamente uma vez
Não existe um QoS melhor ou pior, isto irá depender de cada cenário de aplicação do MQTT.
A evolução dos protocolos, bem como da automação industrial é permanente, podemos pontuar algumas tendências nesta continuidade:
- Dispositivos de automação com IoT e MQTT nativo
- Uso de Microserviços (lógica e controle) na rede de Automação
- Uso de I.A. Inteligência Artificial para criação de Microserviços dinâmicos
Conclusão
Concluímos que para criação das redes de IoT nas indústrias, é necessário evoluir em protocolos e modelos de serviços compartilhados na rede, o MQTT e o MOA são tecnologias que já permitem criar soluções a partir desta nova realidade, aderente a Indústria 4.0.