# Evaluaciones

> Los criterios de conformidad con los que se juzga un ensayo, cada campo de un criterio, lo que cada resultado le hace al ensayo, y cómo se pliegan los resultados en un veredicto.

Una **evaluación** es un conjunto reutilizable de criterios de conformidad. Cada criterio vigila un
canal legible dentro de una ventana del ensayo y juzga sus muestras registradas contra una banda fija o
una tolerancia alrededor de otro canal; cada uno cierra con un resultado propio, y el veredicto del
ensayo es el pliegue de todos ellos. El motor juzga en vivo sobre las filas que registra el datalog, así
que el canal de un criterio y su canal de referencia tienen que ser columnas del datalog del
procedimiento: el archivo del ensayo demuestra qué se juzgó. Las evaluaciones viven en Process >
Modelos > modelo > Preparación > **Evaluaciones** y exigen el permiso **Editar recetas y evaluaciones**.

## La carpeta Evaluaciones {#the-evaluations-folder}

Al seleccionar la fila **Evaluaciones** se abre la página de la carpeta ("Criterios de conformidad con
los que se juzga un ensayo. La evaluación lee canales del proceso.") con una tarjeta por evaluación, 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 evaluaciones. Añada una."

| Comando | Qué hace | Atenuado cuando (situación) | No se dibuja cuando (rol) |
| --- | --- | --- | --- |
| **Evaluación** (barra de detalle, con la carpeta seleccionada; botón derecho **Añadir evaluación**) | Añade `Evaluación <n>` sin criterios. La fila se añade a su grupo, resaltada y desplazada hasta quedar a la vista allí; su tarjeta la abre. | Alguna unidad tiene un ensayo, o el runtime está detenido. | Sin Editar recetas y evaluaciones. |

## La página de la evaluación {#the-evaluations-page}

La cabecera lleva el nombre, la línea "Criterios de conformidad con los que se juzga un ensayo." y una
píldora que cuenta los criterios. Todos los campos se guardan solos, y cada edición vuelve a dibujar la
vista previa del criterio elegido.

### Definición {#definition}

| Campo | Qué es | Valores / valor por defecto |
| --- | --- | --- |
| **Nombre** | Cómo se llama la evaluación en el árbol, en el selector Evaluación de un procedimiento y en el selector Evaluar ahora de un panel, y su carpeta bajo el `LastRun.Evaluations` de cada unidad ([Los nombres son direcciones](#names-are-addresses)). Se confirma al salir del campo, por el renombrado que dice antes cuántas referencias se mueven con él; un nombre en blanco se rechaza. | Texto libre; `Evaluación <n>` al crearla. |
| **Notas** | Texto libre para quien la lea. | Vacío por defecto. |

Bajo los dos campos, la tarjeta avisa cuando un nombre de esta evaluación o de uno de sus criterios
se lee igual que el de otro, algo que una versión publicada puede haber guardado (véase
[Los nombres son direcciones](#names-are-addresses)).

### Cómo se juzga el ensayo {#how-the-run-is-judged}

Esta tarjeta enuncia el pliegue que aplica el motor, en su propio orden:

- **No conforme** si falla un solo criterio.
- **Indeterminado** si no falló ninguno y uno no se pudo juzgar.
- **Conforme** solo cuando todos ellos cumplieron.

"La gravedad no cambia nada de eso. Se lee contra el umbral de aborto del procedimiento y decide
únicamente si un fallo termina además el ensayo ahí." La tarjeta avisa también antes que un ensayo: "Un
criterio no se puede juzgar tal como está configurado, así que un ensayo terminaría Indeterminado." (o
"`<n>` criterios no se pueden juzgar …"), y dice "Todavía ningún procedimiento de este modelo se ejecuta
contra esta evaluación." mientras nada la referencia.

## La lista de criterios {#the-criteria-list}

La lista se encabeza **Criterios** y su botón **Criterio** añade una fila sobre el primer canal
legible del modelo (anclaje Ensayo completo, modo Ventana completa, una banda fija con los dos lados
abiertos, gravedad Grave, sin nombre) y la elige. Al hacer clic en una fila se abre en la columna
**Criterio**; sin nada elegido, la columna dice "Seleccione un criterio para editarlo entero en un
solo sitio, con lo que decide cada campo al lado." La lista lleva el criterio entero y se desplaza
lateralmente más allá del ancho del panel.

| Columna | Qué contiene |
| --- | --- |
| **Nombre** | El nombre del criterio, editable en el sitio. Se confirma al salir de la casilla, por el mismo renombrado que el campo **Nombre** de la columna; un rechazo se dice en la barra de estado. |
| **Canal** | El canal legible que se juzga. |
| **Anclaje** | Ensayo completo, Ventana de tiempo o Segmento, cada uno con la forma del tramo que juzga al lado de su nombre y su consecuencia como información emergente. |
| **Ventana** | Los dos ajustes que necesita el anclaje: **Seg** y **Estab** para un anclaje de Segmento, **Desde** y **Hasta** para un anclaje de Ventana de tiempo, "Ensayo completo" para un anclaje Ensayo completo. |
| **Modo** | Ventana completa o Un punto, con su forma. |
| **Límite** | Banda fija o Alrededor de la consigna, con su forma. |
| **Banda** | **Mín** y **Máx** para una banda fija ("en blanco deja el lado abierto"); el canal de referencia y la tolerancia **±** para un límite relativo. |
| **Gravedad** | Leve, Grave o Crítica. |
| **Resultado** | Lo que el criterio aporta al ensayo ("No conforme: el ensayo falla", "No conforme: el ensayo falla y se detiene", "No se puede juzgar"), con la frase completa como información emergente. |
| Acción de fila | **Quitar** pregunta "Eliminar el criterio": el nombre (o el nombre del canal), "Esto quita el criterio de la evaluación." |

## El criterio entero {#the-criterion-in-full}

La columna abre con una vista previa: la banda del criterio elegido y el tramo que juzga, sobre ejes
declarados sin ninguna muestra cerca (no hay ningún ensayo detrás de una pantalla de configuración). Una
banda fija se dibuja en los valores de ingeniería del canal, con sitio para un fallo a cada lado; una
banda relativa se dibuja como desviación respecto al canal de referencia, que queda como la línea en
cero. Cuando no se puede dibujar nada (sin límite fijado, sin referencia elegida) el marco dice por qué
en lugar de quedarse vacío. Debajo, cada campo se sitúa sobre una leyenda fija y, donde la respuesta se
mueve con lo que se introduce, el efecto de lo que está en vigor. Las líneas de efecto escriben sus
números en el formato de número de la estación ([Idioma y formatos](settings-localization)), con las
cifras que tiene cada uno: un límite de la banda o una tolerancia hasta los seis decimales que muestra
su campo, y un tiempo en milisegundos por debajo de un segundo y en segundos a partir de ahí.

| Campo | Qué es | Valores / valor por defecto | Línea de efecto |
| --- | --- | --- | --- |
| **Nombre** | "Nombra esta comprobación allí donde se muestra su resultado." Vacío recurre al canal en el informe y en la dirección del criterio bajo `LastRun`; la columna se titula `Criterio <n>` hasta que la fila tiene nombre. | Texto libre; vacío al crearlo. | Lo que se lleva consigo confirmar el nombre, como lo dice todo campo de renombrado: cuántas referencias se mueven, o que no se mueve ninguna. |
| **Canal** | "La lectura que se juzga. Tiene que ser una columna del datalog del procedimiento." | Los canales legibles del modelo; el primero al crearlo. | |
| **Anclaje** (VENTANA) | "Sobre qué tramo del ensayo se juzga este criterio." | **Ensayo completo** (por defecto), **Ventana de tiempo**, **Segmento**. | Ensayo completo: "Se juzga sobre el ensayo entero. No necesita receta." Ventana de tiempo: "Se juzga entre dos instantes medidos desde el arranque del ensayo." Segmento: "Se juzga mientras la receta está en ese segmento, pasado el retardo. Una pausa lo alarga." |
| **Segmento (empezando en 0)** y **Estabilización (ms)** (anclaje de Segmento) | "Qué segmento de la receta se juzga, y cuánto espera la ventana dentro de él antes de abrirse." | Números enteros; 0 y 0 por defecto. Ninguno de los dos campos acepta un número negativo: la entrada se rechaza, la nota bajo el campo lo dice, y vuelve el valor anterior. | "Se abre con el segmento 1." o "Se abre 2 s dentro del segmento 1." |
| **Desde (ms)** y **Hasta (ms, 0 = fin del ensayo)** (anclaje de Ventana de tiempo) | "Los dos instantes, contados desde el arranque del ensayo, entre los que se sitúa la ventana." | Milisegundos; 0 y 0 por defecto. Hasta = 0 significa hasta que termina el ensayo; en los demás casos Hasta tiene que quedar después de Desde. | "Desde 5 s hasta el final del ensayo.", "Desde 5 s hasta 30 s.", o "Hasta queda en Desde o antes que él, así que la ventana está vacía." |
| **Modo** | "Sobre cuánto de ese tramo descansa el veredicto." | **Ventana completa** (por defecto), **Un punto**. | Ventana completa: "Todas las muestras de la ventana tienen que cumplir." Un punto: "Solo decide la última muestra de la ventana." |
| **Límite** (LÍMITES) | "Qué forma toma el límite, que es también lo que piden los campos de debajo." | **Banda fija** (por defecto), **Alrededor de la consigna**. | Banda fija: "Una banda de ingeniería fija. Cualquiera de los dos lados se puede dejar abierto." Alrededor de la consigna: "Una banda alrededor de otro canal, muestreado en la misma fila." |
| **Mín** y **Máx** (banda fija) | "Los valores de ingeniería entre los que tiene que mantenerse la lectura. Un lado que se deja vacío queda abierto." | Números o vacío; los dos vacíos al crearlo. | "Sin límite fijado, así que toda lectura cumple.", "Cumple en 20 o por encima.", "Cumple en 80 o por debajo.", "Cumple entre 20 y 80.", o "Mín queda por encima de Máx, así que esto no se puede juzgar y un ensayo terminaría Indeterminado.", que es lo que dice también el bloque RESULTADO de debajo de la fila |
| **Referencia** y **± Tolerancia** (relativo) | "El canal contra el que se mide la lectura, y cuánto puede alejarse de él." | Un canal legible del modelo y un número; ninguno y 0 al crearlo. | "Cumple dentro de ±0,5 de Consigna." o "Elija el canal alrededor del cual se mide la tolerancia." |
| **Gravedad** | "Se lee contra el umbral de aborto del procedimiento. También fija el énfasis en el informe." | **Leve**, **Grave** (por defecto), **Crítica**. | |
| **RESULTADO** | Lo que produce el criterio, y lo que eso le hace al ensayo. | Solo lectura. | Véase más abajo. |

### Qué dice el resultado {#what-the-result-says}

| Línea | Detalle | Cuándo |
| --- | --- | --- |
| "No conforme: el ensayo falla" | "Un fallo deja el ensayo No conforme." o, cuando algún procedimiento ejecuta la evaluación, "Un fallo deja el ensayo No conforme. El ensayo termina igualmente, porque ningún procedimiento aborta con esta gravedad." | Ningún procedimiento que ejecute esta evaluación aborta con la gravedad de este criterio. |
| "No conforme: el ensayo falla y se detiene" | "Un fallo deja el ensayo No conforme y lo termina ahí, porque `<procedimiento>` aborta con esta gravedad." | Un procedimiento que ejecuta esta evaluación tiene Abortar con No conforme en esta gravedad o por debajo. |
| "No se puede juzgar" | "Tal como está configurado no se puede juzgar, así que dejaría el ensayo Indeterminado." seguido del motivo. | Se da uno de los motivos de abajo. |

Los motivos por los que un criterio no se puede juzgar, preguntados en tiempo de configuración en el
orden propio del motor: "No vigila ningún canal de este modelo."; "El canal que vigila no lo registra el
datalog del procedimiento que lo ejecuta."; "No sigue ningún canal de referencia de este modelo.";
"Hasta queda en Desde o antes que él, así que la ventana está vacía."; "Sus límites están incompletos o
al revés."; "El canal de referencia no lo registra el datalog del procedimiento que lo ejecuta." Los
motivos del datalog se preguntan solo a los procedimientos que ejecutan la evaluación; una evaluación
que ningún procedimiento ha recogido todavía está sin terminar, no mal.

## Cómo se pliegan los criterios en un veredicto {#how-criteria-fold-into-a-verdict}

Cada fila registrada dentro de una ventana activa se clasifica una vez: **evaluada**, **no disponible**
(un valor que falta o una calidad mala) o **no válida** (un valor de buena calidad que no es un número
finito; un `NaN` de buena calidad sigue siendo dato bruto auditable pero no puede certificar un criterio
numérico). Un límite fijo necesita el valor vigilado; un límite relativo necesita el valor vigilado y el
de referencia de la misma fila. Los contadores Muestras evaluadas, Muestras fuera, Muestras no
disponibles y Muestras no válidas y el conjunto congelado de canales afectados se registran por criterio,
y se pueden leer también en vivo en los puntos `Procedure.*` de la unidad (véase
[El espacio de direcciones de la unidad](process-addresses)).

Cada resultado registra también lo que se midió: el último valor evaluado del canal vigilado en la
ventana (en modo Un punto, la muestra juzgada), el menor y el mayor valor evaluado, y la peor
excursión, la mayor distancia más allá de un límite entre las muestras contadas (0 cuando hubo
muestras evaluadas y ninguna quedó fuera). Las filas no disponibles y no válidas nunca cuentan, así
que una ventana sin nada evaluado no registra ninguno de esos valores. Un archivo de ensayo escrito
por una versión anterior no tiene valores medidos y los lee vacíos.

Cada resultado guarda además el tramo del ensayo que juzgó: el modo, el anclaje, el inicio y el fin
de una ventana de tiempo, el segmento y su estabilización. Un ensayo abierto más tarde sigue
diciendo así qué se juzgó, y la evidencia del registro del ensayo y del informe PDF empieza por él
(véase [Criterios juzgados](histories-record#judged-criteria)). Un archivo de ensayo escrito por una
versión anterior no lo guardó, y su evidencia muestra solo los contadores.

Los resultados son estrictos con la evidencia. En modo **Ventana completa**, cualquier
incumplimiento evaluado demuestra **No conforme**; si no, una fila no disponible o no válida, una
observación interrumpida o una ventana vacía dejan el criterio **Indeterminado**; solo una evidencia
completa dentro de banda lo deja **Conforme**. El modo **Un punto** decide únicamente por la última
muestra activa de la ventana, y los contadores, la peor excursión y los canales afectados de su
resultado son solo los de esa muestra; el menor y el mayor valor siguen cubriendo toda la ventana
que vigiló. Un procedimiento Temporizado vuelve a anclar cada criterio en cada ciclo y cuenta los
ciclos fallidos. El veredicto del ensayo se pliega en orden: un ensayo abortado o cualquier criterio
No conforme lo dejan **No conforme**; si no, cualquier resultado Indeterminado lo deja
**Indeterminado**; con todos los resultados Conformes queda **Conforme**; un ensayo sin evaluación
termina sin veredicto. Solo un No conforme confirmado dispara el umbral de aborto del procedimiento
o el recuento de ciclos fallidos.

## Los nombres son direcciones {#names-are-addresses}

Cada unidad publica el resultado de su último ensayo bajo
`Process.<Model>.<Unit>.LastRun.Evaluations.<Evaluation>.<Criterion>`
([LastRun](process-addresses#lastrun)), así que el nombre de la evaluación y el nombre de cada
criterio (o, en un criterio sin nombre, el de su canal) son segmentos de dirección, los nombres
saneados: "Soak check" queda `Soak_check`. Renombrar cualquiera de ellos mueve esas direcciones y
reescribe las expresiones, los scripts y las pantallas que las escribieron, como todo renombrado del
modelo; renombrar el canal de un criterio sin nombre también lo mueve.

Dos nombres que se leen igual responden a una sola dirección, que no sabe decir qué resultado
guarda, así que:

| Situación | Qué pasa |
| --- | --- |
| Un nombre daría a dos evaluaciones del modelo, o a dos criterios de esta evaluación, el mismo segmento (mayúsculas y minúsculas no cuentan) | Se rechaza, nombrando el segmento y quién responde ya a él. |
| Dos criterios de esta evaluación no tienen nombre y vigilan el mismo canal | Se permite, ya que un criterio nuevo empieza así; ninguno de los dos resultados se puede leer bajo `LastRun` hasta que uno tenga nombre. |
| Un modelo guardado por una versión anterior ya tiene dos nombres así | Se quedan como están, y se guardan como están. La dirección compartida no lee nada, y la tarjeta Definición lo dice: "Su segmento de dirección Soak_check también es el de Soak Check, así que Logic no lee los resultados del último ensayo de ninguna de las dos. Renombre una de ellas." o "Los criterios Oven air, Oven Air comparten el segmento de dirección Oven_air, así que Logic no lee el resultado del último ensayo de ninguno. Dé a cada uno un nombre propio." |
| Se copia un modelo con nombres así | La copia los conserva como los tenía su origen. |

## Dónde se usa una evaluación {#where-an-evaluation-is-used}

| Superficie | Qué hace con la evaluación |
| --- | --- |
| La etapa **Juzgar** de un procedimiento | Juzga cada ensayo del procedimiento; el selector **Abortar con No conforme ≥** llega con ella. La línea de la etapa dice "Juzga 4 criterios, y un No conforme Grave aborta el ensayo." o "…, y un No conforme nunca aborta el ensayo." Un procedimiento con una evaluación y sin datalog no valida. Véase [Procedimientos](process-procedures). |
| La tarjeta **Comandos sueltos** de un panel | **Evaluar ahora** registra una fila por un datalog y la juzga con la evaluación; el veredicto queda registrado en Históricos. Los canales de la evaluación tienen que ser columnas del datalog elegido. |
| Los comandos de etiqueta | Un marcador puede leer el nombre, el canal, los límites, la gravedad, el resultado, el error, los instantes de la ventana, los contadores de muestras, los canales afectados o la peor excursión de un criterio, para un ciclo explícito. Véase [Acciones](process-actions#markers). |
| Los informes | La sección de criterios imprime el resultado de cada criterio con el énfasis que fija su gravedad. |
| Logic | El `LastRun.Evaluations` de cada unidad lee el resultado de cada criterio en el último ensayo de la unidad (resultado, valor medido, extremos, límites, peor excursión, ciclos fallidos), para una acción de Logic disparada en la Finalización, una pantalla o una alarma. Véase [LastRun](process-addresses#lastrun). |

## Quitar la evaluación {#remove-evaluation}

**Quitar la evaluación** está en el grupo de peligro de la barra de detalle con la evaluación
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 evaluación", "Esto elimina la evaluación y sus criterios."). Todo
procedimiento que juzgaba con ella vacía su referencia Evaluación y termina sus ensayos sin veredicto.
Exige Editar recetas y evaluaciones y se atenúa bajo el bloqueo de ingeniería y el runtime detenido.

## Qué no hace una evaluación {#what-an-evaluation-does-not-do}

- No juzga nada que un datalog no registre, ni nada fuera de un ensayo o de una instantánea.
- No tiene criterios por expresión: un criterio es una banda o una tolerancia sobre un canal.
- No difiere entre unidades en nada: un solo juego de límites sirve a todas las unidades del modelo.
- No termina ningún ensayo por sí sola. Si un No conforme aborta el ensayo lo decide el umbral Abortar
  con No conforme del procedimiento, leído contra la gravedad del criterio.
