Você está na página 1de 9

Protocolo Modbus

Francisco Manuel Gomes da Torre e Frias­Bulhosa
Estudante do Mestrado em Engenharia Eletrotécnica e de Computadores ramo de Telecomunicações, no Instituto
Superior de Engenharia do Porto
1130359@isep.ipp.pt

Resumo tipo   de  dispositivos   de   campo  que   controla  ficam


interligados, em termos elétricos em paralelo, como
O   protocolo  Modbus  é  um   protocolo  utilizado  em ilustra a figura  1, por  dois ou três cabos e  trocam
redes de campo. Foi desenvolvido em 1979 para envio mensagens  usualmente   pequenas  entre   eles,
e   receção   de   mensagens  entre  Programmable   Logic seguindo   um   conjunto   de   regras   definidas   pelo
Controllers (PLC), com o intuito de ser simples e fácil protocolo, para  transmissão de valores ou execução
de   implementar.   Neste   documento   são   explicadas   as de ações.  A maior parte destas redes  são  utilizadas
funcionalidades   do   protocolo,   como   se   usa   e   as em   ambiente   industrial,   onde   existem  unidades
vantagens e desvantagens que apresenta em relação a inteligentes, normalmente PLCs ou equivalentes, que
outros protocolos utilizados no mesmo âmbito. executam   tarefas   específicas  nas   várias  zonas  da
nave fabril. Também é usual existir um equipamento
que supervisiona as mensagens trocadas na rede ou
1. Introdução comanda os PLC por uma outra rede de campo.
O protocolo  Modbus  já existe há bastante tempo.
É um  protocolo  que  define  o  tipo  de  mensagens  a
enviar  entre  dois  equipamentos, que pode ser para
leitura   de  sensores   remotos,   acionamento   de
atuadores, etc... E, por isso, é normalmente utilizado
em redes de instrumentação ou de campo, como por
Figura 1. Ligação típica de
exemplo linhas de produção industriais.
equipamentos numa rede de campo
Neste   artigo   é   feita   uma   revisão   ao   protocolo,
[2].
tendo como objetivos dar a conhecer a sua evolução
no tempo, realizar uma comparação com protocolos
parecidos,   dar   também   a   conhecer   como   se 1.2. Organização do relatório
implementa, sendo apresentado um exemplo de uma
rede, tendo como principal objetivo concluir se ainda No   capítulo   1   deste   relatório   é   feita   uma
se   justifica   o   uso   deste   protocolo   ou   se   este   foi introdução e é apresentada e razão de existência do
tornado   obsoleto   por   outros   protocolos   mais protocolo.
robustos. No   capítulo   2,   é   apresentada   a   evolução   do
protocolo   ao   longo   do   tempo   e   são   também
indicadas quais as entidades que possuíam direitos
1.1. Redes de campo
de   autoria  e   responsáveis   por   certificação   dos
equipamentos.
As   redes   de   campo   são   redes   para   troca   de
No capítulo 3 é feita a descrição do protocolo em
informação   entre   equipamentos  afastados
si.   São   apresentadas  as   várias   camadas   do  modelo
fisicamente,  mas que  precisam  de  realizar trocas de
Open   Systems   Interconnection  (OSI)  que   estão
dados [1]. Inicialmente nos processos automatizados
definidas por este.
existia uma unidade central do tipo PLC, que estava
No capítulo 4 é apresentado o estado de uso deste
ligado   aos   vários   sensores   e   atuadores  que
protocolo,   nomeadamente   os   setores   em   que   é
controlava  por  ligações   individuais  com  cabos   de
implementado   e   a   quantidade  relativa  de  uso   em
cobre  através das suas  entradas  e  saídas.  Passou  a
comparação com outros protocolos.
haver   a   necessidade  em   processos   mais   complexos
No  capítulo  5   é   efetuada   uma   comparação  com
de   reduzir   o   número   de   cabos   utilizados  e   de
alguns   dos   protocolos   mais   comuns   com   o   mesmo
entradas e saídas do PLC. Então a implementação de
tipo de implementação.
rede de campo resolve o problema, o PLC e  todo o
No capítulo 6 é apresentado um caso concreto de camada   de dados  de  forma   igual,   tornando  alguns
uma rede que implemente o protocolo Modbus. incompatíveis.
No   capítulo   7   estão   resumidas   as   principais Se   os  designers  que   pretendam   implementar   o
conclusões   a   tirar   com   base   nos   conteúdos   deste protocolo  Modbus  numa   comunicação   série,  que
artigo. utilize RS485 ou RS232, seguirem as orientações do
referido   documento,  é   assegurada   a
2. História interoperabilidade   entre   dispositivos   de   diferentes
fabricantes, sendo de  salientar  que este documento
Os   engenheiros   da  empresa  Modicon,   nome não faz parte do protocolo Modbus.
proveniente de MOdular DIgital CONtroller, foram os De   forma   parecida   foi   também   criada   um
primeiros   a   desenvolver  um  PLC  em   1968  [3],  e documento  equivalente  por   parte   da  Schneider
foram   também   os   primeiros   a   desenvolver  um Automation,   para   implementação  com  Ethernet,
protocolo   específico   para   que   os   PLCs   pudessem denominado  MODBUS   Messaging   on   TCP/IP
comunicar entre si, quando em 1979, desenvolveram Implementation   Guide   V1.0b  [6],  onde   são   dadas
o protocolo Modbus para ser implementado nos seus orientações   a   nível   de  software,   aos  designers  que
PLCs,  permitindo   uma   troca   de   dados   entre pretendam   desenvolver   ou   programar   dispositivos
equipamentos   de   forma  estruturada,   organizada, para comunicarem recorrendo a Ethernet.
eficiente e simples.
A  Modicon  foi  sendo  comprada   por   outras 3. Descrição do protocolo
empresas e em 1994 acabou no grupo que viria a ser
o  Grupe   Schneider  [4].  A  12   de   Abril   de  2004,   os O protocolo  Modbus  define o tipo de mensagem
direitos   de   autoria   do   protocolo  Modbus  foram que   é   utilizado,  para   pedidos   de   dados   ou
transferidos   para   uma   organização  sem   fins requerimento   de   ações   de   outro   equipamento,
lucrativos   chamada  de  Modbus­IDA  (atualmente independentemente   do   tipo   de   rede   em   que   se
Modbus  Organization),   que   efetua   certificação  de encontra.  Por  esse  motivo  define  apenas  a  camada
equipamentos  que   seguem   as   recomendações, de   aplicação   do   modelo   OSI  [7].  No  entanto  os
publicadas  nos   documentos   criados   por   esta,  para engenheiros da  Modicon  também definiram como é
assegurar   a   interoperabilidade   dos   mesmos.  Nesta que   os   seus   PLCs  implementavam  a   camada   de
altura   o   protocolo   passou   a   ser   aberto  e   muitos dados,   quando  era  utilizado  na   camada   física  o
fabricantes começaram a implementar este protocolo RS232, que era a interface que os seus PLCs tinham.
nos seus equipamentos. Definiram   dois  modos   de   transmissão  a   nível   de
A  grande adesão  ao  protocolo  e  a sua  cada vez camada de dados [8], aos quais chamaram de modo
maior presença levaram a que o Modbus se tornasse American Standard Code for Information Interchange
num de facto standard para redes industriais. (ASCII) e modo Remote Terminal Unit (RTU).
Inicialmente   os   PLCs   da  Modicon  comunicavam Mais tarde por parte da Modbus Organization, foi
todos  utilizando   uma   interface  Recommended criado   o   documento  MODBUS   over   Serial   Line
Standard 232 (RS232), e por isso existia um capítulo Specification   and   Implementation   Guide   V1.02  [5],
no protocolo  com  definições  para a implementação, onde explicam como se utilizam estes dois modos de
mais especificamente  a  nível  da  camada  de  dados, transmissão  a   nível   de  camada   de   dados   e  como
quando   fosse   pretendido   utilizar   interface   RS232, interligar   equipamentos   na   mesma   rede.  Neste
apesar   de   esta   camada   não   estar   definida   pelo capítulo são apresentados para além das mensagens
protocolo.  Posteriormente foi definido, pela  Modbus definidas   no   protocolo,  os   modos   recomendados
Organization,  um  documento à parte do protocolo, para   comunicações série,  quando  utilizando RS485
intitulado de  MODBUS over Serial Line Specification ou RS232 denominados de ASCII e RTU e também o
and Implementation Guide V1.02 [5] onde é definido utilizado em redes TCP/IP.
o   protocolo  Modbus   Serial  Line  protocol,   um O modo  de transmissão  ASCII,  tal como o  modo
protocolo   de   camada   de   dados   para   troca   de RTU, está definido para ser utilizado na transmissão
informação   entre   um  master  e   um   ou   mais  slaves, de mensagens Modbus entre dispositivos que estejam
quando   é  utilizando   como   camada   lógica ligados via ligação série RS485 ou RS232. Neste tipo
Recommended Standard 485 (RS485) ou RS232. Este de   redes   existe   apenas   um   cliente,   denominado
documento foi criado pois se verificou  que a maior master, e podem existir vários servidores, que são os
parte   dos   dispositivos  Modbus,  comunicavam  via slaves.  Cada  slave  tem um endereço que é utilizado
RS485   ou   RS232,  mas   não   implementavam   a para   endereçar   as   mensagens.   Como   só  existe   um
master que interpreta as respostas, estas apresentam • Coils  ­  saídas digitais  ou  variáveis internas,
no campo do endereço o mesmo endereço  do  slave que apenas contém um bit de informação;
que responde, que serve também para confirmar que • Discrete   Inputs  ­  entradas   digitais   também
a resposta é do servidor pretendido. apenas de um bit;
Para   informação   mais   detalhada   sobre   qualquer • Holding   Register  ­  saídas   analógicas   ou
questão relacionada com o protocolo  Modbus  ou as variáveis   internas,   com  16  bits  de
implementações   recomendadas   pela  Modbus informação;
Organization,  podem­se  consultar  os   documentos • Input Register ­ entrada analógica de 16 bits.
referenciados   ao   longo   do   texto,   que   estão Existem seis funções para este tipo de ação.
disponibilizados no site da Modbus Organization. Para   ler  Coils  e  Discrete   Inputs  são   utilizadas   as
funções  1 e 2 correspondentemente, sendo para as
3.1. Trama de mensagem Modbus duas   enviados   dois   valores   de   16  bits  no   campo
Data, o primeiro o endereço  e o segundo o número
Sendo  Modbus  um   protocolo   da   camada   de de variáveis a ler. Por exemplo para se ler a décima
aplicação,   apenas   define   o   tipo   de   mensagem variável  utiliza­se o endereço  0x0009  e  requer­se  a
(trama) que é enviado entre o cliente e o servidor e leitura de apenas uma variável (0x0001).
vice­versa. Para escrita de Coils existe a função 5 para apenas
É   um   protocolo   de   pedido/resposta,  a uma   e   a   15  (0x0F)  para   a   escrita   de   várias
comunicação  começa pelo envio de um pedido por sequencialmente endereçadas.
parte do cliente, para um servidor e este envia uma Para leitura de  Holding Registers  e  Input Registers
mensagem   de   resposta   conforme   o   tipo   de   pedido utilizam­se as funções 3 e 4 correspondentemente  e
realizado. para   escrita   de  Holding   Registers  a   função   6  para
A trama ou Protocol Data Unit (PDU) do protocolo escrita de apenas uma variável e a função 16 (0x10)
Modbus contêm dois campos [7]: para   serem   escritas   várias  endereçadas
• Function  code  ­   este   primeiro   campo sequencialmente.
identifica o tipo de ação que é pretendido o A   maior   parte   das  restantes  funções  definidas
servidor realizar e é sempre um byte; servem para propósitos de diagnósticos.
• Data  ­  este   campo   varia   em   conteúdo   e Como se pode ver pela figura 2, as funções estão
tamanho,   pois   contém   os   argumentos classificadas   como   publicas   ou   definidas   pelo
necessários para o servidor  executar a ação utilizador. As funções públicas são funções que estão
correspondente   ao  Function  code  enviado, definidas no protocolo e é assim garantido que o seu
estando   o   seu   tamanho   limitado   a   um funcionamento   é  o   mesmo   independentemente  do
máximo de 252  bytes  e podendo em alguns dispositivo. As funções definidas pelo utilizador são
casos este campo ser nulo. funções que não estão definidas no protocolo e cada
Existem   três   tipos   de   mensagem:   de   pedido,   de utilizador   pode   implementar  livremente  nos   seus
resposta e de exceção. As mensagens de pedido, que dispositivos  conforme  precisar.  O   utilizador   pode
são enviadas do cliente para o servidor, transmitem o também requerer que uma função desenvolvida por
Function   code  e   os   argumentos   necessários,   a si, fique reservada como pública, sendo­lhe atribuído
resposta,   enviada   do   servidor   para   o   cliente, um   número  ainda  livre.  Das   funções   públicas,   que
transmite o mesmo  Function code  e em vários casos são no total 108, apenas 30 estão definidas, 19 pelo
os   argumentos   são   os   mesmos.  As   mensagens   de protocolo   e  mais   11  por   pedido   de   utilizadores,
exceção   são   enviadas   pelo   servidor   para   o   cliente, significando  que  para   além   das  19   que  podem   ser
quando a ação correspondente ao Function code não implementadas   livremente   por   utilizadores  ainda
pode ser realizada. Nesta mensagem o Function code podem vir a ser definidas mais 78.
é   igual   ao   do   pedido,   mas   com   o  bit  mais
significativo a 1 e no campo Data é enviado um byte,
denominado  Exception  code, que identifica porque  é
que a ação pedida não foi realizada.
Os   principais   tipos   de   funções,  definidos   no
protocolo  Modbus,   e   os   mais   utilizados   são  os   de
pedido de leitura e de escrita de dados num servidor.
O tipo de dados pode ser de quatro tipos, tipos estes
baseados no tipo de dados que um PLC utiliza [7]:
0x08 (erro de paridade na  relacionado com as funções 20 
memória) e 21 indica que o servidor 
detetou erros no ficheiro que 
estava a ser lido
0x0A (falha de  quando a comunicação é feita 
encaminhamento) através de um gateway e este 
não conseguiu criar um canal 
de comunicação entre os dois
0x0B (dispositivo não  quando a comunicação é feita 
respondeu) através de um gateway e este 
não obteve resposta do outro 
dispositivo

3.2. Modo ASCII

O  modo  ASCII,  tal   como   o   nome   indica,  utiliza


caracteres   ASCII  para   transmissão   de   dados.  Por
cada byte da mensagem que se pretenda enviar, são
enviados   dois   caracteres   com   a   sua   representação
hexadecimal,  por   exemplo,  se   for   pretendido
transmitir o valor decimal 59, 0x3B em hexadecimal,
são enviados os caracteres "3" (0x33) e "B" (0x42).
Cada caracter é enviado de acordo com a figura 3.
É   enviado   um  bit  de  start,   depois   são   enviados  os
Figura 2. Esquema com funções sete bits que representam o caracter ASCII do menos
definidas no protocolo Modbus [7]. significativo para o mais significativo, é enviado um
Apesar   de   as   funções   estarem   definidas   no bit  de paridade, que serve para deteção de erros na
protocolo,   não   é   necessário   estarem  todas transmissão de um caracter e por fim é enviado um
implementadas em cada dispositivo. bit de stop.
Existe um conjunto de  Exception  codes,  referidos
anteriormente   neste   capítulo,  que   identificam  na
resposta de erro no campo Data, qual o tipo de erro
que ocorreu. Na tabela 1 são apresentados os vários
Exception codes definidos no protocolo. Figura 3. Transmissão de um caracter em
Tabela 1. Lista de Exception codes e o modo ASCII [5].
que significam [7]. Cada   caracter  enviado   corresponde   a  10  bits
enviados.
Exception code Tipo de erro Em termos de PDU, é acrescentado um cabeçalho
0x01 (função ilegal) a função no pedido não está  e um campo para verificação de erro no fim, como se
configurada no servidor ilustra  na   figura  4.  O  cabeçalho consiste  num  byte
0x02 (endereço ilegal) um endereço pedido não  que   contém   o   endereço   do  slave,  ao   qual  a
corresponde a uma variável  mensagem se destina ou que está a responder. Neste
válida modo   a   verificação   de   erro   é   feita   com  um  byte
0x03 (dado ilegal) um dos valores no pedido não  acrescentado   no   fim   da   trama,   que   implementa
está correto Longitudinal  Redundancy  Checking  (LRC).  Tanto   o
0x04 (falha do servidor) erro relacionado com o  endereço   como   o  byte  de   LRC   são   enviados   como
funcionamento do servidor ou  dois   caracteres   ASCII.  A   condição   de   início   de
subcomponentes mensagem é o caracter ":", que tem de ser sempre
0x05 (receção) o pedido foi recebido mas vai  enviado, neste caso, antes do endereço  do  slave  e a
demorar bastante tempo a ser  condição   de   fim   de   trama   é   a   sequência   dos
processado
caracteres Carriage Return e Line Feed. No entanto se
0x06 (servidor ocupado) o servidor está a processar um  durante  o  tempo  de  um  segundo  não  for  recebido
pedido que demora e não pode 
receber mais pedidos por 
nenhum caracter ou for recebido o caracter de início
enquanto ":", a trama é dada por incompleta e é descartada.
um tempo de silêncio maior que 1,5 vezes o tempo
de transmissão de um byte, desde a última receção.

Figura 4. PDU com condições de início e
de fim para o modo de transmissão
ASCII [5]. Figura 6. PDU com condições de início e
Como para cada byte são enviados dois caracteres de fim para o modo de transmissão
ASCII, a quantidade de informação enviada é grande RTU [5].
em comparação com a informação útil após receção Este modo tem a principal vantagem de transmitir
e   o   tempo   de   transmissão   pode   também   ser quase   nenhuns   dados,  que   não   sejam  com
considerável  grande, no entanto como os dados são informação útil e subsequentemente ser mais rápido.
legíveis, é possível uma pessoa analisar as tramas de Este  modo  é  por  essas  razões  o  mais  utilizado  em
forma   mais   fácil  e   o   tempo   entre   caracteres   de   1 redes   com   comunicação   série,   apesar   de   requerer
segundo permite também que sejam enviadas tramas maior precisão temporal, tanto em transmissão como
a partir de um teclado ou interface homem­máquina em recessão e ser mais difícil uma pessoa interpretar
equivalente. a informação.

3.3. Modo RTU 3.4. Modbus sobre TCP/IP

No  modo de transmissão RTU é transmitido cada Também   é   possível   integrar   comunicação   entre


byte da mensagem sem qualquer tipo de codificação. clientes   e   servidores  Modbus  sobre   redes  Ethernet.
Em comparação com o exemplo dado para o modo Foi definido que a transmissão deverá ser realizada
ASCII, se se pretender transmitir o valor decimal 59, utilizando TCP/IP  para assegurar  a integral receção
0x3B  em   hexadecimal,   são   enviados   os  oito  bits, das mensagens, estando reservado o porto 502 para
correspondentes a esse  byte.  A maneira como cada os servidores Modbus receberem pedidos.
byte é enviado é idêntica à do modo ASCII, mas em Ao   implementar  Modbus  com  Ethernet,  pode­se
vez de se enviarem sete bits enviam­se oito, como se tomar   partido  da  possibilidade  de  existir   mais   que
mostra na figura 5. um cliente na mesma rede e inclusive cada cliente
enviar   vários   pedidos   seguidos,   pois  é   assegurado
com o uso de TCP que todas as mensagens chegam
ao   destino  e   não   são   interpretadas   pelos   outros
dispositivos.
Figura 5. Transmissão de um byte em modo Tal   como   nos   modos   de   transmissão
RTU [5]. anteriormente   referidos,   a   PDU   terá   campos
A PDU no modo RTU é também muito similar à adicionais.  É   acrescentado   um   cabeçalho,
do modo ASCII.  Uma das diferenças é a  verificação denominado  Modbus  Application  Protocol  header  (
de erro ser feita com dois bytes, que são o resultado MBAP header), o qual contém quatro campos [6]:
da implementação do algoritmo Cyclical Redundancy • Transaction Identifier ­ este campo de 16 bits
Checking (CRC) aos bytes da PDU. No modo ASCII a contém   um   valor,   atribuído   pelo   cliente  e
delimitação   da   PDU   é   feita   enviando   caracteres repetido na resposta pelo servidor, que serve
específicos   que   nunca   aparecem   a   meio   de   trama, para o cliente conseguir associar a resposta
mas como em modo RTU pode ser enviado qualquer ao pedido correspondente;
byte  na   trama,   a   delimitação   não   é   feita   com   um • Protocol   Identifier  ­  este   campo   de   16   bits
valor ou sequência específicos, mas sim com tempo representa o tipo de protocolo utilizado, que
de silêncio.  Como  se  ilustra  na figura  6,  uma trama neste caso será sempre 0x0000;
só começa a ser recebida se durante pelo menos 3,5 • Length ­ 16 bits que servem para o cliente e o
vezes o tempo que leva a transmitir um byte, 11 bits servidor saberem quantos bytes a mensagem
em modo RTU,  não existir nenhuma transmissão de contém.   Isto   é   necessário   pois   uma
qualquer tipo na rede e só é dada por concluída, se a mensagem   pode   ser   separada   em   vários
mesma condição ocorrer  no fim da  trama.  Um  byte pacotes   TCP,   assim   o   dispositivo  consegue
só é aceite como parte da trama atual, se não ocorrer determinar quando já recebeu todos os bytes
da mensagem  e pode processar. É de notar
que   o   último   campo   do   MBAP   também   é utilizem  equipamentos   com  gateways  ou
contabilizado como byte da mensagem; conversores, o  que  pode  ser considerado frustrante.
• Unit   Identifier  ­  este  byte  serve   para No   entanto   por   não   ter   restrições   a   este   nível,   é
endereçar   um  slave  que   se   encontra   numa possível   se   desenvolverem   equipamentos   que
rede,  RS485  ou   equivalente,  acessível utilizem   as  interfaces   mais   adequadas  ao   meio   em
através   de  um  gateway.  Nesta   situação   o que vão ser utilizados.
endereço IP de destino é o do gateway e este Mesmo   assim   verifica­se   que   a   quase   totalidade
ao  receber   a   mensagem,  transforma­a   na dos   dispositivos  Modbus  seguem   as   orientações
PDU apropriada destinada para o  slave  com documentadas   e  publicadas   pela  Modbus
este   número  e   o   oposto   acontece   na Organization, tornando fácil instalar na mesma rede
resposta. Se o servidor de destino estiver na dispositivos de  vários  fabricantes e assegurar a sua
rede  Ethernet,   é   endereçado   normalmente compatibilidade. Mesmo quando os mesmos utilizam
através do IP e este campo deve ser 0xFF ou interfaces   diferentes,   é   fácil   de   encontrar
0x00. conversores apropriados, que tornam a comunicação
Por permitir um maior número de dispositivos na transparente.
mesma   rede,  permitir   a   transmissão   de   um   novo Se for necessário que a comunicação seja efetuada
pedido antes de se obter a resposta para o anterior, de forma  wireless  ou por fibra ótica, em  ambientes
esta implementação é mais capaz e rápida apesar de que o requeiram, podem ser seguidas as definições
ser   transmitida   muita   informação   não   útil  nas do documento MODBUS over Serial Line Specification
tramas.  Esta   implementação   permite   também   que and   Implementation   Guide   V1.02  [5]  e   tratar   a
exista   comunicação   entre   dispositivos   em   locais ligação  wireless  como   se   fosse   RS485,   pois   é   na
afastados através da Internet. mesma um meio partilhado entre os dispositivos e a
fibra ótica como RS232, pois  é utilizada  uma  para
4. Implantação emitir (TX) e outra para receber (RX). O mais usual
é   os   dispositivos   comunicarem   com   conversores
O  protocolo  Modbus  é   utilizado   em  muitos externos.
equipamentos  para  realização   de  troca   de   dados,
sendo em redes de comunicação série, a versão RTU 5. Comparação
a mais utilizada a seguir ao protocolo Profibus e em
redes   baseadas   em   Ethernet   a   versão   TCP/IP   é   a Existem vários protocolos para redes de  campo e
quarta   mais   implementada  [1].  Mesmo   assim muitos  apresentam   certas   vantagens   em   algum
existem   muitos   mais   que  não   implementam  o aspeto  quando   comparados   com   outros,   o   que   os
protocolo  exatamente   como   este   está   especificado, torna mais apropriados para certos tipos de rede de
mas   sim   uma   variante,   nomeadamente   quanto   ao campo.  Neste  capítulo  será  efetuada  a  comparação
tipo de dados transmitidos. O protocolo Modbus está entre as caraterísticas do protocolo Modbus e outros
definido para utilizar os tipos de dados mais comuns protocolos   de   rede   de   campo,  que   são
nos PLCs, bits (Coils ou Discrete Inputs) e registos de implementados   no   mesmo  âmbito  de   redes  de
16  bits  (Holding  Registers  ou  Input   Registers) campo,   ou   seja   para   comunicação   entre   PLCs   ou
usualmente   chamados   de  words.  Não   muito equipamentos   equivalentes  e  por   isso  foram
raramente são desenvolvidos servidores Modbus, que escolhidos   os   protocolos  Building  Automation
retornam dados estruturados no lugar de registos de Controls Network (BACnet) e ProfIbus.
16 bits em resposta a pedidos com o Function code 3
ou 4. 5.1. BACnet
O   protocolo  Modbus  é  implementado
principalmente  para  comunicação  entre BACnet  [10]  é um  protocolo  desenvolvido com o
equipamentos de controlo e/ou sensorização, mas é principal   objetivo   de   interligar  sistemas   de
apontado   como   sendo   possivelmente   o   mais automação   em   edifícios,  de   forma   a   estes
implementado em termos globais  em  aplicações  de comunicarem entre si, em especial para poderem ser
monitorização  Supervisory  control   and   data controlados por uma central de comando. O tipo de
acquisition (SCADA) [9]. dados trocado é denominado no protocolo de objeto,
Por  ser   um   protocolo   que   não   define   a   camada e é normalmente do tipo binário, de apenas um bit,
lógica,  dispositivos  Modbus  que   utilizem   interfaces ou analógico com mais bits, mas também podem ser
diferentes  não  podem ser ligados, a não ser que se trocados   dados   estruturados  ou   processos
computacionais  estando definidos no total 23 tipos tal como a PDU, o que dá vantagem ao Modbus  por
de   objetos   no   protocolo.  Para   cada   objeto  estão ser mais fácil de perceber e implementar [15].
definidas   propriedades   como   valor,   tipo   de   dados,
máximo, etc... E são estas propriedades que são lidas 6. Caso prático
ou   escritas.  Para   isso   estão   definidos   os   tipos   de
mensagens que se usam chamados de serviços. É apresentado o exemplo da rede que implementa
Este protocolo utiliza Ethernet ou RS485 tal como Modbus  sobre RS485  implementando o modo RTU,
o  Modbus  e os dispositivos podem ser endereçados ilustrada na figura 7.
como  slaves  com um endereço atribuído  ou através
de  endereço  IP  no caso de a comunicação ser feita
pela Internet [11].
Em   comparação   com   o  Modbus,   os  dados   estão
definidos  de maneira diferente e existem mais tipos
de   dados   definidos   pelo   BACnet,  tendo   cada   um
vários parâmetros.  O fato de o número de serviços
definidos   ser   menor   que   o   número   de   funções   do
Modbus, fica compensado pela existência dos vários
tipos   de   objetos.  Mas   quando   o   BACnet   é
implementado em RS485,  existe passagem de  token
e   à   vez   cada   dispositivo   funciona   como  master  da
rede, algo não definido como possível em Modbus.

5.2. Profibus

Existem   duas  versões   do   protocolo  Profibus.  A


versão  Profibus   DP  comunica   por  RS485  ou   fibra Figura 7. Rede RS485 na qual é
ótica com baudrates até 12 Mbps e cabos e conetores implementado Modbus RTU, com um
próprios  [12].   Esta   versão   também   implementa master e dois slaves [16].
passagem de  token, permitindo que  seja um  master Nesta  rede o  master  é  um  computador industrial
diferente a controlar a rede. Ao contrário da BACnet, Impact­E   30.  Neste   está   instalado   um  software
os  slaves  nunca   funcionam   como  master,   tal   como SCADA,   configurado   para   a   rede   e   para   os
um  master  nunca funciona como  slave.  A passagem dispositivos que estão ligados à mesma. Este tipo de
do token é feita apenas entre masters [13]. software tem interface gráfica e permite ao utilizador
A versão  Profibus PA  comunica  pela denominada configurar as mensagens que o master irá transmitir
Manchester   Bus   Power,   uma   ligação   própria   que quer para receber dados como para enviar, de forma
transmite não só as mensagens mas também energia fácil   e  interativa,   pelo   que  o   utilizador   muitas  das
para  alimentar  os  equipamentos   pelos   cabos.  Esta vezes  nem   precisa   de   saber   o   funcionamento   do
versão   foi   criada   para   ser   implementada   em protocolo Modbus. Pode­se visualizar na imagem que
ambientes  com   risco   de   explosão.  Enquanto   que   a é   utilizado   um   conversor   de   RS232   para   RS485   à
versão  Profibus DP  pode transmitir até 12 Mbps  a  o saída do computador, apesar de este ter uma saída
Profibus PA  transmite sempre a 31,25 kbps.  Ambas RS485.  O  uso   deste   tipo   de   conversores   é   comum
as versões apresentam cabos com cores próprias, o principalmente nos slaves, por exemplo quando estes
que   é   muito   prático,  para   se   poder   determinar são  servidores TCP/IP ou a interface do dispositivo
rapidamente que tipo de protocolo passa nos cabos for diferente.
especialmente   em   zonas   com   grande   densidade   de Os dois  slaves  desta rede  são módulos RU­87P8,
diferentes cabos. naturalmente  com   endereços   diferentes,  que   são
Comparando   com  Modbus,  o  Profibus  apresenta configurados   por   dois   botões   rotacionais  presentes
vantagens  em  termos  de interface pois  permite  ter na   frente   de   cada   módulo.  Os   dois   têm   interfaces
velocidades   de  comunicação   mais   rápidas  e  têm para   receção   de   sinais   do   tipo   4­20   mA  e   nestas
conectores e cabos próprios nomeadamente as cores interfaces estão ligados contadores de impulsos, que
e  o fato de a versão  Profibus PA  poder ser utilizada apesar de não estar explicito, devem funcionar como
em   ambientes   com   risco   de   explosão  [14].   No entradas analógicas ou seja Input Registers.
entanto o tipo de dados em Profibus é mais complexo
Assim é possível saber quanto é  medido  em cada https://www.schneider­electric.co.uk/  [Acedido:  8
um dos contadores a partir do computador, que pode de Maio de 2018].
estar instalado a uma grande distância dos  slaves  e
pode,  depois,  ser   guardado   no   computador  um [4]  History of  the Modbus protocol.  [documento]
ficheiro com os valores medidos ao longo do tempo Disponível   em:  https://w3.usa.siemens.com
   /  
ou  até mesmo estes dados  serem enviados para um [Acedido: 1 de Junho de 2018].
servidor remoto.
[5] Modbus.org, MODBUS over Serial Line 
7. Conclusões Specification and Implementation Guide V1.02. 20
de Dezembro de 2006. [pdf].
Ao   longo   de   toda   a   sua   existência   o   protocolo
Modbus  tem   sido   implementado   em   sistemas [6]  Modbus.org,  MODBUS   Messaging   on   TCP/IP
automáticos, de controlo remoto e de monitorização. Implementation   Guide   V1.0b.  24   de   Outubro   de
Talvez  a   maior  vantagem  que o  leva  a   ser  mais 2006. [pdf].
escolhido   para   implementação,  seja   a  sua
simplicidade.  Quando   é   necessário   se   implementar [7]  Modbus.org,  MODBUS   Application   Protocol
um protocolo de rede de campo, num dispositivo,  o Specification V1.1b3. 26 de Abril de 2012. [pdf].
fato do  Modbus  ser simples,  facilita  em  muito  pois
não requer um processo de aprendizagem longo. [8]  MODICON,  Modicon   Modbus   Protocol
Para além de todas as vantagens mencionadas ao Reference Guide. Junho 1996. [pdf].
longo   deste   documento,   como   existem  Function
codes que podem ser implementados de forma livre, [9]  Paul   Smart,  Why   Modbus   Matters:   An
o protocolo Modbus possibilita que  estes possam ser Introduction.  9   de   Fevereiro   de   2015.   [site]
utilizados   para  troca   de  dados   estruturados  com Disponível   em:  https://www.campbellsci.com
   /  
servidores  ou   requerer   que   estes   executem   ações [Acedido: 4 de Junho de 2018].
específicas  tendo   em   conta   o   seu   contexto  de
utilização. [10]  Control   Solutions,  BACnet   Tutorial   from
Este   protocolo  não   implementa   nenhum   tipo  de Control   Solutions.  2016.   [site]   Disponível   em:
codificação   para   segurança   da   informação https://www.csimn.com/  [Acedido:  8  de   Junho   de
transmitida pela rede, o que é por vezes apontado 2018].
como uma falha [17], mas tendo em conta o tipo de
implementação   para   a   qual   o   protocolo   foi [11]  H.   Michael   Newman,  BACnet   ­   A   Tutorial
desenvolvido, tal caraterística pode ser ignorada. Overview.  15  de  Outubro  de  1998.  [apresentação]
Por   ser   um   protocolo   que   de   forma   simples Disponível em: http://www.bacnet.org/.
permite a troca de dados essencialmente utilizados
em   redes   de   campo,   com   liberdade   de [12]  RF   Wireless   World,  Profibus   vs   Modbus­
desenvolvimento   de   funções,  com   custos   de difference   between   Profibus   and   Modbus.  2012.
instalação menores em comparação com outros e por [site]   Disponível   em:  http://www.rfwireless­
já estar tão presente nas várias indústrias [18] [19], world.com/ [Acedido: 8 de Junho de 2018].
este   protocolo  provavelmente  continuará   a   ser
implementado mesmo que não seja o melhor. [13] PROFIBUS Nutzerorganisation e. V., PROFIBUS
&   PROFINET   International,  PROFIBUS   System
8. Referências Description  Technology and Application.  Karlsruhe
Germany, Abril de 2016. [pdf].
[1]  Introduction   to   Fieldbus   Systems.  [pdf]
Disponível   em:  http://people.cs.pitt.edu/  [Acedido: [14]  James   Powell,  Profibus   and   Modbus:   a
5 de Junho de 2018]. comparison. Karlsruhe Germany, 2013. [pdf].

[2]  Jeff  Kordik,  Fundamental Guide to Industrial [15]  John   Rinaldi,  PROFIBUS   OBJECT   MODELS.
Networking. 2017. [pdf]. Edição.  29 de Dezembro de 2009. [site] Disponível
em: https://www.rtaautomation.com/.
[3]  Schneider Electric,  Modicon is now  Schneider
Electric.  2018.   [site]   Disponível   em:
[16]  Amplicon,  Process   Control   and   Automation
using Modbus Protocol. [pdf].

[17]  Nikko   Phongchit,  What  is  the  difference


between  BACnet,  Modbus  and  LonWorks?.  21   de
Julho   de   2016.   [site]   Disponível   em:
https://www.setra.com/.

[18]  Julie Gruenholz,  Why, In 2017, Are We Still


Using   Modbus?.  14   de   Setembro   de   2017.   [site]
Disponível em: https://www.hallam­ics.com/.

[19]  Using   MODBUS   for   Process   Control   and


Automation.  [pdf]  Disponível   em:
http://www.miinet.com/.

Você também pode gostar