Você está na página 1de 12

REDES DE COMUNICAO INDUSTRIAL Padres Industriais

PADRO: MODBUS
A rede Modbus uma rede relativamente simples, desenvolvida com o objetivo de permitir a interligao de dispositivos de controle, como controladores programveis e computadores, normalmente do tipo PC. A Modicon, hoje Schneider Electric, introduziu o protocolo Modbus no mercado em 1979. A Schneider ajudou no desenvolvimento de uma organizao de usurios e desenvolvedores independente chamada ModbusIDA que uma organizao com fins no lucrativos agrupando usurios e fornecedores de dispositivos de automao que visam a adoo do pacote de protocolos Modbus e a evoluo da arquitetura de endereamento para sistemas de automao distribudos em vrios segmentos de mercado. A ModbusIDA fornece a infra-estrutura para obter e compartilhar informao sobre os protocolos, suas aplicaes e a certificao de dispositivos visando simplificar a implementao pelos usurios. A rede Modbus est direcionada para a comunicao entre equipamentos de controle. O respectivo protocolo define um conjunto de mensagens que permitem ler e escrever em variveis remotas (bits/words de memria interna, linha de entrada e sada).

Figura 1. O MODBUS TCP/IP usado para comunicao entre sistemas de superviso e controladores lgicos programveis. O protocolo Modbus encapsulado no protocolo TCP/IP e transmitido atravs de redes padro ethernet com controle de acesso ao meio por CSMA/CD.

Prof. Marcelo Saraiva Coelho

REDES DE COMUNICAO INDUSTRIAL Padres Industriais

O MODBUS PLUS usado para comunicao entre si de controladores lgicos programveis, mdulos de E/S, chaves de partida eletrnica de motores, interfaces homem mquina etc. O meio fsico o RS-485 com taxas de transmisso de 1 Mbps, controle de acesso ao meio por HDLC (High Level Data Link Control). O MODBUS PADRO usado para comunicao dos CLPs com os dispositivos de entrada e sada de dados, instrumentos eletrnicos inteligentes (IEDs) como rels de proteo, controladores de processo, atuadores de vlvulas, transdutores de energia e etc. o meio fsico o RS-232 ou RS-485 em conjunto com o protocolo mestre-escravo.

MODBUS PADRO
Durante a comunicao em uma rede Modbus, o protocolo determina como o dispositivo conhecer seu endereo, como reconhecer uma mensagem endereada para ele, como determinar o tipo de ao a ser tomada e como extrair o dado ou outra informao qualquer contida na mensagem. Se uma resposta necessria, como o dispositivo construir uma mensagem e a enviar. O mestre pode enderear mensagens para um escravo individual ou enviar mensagens para todos (broadcast). Os escravos retornam um a mensagem somente para as consultas endereadas especificamente para ele. As mensagens broadcast no 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 so tratados os erros. O protocolo Modbus baseado em um modelo de comunicao mestre-escravo, onde um nico dispositivo, o mestre, pode iniciar transaes denominadas queries. O demais dispositivos da rede (escravos) respondem, suprindo os dados requisitados pelo mestre ou executando uma ao por ele comandada. Geralmente o mestre um sistema supervisrio e os escravos so controladores lgico programveis. Os papis de mestre e escravo so fixos, quando se utiliza comunicao serial, mas em outros tipos de rede, um dispositivo pode assumir ambos os papis, embora no simultaneamente. Os dispositivos ligados a uma rede Modbus trocam dados, atravs de tcnica do tipo Master-Slave onde: apenas um dispositivo (designado por master) pode iniciar as transaes. os outros dispositivos (designados por slaves) respondem enviando ao master a informao pedida (no caso de um pedido de leitura) ou executando a ao pedida pelo master (no caso de um pedido de escrita). 2
Prof. Marcelo Saraiva Coelho

REDES DE COMUNICAO INDUSTRIAL Padres Industriais

Figura 2. As mensagens enviadas pelo master incluem os seguintes campos: endereo do slave a que se destina a mensagem; cdigo da ao a executar (leitura/escrita, bit/word, ....); eventuais dados (no caso das operaes de escrita); cdigo para controle de erro. As respostas provenientes dos slaves contm os seguintes campos: confirmao da ao efetuada; eventuais dados (no caso das operaes de leitura); cdigo para controle de erro. Na mensagem de consulta, o cdigo de funo informa ao dispositivo escravo com o respectivo endereo, qual a ao a ser executada. Os bytes de dados contm informaes para o escravo, por exemplo, qual o registrador inicial e a quantidade de registros a serem lidos. O campo de verificao de erro permite ao escravo validar os dados recebidos. Na mensagem de resposta, o cdigo de funo repetido de volta para o mestre. Os bytes de dados contm os dados coletados pelo escravo ou o seu estado. Se um erro ocorre, o cdigo de funo modificado para indicar que a resposta uma resposta de erro e os byte de dados contm um cdigo que descrever o erro. A verificao de erro permite o mestre validar os dados recebidos.

Figura 3.
Prof. Marcelo Saraiva Coelho

REDES DE COMUNICAO INDUSTRIAL Padres Industriais

Note-se que todo o trfego gerido pelo master. De fato, os slaves apenas podem transmitir uma mensagem depois de terem recebido um pedido do master.

MODOS DE TRANSMISSO
Existem dois modos de transmisso: ASCII (American Code for Informastion Interchange) e RTU (Remote Terminal Unit), que so selecionados durante a configurao dos parmetros de comunicao. ASCII Cada byte de mensagem enviado como dois caracteres ASCII. Durante a transmisso, intervalos de at um segundo entre caracteres so permitidos, sem que a mensagem seja truncada. Algumas implementaes fazem uso de tais intervalos de silncio como delimitadores de fim de mensagem, em substituio seqncia cr+lf. 10 bits por byte: 1 start bit 7 bits de dados LSb enviado primeiro 1 bit de paridade (par/mpar) + 1 stop bit 0 bit de paridade + 2 stop bits Campo de Checagem de Erros: LRC Longitudinal Redundancy Check Start : (0x3A) Endereo 2 Chars Funo 2 Chars Dados N Chars LRC 2 Chars END CRLF

O modo ASCII permite intervalos de tempo de at um segundo entre os caracteres sem provocar erros, mas sua mensagem tpica tem um tamanho duas vezes maior que a mensagem equivalente usando o modo RTU. RTU Cada byte de mensagem enviado como um byte de dados. A mensagem deve ser transmitida de maneira contnua, j que pausas maiores que 1,5 caractere provocam truncamento da mesma. 11 bits por byte: 1 start bit 8 bits de dados LSb enviado primeiro 1 bit de paridade (par/mpar) + 1 stop bit 0 bit de paridade + 2 stop bits Campo de Checagem de Erros: CRC 4
Prof. Marcelo Saraiva Coelho

REDES DE COMUNICAO INDUSTRIAL Padres Industriais

Start Silncio 3.5 chars

Endereo 8 bits

Funo 8 bits

Dados N x 8 bits

CRC 16 bits

END Silncio 3.5 chars

O modo RTU transmite a informao com um menor nmero de bits, mas a mensagem deve ter todos os seus caracteres enviados em uma seqncia contnua. O modo RTU tambm chamado de ModBus-B ou Modbus Binario e o modo preferencial.

Figura 4.

FORMATO DA MENSAGEM
As mensagens Modbus/RTU tem o seguinte formato:

Figura 5. Cada mensagem inicia-se por um perodo de silncio na linha de pelo menos o tempo de transmisso de 3,5 caracteres. Se for recebida uma nova mensagem com intervalo de tempo inferior, o dispositivo considerar que se trata da continuao da mensagem anterior (o que dar origem a um erro de CRC).

Figura 6.

Prof. Marcelo Saraiva Coelho

REDES DE COMUNICAO INDUSTRIAL Padres Industriais

CAMPO ENDEREO O campo endereo contm 8 bits e sua faixa de endereos vlidos vai de 0 a 247 (0x00 a 0xf7 hexadecimal). Os endereos vlidos para os slaves so 1 a 247 (o endereo 0 corresponde ao endereo de broadcast reconhecido por todos os slaves). O master enderea um determinado slave colocando o respectivo nmero no campo endereo da mensagem. Por seu lado, o slave, quando responde, tambm coloca o seu prprio nmero no campo endereo da mensagem que envia ao master. CAMPO FUNO O campo funo contm 8 bits. Este campo especifica a ao a executar, por exemplo: ler um conjunto de linhas de entradas; escrever um conjunto de registos de memria; carregar ou verificar o programa em execuo. Os cdigos de funo vlidos so 1-255, mas cada modelo apenas suporta um subconjunto das funes Modbus.

Figura 7. Quando o slave executa corretamente uma funo, retorna uma mensagem ao master contendo, no campo funo, o cdigo da funo executada. No caso de ter ocorrido um erro, o slave retorna, no campo funo, um cdigo da funo com o bit mais significativo em 1. Exemplo: Se o master enviou uma mensagem com o cdigo de funo 03 e ocorreu um erro, o slave retornar: 1000 0011 (Hexadecimal 83) no campo funo e um cdigo de erro no campo data indicando o tipo de erro ocorrido. 6
Prof. Marcelo Saraiva Coelho

REDES DE COMUNICAO INDUSTRIAL Padres Industriais

Nota: O subsequente tratamento do erro compete ao programa do master. CAMPO DADOS O campo dados contm informao adicional necessria execuo das funes. Por exemplo, no caso de se tratar de uma funo de leitura de n bits de memria, o campo dados especifica o endereo do primeiro bit e o nmero de bits a ler a partir desse endereo. No caso da funo ser executada normalmente, o campo dados da resposta conter os dados pedidos pelo master. No caso de ter ocorrido um erro, este campo conter o respectivo cdigo (conforme referido anteriormente). CAMPO CRC O campo CRC contm um cdigo para controlo de erros. Os cdigos CRC podem ser gerados segundo vrios algoritmos. Como se viu, cada mensagem Modbus constituda por uma sequncia de bytes. No caso de transmisso atravs de linha srie, cada um desses bytes transmitido como uma sequncia de bits. A sequncia de bits correspondentes a um byte, conforme se especificou, ou no, controle de paridade, so as seguintes. A verificao de erro efetuada opcionalmente pela paridade de cada byte transmitido e obrigatoriamente pelo mtodo LRC ou CRC sobre toda a mensagem. O LRC descarta os caracteres de inicio e fim de mensagem. O CRC descarta os bits de inicio, paridade e parada de cada byte. O dispositivo mestre espera uma resposta por um determinado tempo antes de abortar uma transao (timeout). O tempo deve ser longo o suficiente para permitir a resposta de qualquer escravo. Se ocorre um erro de transmisso, o escravo no construir a resposta para o mestre. Ser detectado um timeout e o mestre tomar as providncias programadas.

Figura 8.

Prof. Marcelo Saraiva Coelho

REDES DE COMUNICAO INDUSTRIAL Padres Industriais

FUNES MODBUS
Todo dispositivo em uma rede Modbus deve ter a sua memria dividida em registradores de 16 bits numerados conforme o modelo apresentado. A diviso baseada na estrutura de memria de um CLP: Sadas discretas para os atuadores ON- OFF utilizam um bit. Cada registrador comporta 16 sadas. Entradas discretas para os sensores ON- OFF utilizam um bit. Cada registrador comporta 16 entradas. Entradas analgicas utilizam registradores de 16 bits para os valores obtidos por conversores A/D a partir dos sinais dos sensores analgicos. Registradores de Memria com 16 bits para os valores utilizados internamente no CLP. A identificao dos comandos (funes) de leitura e escrita so diferentes de acordo com o tipo de dado a ser lido ou escrito. A funo 1 efetua a leitura do estado das sadas discretas. A funo 5 efetua a escrita de uma nica sada discreta. A funo 15 efetua a escrita de mltiplas sadas discretas. A funo 2 efetua a leitura do estado das entradas discretas. A funo 4 efetua a leitura dos valores das entradas analgicas. A funo 3 efetua a leitura dos valores dos registradores de memria. A funo 6 efetua a escrita de um valor em um registrador de memria. A funo 16 efetua a escrita de mltiplos valores em registradores de memria.

Prof. Marcelo Saraiva Coelho

REDES DE COMUNICAO INDUSTRIAL Padres Industriais

Figura 9. EXEMPLO DE LEITURA DOS VALORES DOS REGISTRADORES DE MEMRIA O Mestre solicita uma leitura dos registradores 40108 a 40110 do elemento escravo 06. A mensagem especifica o endereo inicial como 0107 (006Bh) O primeiro registrador o 40001, mas endereado como 0. Portanto se precisamos da informao do endereo 40108, devemos enderea-lo como 107, que transformado em hexadecimal ser 6B.

Figura 10. Os registradores utilizam 16 bits para codificar a informao. Estes 16 bits so enviados em dois bytes separados (HIGH BYTE e LOW BYTE).

Prof. Marcelo Saraiva Coelho

REDES DE COMUNICAO INDUSTRIAL Padres Industriais

Figura 11. O escravo repete o cdigo da funo indicando uma resposta normal. A quantidade de bytes especifica quantos itens esto sendo retornados. O valor 63h enviado como um byte no modo RTU (0110 0011). O mesmo valor enviado no modo ASCII necessita de dois bytes, mas so contabilizados como apenas um. 6 (011 0110) e 3 (011 0011). As respostas indicam: Registro 40108: 02 2Bh Registro 40109: 00 00h Registro 40110: 00 63h = 555 =0 = 99

Figura 12.

10

Prof. Marcelo Saraiva Coelho

REDES DE COMUNICAO INDUSTRIAL Padres Industriais

MODBUS PADRO
Lanado em 1999, foi o primeiro protocolo aberto a usar ethernet e TCP-IP. Desde que no h diferenas entre mestre e escravo, qualquer n com uma porta TCP pode acessar qualquer outro n, possibilitando a implementao de comunicao ponto-a-ponto entre os antigos escravos. A mensagem encapsulada em um pacote TCP/IP. Os comandos so enviados por um cliente usando uma mensagem TCP/IP para a porta 502 de um servidor, que responde com o dado desejado encapsulado em um pacote TCP/IP. O encapsulamento TCP no modificou a estrutura bsica da mensagem original do Modbus. As diferenas esto na interpretao do endereo e na verificao de erro.

Figura 13. No endereamento, o campo do endereo do escravo foi substitudo por um nico byte chamado de Identificador nico que pode ser usado para comunicao via dispositivos como gateways e briges que usam um nico endereo IP para integrar vrios dispositivos. No so usados os campos CRC ou LRC para verificao de erro. So usados os mecanismos semelhantes do j existentes do TCP/IP e protocolo Ethernet. 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 operaes remotas, mas requer que salvaguardas sejam usadas para prevenir acesso no autorizado. O Modbus/TCP tem sido criticado por usar o tedioso protocolo TCP com suas interminveis confirmaes para iniciar uma sesso e verificar a integridade dos pacotes enviados. Os crticos tambm chamam a ateno para a impossibilidade de priorizao de mensagens, excesso de trfego devido a impossibilidade de broadcasts e pelo indeterminismo.

Prof. Marcelo Saraiva Coelho

11

REDES DE COMUNICAO INDUSTRIAL Padres Industriais

EXERCCIO SOBRE MODBUS


Analisando a figura, responda: Qual a capacidade mxima de dispositivos escravos possveis de existirem em uma rede MODBUS? Qual a tcnica de controle de acesso ao meio fsico utilizado pelo padro MODBUS?

Quais campos compe a estrutura de uma mensagem (Frame) no padro MODBUS. Desenhe esta estrutura.

Explique como inicia-se uma mensagem no padro de comunicao MODBUS.

Quantos bits compe o campo Adress da mensagem do padro de comunicao MODBUS? Com estes bits possvel escrever qual faixa de endereos?

Cite o cdigo e a sua descrio de pelo menos trs funes no padro de comunicao MODBUS.

12

Prof. Marcelo Saraiva Coelho