Evento: OnAlarm

Estes eventos podem estar associados a Alarmes subordinados a Tags do Kernel.

Variáveis sempre registradas neste tratador:

  • Event (string) : tipo de evento que está sendo sinalizado para o script, podendo ser uma dentre as strings: “AlarmOn”, “AlarmOff”, “AlarmAck”

  • Alarm (objeto) : representa o alarme que está sofrendo transição de estado.

    Métodos comuns a todos alarmes:
    • Ack() (método): operação de confirmação, que simula o comando de Ack do operador.

    • Reset() (método): operação de confirmação, que simula o comando de Reset do operador.

    • GetState() (método): retorna string com a informação do estado atual do alarme, que pode ser: “Normal”, “Ack”, “Unack”, “RetUnack”, “LatchAck”, “LatchUnack”, “SuppressedByDesign” , “Shelved”, “OutOfService”.

    • RemoveFromService() (método): remove o alarme de serviço (opção para evitar sinalização de alarme quando, por exemplo, o processo associado ao alarme está em manutenção.

    • ReturnToService() (método): retorna o alarme para serviço (opção para habilitar sinalização de alarme após chamada de RemoveFromService()).

    Propriedades comuns a todos alarmes:
    • isEnabled (booelano): indica se este Alarme está habilitado ou não.

    • needAck (booelano): Alarme exige Ack do operador antes de retornar a condição normal.

    • isEvent (booelano): indica se este Alarme se comporta como Evento (se verdadeiro, implica em não-retentivo e não recebe Ack).

    • playSound (booelano): indica se existe sinal sonoro associado a condição de alarme.

    • alarmMsg (string): mensagem associada a condição de alarme.

    Propriedades específicas do alarme numérico (AlarmNumeric):
    • level (integer): valor que indica se nível do alarme numérico é NONE (0), LL(4), L(3), H(2), HH(1).

    • sourceType (integer): valor que indica se limite do alarme é constante(0) ou outro tag(1).

    • sourceLimit (double): valor do limite quando source_type == 0 (constante).

    • sourceTag (instância de Tag): objeto Tag envelopado que representa o limite quando source_type == 1 (tag).

    Propriedades específicas do alarme booleano (AlarmBool):
    Propriedades específicas do alarme booleano de máscara (AlarmMask):

Exemplo de Uso:

-- identifica o evento que ocorreu
print(Alarm.Name .. " " .. Event .. " " .. Alarm:GetState())
if (Event == "AlarmOn") then
  print("**** Sinal de Alarme " .. Alarm.Name ..
                " " .. Alarm.Tag.Name ..
                " = " .. Alarm.Tag.Value)
end

if (Alarm:GetState()=="Unack") then
  -- Faz confirmação de acknowledge simulando interação com usuário
  Alarm:Ack()
end

-- função de depuração de atributos do Alarme
function printAlarm(a)
 print("isEnabled " .. tostring(a.isEnabled))
 print("isEvent " .. tostring(a.isEvent))
 print("needAck " .. tostring(a.needAck))
 print("playSound " .. tostring(a.playSound))
 print("alarmMsg " .. tostring(a.alarmMsg))
end
-- Imprime detalhes do Alarme
printAlarm(Alarm)