Vous êtes sur la page 1sur 9

DRIVER MODICON MODBUS

Nome do arquivo: Fabricante: Equipamentos: Protocolo: Verso: ltima atualizao: Plataforma: Dependncias:

Modbus.DLL Modicon Qualquer equipamento compatvel com o protocolo Modbus v1 Modbus v1 2.02 DRV 11/05/2007 DOC 16/05/2007 Win32 IOKit v1.06 ou superior

Apresentao
Este driver implementa o protocolo Modbus Master/Slave, que permite ao Elipse atuar como Mestre em uma rede Modbus, comunicando-se com qualquer equipamento escravo que implemente o protocolo Modbus nos modos ASCII, RTU ou Modbus TCP. O protocolo MODBUS um protocolo baseado em mensagens de comando e resposta, posicionado no nvel 7 do modelo OSI, que possibilita comunicao cliente/servidor entre equipamentos conectados a diferentes tipos de redes. Oferece servios com funes definidas por um cdigo de 8 bits. Existem trs categorias de cdigos de funes: Cdigos de Funes Pblicas: Funes bem definidas pelo protocolo, com garantia de unicidade, validadas pela comunidade Modbus.org e publicamente documentadas em MB IETF RFC. Cdigos de Funes Definidas pelo Usurio: Funes no-padronizadas, que no precisam de aprovao da Modbus.org, portanto sem qualquer garantia de unicidade, podendo ser livremente implementadas. Cdigos de Funes reservadas: Cdigos atualmente usados por alguns fabricantes em produtos antigos, no disponveis para uso pblico. Este driver implementa todas as funes pblicas, com exceo das funes 22, 23 e 43, bem como algumas funes especficas de fabricantes. O protocolo Modbus foi desenvolvido inicialmente pela Modicon (atual Schneider Electric) em 1979, sendo hoje um padro aberto, implementado por centenas de fabricantes em milhares de equipamentos. Maiores informaes referentes ao protocolo Modbus podem ser obtidas no site www.modbus.org. Este driver possui suporte a superblocos (Read Grouping) a partir da verso 2.01.

Configurao do driver
Parmetros [P] de configurao do driver
P1 No utilizado. P2 No utilizado. P3 No utilizado. P4 No utilizado.

Driver Modicon Modbus

elipsesoftware

Este driver no utiliza os parmetros [P]. Todas as configuraes de comunicao devem ser realizadas nas janelas de configuraes do driver.

Janela de configuraes do driver


Na janela de configuraes do driver temos diversas guias, dentre as quais a guia Modbus contm todas as configuraes especficas deste driver, descritas neste manual. As demais guias referem-se configurao do IOKit, a biblioteca de comunicao do Elipse. As configuraes do IOKit encontram-se descritas no manual do usurio do IOKit, instalado junto com o E3.

Figura 1 Janela de configuraes do driver

NOTE: The standard TCP/IP port used with Modbus TCP mode is port 502.

Modbus Functions
Aqui so especificadas as funes do driver a serem utilizadas nos parmetros N2/B2 dos tags. A cada cdigo de funo do driver devem ser especificadas funes Modbus para Leitura e Escrita, alm do tipo de dado que ser manipulado.

Driver Modicon Modbus

elipsesoftware

As funes Modbus implementadas so as seguintes: Tabela 1: funes de leitura do protocolo Modbus


OPO DESCRIO

01 02 03 04 07 20

Leitura de Bit (Read Coil Status - 0x) Leitura de Bit (Read Input Status - 1x) Leitura de Words (Read Holding Registers - 4x) Leitura de Words (Read Input Registers - 3x) Leitura de Status (Read Exception Status) Leitura da Memria Estendida (Read General Reference - 6x)

Tabela 2: funes especiais de leitura


OPO DESCRIO

65 03

Leitura da Memria de Massa (somente para o equipamento ABB MGE 144)

Tabela 3: funes de escrita do protocolo Modbus


OPO DESCRIO

05 06 15 16 21

Escrita de Bit (Force Single Coil - 0x) Escrita de Word Simples (Preset Single Register - 4x) Escrita de Bits (Force Multiple Coils - 0x) Escrita de Words (Preset Multiple Registers - 4x) Escrita na Memria Estendida (Write General Reference - 6x)

Tabela 4: funes especiais de escrita


OPO DESCRIO

65 01 65 02

65 01 - Zera medidor de energia (somente para o equipamento ABB MGE 144) 65 02 - Zera memria de mximo e mnimo (somente para o equipamento ABB MGE 144)

Tabela 5: tipos de formatos de dados do driver


OPO DESCRIO

Char Byte Int8 Int16 Int32 Word Dword Float Double String BCD

Bit

Palavra de 8 bits, caracter. Palavra de 8 bits sem sinal. Palavra de 8 bits com sinal. Palavra de 16 bits com sinal. Palavra de 32 bits com sinal. Palavra de 16 bits sem sinal. Palavra de 32 bits sem sinal. Ponto flutuante de 32 bits (IEEE 754) (4 bytes na ordem: EXP F2 F1 0). Real de 64 bits. Palavra de N chars (texto). Valor numrico BCD (decimal codificado em binrio). Quando utilizando este tipo, a aplicao deve fornecer um valor decimal positivo e inteiro, a ser enviado no formato BCD, respeitando o tamanho especificado. O campo size, no caso do tipo BCD, refere-se ao nmero de bytes a serem enviados para representar o valor. Uma vez que na codificao BCD cada algarismo ser convertido em um nibble, temos que os valores permitidos devem possuir um nmero mximo de algarismos igual ao dobro do valor especificado no campo size. Ou seja, se for selecionado 2 para o campo size, o mximo valor que poder ser enviado ser 9999. J se size=4, o valor mximo ser 99999999. Os valores permitidos para o campo size no caso de tipos BCD so 2 (WORD) e 4 (DOUBLE WORD). Para maiores detalhes sobre a codificao BCD, consulte a nota Codificao BCD deste manual. Tipo selecionado automaticamente quando uma funo de acesso a bits selecionada. As funes de acesso a bits so as seguintes: 01, 02, 05 e 15. O campo size no usado para tipos bits. Quanto este tipo usado, cada elemento de bloco passa a representar um bit.
3

Driver Modicon Modbus

elipsesoftware

As demais opes disponveis na janela das configuraes extras do driver so as seguintes: Size: Deve ser informado o tamanho em bytes de cada elemento do tipo de dado selecionado. Este campo preenchido automaticamente para tipos de dados com tamanho fixo, como os tipos BYTE, WORD e int16, devendo ser preenchido para dados tipo string e BCD. No caso de strings, este tamanho define exatamente o nmero de bytes enviados ou recebidos para cada valor string, i.e., para cada tag PLC ou elemento de bloco. Se a string lida ou escrita tiver um tamanho menor, o restante dos bytes ser preenchido com zeros, de forma a completar o tamanho configurado. O tipo string neste driver no possui um limite mximo de tamanho definido, sendo este limite o limite mximo permitido pelo protocolo para a rea de dados do frame de uma determinada funo. Rev Frame: Indica que o sentido dos bytes no frame est invertido. Se estiver habilitada, esta opo faz com que toda a rea de dados do frame de comunicao tenha sua ordem invertida. Swap Byte: Indica que o driver dever inverter a ordem dos bytes um a um, para obter o valor. Swap Word: Indica que o driver dever inverter a ordem dos bytes dois a dois (em words) para obter o valor. Swap Dword: Indica que o driver dever inverter a ordem dos bytes quatro a quatro (em dwords) para obter o valor. Import Configuration: Esta opo permite importar configuraes de funes de verses anteriores a 2.0 do driver Modbus Master/Slave, que armazenavam essas configuraes em um arquivo modbus.ini. Este driver no utiliza mais arquivos .ini para armazenar tais configuraes, que agora so armazenadas no prprio arquivo da aplicao. Export Configuration: Esta opo faz a operao inversa da anterior, gerando um arquivo .ini contendo as configuraes de funes, no mesmo formato das verses anteriores deste driver. Desta forma possvel guardar em um arquivo as configuraes de funes, que podem ser usadas em outras aplicaes. Os botes Add/Edit/Remove definem a lista de funes Modbus que sero utilizadas no sistema. Boto Add: Adiciona um novo item a lista. Boto Edit: Atualiza um item selecionado na lista. Boto Remove: Remove um item selecionado na lista. NOTA: As opes Rev Frame, Swap Byte, Swap Word e Swap Dword foram acrescentadas para permitir compatibilidade com equipamentos que no seguem o padro do protocolo Modbus na codificao dos dados. O protocolo Modbus padro transfere os dados com os bytes mais significativos primeiro. Se estas opes permanecerem desabilitadas, o comportamento do driver corresponder ao padro do protocolo, sendo esta a opo recomendada para a maioria dos equipamentos. Tabela 6: protocol options
OPO DESCRIO

Use Older Address

Modbus mode

Habilita a informao, de modo direto, do valor da posio de memria (o driver automaticamente subtrai 1 do valor informado, antes de enviar o frame de comunicao). Esta opo til porque o endereamento dos dados no protocolo Modbus inicia em zero, enquanto que nos equipamentos os endereos freqentemente iniciam em 1, de forma que o endereo zero no frame de comunicao corresponderia posio 1 da rea de dados acessada no controlador. Nessa caixa de combinao possvel selecionar o modo a ser utilizado. So trs as opes disponveis: modo RTU (default), modo ASCII, ou ModbusTCP.

Driver Modicon Modbus

elipsesoftware

Default Slave Address Este recurso permite configurar um endereo padro de escravos, de forma a no precisar configur-lo em cada tag. Para usar este recurso, basta configurar o parmetro N1/B1 como 1000. Ou seja, todos os tags que tiverem B1/N1=1000 tero este valor substitudo pelo valor configurado na caixa de edio 'Default Slave Address'. Tambm possvel forar o uso do endereo padro em todos os tags, independente do valor configurado em N1/B1, marcando-se a opo 'Force Default Address'. Swap address delay Esta opo deve normalmente ser deixada desabilitada. Em raras situaes, existem controladores que precisam de uma pausa entre a troca de escravos, i.e., um tempo de espera aps a comunicao com um determinado equipamento, antes de o driver se comunicar com um outro equipamento com endereo de escravo diferente. Se este for o caso, pode-se definir este atraso em ms. Wait Silence on error Se esta opo estiver habilitada, aps cada erro de comunicao o driver ficar em loop recebendo dados at ocorrer timeout. Isto limpa o canal de recepo, impedindo que ocorram problemas em futuras comunicaes devido recepo de bytes atrasados, que ainda estejam trafegando no momento do erro, e que possam ser confundidos com a resposta a um novo comando. Codificao BCD A codificao BCD (Binary Coded Decimal, ou Decimal Codificado em Binrio) foi originalmente concebida para contornar limitaes quanto ao nmero mximo de dgitos passveis de serem representados nos formatos mais tradicionais de armazenamento de valores. Formatos como a representao de nmeros reais em ponto flutuante mostram-se normalmente aceitveis para clculos matemticos e cientficos. Porm, erros de aproximao causados pela existncia de algarismos que no possam ser representados por problemas de overflow ou underflow, podem no ser admissveis em certas aplicaes, como em procedimentos financeiros. Para superar este tipo de limitao foi desenvolvida a codificao BCD, que permite a representao de nmeros at o ltimo algarismo. Nessa representao, cada algarismo decimal representado em binrio de per si, sem limitaes no que se refere ao nmero de algarismos. A tabela abaixo mostra os algarismos decimais e seus valores correspondentes em BCD:
Tabela 7: Cdigos BCD dos algarismos decimais de 0 a 9
DECIMAL BCD DECIMAL BCD

0 1 2 3 4

0000b 0001b 0010b 0011b 0100b

5 6 7 8 9

0101b 0110b 0111b 1000b 1001b

A fim de melhorar a eficincia desta codificao, comum representar-se dois algarismos por byte, j que cada algarismo decimal requer apenas 4 bits para sua codificao. Tal representao chamada de BCD comprimido (packed BCD), e a representao utilizada por este driver. Ou seja, os pacotes enviados por este driver com valores BCD utilizam um byte de dado para cada dois algarismos do valor decimal representado. Por isso o campo Size, no caso de tipos de dado BCD, deve ser definido como a metade do nmero mximo de algarismos a serem representados nos valores a serem lidos ou escritos.

Driver Modicon Modbus

elipsesoftware

Configurao em modo off-line


As configuraes do driver tambm podem ser acessadas em tempo de execuo se o driver for iniciado no modo OFF-LINE, usando-se as seguintes strings: Tabela 8: parmetros de configurao do driver
PARMETRO TIPO

ModiconModbus.ModbusMode

ModiconModbus.Olderaddr ModiconModbus.UseDefaultSlaveAddress ModiconModbus.DefaultSlaveAddress ModiconModbus.UseSwapAddressDelay ModiconModbus.SwapAddressDelay ModiconModbus.WaitSilenceOnError

Integer: 0 - Modbus RTU 1 - Modbus ASCII 2 - Modbus TCP Boolean (0 ou 1) Boolean (0 ou 1) Unsigned integer Boolean (0 ou 1) Integer Boolean (0 ou 1)

Para maiores informaes sobre a configurao OFF-LINE em tempo de execuo (run-time), ver manual do usurio do IOKit, instalado juntamente com o E3.

Referncia de tags
Os tags deste driver permitem ler e escrever em registros Modbus em equipamentos escravos, usando-se funes do protocolo Modbus. Os dados so lidos do equipamento no formato WORD de 16 bits, conforme especificao do protocolo, mas podem ser formatados de acordo com um dos tipos de dados suportados pelo driver (ver tabela 5), antes de serem retornados aplicao. Na janela de configuraes do driver podem ser definidas funes do driver, compostas por funes do protocolo Modbus para leitura e escrita, e de um formato especfico de dados. Essas funes podem ser referenciadas atravs dos parmetros N2/B2 dos tags de acesso a registros. Alm dos tags de acesso a registros Modbus, temos tambm tags especiais para leitura da ltima exceo, definidos por B2=9999, conforme explicado mais adiante neste manual.

Parmetros [N] de endereamento para tags tipo PLC


LEITURA/ESCRITA DE REGISTRADORES MODBUS (N1=Endereo Escravo, N2=Funo do Driver, N3=No usado, N4=Endereo do Registrador) Este tag permite acesso a registros Modbus em equipamentos escravos. N1: Endereo do CLP na rede (1 a 255, ou 0 para broadcast) N2: Referencia uma funo do driver, a qual deve ser definida na janela de configuraes do driver.
LEITURA ESCRITA

Parmetros [B] de endereamento para tags tipo bloco


LEITURA/ESCRITA DE REGISTRADORES MODBUS (B1=Endereo Escravo, B2=Funo do Driver, B3=No usado, B4=Endereo do Registrador) Este tag permite acesso a registros Modbus em equipamentos escravos. B1: Endereo do CLP na rede (1 a 255, ou 0 para broadcast) B2: Referencia uma funo do driver, a qual deve ser definida na janela de configuraes do driver.
LEITURA ESCRITA

Driver Modicon Modbus

elipsesoftware

TAG ESPECIAL DE LEITURA DA LTIMA EXCEO LEITURA (B1=Endereo Escravo, B2=9999, B3=No usado, B4=No usado) ESCRITA Este tag l ou escreve em um registrador interno do driver, que registra o ltimo cdigo de exceo enviado por um determinado equipamento escravo. Para cada comunicao bem sucedida com este equipamento que no retorne exceo, o driver automaticamente atribuir zero a este registrador. Como este tag aceita escrita, o usurio tem a possibilidade de zer-lo manualmente, por script. Os elementos 1, 2 e 3 especificam os parmetros do tag do driver que gerou a exceo registrada. Caso tais informaes no sejam necessrias, pode-se alternativamente acessar o cdigo da ltima exceo com um tag PLC anlogo, com N1=endereo e N2=9999. O timestamp retornado por este tag representa o momento em que a exceo foi recebida do equipamento. A seo Uso dos tags especiais para leitura do cdigo da ltima exceo deste manual fornece algumas dicas de como utilizar adequadamente este recurso.
VALORES

Elemento[0]: Cdigo da exceo (ver tabela 9) Elemento[1]: Parmetro N2/B2 do tag gerador da exceo Elemento[2]: Parmetro N3/B3 do tag gerador da exceo Elemento[3]: Parmetro N4/B4 do tag gerador da exceo

Uso dos tags especiais para leitura do cdigo da ltima exceo


Conforme j mencionado neste manual, os tags especiais para leitura do cdigo da ltima exceo so utilizados para ler o ltimo cdigo de exceo enviado por um determinado equipamento escravo. Tais cdigos so armazenados automaticamente pelo driver em registradores internos, que podem ser acessados por meio deste tag. Alm disso, a cada comunicao bem sucedida com determinado equipamento, em que nenhuma exceo for retornada, o driver zera automaticamente o registrador associado ao mesmo. Os cdigos de exceo so usados pelo escravo para informar uma falha ao executar uma determinada funo. Os equipamentos escravos no retornam excees no caso de falhas de comunicao, situao em que estes simplesmente no respondem. Os cdigos de exceo so retornados pelos escravos em situaes em que a solicitao do mestre foi recebida com sucesso, porm no pde ser executada por algum motivo, como, por exemplo, a tentativa de ler ou escrever em um registrador inexistente. Neste caso o cdigo de exceo retornado indica o tipo de erro ocorrido. A especificao do protocolo Modbus define 9 cdigos de exceo, os quais so apresentados na tabela 9 deste manual. Alm destes cdigos, alguns fabricantes definem cdigos adicionais, especficos de seus equipamentos. A forma mais usual de utilizar este tag, durante o scan normal dos tags de funes, atravs de um evento OnRead do tag de exceo. Neste caso o script deve antes de tudo rejeitar valores nulos, pois estes indicam o no recebimento de excees. Em seguida pode-se tratar a exceo, executando os procedimentos adequados, conforme o cdigo recebido. Constitui-se em uma boa prtica zerar o registrador de exceo ao sair do script, de forma a indicar que a exceo j foi tratada. Veja o exemplo abaixo, em Elipse Basic (Elipse SCADA):

// EVENTO OnRead DA TAGEXC // Obs: Para este exemplo, considere TAGEXC com leitura e escrita automatica habilitadas IF TAGEXC==0 RETURN ENDIF IF TAGEXC==1 ... // TRATA EXCECAO 1

Driver Modicon Modbus

elipsesoftware

ELSEIF TAGEXC==2 ... // TRATA EXCECAO 2 ELSE ... ENDIF TAGEXC=0 // ZERA REGISTRADOR DE EXCECOES // TRATA DEMAIS EXCECOES

J nas operaes de escrita por script, em que se precise testar o retorno de excees logo em seguida ao envio do comando, deve-se primeiramente zerar o registrador de excees. Isto evita que uma eventual exceo provocada pelo comando de escrita seja confundida com uma preexistente. Executa-se ento a operao de escrita e testa-se o valor do tag especial, que deve retornar zero caso nenhuma exceo tenha sido recebida. Caso o mesmo retorne um valor diferente de zero, pode-se ento tratar apropriadamente a exceo recebida. Veja o exemplo abaixo, em Elipse Basic (Elipse SCADA):
// Obs: Para este exemplo, considere TAGEXC com leitura e escrita automtica habilitadas, // e TAG com escrita automtica desabilitada. TAGEXC=0 // ZERA REGISTRADOR DE EXCECOES TAG = 10 TAG.WRITE() IF TAGEXC<>0 ... ENDIF // TRATA EXCECAO

OBS: O tag especial B2=9999 retorna, alm do cdigo da exceo (retornado no elemento zero), tambm os parmetros do tag cuja comunicao teria provocado a exceo. Caso essas informaes no sejam necessrias, pode-se perfeitamente ler o mesmo registro atravs de um tag PLC com N2=9999. Neste caso os procedimentos recomendados permanecem os mesmos. Tabela 9: Cdigos de exceo padronizados pelo protocolo Modbus
CDIGO NOME SIGNIFICADO

ILLEGAL FUNCTION ILLEGAL DATA ADDRESS ILLEGAL DATA VALUE

4 5

SLAVE DEVICE FAILURE ACKNOWLEDGE

O cdigo de funo recebido no vlido. Isso pode indicar que a funo no est implementa, ou que o escravo encontra-se em um estado inadequado para process-la. Endereo de dados recebido no um endereo vlido. Mais especificamente, a combinao do endereo de referncia e a quantidade de dados a serem transferidos invlida. Valor presente na requisio do Mestre no vlido. Isto indica uma falha na estrutura de dados remanescente de uma requisio complexa, como quando o tamanho informado para o bloco de dados no est correto. Esta exceo no indica que os valores submetidos para escrita estejam fora do escopo esperado pela aplicao, uma vez que tal informao no acessvel ao protocolo. Ocorreu um erro irrecupervel durante o processamento da funo solicitada. Usado com comandos de programao. O escravo aceitou a mensagem e a est processando. Porm este processamento lever um longo tempo. Esta exceo previne um time-out no mestre. O fim da requisio deve ser testado por um processo de polling.

Driver Modicon Modbus

elipsesoftware

CDIGO

NOME

SIGNIFICADO

SLAVE DEVICE BUSY

MEMORY PARITY ERROR

0A

GATEWAY PATH UNAVAILABLE

0B

GATEWAY TARGET DEVICE FAILED TO RESPOND

Usado com comandos de programao. Indica que o escravo est processando um outro comando de longa durao, e que a solicitao deve ser retransmitida mais tarde, quando o escravo estiver novamente disponvel. Usado em conjunto com as funes 20 e 21, reference type 6, para indicar que a rea extendida de arquivos falhou em um teste de consistncia. O equipamento escravo pode estar precisando de manuteno. Usado em conjunto com gateways, para indicar que o gateway no foi capaz de alocar um caminho interno para o processamento da solicitao. Geralmente indica que o gateway est desconfigurado ou sobrecarregado. Usado em conjunto com gateways, para indicar que no foi recebida nenhuma resposta do equipamento destino. Geralmente indica que tal equipamento no est presente na rede.

Histrico de revises do driver


VERSO DATA AUTOR COMENTRIOS

2.02 2.01

11.05.2007 23.01.2007

A. Quites A. Quites

2.00 1.00

10.11.2006

A. Quites R. Farina

- Corrigido bug na leitura de blocos de tipos no WORD com superblocos habilitado (case 8243) - Implementao do recurso de superblocos (case 6185) - Melhorada consistncia de parmetros N2/B2 de tags de acesso a registros (case 7714) - Corrigido bug na leitura de blocos de dados tipo BCD de tamanho 4 (case 7728) - Corrigido bug na leitura de blocos de strings (case 7804) Verso original com IOKit (case 3339). Todas as verses anteriores ao controle de revises.

Driver Modicon Modbus

Vous aimerez peut-être aussi