Alarmes, eventos e Audit Trail

Nesta secção são apresentadas as funcionalidades disponíveis no Action.NET para a configuração de mecanismos para a geração de mensagens de alarmes e eventos. também é apresentada a facilidade de Trilha de Auditoria para um projeto.

 

Configurando Audit Trail

Você pode selecionar quais eventos devam ser registrados nos arquivos de Audit Trail (registros para rastreamento de auditoria). Esta configuração é válida para os eventos de sistema que você deseja selecionar, abaixo são os do grupo predefinido SystemEvent. Na tela Edit>Alarms, em sua parte superior há várias opções de configuração.

Para configurar o Audit Trail:

  1. Vá para Edit> Alarms > Groups .

  2. Clique em AuditTrail: Settings .

    • É mostrada a janela de configuração do Audit Trail. Marque os tipos de eventos que deseja sejam registrados

  3. Para habilitar o registro de eventos, na tabela da aba Groups coluna LogEvents, selecione a opção Ativar

  4. Depois de selecionar Ativar, selecione os eventos que você deseja registrar.

  5. Clique em OK.

 

Configuração das opções de alarme

Você pode configurar as definições gerais de comportamento para alarmes de eventos que determinam a forma como o sistema trata os alarmes durante a inicialização e por quanto tempo os alarmes e eventos devem permanecer no Historiador de alarmes. Na tela Edit>Alarms, em sua parte superior, há várias opções de configuração.

Para configurar as opções de alarme gerais:

  1. Vá para Edit> Alarms > Groups.

  2. Na caixa de texto Initial Disable Time, na parte superior da aba, digite quanto tempo o sistema deve esperar durante a inicialização antes de considerar que um estado de alarme deve ser um alarme.

    • Durante a partida do sistema, os IEDs podem apresentar alarmes, por não ter sido inicializados. Esta configuração informa ao sistema para esperar pelo período de tempo configurado, para deixar que se complete a inicialização, antes de o sistema considerar alarmes.

  3. No campo Life Time, digite o tempo que o Historiador de alarmes deve manter os dados de alarme, em dias.

  4. Marcando a check-box "Enable Limits by Shift" , é acionado em tempo de execução o mecanismo de escolha de conjuntos de limites por "turno", para implementar por exemplo, limites diferenciados por períodos do dia. (carga leve, media, pesada).

  5. A opção Ignore Alarms During TimeDeadband, ao ser marcada ativa o mecanismo de não geração de alarmes para tags denro do período de banda morta, nos quais foi definido o tempo TimeDeadband (tempo de banda morta).

Configurando grupos de alarme

Grupos de alarme permitem que você configure as definições para o comportamento que será executado quando ocorre um alarme. Use grupos de alarme para configurar definições de comportamento comuns para uso com diversos eventos de alarme. As configurações do grupo determinam ações como se é necessária uma confirmação, se um som é reproduzido, o que é registrado, e como são mostrados os alarmes.
O Action.NET vem com alguns grupos de alarmes pré-definidos que você pode usar, ou se preferir você pode criar outros conforme suas necessidades e critérios.
Para criar um novo grupo defina o nome do grupo na aba Alarms>Groups, onde o comportamento do item de alarme é especificado.
Os grupos pré-definidos no Action.NET são:

  • Critical - mensagens críticas que necessitam de reconhecimento.

  • SystemEvent - Eventos de sistema que podem ser gravados na Audit Trail.

  • Warning -Mensagens de aviso que não necessitam de reconhecimento.

Para configurar grupos de alarme:

  1. Vá para Edit> Alarms > Groups .

  2. Digite ou selecione as informações, conforme necessário.

Coluna

Descrição

Name

Digite um nome para o grupo de alarme. O sistema indicará se o nome não é válido, mostrando a célula com o contorno vermelho.

AckRequired

Se escolhido Yes, nesta opção, o alarme permanece na lista de alarme até que alguém reconheça o alarme, clicando duas vezes no aplicativo.

Sound

Selecione, entre alguns disponíveis, típicos do MS-Windows, o som que será reproduzido quando ocorre o alarme.

Show

Selecione List para que uma mensagem de alarme seja exibida na janela do Objeto de Alarmes na aplicação

LogEvents

Selecione em que condições você deseja que o alarme seja registrado no Historiador de alarmes:

  • None-Alarme não será logado. nunca.

  • Active - Registra o alarme quando ele está ativo.

  • ActiveAck - Registra quando o alarme está ativo e reconhecido.

  • ActiveNorm - Registra quando o alarme retorna ao normal.

  • All - Registra em todas as condições acima.

Colors

Selecione as cores que deseja usar para cada estado, tanto para o texto como para o fundo do texto. Os estados são:

  • Active- Tag está no estado de alarme.

  • Normalizado- Tag estava no estado de alarme, mas já foi para o estado normal e ainda precisa ser reconhecido.

  • Acknowledge - Reconhecido- Tag foi reconhecido, mas ainda está em estado de alarme.

ACKtimeout

Define um tempo limite para o reconhecimento do alarme. Se o alarme não for reconhecido após o tempo especificado, o alarme volta para o estado ativo novamente

AutoAckTime

Se o alarme não for reconhecido após o tempo especificado, o sistema reconhece o alarme automaticamente

NotificationMethod 

Nome de um método de alguma Classe de Script do tipo Server, odque será chamado quando ocorrer qualquer alteração de estado
de alarme neste grupo. O método tem que ter o protótipo:

void NotificationName(AlarmEventInfo[] info).

Veja também "Inscrevendo-se em Notificações" 

ActiveTimeDeadBand

Tempo em segundos a ser utilizado como banda morta na entrada dbandem estado de alarme.Se o estado do ponto volta ao normal antes
deste tempo ter decorrido, não será gerado o alarme.

Description

Digite uma descrição deste grupo de alarme.

[Outras colunas]

Para definições de outras colunas que estão disponíveis em muitas tabelas, consulte "Descrição de colunas comuns" .

  • Continue adicionando tantos grupos de alarme quantos você precisar.

  • Se necessário, clique com o botão direito em uma linha para cortar, copiar, colar ou excluir a linha da tabela.

  • Consulte as seguintes seções relacionadas com as outras abas de alarme: "Configurando Itens de alarme"

Configurando Áreas Lógicas de Alarmes

Outra funcionalidade disponível no tratamento de Alarmes é a configuração de Áreas Lógicas nas quais pode-se alocar os itens de Alarmes. Estas áreas lógicas são definidas no nível do projeto, e podem também ser definidas como Sub Áreas dentro de áreas, permitindo a configuração de agrupamentos lógicos dispostos hierarquicamente.
A facilidade serve para o tratamento em grupo de alarmes de uma mesma área. Pode-se então obter informações de quantos alarmes estão ativos ou reconhecidos em uma área ou sub área. Pode-se habilitar ou desabilitar todos os alarmes de uma área (incluindo suas sub áreas), ou apenas de sub áreas.
Nas concessionárias de energia, usa-se, geralmente, para se identificar um "bay" a subdivisão do sistema elétrico em Regionais, Subestações e Setores de tensão. As áreas lógicas de alarmes existem justamente para estender esta definição hierárquica aos agrupamentos de itens de alarmes. A hierarquia pode refletir coisas como, UHEs, Subestações, Setores de tensão.
Define-se na aba Areas do espaço de trabalho de Alarms.

Para criar Areas:

  1. Vá para Edit > Alarms> Areas.

  2. Clique com o botão direito do mouse na raiz AlarmAreas e selecione New area.

Digite um nome para a área.

  1. Clique com o Botão direito do mouse na nova Área e selecione novamente.New Area para criar uma sub área.

  2. Continue adicionando níveis filhos ou irmãos e inserção de novas áreas, conforme a necessidade.

    • Se necessário, clique com o botão direito uma Área para renomear ou apagar.

Exemplo do uso de AREAS

No exemplo da figura a seguir há, como primeiro nível as áreas RESERVATORIO, SE e UGS da UHE JAU. Ao se cadastrar os itens de alarmes, na coluna AREA deve-se preencher com as Areas em que ser quer que estes itens pertençam.


Uma vez criada, a AREA ficará disponível na lista de existentes na coluna AREA da tabela de
Itens de Alarmes.

Uma AREA é um objeto específico que possui como propriedades, contadores de itens em alarme, reconhecidos, habilitados, desabilitados, etc. conforme mostrado na figura abaixo. É mostrada a área JAU_UGS_JAU_UG1 e as propriedades que podem ser visualizadas em tempo de execução.

Configurando Itens de alarme

Ao configurar itens de alarmes, você pode configurar os valores limites específicos que devam gerar um alarme. Cada linha nesta tabela de Itens de Alarme refere-se a um alarme. Você pode ter várias linhas para o mesmo tag para definir limites diferentes para faixas ou estados múltiplos de um Tag. Por sua vez cada Item refere-se a um Grupo de alarme, para definir o comportamento de visualização e ações durante as transições de estado de alarme (ativo / normal).

Para configurar itens de alarmes:

  1. Vá para Edit> Alarms > Itens.

  2. Digite ou selecione as informações, conforme necessário.

Coluna

Descrição

TagName

Digite um nome de tag ou clique ... para selecionar um tag.

Condition

Selecione entre um conjunto de possíveis eventos a condição que deseja usar para a geração deste alarme. Para as condições DeviationMinor ou DeviationMajor, especifique um limite, então use a coluna de valor nominal para definir um valor ou um Tag cujo valor deva ser comparado para obter o desvio atual.

Limit

Digite um valor para o limite de alarme que corresponde à condição que você selecionou. Pode-se definir até tres limites paera a mesma condição utilizando o mecanismo de Limites escolhidos por "turnos" ou faixas horárias. As outras colunas são Limit1 e Limit2.

Group

Selecione um grupo de alarme, entre os já definidos, que será utilizado para controlar o comportamento requerido quando ocorrem as transições de alarme. Veja "Configurando grupos de alarme" 

Priority

Digite um valor de prioridade que controla a posição onde o alarme é exibido no Objeto com a lista de alarmes. Quanto maior o número, maior a prioridade. Você pode usar a mesma prioridade para mais de um evento de alarme. Digite 0 (zero) para os alarmes que devam ir para o fim da lista.

Message

Digite o texto que vai aparecer na lista de alarmes.

Area

Escolha na lista a AREA em que deseja que este item seja incluido. Pode-se escolher qualquer nivel ou subnivel de areas. A area escolhida será a considerada a LOCAL para este item. Veja também "Configurando Áreas Lógicas de Alarmes"

Deadband

Banda morta em unidades de engenharia do próprio tag. Utilizado para a condição de limites, define um range em torno do valor limite dentro do qual não é alterado o estado de alarme.

Setpoint

Valor definido para avaliar as condições de alarme DeviationMinor e DeviationMajor. A condição ocorre quando o valor atual do tag se desvia deste valor

SetPointDeadband 

Representa a banda morta para a propriedade Setpoint. Define uma faixa de valores ao redor do setpoint na qual não é gerado
alarme de desvio.

AuxValue

Nesta coluna pode ser incluído o Tag de um ponto, relacionado ao item de alarme, que se deseja seja passado na estrutura de alarme quando de uma transição de estado de alarme. Por exemplo: no caso que este item de alarme indica a abertura de um disjuntor, poderia se colocar o tag do ponto de medição da corrente atualmente passando no disjuntor.

[Outras colunas]

Para definições de outras colunas que estão disponíveis em muitas tabelas, consulte "Descrição de colunas comuns" 

  • Continue adicionando tantos itens de alarme quantos você precisar.

  • Se necessário, clique com o botão direito em uma linha da tabela para cortar, copiar, colar ou excluir a linha.

EditAlarmsItems.Condition

Esta é a coluna em que se define a condição. Nela podem ser escolhidos os eventos a seguir listados.Veja em cada caso a condição de avaliação que é utilizada para a geração dos eventos de alarmes.

  • Hi: Tag > = limite

  • HiHi: Tag > = limite (quando reconheceu automaticamente reconhece Hi alarme mesmo Tag)

  • Lo: Tag <= limite

  • LoLo: Tag <= limite (quando reconheceu automaticamente reconhece alarme Lo a mesma Tag)

  • RateOfChange: Taxa de Tag da mudança> = limite

  • DeviationMinor: Valor absoluto (tag - Setpoint)> limite (valor nominal definido na coluna Setpoint)

  • DeviationMajor: Valor absoluto (tag - Setpoint)> limite (valor nominal definido na coluna do Setpoint)

  • Equal: Tag = limite

  • GreaterThan: Tag> limite

  • GreaterEqual: Tag> = limite

  • LessThan: Tag <limite

  • LessEqual >: Tag < = limite

  • Changed: valor Tag mudou

  • ChangedUp: valor Tag aumentou

  • ChangedDown: valor Tag diminuiu

  • Not Equal: tag não igual ao limite.

Múltiplos Itens de Alarme para um Tag

Deve ser observado que um tag pode ter um ou mais registros nesta tabela, em função do comportamento desejado. A figura abaixo mostra exemplos de tags com quatro registros de alarme (variáveis analógicas), dois registros (eventos que se deseja dois comportamentos distintos) e um registro de alarme (sinalização de estado de equipamento).

NOTA - Os itens que se referem a um mesmo tag precisam ser distintos quanto as propriedades Condição e Limite, de modo a não criar situações de ambiguidade.

Habilitar Limites por Turno

A opção "Habilitar Limites por turno" é especialmente orientada a sistemas que necessitem implementar a funcionalidade de Níveis de Carga, (Leve, média e Pesada). Quando é escolhida na tabela Itens, conforme a figura abaixo, aparecem três colunas para que se especifiquem os limites para cada nível de carga.


O atributo CurrentShift informa o turno atual: (0 = leve, 1=médio e 2= pesado)

O atributo EnableLimitsByShift informa se a funcionalidade está ou não habilitada, respectivamente. Se habilitada basta criar uma rotina que a cada hora defina o turno (shift): "Alarm.CurrentShift = x" onde x = 0 / 1 / 2.

Visualizando Alarmes e Eventos

Para visualizar os alarmes e eventos, você pode usar o objeto lista de alarmes disponível para ser colocado nas telas ou relatórios. Consulte a seção "Configurando uma Janela de Alarmes" , _bookmark267para mais informações

Reconhecimento de alarmes

Existem várias formas para execução do reconhecimento de alarmes:

  • Usando o Objeto de visualização de Alarmes nas telas.

  • As propriedades do Tags.

  • As Propriedades de tempo de execução de grupos de alarme ou de itens de alarme.

Reconhecer todos os alarmes

  • Você pode usar a propriedade <Alarm.AckAll> que reconhece todos os alarmes ativos.

Reconhecer um único Alarme ou o Alarme de maior prioridade

  • A propriedade <Alarm.PriorityItem.UnAck> permite o reconhecimento do alarme de maior prioridade (configurado no <Edit.Alarms.Items> na coluna "Prioridade"), se houver um reconhecimento de alarme pendente.

Reconhecer um alarme específico

  • Para reconhecer um alarme específico usar a propriedade<Alarm.Items.IDxx.Unack>.

  • Para verificar o conteúdo das colunas de alarme IDXX, vá para o item Alarme e adicione a coluna ID (clique com o botão direito na tabela e selecione ID).

Inscrevendo-se em Notificações

Para aplicar ações personalizadas usando os scripts dot NET, você pode se inscrever em notificações de alarmes e eventos.
O uso típico é criar um procedimento para enviar um avisos por SMS ou e-mail, executar cálculos personalizados, adicionar mensagens personalizadas de notificação ou alarmes de áudio, alarmes por áudio "text-to-speech", e qualquer tipo de ação personalizada programada usando o Microsoft. NET Framework.
Para se inscrever em eventos de alarmes, é preciso criar um método em qualquer classe do tipo Script Server, com o seguinte protótipo:

void NotificationName(AlarmEventInfo[] info)

A cada novo evento de transição de alarme gerado este método será chamado.
Finalmente, você precisa selecionar esse método em Edit> Alarms> Groups na Coluna
NotificationMethod na tabela de Groups.
O nome de método pode variar, o que é importante são os parâmetros esperados do método. A estrutura AlarmEventInfo está definida no namespace Alarm na referência as classes de tempo de execução.
Veja em http://www.spinengenharia.com.br/help/an-2016/runtime/index.html .

Banco de dados de alarmes

O banco de dados usado para armazenar os alarmes é definido em Edit-Datasets-DBs pelo objeto de conexão de banco de dados com o nome AlarmHistorian.
Por default, quando um novo projeto é criado, o AlarmHistorian é definido para usar o banco de dados SQLite distribuido juntamente com o Action.NET.

AVISO - O banco de dados SQLite deve ser usado para bancos de tamanho regular que nãonecessitem as facilidades disponibilizadas para sistemas de gerenciamento de dados mais robustos do tipo cliente/servidor. Se for prevista a utilização de bancos de dados maiores, você deve definir outro gerenciador de SQL para Banco de Dados do Historiador de Alarmes.


Para definir um outro banco de dados para armazenar o banco de dados do Historiador de Alarmes, você só precisa criar uma nova conexão de banco de dados, como explicado em "Configurando Conexões de Bancos de dados" nomeá-la de AlarmHistorian.

O Módulo de alarme cria automaticamente as tabelas necessárias no banco de dados. Um exemplo de esquema da tabela está disponível ao abrir qualquer arquivo com extensão. TAlarm, criado durante a execução de aplicações usando o banco de dados padrão SQLite para o registro de alarmes.

Objeto Runtime Alarm

O namespace Alarm tem as propriedades do servidor de alarmes.
O objeto Alarm.Group tem a lista de todos os grupos definidos e suas propriedades. O objeto Alarm.Item tem todos os itens de alarme e suas propriedades.
As seguintes propriedades dos Tags são relacionadas com o módulo de alarme:

  • tag.tagname.Hi: configuração e status de execução do alarme HI.

  • Os nomes semelhantes para outros tipos de alarme.

Veja em http://www.spinengenharia.com.br/help/an-2016/runtime/index.html , para a referência de programação completa em objetos de tempo de execução.

Nesta página: