Nome do Arquivo
Fabricante
Equipamentos
Protocolo
Verso
ltima Atualizao
Plataforma
Dependncias
Leitura com Superblocos
Nvel
MODBUS.DLL
Modicon
Qualquer equipamento compatvel com o protocolo Modbus v1.1b
Modbus v1.1b
3.1.30
01/04/2016
Win32 e Windows CE (Pocket PC ARM, HPC2000 ARM, HPC2000 X86 e
HPC2000 MIPS)
Sem dependncias
Sim
0
Introduo
Este Driver implementa o protocolo Modbus, permitindo a uma aplicao Elipse comunicar com qualquer
equipamento escravo que implemente este protocolo nos modos ASCII, RTU ou TCP.
Este Driver atua sempre como mestre de uma rede Modbus. Se houver necessidade de comunicar com
dispositivos mestre, necessrio utilizar o Driver Modbus Slave da Elipse, que pode ser baixado no site da
empresa.
O Driver Modbus, a partir da verso 2.00, passou a ser desenvolvido com a biblioteca IOKit da Elipse. Esta
biblioteca responsvel por implementar o acesso ao meio fsico (Serial, Ethernet, Modem ou RAS). Para
obter informaes sobre a configurao do IOKit, consulte o Manual do Usurio do IOKit.
Recomenda-se iniciar a leitura pelo tpico Guia de Configurao Rpida caso o equipamento seja
perfeitamente aderente ao protocolo Modbus padro, definido pela Organizao Modbus (modbus.org), e se
houver apenas a necessidade de ler ou escrever bits e registros, no necessitando dos recursos mais
avanados do Driver.
Para o entendimento mais aprofundado de todas as funcionalidades do Driver recomenda-se iniciar lendo,
nesta ordem, os captulos Adicionando o Driver em uma Aplicao Elipse e Configurao.
Para a criao de aplicaes de grande porte, recomenda-se tambm a leitura do tpico Dicas de
Otimizao.
Caso no conhea o protocolo, consulte os seguintes tpicos:
O Protocolo Modbus
Sites Recomendados
Funes Suportadas
Funes Especiais
Copyright 2001-2016 Elipse Software Ltda. Todos os direitos reservados.
Inserindo o Driver
Se estiver utilizando o Elipse E3 ou o Elipse Power, leia o tpico Adicionando o Driver em uma Aplicao
Elipse - Elipse E3 e Elipse Power.
Se estiver utilizando o Elipse SCADA, leia o tpico Adicionando o Driver em uma Aplicao Elipse - Elipse
SCADA.
Depois, leia o passo seguinte deste Manual, que ensina como configurar o Driver em sua janela de
configurao para os casos mais comuns.
Na janela que se abre, selecione o Driver (o arquivo deve ser descompactado em uma pasta no computador
em uso) e clique em Open (Abrir).
Selecionando o Driver
Driver
Aps a configurao das propriedades do Driver, clique em OK para que se abra a janela do Tag Browser,
permitindo inserir na aplicao Tags pr-definidos, com base nas configuraes mais utilizadas. A figura a
seguir mostra a janela do Tag Browser. Para adicionar Tags, arraste-os da lista Tags available from driver
(Tags disponibilizados pelo driver) para a lista Tags from current project (Tags do projeto corrente).
Os Tags disponveis no Tag Browser so Tags configurados usando Strings, novo mtodo que no utiliza o
antigo conceito de operaes. Insira os mais adequados na aplicao, editando os campos conforme a
necessidade. A janela do Tag Browser pode ser aberta posteriormente clicando-se em
Tag Browser.
Elipse SCADA
Atravs do Organizer, selecione o item Drivers e clique em New (Novo).
Na janela que se abre, selecione o Driver (o arquivo deve ser descompactado em uma pasta no computador
em uso) e clique em Open (Abrir).
Selecionando Driver
Driver no Organizer
Para que o Driver funcione corretamente, ainda preciso configur-lo em sua janela de configurao. Para
abrir esta janela, mostrada na figura a seguir, clique em Extra (Extras).
O segundo passo do Guia de Configurao Rpida mostra como configurar o Driver para os casos de uso
mais comuns, para equipamentos que aderem aos requisitos do protocolo Modbus padro. No tpico
Propriedades a configurao descrita em detalhes, incluindo os recursos avanados de configurao.
Configurando o Driver
Aps inserir o Driver na aplicao, deve-se abrir a sua janela de configuraes, conforme j explicado nos
tpicos Elipse E3 ou Power ou Elipse SCADA. Com a janela de configurao aberta, siga estes passos:
1. Configure a camada fsica de comunicao:
a. Na aba Setup, selecione a camada fsica (Serial, Ethernet, Modem ou RAS) a ser utilizada na conexo
com o equipamento.
b. Configure a camada fsica selecionada na aba correspondente (Serial, Ethernet, Modem ou RAS).
c. Se precisar de mais informaes sobre a configurao da camada fsica, consulte o Manual do
Usurio do IOKit.
2. Na aba Modbus, selecione o modo do protocolo (RTU, ASCII ou TCP) utilizado pelo equipamento. Como
regra geral, deve-se selecionar RTU ou ASC (para a maioria dos equipamentos RTU) para meio fsico
Serial ou Modem, ou TCP para meio fsico Ethernet ou RAS. As demais opes em geral podem ser
deixadas com suas configuraes padro. Caso precise de mais informaes sobre as opes desta aba,
consulte o tpico Aba Modbus.
NOTA: Em novas aplicaes, recomenda-se fortemente evitar o uso de ModbusRTU (modo RTU)
encapsulado em meio Ethernet TCP/IP. Entretanto, se por algum motivo, para aplicaes legadas, for
necessrio usar ModbusRTU encapsulado em TCP/IP, no deixe de habilitar a opo Reconnect after
Timeout, descrita no tpico Aba Modbus.
3. Caso se esteja criando a aplicao em produtos mais recentes da Elipse Software como o E3, Elipse Power
ou Elipse OPC Server, possvel utilizar a configurao de Tags por Strings (campos Dispositivo e Item).
Neste caso, v para o passo seguinte deste guia.
4. Caso precise ainda utilizar a antiga configurao numrica (parmetros N/B), usada no Elipse SCADA,
importante examinar a aba Operations. Observe as sete operaes padro j pr-configuradas no Driver.
As operaes so configuraes de funes e formataes de dados que so posteriormente referenciadas
pelos Tags da aplicao. Estas sete operaes padro, j disponveis quando o Driver aberto pela
primeira vez, so as mais comumente necessrias. Avalie as funes de leitura e escrita e o tipo de dados
usado por cada operao e verifique quais delas so necessrias para a aplicao. Caso as operaes prdefinidas no se enquadrem nas necessidades, necessrio edit-las ou mesmo criar novas operaes. Se
for este o caso, leia o tpico Aba Operations. A tabela a seguir lista as sete operaes pr-definidas.
Operaes pr-definidas
OPERAO
1
3: Read Holding
Registers
DWord
3: Read Holding
Registers
Int16
3: Read Holding
Registers
Int32
3: Read Holding
Registers
Float
1: Read Multiple
Coils
2: Read Discrete
Inputs
Bit
Bit
FINALIDADE
Leitura e escrita de
inteiros de 16 bits
sem sinal
Leitura e escrita de
inteiros de 32 bits
sem sinal
Leitura e escrita de
inteiros de 16 bits
com sinal
Leitura e escrita de
inteiros de 32 bits
com sinal
Leitura de valores
com ponto flutuante
de 32 bits
Leitura e escrita de
bits
Leitura de bits de
um bloco de dados
de Entradas
Discretas (Discrete
Inputs)
NOTA: As sete operaes padro esto configuradas partindo do princpio que o equipamento segue o
ordenamento de bytes (byte order) padro do protocolo Modbus, o padro big endian, no qual os bytes mais
significativos vm antes. Se o equipamento no segue este padro, consulte o tpico Aba Operations para
informaes sobre como configurar operaes para diferentes ordenamentos de bytes.
Para informaes detalhadas sobre a configurao do Driver, leia o tpico Configurao.
Copyright 2001-2016 Elipse Software Ltda. Todos os direitos reservados.
O passo seguinte demonstra como configurar Tags de Comunicao com base nas operaes pr-definidas.
Add (Adicionar) e
2. Na janela Adding IOTag (Inserindo IOTag), configure o campo Quantity (Quantity) com o valor 1 (um) e
especifique um nome para o Tag no campo Name (Nome). Clique em OK para criar o novo Tag.
3. Na coluna Device (Dispositivo), digite o valor numrico do Slave Id do equipamento a comunicar, seguido
de dois pontos, como por exemplo "1:" para um Slave Id igual a 1 (um). Note que, em um meio Ethernet
TCP/IP, muitas vezes este valor ignorado, sendo utilizado apenas o endereo IP e a porta configurada na
aba Ethernet, que deve constar na documentao do equipamento.
Copyright 2001-2016 Elipse Software Ltda. Todos os direitos reservados.
Configurao Numrica
No caso do E3 ou do Elipse Power, possvel usar o Tag Browser para criar Tags com as operaes prdefinidas, configuradas numericamente. Para isto, selecione a opo Show Operations in Tag Browser na
aba Operations.
A janela do Tag Browser, mostrada na figura a seguir, aberta ao clicar-se em OK ao fechar a janela de
configuraes do Driver.
O Protocolo Modbus
O Protocolo Modbus foi desenvolvido inicialmente pela Modicon em 1979, sendo hoje um padro aberto,
mantido pela Organizao Modbus (modbus.org), tendo sido implementado por centenas de fabricantes em
milhares de equipamentos. A Schneider Electric, atual controladora da Modicon, transferiu os direitos do
protocolo para a Organizao Modbus em abril de 2004, firmando o compromisso de manter o protocolo
aberto. A especificao pode ser obtida gratuitamente no site da Organizao (www.modbus.org), e a
utilizao do protocolo livre de taxas de licenciamento.
O protocolo baseado em mensagens de comando e resposta, posicionado no nvel 7 do modelo OSI
(camada de aplicao), que possibilita comunicao cliente e servidor entre equipamentos conectados a
diferentes tipos de redes. Oferece servios com funes definidas por um cdigo de oito 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 e publicamente documentadas em MB IETF RFC. Podem assumir
valores de 1 a 64, de 73 a 99 e de 111 a 127.
Cdigos de funes definidas pelo usurio: Funes no padronizadas, que no precisam de
aprovao da Modbus.org, sem qualquer garantia de unicidade, podendo ser livremente
implementadas. Podem assumir valores nas faixas de 65 a 72 e de 100 a 110.
Cdigos de funes reservadas: Cdigos com valores dentro da faixa de funes pblicas, atualmente
Copyright 2001-2016 Elipse Software Ltda. Todos os direitos reservados.
usados por alguns fabricantes em produtos antigos, e no mais disponveis para uso pblico. So
exemplos os cdigos 9, 10, 13, 14, 41, 42, 90, 91, 125, 126 e 127. Para mais informaes, consulte o
Anexo A da especificao do protocolo (verso 1.1b), que est disponvel no site oficial do protocolo.
Este Driver implementa 11 das 19 funes pblicas previstas na verso atual (1.1b) da especificao do
protocolo, bem como algumas funes especficas de fabricantes ou relacionadas a recursos especficos do
Driver, denominadas Funes Especiais. As funes pblicas implementadas so descritas no tpico Funes
Suportadas. As seguintes funes pblicas do protocolo ainda no so suportadas:
Funo 08: Diagnostic
Funo 11: Get Com event counter
Funo 12: Get Com Event Log
Funo 17: Report Slave ID
Funo 22: Mask Write Register
Funo 23: Read/Write Multiple Registers
Funo 24: Read FIFO queue
Funo 43: Read Device Identification
Caso identifique a necessidade de implementar alguma destas funes, entre em contato com o
departamento comercial da Elipse Software.
Sites Recomendados
O Driver Modicon Modbus Master (ASC/RTU/TCP) est disponvel para download (sem custos) no site da
Elipse Software, na rea de download de Drivers.
Maiores informaes referentes ao protocolo Modbus podem ser obtidas em www.modbus.org, site oficial do
protocolo.
O Elipse Modbus Simulator est disponvel para download (sem custos) no site da Elipse Software, na rea
de download do E3.
O Simulador Modbus Slave Modsim, provavelmente o mais conhecido da categoria, pode ser adquirido em
www.win-tech.com/html/modsim32.htm. Este software emula o equipamento, permitindo a comunicao
com o Driver.
Existe tambm a alternativa gratuita Free Modbus PLC Simulator, disponvel para download no site
www.plcsimulator.org.
Outras alternativas de simuladores e outras ferramentas de software relacionadas ao protocolo podem ser
encontradas no site oficial do protocolo.
Funes Suportadas
As funes do protocolo Modbus suportadas por este Driver esto descritas a seguir.
Funes de Leitura
Copyright 2001-2016 Elipse Software Ltda. Todos os direitos reservados.
Funes Especiais
As funes especiais de leitura e escrita so funes deste Driver que no so definidas pelo protocolo
Modbus padro. Foram desenvolvidas para atender particularidades exclusivas de determinados
equipamentos, ou tambm para disponibilizar, de forma padronizada pelo Driver, recursos no disponveis no
protocolo padro. O Driver Modbus, na atual verso, inclui as seguintes funes especiais:
Funes de Leitura
65 03: Leitura da Memria de Massa (ABB MGE 144), vista em maiores detalhes no tpico Leitura de
Registros da Memria de Massa de Medidores ABB MGE 144
GE SOE: Leitura de eventos (GE PAC RX7 Systems), vista em maiores detalhes no tpico Leitura de
Buffer de Eventos em Controladores GE PAC RX7
SP SOE: Leitura de eventos (Rels Schneider Electric da srie SEPAM), vista em maiores detalhes no
tpico Leitura de Eventos de Rels Schneider Electric SEPAM 20, 40 e 80
GenSOE: Leitura de SOE com algoritmo genrico, implementado pelo software residente no
Copyright 2001-2016 Elipse Software Ltda. Todos os direitos reservados.
equipamento escravo (CLP), vista em maiores detalhes no tpico Algoritmo de Leitura de SOE
Genrico da Elipse Software
Funes de Escrita
65 01: Reinicializa (executa a operao de reset) o medidor de energia (ABB MGE 144). Este comando
enviado como um comando simples de escrita (Write) do Tag. O campo Valor do Tag ignorado pelo
Driver e pode ser deixado em 0 (zero). Para mais informaes, consulte o manual do equipamento
65 02: Zera a memria de mximos e mnimos (ABB MGE 144). Este comando enviado como um
comando simples de escrita (Write) do Tag. O campo Valor do Tag ignorado pelo Driver e pode ser
deixado em 0 (zero). Para mais informaes, consulte o manual do equipamento
Note que as funes especiais neste Driver, com exceo da funo de escrita 65 01, esto relacionadas
direta ou indiretamente leitura de registros de memria de massa dos respectivos equipamentos. Para mais
informaes, consulte o tpico Leitura de Memria de Massa. Para a descrio da configurao de
operaes e Tags usando estas funes, leia o tpico Configurao.
Configurao
Esta seo descreve como configurar o Driver Modbus. So abordados os seguintes tpicos:
Propriedades
Configurando Tags
Leitura de Memria de Massa
Propriedades
As propriedades do Driver podem ser configuradas em tempo de configurao (design time) ou em tempo de
execuo (run time). A configurao em tempo de execuo (run time) tambm chamada de Configurao
em Modo Offline e descrita em um tpico especfico.
Em tempo de configurao, o Driver pode ser configurado por meio de sua janela de configurao, mostrada
na figura a seguir.
Para abrir a janela de configurao do Driver no E3 ou no Elipse Power, clique duas vezes no objeto Driver no
Organizer e clique em Driver settings (Configurar o driver), conforme mostrado na figura a seguir.
J no Elipse SCADA, a janela de configurao do Driver pode ser aberta clicando-se em Extras, no Organizer
Copyright 2001-2016 Elipse Software Ltda. Todos os direitos reservados.
da aplicao.
A janela de configurao dividida em vrias abas, algumas para a configurao do IOKit e outras
especficas do Driver. No caso do Driver Modbus, as abas Modbus, Operations e Gen SOE so especficas.
As demais abas so para configurao do IOKit e no so descritas neste Manual. Para mais informaes
sobre a configurao do IOKit, consulte o Manual do Usurio do IOKit.
Os tpicos a seguir descrevem as abas especficas do Driver e tambm a configurao em tempo de
execuo, no chamado Modo Offline, utilizando scripts.
Aba Modbus
Aba Operations
Aba Gen SOE
Configurao em Modo Offline
Aba Modbus
A aba Modbus permite a configurao de parmetros do Driver e do protocolo, conforme a figura a seguir.
seguir.
Opes de protocolo disponveis na aba Modbus
OPO
Modbus Mode
DESCRIO
Nessa caixa de seleo possvel selecionar o modo
do protocolo a ser utilizado. Os modos do protocolo so
variaes definidas pela norma para melhor adapt-lo
a diferentes meios fsicos (Serial, Ethernet TCP/IP,
RAS, etc.). So trs as opes disponveis:
Modo RTU: Modo padro para uso em comunicao
serial. Inclui CRC de 16 bits.
Modo ASCII: Tambm usado em comunicao serial,
utilizado em equipamentos mais simples, que no
suportam os requisitos do modo RTU. Utiliza
caracteres ASCII para transmisso, onde cada byte
contm dois caracteres ASCII (um por nibble), e por
isto menos eficiente que o modo RTU e mais
raramente encontrado no mercado. Usa LRC
(Longitudinal Redundancy Checking) para a
verificao de erros.
Modo ModbusTCP: Usado para comunicao em
modo TCP/IP. Inclui um campo para verificao de
transaes e no possui sistema de verificao de
erros. O campo de transao permite descartar
respostas atrasadas, evitando assim que o Driver
assuma como resposta vlida para o comando atual
os frames de resposta a comandos anteriores. Esta
situao pode ocorrer se os modos anteriores forem
encapsulados em TCP/IP.
Se habilitada, esta opo permite definir um tamanho
mximo personalizado para o PDU (Protocol Data Unit).
O PDU a parte do protocolo que no varia entre os
modos (ModbusTCP, ASCII e RTU) e que contm a rea
de dados. O nmero de bytes de dados suportados em
cada comunicao dado por este valor menos os
bytes do cabealho, que dependem da funo Modbus
utilizada. Se esta opo est desabilitada, o tamanho
mximo considerado o valor padro definido pelo
protocolo Modbus verso 1.1b, de 253 bytes. Esta a
opo recomendada para a maioria dos equipamentos.
Esta opo deve ser usada apenas em equipamentos
que suportem o protocolo TeleBUS. Se habilitada, o
Driver passa a aceitar um Word de 16 bits como
endereo do escravo, ou seja, passa a ser possvel
definir valores acima de 255 e abaixo de 65535 como
endereo do escravo. Neste caso, o endereo do
escravo passa a ser definido no protocolo por trs
bytes. Alm disto, a opo Default Slave Address
passa a no funcionar mais.
OPO
Data Address Model Offset
DESCRIO
Esta opo habilita ou desabilita o offset de dados
padro do protocolo, de uma unidade. As opes
disponveis so:
Data is addressed from 1 (padro): O endereo
fornecido (endereo do campo Item na configurao
por Strings ou o parmetro N4/B4 na configurao
numrica) decrementado em 1 (um) antes de ser
enviado ao equipamento. Este offset previsto na
especificao do protocolo, e portanto esta a opo
padro.
Data is addressed from 0: O endereo fornecido pelo
usurio usado nas requisies do protocolo, sem
alteraes.
Como regra geral, selecione a primeira opo caso o
mapa de registradores do equipamento inicie em 1
(um) e a segunda caso inicie em 0 (zero). Verifique
tambm se o fabricante usa offsets adicionais da
antiga Modbus Convention. Para mais informaes,
consulte a seo a seguir.
DICA: Evite usar o modo RTU do protocolo encapsulado em meio Ethernet TCP/IP. Caso seja necessrio
encapsular a comunicao serial de equipamentos que utilizem o Modbus RTU em TCP/IP, existem
gateways disponveis no mercado que no somente encapsulam a comunicao serial em Ethernet TCP/IP,
como tambm convertem o Modbus RTU em Modbus TCP. Em ltimo caso, se for inevitvel a utilizao de
Modbus RTU em meio Ethernet TCP/IP, no deixe de habilitar a opo Reconnect after Timeout, descrita
na tabela a seguir.
Data Address Model Offset
Esta opo de configurao, descrita na tabela anterior, fonte de frequentes dvidas no endereamento
dos Tags de Comunicao, pois h muitas variaes na maneira como implementada pelos fabricantes. A
seguir apresentamos mais informaes sobre este endereamento.
No modelo de dados padro do protocolo so definidos quatro blocos de dados (ou espaos de
endereamento): Discrete Inputs, Coils, Input Registers e Holding Registers. Em cada um destes blocos os
elementos de dados so endereados iniciando em 1 (um). Por outro lado, a especificao do frame de
comunicao define um PDU contendo endereos que podem variar entre 0 (zero) e 65535. A relao entre o
endereo fornecido no PDU e o endereo dos elementos de dados, portanto, possui um deslocamento (offset)
de 1 (um), ou seja, se no PDU de uma requisio constar o endereo 0 (zero), o elemento de dado acessado
o endereo 1 (um).
Com esta opo da aba Modbus, o usurio pode escolher se deseja que o Driver ajuste o valor
automaticamente, de forma a permitir o uso do endereo do elemento de dado nos Tags (opo padro), ou
se deseja que o valor enviado no PDU seja o mesmo valor fornecido na configurao dos Tags (parmetro
N4/B4 na configurao numrica). Existem equipamentos que seguem o padro Modbus em seus mapas de
endereos (iniciando em um) e outros que mapeiam seus dados sem o offset padro, usando diretamente o
valor de endereo presente no frame de comunicao (iniciando em zero).
Alm deste offset unitrio, existem ainda equipamentos que utilizam o antigo padro de offsets utilizado pela
Modicon, empresa criadora do protocolo, padro conhecido como Modbus Convention, detalhado no tpico
Dicas de Endereamento. Consulte no manual do equipamento o mapa de registradores para verificar o
Copyright 2001-2016 Elipse Software Ltda. Todos os direitos reservados.
DESCRIO
Este recurso permite configurar um endereo padro
de escravos para que no seja necessrio configurlos em cada Tag. Para utilizar este recurso, configure
o Slave Id (parmetro N1/B1 na configurao
numrica ou o campo Dispositivo na configurao
por Strings) em 1000, ou seja, todos os Tags com
Slave Id igual a 1000 tm 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 de Slave Id configurado, selecionando-se a
opo Use Default Address.
Se esta opo estiver habilitada, aps cada erro de
comunicao o Driver permanece em loop, recebendo
dados at que ocorra um time-out. Isto limpa o canal
de recepo e impede 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 uma
resposta a um novo comando.
OPO
Reconnect after Timeout (Ethernet only)
DESCRIO
Com esta opo habilitada, aps qualquer erro de
time-out na recepo de frames do equipamento, o
Driver promove a desconexo e a reconexo da
camada fsica, limpando a conexo de possveis
frames atrasados que estejam em trfego e que
possam afetar futuras requisies. Esta opo deve
sempre ser habilitada caso seja inevitvel o uso de
Modbus RTU em meio Ethernet TCP/IP em sistemas
legados, uma vez que o modo RTU no possui
controle de transao, portanto nem sempre
possvel distinguir um frame de resposta correto de
um outro frame atrasado resultante de leitura
anterior, possivelmente de outro endereo, e que
tenha falhado por time-out. Para novos projetos,
recomenda-se fortemente que NO sejam utilizados
os modos Modbus RTU ou Modbus ASC em meio
Ethernet TCP/IP. Note que preciso manter
habilitada a opo Retry failed connection every da
aba Setup do IOKit para que o Driver se reconecte
aps o time-out. Caso contrrio, o time-out apenas
gera uma desconexo e cabe aplicao o
gerenciamento desta nova conexo.
NOTA: A antiga opo Swap Address Delay foi removida da janela de configurao na verso 2.08. O
Driver ainda mantm suporte a esta opo em aplicaes pr-existentes e permite habilit-la por scripts
(veja o tpico Configurao em Modo Offline). Para aplicaes novas, recomenda-se utilizar a opo
Inter-frame Delay da aba Serial do IOKit, que substitui esta antiga opo com vantagens.
Aba Operations
Este tpico descreve a configurao da aba Operations da janela de configurao do Driver, onde so
definidas as operaes utilizadas nos Tags de Comunicao, mostrada na figura a seguir.
A configurao de operaes no mais usada na configurao de Tags por Strings, sendo usada apenas
na antiga configurao numrica (parmetros N/B) do Elipse SCADA.
Operaes
Para o correto funcionamento deste Driver, necessrio definir quais as funes Modbus de leitura ou
escrita so utilizadas para cada Tag de Comunicao. Para isto, caso a configurao dos Tags seja realizada
atravs dos antigos parmetros numricos N/B do Elipse SCADA, deve-se selecionar a aba Operations na
janela de configuraes.
Para este Driver, so chamadas Operaes as configuraes que definem como cada Tag de Comunicao
executa a leitura e a escrita de dados no equipamento.
Uma operao nada mais do que a definio de um par de funes do protocolo, uma para escrita e
outra para a leitura, e a especificao de converses adicionais no formato dos dados que podem ser
associados aos Tags da aplicao. Em outras palavras, no Driver Modbus os parmetros numricos N ou B
dos Tags de Comunicao no referenciam diretamente as funes do protocolo, mas sim operaes prconfiguradas, que por sua vez no s informam as funes (nativas do protocolo ou mesmo especiais) a
serem usadas na comunicao, como tambm a forma como os dados nativos do protocolo devem ser
interpretados.
A configurao dos parmetros dos Tags de Comunicao descrita mais adiante no tpico Configurando
um Tag de Comunicao. A seguir descrita a configurao das operaes, que mais tarde devem ser
associadas a cada Tag de Comunicao.
NOTA: As operaes funcionam apenas como modelos, ou templates, para a configurao de Tags de
Comunicao, sendo possvel, e em geral necessrio, atribuir uma mesma operao a diversos Tags, que
tm em comum o mesmo valor em seus parmetros N2/B2.
Funes
O protocolo Modbus define funes de leitura e escrita, as quais podem acessar espaos de endereamento
distintos no equipamento, e com tipos de dados especficos. As funes 03 e 16 por exemplo, as mais usadas
do protocolo, so responsveis respectivamente pela leitura e escrita de Holding Registers, que nada mais
so do que valores inteiros sem sinal de 16 bits (Words).
As funes do protocolo Modbus padro fornecem dados apenas em formatos bsicos de Bit e Word de 16
bits. No existem formatos de dados adicionais na especificao do protocolo.
A lista das funes Modbus suportadas pelo Driver, e que podem ser atribudas s operaes configuradas,
pode ser conferida no tpico Funes Suportadas.
Alm das funes do protocolo, o Driver tambm contm algumas Funes Especiais que no fazem parte do
protocolo padro, de formato proprietrio e utilizadas em geral para a leitura de eventos (SOE).
Formatao de Dados
Alm de permitir a associao das funes (do protocolo ou especiais) a Tags especficos, as operaes
tambm permitem a definio de formatao adicional a ser aplicada aos dados, possibilitando o suporte a
tipos de dados adicionais, no especificados pelo protocolo, como por exemplo valores de ponto flutuante de
32 bits (Float) e 64 bits (Double). Os tipos de dados suportados so descritos no tpico Tipos de Dados
Suportados.
importante observar que, quando tipos de dados de 32 e 64 bits so definidos nas operaes, necessrio
definir funes do protocolo que trabalhem com registros de 16 bits. Desta forma, a leitura de dados com
mais de 16 bits resulta na leitura de vrios registros Modbus de 16 bits do equipamento, ou seja, para a
leitura de um Tag associado a uma operao que defina o tipo de dado Float de 32 bits, o Driver precisa ler
dois registros consecutivos de 16 bits do equipamento, concaten-los e realizar a converso para o formato
Float.
Tambm possvel definir tipos de dados de oito bits (Byte, Int8 ou Char) nas operaes. Note que, uma vez
que as funes do protocolo no permitem a leitura e escrita de bytes isolados, para cada dois Elementos de
Bloco de tipos de dados de oito bits, o Driver obrigado a acessar um registro distinto de 16 bits no
equipamento. Por este motivo, o Driver no permite a escrita de tipos de dados de oito bits em Tags, em
Elementos isolados de Bloco ou em Blocos de tamanho mpar ou unitrio. A escrita de tipos de dados de oito
bits deve ser realizada sempre em Blocos de tamanho par.
Tipos de Dados Definidos pelo Usurio
Alm dos tipos de dados pr-definidos (tipos de dados nativos ou built-in) descritos no tpico Tipos de Dados
Suportados, este Driver permite tambm tipos de dados definidos pelo usurio. Estes tipos de dados devem
ser declarados em janela especfica, clicando-se em User Defined Types na parte inferior da aba
Operations. Tais tipos de dados consistem em estruturas criadas a partir dos tipos de dados pr-definidos.
Para mais informaes sobre os tipos de dados definidos pelo usurio, consulte o tpico Tipos de Dados
Definidos pelo Usurio.
Byte Order
Alm das funes de leitura e escrita do protocolo e do tipo de dado utilizado, cada operao permite
tambm atribuir manipulaes adicionais aos bytes, relacionadas ao chamado byte order, ou seja, a ordem
dos bytes dentro de cada valor. So as chamadas opes de swap (Swap Bytes, Swap Words e Swap DWords).
Copyright 2001-2016 Elipse Software Ltda. Todos os direitos reservados.
Tais opes somente necessitam ser habilitadas no caso de equipamentos que no respeitem a ordem de
bytes padro do protocolo.
O protocolo Modbus define que seus valores de 16 bits utilizam sempre o byte order chamado de big endian,
tambm conhecido como Motorola, por ser utilizado por este fabricante. O padro big endian define sempre
a ordem dos bytes de tal forma que o byte mais significativo de cada valor venha sempre antes. Desta forma,
por exemplo, na leitura do valor hexadecimal 1234h, o equipamento envia primeiro o byte mais significativo
12h e logo a seguir o menos significativo, 34h.
No caso de equipamentos que no implementem o byte order padro do protocolo e que utilizem o chamado
little endian ou Intel, os dados so enviados com os bytes menos significativos antes. preciso ento
habilitar as opes de swap para inverter a ordem dos bytes.
H ainda equipamentos que usam byte orders diferentes para tipos de dados de 32 e 16 bits. No caso, por
exemplo, de equipamentos que usem o byte order padro do Modbus (big endian) para tipos de dados de 16
bits, porm forneam dados de 32 bits com o Word menos significativo vindo primeiro (little endian),
necessrio habilitar apenas a opo Swap Words, deixando desmarcada a opo Swap Bytes. Em suma,
pode-se ter basicamente trs situaes:
Caso o equipamento fornea dados usando o byte order padro do protocolo Modbus (Motorola ou big
endian), com os bytes mais significativos vindo antes, deve-se deixar as opes de swap todas
desabilitadas. Esta a situao mais comum.
Caso o equipamento use outro padro de byte order, com os bytes menos significativos vindo antes
(little endian), necessrio habilitar-se todas as opes de swap referentes ao tipo de dados usado, ou
seja, para tipos de dados de 16 bits, habilite a opo Swap Bytes. Para tipos de dados de 32 bits,
habilite as opes Swap Bytes e Swap Words. Para tipos de dados de 64 bits, as trs opes de swap
devem ser habilitadas.
No caso menos comum de equipamentos que usem byte orders diferentes para tamanhos de dados
diferentes, fornecendo por exemplo o byte mais significativo de cada Word primeiro, porm o Word
menos significativo de cada DWord primeiro, preciso avaliar em qual caso cada opo de swap
precisa ser habilitada, de forma a converter o valor retornado pelo equipamento para o formato big
endian padro do protocolo.
NOTA: As opes de swap citadas no tm efeito para tipos de dados Bit ou para tipos de dados com
tamanho de oito bits (Byte, Char e Int8). A permuta ocorre dentro de cada tipo de dados, ou seja, a opo
Swap Words no tem efeito para tipos de dados de 16 bits, assim como a opo Swap DWords no tem
efeito para tipos de dados de 32 bits. Os tipos de dados BCD tambm no permitem swaps.
Para saber se o equipamento utiliza algum formato diferenciado de byte order, consulte a documentao do
fabricante. Caso a informao no seja encontrada na documentao, o suporte tcnico do fabricante deve
ser contactado.
O tpico Dvidas Mais Frequentes contm dicas de configuraes de byte order para alguns equipamentos
para os quais j se sabe ser necessrio utilizar as opes de swap.
Mscara de Bits
A opo Use Bit Mask um recurso avanado, utilizada em casos mais especficos e raros em que o usurio
deseja ler somente um bit do valor retornado pelo equipamento, mas no possvel usar o mapeamento de
bits da aplicao.
Copyright 2001-2016 Elipse Software Ltda. Todos os direitos reservados.
Para a maioria dos usurios, os campos de mapeamento de bits da aplicao so a melhor alternativa para o
acesso mscaras de bits, no sendo preciso recorrer a este recurso do Driver.
Este recurso foi criado originalmente para permitir a leitura de bits de Holding Registers por bibliotecas
especializadas do E3, em situaes que impediam o uso do mapeamento de bits da aplicao.
Neste caso, o Driver l normalmente o valor do equipamento e ento o mascara, de forma a retornar ao
campo Valor do Tag apenas o bit especificado (0 ou 1). A definio do nmero do bit a ser retornado feita
no parmetro N3/B3 do Tag de Comunicao.
A opo Use Bit Mask somente pode ser utilizada com tipos de dados inteiros de 16 bits ou mais (Int16,
Int32, Word ou DWord). Alm disto, operaes que habilitam esta opo podem ser utilizadas apenas para
a leitura. A funo Modbus de escrita (Write) de operaes que utilizam esta opo de mscara podem ser
definidas como None (nenhuma).
Operaes Padro do Driver
Por padro, quando um novo Driver adicionado aplicao, este Driver j criado com sete operaes
padro, descritas na tabela a seguir.
Operaes padro
OPERAO
1
3 - Read Holding
Registers
16 - Write Multiple
Registers
DWord
3 - Read Holding
Registers
16 - Write Multiple
Registers
Int16
3 - Read Holding
Registers
16 - Write Multiple
Registers
Int32
3 - Read Holding
Registers
16 - Write Multiple
Registers
Float
3 - Read Holding
Registers
2 - Read Discrete
Inputs
15 - Write Multiple
Coils
None
Bit
Bit
FINALIDADE
Leitura e escrita de
inteiros de 16 bits
sem sinal
Leitura e escrita de
inteiros de 32 bits
sem sinal
Leitura e escrita de
inteiros de 16 bits
com sinal
Leitura e escrita de
inteiros de 32 bits
com sinal
Leitura e escrita de
valores de ponto
flutuante de 32 bits
Leitura e escrita de
bits
Leitura de bits do
bloco de dados de
Entradas Discretas
(Discrete Inputs)
Estas operaes so as mais comumente usadas, sendo a operao 1 (um) a mais comum. Para a maior
parte dos equipamentos, selecione as operaes necessrias entre as j fornecidas por padro, no sendo
necessrio criar novas operaes ou alterar a configurao das operaes padro.
Definio de Novas Operaes
Para adicionar uma nova operao no Driver, clique em Add.
Copyright 2001-2016 Elipse Software Ltda. Todos os direitos reservados.
Para configurar a nova operao, selecione um nmero para esta operao (este nmero utilizado no
parmetro N2/B2 dos Tags de Comunicao), qual funo deseja utilizar para leitura e qual funo deseja
utilizar para escrita, alm de informar o tipo de dados que lido ou escrito pelo Driver. Note que, ao clicar
em Add, o Driver j sugere um valor que ainda no esteja em uso para a nova operao.
Para mais informaes sobre os tipos de dados suportados, veja o tpico Tipos de Dados Suportados. Os
demais campos devem ser configurados conforme a necessidade. A tabela a seguir contm a descrio
destes campos.
Opes de campos para operaes
OPO
Size
DESCRIO
Deve ser informado o tamanho em bytes de cada
elemento do tipo de dados selecionado. Este campo
preenchido automaticamente para tipos de dados
com tamanho fixo, como Byte, Word e Int16,
devendo ser preenchido para tipos de dados String e
BCD. No caso de Strings, este tamanho define
exatamente o nmero de bytes enviados ou
recebidos para cada valor String, isto , para cada
Tag ou Elemento de Bloco. Se a String lida ou escrita
tem um tamanho menor, o restante dos bytes
preenchido com zeros, de forma a completar o
tamanho configurado. O tipo de dados String neste
Driver no possui um limite mximo de tamanho
definido, este limite o mximo permitido pelo
protocolo para a rea de dados do frame de uma
determinada funo.
Driver Modicon Modbus Master (ASC/RTU/TCP) v3.1.30
OPO
DESCRIO
Indica que o Driver deve inverter a ordem dos bytes,
um a um, para obter o valor.
Indica que o Driver deve inverter a ordem dos bytes,
dois a dois (em Words), para obter o valor.
Indica que o Driver deve inverter a ordem dos bytes,
quatro a quatro (em DWords), para obter o valor.
Habilita o mascaramento de bits de registradores,
atravs do parmetro N3/B3. Esta opo afeta
apenas a leitura e pode ser usada apenas com tipos
de dados inteiros, com ou sem sinal, com pelo menos
16 bits de tamanho (Int16, Int32, Word ou DWord).
Operaes com esta opo habilitada no podem ser
usadas para escrita. Para a maioria dos usurios,
recomenda-se usar o mapeamento de bits da
aplicao, deixando esta opo desmarcada (veja
a seo especfica).
Swap Bytes
Swap Words
Swap DWords
Use Bit Mask
As funes do protocolo que podem ser configuradas nos campos Read e Write das operaes esto
descritas no tpico Funes Suportadas. A tabela a seguir descreve cada uma das opes disponveis.
Opes disponveis na aba Operations
OPO
Import Configuration
Export Configuration
DESCRIO
Esta opo permite importar configuraes de
operaes de verses anteriores 2.0 do Driver
Modbus Master/Slave, que armazenavam estas
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. Para maiores detalhes,
consulte o tpico Importao e Exportao de
Operaes.
Esta opo executa a operao inversa da anterior,
gerando um arquivo INI contendo as configuraes
de operaes, no formato atual ou no mesmo
formato das verses anteriores deste Driver. Desta
forma, possvel guardar em um arquivo as
configuraes de operaes de um determinado
equipamento, que podem ser utilizadas em outras
aplicaes. Para maiores detalhes, consulte o tpico
Importao e Exportao de Operaes.
OPO
Show Operations in Tag Browser
DESCRIO
Se esta opo no estiver selecionada (padro), so
mostrados modelos de Tags configurados por
Strings (campos Dispositivo e Item) no Tag Browser.
Se estiver selecionada, modelos de Tags
configurados numericamente (parmetros N/B),
representando as operaes configuradas, so
mostrados no Tag Browser. Quando novas instncias
do Driver so criadas, esta opo vem desmarcada
por padro. Em aplicaes legadas, quando a verso
do Driver atualizada a partir de uma verso anterior
3.1, a opo j vem selecionada, mantendo o
comportamento das verses anteriores.
Adiciona uma nova operao lista.
Atualiza a operao selecionada na lista (equivale a
clicar duas vezes no item).
Remove a operao selecionada na lista.
Add
Edit
Remove
NOTA: As opes Swap Bytes, Swap Words e Swap DWords, conforme j explicado, foram acrescentadas
para permitir compatibilidade com equipamentos que no seguem o padro do protocolo Modbus na
codificao dos dados (byte order). Se estas opes permanecerem desabilitadas, o comportamento do
Driver corresponde ao padro do protocolo, sendo esta a opo recomendada para a maioria dos
equipamentos.
Tipos de Dados Suportados
A tabela a seguir relaciona os tipos de dados nativos do Driver que podem ser definidos na configurao dos
Tags.
Conforme explicado nos tpicos Configurao por Strings e Aba Operations, o protocolo Modbus em si tem
suporte apenas aos tipos de dados Bit e Word (16 bits) para as funes mais comuns implementadas neste
Driver (a exceo atualmente a funo 7). Todos os demais tipos de dados do Driver so convertidos para
Word no nvel do protocolo, para a leitura ou escrita no equipamento ou dispositivo escravo.
Vale lembrar que este Driver tambm suporta os Tipos de Dados Definidos pelo Usurio, definidos como
estruturas com elementos compostos com os tipos de dados nativos da tabela a seguir.
Na tabela a seguir, os tipos de dados usam as mesmas denominaes dos mnemnicos para o campo tipo
do dado, quando os Tags so configurados por Strings. Na configurao numrica, as mesmas
denominaes so tambm utilizadas na coluna Data da janela de configurao do Driver (na Aba
Operations). Em alguns casos, denominaes alternativas frequentes so apresentadas entre parnteses.
Opes disponveis para tipos de dados
TIPO
FAIXA
Char
-128 a 127
Byte
0 a 255
DESCRIO
Palavra de oito bits, caractere. A
escrita deve ocorrer sempre em
blocos de tamanho par (Words)
Palavra de oito bits sem sinal. A
escrita deve ocorrer sempre em
blocos de tamanho par (Words)
TIPO
FAIXA
Int8
-128 a 127
Int16
Int32
Word (ou UInt)
DWord (ou ULong)
-32768 a 32767
-2147483648 a 2147483647
0 a 65535
0 a 4294967295
Float
-3.4E38 a 3.4E38
Float_GE
-1.427E+45 a 1.427E+45
-1.7E308 a 1.7E308
String
No se aplica
DESCRIO
Palavra de oito bits com sinal. A
escrita deve ocorrer sempre em
blocos de tamanho par (Words)
Inteiro de 16 bits com sinal
Inteiro de 32 bits com sinal
Inteiro de 16 bits sem sinal
Inteiro de 32 bits sem sinal
(Double Word)
Ponto flutuante de 32 bits (IEEE
754) (quatro bytes: EXP F2 F1 0)
Ponto flutuante de 32 bits usado
pela GE, no compatvel com IEEE
754. usado em equipamentos GE
GEDE UPS, com expoente de oito
bits 2[-128 ... + 127] e 24 bits de
mantissa [-223 ... + (223 - 1)].
(quatro bytes: EXP F2 F1 F0). Para
mais informaes, consulte a
documentao do equipamento
Ponto flutuante de 64 bits (IEEE
754)
Texto em formato ANSI, com
nmero determinado de caracteres
ASCII de oito bits (Chars)
TIPO
FAIXA
BCD
Ver descrio
GE_events
Ver descrio
Bit
0 (zero) ou 1 (um)
DESCRIO
Valor numrico BCD (Decimal
Codificado em Binrio). Ao utilizar
este tipo de dados, 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 de dados
BCD, refere-se ao nmero de bytes
a serem enviados para representar
o valor. Uma vez que na
codificao BCD cada algarismo
convertido em um nibble, tem-se
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 o valor
dois para o campo Size, o mximo
valor que pode ser enviado 9999.
J se Size igual a quatro, o valor
mximo 99999999. Os valores
permitidos para o campo Size no
caso de tipos de dados BCD so
dois (Word) e quatro (Double
Word). Para maiores detalhes
sobre a codificao BCD, consulte
o tpico Codificao BCD
Tipo de dados utilizado na leitura
do buffer de eventos (SOE) de CLP
GE PAC RX7. Sua definio
permitida apenas em operaes
que utilizem a funo especial de
leitura GE SOE. Estes eventos so
retornados como blocos de dois
Elementos, com timestamps
definidos pelo controlador. Para
mais informaes, veja o tpico
Leitura de Buffer de Eventos em
controladores GE PAC RX7
Este tipo de dados selecionado
automaticamente quando uma
funo de acesso a bits
selecionada. As funes de acesso
a bits so 01, 02, 05 e 15. O
campo Size no usado para tipos
de dados Bit. Quando este tipo de
dados usado, cada Tag ou
Elemento de Tag Bloco passa a
representar um bit
TIPO
FAIXA
SP_events
Ver descrio
GenTime
Sp_time
UTC64d
DESCRIO
Tipo de dados utilizado na leitura
de eventos (SOE) de rels
Schneider Electric das sries
SEPAM 20, 40 e 80. Sua definio
s permitida quando a operao
utilizar como funo de leitura a
funo especial SP SOE. Estes
eventos so retornados como um
Bloco de trs Elementos, com
timestamp fornecido pelo
equipamento. Para mais
informaes, veja o tpico Leitura
de Eventos de Rels Schneider
Electric SEPAM 20, 40 e 80
Tipo de dados de data e hora
composto por uma estrutura de
oito bytes, criado originalmente
para ser utilizado na leitura de
eventos que usam o algoritmo de
SOE Genrico (GenSOE). Este tipo
de dados pode ser utilizado com as
demais funes do protocolo
Modbus, alm da GenSOE. Como
este formato lido internamente
como uma estrutura de Words, a
nica funo de swap vlida para
este tipo de dados Swap Bytes.
A representao deste tipo de
dados na memria do CLP
descrita no tpico Tipo de Dados
GenTime. Para mais informaes
sobre este tipo de dados, consulte
o tpico Algoritmo de Leitura de
SOE Genrico da Elipse Software
Tipo de dados de data e hora
composto por uma estrutura de
oito bytes, utilizado por rels
Schneider Electric das sries
SEPAM 20, 40 e 80, geralmente
para representar um timestamp.
Para mais informaes, consulte a
documentao do equipamento
Tipo de dados de data e hora
representado em formato Double
(IEEE 754 64 bits), com os
segundos desde 1/1/1970 00:00
TIPO
FAIXA
1/1/1970 00:00 a 31/12/2035
23:59:59.999 (ver nota a seguir)
UTC32
DESCRIO
Tipo de dados de data e hora
representado em formato inteiro
sem sinal de 32 bits (DWord ou
UInt), com os segundos desde
1/1/1970 00:00. Neste formato no
so representados os
milissegundos, sendo considerados
sempre 0 (zero)
NOTA: Embora a representao em si dos tipos de dados de data e hora da tabela anterior possa
representar datas superiores a 31/12/2035, este limite mostrado na tabela pelo fato de os aplicativos da
Elipse Software no possurem suporte, atualmente, para faixas de valores superiores a este limite em
estampas de tempo (timestamps).
Tipo de Dados GenTime
GenTime um tipo de dados de data e hora definido e adicionado originalmente ao Driver para uso com o
Algoritmo de Leitura de SOE Genrico da Elipse Software. Trata-se entretanto de um tipo de dados
genrico, que pode ser usado com praticamente qualquer CLP, de forma simples.
Na aplicao do supervisrio, ou seja, nos valores dos Tags e Elementos de Bloco de Tags Bloco, bem como
no campo Timestamp dos Tags, este tipo de dados, como alis todos os demais tipos de dados de data e
hora do Driver, representado por um tipo de dados de data e hora nativo da aplicao. Para mais
informaes sobre os demais tipos de dados de data e hora suportados pelo Driver, consulte o tpico Tipos
de Dados Suportados. Para mais informaes sobre os tipos de dados de data e hora da aplicao, consulte
o respectivo manual do usurio (existem algumas diferenas do Elipse SCADA para o VBScript utilizado no E3
e Elipse Power).
No CLP ou dispositivo escravo, este tipo de dados representado por uma estrutura composta por quatro
registradores de 16 bits (oito bytes), conforme mostrado na tabela a seguir.
Estrutura dos registradores
OFFSET
CONTEDO
Ano
Dia / Ms
Hora / Minuto
Segundo / Milissegundo
FAIXA (DECIMAL)
Entre 0 e 65535
Entre 0 e 65535
Entre 0 e 65535
Entre 0 e 65535
O endereo base (offset 0), a ser atribudo no parmetro N4/B4 do Tag que acessa o dado, contm o ano. O
registro seguinte (offset 1) tem o dia como o byte mais significativo e o ms como o byte menos significativo.
J no offset 2 tem-se a hora representada no byte mais significativo e os minutos no byte menos significativo.
O quarto registro tem os quatro bits mais significativos do Word representando os segundos, e os bits
restantes (os dois menos significativos do byte mais significativo e o byte menos significativo do inteiro)
representando os milissegundos.
Note que cada Tag que referencie este tipo de dados fora o Driver a ler um bloco de quatro registros
Modbus no equipamento para representar o valor de cada Tag ou Elemento de Bloco para retornar um valor
vlido.
Copyright 2001-2016 Elipse Software Ltda. Todos os direitos reservados.
As vantagens deste tipo de dados so sua simplicidade ( fcil de gerar no ladder do CLP), sua preciso de
milissegundos e sua relativa compactao, no necessitando de suporte nativo no CLP ou dispositivo
escravo.
NOTA: Embora o tipo de dados GenTime em si tenha um tamanho de oito bytes (quatro Words), a nica
opo de swap que tem efeito sobre ele Swap Bytes. Isto porque, conforme visto neste tpico, este tipo
de dados estruturado na memria do CLP como tendo quatro Words, no sendo ele mesmo um tipo de
dados nativo do equipamento, e sim do Driver. Mais informaes sobre as opes de swap (byte order)
podem ser encontradas no tpico Aba Operations.
Tipos de Dados Definidos pelo Usurio
Os tipos de dados definidos pelo usurio, ou estruturas, aps configurados na janela de configurao User
Defined Types, podem ser usados nas operaes do Driver da mesma forma que os tipos de dados prdefinidos.
Estes tipos de dados so na verdade estruturas cujos elementos podem ter tipos de dados nativos
diferentes, ou seja, um tipo de dados definido pelo usurio nada mais do que uma estrutura definida a
partir dos tipos de dados pr-definidos pelo Driver (tipos de dados nativos ou built-in), permitindo ao usurio
configurar Tags Bloco onde cada Elemento pode ter um tipo de dados nativo diferente.
O usurio pode utilizar praticamente todos os tipos de dados pr-definidos pelo Driver em suas estruturas.
Somente no so permitidos os tipos de dados Bit, os tipos de dados de oito bits, os tipos de dados de
tamanho varivel, como String e BCD, e tipos de dados de evento associados funes especficas de SOE.
Uma vez tendo definido um tipo de dados, o usurio pode associ-lo a qualquer Tag, desde que ela utilize
funes Modbus que suportem Words, ou seja, no permitida a associao de um tipo de dados definido
pelo usurio a uma operao que defina como funo de leitura (Read) a funo 01, por exemplo, uma vez
que esta l apenas bits.
Alm da definio dos elementos da estrutura, cujos valores so retornados em Elementos de Bloco, o
usurio pode tambm definir o tipo de timestamp do Tag, bem como o endereo padro para a estrutura,
endereo que usado para o parmetro B4 dos Tags disponveis via Tag Browser do E3.
Aplicaes
Os tipos de dados definidos pelo usurio foram originalmente implementados para uso em conjunto com a
Rotina de SOE Genrico do Driver Modbus (Gen SOE), uma vez que esta rotina executa a leitura de tabelas
de estruturas de dados.
Alm de poder ser utilizado com a rotina genrica de SOE, este recurso pode tambm ser usado para agrupar
tipos de dados diferentes em um mesmo Tag Bloco, otimizando a comunicao em aplicaes que no
contam com o recurso de Superblocos, caso do Elipse SCADA, ou caso o equipamento em uso por algum
motivo no permita o uso de Superblocos (veja o tpico Leitura por Superblocos).
Configurao de Tipos de Dados Definidos pelo Usurio
A configurao de tipos de dados definidos pelo usurio realizada em janela especfica, clicando em User
Defined Types na Aba Operations da janela de configuraes do Driver, conforme a figura a seguir.
A janela de configurao dos tipos de dados definidos pelo usurio permite a edio do arquivo de
configurao das estruturas. Ao abrir a janela pela primeira vez, mostrado o arquivo de configurao padro
(com comentrios), e que define trs tipos de dados de exemplo, que aparecem comentados por comentrios
de mltiplas linhas ("/*" e "*/"), conforme explicado a seguir.
A figura a seguir mostra a janela de configurao de tipos de dados definidos pelo usurio, com um pequeno
arquivo definindo os trs tipos de dados de exemplo.
Note que os comentrios de linha iniciam sempre com "//", identificando tudo o que vier direita, na mesma
linha, como comentrio, seguindo o padro dos comentrios de linha da linguagem de programao C++,
tambm usado por outras linguagens como Java e C#.
Tambm so suportados comentrios de mltiplas linhas, seguindo novamente a mesma sintaxe do C++,
iniciando por "/*" e terminando com "*/". Note que o arquivo exemplo que vem com o Driver j aplica este
formato de comentrio a seus tipos de dados de exemplo, deixando-os comentados por padro. Remova as
linhas indicadas por "/* Sample types entirely commented by default" e "*/" (sem as aspas) para que os trs
tipos de dados de exemplos estejam prontos para o uso.
medida que o texto do arquivo de configurao alterado, a barra de status mostra o resultado da anlise
sinttica do arquivo, em tempo real. Esta barra de status mostra a mensagem "Status: OK!" se no forem
detectados erros no arquivo.
A cada momento, a linha e a coluna da posio do cursor na caixa de edio so sempre mostradas no lado
direito da barra de status. Os erros mostrados na barra de status sempre referenciam ao nmero da linha e
da coluna onde ele foi detectado.
A verificao pode ser feita na ntegra tambm clicando-se em Verify e, em caso de erro, o cursor j
posicionado automaticamente na linha do erro.
A definio de cada tipo tem a seguinte sintaxe (os elementos entre colchetes so opcionais):
formato ANSI padro do Windows (Charset Windows-1252). Futuras verses do Driver podem suportar outros
formatos.
Alm de copiar o arquivo para o disco, pode-se tambm usar as teclas de atalho CTRL + A (Selecionar Tudo),
CTRL + C (Copiar) e CTRL + V (Colar) para copiar e colar o contedo do arquivo em outro Editor de Texto.
A opo Load Default Configuration carrega novamente no editor o arquivo padro de configurao, o
mesmo que j vem carregado no editor quando a janela de configurao aberta pela primeira vez.
NOTA: Ao clicar em Cancel, todas as alteraes realizadas no arquivo so descartadas pelo Driver.
Clicando-se em OK, o arquivo armazenado na aplicao. Esta operao realiza a verificao completa do
arquivo e, se for identificado algum erro, este mostrado e a janela no fechada. Se for preciso salvar
alteraes com erros ainda pendentes, exporte o arquivo ou copie-o e cole-o em outro Editor de Textos.
Utilizando Tipos de Dados Definidos pelo Usurio na Configurao por Strings
Pode-se fornecer nomes de tipos de dados definidos pelo usurio como mnemnicos do campo Tipo do
campo Item, como ocorre com os tipos de dados nativos do Driver, desde que o nome tenha sido previamente
declarado, como explicado anteriormente neste tpico.
IMPORTANTE: Como no E3 o campo Item no diferencia entre minsculas e maisculas, para usar tipos de
dados definidos pelo usurio neste campo necessrio que os nomes dos tipos de dados definidos no
difiram apenas pela caixa alta ou baixa, ou seja, no se deve definir, por exemplo, um tipo de dados com o
nome "tipo1" e outro com o nome "TIPO1". Caso isto ocorra, no possvel usar tipos de dados definidos
pelo usurio no campo Item at que os nomes sejam corrigidos.
Para mais informaes sobre a configurao de Tags usando Strings, consulte o tpico Configurao por
Strings. Exemplo:
Leitura ou escrita de Holding Registers (funes 03 e 06) de endereo 100 do equipamento com Id 5,
interpretado como um tipo de dados definido pelo usurio chamado "mytype", com Slave Id no campo Item:
Dispositivo: "" (empty String)
Item: "5:shr100.mytype"
NOTA: As opes de permuta (ordenamento de bytes) para tipos de dados definidos pelo usurio tm efeito
apenas nos elementos da estrutura definida e no na estrutura inteira, ou seja, se for habilitada a opo
Swap Words, todos os elementos com mais de 16 bits tm seus Words permutados. Os elementos de 16
bits, entretanto, no so alterados.
Utilizando Tipos Definidos pelo Usurio na Configurao Numrica
Aps a definio dos novos tipos de dados no arquivo de configurao na janela User-Defined Types, estes
tipos de dados esto disponveis para uso nas operaes do Driver. Lembre-se que somente as operaes
que utilizam funes Modbus para acesso a registradores de 16 bits, como por exemplo as funes 03, 04, 06
e 16, permitem tipos de dados definidos pelo usurio.
A figura a seguir mostra a configurao de uma nova operao que utiliza o tipo de dados definido pelo
usurio (estrutura) de nome TYPE3, mostrado no exemplo acima, aps o usurio clicar em Add.
Copyright 2001-2016 Elipse Software Ltda. Todos os direitos reservados.
NOTA: As opes de permuta para tipos de dados definidos pelo usurio tm efeito apenas nos elementos
da estrutura definida e no na estrutura inteira, ou seja, se for habilitada a opo Swap Words, todos os
elementos com mais de 16 bits tm seus Words permutados. Os elementos de 16 bits, entretanto, no so
alterados.
Aps a definio da nova operao, usando o novo tipo TYPE3, defina um Tag Bloco com o mesmo tipo de
dados e com tamanho igual ao nmero de elementos da estrutura, conforme mostrado na figura a seguir.
Se foi definido o nome para cada elemento da estrutura, possvel utilizar o Tag Browser do E3 para incluir
um Tag Bloco referente ao tipo de dados desejado na aplicao, sem precisar digitar novamente. Para utilizar
este recurso, necessrio selecionar a opo Show Operations in Tag Browser na aba Operations. A figura
Copyright 2001-2016 Elipse Software Ltda. Todos os direitos reservados.
Em outras palavras, todo Tag de Comunicao que use estruturas e que utilize uma funo pblica de
leitura do protocolo (este recurso no funciona para funes especiais de SOE), torna-se um Tag Reportado
a Eventos se o seu parmetro B3 for configurado com um valor no nulo.
No caso de funes especiais de SOE, como a funo Gen SOE, o retorno reportado a eventos definido pelo
prprio algoritmo proprietrio da funo.
Para mais informaes a respeito da configurao de Tags de Comunicao, consulte o tpico Configurando
um Tag de Comunicao.
IMPORTANTE: Ao ler eventos de memria de massa em Tags reportados a eventos no E3, desabilite a
banda morta no Tag (propriedade EnableDeadBand configurada como Falso) e tambm no objeto Histrico
associado (propriedade DeadBand igual a zero), para evitar a perda de eventos com valores prximos.
Tambm importante desabilitar o histrico por varredura (no E3, propriedade ScanTime igual a zero). Com
isto, garante-se que novos eventos s so armazenados atravs do mtodo WriteRecord, executado no
evento OnRead do Tag, evitando a duplicao de eventos.
Importao e Exportao de Operaes
A importao e exportao de operaes deve ser realizada na aba Operations do Driver, clicando em
Import Configuration ou em Export Configuration, conforme mostrado na figura a seguir.
Estas opes tornam possvel importar e exportar a configurao de operaes mostrada no quadro Modbus
Operations para arquivos INI.
Nas verses anteriores 2.00 deste Driver, a configurao das operaes era executada no arquivo
Copyright 2001-2016 Elipse Software Ltda. Todos os direitos reservados.
modbus.ini, que era carregado no momento da inicializao do objeto Driver. Os arquivos modbus.ini destas
verses antigas ainda podem ser carregados na verso atual do Driver, utilizando a opo de importao.
NOTA: As operaes do Driver eram chamadas de Funes do Driver nas verses iniciais. Esta
denominao foi posteriormente alterada para Operaes do Driver devido a casos observados em que
havia confuso com as Funes do Protocolo.
Importao
A importao de arquivos de configurao bastante simples. Clique em Import Configuration e selecione o
arquivo INI. O Driver deve carregar as configuraes de operaes, que aparecem imediatamente no quadro
Modbus Operations. Este Driver permite a importao de arquivos gerados pelas suas verses anteriores.
Exportao
A exportao de arquivos de configurao de operaes pode ser realizada para compartilhar a mesma
configurao de operaes em diferentes objetos Driver, bem como para a eventual realizao de cpia de
segurana (backup) da configurao de operaes de um determinado equipamento.
Outra possvel utilidade a exportao das configuraes para um arquivo modbus.ini compatvel com
verses anteriores do Driver, permitindo carregar as configuraes nesta verso anterior. Trata-se de uma
prtica pouco recomendada mas que, caso seja inevitvel em aplicaes legadas, requer as consideraes
feitas a seguir.
Ao clicar em Export Configuration, abre-se uma janela com duas opes, conforme a figura a seguir.
Opes de exportao
Nesta janela deve-se selecionar entre exportar conforme o novo padro (New format with type
mnemonics), com os tipos de dados exibidos sendo definidos com Strings (mnemnicos), ou no formato
antigo (Old format with types' numeric codes), em que os tipos de dados eram identificados por um valor
numrico, correspondente posio em que apareciam na caixa de seleo Data na aba Operations.
O formato novo mais legvel, facilitando a depurao, e utilizado nas verses mais recentes deste Driver,
sendo a opo mais recomendada.
J o formato antigo deve ser selecionado somente se for imprescindvel exportar para verses anteriores
verso 2.08 deste Driver.
Note que, para exportar com sucesso arquivos modbus.ini a serem carregados em verses anteriores
verso 2.00, as operaes no podem definir nenhum tipo de dados novo que no tenha sido implementado
pela verso de destino, e nem tampouco ter operaes que utilizem o parmetro Use bit mask, caso contrrio
a importao pode falhar.
De maneira geral, recomenda-se evitar a exportao de configuraes para verses anteriores, priorizando
Copyright 2001-2016 Elipse Software Ltda. Todos os direitos reservados.
Parmetros disponveis
PARMETRO
ModiconModbus.ModbusMode
TIPO DE DADOS
Inteiro:
0: Modbus RTU
1: Modbus ASCII
2: Modbus TCP
ModiconModbus.Olderaddr
Booleano (0 ou 1):
0: Dado endereado a partir de 0 (zero)
1: Dado endereado a partir de 1 (um)
ModiconModbus.UseDefaultSlaveAddress
Booleano (0 ou 1)
ModiconModbus.DefaultSlaveAddress
Inteiro sem sinal
ModiconModbus.UseSwapAddressDelay
Booleano (0 ou 1)
ModiconModbus.SwapAddressDelay
Inteiro, com o intervalo de delay em milissegundos.
NOTA: Opo obsoleta e mantida por compatibilidade.
Para aplicaes novas, use a opo Inter-frame delay
da aba Serial do IOKit
ModiconModbus.WaitSilenceOnError
Booleano (0 ou 1)
ModiconModbus.EnableCMSAddressing
Booleano (0 ou 1)
ModiconModbus.EnCustomizeMaxPDUSize
Booleano (0 ou 1)
ModiconModbus.MaxPDUSize
Inteiro
ModiconModbus.ConfigFile
String contendo o arquivo de configurao com as
operaes do Driver. Este arquivo pode ser exportado e
importado na aba Operations da janela de
configuraes do Driver
ModiconModbus.EnableReconnectAfterTimeout Booleano (0 ou 1):
0: O time-out no gera desconexo do meio fsico
1: Em caso de time-out, quando em meio fsico
Ethernet, o Driver promove a desconexo e
reconexo do meio fsico
ModiconModbus.UserTypesConfigFile
String de configurao dos tipos de dados definidos
pelo usurio (estruturas). Trata-se do mesmo arquivo
de configurao que pode ser acessado na janela de
configurao do Driver (User-Defined Data Types)
ModiconModbus.EnableGenSOERegGrouping
Booleano (0 ou 1):
0: O algoritmo de leitura de eventos primeiro l os
registros de controle e, em seguida, os dados de
eventos
1: A leitura de SOE genrico agrupada ao mximo,
com a primeira leitura lendo no s os registradores
de controle mas tambm o mximo de eventos
possveis
ModiconModbus.ShowOperationsInTagBrowser Booleano (0 ou 1):
0: O Tag Browser mostra os modelos de Tags
configurados por Strings (comportamento padro)
1: O Tag Browser mostra os modelos de Tags
configurados numericamente (comportamento
legado)
Para mais informaes sobre a configurao Offline em tempo de execuo, consulte o Manual do Usurio
do IOKit.
Configurando Tags
Este tpico descreve a configurao dos diversos tipos de Tags suportados por este Driver. Os Tags so
divididos em duas categorias, descritas nos seguintes tpicos:
Configurando um Tag de Comunicao
Configurando Tags Especiais
Campo Dispositivo
No campo Dispositivo, o Slave Id (endereo identificador do equipamento) deve ser fornecido como um
nmero entre 1 (um) e 255 seguido de dois pontos, como por exemplo "1:", "101:", "225:", etc.
Cabe lembrar que, no protocolo Modbus, o Slave Id 255 reservado para broadcast, o que s faz sentido ser
usado para operaes de escrita, pois no h retorno dos equipamentos, ou ocorreriam conflitos.
Opcionalmente, o Slave Id pode aparecer no incio do campo Item, explicado a seguir, e neste caso o campo
Dispositivo deve ser mantido vazio. Esta opo detalhada a seguir.
Campo Item
No campo Item devem ser fornecidas todas as demais informaes de endereamento e da operao a ser
realizada pelo Tag, com a seguinte a sintaxe:
<espao de endereamento><endereo>[.<tipo>[<tam. do tipo>]][.<byte order>][/
bit]
Onde os parmetros entre colchetes so opcionais.
Como j mencionado na seo anterior, pode-se opcionalmente adicionar o Slave Id no incio do campo Item,
como no exemplo a seguir:
<slave id>:<espao de endereamento><endereo>[.<tipo>[<tam. do tipo>]][.<byte
order>][/bit]
Neste caso, como j explicado, deve-se deixar o campo Dispositivo vazio.
Os exemplos a seguir mostram os casos de uso mais comuns (note que as aspas duplas no devem ser
adicionadas no supervisrio):
1. Leitura ou escrita de Holding Registers (funes 03 e 16) de endereo 100 do equipamento com Id 1 e com
Slave Id no campo Dispositivo:
a. Dispositivo: "1:"
b. Item: "hr100"
2. Leitura ou escrita de Holding Register (funes 03 e 16) de endereo 120 do equipamento com Id 3 e com
Slave Id no campo Item:
a. Dispositivo: "" (String vazia)
b. Item: "3:hr120"
3. Leitura ou escrita de Coil (funes 01 e 15) de endereo 65535 (FFFFh) com Slave Id 4, aqui especificado no
campo Item:
a. Dispositivo: "" (String vazia)
b. Item: "4:cl&hFFFF" (ou opcionalmente "4:cl65535")
A figura a seguir mostra exemplos de Tags do Tutorial do E3 configurados por Strings.
Copyright 2001-2016 Elipse Software Ltda. Todos os direitos reservados.
funes de acesso a registradores e Bit para funes de acesso a dados digitais (Coils e Discrete Inputs).
Consulte a tabela de mnemnicos dos tipos suportados, mais adiante neste tpico.
2. Tamanho do tipo: necessrio especificar este campo apenas para os tipos de tamanho varivel, como
BCD e String. O valor numrico indica o tamanho do tipo em bytes.
3. Byte order: Mnemnico indicando o ordenamento dos bytes dos valores numricos. Se omitido, usado o
padro do protocolo, com os bytes mais significativos vindo primeiro no frame de comunicao, o
chamado big endian. Veja mais informaes na seo especfica sobre esta opo, mais adiante neste
tpico.
4. Bit: Permite retornar um bit especfico de um valor inteiro, e obviamente s faz sentido em funes
Modbus que retornem valores inteiros (Words). Em geral recomenda-se no usar este recurso, dando
preferncia ao mapeamento de bits do supervisrio. O bit 1 (um) o menos significativo e, quanto maior o
valor, mais significativo o bit. O valor mximo permitido obviamente depende do tamanho do tipo, sendo
o mximo atualmente de 64 para tipos Double. Este campo corresponde antiga opo Use Bit Mask da
configurao numrica. Mais informaes sobre esta opo podem ser obtidas no tpico Aba Operations.
Excees
As funes Modbus 20 e 21 do protocolo Modbus, que acessam arquivos, utilizam sintaxe ligeiramente
diferente da mostrada anteriormente:
fr<arquivo>.<registro>[.<tipo>[<tam. do tipo>]][.<byte order>][/bit]
Exemplo:
Dispositivo: "" (String vazia)
Item: "1:fr4.101" (leitura do registro 101 do arquivo 4 no Slave Id 1)
Especificamente para a funo especial GenSOE (Elipse Generic SOE):
elsoe<N>.<end. inicial>[.<tipo>[<tam. do tipo>]][.<byte order>][/bit]
Especificamente para a funo especial SP SOE (Sepam SOE), para leitura de todos os eventos:
spsoe<tipo do evento>.<end. inicial>[.<tipo>][.<byte order>][/bit]
Especificamente para a funo especial SP SOE (Sepam SOE), para a leitura de eventos de pontos
especficos:
ptspsoe<tipo do evento>.<end. do evento>
Especificamente para a funo especial GE SOE (GE PAC RX7 SOE):
gesoe<tipo do tag + ndice do ponto>.<end. base da pilha>
Consulte os tpicos especficos sobre as funes especiais mencionadas anteriormente para mais
informaes sobre a configurao dos respectivos Tags usando Strings.
Espao de Endereamento
Ao invs de definir explicitamente as funes Modbus ou especiais de leitura e escrita a serem utilizadas,
como ocorre na antiga configurao numrica e seu conceito de operaes, na configurao por Strings o
Copyright 2001-2016 Elipse Software Ltda. Todos os direitos reservados.
usurio define um espao de endereamento atravs de um dos mnemnicos listados na tabela a seguir, j
associado a funes pr-definidas do protocolo e seus respectivos tipos nativos de dados.
Espaos de endereamento e mnemnicos
ESPAO DE
MNEMNICO
ENDEREAMENTO
Holding Register
hr
TIPO NATIVO
Word (16 bits)
Single Holding
Register
shr
Coil
Single Coil
cl
scl
Bit
Bit
Discrete Input
di
Bit
Input Register
ir
Exception Status
es
Byte
File Register
fr
ABB MGE 144 abbmge
Leitura de Memria
de Massa
ABB MGE 144 abbmge.rst
Reset
No usado
No usado
GE_events
FUNES DE
COMENTRIOS
LEITURA OU ESCRITA
Funes 03 e 16
As funes 03 e 16
so as mais usadas
do protocolo
(Modbus classe 0)
Funes 03 e 06
A funo 06 escreve
nos mesmos
registradores da
funo 16, a
diferena que a
funo 16 pode
escrever em Blocos,
enquanto a funo
06 escreve em
apenas um registro
por vez, mas com
menor overhead.
Funes 01 e 15
Funes 01 e 05
A funo 05 escreve
nos mesmos
registros da funo
15, porm no pode
escrever em Blocos,
portanto com menor
overhead
Funes 02 e None
(somente leitura)
Funes 04 e None
(somente leitura)
Funes 07 e None
(somente leitura)
Funes 20 e 21
Funes 65 03 e
None (somente
leitura)
Funo de leitura
None e de escrita
65 01
Funo de leitura
None e de escrita
65 02
Funo de leitura GE
SOE e de escrita
None
ESPAO DE
MNEMNICO
ENDEREAMENTO
SEPAM SOE Events spsoe
TIPO NATIVO
SP_events
ptspsoe
Int32
elsoe
FUNES DE
COMENTRIOS
LEITURA OU ESCRITA
Funo de leitura SP Coleta do medidor e
SOE e de escrita
retorna ao Tag uma
None
estrutura (tipo
SP_events) com
eventos de
quaisquer pontos
(veja o tpico
SEPAM SOE)
Funo de leitura SP Coleta do medidor e
SOE e de escrita
retorna ao Tag um
None
valor inteiro do
campo Edge,
relativo a eventos
de um ponto
especfico (veja o
tpico SEPAM SOE)
Funo de leitura
GEN SOE (funo
Modbus 03 com
algoritmos
adicionais) e de
escrita 16
Tipos de Dados
Na tabela da seo anterior so listados os tipos de dados nativos do protocolo, conforme as funes
Modbus utilizadas, bem como alguns tipos de dados especficos usados em funes especiais (no padro do
protocolo). Para Tags que retornem estes tipos de dados nativos, o parmetro Tipo de Dado pode ser omitido
da String do campo Item.
Caso seja necessrio interpretar os dados nativos de outra forma, algo muito comum entre os equipamentos
que usam Modbus, deve-se especificar o tipo de dados a ser usado, conforme explicado nesta seo.
A lista e o detalhamento de todos os tipos de dados suportados por este Driver pode ser consultada no
tpico Tipos de Dados Suportados.
A tabela a seguir lista os mnemnicos usados no parmetro <tipo> do campo Item para cada tipo de dados
suportado, nativo do Driver, e tambm um alias ou nome alternativo.
Tipos de dados suportados
TIPO
Char
Byte
Int8
Int16
Int32
Word ou UInt
DWord ou ULong
Float
Float_GE
MNEMNICO
char
byte
int8
int16
int32
word
dword
float
float_GE
ALIAS
ch
by ou u8
i8
i16
i32
u16
u32
f
fge
Driver Modicon Modbus Master (ASC/RTU/TCP) v3.1.30
TIPO
Double ou Real
String
BCD
GenTime
Sp_time
UTC64d
UTC32
MNEMNICO
double
string
BCD
GenTime
Sp_time
UTC64d
UTC32
ALIAS
d
s
bcd
gtm
sptm
-
interpretao.
No caso de valores de 32 bits pode tambm ocorrer de valores em Word permutados (swapped), porm com
os bytes dentro dos valores em Word mantendo a ordem padro. Por exemplo, o valor 12345678h pode vir
como 56781234h. E h vrios outros casos, com inmeras combinaes diferentes de ordenamento.
Para permitir a comunicao com estes equipamentos que no seguem o padro do protocolo de
ordenamento de bytes, o Driver permite ao usurio configurar Tags especificando o padro a ser utilizado.
O parmetro byte order corresponde s opes de swap das operaes, utilizadas antigamente na
configurao numrica, e pode ter os valores "b0", "b1", "b2", "b3", "b4", "b5", "b6", "b7", "alias" ou ainda
"alias2" (veja a tabela a seguir).
Se o parmetro byte order for omitido, o dado interpretado seguindo o padro do protocolo, o que equivale
ao cdigo "b0".
A tabela a seguir indica que operaes de swap ou permutas (Swap Bytes, Swap Words e Swap DWords) so
realizadas para cada mnemnico de ordenamento (de "b0" at "b7").
Operaes de permuta ou swap
SWAP BYTES SWAP WORDS
SWAP
DWORDS
b0
b1
b3
sb
sw
sb.sw
sdw
sb.sdw
sw.sdw
lsb
sb.sw.sdw
b4
b5
b6
b7
ALIAS 2
(SWAPS)
msb
b2
ALIAS
ORDENAMENT
O*
by7 by6 by5
by4 by3 by2
by1 by0
by6 by7 by4
by5 by2 by3
by0 by1
by5 by4 by7
by6 by1 by0
by3 by2
by4 by5 by6
by7 by0 by1
by2 by3
by3 by2 by1
by0 by7 by6
by5 by4
by2 by3 by0
by1 by6 by7
by4 by5
by1 by0 by3
by2 by5 by4
by7 by6
by0 by1 by2
by3 by4 by5
by6 by7
Ou seja, "b0" no realiza nenhuma operao de permuta nos bytes de dados, mantendo o ordenamento de
bytes original recebido do equipamento, equivalente a no selecionar nenhuma opo de permuta na aba
Operations da antiga configurao numrica.
J "b1" realiza a permuta dos bytes, dois a dois, ou seja, ao receber um Word (inteiro sem sinal de 16 bits)
Copyright 2001-2016 Elipse Software Ltda. Todos os direitos reservados.
com o valor em hexadecimal 0102h, o valor que retornado ao Tag 0201h, com os bytes trocados. Equivale
antiga opo Swap Bytes.
J o cdigo "b2" realiza a permuta de Words, ou seja, de duplas de bytes, dois a dois, o que obviamente s
afeta dados de 32 bits ou maiores. Tem o mesmo efeito de selecionar a opo Swap Words na configurao
numrica. Como exemplo, se for recebido do equipamento o valor 01020304h, o valor utilizado para os Tags
da aplicao 03040102h.
J se for usado o cdigo "b3", tem-se a troca de bytes e Words, equivalente s antigas opes Swap Bytes e
Swap Words habilitadas simultaneamente. Neste caso, o valor 01020304h se torna 04030201h.
Da mesma forma, o cdigo "b4" realiza a troca de DWords entre si em valores de 64 bits, como a antiga
opo Swap DWords da configurao numrica, ou seja, o valor 1122334455667788h interpretado como
5566778811223344h. E assim por diante para os demais cdigos.
As duas ltimas colunas da tabela especificam apelidos ou aliases que o usurio pode usar para facilitar a
legibilidade, ou seja, ao invs de usar o cdigo "b0", pode ser utilizado "msb". Ao invs do cdigo "b6", podese utilizar o apelido "sw.sdw", e assim por diante.
Como Selecionar a Opo de Ordenamento Correta?
Em muitos casos a documentao do equipamento especifica qual o ordenamento utilizado, ou como
configur-lo (h equipamentos que permitem esta configurao).
Nos casos em que a documentao omissa, deve-se contatar o suporte do fabricante.
Caso no seja possvel obter-se informaes confiveis, deve-se testar empiricamente, analisando os valores
retornados, em hexadecimal, comparando com os valores esperados e observando se existem inverses de
ordenamento que possam explicar as diferenas.
Podem ocorrer basicamente trs situaes:
1. Caso o equipamento fornea dados usando o ordenamento de bytes padro do protocolo Modbus (big
endian ou Motorola), com os bytes mais significativos vindo antes, deve-se omitir este parmetro, ou
defini-lo como "b0". Esta a situao mais comum.
2. Caso o equipamento use outro padro de ordenamento de bytes, com os bytes menos significativos vindo
antes (little endian), necessrio habilitar-se todas as opes de permuta referentes ao tipo de dados
usado, o que corresponde ao mnemnico "b7".
3. No caso menos comum, h equipamentos que usam ordenamentos de bytes diferentes para tamanhos de
dados diferentes, fornecendo por exemplo o byte mais significativo de cada Word primeiro, porm o
Word menos significativo de cada DWord primeiro. Portanto, preciso avaliar em qual caso cada opo
de permuta precisa ser habilitada, de maneira a converter o valor retornado pelo equipamento para o
formato big endian padro do protocolo.
NOTA: As opes de permuta citadas no tm efeito para tipos de dados Bit ou tipos com tamanho de oito
bits (Byte, Char e Int8). A permuta ocorre dentro de cada tipo de dado, ou seja, a opo Swap Words no
tem efeito para tipos de dados de 16 bits, assim como a opo Swap DWords no tem efeito para tipos de
dados de 32 bits. Os tipos de dados BCD tambm no permitem operaes de permuta.
O tpico Dvidas Mais Frequentes lista alguns casos conhecidos, j observados nos atendimentos de
suporte. Exemplos:
Copyright 2001-2016 Elipse Software Ltda. Todos os direitos reservados.
1. Leitura ou escrita de Holding Registers (funes 03 e 16) de endereo 1500 do equipamento com Id 5,
interpretado como um Double sem inverso de bytes, com Slave Id no campo Item:
a. Dispositivo: "" (String vazia)
b. Item: "5:hr1500.d", ou "5:hr1500.double" ou ainda "5:hr1500.d.b0"
2. Leitura ou escrita de Holding Registers (funes 03 e 16) de endereo 1500 do equipamento com Id 5,
interpretado como um Double com o byte menos significativo de cada Word vindo antes e com Slave Id no
campo Item:
a. Dispositivo: "" (String vazia)
b. Item: "5:hr1500.d.b1" ou "5:hr1500.double.b1", ou ainda "5:hr1500.double.sb"
3. Leitura ou escrita de Holding Registers (funes 03 e 16) de endereo 1500 do equipamento com Id 5,
interpretado como um Double com os bytes menos significativos vindo antes (little endian) e com Slave Id
no campo Item:
a. Dispositivo: "" (String vazia)
b. Item: "5:hr1500.d.b7" ou outras variaes, como "5:hr1500.d.lsb" e "5:hr1500.d.sb.sw.sdw"
Tags Especiais do Driver
Alm dos Tags j descritos, pode-se configurar Tags Especiais do Driver usando Strings, descritos em mais
detalhes em tpicos especficos (clique no item desejado para mais informaes).
Tags especiais
DEVICE
<slave id>:
ITEM
ForceWaitSilence
LastExceptionCode
OPERAO
Escrita
Leitura ou escrita
Configurao Numrica
A configurao numrica realizada atravs dos parmetros N e B dos Tags de Comunicao, no utilizando
os campos Dispositivo e Item disponveis no Elipse E3 e Power, que devem ser deixados em branco.
Este mtodo de configurao deve ser utilizado no Elipse SCADA e em aplicaes legadas. Em aplicaes
utilizando produtos mais novos, como o Elipse E3, Elipse Power ou Elipse OPC Server, recomenda-se utilizar a
configurao por Strings.
Os Tags de Comunicao configurados numericamente referenciam as operaes previamente configuradas
na janela de configurao.
Operaes
Conforme j explicado no tpico Aba Operations, o Driver possui suporte a outros tipos de dados alm dos
tipos de dados nativos do protocolo. Por este motivo, foi criado o conceito de Operao no Driver.
Nas operaes utilizando as funes Modbus que leem e escrevem bits, como as funes 1, 5 e 15 do
protocolo, o Driver mapeia sempre os valores binrios de cada bit para os Elementos de Bloco, onde cada
Elemento representa o valor de um bit especfico.
Copyright 2001-2016 Elipse Software Ltda. Todos os direitos reservados.
As operaes com tipos de dados de oito bits, como o tipo de dados Byte, implicam sempre, obviamente, na
leitura de pelo menos dois bytes (um registro Modbus de 16 bits). Para prevenir surpresas para o usurio, o
Driver exige que a escrita de dados de oito bits seja realizada sempre aos pares, ou seja, como escritas de
Blocos com nmero par de Elementos. As operaes devem ser referenciadas atravs dos parmetros N2/B2
dos Tags de Comunicao, conforme descrito a seguir.
Parmetros de Configurao dos Tags de Comunicao
A configurao a seguir se aplica tanto aos parmetros N dos Tags de Comunicao quanto aos parmetros B
dos Tags Bloco de Comunicao.
N1/B1: Endereo do equipamento escravo (CLP) na rede (Slave Id). Este endereo usado em redes
seriais e pode variar de 1 a 247. Pode-se ainda configurar este parmetro com o valor 0 (zero). Com
isto, este Tag trabalha em modo Broadcast, enviando a mensagem para todos os equipamentos
escravos (CLP) que estiverem na rede. Em Ethernet (modo Modbus TCP), o endereo geralmente
utilizado apenas o endereo IP, porm o Slave Id pode ainda ser usado quando o endereo IP
referencia um gateway ligado a uma rede de equipamentos (geralmente uma rede RS485, com Modbus
RTU, usando gateway capaz de realizar a converso de Modbus TCP para Modbus RTU).
NOTA: No modo Broadcast com N1 igual a 0 (zero) no possvel realizar leituras, apenas escritas. Neste
modo todos os equipamentos na rede so endereados, recebendo o valor escrito e no retornando
qualquer resposta, de forma a evitar conflitos na rede.
N2/B2: Cdigo da operao. Referencia uma operao adicionada na janela de configuraes do Driver
(veja o tpico Aba Operations).
N3/B3: Parmetro adicional. Este parmetro em geral no usado e pode ser deixado em 0 (zero). S
usado em quatro situaes:
Funes Modbus 20 e 21: No caso de operaes que utilizem estas funes de acesso a arquivo
(funes 20 e 21), o parmetro N3/B3 especifica o arquivo a ser acessado.
Use Bit Mask: Para Tags referenciando operaes com a opo Use Bit Mask habilitada, o
parmetro N3/B3 especifica o nmero do bit a ser acessado (veja o tpico Aba Operations).
Tipos de Dados Definidos pelo Usurio: Para operaes que usem estruturas, se o parmetro B3
for maior que 0 (zero), define o retorno de um array de blocos reportado a eventos, por meio de uma
sequncia de eventos OnRead do Tag (veja o tpico Tipos de Dados Definidos pelo Usurio).
Funo Especial Gen SOE: Em operaes que utilizem a funo especial de leitura Gen SOE, o
parmetro N3/B3 indica o tamanho da tabela associada na memria do CLP ou dispositivo escravo,
em nmero mximo de eventos comportados (veja o tpico Algoritmo de Leitura de SOE Genrico
da Elipse Software).
N4/B4: Endereo do registrador, varivel ou bit no equipamento ou dispositivo escravo (CLP) em que se
deseja ler ou escrever, conforme o mapa de registradores do equipamento (verifique o manual do
equipamento). importante ajustar corretamente a opo Data Address Model Offset (veja o tpico
Aba Modbus) e verificar se a documentao do fabricante no usa offsets utilizados por equipamentos
Modbus antigos, da chamada Modbus Convention.
Tamanho/ndice (somente Tags Bloco): Cada Elemento de Bloco representa o valor de um dado de
tipo definido na operao utilizada (parmetro N2/B2). Note que o protocolo s suporta tipos de dados
Copyright 2001-2016 Elipse Software Ltda. Todos os direitos reservados.
Bit ou Word. Desta forma, se a operao selecionar o tipo de dados DWord (32 bits) para cada
Elemento de Bloco, o Driver necessita ler dois registros consecutivos do equipamento.
Tags Especiais
Alm dos Tags de Comunicao (Tags que referenciam operaes), existem tambm Tags especiais para
executar funes especficas do Driver. Estes Tags so descritos no tpico Configurando Tags Especiais.
Dicas de Endereamento (Modbus Convention)
No tpico Configurando um Tag de Comunicao, o endereamento dos Tags (parmetros N4/B4 na
configurao numrica) descrito com base na especificao mais recente do protocolo Modbus (verso
1.1b). Entretanto, h equipamentos que ainda utilizam a antiga conveno de endereamentos com offsets
conhecida como Modbus Convention, que acrescenta offsets ao endereo. Este tpico explica como
enderear os Tags caso o mapa de registradores do equipamento ainda siga esta conveno antiga,
originria da especificao inicial da Modicon, no mais includa na especificao atual.
O endereo fornecido no Tag enviado no frame de requisio do protocolo ao equipamento, acrescido ou
no do offset padro de 1 (um), requerido pelo Modbus Data Model especificado pelo protocolo, conforme
configurao do campo Data Model Offset na aba Modbus da janela de configuraes do Driver.
Alm deste offset padro de 1 (um), definido na norma Modbus atual (verso 1.1b), alguns fabricantes
utilizam ainda o padro antigo da Modicon, conhecido como Modbus Convention, com um offset que pode
ser acrescentado ao endereo, cujo valor depende da funo Modbus utilizada, ou mais especificamente, de
qual espao de endereamento (address space) esta funo acessava originalmente. Este offset adicional
deve ser ignorado ao definir o endereo dos Tags neste Driver. Mais adiante so fornecidos alguns exemplos.
A tabela a seguir lista os offsets utilizados pelo padro Modbus Convention.
Offsets do padro Modbus Convention
TIPO DE DADOS (STANDARD DATA
FUNO MODBUS
MODEL)
Coils
01: Read Coils (0x)
05: Write Single Coil (0x)
15: Write Multiple Coils (0x)
Discrete Inputs
02: Read Discrete Inputs (1x)
Input Registers
04: Read Input Registers (3x)
Holding Registers
03: Read Holding Registers (4x)
06: Write Single Register (4x)
16: Write Multiple Registers (4x)
File Register (antiga Extended
20: Read General Reference (6x)
Memory file)
21: Write General Reference (6x)
OFFSET
00000
10000
30000
40000
60000
Se o mapa de registradores do equipamento utiliza esta conveno, deve-se seguir este procedimento para
determinar os endereos a serem atribudos aos Tags, no campo Item na configurao por Strings ou aos
parmetros N4 ou B4 na configurao numrica:
1. Na aba Modbus, selecione a opo Data is addressed from 1.
2. Subtraia do endereo mostrado no manual do equipamento o offset mostrado na tabela anterior para a
funo Modbus utilizada. DICA: Remova o quinto dgito da direita para a esquerda.
Note que, em equipamentos que utilizam esta antiga conveno, pode-se determinar quais funes Modbus
devem ser usadas para acessar cada registro ou bit atravs do offset empregado em seu endereo.
Exemplos
ENDEREO COM OFFSET
(EQUIPAMENTO)
01234
11234
31234
41234
45789
65789
ENDEREO NO TAG DE
FUNO MODBUS
COMUNICAO (ITEM OU N4/B4)
1234
01: Read Coils
05: Write Single Coil
15: Write Multiple Coils
1234
02: Read Discrete Inputs
1234
04: Read Input Registers
1234
03: Read Holding Registers
06: Write Single Register
16: Write Multiple Registers
5789
03: Read Holding Registers
06: Write Single Register
16: Write Multiple Registers
5789
20: Read General Reference
21: Write General Reference
O artigo KB-23112 do Elipse Knowledgebase apresenta um resumo das questes relativas ao agrupamento de
Tags e dimensionamento de blocos no Driver Modbus, discutidas neste e em outros tpicos (veja os tpicos
Leitura por Superblocos e Dicas de Otimizao).
Leitura por Superblocos (Agrupamento)
A partir da verso 2.01, o Driver passa a suportar o recurso de Leitura por Superblocos. Este recurso
suportado pelo E3 e pelo Elipse Power, podendo ser habilitado atravs da propriedade EnableReadGrouping
do objeto Driver no Organizer. Com esta propriedade em Verdadeiro, o usurio no precisa se preocupar com
o dimensionamento dos blocos.
Com este recurso, torna-se possvel (e em geral recomendvel) criar aplicaes contendo apenas Tags
simples (Tags PLC no Elipse SCADA) sem prejuzo de desempenho, pois a otimizao do agrupamento na
leitura feita automaticamente no momento da comunicao. A figura a seguir mostra a configurao da
propriedade EnableReadGrouping no E3 ou Elipse Power.
Propriedade EnableReadGrouping
O Elipse SCADA no possui suporte a Superblocos. O comportamento da leitura de Tags no Elipse SCADA
idntico ao do E3 e do Elipse Power quando a opo EnableReadGrouping estiver configurada como Falso.
Em ambos os casos, o Driver conta com a Partio Automtica de Blocos, podendo dividir blocos com
tamanhos superiores ao limite do protocolo em blocos menores no momento da comunicao. Nestes
casos, o usurio precisa levar em considerao o agrupamento ao definir os Tags da aplicao, como visto
mais adiante neste tpico.
NOTAS:
O agrupamento automtico realizado com base nos Tags em advise da aplicao. Sempre que novos
Tags entrarem em advise ou sarem de advise, o algoritmo de Superblocos redefine o agrupamento, ou
seja, os Superblocos a serem lidos de forma automtica, em tempo de execuo, incluindo apenas os
Tags que estiverem em advise.
Somente os Tags que utilizarem configurao numrica podem ser agrupadas pelo servio de Superblocos.
Os Tags que utilizem configurao por Strings no so agrupados pelo servio de Superblocos.
Copyright 2001-2016 Elipse Software Ltda. Todos os direitos reservados.
Elemento 2 (ndice 1): Parmetro N2/B2 do Tag de Comunicao que gerou a exceo
Elemento 3 (ndice 2): Parmetro N3/B3 do Tag de Comunicao que gerou a exceo
Elemento 4 (ndice 3): Parmetro N4/B4 do Tag de Comunicao que gerou a exceo
Elemento 5 (ndice 4): Parmetro Size do Tag de Comunicao que gerou a exceo
Elemento 6 (ndice 5): Parmetro Dispositivo do Tag de Comunicao que gerou a exceo
Elemento 7 (ndice 6): Parmetro Item do Tag de Comunicao que gerou a exceo
Utilizao do Tag Especial
A utilizao mais comum deste 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. 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 a seguir, escrito em Elipse Basic (Elipse
SCADA):
// Evento OnRead do Tag TagExc
// Obs.: Para este exemplo, considere TagExc
// com leitura e escrita automtica habilitadas
If TagExc == 0
Return
EndIf
If TagExc == 1
... // Trata a exceo 1
ElseIf TagExc == 2
... // Trata a exceo 2
Else
... // Trata as demais excees
EndIf
TagExc = 0 // Zera o registrador de excees
A seguir outro exemplo, escrito em VBScript (Elipse E3 e Elipse Power):
NOTA: Este Tag Especial retorna, alm do cdigo da exceo (retornado no Elemento zero), tambm os
parmetros do Tag cuja comunicao provocou a exceo. Caso estas informaes no sejam necessrias,
pode-se perfeitamente ler o mesmo registro atravs de um Tag simples (Tag PLC no Elipse SCADA), sem
necessidade de usar Tags Bloco. Neste caso, os procedimentos recomendados permanecem os mesmos.
SIGNIFICADO
Identificao do ponto
Status do ponto
TIPO DE DADOS
Byte
Byte
FAIXA DE VALORES
Entre 0 e 15
Entre 0 e 1
Para mais informaes sobre Tags reportados por evento, consulte o tpico especfico no Manual do Usurio
do E3.
IMPORTANTE: Ao ler eventos de memria de massa em Tags reportados a eventos no E3, desabilite a
banda morta do Tag (propriedade EnableDeadBand configurada para Falso) e tambm do objeto Histrico
associado (propriedade DeadBand igual a zero), para evitar a perda de eventos com valores prximos.
Tambm importante desabilitar o histrico por varredura (no E3, propriedade ScanTime igual a zero). Com
isto, garante-se que novos eventos s so armazenados atravs do mtodo WriteRecord, executado no
evento OnRead do Tag, evitando a duplicao de eventos.
Tags Reportados por Eventos por Ponto
A partir da verso 2.5 do Driver possvel utilizar um novo Tag para o download de eventos de um ponto
especfico.
Copyright 2001-2016 Elipse Software Ltda. Todos os direitos reservados.
Este Tag funciona de forma idntica ao anterior, exceto pelo fato de retornar apenas os eventos de um ponto
especfico.
Ao contrrio do anterior, o valor retornado possui apenas um Elemento com o valor do status do ponto, de
forma que pode-se utilizar apenas um Tag. Este Tag deve ser configurado da seguinte forma:
Configurao por Strings
Dispositivo: "<Slave Id>:"
Item: "gesoe<200 + ndice do ponto>.<endereo base da pilha de eventos>"
Configurao Numrica
N1: Slave ID
N2: Cdigo da operao definida com a funo GE SOE
N3: 200 + ndice do ponto (por exemplo, para o ponto 2, configure N3 como 202)
N4: Endereo base da pilha de eventos no CLP
Para mais informaes sobre Tags reportados por evento, consulte o tpico especfico no Manual do Usurio
do E3.
Tags de Tempo Real
Estes Tags retornam o evento mais recente j lido para um ponto especfico. Estes eventos so armazenados
na memria interna do Driver a cada leitura de eventos do CLP, com seus respectivos timestamps lidos do
equipamento. Este Tag utiliza os seguintes parmetros:
Configurao por Strings
Dispositivo: "<Slave Id>:"
Item: "gesoe<100 + ndice do Ponto>.<endereo base da pilha de eventos>"
Configurao Numrica
N1: Slave ID
N2: Cdigo da operao
N3: 100 + ndice do ponto
N4: Endereo base da pilha de eventos no CLP
Valor: Status do ponto
Tags:
Tag de coleta de todos os eventos da tabela (obrigatrio): Realiza a coleta de todos os eventos da
tabela de uma determinada zona na memria do equipamento. Este Tag, alm de retornar todos os
eventos lidos aplicao reportados a evento, ainda acumula os eventos lidos no buffer interno do
Driver, para serem retirados atravs de leituras nos Tags de leitura de evento nico, descritos a seguir.
Tag de leitura de evento nico (opcional): Retorna eventos recebidos do rel especificado, com
determinado endereo, tipo e zona. Este Tag no realiza a leitura direta do equipamento, mas sim
retorna os eventos do buffer interno do Driver, alimentado durante a leitura do Tag de coleta de todos
os eventos, descrito anteriormente, ou seja, para que seja possvel ler eventos com este tipo de Tag,
um Tag do tipo Coleta de todos os eventos deve j estar previamente ativo, com sua varredura (scan)
habilitada. Este Tag til quando o usurio precisa obter eventos de um tipo e de uma fonte
especficas (rel, zona, endereo e tipo). Um exemplo de utilizao a associao a objetos de Tela,
mostrando o status de determinado endereo de evento. Embora este Tag retorne as mesmas
informaes j retornadas pelo Tag anterior, seu uso poupa o usurio de ter que implementar filtros,
clusulas Select Case em VBScript ou algum outro mtodo para separar os diversos tipos de eventos
retornados pelo Tag de coleta de todos os eventos por script na aplicao.
A aplicao deve necessariamente implementar um Tag de coleta de todos os eventos para cada tabela ou
zona de eventos a ser coletada em cada rel, pois durante a leitura deste Tag que os eventos de fato so
coletados do equipamento. A seguir descrita a configurao destes dois Tags.
Tag de Coleta de Todos os Eventos da Tabela (Zona de Eventos)
Este Tag reportado a eventos. Sua aplicao tpica a insero de eventos em um objeto Histrico
associado, atravs do mtodo WriteRecord do Histrico, executado no evento OnRead do Tag. A cada
leitura, ou seja, a cada perodo de varredura do Tag, o Driver pode coletar at quatro novos eventos do
equipamento. Este o nmero mximo de eventos que cada zona de eventos do rel dispe a cada
requisio de leitura.
Como durante a leitura deste Tag que os eventos so de fato coletados do equipamento, mesmo que seus
dados no sejam utilizados diretamente, ou seja, mesmo que no seja preciso armazenar todos os eventos
coletados em Histrico, sua implementao obrigatria para que os Tags de evento nico possam
retornar dados. O Tag de coleta de todos os eventos deve ser configurado como um Tag Bloco com trs
Elementos, da seguinte forma:
Configurao por Strings
Dispositivo: "<Slave Id>:"
Item: "spsoe<Zona ou Tabela de Eventos (1 ou 2)>"
Exemplo: Para a leitura da Zona 1 do Escravo 1, Dispositivo igual a "1:" e Item igual a "spsoe1".
Alternativamente, Dispositivo pode ser igual a "" (String vazia) e Item igual a "1:spsoe1" (veja o tpico
Configurao por Strings).
Configurao Numrica
Para usar a configurao numrica deve ser definida, na aba Operations, uma operao que use como
funo de leitura a funo especial SP SOE. O tipo de dados definido automaticamente como SP_events,
assim que a funo de leitura SP SOE selecionada.
Copyright 2001-2016 Elipse Software Ltda. Todos os direitos reservados.
SIGNIFICADO
Tipo de evento
TIPO DE DADOS
Word
Endereo do evento
Word
Borda de subida ou de
descida
Word
FAIXA DE VALORES
De 0 a 65535 (800H para
Remote Annunciation,
Internal Data e Logic Input)
Referencia endereos de bits
de 1000H a 105FH
00: Borda de descida
01: Borda de subida
Para mais informaes sobre Tags reportados a eventos, veja o tpico Tags Reportados a Eventos do
Manual do Usurio do E3.
IMPORTANTE: Ao ler eventos de memria de massa em Tags reportados a eventos no E3, desabilite a
banda morta do Tag (propriedade EnableDeadBand configurada para Falso) e tambm no objeto Histrico
associado (propriedade DeadBand igual a zero), para evitar a perda de eventos com valores prximos.
Tambm importante desabilitar o histrico por varredura (no E3, propriedade ScanTime igual a zero). Com
isto, garante-se que novos eventos s so armazenados atravs do mtodo WriteRecord, executado no
evento OnRead do Tag, evitando a duplicao de eventos.
Tag de Leitura de Evento nico
Este Tag tambm reportado a eventos, sendo possvel tambm usar seu evento OnRead para
armazenamento em Histrico. Note que nada impede, entretanto, que ele seja tratado como um Tag normal
(Tag de tempo real), caso s interesse o seu valor mais recente. Como este Driver apenas l um buffer
interno, sugere-se definir um tempo de varredura bem baixo, at menor que o do outro tipo de Tag. O
consumo de CPU de cada varredura pode ser considerado desprezvel. Sugere-se a metade do perodo de
varredura do Tag de coleta de todos os eventos.
Como j comentado, este Tag utilizado para obter o status de determinado endereo de evento, sem
precisar separar ou realizar filtros nos eventos que chegam pelo Tag anterior, por script ou outro meio. Uma
aplicao tpica seria a associao a objetos de Tela.
O Tag de leitura de evento nico, como j mencionado, no faz a leitura de eventos do equipamento, mas sim
de um buffer interno do Driver, previamente preenchido durante a leitura do Tag de coleta de todos os
eventos. O Tag retorna apenas um Elemento, reportado a eventos, podendo ser configurado como Tag
simples (no precisa ser um Tag Bloco). O Driver aceita no mximo oito eventos acumulados por ponto de
evento, ou seja, para cada combinao de rel, zona, tipo e endereo do evento, em seu buffer interno. Se
ocorrer overflow, ou seja, se mais de oito eventos de um mesmo ponto forem retornados sem que nenhum
Tag de evento nico os colete, o Driver passa a descartar os eventos mais antigos. A configurao adequada
Copyright 2001-2016 Elipse Software Ltda. Todos os direitos reservados.
1
2
0
8000H (8000 em hexadecimal)
Exemplos:
Endereo do Evento: 102FH, Zona de Evento = 1 N4 = 102FH + 0 = 102FH
Endereo do Evento: 102FH, Zona de Evento = 2 N4 = 102FH + 8000H = 902FH
NOTA: Para representar valores em formato hexadecimal no Elipse E3 e no Elipse Power, deve-se usar o
prefixo "&H" (por exemplo, &H10 = 16). No Elipse SCADA, use o sufixo "h" (por exemplo, 10h = 16). Neste
Manual, entretanto, usado o sufixo "H" para denotar valores no formato hexadecimal.
Valor: Retorna a borda de subida ou descida, conforme a tabela a seguir
Opes disponveis para Valor
VALOR
00
01
Copyright 2001-2016 Elipse Software Ltda. Todos os direitos reservados.
SIGNIFICADO
Borda de descida
Borda de subida
Driver Modicon Modbus Master (ASC/RTU/TCP) v3.1.30
Timestamp: A propriedade Timestamp representa a data e a hora em que o evento foi de fato lido do
rel, durante a leitura do Tag de leitura de todos os eventos descrito anteriormente
Para maiores informaes sobre os eventos do rel, seus significados e endereamento, consulte a
documentao do fabricante. Para mais informaes sobre Tags reportados a eventos, veja o tpico Tags
Reportados a Eventos do Manual do Usurio do E3.
NOTA: O algoritmo de SOE sempre usa a funo 03 (Read Holding Registers) do protocolo Modbus para a
leitura de registros do equipamento. Para a escrita de registros usada por padro a funo 16 (Write
Multiple Registers). Tambm possvel selecionar a funo 06 (Write Single Register) na configurao
numrica apenas, atravs do campo Write da respectiva operao, na aba Operations.
Os tpicos a seguir descrevem de forma detalhada o algoritmo, sua implementao no software do CLP
(ladder) e como realizar sua leitura usando os Tags do Driver:
Tabela de Eventos
Procedimento de Aquisio no CLP
Procedimento de Aquisio na Aplicao
Tabela de Eventos
Como j mencionado no tpico Algoritmo de Leitura de SOE Genrico da Elipse Software, cada tabela de
eventos mantm os eventos em um buffer circular. O buffer circular de cada tabela definido pelo seu
endereo inicial, ou endereo base, contguo aos registradores de controle, e por seu nmero mximo de
registros, que define seu limite final. A tabela a seguir ilustra a disposio dos eventos dentro do buffer
circular de uma tabela.
Disposio de eventos do buffer circular
EVENTO
TIMESTAMP
ELEMENTO1
ELEMENTO2
ELEMENTO3
...
ELEMENTON
1
2
3
4
5
...
N
Cada linha da tabela anterior representa um evento armazenado, normalmente representado por uma
estrutura, ou por Tipos de Dados Definidos pelo Usurio.
Note que, no exemplo da tabela anterior, o primeiro elemento da estrutura dos eventos o timestamp. Este
campo, cuja presena no obrigatria, e que no necessariamente precisa aparecer na primeira posio,
define a propriedade Timestamp do Tag, no sendo retornado em seus Elementos (para mais informaes,
veja o tpico Tipos de Dados Definidos pelo Usurio).
possvel tambm definir eventos com tipos de dados nativos do Driver, e neste caso tem-se apenas um
Elemento de dado em cada evento, sem timestamp.
Os eventos devem ser inseridos no buffer circular em ordem crescente, retornando ao endereo base aps
atingir o limite superior do buffer circular. Os seguintes registros de controle devem ser definidos para cada
tabela:
Status da tabela: Deve ser mantido pelo CLP, indicando o nmero de eventos disponveis para a leitura
no buffer circular. Deve ser atualizado pelo dispositivo sempre que novos eventos forem adicionados
ao buffer circular, ou aps a concluso da coleta de eventos pela aplicao, o que pode ser detectado
pelo Status da aquisio.
Copyright 2001-2016 Elipse Software Ltda. Todos os direitos reservados.
Ponteiro de gravao: Este valor indica o ndice, comeando em 0 (zero), da posio onde o dispositivo
deve inserir o prximo evento. Deve ser incrementado pelo dispositivo a cada nova insero de eventos
no buffer circular, voltando ao endereo base aps alcanar o limite superior do buffer. Note que este
valor no deve ser fornecido em unidades de registradores Modbus, mas sim em posies de eventos,
devendo ser incrementado em uma unidade a cada novo evento inserido, independente do nmero de
registradores Modbus ocupados para cada evento no buffer circular. Com isto, o valor mximo
permitido para este ponteiro pode ser dado pela frmula MaxWritePtr = (Tamanho do buffer
circular / Tamanho da estrutura de evento) - 1.
Status da aquisio: Indica o nmero de registros j lidos pelo Driver a cada leitura individual de
eventos. Aps cada leitura, o Driver escreve neste registro o nmero de registros que conseguiu ler. O
aplicativo residente no escravo (ladder) deve ento imediatamente subtrair o valor escrito pelo Driver
do Status da tabela e ento zerar o Status da aquisio.
Reservado: Este registrador atualmente no utilizado. Pode ser usado em futuras verses do Driver,
podendo ser deixado em 0 (zero) na verso atual.
Conforme j mencionado, o endereo base do buffer circular, ou seja, o endereo onde inicia a tabela de
eventos, deve ser contguo aos registradores de controle.
J os registradores de controle devem estar dispostos tambm em endereos contguos, na ordem
apresentada anteriormente, permitindo sua leitura em uma nica operao, ou seja, supondo-se que o
endereo base dos registradores de controle para uma determinada tabela seja 100, tem-se os seguintes
endereos para os demais registradores:
Endereos de registradores
REGISTRADOR
Status da Tabela
Ponteiro de Gravao
Status da Aquisio
Reservado
Endereo Base do Buffer Circular
ENDEREO
100
101
102
103
104
Estampa de Tempo
Conforme j mencionado, cada evento composto por uma estrutura contendo um ou mais elementos de
dados (geralmente, porm no necessariamente, representados por Tipos de Dados Definidos pelo
Usurio).
Se forem usadas estruturas (tipos de dados definidos pelo usurio), possvel associar a cada evento uma
estampa de tempo (timestamp) fornecida pelo CLP. Neste caso, o valor do campo Timestamp deve ser
fornecido em um campo da estrutura, na memria do CLP, na ordem em que declarado no arquivo de
configurao, e seu valor no mostrado em nenhum Elemento de Bloco, sendo retornado apenas na
propriedade Timestamp do Tag associado.
Conforme explicado no tpico Tipos de Dados Definidos pelo Usurio, qualquer tipo de dados de data e hora
suportado pelo Driver pode ser usado. O tipo de dados GenTime, entretanto, foi criado especialmente para
uso com o Elipse Modbus SOE, devido facilidade de definio no software residente (ladder) do CLP.
Caso no seja necessria uma preciso de milissegundos, outra opo a considerar o tipo de dados UTC32
do Driver, representado como um inteiro de apenas 32 bits (quatro bytes) com os segundos desde 1/1/1970,
sem a representao dos milissegundos, considerados como 0 (zero).
No tpico seguinte, Procedimento de Aquisio na Aplicao, descreve-se como configurar o supervisrio
Copyright 2001-2016 Elipse Software Ltda. Todos os direitos reservados.
Note que foi selecionada a funo 16 (Write Multiple Registers) como funo de escrita, que a funo mais
comum. No entanto, recomenda-se o uso da funo 06 (Write Single Register) sempre que ela for suportada
pelo equipamento.
A figura a seguir mostra a mesma operao com o tipo de dados definido pelo usurio TYPE3 (veja o tpico
Tipos de Dados Definidos pelo Usurio), que um tipo de dados definido no arquivo de configurao
exemplo, disponvel com o Driver e que usado como exemplo neste tpico.
O tipo de dados TYPE3 est definido da seguinte forma no arquivo de exemplo do Driver:
// This type has an UTC32-type timestamp
// and a few named elements
struct TYPE3
{
DefaultAddress = 0x101;
timestamp = UTC32;
float Va;
float Vb;
float Vc;
float Ia;
float Ib;
float Ic;
}
Trata-se, portanto, de um tipo de dados Estrutura com seis campos de dados e timestamp, e com endereo
padro (parmetro B4 do Tag) igual a "101H" (257 em decimal). Para sua leitura, portanto, preciso definir
um Tag Bloco de seis Elementos com a seguinte configurao:
B1: Endereo do dispositivo escravo (CLP) na rede (Slave Id)
B2: 8 (operao definida anteriormente com a funo especial GenSOE)
B3: N (tamanho da tabela no dispositivo, em nmero mximo de eventos comportados)
B4: 100 (endereo do primeiro registro de controle, usando o valor definido na tabela exemplo do
tpico Tabela de Eventos)
Copyright 2001-2016 Elipse Software Ltda. Todos os direitos reservados.
Size: 6
NOTA: O parmetro B3 informa o tamanho da tabela em nmero mximo de eventos suportados, e no em
registros Modbus. Em conjunto com o parmetro B4, informa indiretamente o endereo final ou limite
superior da tabela. O tamanho da rea de dados da tabela, portanto, em nmero de registros Modbus, o
produto de B3 pelo tamanho de cada evento em nmero de registros Modbus, ou seja, em Words de 16
bits.
Note que, caso o Tag Browser do E3 seja usado para inserir o Tag na aplicao, como explicado no tpico
Tipos de Dados Definidos pelo Usurio, Elementos do Tag j so nomeados conforme o nome dado aos
elementos da estrutura em sua declarao. O Tag Browser pode ser aberto clicando-se em
na aba Design
do Driver.
Utilizao
Uma vez tendo definido o Tag (ou Tags) apropriado, habilite sua varredura e deixe ao Driver a tarefa de
coletar os eventos da respectiva tabela, sempre que novos eventos forem detectados.
Tags associados funo GenSOE (elsoe na configurao por Strings) so sempre reportados a eventos.
Isto significa, conforme j explicado no tpico Tipos de Dados Definidos pelo Usurio, que possvel ao
Driver retornar vrios eventos em uma nica operao de leitura, ou seja, em um nico intervalo da varredura
do Tag.
Isto significa que o Driver retorna o conjunto de eventos (no caso do exemplo anterior, conjuntos de blocos
com seis campos de dados e timestamp) de uma s vez, o que produz uma sequncia de eventos OnRead no
Tag, um para cada evento (bloco com seis campos de dados e timestamp) retornado pelo Driver.
Para instrues detalhadas sobre a maneira correta de tratar Tags reportados a eventos, consulte o tpico
Tags Reportados por Evento no Manual do Usurio do E3. O Manual do Usurio do Elipse SCADA tambm
possui um tpico anlogo.
Em suma, a forma usual de tratar Tags reportados a eventos inserir em seu evento OnRead o mtodo
WriteRecord do objeto Histrico previamente associado, garantindo assim a gravao de todos os eventos
que cheguem ao Histrico. Neste caso, o Histrico deve ser configurado sem banda morta (propriedade
DeadBand igual a zero) e desabilitando o histrico por scan (no E3, propriedade ScanTime igual a zero). A
propriedade EnableDeadBand do Tag tambm deve ser configurada para Falso.
IMPORTANTE: Ao ler eventos de memria de massa em Tags reportados a eventos no E3, desabilite a
banda morta do Tag (propriedade EnableDeadBand configurada como Falso) e tambm no objeto Histrico
associado (propriedade DeadBand igual a zero), para evitar a perda de eventos com valores prximos.
Tambm importante desabilitar o histrico por varredura (no E3, propriedade ScanTime igual a zero).
Com isto, garante-se que novos eventos s so armazenados atravs do mtodo WriteRecord, executado
no evento OnRead do Tag, evitando a duplicao de eventos.
Otimizao e Compatibilidade
Alguns equipamentos, como os CLPs da marca ATOS, no suportam a leitura em blocos de tipos de dados de
estruturas diferentes. Na prtica, isto impede que o Driver leia em um bloco nico dados de registradores de
controle e de eventos. Para coletar eventos de CLP com estas restries, preciso desabilitar a opo Enable
Control and Data Registers Grouping na aba Gen SOE.
Apndice
Este apndice contm os seguintes tpicos:
Dicas de Otimizao
Dvidas Mais Frequentes
Lista de Equipamentos que Comunicam com o Modbus
Lista de Excees Padro do Protocolo
Limite Mximo para o Tamanho dos Blocos Suportado pelo Protocolo
Codificao BCD
Dicas de Otimizao
Este tpico enumera algumas dicas de otimizao para a comunicao com os dispositivos escravos.
Dicas de Configurao do Driver para o E3 e o Elipse Power
Use Superblocos sempre que possvel, dando preferncia criao de Tags simples (Tags PLC no Elipse
SCADA) ao invs de Tags Bloco (veja o tpico Leitura por Superblocos).
Se no for possvel usar Superblocos, d preferncia criao de Tags Bloco, agrupando o maior
nmero possvel de variveis no menor nmero de blocos (veja o texto sobre o agrupamento manual no
tpico Leitura por Superblocos).
Considere as recomendaes do artigo Dicas de Performance para o E3, no Elipse Knowledgebase.
No caso de redes com alta latncia, banda reduzida ou perda de pacotes, leia tambm o artigo
Configuraes de rede do E3 para redes com alta latncia, banda reduzida e/ou perda de pacotes.
Em redes de alta latncia, configure time-outs mais elevados, levando em conta a latncia esperada.
Lembre-se que o tempo de time-out s tem efeito no caso de atrasos, no interferindo no desempenho
em situaes normais de uso.
Dicas de Configurao do Driver para o Elipse SCADA
D preferncia criao de Tags Bloco, agrupando o maior nmero possvel de variveis no menor
nmero de blocos (veja o texto sobre o agrupamento manual no tpico Leitura por Superblocos).
Leve em considerao as recomendaes do artigo Desenvolvendo aplicativos para que tenham o
melhor desempenho possvel, tambm disponvel no Elipse Knowledgebase.
Em redes de alta latncia, configure time-outs mais altos, levando em conta a latncia esperada.
Lembre-se que o tempo de time-out s tem efeito no caso de atrasos, no interferindo no desempenho
em situaes normais de uso.
Dicas para a Configurao ou Programao do Equipamento
Se possvel, agrupe as variveis definidas pela aplicao residente (ladder) que possuam menor tempo
de varredura (scan), em endereos contguos na memria do CLP. O tempo total de varredura dos Tags
depende muito da capacidade de agrupamento das variveis em blocos de comunicao.
A aplicao est tentando ler um valor do tipo DWord, porm o valor correto no est chegando. A
aplicao apresenta valores diferentes daqueles que constam no CLP.
Resposta: Consulte o artigo Utilizando drivers Modbus Master (ASC/RTU/TCP) com controladores
ATOS no Elipse Knowledgebase. Se estiver usando a nova configurao por Strings (campos
Dispositivo e Item), consulte tambm o item Byte Order do tpico Configurao por Strings. Caso
esteja utilizando a antiga configurao numrica (parmetros N/B), consulte tambm o tpico Aba
Operations, sobretudo o item Byte Order.
Como juntar dois valores do tipo Int16 (no CLP) em um valor do tipo Int32 (na aplicao)?
Existe um nmero de 32 bits que est armazenado em dois registradores de 16 bits cada um no CLP.
Como fazer para mostrar na tela da aplicao este nmero como um nico registro de 32 bits?
Resposta: Deve-se criar Tags utilizando tipos de dados de 32 bits, como por exemplo os tipos de
dados Float, DWord ou Int32. Na configurao do Tag de Comunicao, deve-se informar o
primeiro endereo de cada varivel no CLP (veja o tpico Configurando um Tag de Comunicao).
Com isto, o Driver une dois registros de 16 bits do equipamento em um nico valor de 32 bits,
retornado no campo Valor do Tag ou no Elemento do Tag Bloco. Se estiver usando a configurao
por Strings (campos Dispositivo e Item), informe o tipo de dados desejado logo aps o endereo do
registro (veja o tpico Configurao por Strings). Caso esteja utilizando a antiga configurao
numrica (parmetros N/B), necessrio definir operaes com tipos de dados de 32 bits. Note
que, na janela de configurao (Aba Operations), os tipos de dados de 32 bits so sempre
mostrados com tamanho (campo Size) de quatro bytes (veja o tpico Tipos de Dados Suportados).
A aplicao j est desenvolvida, porm preciso juntar os valores de dois Words em um nico Tag.
Resposta: possvel realizar esta unio atravs do uso de scripts, criando um inteiro de 32 bits sem
sinal. Para isto, deve-se multiplicar o Word que contm a parte mais alta da palavra por 65536 e
ento somar o Word que contm a parte mais baixa da palavra. Por exemplo, UInt32 = (HighWord
65536) + LowWord.
A aplicao precisa ler valores do tipo Float. A funo de leitura foi configurada como sendo 03 e
escrita 16 com o tipo de dados Float. Porm, a aplicao E3 ou Elipse Power mostra um valor que no
condiz com o valor que est no equipamento.
Resposta: O protocolo Modbus oficial usa o ordenamento de bytes (byte order) no padro big
endian, com os bytes mais significativos de cada valor vindo antes. Se o Driver estiver lendo valores
absurdos, mesmo com a configurao correta do endereo, muito provvel que o equipamento
utilize um byte order diferente do padro do protocolo. Neste caso, necessrio configurar as
opes de permuta (swap). Se estiver usando a configurao por Strings (campos Dispositivo e
Item) consulte o item Byte Order do tpico Configurao por Strings. Caso esteja utilizando a
antiga configurao numrica (parmetros N/B), consulte o item Byte Order do tpico Aba
Operations para mais informaes sobre como utilizar as opes de swap.
Como fazer para comunicar com mais de um equipamento em uma rede de comunicao Serial?
Existe mais de um equipamento na rede serial, cada um com endereo nico. Como fazer para
comunicar com cada um deles?
Resposta: Deve-se ter cuidado apenas com o Slave Id de cada Tag de Comunicao, pois neste
campo que deve-se indicar com qual equipamento deseja-se comunicar. Em redes seriais RS485,
todos os equipamentos escutam ao mesmo tempo as requisies do Driver (h um barramento
Copyright 2001-2016 Elipse Software Ltda. Todos os direitos reservados.
nico), porm apenas o que possuir o Slave Id correspondente responde requisio (no podem
haver mltiplos equipamentos com o mesmo Id). Na configurao por Strings, este valor pode ser
fornecido no campo Dispositivo, ou no incio do campo Item (consulte mais informaes no tpico
Configurao por Strings). No caso da configurao numrica, este valor fornecido nos
parmetros N1/B1 de cada Tag. Pode-se usar as mesmas operaes para Tags de diversos
equipamentos. Uma boa referncia para maiores informaes sobre a instalao e manuteno de
redes seriais o livro Serial Port Complete, de Jan Axelson.
Existe mais de uma porta serial no computador. Como configurar o Driver para comunicar com os
equipamentos que esto ligados em cada uma das portas?
Resposta: Neste caso, como existe mais de um meio fsico diferente (Serial 1, Serial 2, etc.), so
necessrios tantos Drivers de Comunicao quantas portas existirem. As configuraes dos Tags do
Driver podem ser as mesmas para todos os objetos (instncias) do Driver. A nica diferena que
um Driver deve ser configurado para comunicar pela porta Serial 1, outro Driver configurado para
comunicar pela porta Serial 2, e assim por diante. As configuraes da porta a ser usada so
realizadas na aba Serial da janela de configuraes do Driver (veja o tpico Propriedades).
Como comunicar com mais de um equipamento em uma rede de comunicao Serial com conversor
para RS485?
Uma rede RS485 tem vrios equipamentos comunicando atravs de um conversor RS232-RS485 pela
porta Serial. Sempre ocorre a troca de endereo (Slave ID), ou seja, quando o Driver vai solicitar dados
de outro equipamento, ocorre um time-out. Aps retentar a mesma mensagem, o equipamento
responde normalmente. Existe alguma forma de evitar este time-out durante a troca do endereo (Slave
ID)?
Resposta: Alguns conversores RS232-RS485 requerem um intervalo de tempo para chavearem, ou
seja, comutarem do modo de transmisso para recepo, ou vice-versa. Para contornar esta
limitao, pode-se utilizar a opo Inter-frame delay na aba Serial do IOKit, disponvel na janela de
configuraes. Este campo define um intervalo de tempo entre mensagens. O valor exato do
intervalo depende do conversor utilizado mas, em caso de incerteza, recomenda-se iniciar
experimentando valores entre 50 ms e 300 ms.
NOTA: A opo Inter-frame delay do IOKit pode trazer significativo prejuzo de performance em algumas
aplicaes, devendo ser utilizada apenas quando absolutamente necessrio. Certifique-se de que o
conversor est em boas condies, e se ele de fato exige a utilizao deste delay. Se necessrio, contate o
suporte do fabricante.
Como fazer para comunicar com mais de um equipamento em uma rede de comunicao Ethernet?
Existe mais de um equipamento ligado em uma rede Ethernet, cada um com endereo IP nico. Como
fazer para comunicar com cada um deles?
Resposta: Atualmente, para cada endereo IP, necessrio tantos Drivers de Comunicao quantos
endereos IP deseja-se comunicar. A configurao referente aos Tags do Driver pode ser a mesma
para todos os Drivers. A nica diferena que um Driver deve ser configurado para comunicar com
o endereo IP 1 (um), outro Driver configurado para comunicar com o endereo IP 2 (dois), e assim
por diante. O parmetro Slave Id pode ainda ser utilizado em modo Modbus TCP para diferenciar
equipamentos conectados a um gateway Modbus Ethernet / RS485 no mesmo endereo IP. Note que
este gateway no apenas deve permitir a interconexo entre redes Ethernet e seriais, mas tambm
converter frames ModbusTCP para os modos seriais suportados pelos equipamentos (ModbusRTU
Copyright 2001-2016 Elipse Software Ltda. Todos os direitos reservados.
sinais em geral no so mais usados, podendo ser ignorados. Em caso de dvidas, consulte o
manual do conversor ou o suporte do fabricante.
Quando utilizar as funes Swap Bytes, Swap Words e Swap DWords?
Estas opes devem ser usadas para tipos de dados de 16, 32 ou 64 bits, cuja ordem dos bytes do valor
fornecido pelo equipamento no corresponde ordem padro do protocolo Modbus, onde os bytes mais
significativos vm sempre antes (padro big endian, tambm chamado Motorola). Se o Driver est lendo
valores absurdos ou diferentes dos valores armazenados no CLP, possvel que esteja utilizando um byte
order diferente do padro do protocolo. Para mais informaes, consulte o item Byte Order do tpico
Configurao por Strings, ou caso esteja usando a antiga configurao numrica (parmetros N/B), consulte
o item Byte Order do tpico Aba Operations. Tambm recomenda-se consultar a documentao do
equipamento.
A aplicao est tentando ler um valor Word, porm o valor vem diferente do que est configurado no
CLP. Se no CLP configurado o valor "1" (um), na aplicao aparece o valor "256".
Resposta: O valor 1 (um) em hexadecimal 0001H e o valor 256 em hexadecimal corresponde a
0100H. O equipamento possui um byte order diferente do padro do protocolo. Deve-se habilitar a
opo Swap Bytes (opo "b1" na configurao por Strings) para ler o valor correto.
A aplicao tem um Tag configurado para ler um valor DWord, mas o valor lido pela aplicao
diferente do valor armazenado no CLP. Ao atribuir o valor "258", por exemplo, ao registro no CLP, na
aplicao aparece o valor absurdo "16908288".
Resposta: O valor 258 em hexadecimal 00000102H e o valor 16908288 em hexadecimal
corresponde a 01020000H. O equipamento possui um byte order diferente do padro do protocolo,
onde o Word menos significativo vem antes. Neste caso, deve-se habilitar a opo Swap Words
(opo "b2" na configurao por Strings) para ler o valor correto.
Como ler corretamente tipos de dados Float em CLPs WEG TPW-03?
Resposta: Na configurao dos Tags de Comunicao, deve-se habilitar a opo de ordenamento de
bytes Swap Words, correspondente opo "b2" na configurao por Strings. Caso esteja usando a
antiga configurao numrica (parmetros N/B), consulte o item Byte Order do tpico Aba Operations.
Particularidades conhecidas dos equipamentos da famlia ABB Advant Controller 31 Series 90 (por
exemplo, ABB 07KT97)
A aplicao no E3 ou no Elipse Power est tentando ler registros ou bits do CLP, mas sempre ocorrem
erros.
Resposta: Os equipamentos desta srie no permitem o uso de Superblocos do E3 ou do Elipse
Power por dois motivos:
Existem descontinuidades no mapa de endereos de registradores dos equipamentos, com
intervalos de endereos no definidos.
O tamanho mximo do PDU diferente do estabelecido pelo padro do protocolo, sendo
definido como um tamanho que suporte 96 Words ou Bits. Uma vez que o protocolo agrupa oito
bits em cada byte de dados, isto resulta em tamanhos mximos de PDU diferentes para as
funes de leitura de Bits e Words, o que impossibilita o uso da customizao do tamanho
mximo do PDU permitida pelo Driver, que no permite configurar limites diferentes para cada
Copyright 2001-2016 Elipse Software Ltda. Todos os direitos reservados.
funo do protocolo.
Soluo: Siga estes passos:
1. Desabilite a leitura por Superblocos, configurando a propriedade EnableReadGrouping do
Driver para Falso.
2. D preferncia definio de Tags Bloco, agrupando o maior nmero possvel de variveis no
menor nmero de Blocos, respeitando o limite do equipamento de 96 Words ou 96 Bits em
cada Bloco (para mais informaes, leia a seo sobre Agrupamento Manual no tpico
Leitura por Superblocos).
NOTA: Pode ainda ser possvel utilizar o agrupamento automtico (Superblocos) se no for preciso ler
Words e Bits no mesmo objeto Driver, dependendo obviamente do intervalo de endereos que se precise
ler (mais especificamente, se este intervalo possui ou no descontinuidades). Neste caso, de qualquer
forma, necessrio configurar a propriedade Customize Max. PDU Size na Aba Modbus, de acordo com o
limite de 96 Words (96 2 = 192 bytes) ou 96 Bits (96 8 = 12 bytes). Tal possibilidade pode ser avaliada
com cuidado, caso a caso, pelo desenvolvedor da aplicao.
A aplicao est tentando ler valores do tipo de dados Float e a seguinte mensagem aparece no log do
Driver: "Warning: denormalized float number! Returning zero". O que fazer?
Resposta: O aparecimento desta mensagem no indica erro de comunicao ou de configurao.
Recomenda-se apenas que o usurio verifique na programao do CLP por que ele est retornando
valores no normalizados.
Informaes Adicionais: Tal mensagem indica que o equipamento enviou ao Driver um valor de ponto
flutuante (Float) no formato IEEE 754, porm no normalizado. Tais valores podem resultar de
operaes aritmticas com resultados que extrapolem as possibilidades de representao deste
formato, como as condies de overflow, underflow,
e
etc. Os valores no normalizados esto
previstos na norma IEEE 754, no devendo em tese gerar problemas para o Driver ou para a aplicao.
Entretanto, devido deteco de erros no passado relacionada a hardwares especficos, o Driver
passou a retornar 0 (zero) para a aplicao ao receber valores no normalizados do equipamento,
registrando esta mensagem em log.
EQUIPAMENTO
ETE30
MGE 144
KT97
KT98
FABRICANTE
Altus
Areva
Atos
BCM
Ciber Brasil
Contemp
Deep Sea
Embrasul
Eurotherm
Fatek
GE
Gefran
Hitachi
Honeywell
Horner APG
Koyo
Kron
LG
EQUIPAMENTO
Praticamente todos os equipamentos da Altus
possuem Modbus, exceto alguns modelos da linha
Piccolo
MiCOM P127
Rel P632
Os CLPs ATOS suportam o protocolo Modbus RTU com
pequenas variaes relativas ao tamanho mximo dos
frames e byte order. Para mais informaes sobre as
variaes, consulte o artigo Utilizando o driver Modbus
Master com controladores ATOS, no Elipse
Knowledgebase
BCM1088
BCM1086
BCM-GP3000
BCM2085
Medidor Multivarivel de Grandezas eltricas
UDP200
Medidor Multivarivel de Grandezas eltricas
UDP600
CPM45
DSE5210
DSE5310
DSE5310M
DSE5320
DSE5510
DSE5510M
DSE5520
DSE7310
DSE7320
Medidor MD4040
2500 Intelligent Data Acquisition and Precision
Multi-Loop PID Control
FB - 14MCU
GE PAC RX7
GE GEDE UPS
CLP Gefran Gilogk II
Gefran 600RDR21
Hitachi HDL17264
PLC HC-900
Equipamentos da srie XLe/XLt all-in-one control
devices
CLP CPU 260
Medidor MKM-120
DMT40U
FABRICANTE
EQUIPAMENTO
LG / LSIS
LG Master K120 S
LG XGB - XBM
XC100 - Porta Serial 232
XC200 - Porta Serial 232/422/485 (mdulo de
comunicao XIO-SER) e Porta Ethernet
XV200 - Porta Serial 232 e Porta Ethernet
XVH300 - Porta Serial 232 e Porta Ethernet
XV400 - Porta Serial 232 e Porta Ethernet
N1100
N1500
N2000
N3000
Twido
A340
CLP M340
Srie Premium
Conversores de frequncia e soft starter
Disjuntores de MT e BT
Rels de proteo de BT e MT
Rels SEPAM Sries 20, 40 e 80
Controladores Zelio Logic com final "BD"
V120
TP 03
Clic 02
V1000
Moeller
Novus
Schneider
Telemecanique
Unitronics
Weg
Yaskawa
NOME
ILLEGAL FUNCTION
SIGNIFICADO
O cdigo de funo recebido no
vlido. Isto pode indicar que a
funo no est implementada ou
que o Escravo encontra-se em um
estado inadequado para processla.
NOME
ILLEGAL DATA ADDRESS
03
04
05
ACKNOWLEDGE
06
08
0A
SIGNIFICADO
O 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.
O 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
demanda um longo tempo. Esta
exceo previne um time-out no
Mestre. O fim da requisio deve
ser testado por um processo de
polling.
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 estendida
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.
Driver Modicon Modbus Master (ASC/RTU/TCP) v3.1.30
NOME
SIGNIFICADO
GATEWAY TARGET DEVICE FAILED Usado em conjunto com gateways,
TO RESPOND
para indicar que no foi recebida
nenhuma resposta do equipamento
de destino. Geralmente indica que
o equipamento no est presente
na rede.
Segundo a especificao do protocolo, o frame Modbus completo (ADU) pode ter uma PDU com tamanho
mximo de 253 bytes.
Sendo assim, dependendo do tipo de dado ou funo Modbus que utilizado na comunicao, o protocolo
impe os limites de elementos do bloco em cada comunicao descritos na tabela a seguir.
Limites de Elementos de Bloco
FUNO MODBUS
03, 04
16
DESCRIO
LIMITE
Leitura de mltiplos registros de 16 125 registros (250 bytes)
bits
Escrita de mltiplos registros de 16 123 registros (247 bytes)
bits (Holding Registers)
FUNO MODBUS
DESCRIO
Leitura de mltiplos bits
Escrita de mltiplos bits
Leitura de registros de arquivo
Escrita de registros de arquivo
01, 02
15
20
21
LIMITE
2000 bits (250 bytes)
1968 bits (247 bytes)
124 registros (248 bytes)
122 registros (244 bytes)
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 isoladamente em formato binrio, sem
limitaes no que se refere ao nmero de algarismos.
A tabela a seguir mostra os algarismos decimais e seus valores correspondentes em BCD (valores em
binrio).
Algarismos decimais em codificao BCD
DECIMAL
0
1
2
3
4
BCD
0000b
0001b
0010b
0011b
0100b
DECIMAL
5
6
7
8
9
BCD
0101b
0110b
0111b
1000b
1001b
A fim de melhorar a eficincia desta codificao, comum representar-se dois algarismos por byte. Note que,
na tabela acima, cada dgito decimal requer apenas quatro bits, ou meio byte, para a sua representao.
Tal representao com dois dgitos em cada byte 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 dados para cada dois algarismos do valor decimal representado. Por isto o campo Size,
no caso de tipos de dados BCD, deve ser definido como a metade do nmero mximo de algarismos
representados nos valores a serem lidos ou escritos.
Exemplo
Como exemplo, suponha que se pretenda enviar o valor 84 em decimal (0x54 em formato hexadecimal),
usando a codificao BCD comprimido em um byte, o formato usado por este Driver.
O primeiro passo separar os dois dgitos decimais que compem o valor em sua representao decimal:
Dgito 1: 8
Dgito 2: 4
Se fossemos enviar o valor ao equipamento sem a codificao BCD, o valor enviado ao protocolo seria o
prprio valor 84, que seria representado em formato hexadecimal pelo valor 0x54, ou ainda 01010100b em
formato binrio.
Usando o formato BCD comprimido, entretanto, representaremos os dois dgitos decimais separadamente em
cada metade, ou nibble, do byte a ser enviado:
BCD: 0x84 ou 10000100b
Note que, se interpretssemos por engano este valor 0x84 em formato BCD como um valor em formato
hexadecimal sem esta codificao, e este valor fosse convertido para decimal, obteramos o valor 132, sem
significado algum.
A tabela a seguir apresenta mais alguns exemplos de valores decimais entre 0 (zero) e 99 e suas respectivas
representaes no formato BCD Comprimido em um byte, apresentados nos formatos hexadecimal e binrio.
Algarismos decimais em codificao BCD Comprimido
DECIMAL
10
0
99
81
45
HEXADECIMAL
0x0A
0x00
0x63
0x51
0x2D
BCD (HEXADECIMAL)
0x10
0x00
0x99
0x81
0x45
BCD (BINRIO)
00010000b
00000000b
10011001b
10000001b
01000101b
DATA
01/04/2016
AUTOR
C. Mello
COMENTRIOS
Corrigido um problema
com a leitura de Tags
configurados por Strings
quando o servio de
Superblocos est ativado
(Case 20754).
VERSO
DATA
AUTOR
A. Quites
COMENTRIOS
Adicionada a configurao
de Tags por Strings (Case
19119).
Adicionado novo Tag
Browser com Tags
configurados por Strings
(Case 20460).
Melhorias na verificao
de erros na configurao
de tipos do usurio (Case
20415).
Corrigido um problema na
leitura e escrita de tipos
de dados BCD de oito
dgitos (Case 19733).
Corrigida uma
vulnerabilidade na qual o
Driver permitia ao usurio
configurar estruturas com
nomes de tipos de dados
nativos, confundindo o
usurio (Case 19816).
Corrigido um erro na
leitura de tipos de dados
UTC32 em Bloco (Case
19819).
Corrigido um erro ao
escrever tipos de dados
Double em Bloco, ou seja,
com a escrita de mais de
um Elemento ao mesmo
tempo (Case 20053).
Corrigido um erro na
gerao de arquivos INI de
operaes em formato
antigo da verso 1.0 do
Driver, recurso usado para
retrocompatibilidade (Case
20203).
Corrigido um erro pelo qual
a configurao equivocada
do byte order para tipos de
dados BCD gerava
alterao de valores (Case
20204).
VERSO
DATA
AUTOR
COMENTRIOS
Corrigido um erro pelo qual
a rotina Elipse SOE no
retornava valores
reportados a eventos para
tipos de dados nativos,
no estruturados (Case
20364).
Corrigido um erro na
leitura de Tags de tempo
real de eventos do
equipamento GE PAC RX7,
quando usados com
callbacks (Case 20374).
VERSO
3.0.11
DATA
29/05/2015
AUTOR
A. Quites
COMENTRIOS
Migrao do Driver para o
IOKit 2.0 (Case 13891).
Corrigido problema na
janela de configurao de
operaes, em que a
remoo de uma operao
da tabela poderia falhar
(Case 14874).
Corrigido erro no qual o
Driver poderia apresentar
comportamentos estranhos
com a opo Reconnect
after timeout habilitada,
quando lendo Tags de
leitura de SOE por
callbacks. Este erro
poderia, em situaes
raras, permitir que o Driver
tentasse desconectar
mltiplas vezes
consecutivas, e ento se
reconectar tambm
mltiplas vezes
consecutivas (Case 14775).
Corrigido vazamento de
handles no download de
eventos do controlador GE
PAC RX7 (Case 16404).
Corrigido erro no recurso
de Use Bit Mask quando
usado com Superblocos
habilitados (Case 18340).
Corrigido erro na leitura
de Strings com tamanho
mpar, em que os ltimos
caracteres poderiam ser
truncados caso as opes
de swap estivessem
habilitadas (Case 16744).
VERSO
2.8.17
DATA
19/10/2012
AUTOR
A. Quites
COMENTRIOS
Implementado o Elipse
Modbus SOE, recurso que
padroniza a leitura de SOE
para a maioria dos CLPs
(Case 12038).
Adicionados os tipos ou
estruturas definidos pelo
usurio, como parte da
implementao do recurso
de SOE Genrico (Case
12038).
Implementada a leitura de
SOE para rels Schneider
Electric sries SEPAM 20,
40 e 80 (Case 12106).
Adicionado o novo tipo
Sp_time para a
representao de
estampas de tempo
(timestamps) de rels
Schneider Electric sries
SEPAM (Case 12106).
Adicionados os tipos de
data e hora GenTime,
UTC64d e UTC32, que
podem ser usados para a
representao de
estampas de tempo
(timestamp) (Case 12038).
Adicionada a leitura por
callbacks para Tags de
leitura de SOE (Case
12464).
Adicionada opo de
reconexo em caso de
ocorrncia de timeout na
recepo de frames,
quando utilizada a camada
fsica Ethernet (Case
12537).
Remodelada a janela de
configurao para permitir
a adio das novas opes
de configurao, com a
criao de nova aba
Operations (Case 12038).
VERSO
DATA
AUTOR
COMENTRIOS
Removida a opo Swap
Address Delay da janela
de configurao do Driver.
Esta opo, tornada
obsoleta pela opo Interframe delay do IOKit,
continua disponvel como
configurao offline,
mantendo compatibilidade
com aplicaes legadas
(Case 13285).
Removida a opo Reverse
Frame da caixa de dilogo
de configurao das
operaes do Driver, por
obsolescncia. A opo
continua sendo suportada
em aplicaes legadas
(Case 12443).
Adicionadas informaes
sobre a configurao de
tipos Float para
controladores WEG TPW03 (Case 12546).
Adicionada informao
sobre a configurao do
Driver para o controlador
ABB 07KT97 e para todos
os controladores da famlia
ABB Advant Controller 31
series 90 (Case 12667).
Adicionado o CLP ATOS
lista de equipamentos que
suportam o protocolo
Modbus (Case 13247).
Adicionadas informaes
sobre o recurso de partio
automtica de blocos,
disponvel a partir da
verso 2.00 (Case 11594).
Adicionado o CLP WEG Clic
02 lista de equipamentos
suportados (Case 11602).
Revisado o texto do tpico
de introduo para deixar
claro que este Driver
trabalha como Mestre na
rede Modbus, permitindo a
comunicao com
dispositivos Escravos (Case
12035).
Driver Modicon Modbus Master (ASC/RTU/TCP) v3.1.30
VERSO
2.7.1
DATA
30/06/2010
AUTOR
A. Quites
COMENTRIOS
Adicionado tpico sobre
Superblocos (propriedade
EnableReadGrouping)
(Case 13287).
Adicionado tpico sobre
particionamento
automtico de blocos
(Case 13288).
Adicionado tpico com
dicas de otimizao (Case
13287).
Adicionada ao tpico
Dvidas Mais Frequentes
a questo sobre a
mensagem referente
recepo de valores Float
no normalizados (Case
13295).
Atualizada a lista de
equipamentos que
comunicam usando o
protocolo Modbus, levando
em conta equipamentos
registrados nos suportes
atendidos mais
recentemente (Case
13298).
Adicionado o tpico Guia
de Configurao Rpida,
com o passo a passo para
a configurao do Driver
nos casos de uso mais
comuns (Case 13301).
Solucionado erro ao
carregar arquivo de
configurao no Windows
CE ARM HPC2000 (Case
12352).
Solucionado erro na escrita
de valores float_GE (Case
12298).
Solucionado erro no qual o
ltimo caractere de String
lida, com tamanho mpar
de caracteres, poderia
deixar de ser retornado
aplicao (Case 12466).
Ajustes na recepo dos
dados para descartar
possveis bytes invlidos
(Case 11394).
Driver Modicon Modbus Master (ASC/RTU/TCP) v3.1.30
VERSO
DATA
AUTOR
C. Mello
2.6.3
26/11/2009
A. Quites
C. Mello
2.5.12
30/06/2009
A. Quites
COMENTRIOS
Atualizado o tpico Leitura
do Cdigo da ltima
Exceo (Case 11233).
Atualizado o tpico
Dvidas Mais Frequentes
(Case 11316).
Removida a mensagem de
erro falsa no arquivo de
log para leitura de dados
de memria com endereo
zero (Case 10654).
Otimizada a leitura do tipo
Bit via Superblocos (Case
10971).
Modificada a rotina de
Wait Silence para ser
executada em qualquer
erro que ocorrer no Driver.
O usurio tambm pode
executar a rotina Wait
Silence manualmente pelo
novo Tag Especial N2 =
9001 (Case 10850).
Adicionada
compatibilidade com a
plataforma Windows CE
(Case 10914).
Corrigido erro na opo
Swap Address Delay (Case
10425).
Atualizado o valor padro
para o tamanho mximo do
PDU, conforme verso
mais recente do padro
Modbus (Case 10274).
Solucionado erro nos Tags
especiais de ltima
exceo, que poderiam
no reportar algumas
excees (Case 10337).
Corrigido erro no retorno
do ano para registros de
SOE com o dia atual do
controlador GE PAC RX7
(Case 10382).
Corrigido erro na funo 20
(Read File Record) (Case
10312).
VERSO
DATA
AUTOR
M. Ludwig
2.4.10
17/02/2009
A. Quites
2.3.22
02/09/2008
C. Mello
COMENTRIOS
Criado novo Tag para ler
eventos de SOE de pontos
especficos do GE PAC RX7
(Case 10370).
Corrigido erro na leitura de
tipos Bit com Superblocos
(Case 10100).
Implementada leitura do
evento GE SOE mais
recente (Case 10178).
Criadas operaes padro
para os tipos de funes
mais comuns (Case 9185).
Adicionado novo tipo de
dado Float_GE (Case
9427).
VERSO
2.2
DATA
11/05/2007
AUTOR
A. Quites
A. Quites
COMENTRIOS
Corrigido erro na
configurao offline do
parmetro
ModiconModbus.Modbus
Mode (Case 9831).
Implementada a leitura de
mscaras de bits de
registradores (Case 9682).
Implementada a leitura de
buffer de eventos em
controladores GE PAC RX7
(Case 9523).
Implementada a
possibilidade de configurar
um limite mximo para o
PDU (Case 9154).
Corrigido erro nos recursos
de reordenamento de
bytes (Swap Byte, Swap
Word, Swap DWord e
Rev. Frame) na leitura de
tipos Word com
Superblocos habilitados
(Case 9220).
Implementada a opo
Enable CMS Addressing
(Case 8665).
Revises e testes em
funes Modbus pouco
usadas (Case 8730).
Melhorada a consistncia
de dados escritos atravs
da funo Modbus 06
(Write Single Register)
(Case 8663).
Corrigido erro na leitura de
blocos de tipos no Word
com Superblocos
habilitados (Case 8243).
VERSO
2.1
DATA
23/01/2007
AUTOR
A. Quites
2.0
10/11/2006
A. Quites
1.0
R. Farina
COMENTRIOS
Implementado o recurso de
Superblocos (Case 6185).
Melhorada a consistncia
de parmetros N2/B2 de
Tags de acesso a registros
(Case 7714).
Corrigido erro na leitura de
blocos de dados do tipo
BCD de tamanho quatro
(Case 7728).
Corrigido erro na leitura de
blocos de Strings (Case
7804).
Verso original com IOKit
(Case 3339).
Todas as verses
anteriores ao controle de
revises.
Matriz
Rua 24 de Outubro, 353 - 10 andar
90510-002 Porto Alegre
Fone: (+55 51) 3346-4699
Fax: (+55 51) 3222-6226
E-mail: elipse-rs@elipse.com.br
Filial SP
Rua dos Pinheiros, 870 - Conj. 141/142
05422-001 So Paulo - SP
Fone: (+55 11) 3061-2828
Fax: (+55 11) 3086-2338
E-mail: elipse-sp@elipse.com.br
Filial PR
Av. Sete de Setembro, 4698/1705
80240-000 Curitiba - PR
Fone: (+55 41) 4062-5824
E-mail: elipse-pr@elipse.com.br
Filial MG
Rua Antnio de Albuquerque, 156
7 andar Sala 705
30112-010 Belo Horizonte - MG
Fone: (+55 31) 4062-5824
E-mail: elipse-mg@elipse.com.br
Filial RJ
Praia de Botafogo, 300/525
22250-044 Rio de Janeiro - RJ
Fone: (+55 21) 2158-1015
Fax: (+55 21) 2158-1099
E-mail: elipse-rj@elipse.com.br
Taiwan
9F., No.12, Beiping 2nd St., Sanmin Dist.
807 Kaohsiung City - Taiwan
Fone: (+886 7) 323-8468
Fax: (+886 7) 323-9656
E-mail: evan@elipse.com.br