Alarmas

El editor de la alarma: identidad y dirección, la condición, la tarjeta Comportamiento con la prioridad, la notificación, los retardos, el mensaje y el reconocimiento, el riel Estado, la máquina de estados, el anuncio, y Reconocer y Reconocer todas.

Ver como Markdown

Una alarma vigila una condición booleana y mueve una máquina de estados de reconocimiento, para que una condición que importaba nunca pueda ir y venir sin que nadie la vea. Seleccione una alarma bajo la raíz Alarmas de la columna de Logic (o cree una con Nuevo… > Nueva alarma) para abrir su editor; leerlo necesita Ver Logic, editarlo Configurar Logic, y reconocer Operar Logic.

El encabezado muestra la marca de alarma (sonando mientras la alarma está activa), el nombre, la línea "Una condición que esta estación vigila: mientras se cumple, la alarma se anuncia y espera a que la reconozcan.", una pastilla con el estado actual (En reposo; Activa, sin reconocer; Activa, reconocida; Restablecida, sin reconocer) y una pastilla Desactivado mientras la alarma está apagada. La columna del formulario lleva IDENTIDAD, CONDICIÓN y COMPORTAMIENTO; el riel lleva ESTADO.

La identidad

Campo Qué es Valores / valor inicial Efecto
Nombre El nombre visible; su segmento higienizado es la dirección bajo Alarms. Texto libre; una alarma nueva es AlarmN. Se confirma por el cambio de nombre seguro, igual que el nombre de una variable: una vista previa de las referencias que van detrás, Entrar o salir del campo para confirmarlo, y "La alarma cambió de nombre y se actualizaron N referencias." Renombrarla conserva el estado en vivo y un reconocimiento pendiente. Un nombre que choca se rechaza ahí mismo.
Línea de dirección Alarms.<carpetas>.<segmento>, repetida debajo del nombre. De solo lectura. Las expresiones y los scripts leen el estado de la alarma por ella (Alarms.NivelAlto.IsActive).
Descripción (opcional) Texto libre. Vacía. Ninguno.

La condición

La tarjeta CONDICIÓN es el editor de scripts con la pista "Una sola expresión JavaScript de tipo Bool sobre el espacio de direcciones, por ejemplo Connector.Simulated.Pump.Temp.ValueToReal() > Variables.SetpointHigh.ValueToReal(). Las condiciones no pueden hacer referencia a otras alarmas." La condición sigue todas las reglas de una expresión: una sola expresión de solo lectura, direcciones estáticas, la compuerta de calidad, el límite de 250 ms. Puede referenciar tags, variables de las dos clases, puntos de Process, recursos y los diagnósticos, nunca Alarms.*, y tiene que producir un booleano ("La condición debe evaluarse como Bool, pero produjo '…'."). Una condición que no se puede evaluar en un ciclo (un punto referenciado malo, ausente o vacío) es incertidumbre: la máquina de estados mantiene su último estado.

El comportamiento

Campo Qué es Valores / valor inicial Efecto
Prioridad La gravedad. Crítica, Alta, Media (al inicio), Baja; cada opción se dibuja en el color de su gravedad. Se muestra en el punto del árbol, en todos los resúmenes, en la tarjeta del mensaje emergente, en el diario técnico y en el indicador de la barra de estado; en las marcas compartidas gana la peor prioridad pendiente.
Notificación Cómo se anuncia una activación más allá del indicador siempre encendido de la barra de estado. Persistente (al inicio), Temporizada, Barra de estado. La información emergente del campo: "Cómo se anuncia una activación: Persistente = mensaje emergente hasta que se reconozca o vuelva a la normalidad; Temporizada = mensaje emergente durante unos segundos; Barra de estado = solo el indicador de la barra de estado." Vea El anuncio.
Retardo a la activación (ms) Cuánto tiempo tiene que cumplirse la condición antes de que la alarma se levante. Un entero no negativo; 0 la levanta de inmediato. Tiempo observado sostenido, con la resolución del ciclo de 100 ms.
Retardo a la desactivación (ms) Cuánto tiempo tiene que dejar de cumplirse la condición antes de que la alarma se restablezca. Un entero no negativo; 0 la restablece de inmediato. La misma resolución.
Mensaje (se muestra mientras está activa, opcional) El texto que lleva el anuncio. Texto libre, vacío. La tarjeta y la notificación del sistema dicen "<Mensaje> (Prioridad)"; sin ninguno, "La alarma de prioridad <prioridad> está activa."
Requiere reconocimiento: una alarma restablecida queda enclavada hasta que el operador la reconoce Si una activación exige una respuesta. Encendido al inicio. Apagado: la alarma sube directo a Activa, reconocida y se restablece directo a En reposo; se anuncia, pero nunca se enclava y nunca espera.

Un retardo negativo o que no se puede interpretar conserva el valor guardado y muestra "Los retardos deben ser enteros no negativos (ms; la resolución es el ciclo de 100 ms)." Un retardo es tiempo observado sostenido: mientras la condición no se puede evaluar, los dos relojes de retardo se reinician, así que una ventana ciega nunca se acredita ni para levantar ni para restablecer.

Guardar un cambio en la condición, en un retardo, en Requiere reconocimiento o en Activado regresa la máquina a En reposo (un estado viejo de otra regla mentiría); el reinicio se registra con la fuente Configuración y cierra la tarjeta emergente de la alarma. Cambiar el nombre, la descripción, la prioridad, el mensaje o la notificación, o volver a archivar la alarma en otra carpeta, conserva el estado.

El riel Estado

ESTADO muestra el estado actual en palabras, "Prioridad: <prioridad>", Activo desde (un guion mientras la condición no se cumple) y Última transición (un guion antes del primer cambio de estado), y la nota "Todas las transiciones aparecen en la página Eventos y en el histórico permanente de Alarmas. El estado de la alarma vive en el espacio de direcciones, por ejemplo Alarms.X.IsActive en una expresión o en un script." El panel de la raíz Alarmas lista todas las alarmas con "<estado> · <prioridad> · desde <cuándo>" en su columna Valor y un botón Reconocer por fila.

La máquina de estados

Estado Significado
En reposo La condición es falsa y no hay nada pendiente.
Activa, sin reconocer La condición es verdadera y todavía no se ha reconocido.
Activa, reconocida La condición es verdadera y ya se reconoció (o la alarma nunca exige reconocimiento).
Restablecida, sin reconocer La condición volvió a la normalidad sin que se reconociera: queda enclavada hasta que el operador la reconozca.

Una condición que se cumple durante todo el retardo a la activación levanta la alarma desde En reposo o desde Restablecida, sin reconocer hacia Activa, sin reconocer (directo a Activa, reconocida cuando Requiere reconocimiento está apagado). Una condición que deja de cumplirse durante todo el retardo a la desactivación la restablece: a En reposo cuando ya estaba reconocida, y a Restablecida, sin reconocer cuando no. Reconocerla mueve Activa, sin reconocer a Activa, reconocida y libera el enclavamiento de vuelta a En reposo. El ciclo evalúa primero las variables y después las alarmas, cada 100 ms, en la cola de la lógica. El estado de la alarma vive en memoria: después de un reinicio, cada máquina arranca En reposo y el primer ciclo vuelve a derivar la realidad de las condiciones en vivo, así que un enclavamiento o un reconocimiento pendiente no sobreviven a un reinicio. Toda transición, sea cual sea su origen (el ciclo, un reconocimiento, un reinicio al guardar, desactivar o eliminar), se registra y queda grabada en el histórico permanente de alarmas de la página Eventos.

El anuncio

La barra de estado del shell siempre lleva el conteo y la peor gravedad pendiente (la ventana). Más allá de eso, decide la clase de notificación:

Notificación Comportamiento
Persistente Una tarjeta de mensaje emergente al levantarse, titulada con el nombre de la alarma y coloreada por su prioridad (Crítica como error, Alta y Media como advertencias, Baja como información), que lleva Reconocer mientras no se ha reconocido y Abrir las alarmas. Se queda hasta que la alarma se reconozca o vuelva a En reposo; el enclavamiento de Restablecida, sin reconocer la mantiene en pantalla, y volver a levantarse la reemplaza.
Temporizada La misma tarjeta, descartada por sí sola después de 8 segundos.
Barra de estado Sin tarjeta y sin notificación del sistema; solo el indicador de la barra de estado.

Descartar una tarjeta a mano no es un reconocimiento. Mientras la ventana está escondida en el área de notificación o minimizada, una activación Persistente o Temporizada levanta además una notificación del sistema con el mismo texto.

Reconocer

Reconocer es un comando de operación y pasa dondequiera que la alarma se le cruce: el verbo Reconocer sobre una alarma abierta, Reconocer todas sobre la raíz Alarmas, el botón Reconocer de cada fila del panel de la raíz Alarmas, el Reconocer del clic derecho sobre una fila de alarma, el Reconocer de la tarjeta emergente, la página Eventos, un Aviso de alarmas de un panel de control, y el agente (registrado como MCP). Todo reconocimiento viaja en la cola de la lógica, se registra con su fuente, y cierra la tarjeta de la alarma.

Dondequiera que aparezca, la respuesta se ofrece solo donde hay una que dar. Una alarma que está En reposo o ya reconocida conserva su verbo en su lugar, en gris, diciendo "Esta alarma no está esperando respuesta."; Reconocer todas sobre un registro sin nada pendiente dice "Ninguna alarma está esperando respuesta.". Y el registro de acciones confirma solo lo que se movió: presionar una respuesta que no cambia nada informa esa misma frase, nunca "Reconocida.", porque un registro de estación que anota un acto de operador que nadie hizo es peor que un verbo fuera de alcance por un momento.

Comando Qué hace Gris cuando No se dibuja cuando
Reconocer Reconoce la alarma abierta; el registro de acciones dice "Reconocida." "Esta alarma no está esperando respuesta." cuando está En reposo o ya reconocida; "Runtime detenido" mientras está en solo lectura. El rol no tiene Operar Logic.
Reconocer todas Reconoce todas las alarmas con algo pendiente, en un solo elemento de la cola; el registro de acciones dice "Todas las alarmas reconocidas." "Ninguna alarma está esperando respuesta." cuando no hay nada pendiente; "Runtime detenido" mientras está en solo lectura. El rol no tiene Operar Logic.
Activar / Desactivar Cambia Activado; desactivarla regresa la máquina a En reposo y detiene la evaluación. La estación está bloqueada o en solo lectura. El rol no tiene Configurar Logic.
Copiar Duplica la alarma en la raíz Alarmas con un nombre libre; la copia arranca En reposo. La estación está bloqueada o en solo lectura. El rol no tiene Configurar Logic.
Eliminar la alarma Pregunta "¿Eliminar 'X'? Esto quita la alarma. Esta acción no se puede deshacer.", reinicia primero la máquina (para que un anuncio nunca sobreviva a su alarma) y la quita; las referencias a Alarms.X quedan sin resolver. La estación está bloqueada o en solo lectura. El rol no tiene Configurar Logic.

Lo que las alarmas no hacen

No hay histéresis ni banda muerta más allá de lo que exprese la condición, ni inhibición temporal, ni sonido, ni reconocimiento desde un script, ni estado guardado a lo largo de los reinicios, ni evaluación mientras la alarma está desactivada o el runtime detenido. Una alarma no es una ocurrencia de Process: esas se configuran y se juzgan en la página Process.