Incidencias

Condiciones vigiladas de lo que se está ensayando, escritas como una expresión JavaScript sobre los canales del modelo y juzgadas durante un ensayo o siempre.

Ver como Markdown

Una incidencia registra que lo que se está ensayando hizo algo digno de mención. Donde una alarma vigila la planta y el equipo, una incidencia pertenece al procedimiento: sus flancos se quedan con el ensayo que los observó y entran además en la cronología permanente de Incidencias de la página Eventos. Su condición es una expresión JavaScript sobre los canales del modelo, con antirrebote en los dos flancos y controlada por la calidad de lo que lee. Las incidencias viven en Process > Modelos > modelo > Preparación > Incidencias y exigen el permiso Editar recetas y evaluaciones.

La carpeta Incidencias

Al seleccionar la fila Incidencias se abre la página de la carpeta ("Condiciones vigiladas de lo que se está ensayando. Cada flanco se queda con su ensayo cuando procede y entra además en el histórico permanente de incidencias.") con una tarjeta por incidencia, por su nombre; al hacer clic en una tarjeta se abre y la X la quita. Sin ninguna, la página dice "Todavía no hay incidencias. Añada una."

Comando Qué hace Atenuado cuando (situación) No se dibuja cuando (rol)
Incidencia (barra de detalle, con la carpeta seleccionada; botón derecho Añadir incidencia) Añade Incidencia <n>: gravedad Advertencia, armada durante los procedimientos, habilitada, sin mensaje, con una condición vacía. La selecciona. Alguna unidad tiene un ensayo, o el runtime está detenido. Sin Editar recetas y evaluaciones.

La página de la incidencia

La cabecera lleva el nombre, una píldora con la gravedad (en el color propio de la gravedad) y una píldora Deshabilitada cuando la incidencia está apagada. Debajo pueden aparecer dos clases de aviso:

  • Una nota de precaución cuando la condición guardada no valida (el borrador se guarda igual; la nota dice qué está mal, véase más abajo).
  • Un aviso Evaluación no disponible por cada unidad en la que no se pudo evaluar la condición en vivo, como "<unidad>: <error>". El diagnóstico de una unidad se escribe una vez por cada error que no cambia y se borra cuando la evaluación vuelve a salir bien.

Identidad y comportamiento

Campo Qué es Valores / valor por defecto Efecto
Nombre El nombre de la incidencia: la fila del árbol, el rótulo del evento en el archivo del ensayo, la cronología de Eventos y los informes. Texto libre; Incidencia <n> al crearla. Renombra la fila y cómo la llama la lista de comprobación de un procedimiento.
Gravedad El peso de una activación. El selector muestra cada opción en la tinta que llevará su píldora. Información, Advertencia (por defecto), Crítica. Da color a la píldora y al episodio dondequiera que se liste. Durante un ensayo, la activación de una incidencia de gravedad Advertencia o Crítica pide además una notificación del sistema operativo mientras la aplicación está oculta o minimizada; la de Información se queda en la ventana.
Armada Cuándo se juzga la condición. Durante un procedimiento (por defecto): solo mientras está activo un ensayo de un procedimiento que la arma, sobre las filas registradas. Siempre: también fuera de los ensayos, por un vigilante de fondo que lee en vivo los vínculos de la unidad. Una incidencia Siempre no necesita ningún procedimiento que la arme; una Durante un procedimiento la juzgan solo los procedimientos que la marcan.
Retardo a la activación (ms) Cuánto tiene que aguantar verdadera la condición antes de confirmar Activada, a la resolución de las muestras. Un número de milisegundos; 0 por defecto. El campo no acepta un número negativo: la entrada se rechaza, la nota bajo el campo lo dice, y vuelve el valor anterior. Aplica el antirrebote al flanco de subida.
Retardo a la desactivación (ms) Cuánto tiene que aguantar falsa la condición antes de confirmar Restablecida. Lo mismo; 0 por defecto. Aplica el antirrebote al flanco de bajada.
Habilitada Si la incidencia llega a armarse. Activada por defecto. Una incidencia deshabilitada no se arma nunca, ni en un ensayo ni fuera de él, y nunca bloquea el Arranque.
Mensaje El texto que se registra y se anuncia con una activación. Texto libre; vacío por defecto. Viaja con cada flanco al archivo del ensayo y al diario.

Condición

"Una sola expresión JavaScript que devuelve Bool." La tarjeta lleva un editor de código, la lista de las referencias que puede usar ("Referencias de canal disponibles: Channels.Ch_1, Channels.Outlet_temperature, …"), y el recordatorio "Durante un ensayo la condición lee las columnas registradas del datalog; el vigilante Siempre lee en vivo los vínculos de la unidad. La sintaxis, las referencias que faltan y los fallos de evaluación en ejecución se muestran aquí sin tratarlos como falso ni como pérdida de señal."

Un canal se referencia como Channels.<identifier>, donde el identificador es el nombre del canal saneado: las letras y los dígitos sobreviven, todo otro carácter se convierte en _, y un nombre que empieza por un dígito gana un _ delante. Channels contiene solo los canales del modelo y nada más, así que un canal llamado Math, isNaN o true sigue siendo un nombre de canal válido y no oculta ninguna global de JavaScript. Un NaN presente y de buena calidad son datos que se pueden comprobar con isNaN(Channels.Pv). Ejemplos: Channels.Outlet_temperature > 80, Channels.Door_open && Channels.Heater_on.

El borrador se valida mientras usted escribe, contra valores de muestra del tipo de cada canal, y la nota de precaución de debajo de la cabecera dice qué falla:

Nota Significado
"Error de sintaxis: …" La expresión no se analiza.
"La referencia de canal 'Channels.X' no existe en este modelo." Una referencia no nombra ningún canal.
"Hay más de un canal que se corresponde con 'Channels.X'." Dos nombres de canal se sanean al mismo identificador; renombre uno en la rejilla de Canales.
"La condición tiene que devolver Bool, pero ha devuelto <tipo>." La expresión da algo que no es verdadero ni falso.
"Error de evaluación: …" La expresión lanza un error.

Una condición no válida se guarda igualmente como borrador. Tiene consecuencias en otros sitios: una incidencia habilitada que no valida y que arma un procedimiento (marcada en él, o armada Siempre) bloquea el Arranque de ese procedimiento, y la página del procedimiento muestra "La incidencia '<nombre>' no es válida: …"; una incidencia Siempre no válida no pone en marcha su vigilante de fuera de ensayo y deja aquí un diagnóstico visible en lugar de repetirlo en cada sondeo.

Cada evaluación corre en un motor acotado (un límite de 500 ms, un número acotado de sentencias y una memoria acotada), así que una expresión desbocada hace fallar su evaluación y no la estación.

Cómo se juzga una incidencia

Durante un ensayo la condición se juzga sobre las filas que registra el datalog, así que un canal que el datalog del procedimiento no registra no está disponible para ella. Un procedimiento que arma una incidencia sobre un canal así, o que arma una y no registra nada en absoluto, se rechaza en su propia página y en el Arranque: la incidencia nunca llegaría a juzgar, y la nota de precaución la nombra. Fuera de los ensayos, una incidencia Siempre la juzga un vigilante que lee en vivo los vínculos de la unidad. Cualquiera de los dos jueces mantiene el último estado confirmado mientras algún canal referenciado no está disponible: solo un valor que falta o una calidad mala suspenden el juicio, y un valor presente y de buena calidad (un NaN incluido) son datos evaluables. El juez registra cuatro transiciones: Activada (tras el retardo a la activación), Restablecida (tras el retardo a la desactivación), No disponible (un canal referenciado perdió su señal) y Restaurada (todos los canales referenciados han vuelto; la condición se vuelve a juzgar y el retardo que corresponda empieza de nuevo).

Durante un ensayo, cada transición se escribe primero en el archivo del ensayo y después se copia, con su contexto de ensayo, en el diario duradero de la página Eventos; fuera de los ensayos el vigilante escribe solo en el diario. Arrancar un ensayo descarta el juez de fuera de ensayo de la unidad, y salir del ensayo crea uno nuevo, así que ninguna activación cruza un límite no observado. Las ediciones del nombre, del mensaje o de la gravedad afectan solo a los flancos posteriores; las ediciones de la condición, de los retardos, del modo de armado o del estado habilitado empiezan una observación nueva.

Los episodios (de la activación al restablecimiento, con cualquier intervalo de pérdida de señal contado aparte) se derivan de esos flancos dondequiera que la aplicación los muestre: la tarjeta Incidencias de un panel, la página Eventos, Históricos y los informes. El tiempo activo de un episodio es exactamente el intervalo entre los dos flancos persistidos, así que excluye el retardo a la activación e incluye el retardo a la desactivación: el reloj arranca cuando la condición ya ha aguantado el retardo a la activación, y se para solo cuando se escribe el restablecimiento, después de que haya corrido el retardo a la desactivación. Ese es el número que un informe entrega a un tercero.

Dónde se usa una incidencia

La página de un procedimiento lleva la tarjeta Incidencias armadas durante este procedimiento, con una píldora "<n> armadas" y una casilla por incidencia del modelo, por su nombre. Marcar una la arma durante los ensayos de ese procedimiento; una incidencia armada Siempre vigila igualmente y no necesita marca. Sin ninguna incidencia en el modelo, la tarjeta dice "Todavía no hay incidencias en este modelo. Añada algunas en Incidencias del modelo." Véase Procedimientos.

Renombrar un canal reescribe las referencias Channels.<identifier> de ese canal en todas las condiciones del modelo; no toca cadenas, comentarios ni una propiedad del mismo nombre en otro objeto.

Quitar la incidencia

Quitar la incidencia está en el grupo de peligro de la barra de detalle con la incidencia seleccionada, en su menú del botón derecho, y como la X de la tarjeta de la página de la carpeta. Pregunta antes ("Eliminar la incidencia", "Esto quita la incidencia del modelo.") y la desarma de todos los procedimientos que la habían marcado. Exige Editar recetas y evaluaciones y se atenúa bajo el bloqueo de ingeniería y el runtime detenido.

Qué no hace una incidencia

  • No es una alarma: no se reconoce, no tiene prioridad y no vigila tags. Las alarmas de la planta están en la página Logic.
  • No dispara nada. Una activación se registra y se anuncia; no lleva ninguna acción, etiqueta ni informe adjunto.
  • No puede leer nada que no sean los canales del modelo: ningún tag, ninguna variable, ningún otro modelo.
  • No se juzga de forma distinta por unidad: una sola condición sirve a todas las unidades, sobre los vínculos propios o las filas registradas de cada una.