Procedimento de Aquisição na Aplicação

Driver Modicon Modbus

Procedimento de Aquisição na Aplicação

Topo  Anterior  Próximo

Neste tópico é detalhada a configuração da aplicação do supervisório para a aquisição dos eventos acumulados no CLP ou dispositivo escravo programável.

A leitura dos eventos no supervisório é realizada por meio de Tags que usam a função especial de leitura Gen SOE. O tipo de dados do Tag define a estrutura dos eventos armazenados na tabela do equipamento. Se for definido um tipo de dados nativo do Driver (built-in type), cada evento tem apenas um elemento deste tipo de dados, sem timestamp fornecido pelo CLP (o timestamp representa o momento da coleta dos eventos). Por outro lado, se forem usados tipos de dados definidos pelo usuário, é possível definir estruturas para os eventos, incluindo timestamps, como visto mais adiante neste tópico.

A seguir é descrita a configuração dos Tags tanto na nova metodologia de configuração por Strings (campos Dispositivo e Item), como na antiga configuração numérica do Elipse SCADA (parâmetros N e B).

 

Configuração por Strings

·Dispositivo: "<Slave Id>:"

·Item: "elsoe<N>.<end. inicial>[.<tipo>[<tam. do tipo>]][.<byte order>][/bit]"

 

Onde:

·N: Tamanho da tabela no dispositivo, em número máximo de eventos comportados

·end. inicial: Endereço do primeiro registro de controle, usando o valor definido na tabela exemplo do tópico Tabela de Eventos

·tipo: Tipo de dados nativo ou do usuário usado para cada evento (veja o tópico Configuração por Strings)

·tam. do tipo: Usado apenas para tipos de dados de tamanho variável (veja o tópico Configuração por Strings)

·byte order: Ordenamento de bytes. Deve ser omitido para equipamentos que seguem plenamente o padrão do protocolo (veja o item Byte Order no tópico Configuração por Strings para mais informações). Quando são usadas estruturas, afeta apenas seus elementos individuais (veja o tópico Tipos de Dados Definidos pelo Usuário)

·bit: Mascaramento de bits. Em geral pode ser omitido, dificilmente seria usado aqui (veja o campo Bit no tópico Configuração por Strings)

 

Exemplo:

·Dispositivo: "1:"

·Item: "elsoe150.&h101.TYPE3"

 

O tipo TYPE3 está definido da seguinte forma no arquivo padrão de exemplo do Driver (veja o tópico Tipos de Dados Definidos pelo Usuário):

// 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. Daí deduz-se que o Tag deve ser um Bloco com seis Elementos para representar a estrutura.

Note que, conforme já explicado, o valor do timestamp, embora ocupe registros no CLP, não necessita de Elementos de Tag Bloco, pois seu valor é retornado no campo timestamp do Tag.

 

NOTA

O parâmetro N informa o tamanho da tabela em número máximo de eventos suportados, e não em registros Modbus. Em conjunto com o parâmetro Endereço Inicial, informa indiretamente o endereço final ou limite superior da tabela. O tamanho da área de dados da tabela, portanto, em número de registros Modbus, é o produto de N pelo tamanho de cada evento em número de registros Modbus, ou seja, em Words de 16 bits.

 

Configuração Numérica (Parâmetros N e B)

Para configurar Tags de leitura de Elipse SOE usando a configuração numérica, é necessário configurar uma operação na aba Operations, usando a função especial GenSOE.

A figura a seguir mostra um exemplo de adição de operação utilizando a função especial GenSOE com o tipo de dados Word.

Função especial GenSOE

Função especial GenSOE

Note que foi selecionada a função 16 (Write Multiple Registers) como função de escrita, que é a função mais comum. No entanto, recomenda-se o uso da função 06 (Write Single Register) sempre que ela for suportada pelo equipamento.

A figura a seguir mostra a mesma operação com o tipo de dados definido pelo usuário TYPE3 (veja o tópico Tipos de Dados Definidos pelo Usuário), que é um tipo de dados definido no arquivo de configuração exemplo, disponível com o Driver e que é usado como exemplo neste tópico.

Configuração com a função GenSOE e um tipo de dados definido pelo usuário

Configuração com a função GenSOE e um tipo de dados definido pelo usuário

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 endereço padrão (parâmetro B4 do Tag) igual a "101H" (257 em decimal). Para sua leitura, portanto, é preciso definir um Tag Bloco de seis Elementos com a seguinte configuração:

·B1: Endereço do dispositivo escravo (CLP) na rede (Slave Id)

·B2: 8 (operação definida anteriormente com a função especial GenSOE)

·B3: N (tamanho da tabela no dispositivo, em número máximo de eventos comportados)

·B4: 100 (endereço do primeiro registro de controle, usando o valor definido na tabela exemplo do tópico Tabela de Eventos)

·Size: 6

 

NOTA

O parâmetro B3 informa o tamanho da tabela em número máximo de eventos suportados, e não em registros Modbus. Em conjunto com o parâmetro B4, informa indiretamente o endereço final ou limite superior da tabela. O tamanho da área de dados da tabela, portanto, em número de registros Modbus, é o produto de B3 pelo tamanho de cada evento em número 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 aplicação, como explicado no tópico Tipos de Dados Definidos pelo Usuário, Elementos do Tag já são nomeados conforme o nome dado aos elementos da estrutura em sua declaração. O Tag Browser pode ser aberto clicando-se em Tag Browser na aba Design do Driver.

 

Utilização

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 à função GenSOE (elsoe na configuração por Strings) são sempre reportados a eventos. Isto significa, conforme já explicado no tópico Tipos de Dados Definidos pelo Usuário, que é possível ao Driver retornar vários eventos em uma única operação 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 sequência de eventos OnRead no Tag, um para cada evento (bloco com seis campos de dados e timestamp) retornado pelo Driver.

Para instruções detalhadas sobre a maneira correta de tratar Tags reportados a eventos, consulte o tópico Tags Reportados por Evento no Manual do Usuário do E3. O Manual do Usuário do Elipse SCADA também possui um tópico análogo.

Em suma, a forma usual de tratar Tags reportados a eventos é inserir em seu evento OnRead o método WriteRecord do objeto Histórico previamente associado, garantindo assim a gravação de todos os eventos que cheguem ao Histórico. Neste caso, o Histórico deve ser configurado sem banda morta (propriedade DeadBand igual a zero) e desabilitando o histórico por scan (no E3, propriedade ScanTime igual a zero). A propriedade EnableDeadBand do Tag também deve ser configurada para Falso.

 

IMPORTANTE

Ao ler eventos de memória de massa em Tags reportados a eventos no E3, desabilite a banda morta do Tag (propriedade EnableDeadBand configurada como Falso) e também no objeto Histórico associado (propriedade DeadBand igual a zero), para evitar a perda de eventos com valores próximos. Também é importante desabilitar o histórico por varredura (no E3, propriedade ScanTime igual a zero). Com isto, garante-se que novos eventos só são armazenados através do método WriteRecord, executado no evento OnRead do Tag, evitando a duplicação de eventos.

 

Otimização e Compatibilidade

Alguns equipamentos, como os CLPs da marca ATOS, não suportam a leitura em blocos de tipos de dados de estruturas diferentes. Na prática, 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 restrições, é preciso desabilitar a opção Enable Control and Data Registers Grouping na aba Gen SOE.

 
Esta seção da documentação ajudou você a configurar este Driver?
Sim Não
Comentários (opcional):