Protocolos de comunicação são conjuntos de especificações que determinam como dois (ou mais) equipamentos digitais irão trocar mensagens através de um determinado meio físico. De maneira mais simples, pode-se dizer que um protocolo determina o formato dos "pacotes" de dados que vão trafegar entre dois computadores, ou entre um sensor e um computador, por exemplo.
Assim como na Internet existe uma infinidade de protocolos (udp, tcp, ftp, http e assim por diante), cada um exercendo um papel específico e atendendo uma certa necessidade, o mesmo ocorre com os equipamentos como sensores, controladores e atuadores.
Ao longo das décadas surgiram inúmeros protocolos diferentes. Uma verdadeira proliferação de protocolos ocorreu tanto por motivos técnicos, como por motivos comerciais: muitos fabricantes de equipamento, com o objetivo de "prender" os clientes aos seus próprios softwares, criaram protocolos proprietários que o tornavam incompatíveis com os softwares de concorrentes. Hoje existem dezenas de protocolos largamente utilizados, e centenas de outros menos populares, já obsoletos ou altamente especializados.
Ao longo da década de 90, porém, a filosofia de integração entre diversos sistemas (Interoperabilidade) exigiu um movimento muito forte em direção à adoção de padrões mais abertos de comunicação. Neste período, alguns protocolos destacaram-se como alternativas abertas e viáveis para uma maior padronização no mundo dos softwares SCADAs. Vamos ver agora alguns dos formatos de comunicação mais importantes atualmente.
1) Comunicação com sensores de baixo-custo e equipamentos de utilização comercial:
Nesta área a comunicação ASCII sobre porta serial tornou-se bastante disseminada. Por exemplo, a maioria das balanças encontradas no comércio tem uma porta serial RS-232, e utiliza algum protocolo baseado em ASCII para comunicar-se com um computador ou impressora de etiquetas no ponto-de-vendas. Porém, cada fabricante utiliza um formato próprio na comunicação ASCII serial (com quantidade diferente de casas decimais, comandos próprios e outros caracteres de controle personalizados), por isso o formato ASCII pode necessitar pequenos ajustes que variam caso-a-caso.
2) Comunicação com sensores e controladores simples, em padrão industrial:
Nesta área algumas especificações bastante completas sobre formato das mensagens, velocidade de comunicação, controle de fluxo e detecção de erros, entre outros detalhes, foram desenvolvidas. Isto torna as comunicações mais padronizadas e confiáveis, o que permite que o mesmo software fale com uma gama maior de equipamentos.
O formato mais popular para esta comunicação, sem dúvida hoje é o MODBUS, um protocolo bastante enxuto que permite a transmissão de dados em algumas variantes como a porta serial 232 ou 485, e encapsulado em TCP sobre IP, normalmente em redes locais Ethernet.
Para comunicação com sistemas de ventilação e ar-condicionado existe o BACNET; já em equipamentos voltados a climatização e automação de datacenters é bem comum o uso do SNMP.
3) comunicação em sistemas industriais complexos:
Nesta área existem necessidades bastante diferentes conforme o tipo de aplicação, e também conforme o fabricante de equipamentos, pois muitos ainda utilizam protocolos próprios. Como este artigo não tem a intenção de discutir de maneira muito aprofundada as diferenças existentes entre eles, podemos apenas citar alguns entre os mais importantes: Profibus, ISO-TCP, Devicenet e as diversas variações do OPC, que é uma tecnologia desenvolvida para "abstrair" a diferença entre os protocolos, oferecendo um formato padrão de comunicação entre os SCADAs e os equipamentos.
4) comunicação em "utilities" (energia, gás, água):
Estas são as áreas com maior grau de padronização, e maior aderência a normas internacionais. Porém, mesmo assim ainda não há 100% de padronização, utilizando-se por exemplo tanto o DNP3 como a família de protocolos IEC 101, muitas vezes na mesma aplicação. A IEC 61850 promete ser o próximo passo para uma maior padronização, e tem sido adotada em ritmo bastante relevante.
A maioria dos protocolos ditos "abertos" possui implementações open-source em linguagens como C e Java, como é o caso do Modbus, Bacnet, IEC 101 e DNP3, entre outros. Alguns protocolos fechados (proprietários) já chegaram a ser implementados através de engenharia reversa, mas alguns foram retirados de circulação por força legal de copyright, como já ocorreu anteriormente com uma versão "free" do Profibus.