segunda-feira, 1 de setembro de 2014

Aula 35 - Protocolo de rede Modbus

A rede Modbus foi desenvolvida com o objetivo de permitir a interligação de dispositivos de controle, como controladores programáveis e computadores, normalmente do tipo PC.
A Modicon introduziu o protocolo Modbus no mercado em 1979 . A rede Modbus está direcionada para a comunicação entre equipamentos de controle. O protocolo define um conjunto de mensagens que permitem ler e escrever em variáveis remotas (bits/words de memória interna, linha de entrada e saída).
O MODBUS TCP/IP é usado para comunicação entre sistemas de supervisão e controladores lógicos programáveis. O protocolo Modbus é encapsulado no protocolo TCP/IP e transmitido através de redes padrão ethernet com controle de acesso ao meio por CSMA/CD.
O MODBUS PLUS é usado para comunicação entre si de controladores lógicos programáveis, módulos de E/S, chaves de partida eletrônica de motores, interfaces homem máquina etc. O meio físico é o RS-485 com taxas de transmissão de 1 Mbps, controle de acesso ao meio por HDLC (High Level Data Link Control).
O MODBUS PADRÃO é usado para comunicação dos CLPs com os dispositivos de entrada e saída de dados, instrumentos eletrônicos inteligentes (IEDs) como relés de proteção, controladores de processo, atuadores de válvulas, transdutores de energia e etc.
O meio físico é o RS-232 ou RS-485 em conjunto com o protocolo mestre-escravo.
Durante a comunicação em uma rede Modbus, o protocolo determina como o dispositivo conhecerá seu endereço, como reconhecerá uma mensagem endereçada para ele, como determinar o tipo de ação a ser tomada e como extrair o dado ou outra informação qualquer contida na mensagem. Se uma resposta é necessária, como o dispositivo construirá uma mensagem e a enviará.
O mestre pode endereçar mensagens para um escravo individual ou enviar mensagens para todos (broadcast). Os escravos retornam um a mensagem somente para as consultas endereçadas especificamente para ele. As mensagens broadcast não geram respostas.
Mais concretamente, o protocolo Modbus define: 
• os pedidos que os dispositivos de controlo podem enviar a outros dispositivos;
• como é que estes respondem a esses pedidos;
• a forma como são tratados os erros.
O protocolo Modbus é baseado em um modelo de comunicação mestre-escravo, onde um único dispositivo, o mestre, pode iniciar transações denominadas queries. O demais dispositivos da rede (escravos) respondem, suprindo os dados requisitados pelo mestre ou executando uma ação por ele comandada. Geralmente o mestre é um sistema supervisório e os escravos são controladores lógico programáveis. Os papéis de mestre e escravo são fixos, quando se utiliza comunicação serial, mas em outros tipos de rede, um dispositivo pode assumir ambos os papéis, embora não simultaneamente.
Os dispositivos ligados a uma rede Modbus trocam dados, através de técnica do tipo Master-Slave onde:
• apenas um dispositivo (designado por master) pode iniciar as transações.
• os outros dispositivos (designados por slaves) respondem enviando ao master a informação pedida (no caso de um pedido de leitura) ou executando a ação pedida pelo master (no caso de um pedido de escrita).
As mensagens enviadas pelo master incluem os seguintes campos:
•endereço do slave a que se destina a mensagem;
•código da ação a executar (leitura/escrita, bit/word, ....);
•eventuais dados (no caso das operações de escrita);
•código para controle de erro.
As respostas provenientes dos slaves contém os seguintes campos:
•confirmação da ação efetuada;
•eventuais dados (no caso das operações de leitura);
•código para controle de erro.
Na mensagem de consulta, o código de função informa ao dispositivo escravo com o respectivo endereço, qual a ação a ser executada. Os bytes de dados contêm informações para o escravo, por exemplo, qual o registrador inicial e a quantidade de registros a serem lidos. O campo de verificação de erro permite ao escravo validar os dados recebidos.
Na mensagem de resposta, o código de função é repetido de volta para o mestre. Os bytes de dados contêm os dados coletados pelo escravo ou o seu estado. Se um erro ocorre, o código de função é modificado para indicar que a resposta é uma resposta de erro e os byte de dados contém um código que descreverá o erro. A verificação de erro permite o mestre validar os dados recebidos.
todo o tráfego é gerido pelo master. De fato, os slaves apenas podem transmitir uma mensagem depois de terem recebido um pedido do master.