Vous êtes sur la page 1sur 6

Viso geral sobre protocolos de comunicao

Conforme j mostramos no post Viso Geral-Redes Industriais, oprotocolo um dos trs


elementos que constituem uma rede, sendo os outros dois o meio fsico e o endereamento.
O protocolo pode ser comparado grosseiramente com a linguagem ou o idioma falado pelos
interlocutores interligados rede, bem como sendo as regras de comunicao (quem fala e
quando fala).
Um dos primeiros padres de comunicao existentes o RS-232 (meio fsico). Esse padro
inicialmente, englobava tambm partes do protocolo, pois as regras de comunicao eram
estabelecidas no meio fsico, atravs dos pinos CTS/RTS (Clear to Send, Request do Send)
e DTR/DSR (Data Terminal Ready, Data Set Ready). Contudo, estas funcionalidades e
regras foram sendo absorvidas pelos protocolos, de maneira que o meio fsico pde ser
simplificado em alguns casos.
No meio industrial, um dos primeiros protocolos desenvolvidos para comunicao entre
dispositivos foi o protocolo Modbus, criado nos anos 70 ( engraado dizer, mas do sculo
passado) pela empresa MODICON que atualmente pertence ao grupo Schneider Electric.
Esse precursor das redes industriais ainda muito utilizado, pois um bom padro, simples
e fcil de implementar e largamente integrado por uma imensa gama de fabricantes.
O protocolo Modbus
Em 1979, a MODICON publicou o padro Modbus como uma interface de comunicao em
rede ponto-multiponto, baseado numa arquitetura Mestre/Escravo. Nesta arquitetura, um
dispositivo, denominado mestre, envia mensagens (dataframes) para um ou mais escravos
da rede. Essas mensagens podem conter solicitaes de leitura de dados e comandos com
dados de escrita. Ao receber esses comandos, o escravo responder com mensagens
contendo dados solicitados, confirmaes de que os dados foram escritos ou ainda, cdigos
de erro.
O dataframe das mensagens Modbus mostrado na Figura 1.

Figura 1 Estrutura do dataframe Modbus
Basicamente, conforme mostrado na Figura 1, o dataframe composto por elementos
relativos ao meio fsico utilizado (Serial ou Ethernet) e por elementos especficos do
protocolo.
Para ficar mais claro, se o protocolo Modbus for utilizado em uma aplicao sobre um meio
serial (RS-232, RS-485 ou RS-422), os dispositivos possuem um endereo decimal, ento
o campo Endereamento adicional ser composto por 2 bytes com o endereo do
dispositivo de destino da mensagem (1 a 256 ou 01 a FF, em hexadecimal) e o campo
verificao de erros ser composto por 2 bytes de verificao de erros, gerado por um
algoritmo de CRC (Cyclic Redundancy Check, Verificao cclica de redundncia).
Informaes adicionais sobre esse algoritmo podem ser encontradas nesse link.
Se esse protocolo for aplicado sobre conexes TCP (sobre Ethernet), o campo
Endereamento adicional seria composto por um cabealho que contm basicamente o
endereo IP do dispositivo escravo (servidor) e o campo verificao de erros j no mais
existiria.
A velocidade de comunicao da rede Modbus no caso de redes seriais limitada,
geralmente, a 38.400bps ou 57.600bps. Muitas vezes, podemos encontrar equipamentos
que podem chegar a velocidades elevadas (at 115kbps), contudo, numa rede composta
por diversos equipamentos, a velocidade ficar limitada de acordo com os dispositivos
usados e de acordo com a extenso da rede.
Endereamento de memria e comandos
Os dispositivos escravos Modbus disponibilizam seus dados em pontos de memria que
sero lidos/escritos pelos comandos do protocolo. Estes comandos so direcionados para
a leitura/escrita de bits e palavras, conforme mostra a Figura 2.

Figura 2 Modelo de dados e comandos Modbus
Assim, de acordo com a necessidade, o mestre ser programado para enviar comandos, em
conjunto com os parmetros necessrios para efetuar a leitura ou escrita de valores na
memria do dispositivo.
A Figura 3 mostra um exemplo de uma transao Modbus executada com sucesso, ou seja,
um mestre envia uma solicitao que processada pelo escravo, que por sua vez, responde
com uma mensagem de confirmao.

Figura 3 Transao Modbus sem erro
Por outro lado, principalmente durante um start-up ou testes em uma rede, pode acontecer
que, ao configurar a solicitao num mestre, a rea de memria solicitada em um comando
no exista naquele escravo, ou ainda, que naquele escravo no esteja implementado um
determinado comando e, portanto, no haver resposta para o mesmo. Nesses casos, o
dispositivo escravo poder responder a uma solicitao indevida com uma mensagem de
erro, que indicar exatamente qual o problema verificado. Esta situao est ilustrada na
Figura 4.

Figura 4 Transao Modbus com mensagem de erro
Por fim, tambm pode ocorrer um equvoco de configuraes como por exemplo, erros de
endereamento de dispositivo (desejo ler um valor no dispositivo 5, mas configurei
fisicamente nesse dispositivo o endereo 6), erros de configurao de velocidade (a rede
trabalha a 19.200bps, mas o dispositivo est configurado a 9.600bps) ou mesmo paridade,
bem como problemas fsicos, como ruptura de um cabo de comunicao. Nesses casos, o
escravo estar indisponvel para responder qualquer solicitao do mestre (mesmo porque
ele no vai receber essa solicitao, devido aos problemas citados). Assim, entra em ao
o Timeout configurado no mestre. Ao disparar qualquer solicitao, o mestre inicia a
contagem de um tempo de timeout. Se uma resposta no for recebida dentro desste tempo,
o mestre detecta que o dispositivo no responde e pode tomar uma ao a partir disso. Esta
situao est ilustrada na Figura 5.

Figura 5 Transao Modbus com Timeout
Polling
Um mestre em uma rede Modbus RTU executa uma sequncia de comandos para a leitura e escrita
nos dispositivos da rede, ou seja, ele l e escreve dados no escravo 1, em seguida no escravo 2 e
assim por diante, at o fim da lista de comandos. Aps o ltimo comando, ele inicia novamente o
ciclo. Este processo chamado de Polling, que traduzido grotescamente, significa sondagem, ou
seja, o mestre Modbus executa a sondagem dos dispositivos da rede, de acordo com a sequncia de
comandos configurados em sua memria.
A Figura 6 mostra um exemplo de configurao de um dispositivo Modbus Master. Observe que
existe toda uma configurao da porta serial (Baud Rate, controle de fluxo, paridade, etc.), bem
como do intervalo de Poll, ou seja, o intervalo entre os comandos que, nesse caso tambm o
mesmo tempo de Timeout. A tabela apresentada nesta mesma figura, a tabela de Polling do mestre,
onde aparecem comandos de leitura e escrita (coluna Cmd Type) para dois dispositivos com
endereos 1 e 2.

Figura 6 Exemplo de configurao de um Mestre Modbus
Concluso Protocolo Modbus
Para conclurmos esta parte, o protocolo Modbus o mais difundido e possui caractersticas
interessantes para o uso em equipamentos industriais. Quando o mesmo funciona sobre redes seriais,
existe uma limitao em termos de velocidade, o que deve ser avaliado quando da aplicao. A
possibilidade de uso deste protocolo sobre Ethernet (Modbus TCP), deu uma nova roupagem,
possibilitando a utilizao do mesmo dentro de uma infraestrutura muito comum atualmente no meio
industrial. Por ter uma implementao simples e utilizao de hardware e meios fsicos no
especficos, este protocolo possibilita a sua implementao a partir de qualquer PC padro,
utilizando qualquer linguagem de programao que possibilite manipulao da porta serial (Modbus
RTU) ou sockets (Modbus TCP), tais como C, C++, VB, Java, dentre outras.
Exemplos de utilizao do VB para esse caso podem ser encontrados no site www.modbus.pl.
Outras informaes sobre o protocolo modbus podem ser encontradas no site da
organizao www.modbus-ida.org, fazendo o download da especificao aqui.

Vous aimerez peut-être aussi