aula modbus
TRANSCRIPT
1
PADRÃO MODBUS
Eng. Marcelo Saraiva Coelho
VISÃO GERAL
História
Criado em 1979 para comunicação entre controladores
da MODICON (Schneider).
Especificação aberta desde o inicio.
Fácil operação e manutenção.
Conseqüências
Padrão “de fato” ao ser adotado por vários
fornecedores.
Adotado em vários níveis de aplicações, inclusive
sistemas de supervisão.
PADRÃO MODBUS
Eng. Marcelo Saraiva Coelho
TIPOS DE PROTOCOLOS
2
PADRÃO MODBUS
Eng. Marcelo Saraiva Coelho
PROTOCOLO MODBUS PADRÃO
Escopo do Protocolo
Como o CLP solicita o acesso a outro dispositivo
Como este responderá
Como os erros serão detectados e informados.
Topologia Física
Ponto a Ponto com RS-232.
Barramento Mutiponto com RS-485.
Controle de Acesso ao Meio
Protocolo Mestre-escravo.
PADRÃO MODBUS
Eng. Marcelo Saraiva Coelho
CONTEÚDO DA TRANSAÇÃO
Endereçamento (1 byte)
0 : Usado para “broadcast”.
1 a 247 : Usados pelos escravos.
Código da Função (1 byte)
Estabelece a ação a ser efetuada.
0 a 127 : Funções
128 a 255 : Informe de erro na transmissão.
Bytes de Dados
Informação adicionais necessárias.
Endereços de memória
Quantidade de itens transmitidos
Quantidade de bytes do campo
Verificação de Erros (2 bytes)
LRC ou CRC
3
PADRÃO MODBUS
Eng. Marcelo Saraiva Coelho
CAMADA DE ENLACE
Modos de Transmissão
RTU: Cada byte contem dois dígitos hexadecimais.
ASCII: Cada byte contem um caractere ASCII entre 0 e 9, A a F.
Formação dos Quadros
Definição do inicio e fim da mensagem
RTU: Tempos de silêncio de 3,5 caracteres.
ASCII: Inicia com “:” e termina com “CR” e “LF”.
Conteúdo dos Quadros
Conjuntos de caracteres Hexadecimais de 00 a FF. [LSB ... MSB]
RTU ASCII
PADRÃO MODBUS
Eng. Marcelo Saraiva Coelho
MODELAGEM DOS DADOS
4
PADRÃO MODBUS
Eng. Marcelo Saraiva Coelho
TRANSAÇÃO MODBUS
A identificaA identificaçção dos comandos (funão dos comandos (funçções) de leitura e escrita são ões) de leitura e escrita são diferentes de acordo com o tipo de dado a ser lido ou escritodiferentes de acordo com o tipo de dado a ser lido ou escrito.
• A função 1 efetua a leitura do estado das saídas discretas.
• A função 5 efetua a escrita de uma única saída discreta.
• A função 15 efetua a escrita de múltiplas saídas discretas.
• A função 2 efetua a leitura do estado das entradas discretas.
• A função 4 efetua a leitura dos valores das entradas analógicas.
• A função 3 efetua a leitura dos valores dos registradores de memória.
• A função 6 efetua a escrita de um valor em um registrador de memória.
• A função 16 efetua a escrita de múltiplos valores em registradores de memória.
PADRÃO MODBUS
Eng. Marcelo Saraiva Coelho
TRANSAÇÃO MODBUS
FUNFUNÇÇÃO 1 ÃO 1 -- ReadRead Output Status (Leitura do estado das saOutput Status (Leitura do estado das saíídas discretas)das discretas)
Pergunta:Esta função é usada para se obter o estado de um coil (bit), ou de vários coils
consecutivos de um Escravo. O campo de Dados deve ser preenchido com o endereço
inicial do coil, seguido pela quantidade de coils que se deseja saber o estado. A
quantidade máxima de coils permitida pelo software dos instrumentos é 30.
5
PADRÃO MODBUS
Eng. Marcelo Saraiva Coelho
TRANSAÇÃO MODBUS
FUNFUNÇÇÃO 1 ÃO 1 -- ReadRead Output Status (Leitura do estado das saOutput Status (Leitura do estado das saíídas discretas)das discretas)
Pergunta:A mensagem abaixo pede ao escravo de endereço 17 que retorne o estado dos
coils 19 ao 39 (21 coils ao todo)..
PADRÃO MODBUS
Eng. Marcelo Saraiva Coelho
TRANSAÇÃO MODBUS
FUNFUNÇÇÃO 1 ÃO 1 -- ReadRead Output Status (Leitura do estado das saOutput Status (Leitura do estado das saíídas discretas)das discretas)
Resposta:O campo de Dados deve conter o número de caracteres a serem enviados (sempre
relativo ao modo RTU), seguido dos caracteres com a resposta. A resposta deve ser enviada de forma compactada. Cada coil deve corresponder a um bit. Cada conjunto de 8 coils deve formar um caracter. O bit menos significativo deve corresponder ao endereço mais baixo. Quando o número de coils não for múltiplo de 8, os bits não preenchidos devem conter 0.
6
PADRÃO MODBUS
Eng. Marcelo Saraiva Coelho
TRANSAÇÃO MODBUS
FUNFUNÇÇÃO 1 ÃO 1 -- ReadRead Output Status (Leitura do estado das saOutput Status (Leitura do estado das saíídas discretas)das discretas)
Resposta:A mensagem a seguir responde ao Mestre que os coils 20, 23, 24, 26, 28-30, 35,
36, 38 e 39 estão ativos. Os demais coils estão inativos.
PADRÃO MODBUS
Eng. Marcelo Saraiva Coelho
TRANSAÇÃO MODBUS
FUNFUNÇÇÃO 3 ÃO 3 -- ReadRead Holding Holding RegisterRegister (Leitura dos valores dos registradores (Leitura dos valores dos registradores de memde memóória) 4XXXXria) 4XXXX
Pergunta:Estas funções são usadas para se obter o conteúdo de um ou vários registros
consecutivos de um Escravo. O campo de Dados deve ser preenchido com o endereço
inicial do registro, seguido pela quantidade de registros que se deseja saber o valor. A
quantidade máxima de registros permitida pelo software dos instrumentos é 15.
7
PADRÃO MODBUS
Eng. Marcelo Saraiva Coelho
TRANSAÇÃO MODBUS
FUNFUNÇÇÃO 3 ÃO 3 -- ReadRead HoldingHolding RegisterRegister (Leitura dos valores dos registradores (Leitura dos valores dos registradores de memde memóória) 4XXXXria) 4XXXX
Pergunta:A mensagem abaixo pede ao Escravo de endereço 17 que retorne o valor dos
registro 40096, 40097 e 40098 (3 registros ao todo).
PADRÃO MODBUS
Eng. Marcelo Saraiva Coelho
TRANSAÇÃO MODBUS
FUNFUNÇÇÃO 3 ÃO 3 -- ReadRead Holding Holding RegisterRegister (Leitura dos valores dos registradores (Leitura dos valores dos registradores de memde memóória) 4XXXXria) 4XXXX
Resposta:O campo de Dados deve conter o número de caracteres a serem enviados
(sempre relativo ao modo RTU), seguido dos caracteres com a resposta.
8
PADRÃO MODBUS
Eng. Marcelo Saraiva Coelho
TRANSAÇÃO MODBUS
FUNFUNÇÇÃO 3 ÃO 3 -- ReadRead Holding Holding RegisterRegister (Leitura dos valores dos registradores (Leitura dos valores dos registradores de memde memóória) 4XXXXria) 4XXXX
Resposta:A mensagem abaixo responde ao Mestre que o valor dos registros 40096; 40097 e
40098 valem 555, 0 e 100 respectivamente.
PADRÃO MODBUS
Eng. Marcelo Saraiva Coelho
TRANSAÇÃO MODBUS
FUNFUNÇÇÃO 16 ÃO 16 -- PresetPreset MultipleMultiple RegistersRegisters (Escrita de m(Escrita de múúltiplos valores em ltiplos valores em registradores de memregistradores de memóória.)ria.)
Pergunta:Esta função é usada para se modificar o valor de um ou vários registros do Escravo ao
mesmo tempo. O campo de Dados deve ser preenchido com o endereço inicial do conjunto de registros, seguido pela quantidade de registros a serem modificados, o número de caracteres a serem enviados e os novos valores dos registros. A quantidade máxima de registros permitida pelo software dos instrumentos é 15.
9
PADRÃO MODBUS
Eng. Marcelo Saraiva Coelho
TRANSAÇÃO MODBUS
FUNFUNÇÇÃO 16 ÃO 16 -- PresetPreset MultipleMultiple RegistersRegisters (Escrita de m(Escrita de múúltiplos valores em ltiplos valores em registradores de memregistradores de memóória.)ria.)
Pergunta:A mensagem a seguir pede ao Escravo de endereço 17 que mude o valor do registro 96
para 10 e o valor do registro 97 para 258
PADRÃO MODBUS
Eng. Marcelo Saraiva Coelho
TRANSAÇÃO MODBUS
FUNFUNÇÇÃO 16 ÃO 16 -- PresetPreset MultipleMultiple RegistersRegisters (Escrita de m(Escrita de múúltiplos valores em ltiplos valores em registradores de memregistradores de memóória.)ria.)
Resposta:O campo de Dados deve ser preenchido registros e a quantidade de registros
modificados.
10
PADRÃO MODBUS
Eng. Marcelo Saraiva Coelho
TRANSAÇÃO MODBUS
FUNFUNÇÇÃO 16 ÃO 16 -- PresetPreset MultipleMultiple RegistersRegisters (Escrita de m(Escrita de múúltiplos valores em ltiplos valores em registradores de memregistradores de memóória.)ria.)
Resposta:Para o exemplo acima, o Escravo deve retornar a seguinte mensagem:
PADRÃO MODBUS
Eng. Marcelo Saraiva Coelho
TRANSAÇÃO MODBUS
EXERCEXERCÍÍCIOCIO
Supondo um sistema integrado com CONTROLADOR + Microcomputador rodando software supervisório, sendo que o CONTROLADOR utiliza o protocolo de comunicação MODBUS/RTU, via RS232. O endereço de rede do CONTROLADOR é 23(10).
MONTE a estrutura (Frame) de comunicação completa, para uma leitura do valor do endereço de memória 40011, 40013 e 40015 que são respectivamente os registros dememória de um CONTROLADOR, correspondente a PV, MV e SP. Considerar que o conteúdo do endereço de memória 40011 deste controlador esteja com o valor 43,6%, endereço de memória 40013 esteja com o valor 20,2% e o endereço de memória 40015esteja com o valor 65%.
Obs.: Os valores armazenados no controlador são iguais ao valor percentual multiplicado por 10, ou seja 35,7% = 357;
Resposta:Pergunta (Micro) Þ __ __ __ __ __ __ __ __ __ __ __
Resposta (CONTROLADOR) Þ __ __ __ __ __ __ __ __ __ __ __.
11
PADRÃO MODBUS
Eng. Marcelo Saraiva Coelho
TRANSAÇÃO MODBUS
EXERCEXERCÍÍCIOCIO
Supondo um sistema integrado com CONTROLADOR + Microcomputador rodando software supervisório, sendo que o CONTROLADOR utiliza o protocolo de comunicação MODBUS/RTU, via RS232. O endereço de rede do CONTROLADOR é 23(10).
MONTE a estrutura (Frame) de comunicação completa, para a leitura do valor do endereço de memória 00004, 00005 e 00007 que são respectivamente os coils do CONTROLADOR, correspondente a modo AUTO/MAN, Estado do alarme 3 e estado do alarme 4. Considerar que o conteúdo do endereço de memória 00004 deste controlador esteja em MAN=1, endereço de memória 00005 esteja acionado e o endereço de memória 00007 esteja desacionado
Resposta:Pergunta (Micro) Þ __ __ __ __ __ __ __ __ __ __ __
Resposta (CONTROLADOR) Þ __ __ __ __ __ __ __ __ __ __ __.
PADRÃO MODBUS
Eng. Marcelo Saraiva Coelho
TRANSAÇÃO MODBUS
RELARELAÇÇÃO DE COILS (bitÃO DE COILS (bit’’s) E SEUS ENDERs) E SEUS ENDERÇÇOS OS
DO CONTROLADOR PRESYS mod. DCYDO CONTROLADOR PRESYS mod. DCY--2050 LIGHT2050 LIGHT
12
PADRÃO MODBUS
Eng. Marcelo Saraiva Coelho
TRANSAÇÃO MODBUS
RELARELAÇÇÃO DE REGISTROS E SEUS ENDERÃO DE REGISTROS E SEUS ENDERÇÇOS OS
DO CONTROLADOR PRESYS DO CONTROLADOR PRESYS mod.DCYmod.DCY--2050 LIGHT2050 LIGHT
PADRÃO MODBUS
Eng. Marcelo Saraiva Coelho
TRANSAÇÃO MODBUS
O Mestre solicita uma leitura dos registradores 40108 a 40110 do elemento escravo 06.
A mensagem especifica o endereço inicial como 0107 (006Bh)
13
PADRÃO MODBUS
Eng. Marcelo Saraiva Coelho
TRANSAÇÃO MODBUS
O escravo repete o código da função indicando uma resposta normal.
A quantidade de bytes especifica quantos itens estão sendo retornados.
PADRÃO MODBUS
Eng. Marcelo Saraiva Coelho
MODBUS/TCP
Lançado em 1999, foi o primeiro protocolo aberto a usar ethernet e TCP-IP.
Não distinção entre mestre e escravos ao usar a uma arquitetura cliente servidor.
Conexões através da Porta 502.
Gateways disponíveis para o Modbus RTU
Encapsulamento TCP
14
PADRÃO MODBUS
Eng. Marcelo Saraiva Coelho
LIGAÇÃO ELÉTRICA DA COMUNICAÇÃO MODBUS DOS CONTROLADORES PRESYS
PADRÃO MODBUS
Eng. Marcelo Saraiva Coelho
MÓDULOS OPCIONAIS PARA COMUNICAÇÃO DOS CONTROLADORES PRESYS
15
PADRÃO MODBUS
Eng. Marcelo Saraiva Coelho
LIGAÇÃO ELÉTRICA DA COMUNICAÇÃO MODBUS DOS CONTROLADORES PRESYS
PADRÃO MODBUS
Eng. Marcelo Saraiva Coelho
LIGAÇÃO ELÉTRICA DA REDE RS485 DOS CONTROLADORES PRESYS