Anda di halaman 1dari 43

UNIVERSIDADE FEDERAL DE MINAS GERAIS DEMEC- Departamento de Engenharia Mecnica

AUTOMAO APLICADA ENGENHARIA MECNICA


Protocolo MODBUS

Belo Horizonte, 21 de junho de 2013

1.

Introduo

Antes de abordar o assunto a ser tratado nesse trabalho, o protocolo Modbus, faz-se necessrio o conhecimento de alguns conceitos bsicos em automao industrial: 1.1. Protocolo de comunicao Na cincia da computao, um protocolo uma conveno que controla e possibilita uma conexo, comunicao, transferncia de dados entre dois sistemas computacionais. De maneira simples, um protocolo pode ser definido como "as regras que governam" a sintaxe, semntica e sincronizao da comunicao. Os protocolos podem ser implementados pelo hardware, software ou por uma combinao dos dois. A maioria dos protocolos especifica uma ou mais das seguintes propriedades:

deteco da conexo fsica subjacente ou a existncia de um n; handshaking (estabelecimento de ligao); negociao de vrias caractersticas de uma conexo; como iniciar e finalizar uma mensagem; como formatar uma mensagem; o que fazer com mensagens corrompidas ou mal formatadas; como detectar perda inesperada de conexo e o que fazer em seguida; trmino de sesso ou conexo

1.2. O Controlador lgico programvel (PLC) Um Controlador lgico programvel (CLP), tambm conhecido pela sigla inglesa PLC (Programmable logic controller), um computador especializado, baseado em um microprocessador que desempenha funes de controle atravs de softwares desenvolvidos pelo usurio (cada CLP tem seu prprio software), de diversos tipos e nveis de complexidade. Geralmente as famlias de PLCs so definidas pela capacidade de processamento de um determinado nmero de pontos de Entradas e/ou Sadas. Segundo a NEMA (National Electrical Manufacturers Association), um aparelho eletrnico digital que utiliza uma memria programvel para armazenar internamente instrues e para implementar funes especficas, tais como lgica, seqenciamento, temporizao, contagem e aritmtica, controlando, por meio de mdulos de entradas e sadas, vrios tipos de mquinas ou processos. Num sistema tpico, toda a informao dos sensores concentrada no controlador (CLP) que de acordo com o programa em memria define o estado dos pontos de sada conectados a atuadores. Um CLP o controlador indicado para lidar com sistemas caracterizados por eventos discretos (SEDs), ou seja, com processos em que as variveis assumem valores zero ou

um (ou variveis ditas digitais, ou seja, que s assumem valores dentro de um conjunto finito). Podem ainda lidar com variveis analgicas definidas por intervalos de valores de corrente ou tenso eltrica. As entradas e/ou sadas digitais so os elementos discretos, as entradas e/ou sadas analgicas so os elementos variveis entre valores conhecidos de tenso ou corrente. Os CLPs tem capacidade de comunicao de dados via canais seriais. Com isto podem ser supervisionados por computadores formando sistemas de controle integrados. Softwares de superviso controlam redes de CLPs. Os canais de comunicao nos CLPs permitem conectar interface de operao (IHM), computadores, outros CLPs e at mesmo com unidades de entradas e sadas remotas. Cada fabricante estabelece um protocolo para fazer com que seus equipamentos troquem informaes entre si. Os protocolos mais comuns so Modbus (Modicon Schneider Eletric), EtherCAT (Beckhoff), Profibus (Siemens), Unitelway (Telemecanique - Schneider Eletric) e DeviceNet (Allen Bradley), etc. Redes de campo abertas como MODBUS-RTU so de uso muito comum com CLPs permitindo aplicaes complexas na indstria automobilstica, siderurgica, de papel e celulose, e outras.

1.3. Modelo OSI (Open Systems Interconnection) Com o objetivo de facilitar o processo de padronizao e obter interconectividade entre mquinas de diferentes fabricantes, a Organizao Internacional de Normalizao (ISO - International Standards Organization), uma das principais organizaes no que se refere elaborao de padres de comunicao de mbito mundial, aprovou, no incio da dcada de 1980, um modelo de arquitetura para sistemas abertos, visando permitir a comunicao entre mquinas heterogneas e definindo diretivas genricas para a construo de redes de computadores independente da tecnologia de implementao. Esse modelo foi denominado OSI (Open Systems Interconnection), servindo de base para a implementao de qualquer tipo de rede, seja de curta, mdia ou longa distncia. Elaborao do modelo Para atingir os objetivos de interoperabilidade, compatibilidade, portabilidade e escalabilidade exigidos para a implementao de um sistema aberto so necessrias algumas etapas obrigatrias que podem ser observadas na definio do modelo OSI: Definio do modelo (padro para arquitetura do sistema aberto) - O padro criado para o modelo OSI define exatamente o que cada camada deve fazer, mas no define como isto ser feito, ou seja, define os

servios que cada camada deve prestar, mas no o protocolo que os realizar; Definio dos protocolos de cada camada Definio dos padres dos componentes que fazem parte do modelo (padres de interoperabilidade e portabilidade), no s os relacionados comunicao, mas tambm alguns no relacionados como a estrutura de armazenamento de dados e outros; Seleo dos perfis funcionais Etapa realizada pelos rgos de padronizao de cada pas que escolhem os padres que lhes cabem, baseados em condies tecnolgicas, base instalada, viso futura, etc.

Arquitetura OSI A arquitetura de uma rede formada por camadas (ou nveis), interfaces e protocolos. As camadas so processos, implementados por hardware ou software, que se comunicam com o processo correspondente na outra mquina. Cada camada oferece um conjunto de servios ao nvel superior, usando funes realizadas no prprio nvel e servios disponveis nos nveis inferiores. Em uma estrutura baseada em camadas, os dados transferidos em uma comunicao de um nvel especfico no so enviados diretamente ao processo do mesmo nvel em outra estao, mas descem, atravs da cada camada adjacente da mquina transmissora at o nvel inicial, onde transmitido, para depois subir atravs de cada nvel adjacente da mquina receptora. A figura abaixo ilustra o conceito de uma rede de comunicao de acordo com o modelo OSI Os protocolos so conjuntos de regras e formatos que permitem a comunicao entre as camadas nas diferentes mquinas. Em cada camada podem ser definidos um ou mais protocolos. J as interfaces representam o limite entre cada nvel adjacente onde uma camada compreende as informaes vindas de outra camada.

Dentro dessa filosofia, o modelo OSI define uma arquitetura genrica de sete camadas para o sistema computacional. Com exceo da camada mais alta, cada camada usuria dos servios prestados pela camada imediatamente inferior (n-1) e presta servios para a camada imediatamente superior (n+1). Esta troca de informaes entre as camadas adjacentes ocorre por meio da troca de primitivas de servios (funes que um nvel oferece ao nvel imediatamente superior de forma a prover a comunicao entre os mesmos) nas interfaces entre as camadas. Apesar da diviso em sete nveis, pode-se considerar genericamente que as trs camadas mais baixas do modelo cuidam dos aspectos relacionados transmisso propriamente dita, a quarta camada lida com a comunicao fim-a-fim, enquanto que as trs camadas superiores se preocupam com os aspectos relacionados aplicao, j ao nvel de usurio. Uma maneira bastante simples de se enxergar a funcionalidade do modelo OSI imaginar que cada camada tem como funo adicionar um cabealho aos dados do usurio a serem transmitidos para outro sistema. Deste modo, a funo de cada camada do outro sistema exatamente a inversa, ou seja, retirar os cabealhos dos dados que chegam e entreg-los ao usurio em sua forma original. As camadas do Modelo de Referncia OSI so as seguintes: Camada Fsica Os protocolos deste nvel so os que realizam a codificao/decodificao de smbolos e caracteres em sinais eltricos lanados no meio fsico, que fica logo abaixo dessa camada. O nvel fsico tem a funo de transmitir uma seqncia de bits atravs de um canal de comunicao. As funes tpicas dos protocolos deste nvel so fazer com que um bit "1" transmitido por uma estao seja entendido pelo receptor como bit "1" e no como bit "0". Assim, este nvel trabalha basicamente com as caractersticas mecnicas e eltricas do meio fsico, como por exemplo: nmero de volts que devem

representar os nveis lgicos "1" e "0"; velocidade mxima da transmisso; transmisso simplex, half duplex ou full duplex; nmero de pinos do conector e utilidade de cada um; dimetro dos condutores. Camada de Enlace de Dados O principal objetivo da camada de enlace receber/transmitir uma seqncia de bits do/para o nvel fsico e transform-los em uma linha que esteja livre de erros de transmisso, a fim de que essa informao seja utilizada pelo nvel de rede. O nvel de enlace est dividido em dois subnveis: Subnvel superior - controle lgico do enlace (LLC - Logical Link Control) - O protocolo LLC pode ser usado sobre todos os protocolos IEEE do subnvel MAC, como por exemplo, o IEEE 802.3 (Ethernet), IEEE 802.4 (Token Bus) e IEEE 802.5 (Token Ring). Ele oculta as diferenas entre os protocolos do subnvel MAC. Usa-se o LLC quando necessrio controle de fluxo ou comunicao confivel; Subnvel inferior controle de acesso ao meio (MAC - Medium Access Control) possui alguns protocolos importantes, como o IEEE 802.3 (Ethernet), IEEE 802.4 (Token Bus) e IEEE 802.5 (Token Ring). O protocolo de nvel superior pode usar ou no o subnvel LLC, dependendo da confiabilidade esperada para esse nvel. Camada de Rede A camada de rede tem a funo de controlar a operao da rede de um modo geral. Suas principais funes so o roteamento dos pacotes entre fonte e destino (atividade cujo objetivo definir qual ser o caminho trilhado pelos dados (empacotados) at chegarem ao seu destino, atravs de tabelas na memria do roteador, que contm as informaes necessrias para determinar o destino dos pacotes que recebe, variando de acordo com o protocolo de roteamento utilizado), mesmo que estes tenham que passar por diversos ns intermedirios durante o percurso, o controle de congestionamento e a contabilizao do nmero de pacotes ou bytes utilizados pelo usurio, para fins de tarifao. O principal aspecto que deve ser observado nessa camada a execuo do roteamento dos pacotes entre fonte e destino, principalmente quando existem caminhos diferentes para conectar entre si dois ns da rede. Em redes de longa distncia comum que a mensagem chegue do n fonte ao n destino passando por diversos ns intermedirios no meio do caminho e tarefa do nvel de rede escolher o melhor caminho para essa mensagem. A escolha da melhor rota pode ser baseada em tabelas estticas, que so configuradas na criao da rede e so raramente modificadas; pode tambm ser determinada no incio de cada conversao, ou ser altamente dinmica, sendo determinada a cada

novo pacote, a fim de refletir exatamente a carga da rede naquele instante. Se muitos pacotes esto sendo transmitidos atravs dos mesmos caminhos, eles vo diminuir o desempenho global da rede, formando gargalos. O controle de tais congestionamentos tambm tarefa da camada de rede. Camada de Transporte A camada de transporte inclui funes relacionadas com conexes entre a mquina fonte e mquina destino, segmentando os dados em unidades de tamanho apropriado para utilizao pelo nvel de rede, seguindo ou no as orientaes do nvel de sesso. As principais funes do nvel de transporte so: criar conexes para cada requisio vinda do nvel superior, multiplexar as vrias requisies vindas da camada superior em uma nica conexo de rede, dividir as mensagens em tamanhos menores, a fim de que possam ser tratadas pelo nvel de rede e estabelecer e terminar conexes atravs da rede. Sob condies normais, o nvel de transporte cria uma conexo distinta para cada conexo de transporte requisitada pelo nvel superior. Se a conexo de transporte requisitada necessita uma alta taxa de transmisso de dados, este nvel pode criar mltiplas conexes de rede, dividindo os dados atravs da rede para aumentar a velocidade de transmisso, conforme as indicaes do nvel de sesso. Por outro lado, a camada de transporte pode multiplexar as vrias conexes de transporte na mesma conexo de rede, a fim de reduzir custos. Em ambos os casos, a camada de transporte deixa essa multiplexao transparente ao nvel superior. Existem vrias classes de servio que podem ser oferecidas ao nvel superior, e, em ltima instncia, aos usurios da rede. A mais popular uma comunicao atravs de um canal ponto-a-ponto livre de erros, que envia as mensagens seqencialmente, na mesma ordem que elas foram recebidas. Existem outras classes permitidas, como o envio de mensagens isoladas, sem garantia sobre a ordem da entrega, ou enviar mensagens para mltiplos destinos (mensagens multicast). O nvel de transporte o primeiro que trabalha com conexes lgicas fim a fim, ou seja, um programa na mquina fonte conversa com um programa similar na mquina destino, diferente dos nveis anteriores, que conversavam somente com o n vizinho. Vale ressaltar que a conexo criada pelo nvel de transporte uma conexo lgica, e os dados so transmitidos somente pelo meio fsicos, atravs da camada fsica do modelo. Assim, os dados devem descer nvel a nvel at atingir o nvel 1, para ento serem transmitidos mquina remota. As funes implementadas pela camada de transporte dependem da qualidade de servio desejada. Foram especificadas, ento, cinco classes de protocolos orientados conexo:

Classe 0: simples, sem nenhum mecanismo de deteco e recuperao de erros; Classe 1: recuperao de erros bsicos sinalizados pela rede; Classe 2: permite que vrias conexes de transporte sejam multiplexadas sobre uma nica conexo de rede e implementa mecanismos de controle de fluxo; Classe 3: recuperao de erros sinalizados pela rede e multiplexao de vrias conexes de transporte sobre uma conexo de rede; Classe 4: deteco e recuperao de erros e multiplexao de conexes de transporte sobre uma nica conexo de rede. Camada de Sesso A funo da camada de sesso administrar e sincronizar dilogos entre dois processos de aplicao. Este nvel oferece dois tipos principais de dilogo: half duplex e full duplex. O nvel de sesso fornece mecanismos que permitem estruturar os circuitos oferecidos para o nvel de transporte. Neste nvel ocorre a quebra de um pacote com o posicionamento de uma marca lgica ao longo do dilogo. Esta marca tem como finalidade identificar os blocos recebidos para que no ocorra uma recarga, quando ocorrer erros na transmisso. Uma sesso permite transporte de dados de uma maneira mais refinada que o nvel de transporte em determinadas aplicaes. Uma sesso pode ser aberta entre duas estaes a fim de permitir a um usurio se logar em um sistema remoto ou transferir um arquivo entre essas estaes. Os protocolos desse nvel tratam de sincronizaes (checkpoints) na transferncia de arquivos. Camada de Apresentao A funo da camada de apresentao assegurar que a informao seja transmitida de tal forma que possa ser entendida e usada pelo receptor. Dessa forma, este nvel pode modificar a sintaxe da mensagem, mas preservando sua semntica. Por exemplo, uma aplicao pode gerar uma mensagem em ASCII mesmo que a estao interlocutora utilize outra forma de codificao (como EBCDIC). A traduo entre os dois formatos feita neste nvel. A camada de apresentao tambm responsvel por outros aspectos da representao dos dados, como criptografia e compresso de dados.

Camada de Aplicao

A camada de aplicao o nvel que possui o maior nmero de protocolos existentes, devido ao fato de estar mais perto do usurio e os usurios possurem necessidades diferentes. Esta camada fornece ao usurio uma interface que permite acesso a diversos servios de aplicao, convertendo as diferenas entre diferentes fabricantes para um denominador comum. Por exemplo, em uma transferncia de arquivos entre mquinas de diferentes fabricantes pode haver convenes de nomes diferentes (DOS tem uma limitao de somente 8 caracteres para o nome de arquivo, UNIX no), formas diferentes de representar as linhas, e assim por diante. Transferir um arquivo entre os dois sistemas requer uma forma de trabalhar com essas incompatibilidades, e essa a funo da camada de aplicao. O dado entregue pelo usurio camada de aplicao do sistema recebe a denominao de SDU (Service Data Unit). A camada de aplicao, ento, junta a SDU (no caso, os dados do usurio) um cabealho chamado PCI (Protocol Control Information). O objeto resultante desta juno chamado de PDU (Protocol Data Unit), que corresponde unidade de dados especificada de um certo protocolo da camada em questo. Em cada nvel, duas entidades (N entidades pares) interagem por meio do protocolo N transmitindo PDUs (Protocol Data Units). Tabela com alguns protocolos utilizados em cada camada:

Resumo das camadas de aplicao:

Sistema Operacional de Rede O sistema operacional de rede um conjunto de programas que constitui o software bsico de uma estao (computador) na rede. Ele oculta as peculiaridades do hardware e disponibiliza as funes necessrias para a execuo de uma srie de servios computacionais de alto nvel, simplificando o desenvolvimento de aplicaes para os usurios. A maioria das funes do modelo OSI implementada pelo sistema operacional de rede nas estaes. Alm de gerenciar os recursos locais do computador, o sistema operacional de rede incorpora os mdulos necessrios para suportar toda a comunicao em rede. Esses sistemas so geralmente multiprotocolos, isto , suportam mais de um tipo de protocolo para cada camada. Esta caracterstica permite interligar, em uma mesma rede, computadores com sistemas operacionais de fabricantes diferentes.

2.
2.1.

O protocolo Modbus
Viso geral sobre o protocolo Modbus

Modbus um protocolo de comunicao de dados, pertencente 7 camada do modelo OSI, utilizado em sistemas de automao industrial. Criado originalmente na dcada de 1970, mais especificamente em 1979, pela fabricante de equipamentos Modicon. utilizado para estabelecer comunicao mestre-escravo / cliente-servidor entre dispositivos conectados em diferentes tipos de buses ou redes (networks). um dos mais antigos e at hoje mais utilizados protocolos em redes de Controladores lgicos programveis (PLC) para aquisio de sinais de instrumentos e comandar atuadores. A Schneider Electric (atual controladora da Modicon) transferiu os direitos do protocolo para a Modbus Organization (Organizao Modbus) em 2004, que uma organizao sem fins lucrativos composta por um grupo independente de usurios e fornecedores de servios de automao, responsveis pelo desenvolvimento e atualizao dos protocolos Modbus. As principais razes para utilizar o Modbus so: Foi desenvolvido visando aplicaes industriais livremente divulgado (protocolo aberto) Fcil de implantar e manter Aplicvel a uma grande gama de indstrias

O Modbus foi implementado por centenas de vendedores em milhares de diferentes dispositivos para transferir entradas e sadas discretas/ analgicas e registrar dados

entre dispositivos de controle. Analistas da indstria registraram mais de 7 milhes de ns de Modbus apenas na Amrica do Norte e Europa. Aplicaes Modbus usado em mltiplas aplicaes mestre-escravo para monitorar e programas dispositivos; para estabelecer comunicao entre dispositivos inteligentes e sensores e instrumentos; para monitorar dispositivos de campo usando PCs e IHM (Interfaces Homem Mquina). Modbus tambm um protocolo ideal para aplicaes RTU (Remote Terminal Unit) onde comunicao wireless requerida. Por esta razo, usado em inmeras aplicaes de oleo e gs e substaes. Mas o Modbus no um protocolo exclusivamente industrial. Existem aplicaes nos segmentos de construo, infra-estrutura, transportes e energia que tambm fazem uso de seus benefcios. Modelo de Comunicao O protocolo Modbus baseado em um modelo de comunicao mestre-escravo, onde um nico dispositivo, o mestre, pode iniciar transaes denominadas queries. Os 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 (processo de enviar dados um bit de cada vez, sequencialmente, num canal de comunicao ou barramento, diferentemente da comunicao paralela, em que todos os bits de cada smbolo so enviados juntos, sendo usada em toda comunicao de longo alcance e na maioria das redes de computadores, onde o custo de cabos e as dificuldades de sincronizao tornam a comunicao paralela impraticvel. Exemplos: RS-232, RS-485, Ethernet, etc.) ou Modbus PLUS, mas em outros tipos de rede, um dispositivo pode assumir ambos os papis, embora no simultaneamente. Em redes que usam Ethernet, qualquer dispositivo pode enviar um comando Modbus, embora geralmente apenas um dispositivo mestre faa isso.

Figura 3: Conceito da comunicao via protocolo Modbus A aproximao Modbus ao modelo OSI aparece ao nvel das camadas 1, 2 e 7, respectivamente camada fsica, ligao e aplicao: Nvel fisico (nvel 1): Par torsado, mximo de 19200 Bauds, RS232/RS485/Anel de corrente. Ligao de dados (nvel 2): Acesso rede por mecanismo tipo mestre/escravo. Controle de erros por CRC16 (Modo RTU). Num mtodo de acesso tipo mestre/escravo, a iniciativa do envio de mensagens est restringida ao mestre. Se uma resposta for requerida, os escravos respondem solicitao do mestre, ou ento limitam-se a executar as aes pedidas pelo mestre. O mestre pode dirigir-se individualmente aos escravos, ou difundir mensagens dirigidas a todos os escravos (Broadcast). Aplicao (nvel 7): definiram-se neste nvel as funes de leitura e escrita de variveis (bits, Words, E/S), diagnstico e estatsticas de ocorrncia da rede. 2.2. Protocolo de Aplicao Modbus

Formas de implementao comuns: Transmisso serial assncrona sobre diversos tipos de meios (por cabos: EIA/TIA-232-E, EIA-422, EIA/TIA-485-A; fibra, rdio, etc). ver item 2.3 TCP/IP sobre Ethernet. ver item 2.4 MODBUS PLUS, rede de passagem de alta velocidade: verso que possui vrios recursos adicionais de roteamento, diagnstico, endereamento e consistncia de dados. Esta verso ainda mantida sob domnio da Schneider Electric e s pode ser implantada sob licena deste fabricante. no ser abordado no trabalho.

Figura 4: Pilha de comunicao Modbus 2.2.1. Descrio Geral O protocolo MODBUS define um simples protocolo de unidade de dados ( protocol data unit) (PDU) independente das camadas de comunicao inferiores. O mapeamento do protocolo Modbus em redes especficas pode introduzir alguns campos adicionais na unidade de unidade de dados de aplicao (application data unit) (ADU).

A unidade de dados de aplicao (ADU) criada pelo cliente que inicia uma transao Modbus. A funo indica para o servidor qual tipo de ao tomar. O protocolo de aplicao Modbus estabelece o formato de um pedido iniciado por um cliente. O campo de cdigo da funo de uma unidade de dados no Modbus codificado por 1 byte. Cdigos vlidos esto na faixa de 1-255 decimal (a faixa 128-255 reservada e usada para respostas de exceo); Quando uma mensagem enviada de um dispositivo cliente para um servidor o campo cdigo da funo informa o servidor que tipo de ao tomar. O cdigo de funo 0 no vlido. Cdigos de sub-funo so adicionados a alguns cdigos de funo para definir aes mltiplas. O campo de dados de mensagens enviadas de dispositivos clientes para ser vidores contm informaes adicionais que o servidor usa para agir de acordo com a definio

do cdigo da funo. Isso pode incluir itens como discretizar e registrar endereos, a quantidade de itens a serem manuseados, e a contagem dos bytes no campo. O campo de dados pode ser no-existente (comprimento zero) em certos tipos de pedidos, neste caso o servidor no requer nenhuma informao adicional. O cdifo de funo sozinho especifica a ao. Se nenhum erro ocorrer relacionado em relao a funo requerida do Modbus em uma ADU recebida, o campo de dados de uma resposta de um servidor para um cliente contm a informao requerida. Se um erro relacionado funo Modbus requerida ocorrer, o campo conter um cdigo de exceo que o servidor pode usar para determinar a prxima ao a ser tomada. Por exemplo, um cliente pode ler os estados ON/ OFF de um grupo de sadas ou entradas discretas ou ele pode ler/ escrever as informaes contidfas em um grupo de registros. Quando o servidor responde ao cliente, ele usa o campo cdigo da funo para indicar ou uma resposta normal (sem erros) ou que algum tipo de erro ocorreu (chamado de resposta de exceo). Para uma resposta normal, o servidor simplesmente retorna para o pedido o cdigo da funo original:

Para uma resposta de exceo, o servidor retorna um cdigo que equivalente ao cdigo da funo original do PDU pedido com seu bit mais significativo setado para lgica 1:

Nota: desejvel configurar o tempo de espera a fim de no esperar indefinidamente por uma resposta que pode no chegar.

O tamanho de um PDU Modbus limitado pelo tamanho proveniente da primeira implementao Modbus em Linha Serial (max. RS485 ADU = 256 bytes). Portanto: MODBUS PDU para comunicao de linha serial = 256 endereo do servidor (1 byte) - CRC (2 bytes) = 253 bytes. Consequentemente: RS232 / RS485 ADU = 253 bytes + endereo servidor (1 byte) + CRC (2 bytes) = 256 bytes. TCP MODBUS ADU = 253 bytes + MBAP (7 bytes) = 260 bytes. O protocolo Modbus define 3 PDUs. Eles so: PDU de pedido MODBUS: mensagem enviada do cliente para o servidor solicitando determinada informao ou para executar uma tarefa qualquer; PDU de resposta MODBUS: mensagem enviada do servidor para o cliente com a informao pedida ou confirmando a execuo de uma tarefa; PDU de resposta de exceo MODBUS: mensagem enviada do servidor para o cliente com informao de que no possvel tratar o pedido solicitado.

Modelo de dados Modbus MODBUS baseia seu modelo de dados emu ma srie de tabelas que tem caractersticas distintas. As quatro tabelas primrias so:

As distines entre entradas e sadas, e entre itens de dados bit-enderevel e palavraenderevel no implicam em nenhum comportamento da aplicao. perfeitamente aceitvel, e muito comum, considerar todas as quadro tabelas sobrepondo umas s outras, se isto a interpretao mais natural para a mquina alvo em questo. Para cada uma das tabelas primrias, o protocolo permite a seleo individual de 65536 itens de dados, e operaes de leitura ou escrita daqueles itens so designados para alcanar itens de dados mltiplos consecutivos at um tamanho de dados limite que dependente do cdigo da funo de transao. bvio que todos os dados manuseados via Modbus (bits, registros) devem estar localizados na memria da aplicao do dispositivo. Mas endereo fsico na memria

no deve ser confundido com referncia de dados. O nico requisito ligar referncia de dados com endereo fsico. Nmeros de referncia lgicos do Modbus, que so usados nas funes Modbus, so ndices inteiros sem sinal comeando em zero. Modelo de endereamento MODBUS O protocolo de aplicao Modbus define precisamente regras de endereamento do PDU. Em uma PDU do Modbus cada dado endereado de 0 a 65535. Ele tambm define claramente o modelo de dados composto de 4 blocos que englobam alguns elementos numerados de 1 a n. Em um modelo de dados Modbus cada element dentro de um bloco de dados numerado de 1 at n. Depois disso, o modelo de dados MODBUS tem que ser ligado com a aplicao do dispositivo ( objeto IEC-61131, ou outro modelo de aplicao). O pr-mapeamento entre o modelo de dados MODBUS e da aplicao do dispositivo totalmente especfico do fornecedor do dispositivo.

A figura acima mostra que um dado do Modbus numerado X localizado no PDU do Modbus X-1. Transao Modbus

O diagrama de estado a seguir descreve o processamento genrico de uma transao MODBUS no lado do servidor.

Uma vez que o pedido foi processado por um servidor, uma resposta MODBUS utilizando a transao adequada do servidor MODBUS construda. Dependendo do resultado do processamento dois tipos de resposta so construdos: Uma resposta MODBUS positiva: - o cdigo de funo de resposta = o cdigo de funo do pedido Uma resposta de exceo MODBUS: - o objetivo proporcionar ao cliente informaes relevantes sobre o erro detectado durante o processamento; - o cdigo de funo exceo = o cdigo de funo pedido + 0x80; - um cdigo de exceo fornecido para indicar o motivo do erro.

Categorias de cdigos de funo

Existem trs categorias de cdigos de funes Modbus. Eles so: Cdigos de Funo Pblica so cdigos de funo bem definidos, a garantia de serem nicos, validados pela comunidade MODBUS.org, publicamente documentados possuem testes de conformidade disponveis, incluem os cdigos de funes j definidos publicamente, bem como os cdigos de funo no atribudos reservados para uso futuro.

Cdigos de funo definida pelo usurio existem duas faixas de cdigos de funo definida pelo usurio, ou seja, 65-72 e 100-110 decimais. o usurio pode selecionar e implementar um cdigo de funo que no suportada pela especificao. no h garantia de que o uso do cdigo de funo selecionada ser exclusivo se o usurio quer reposicionar a funcionalidade como um cdigo de funo pblica, ele deve iniciar uma RFC para introduzir a mudana para a categoria pblica e ter um novo cdigo de funo pblica atribuda. Organizao MODBUS, Inc reserva-se expressamente o direito de desenvolver o RFC proposto.

Cdigos de Funo reservados Cdigos de Funo utilizada atualmente por algumas empresas para produtos antigos e que no esto disponveis para uso pblico.

Definio dos cdigos de funo pblicos O site Modbus.org detalha o funcionamento de cada uma dessas funes, o que no ser feito nesse trabalho. Segue uma listagem de algumas funes:

Respostas de exceo MODBUS Quando um dispositivo cliente envia um pedido a um dispositivo servidor espera uma resposta normal. Um dos quatro eventos possveis podem ocorrer a partir de consulta do cliente: Se o dispositivo servidor recebe a solicitao sem um erro de comunicao, e pode lidar com a consulta normalmente, ele retorna uma resposta normal. Se o servidor no recebe o pedido devido a um erro de comunicao, nenhuma resposta retornada. O programa cliente acabar por processar uma condio de tempo limite para a solicitao. Se o servidor recebe a solicitao, mas detecta um erro de comunicao (paridade, LRC, CRC, ...), nenhuma resposta retornada. O programa cliente acabar por processar uma condio de tempo limite para a solicitao. Se o servidor recebe a solicitao, sem um erro de comunicao, mas no consegue lidar com isso (por exemplo, se a solicitao for para ler uma sada inexistente ou registro), o servidor ir retornar uma resposta de exceo informando o cliente sobre a natureza do erro.

A mensagem de resposta exceo tem dois campos que o diferenciam de uma resposta normal: Cdigo de Funo Campo: Em uma resposta normal, o servidor repete o cdigo de funo do pedido original no campo do cdigo de funo de resposta. Todos os cdigos de funo tem um bit mais significativo (MSB) igual a 0 (os valores esto todos abaixo de 80 hexadecimal). Em uma resposta de exceo, o servidor modifica o MSB do cdigo de funo para 1. Isso faz com que o valor de cdigo de funo a uma resposta de exceo seja exatamente 80 hexadecimal maior do que o valor seria para uma resposta normal. Com o MSB do cdigo de funo alterado, programa de aplicao do cliente pode reconhecer a resposta de exceo e pode examinar o campo de dados para o cdigo de exceo. Campo de Dados: Em uma resposta normal, o servidor pode retornar dados ou estatsticas no campo de dados (qualquer informao que foi solicitada no pedido). Em uma resposta de exceo, o servidor retorna um cdigo de exceo no campo de dados. Isto define a condio de servidor que causou a exceo. Listagem de cdigos de exceo:

2.3.

Protocolo Modbus em Linha Serial

O protocolo Serial Modbus um protocolo mestre-escravo. Este protocolo ocorre na 2a camada do Modelo de Referncia OSI. Um sistema operando como mestre-escravo possui um n mestre, que emite comandos explcitos para um dos ns escravos e processa a sua resposta. Tipicamente os escravos no iro transmitir dados sem uma requisio do n mestre e no se comunicam com outros escravos. Na camada fsica os sistemas Modbus em linhas seriais podem usar diferentes interfaces fsicas (RS485, RS232, etc). A interface RS485 de 2 fios a mais comum. No entanto, a interface RS485 de 4 fios tambm pode ser implementada. A interface serial RS232 s poder ser utilizada quando uma comunicao ponto a ponto de curta distncia for requerida. A figura abaixo mostra uma representao geral dos protocolos Modbus frente as 7 camadas do modelo de referncia OSI.

O protocolo de mensagens Modbus na camada de aplicao prov comunicao cliente/servidor entre dispositivos conectados em diferentes barramentos e topologias de rede. No protocolo Modbus operando em linha serial s existe um cliente, que o n mestre da linha serial. Os ns escravos operam como servidores. Camada de Enlace de Dados Modbus 2.3.1. Princpio do Protocolo Modbus Mestre-Escravo O protocolo Modbus operando em linha serial um protocolo mestre-escravos. Isso significa que somente um mestre conectado ao barramento ao mesmo tempo. Quanto aos escravos, um ou mais ns (nmero mximo de 247) podem ser conectados a este mesmo barramento. Uma comunicao Modbus sempre iniciada pelo mestre. O n escravo nunca ir transmitir dados sem receber uma requisio do n mestre. Os ns escravos nunca

iro se comunicar entre eles. O n mestre inicia somente uma transao Modbus por vez. O n mestre emite uma requisio para um n escravo em dois modos: Unicast o mestre enderea a somente um escravo. Depois de receber e processar a requisio, o escravo retorna uma mensagem de resposta para o mestre. Neste modo, uma transao Modbus consiste de 2 mensagens: uma requisio do mestre e uma resposta do escravo. Cada escravo deve ter um endereo nico (de 1 a 247) de forma a poder ser endereado independentemente de outros ns.

Broadcast o n mestre pode enviar uma mensagem para todos os escravos. Nenhuma resposta deve ser retornada para requisies broadcast enviadas pelo mestre. As requisies broadcast so necessariamente mensagens de escrita. Todos os dispositivos devem aceitar mensagens broadcast para escrita. O endereo 0 reservado para identificar uma mensagem broadcast.

2.3.2. Regras de Endereamento Modbus O espao de endereamento Modbus compreende 256 diferentes endereos.

2.3.3. Descrio do Quadro (frame) Modbus O protocolo de aplicao Modbus define uma simples unidade de dados de protocolo (Protocol Data Unit PDU) independentemente das camadas adjacentes.

As caractersticas do protocolo Modbus em um barramento ou topologia de rede especfica introduzem alguns campos adicionais ao PDU. O cliente que inicializa uma transao Modbus constri um Modbus PDU e, ento adiciona campos para que construa o PDU apropriado para uma dada comunicao.

Em uma comunicao Modbus sobre barramento serial, o campo endereo contm o endereo de um determinado escravo. Como descrito anteriormente, os endereos vlidos para ns escravos esto na faixa de 0 a 247 decimal. Quando utilizado o endereo 0, a mensagem um broadcast, portando todos os ns escravos estaro sendo endereados. Os escravos so individualmente endereados na faixa de 1 a 247. Um mestre enderea um escravo colocando o endereo do escravo no campo endereo da mensagem. Quando o escravo retorna sua resposta, ele coloca o seu prprio endereo no campo endereo da mensagem de resposta para permitir que o mestre identifique qual escravo est respondendo. O cdigo de funo indica para o servidor que tipo de ao deve se executada. O cdigo de funo pode ser seguido por um campo de dados que contm parmetros da requisio e da resposta. O campo de verificao de erro resultado de um clculo de verificao de redundncia que adicionado ao contedo da mensagem. Dois mtodos para clculo so usados, dependendo do modo de transmisso que est sendo utilizado (RTU ou ASCII). 2.3.4. Diagramas de Estado Mestre / Escravo

A camada de enlace de dados Modbus compreende duas sub-camadas: O protocolo Mestre / Escravo; O modo de transmisso RTU ou ASCII. Abaixo temos a descrio dos diagramas de estado de um mestre e um escravo, que so independentes do modo de transmisso utilizado. A recepo e o envio de um quadro Modbus so descritos abaixo. 2.3.4.1. Diagrama de Estado de um Mestre Modbus

O diagrama abaixo descreve o comportamento de um mestre Modbus.

Abaixo temos algumas consideraes a respeito do diagrama de estados apresentado: Estado idle (ocioso) - Nenhuma requisio pendente. Este o estado inicial aps a alimentao de um n mestre. Uma requisio somente pode ser enviada a partir de um estado idle. Depois de enviar uma requisio, o mestre sai do modo idle e no pode enviar uma segunda requisio at voltar a este modo; Quando uma requisio enviada para um nico escravo, o mestre entra em um estado de espera por resposta (Waiting for Reply) e um contador de espera iniciado. Este contador previne o mestre de ficar indefinidamente no modo de espera de resposta. O valor do tempo de espera por uma resposta dependente da aplicao; Quando uma resposta recebida, o mestre verifica o resposta antes de iniciar o processamento dos dados. A verificao pode resultar em um erro. Exemplos de possveis erros so a resposta por um escravo no esperado ou um erro no quadro recebido. No caso de uma resposta recebida por um escravo no esperado, o contador de espera continuara sendo executado. No caso de um erro ser detectado no quadro recebido, uma nova tentativa deve ser executada;

Se nenhuma resposta recebida o contador expira e um erro gerado. Ento o mestre entra no modo idle, habilitando uma req uisio para nova tentativa. O nmero mximo de tentativas definido nas configuraes do mestre; Quando uma mensagem broadcast enviada no barramento serial, nenhuma resposta retornada pelos escravos. Contudo, um tempo de espera respeitado pelo mestre no sentido de permitir que qualquer escravo processe a requisio antes que o mestre envie uma nova mensagem. Portanto, o mestre entra em um estado de espera (Waiting Turnaround Delay) antes de voltar para o estado idle e, portanto, antes de ser capaz de enviar outra requisio; Em modo unicast o tempo de espera deve ser escolhido de forma que qualquer escravo possa processar a requisio e retornar uma resposta. No modo broadcast o tempo de espera deve ser longo o suficiente para que qualquer escravo processe somente a requisio e esteja apto a receber uma nova requisio. Devido a isso, o tempo de espera em modo broadcast deve ser menor que em modo unicast. Tipicamente o tempo de espera em modo unicast de 1 segundo at vrios segundos para uma comunicao em 9600 bauds e o tempo de espera em modo broadcast entre 100ms e 200ms. A verificao de erro no quadro consiste de: 1) Verificao de paridade aplicada a cada caracter; 2) Verificao de redundncia aplicada a todo o quadro. O diagrama de estados intencionalmente muito simples. Este no leva em considerao o acesso ao meio, enquadramento de mensagem ou retransmisso em caso de erros.

2.3.4.2. Diagrama de Estado de um Escravo Modbus Abaixo temos o diagrama de estados de um escravo Modbus:

A seguir temos algumas consideraes a respeito do diagrama de estados apresentado: Estado idle - Nenhuma requisio pendente. Este o estado inicial aps a alimentao de um n escravo; Quando uma requisio recebida, o escravo verifica o pacote antes de executar a ao solicitada no pacote. Diferentes erros podem ocorrer: erro do formato da requisio, ao invlida, etc. No caso de um erro, uma resposta deve ser enviada para o mestre; Uma mensagem unicast requer que uma resposta seja formatada e enviada para o mestre assim que a ao requisitada completada; Se um escravo detecta um erro no quadro recebido, nenhuma resposta retornada para o mestre; Os contadores de diagnstico Modbus so definidos e devem ser gerenciados por qualquer escravo no sentido de prover informaes de diagnstico. Estes contadores de diagnstico podem ser adquiridos atravs da funo de diagnstico Modbus.

2.3.4.3. Diagrama de tempos da comunicao Mestre / Escravo O diagrama abaixo apresenta 3 cenrios especficos de comunicao Modbus Mestre / Escravo:

Observaes: A durao das fases de requisio, resposta e broadcast depende de caractersticas da comunicao (comprimento do quadro e processamento);

A durao das fases de espera e tratamento dependem do tempo de processamento da requisio necessrio para a aplicao contida nos ns escravos.

2.3.5. Modos de Transmisso Serial Os dois modos de transmisso serial so definidos como: Modo RTU (Remote Terminal Unit) e modo ASCII. Estes modos definem o contedo em bits dos campos das mensagens transmitidas serialmente no barramento. Eles determinam como a informao empacotada nos campos das mensagens e, posteriormente, como so decodificadas. O modo de transmisso (e o padro da porta serial) deve ser o mesmo em todos os dispositivos conectados a linha serial. Embora o modo ASCII seja requerido em algumas aplicaes especficas, interoperabilidade entre dispositivos Modbus pode ser alcanada somente se cada dispositivo tiver o mesmo modo de transmisso. Todos os dispositivos devem implementar o modo RTU. A modo de transmisso ASCII opcional. Os dispositivos devem ser configurados pelos usurios para o modo de transmisso desejado, RTU ou ASCII. O modo padro deve ser RTU. 2.3.5.1. Modo de Transmisso RTU

Quando dispositivos se comunicam em um barramento serial Modbus utilizando o modo RTU, cada byte (8 bits) na mensagem ir conter 2 caracteres hexadecimais de 4 bits. A principal vantagem deste modo que sua maior densidade de caracteres permite um melhor processamento de dados do que o modo ASCII para o mesmo baud rate. Cada mensagem deve ser transmitida em um fluxo contnuo de caracteres. O formato para cada byte no modo Modbus RTU : Sistema de codificao: Binrio de 8 bits Bits or Byte: 1 bit de incio 8 bits de dados, sendo o de menor significado enviado primeiro. 1 bit de paridade 1 bit de parada Paridade par requerida, outros modos (paridade impar, sem paridade) podem ser utilizados. No sentido de garantir maior compatibilidade com outros produtos recomendado suportar o modo sem paridade. O modo de paridade padro deve ser paridade par. Como os caracteres so transmitidos serialmente:

Cada caracter enviado nesta ordem (da esquerda para a direita). Bit menos significante ... Bit mais significante.

Sequncia de bits no modo RTU com paridade Os dispositivos podem aceitar configuraes para verificao de paridade par, impar e sem paridade. Se o modo sem paridade implementado, um bit de parada adicional deve ser transmitido para preencher o quadro de caracter mantendo o padro de comunicao assncrona com 11 bits.

Sequncia de bits no modo RTU sem paridade Campo de Verificao de Quadro: Verificao Cclica de Redundncia (CRC) Descrio do Quadro

Quadro de Mensagem RTU 2.3.5.1.1. Enquadramento de Mensagens Modbus RTU

Uma mensagem Modbus colocada pelo transmissor em um quadro que tem um comeo e fim bem definidos. Isto permite que dispositivos que recebam um novo quadro conheam o incio da mensagem e tambm quando a mesma completada. Mensagens parciais devem ser detectadas e erros devem ser gerados como resultado desta deteco. No modo RTU, os quadros de mensagem so separados por um intervalo de silncio de pelo menos 3.5 tempos de caracter. Nas figuras abaixo, este tempo apresentado como t3,5.

Quadro de mensagem Modbus O quadro inteiro da mensagem deve ser transmitido com um fluxo constante de caracteres. Se um tempo de silncio maior do que o tempo de 1,5 caracter for detectado o quadro da mensagem declarado incompleto e deve ser descartado pelo receptor.

Observao: A implementao do driver de recepo Modbus RTU deve implicar na gerencia de uma srie de interrupes devido aos tempos de 1,5 e 3,5 caracteres. Com altas taxas de comunicao (baud rate), este gerenciamento leva a grande carga de CPU. Consequentemente estes 2 temporizadores devem ser respeitados estritamente quando o baud rate igual ou menor do que 19200 Bps. Para baud rates maiores do que 19200 Bps, um valor fixo de 2 tempos deve ser usado: recomendado o uso do valor de 750 s para o tempo entre caracteres (t1,5) e um valor de 1,750 ms para o tempo entre quadros (t3,5). A figura abaixo apresenta o diagrama de estados do modo de transmisso RTU. Tanto o ponto de vista do mestre quanto do escravo so analisados no mesmo diagrama.

Diagrama de Estados do Modo Modbus RTU Abaixo temos algumas consideraes a respeito do diagrama de estados apresentado: A transio do estado inicial (Initial State) para o modo ocioso (Idle) necessita de um tempo de espera de t3,5. Esta ao garante o tempo de espera entre quadros; O estado ocioso o estado normal quando os estados de transmisso (emission) e de recepo (reception) no esto ativos; No modo RTU, o enlace de comunicao declarado ocioso quando no existir nenhuma transmisso ativa depois de um intervalo de tempo de pelo menos 3,5 caracteres; Quando o enlace est em estado ocioso, cada caracter transmitido detectado no enlace definido como um incio de um quadro. O enlace passa para o estado ativo. Estando em estado ativo, o fim do quadro detectado quando a transmisso de caracteres no enlace interrompida por um intervalo de tempo superior a 3,5 caracteres; Aps a deteco do fim do quadro, o clculo de CRC e verificao realizado. Aps o campo de endereo analisado para determinar se o quadro destinado a este dispositivo. Se no for, o quadro descartado. Para reduzir o tempo de processamento da recepo, o campo do endereo pode ser analisado assim que for recebido sem esperar o fim do quadro. Neste caso o CRC ser calculado e verificado somente se o quadro destinado a este escravo (quadros broadcast inclusive).

2.3.5.1.2.

Verificao do CRC

O modo RTU inclui um campo de verificao de erro que baseado em um mtodo de Verificao cclica de Redundncia (CRC) includo no contedo da mensagem. O campo de CRC verifica o contedo da mensagem inteira. O campo de CRC contm um valor de 16-bits implementado como dois bytes de 8 bits. O campo de CRC includo como ltimo campo da mensagem. Quando isto realizado, o byte de menor ordem do campo anexado primeiro, seguido pelo byte de maior ordem. O byte CRC de maior ordem o ltimo byte enviado na mensagem. O valor do CRC calculado pelo dispositivo que transmitiu o quadro. O dispositivo que recebe o quadro recalcula o CRC durante a recepo da mensagem, e compara o campo de CRC recebido com o CRC calculado. Se os valores no so iguais, o dispositivo retorna um erro. O clculo do CRC iniciado carregando-se um registrador de 16 bits com todos os bits 1's (65535 decimal). Ento um processo se inicia aplicando-se sucessivamente bytes de 8 bits ao contedo deste registrador. Somente os 8 bits de dados so utilizados para a gerao do CRC. Os bits de incio, parada e paridade no participam do clculo do CRC. Durante a gerao do CRC, cada caracter de 8 bits passa por uma operao de ou exclusivo com o contedo do registrador de 16 bits. Ento o resultado desta operao deslocado no sentido do bit menos significativo com o bit mais significativo sendo preenchido por um zero. O bit menos significativo extrado e examinado. Se este bit for 1, o contedo do registrador sofre nova operao de ou exclusivo com o polinmio gerador do CRC16. Se o bit for 0, nenhum ao executada. Este processo repetido at que 8 deslocamentos tenham sido realizados. Depois do ltimo deslocamento, o prximo byte de 8 bits sofre o mesmo processo de ou exclusivo e deslocamentos descrito acima. O contedo final do registrador, depois de todos os bytes da mensagem terem passado por este processo, o valor do CRC. Quando o CRC anexado a mensagem, o byte de menor ordem ser anexado primeiro, seguido pelo byte de maior ordem. Abaixo apresentado o fluxograma do clculo do CRC para o quadro Modbus. As seguintes consideraes so necessrias para a anlise da figura: XOR = ou exclusivo N = nmero de bits de informao POLY = polinmio de gerao do CRC 16 (1010 0000 0000 0001) Polinmio de gerao utilizado = 1 + X2+X15+X16 No CRC 16 o primeiro byte transmitido o de menor significado.

2.4. Protocolo Modbus TCP/IP sobre Ethernet TCP, que significa Transmission Control Protocol (Protocolo de Controle de Transmisso), e o IP, que Internet Protocol (Protocolo de Internet), correspondem ao principal protocolo de envio e recebimento de dados MS internet. O TCP/IP, portanto, permite que aplicaes comuniquem entre si. O TCP/IP composto por um grupo de protocolos dividido em quatro camadas, funcionando em etapas. Busca-se, com tal diviso, preservar a integridade dos dados que trafegam pela rede. Tais camadas so denominadas de aplicao, transporte, rede e interface, sendo cada uma responsvel por diferentes tarefas (Figura 1.1).

A camada de aplicao responsvel por enviar, receber e processar informaes de outros programas atravs da rede. Ela composta por diversos protocolos, como SMTP (email), FTP (transferncia de arquivos) e HTTP (navegar na internet). A camada de transporte, por sua vez, recebe os dados que foram processados e enviados pela aplicao e verificar sua integridade, dividindo-os em vrios pacotes, que so encaminhados para a rede. Em tal camada os pacotes so recebidos e anexados ao endereo virtual (IP) do computador remetente e do computador destinatrio. Feito isso, h o envio pela internet por meio da interface. Nessa camada os protocolos que sero utilizados iro depender do tipo de rede que ser usada. O Protocolo Modbus TCP/IP (Transmission Control Protocol, Internet Protocol) surgiu com o objetivo de aumentar a velocidade do protocolo Modbus e incrementar sua versatibilidade. Assim, em 1999, surgiu o primeiro protocolo aberto a utilizar o TCP/IP sobre a ethernet, inovando e acrescentando vantagens ao Modbus. O Protocolo Modbus TCP/IP tem a finalidade de auxiliar a comunicao entre sistemas de superviso e controladores lgicos programveis, utilizando-se, para tal de uma rede ethernet como meio fsico de transmisso. Dessa forma, o protocolo Modbus, por meio do TCP/IP, transmitido atravs de redes padro ethernet com controle de acesso ao meio por CSMA/CD. No Modbus TCP/IP os dados so transmitidos no formato hexadecimal, o que possibilita utilizar vrios masters e vrios slaves numa mesma rede. 2.4.1. APLICAO DO PROTOCOLO MODBUS O Protocolo Modbus, desde a dcada de 70, viabiliza a comunicao entre diversos equipamentos. Uma mesma transmisso pode utilizar diferentes meios de transmisses, que sero compatibilizados por meio de gateways, conforme figura a seguir:

A rede TCP/IP (Ethernet com ou sem fio), por sua vez, interliga diversos pontos de um supervisrio na sala de controle modems wireless sobre uma infraestrutura de dados de celular (GSM/GPRS ou CDMA/1XRTT). Com isso, tem-se uma estrutura baseada na da Figura 3.1, mas abrangendo, tambm, supervisrios operando drivers Ethernet e dispositivos em campo seriais. Dessa forma, tais modems funcionam como gateways TCP/IP:

Tal estrutura permite a comunicao simultnea, em tempo real, de todos os pontos remotos com o supervisrio. Assim, a implantao de redes TCP/IP wireless em larga escala extremamente recomendada.

3.

Exemplos de aplicao
3.1 Rede de instrumentao para aplicao em Controle Embarcado

Esta aplicao foi implementada como trabalho de graduao do aluno de Engenharia de Controle e Automao da UFMG, Thiago Amadeu Arruda, que realizou a implementao completa de uma rede baseada em Modbus sobre a camada fsica RS485 com o objetivo de substituir o modelo de comunicao via conexo USB, que era

utilizado no carro autnomo desenvolvido pelo Grupo de Pesquisa e Desenvolvimento de Veculos Autnomos (PDVA) da UFMG. Este trabalho visou a pesquisa e implementao um protocolo que fosse til para trafegar dados de diversos sensores, e/ou outros equipamentos, espalhados ao longo deum veculo autnomo. O veculo autnomo em questo um Chevrolet Astra 16V, cmbio automtico, direo hidrulica e freios ABS mostrado na Figura abaixo, est atualmente equipado com sistemas de controle de freio, de cmbio, direo e acelerao e possui quatro sensores sendo eles: um GPS, um sensor de ngulo do volante, uma IMU e um sensor de velocidade das rodas. Todos estes equipamentos se comunicam via USB com um PC e a introduo da rede visa substituir este sistema, mantendo porm os ns e suas respectivas funes. Aps a anlise de diversas opes de rede, foi escolhido o protocolo Modbus em modo serial RTU (Remote Terminal Unit) para ser a base no desenvolvimento do trabalho. As redes Devicenet, Profibus, Foundation Fieldbus e ASI cumpriam aos requisitos de tempo real, porm, alm de necessitar de conectores e cabos especiais, sua implementao em microcontrolador dificultada pela gama de recursos oferecida nas mesmas. A rede Ethernet Industrial foi descartada pela necessidade da adaptao de controladores de redes em todos os dispositivos. A rede CAN cumpre a todos os requisitos impostos, porm a mesma fornece funcionalidades extras, como possibilidade de ns autnomos ou rede multi-mestre, que no so necessrias neste projeto e dificultam a sua implementao em tempo hbil. No modo RTU (Remote Terminal Unit), cada byte da mensagem contm dois caracteresde 4-bits hexadecimal. A principal vantagem deste modo que a grande densidade de caracteres permite um melhor throughput ( a taxa mdia de mensagens entregues com sucesso em um canal de comunicao) do que o modo ASC-II para a mesma taxa de transmisso. Camada Fsica RS-485 A implementao fsica do Modbus em RS-485 faz-se utilizando uma srie de normas e padres estabelecidos tanto pela EIA/TIA/RS-485 quanto pelos padres exigidos numa comunicao Modbus para alcanar os requisitos necessrios e relevantes para um bom funcionamento da rede. A topologia Daisy Chain a configurao fortemente recomendada pela especificao.

Funcionamento da rede utilizando protocolo Modbus A introduo de uma rede se justifica num ambiente onde vrios dispositivos se comunicam com uma central e realizam funes baseadas em comandos fornecidos pela mesma. A necessidade de introduzir mais equipamentos no Veculo Autnomo, que o principal sistema embarcado visado nesse trabalho, demandou a criao de uma rede. Um prottipo foi montado utilizando um n mestre e dois ns escravos. Utilizando-se de softwares j existentes e em uso no carro autnomo, foram realizadas alteraes

nos mesmos de modo a incluir a rede desenvolvida no sistema. Uma vez modificados, verificou-se o desempenho dos mesmos em relao ao original e as mudanas observadas. Sensor de Velocidade das Rodas O projeto realizado em C via MPLAB e denominado Rodas um n sensor desenvolvido por bolsistas do Laboratrio do CORO (Laboratrio de Computao e Robtica) que visa obter o valor da velocidade em tempo real das rodas do veculo. Este valor obtido com base nos sinais fornecidos pelos sensores de relutncia magntica includos no sistema de freio ABS do veculo e em um conversor freqncia/tenso que lido pelo conversor A/D do PIC (Famlia de microcontroladores fabricados pela Microchip Technology, que processam dados de 8 bits, de 16 bits e, mais recentemente, de 32 bits. Seu nome oriundo de "Programmable Interface Controller") Atuador de Freios O sistema de atuao de freios foi desenvolvido como trabalho final de curso no CORO e consiste em um controlador de motor de corrente contnua. Uma vez recebido um set-point de posio na entrada, este n, utilizando-se de um controlador PI, aciona uma ponte H via PWM do PIC e atua de modo a fazer com que o freio chegue na referncia o mais rapidamente possvel, com determinados limites de oscilao e overshoot a serem respeitados. Concepo do Mestre Para o tipo de rede a ser construda no modelo Mestre/Escravo, o mestre foi um computador porttil PC104 que uma plataforma porttil compatvel com o IBM/PC que possui todas as funcionalidades existentes neste primeiro alm de possuir a interface RS-485, que foi utilizada neste trabalho. A Figura 4.5 mostra uma foto do PC104 utilizado neste projeto. O PC-104 possui todas as caractersticas de um computador pessoal excetuando-se pela memria e processamento reduzidos.

O esquema de teste composto por um mestre, responsvel por coletar os dados de velocidade e enviar um set-point de corrente para o n atuador de freio, e dois ns escravos sendo um deles o n sensor de velocidade das rodas, com endereo de rede 0x43 e o outro o n atuador de freio com seu sistema de controle do motor de corrente CC includo, de endereo 0x44 na rede. O hardware utilizado foi: Mestre: PC104 modelo PFM535i com sada serial padro DB9 RS-485 e software escrito em linguagem C++; Escravo: Microcontrolador PIC18F2550 programado em C via programa MPLAB de distribuio gratuita. Cada placa confeccionada tem um jumper no qual possvel selecionar se haver ou no resistor de terminao de linha e assim cada n pode ocupar qualquer posio ao longo da rede. Todos os ns Escravos na rede Modbus que utilizam esta CPU esto sob a restrio de no se utilizar de alguns recursos do PIC. Neste teste, o mestre (PC104) envia o sinal de inicializao para os dois ns escravos. Aps receber a confirmao de conexo efetuada com sucesso, os dois ns estaro no estado de espera. Depois um tempo de aproximadamente 10 segundos, que o tempo necessrio para o controlador iniciar o algoritmo de controle, so enviadas mensagens com intervalo de 25ms entre cada uma para o n-sensor, obtendo-se assim o valor da tenso e em seguida para o n atuador fornecendo o valor do set-point. Esta ltima sequncia repetida at que se encerre o programa. 3.2 Monitoramento de Emisso de CO2
O esquema abaixo mostra o exemplo de aplicao de rede com protocolo Modbus para controle de emisso de CO2:

O Sistema de monitoramento de resultantes de medio consiste em vrios RTUs (unidades remotas terminais) e uma unidade-mestre; As informaes fluem dos servidores aos RTUs atravs de comunicao serial determinada pelo Protocolo MODBUS.

Quando o cliente responde ao servidor, o cdigo diz ao servidor que aes tomar, baseando na resposta recebida. O sistema recebe dos sensores a informao da concentrao de CO2, e envia central, que toma as decises baseadas nas informaes recebidas.

4.

Fabricantes e folhas de dados

Como um protocolo uma conveno que controla e possibilita uma conexo, comunicao, transferncia de dados entre sistemas computacionais, para a utilizao do Modbus faz-se necessrio a utilizao de diversos componentes que compe uma rede, tais como: cabos, PLCs, computador, gateways, sensores, atuadores, etc. Sendo assim, esse trabalho no abordar itens especficos, uma vez que a montagem da arquitetura de rede e especificao desses itens foge da alada do Engenheiro Mecnico, sendo tarefa muito melhor realizada por Engenheiros da Computao, de Controle e Automao, Eltrica, etc. Cabe ao Engenheiro Mecnico auxiliar esses profissionais no que tange ao desempenho desejado do sistema de controle. Ainda assim, pode-se citar alguns fornecedores dos componentes de uma rede voltados para Modbus, como: Schneider Eletric ABB Group Diversos fornecedores em: http://www.modbus.org/companies.php

5.

Referncias Bibliogrficas

Modelo OSI: http://www.projetoderedes.com.br/artigos/artigo_modelo_osi.php Modbus viso geral sobre o protocolo: http://www.eletronica.org/arq_artigos/ProtocolosCaracterMBUS.PDF http://www.schneiderelectric.pt/documents/product-services/training/doctecnico_redes.pdf http://www.slideshare.net/redesinforma/protocolos-modbus Modbus protocolo de aplicao: http://www.modbus.org/docs/Modbus_Application_Protocol_V1_1b3.pdf Modbus Serial: http://www.modbus.org/docs/Modbus_over_serial_line_V1_02.pdf http://pessoal.utfpr.edu.br/gustavo/Modbus_apostila.pdf Modbus TCP/IP: http://www.modbus.org/docs/Modbus_Messaging_Implementation_Guide_V1_0b.pdf http://www.tecmundo.com.br/o-que-e/780-o-que-e-tcp-ip-.htm

http://www.syspro.com.br/area_conhecimento/artigos/art_003_modbus.pdf http://pt.scribd.com/doc/37284780/Trabalho-Modbus-TCP-IP Aplicaes: http://research.ijcaonline.org/volume57/number20/pxc3883800.pdf http://coro.cpdee.ufmg.br/attachments/061_Monografia.pdf