Alarmas
El editor de alarmas: identidad y dirección, la condición, la tarjeta Comportamiento con prioridad, notificación, retardos, mensaje y reconocimiento, el carril Estado, la máquina de estados, el aviso, y Reconocer y Reconocer todas.
Una alarma vigila una condición booleana y gobierna una máquina de estados de reconocimiento, para que una condición que importó no 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; leer necesita Ver Logic, editar Configurar Logic, y reconocer Operar Logic.
La cabecera muestra la marca de alarma (que suena 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 insignia con el estado actual (En reposo; Activa, sin reconocer; Activa, reconocida; Restablecida, sin reconocer) y una insignia Deshabilitado mientras la alarma está apagada. La columna del formulario lleva IDENTIDAD, CONDICIÓN y COMPORTAMIENTO; el carril lleva ESTADO.
Identidad
| Campo | Qué es | Valores / por defecto | Efecto |
|---|---|---|---|
| Nombre | El nombre visible; su segmento saneado es la dirección bajo Alarms. |
Texto libre; una alarma nueva es AlarmN. |
Se confirma mediante el cambio de nombre seguro, igual que el nombre de una variable: una vista previa de las referencias que van detrás, Intro o salir del campo para confirmar, "Alarma renombrada y N referencias actualizadas." Cambiar el nombre conserva el estado en vivo y un reconocimiento pendiente. Un nombre que choca se rechaza en el sitio. |
| Línea de dirección | Alarms.<folders>.<segment>, repetida bajo el nombre. |
Solo lectura. | Las expresiones y los scripts leen el estado de la alarma a través de ella (Alarms.HighLevel.IsActive). |
| Descripción (opcional) | Texto libre. | Vacía. | Ninguno. |
Condición
La tarjeta CONDICIÓN es el editor de scripts con la indicación "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 las expresiones: una sola expresión de solo lectura, direcciones estáticas, la puerta de la 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.
Comportamiento
| Campo | Qué es | Valores / por defecto | Efecto |
|---|---|---|---|
| Prioridad | La gravedad. | Crítica, Alta, Media (por defecto), Baja; cada opción se dibuja en su color de gravedad. | Se muestra en el punto del árbol, en todos los resúmenes, en la tarjeta 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 (por defecto), 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." | Véase El aviso. |
| Retardo a la activación (ms) | Cuánto tiempo tiene que mantenerse cierta la condición antes de que la alarma se levante. | Un entero no negativo; 0 la levanta de inmediato. | Tiempo observado y sostenido, con la resolución del ciclo de 100 ms. |
| Retardo a la desactivación (ms) | Cuánto tiempo tiene que mantenerse falsa 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 aviso. | Texto libre, vacío. | La tarjeta y la notificación del sistema se leen "<Message> (Prioridad)"; sin él, "La alarma <Priority> está activa." |
| Requiere reconocimiento: una alarma restablecida queda enclavada hasta que el operador la reconoce | Si una activación exige una respuesta. | Encendido por defecto. | Apagado: la alarma sube directa a Activa, reconocida y se restablece directa a En reposo; avisa, pero nunca queda enclavada ni 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 y 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 Habilitado devuelve la máquina a En reposo (un estado viejo de otra regla mentiría); el reinicio se anota en el diario con el origen 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 rearchivar la alarma en otra carpeta, conserva el estado.
El carril Estado
ESTADO muestra el estado actual en palabras, "Prioridad: <priority>", 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 "<state> · <priority> · desde <when>" 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 cierta y todavía no se ha reconocido. |
| Activa, reconocida | La condición es cierta y se ha reconocido (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 reconoce. |
Una condición que se mantiene cierta durante el retardo a la activación levanta la alarma desde En reposo o desde Restablecida, sin reconocer hasta Activa, sin reconocer (directa a Activa, reconocida cuando Requiere reconocimiento está apagado). Una condición que se mantiene falsa durante el retardo a la desactivación la restablece: a En reposo cuando ya estaba reconocida, y a Restablecida, sin reconocer cuando no lo estaba. Reconocer lleva Activa, sin reconocer a Activa, reconocida y suelta 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: tras un reinicio, todas las máquinas arrancan En reposo y el primer ciclo vuelve a deducir la realidad de las condiciones en vivo, así que ni un enclavamiento ni un reconocimiento pendiente sobreviven a un reinicio. Toda transición, sea cual sea su origen (el ciclo, un reconocimiento, un reinicio al guardar, deshabilitar o eliminar), se anota en el diario y se registra en el histórico duradero de alarmas de la página Eventos.
El aviso
La barra de estado del shell lleva siempre el recuento y la peor gravedad pendiente (la ventana). Más allá de eso, la clase de Notificación decide:
| Notificación | Comportamiento |
|---|---|
| Persistente | Una tarjeta 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 reconoce o vuelve a En reposo; el enclavamiento de Restablecida, sin reconocer la mantiene en pantalla, y un nuevo levantamiento la sustituye. |
| Temporizada | La misma tarjeta, que se descarta sola tras 8 segundos. |
| Barra de estado | Ninguna tarjeta y ninguna 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 ocurre allí donde la alarma se encuentra con usted: 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 en 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 (anotado como MCP). Todo reconocimiento viaja por la cola de la lógica, se anota en el diario con su origen, y cierra la tarjeta de la alarma.
Aparezca donde aparezca, la respuesta se ofrece solo donde hay alguna que dar. Una alarma que está En reposo o ya reconocida conserva su verbo en su sitio, 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ó: pulsar una respuesta que no cambia nada informa esa misma frase, nunca "Reconocido.", porque un registro de estación que anota un acto de operador que nadie hizo es peor que un verbo brevemente fuera de alcance.
| Comando | Qué hace | En gris cuando | No se dibuja cuando |
|---|---|---|---|
| Reconocer | Reconoce la alarma abierta; el registro de acciones dice "Reconocido." | "Esta alarma no está esperando respuesta." cuando está En reposo o ya reconocida; "Runtime detenido" mientras es de 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 es de solo lectura. | El rol no tiene Operar Logic. |
| Habilitar / Deshabilitar | Cambia Habilitado; deshabilitarla devuelve la máquina a En reposo y detiene la evaluación. | La estación está bloqueada o de solo lectura. | El rol no tiene Configurar Logic. |
| Copiar | Duplica la alarma en la raíz Alarmas con un nombre libre; la copia empieza En reposo. | La estación está bloqueada o de 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 antes la máquina (para que un aviso nunca sobreviva a su alarma) y la quita; las referencias a Alarms.X quedan sin resolver. |
La estación está bloqueada o de 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 silenciado temporal, ni sonido, ni reconocimiento desde un script, ni estado guardado entre reinicios, ni evaluación mientras la alarma está deshabilitada o el runtime detenido. Una alarma no es una incidencia de Process: esas se configuran y se juzgan en la página Process.