# Datalogs

> Las configuraciones de registro de un modelo: una instantánea por intervalo, los canales que captura, y el orden de columnas que sigue cada ensayo.

Un **datalog** es una configuración de registro reutilizable del modelo. Declara lo que anota un
ensayo: una instantánea por intervalo, con todos los canales que lista el datalog, cada valor junto a
la calidad con la que se leyó (Buena o No disponible). No declara nada sobre cómo se dibuja el modelo:
un gráfico es un componente de un panel de control, no un ajuste de aquí. Los datalogs viven en
Process > Modelos > modelo > Preparación > **Datalogs** y exigen el permiso **Editar
recetas y evaluaciones**.

Un modelo tiene tantos datalogs como necesite. Un [procedimiento](process-procedures) apunta a uno
mediante su etapa **Registrar**, y esa referencia es lo que hace que un ensayo registre algo: un
procedimiento sin datalog no registra ninguna muestra y no puede llevar ninguna evaluación, porque una
evaluación juzga sobre filas registradas. Los comandos **Instantánea** y **Evaluar ahora** de un panel
también registran mediante un datalog, de fila en fila.

## La carpeta Datalogs {#the-datalogs-folder}

Al seleccionar la fila **Datalogs** se abre la página de la carpeta ("Configuraciones de
registro reutilizables: un intervalo periódico entre instantáneas y los canales capturados en cada
ensayo que las referencia.") con una tarjeta por datalog, por su nombre; al hacer clic en una tarjeta
se abre y la X la quita. Sin ninguno, la página dice "Todavía no hay datalogs. Añada uno."

| Comando | Qué hace | Atenuado cuando (situación) | No se dibuja cuando (rol) |
| --- | --- | --- | --- |
| **Datalog** (barra de detalle, con la carpeta seleccionada; botón derecho **Añadir datalog**) | Añade `Datalog nuevo <n>` a 1000 ms y sin columnas. 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 del datalog {#the-datalogs-page}

La cabecera lleva el nombre y la línea "Lo que se registra: una instantánea periódica con todos los
canales seleccionados, al intervalo configurado." Todos los campos se guardan solos.

### Registro {#recording}

| Campo | Qué es | Valores / valor por defecto | Efecto |
| --- | --- | --- | --- |
| **Nombre** | Cómo se llama el datalog en el árbol, en el selector Registrar de un procedimiento y en los selectores de Instantánea de un panel. | Texto libre; `Datalog nuevo <n>` al crearlo. | Renombra la fila. |
| **Intervalo entre instantáneas (ms)** | Cada cuánto se registra una instantánea. La línea de debajo del campo dice "Cada cuánto se registra una instantánea. 50 ms es lo más rápido que registra un ensayo." | Un número entero de milisegundos, 50 o más; 1000 por defecto. Un valor más corto se rechaza bajo el campo ("Escriba un número de al menos 50.") y la casilla vuelve a lo que tenía. | Fija el ritmo de registro de cada ensayo y de cada instantánea que usen este datalog. |

### Canales {#channels}

"Canales del modelo registrados durante el ensayo. Son los que definen las columnas del ensayo." La
cabecera de la tarjeta lleva **Canal**, que añade una columna en el primer canal legible del modelo
que ninguna fila registra todavía, y la rejilla tiene una fila por columna registrada. Cuando no queda
ningún canal así, **Canal** se queda atenuado y la información emergente dice por qué: "Este modelo no
tiene ningún canal legible que registrar." o "Aquí ya se registran todos los canales legibles del
modelo."

| Columna | Qué es | Valores / valor por defecto |
| --- | --- | --- |
| **Canal** | El canal del modelo que registra esta columna, como `nº <número> · <nombre>`. | Solo se ofrecen los canales legibles (Solo lectura y Lectura y escritura): un canal de Solo escritura no se muestrea nunca, así que una columna sobre uno se quedaría vacía. El selector de cada fila ofrece los canales legibles que ninguna otra fila registra, porque un canal en dos filas sería una columna del ensayo bajo dos encabezados. |
| Acciones de fila | **Subir el canal**, **Bajar el canal** (los extremos se quedan atenuados), **Quitar** (pregunta "Eliminar la columna": el nombre del canal, "Esto quita la columna del datalog."). | |

El orden de las filas es el orden de las columnas: es el que siguen el archivo del ensayo, el CSV y las
hojas XLSX, así que las dos flechas deciden qué aspecto tiene una exportación. Un movimiento que la
estación rechaza devuelve la fila a donde estaba.

Aquí no se declara nada más. El nombre, la unidad de ingeniería, el tipo y la tinta de gráfico de cada
columna vienen del propio [canal](process-channels). Renombrar un canal reescribe esta referencia junto
con todas las demás del modelo, y quitar un canal barre su columna tras una confirmación que cuenta lo
que se va.

## Dónde se usa un datalog {#where-a-datalog-is-used}

| Superficie | Qué hace con el datalog |
| --- | --- |
| La etapa **Registrar** de un procedimiento | Registra por él durante cada ensayo del procedimiento. La línea de la etapa dice a cuánto equivale eso: "Registra 6 canales cada 500 ms", y en un procedimiento Temporizado "…, unas 180 muestras por canal." Un procedimiento sin datalog dice "No se registra nada: este ensayo no deja datalog." |
| La tarjeta **Comandos sueltos** de un panel | **Instantánea** registra una fila por el datalog elegido como un ensayo Instantáneo nacido y terminado en Históricos; **Evaluar ahora** registra una fila y la juzga con una evaluación cuyos canales registre el datalog. |
| Una evaluación | Juzga solo canales que registra el datalog del procedimiento: un criterio cuyo canal (o canal de referencia) no es una columna de ese datalog no se puede juzgar, y la página de la evaluación lo dice. |
| Una incidencia armada durante un ensayo | Lee las columnas registradas, así que un canal que el datalog no registra no está disponible para ella durante el ensayo. Un procedimiento que arma una incidencia sobre un canal que este datalog deja fuera se rechaza, igual que uno que arma una incidencia y no registra nada en absoluto. |

## Quitar el datalog {#remove-datalog}

**Quitar el datalog** está en el grupo de peligro de la barra de detalle con el datalog seleccionado,
en su menú del botón derecho, y como la X de la tarjeta de la página de la carpeta. Pregunta antes
("Eliminar el datalog", "Esto elimina el datalog y las columnas que registra."). Todo procedimiento que
registraba por él vacía su referencia Registrar y sobrevive. Exige Editar recetas y evaluaciones y se
atenúa bajo el bloqueo de ingeniería y el runtime detenido.

## Qué hace un ensayo con él {#what-a-run-does-with-it}

El [Arranque](process-runs) congela en el archivo del ensayo la disposición de canales del datalog: las
columnas, en orden, cada una con su número, su nombre, el alias en vigor en la unidad, su unidad de
ingeniería y su tinta de gráfico resuelta. El ensayo las conserva a través de toda edición posterior
del datalog, e incluso después de eliminarse el propio modelo. Cada tic registra una instantánea de
nivel de aplicación con todas las columnas: una fuente no disponible o un valor no convertible se
guarda como un hueco marcado como No disponible, mientras que un valor recibido correctamente como
`NaN` o un centinela de ingeniería se queda como Buena. El resto del ciclo de vida está en
[Ensayos y comentarios](process-runs); consultar y exportar lo que se registró es
[Históricos](histories).

## Qué no hace un datalog {#what-a-datalog-does-not-do}

- No dibuja nada. Cómo muestra un modelo lo que registra es un panel de control o la tarjeta Canales de
  un panel.
- No registra nada por sí solo. Un datalog al que no referencia ningún procedimiento y que no dispara
  ninguna instantánea no registra ninguna fila.
- No tiene variante por unidad: todas las unidades registran las mismas columnas, sobre sus propios
  vínculos.
- No filtra, ni promedia, ni comprime: una fila por intervalo, todas las columnas, tal como se leen.
