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:
Vá para Edit> Alarms > Groups .
Clique em AuditTrail: Settings .
É mostrada a janela de configuração do Audit Trail. Marque os tipos de eventos que deseja sejam registrados
Para habilitar o registro de eventos, na tabela da aba Groups coluna LogEvents, selecione a opção Ativar
Depois de selecionar Ativar, selecione os eventos que você deseja registrar.
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:
Vá para Edit> Alarms > Groups.
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.
No campo Life Time, digite o tempo que o Historiador de alarmes deve manter os dados de alarme, em dias.
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).
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:
Vá para Edit> Alarms > Groups .
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:
|
Colors | Selecione as cores que deseja usar para cada estado, tanto para o texto como para o fundo do texto. Os estados são:
|
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 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 |
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:
Vá para Edit > Alarms> Areas.
Clique com o botão direito do mouse na raiz AlarmAreas e selecione New area.
Digite um nome para a área.
Clique com o Botão direito do mouse na nova Área e selecione novamente.New Area para criar uma sub área.
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:
Vá para Edit> Alarms > Itens.
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 |
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: