28
Modbus TCP IP Trabalho em equipe elaborado para a obtenção parcial de créditos, na disciplina Redes de Comunicação Industrial do 10º período do curso de Graduação em Engenharia Elétrica - noturno, sob responsabilidade do Prof. Mauro.

Trabalho - Modbus TCP IP

Embed Size (px)

Citation preview

Page 1: Trabalho - Modbus TCP IP

Modbus TCP IP

Trabalho em equipe elaborado para a obtenção parcial de créditos, na disciplina Redes de Comunicação Industrial do 10º período do curso de Graduação em Engenharia Elétrica - noturno, sob responsabilidade do Prof. Mauro.

Page 2: Trabalho - Modbus TCP IP

Modbus TCP IP

ElcivanderElderJailsonKelyLucianoMaurício

Page 3: Trabalho - Modbus TCP IP

Introdução

O protocolo Modbus foi criado em 1979 pela Modicon uma empresa do grupo Schneider Electric. Mais tarde a Schneider Electric, decidiu disponibilzar o protocolo Modbus a toda a comunidade. Desta forma, foi criado o website www.Modbus-IDA.org em conjunto com um grupo de fabricantes onde é possível fazer o download do código fonte do protocolo Modbus bem como obter ajuda na resolução de questões relacionadas com o protocolo.

Page 4: Trabalho - Modbus TCP IP

Introdução

O protocolo MODBUS apresenta algumas variantes: Modbus RTU (Remote Terminal Unit), a variante mais comum, e a base de

outras, utiliza o RS-232 (EIA/TIA 232) ou RS-485 (EIA/TIA-485) como meio físico de transmissão. A transmissão de dados é realizada em hexadecimal onde apenas é permitido a existência de um único master podendo ter vários slaves.

Modbus ASCII (American Standard Code for Information Interchange) também utiliza o RS-232 e RS-485 como meio de transmissão. A transmissão dos dados neste caso é realizada em formato ASCII. Apenas é permitida a existência de um master podendo ter vários slaves.

Modbus TCP/IP (Transmission Control Protocol, Internet Protocol) utiliza, como meio físico de transmissão uma rede ethernet. Os dados são transmitidos em formato hexadecimal. Esta variante permite utilizar vários masters e vários slaves numa mesma rede.

Modbus Plus é uma variante ainda proprietária da Schneider Electric. Neste protocolo é também possível utilizar vários masters e vários slaves. O meio físico utilizado é o RS485. Este protocolo não é abordado neste documento.

Page 5: Trabalho - Modbus TCP IP

Especificação do Protocolo de Aplicação

O protocolo Modbus permite uma fácil implementação de comunicações em vários tipos de arquiteturas de rede. Podem ser utilizados vários meios físicos, tais como RS232, RS485 e ethernet.

Page 6: Trabalho - Modbus TCP IP

Especificação do Protocolo de Aplicação

Page 7: Trabalho - Modbus TCP IP

Especificação do Protocolo de Aplicação

O protocolo Modbus define um PDU independente do meio físico a utilizar. A construção do protocolo Modbus em determinado barramento ou rede pode introduzir campos adicionais na Application Data Unit (ADU).

Page 8: Trabalho - Modbus TCP IP

Especificação do Protocolo de Aplicação

A funcion code indica ao server que ação deve realizar. O campo funtion code no PDU tem o tamanho de 1 (um) byte. São válidos códigos entre 1 e 255 (o códigos entre 128 e 255 está reservado para funções de exception response - funções de resposta para indica erros na mensagem recebida).

Page 9: Trabalho - Modbus TCP IP

Especificação do Protocolo de Aplicação

O campo data das mensagens enviadas do client para o server contém informação adicional que o server utiliza para levar a cabo a tarefa indicada pela function code. Este campo pode conter endereços de saídas e/ou entradas, a quantidade de itens a tratar, etc. O campo data pode não existir caso a function code não necessite deste.

Page 10: Trabalho - Modbus TCP IP

Especificação do Protocolo de Aplicação

O protocolo Modbus define três PDU, a saber: 1. Modbus request, mensagem enviada do client

para o server a solicitar determinada informação ou para executar uma tarefa qualquer;

2. Modbus response, mensagem enviada do server para o client com a informação pedida pelo client ou a confirmação de que a tarefa solicitada será executada;

3. Modbus exception response, mensagem enviada do servidor para o client com informação de que não é possível tratar o pedido solicitado.

Page 11: Trabalho - Modbus TCP IP

Especificação do Protocolo de Aplicação

No protocolo Modbus existem três tipos de function codes, a saber:

1. Public function codes. Funções definidas e garantidas como únicas sendo validadas pela comunidade Modbus_IDA. Estas funções são standard pelo que devem estar implementadas em todo o equipamento que utilize o protocolo Modbus.

2. User-defined function codes. Funções definidas pelo utilizador. Estas funções só estarão disponíveis nos equipametos onde o utilizador as implementar.

3. Reserved function codes. Funções utilizadas por alguns fabricantes, não estão disponíveis para o utilizador.

Page 12: Trabalho - Modbus TCP IP

Especificação do Protocolo de Aplicação

Quando um client envia um request para um server o client espera uma resposta normal. Após o request do client, pode ocorrer uma das quatro situações abaixo:

1. Se o server recebe um request sem erros de comunicação e pode tratá-lo normalmente então o server envia ao client uma resposta normal.

2. Se o server não recebe um determinado request então também não enviará qualquer resposta. Desta forma o client, após um determinado tempo, verificará que o request não terá sido tratado pelo server.

3. Se o server recebe um request e detecta um erro de comunicação, então não será enviado qualquer resposta. Desta forma o client, após um determinado tempo, verificará que o request não terá sido tratado pelo server.

4. Se o server recebe um request e não é detectado qualquer erro de comunicação mas não consegue executá-lo então é enviada uma resposta (exception response) ao client com informação desse erro.

Page 13: Trabalho - Modbus TCP IP

Especificação do Protocolo de Aplicação

No campo function code, numa resposta normal, o server envia o mesmo function code da request no function code da response. Todas as function codes têm o bit mais significativo (MSB – Most Significant Bit) a 0 (zero). Nas mensagens de exception response o server coloca o MSB igual a 1 (um). Desta forma as function codes dos request apenas diferem das function codes das exception responses no MSB. Assim o client ao receber uma resposta com o MSB do function code igual a 1 (um) sabe que é uma resposta de erro e então irá procurar no campo data o respectivo código da excepton code.

No campo data, numa resposta normal, o server envia as informações pedidas pelo client. Numa mensagem exception response o server envia o código do erro.

Page 14: Trabalho - Modbus TCP IP

Descrição da frame do Modbus

A construção da mensagem do protocolo Modbus em determinado meio físico é realizada com a introdução de campos adicionais ao PDU. O client que inicia a comunicação constrói a PDU ao qual adiciona o campo address field com o endereço do slave para o qual pretende enviar a mensagem e ainda acrescenta o campo de verificação de erros CRC ou LRC (Cyclical Redundancy Checking, Longitudinal Redundancy Checking).

Page 15: Trabalho - Modbus TCP IP

Descrição da frame do Modbus

Existem 4 campos numa frame em que é semelhante quando enviado pelo client ou pelo server.

1. Address field. Quando a PDU é enviada pelo client este é o endereço do slave para qual a mensagem é destinada. Quando o client pretende enviar a mensagem para todos os slaves do barramento utiliza o endereço 0 (zero), endereço de broadcast. Quando a mensagem é enviada pelo slave este endereço é o seu próprio endereço, desta forma o client ao receber esta mensagem sabe qual a origem desta.

2. Function code. Esta é a função que o client indica ao slave para executar. Na resposta do slave este campo é igual quando não há erros na mensagem. Quando o slave não consegue executar determinada função pedida pelo client então na resposta o slave coloca um 1 (um) no MSB do function code.

3. Data. Na mensagem enviada pelo client neste campo é colocada a informação adicional ao campo anterior. Quando da resposta do server neste campo é colocada a informação pedida pelo client. Quando o server envia uma exception response neste campo é colocado o respectivo código de erro. Este campo pode não existir caso a function code não necessite de dados adicionais.

4. CRC ou LRC (Cyclical Redundancy Checking, Longitudinal Redundancy Checking). Campo para verificação de erros na frame. Este campo é calculado quando do envio da mensagem e verificado durante a recepção da mensagem.

Page 16: Trabalho - Modbus TCP IP

Modbus sobre TCP/IP

De forma a aumentar a velocidade do protocolo Modbus bem como incrementar a sua versatibilidade foi desenvolvido uma nova variante que pudesse utilizar a ethernet como meio físico. Assim nasceu o protocolo Modbus TCP/IP que acrescenta à simplicidade do Modbus as vantagens do TCP/IP sobre ethernet. Esta variante, lançada em 1999, foi o primeiro protocolo aberto a utilizar o TCP/IP sobre ethernet.

Page 17: Trabalho - Modbus TCP IP

Modbus sobre TCP/IP

Seguem abaixo algumas vantagens do protocolo TCP/IP:

1. O TCP/IP é um protocolo disponível no mundo todo que você irá provavelmente usar no trabalho.

2. O TCP/IP é uma referência útil na compreensão de outros protocolos porque inclui elementos que são representativos de outros protocolos.

3. O TCP/IP é importante porque o roteador o usa como uma ferramenta de configuração.

Page 18: Trabalho - Modbus TCP IP

Modbus sobre TCP/IP

O TCP é um protocolo confiável, orientado para conexão; fornece controle de fluxo através de janelas móveis e a confiabilidade fornecendo números de seqüência e confirmações. O TCP envia novamente tudo que não é recebido e fornece um circuito virtual entre os aplicativos do usuário final. A vantagem do TCP é que ele oferece a entrega garantida dos segmentos.

Page 19: Trabalho - Modbus TCP IP

Modbus sobre TCP/IP

Comparando o TCP/IP com o OSI:

Page 20: Trabalho - Modbus TCP IP

Modbus sobre TCP/IP

Modbus TCP/IP no modelo OSI:

Page 21: Trabalho - Modbus TCP IP

Modbus sobre TCP/IP

A utilização da ethernet como meio físico fez com que o Modbus passasse a fronteira da planta industrial ou das salas técnicas em edifícios. Com este novo meio físico é possível utilizar o Modbus em todo o local onde exista rede ethernet, isto é o Modbus chega agora a todo o local onde exista um computador com ligação à rede ethernet ou internet. A acrescentar a estas vantagens físicas há o facto dos protocolos Modbus serem abertos não havendo pagamento de licenças a qualquer entidade.

Page 22: Trabalho - Modbus TCP IP

Modbus sobre TCP/IP

Havendo determinado equipamento ligado a uma rede ethernet é possível ter uma diversidade de serviços adicionais, tais como:

1. Serviço de email: o equipamento pode enviar para uma lista de email’s informações de eventos, avarias, alarmes, etc. Desta forma a necessidade de uma intervenção técnica terá lugar mais rapidamente.

2. Acesso a uma base de dados para registro de eventos e/ou avarias. Desta forma a capacidade de armazenamento do histórico não está limitada à capacidade de armazenamento do equipamento.

3. Possibilidade de existir vários pontos de monitoria através de computadores com SCADA (Supervisory Control And Data Acquisition).

4. Se esta rede ethernet tiver ligação à internet então ainda é possível fazer qualquer tarefa em qualquer ponto do mundo como se estivesse no mesmo edifício do equipamento.

Page 23: Trabalho - Modbus TCP IP

Modbus sobre TCP/IP

Em Modbus TCP/IP um campo específico é acrescentado ao PDU do Modbus. Este campo tem o nome de “MBAP Header” (Modbus Application Protocol Header).

Page 24: Trabalho - Modbus TCP IP

Modbus sobre TCP/IP

Em Modbus TCP/IP não é utilizado verificação de erros na frame de igual forma ao CRC do Modbus RTU ou LRC do Modbus ASCII. O Modbus TCP/IP deixa a verificação de erros na frame a cargo dos protocolos TCP/IP e ethernet.

Este header (cabeçalho) contém informações diferentes quando comparadas com o ADU utilizada no Modbus RTU em linha série:

1. Sobre TCP, no MBAP header, é incluída informação do comprimento da frame para que o receptor possa identificar os limites da mensagem mesmo que esta tenha sido dividida em vários pacotes.

2. O endereço do slave é substituído por um unit identifier no MBAP Header; 3. Todos os request e responses são construídos de tal forma que o receptor

consiga verificar que a mensagem terminou. Para os function codes onde o PDU tem um comprimento fixo, apenas o function code é suficiente. Para function codes que necessitam de enviar dados adicionais na request ou na response o campo data inclui um byte de contagem;

Page 25: Trabalho - Modbus TCP IP

Fabricantes

Page 26: Trabalho - Modbus TCP IP

Fabricantes

Page 27: Trabalho - Modbus TCP IP

Conclusão

O Modbus é um protocolo master/slave. Apenas o master pode estabelecer uma comunicação. Aos slaves apenas é permitido responder ás solicitações do master. Quando um slave tem informações para disponibilizar a outros slaves este tem de esperar que o master lhe questione e é este que distribuirá a informação pelos outros slaves. Com a variante Modbus TCP/IP esta limitação é ultrapassada uma vez que todo o equipamento pode ter capacidade de master e slave simultaneamente. A solução TCP/IP pode não ser a melhor para algumas aplicações que exigem tempos de resposta não compatíveis com os fornecidos pelo TCP/IP.

Page 28: Trabalho - Modbus TCP IP

Conclusão

Seguem abaixo algumas características do protocolo Modbus TCP/IP:1. Desde que não há diferenças entre mestre e escravo, qualquer nó com uma

porta TCP pode acessar qualquer outro nó, possibilitando a implementação de comunicação ponto-a-ponto entre os antigos escravos.

2. O encapsulamento TCP não modificou a estrutura básica da mensagem original do Modbus. As diferenças estão na interpretação do endereço e na verificação de erro.

3. Não são usados os campos CRC ou LRC para verificação de erro. São usados os mecanismos já existentes do TCP/IP e protocolo Ethernet.

4. Ao usar pacotes TCP/IP, o modbus/TCP permite acesso remoto via a estrutura das redes corporativas e mesmo a Internet, o que pode ser uma vantagem e um risco. LAN e internet permitem operações remotas, mas requer que salvaguardas sejam usadas para prevenir acesso não autorizado.

5. O Modbus/TCP tem sido criticado por usar o “tedioso” protocolo TCP com suas intermináveis confirmações para iniciar uma sessão e verificar a integridade dos pacotes enviados.

6. Os críticos também chamam a atenção para a impossibilidade de priorização de mensagens, e excesso de tráfego devido a impossibilidade de broadcasts.