Procedimento de Aquisição na Aplicação

<< Clique para Mostrar o Sumário >>

 

Procedimento de Aquisição na Aplicação

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

A leitura dos eventos em uma aplicação é 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 de um equipamento. Se um tipo de dados nativo deste Driver, ou built-in type, é definido, cada evento tem apenas um elemento deste tipo de dados, sem estampa de tempo fornecida pelo CLP, pois a estampa de tempo representa o momento da coleta dos eventos. Por outro lado, se são usados tipos de dados definidos pelo usuário, é possível definir estruturas para os eventos, incluindo estampas de tempo, como visto mais adiante neste tópico.

A seguir é descrita a configuração dos Tags tanto na nova metodologia de configuração por Strings, os campos Dispositivo e Item, como na antiga configuração numérica do Elipse SCADA, os 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. Para mais informações, consulte o tópico Configuração por Strings

tam. do tipo: Usado apenas para tipos de dados de tamanho variável. Para mais informações, consulte 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. Para mais informações, consulte o item Byte Order no tópico Configuração por Strings. Quando são usadas estruturas, afeta apenas os elementos individuais. Para mais informações, consulte o tópico Tipos de Dados Definidos pelo Usuário

bit: Mascaramento de bits. Em geral pode ser omitido, dificilmente seria usado aqui. Para mais informações, consulte 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. Para mais informações, consulte 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 6 (seis) campos de dados e estampa de tempo. Daí deduz-se que o Tag deve ser um Bloco com 6 (seis) Elementos para representar esta estrutura.

Note que, conforme já explicado, o valor da estampa de tempo, embora ocupe registros no CLP, não necessita de Elementos de Tag Bloco, pois o valor é retornado na propriedade 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 seja suportada por um equipamento.

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

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 deste 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 6 (seis) campos de dados e estampa de tempo, e com endereço padrão, o parâmetro B4 do Tag, igual a "101H", ou 257 em decimal. Para a leitura, portanto, é preciso definir um Tag Bloco de 6 (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 (seis)

 

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 Elipse E3, do Elipse Power ou do Elipse Water seja usado para inserir o Tag em uma 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 na declaração. O Tag Browser pode ser aberto clicando-se em Tag Browser na aba Design deste Driver.

 

Utilização

Uma vez tendo definido o Tag, ou Tags, apropriado, habilite a varredura e deixe com este Driver a tarefa de coletar os eventos da respectiva tabela, sempre que novos eventos sejam detectados.

Tags associados à função GenSOE, ou 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 a este 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 este Driver retorna o conjunto de eventos, ou no caso do exemplo anterior conjuntos de blocos com 6 (seis) campos de dados e estampa de tempo, de uma só vez, o que produz uma sequência de eventos OnRead no Tag, um para cada evento, ou bloco com 6 (seis) campos de dados e estampa de tempo, retornado por este 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 Elipse 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 no 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, ou seja, configurar a propriedade DeadBand com o valor 0 (zero), e desabilitar o histórico por scan, ou seja, no Elipse E3, no Elipse Power ou no Elipse Water configurar a propriedade ScanTime com o valor 0 (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 Elipse E3, no Elipse Power ou no Elipse Water, desabilite a banda morta do Tag, ou seja, configure a propriedade EnableDeadBand como Falso, e também no objeto Histórico associado, ou seja, configure a propriedade DeadBand com o valor 0 (zero), para evitar a perda de eventos com valores próximos. Também é importante desabilitar o histórico por varredura, ou seja, no Elipse E3, no Elipse Power ou no Elipse Water configure a propriedade ScanTime com o valor 0 (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 este 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 página foi útil?