6. Bloques de tiempo, filtro, control y tabla
Todos los bloques de este capítulo, excepto las tablas y los vectores, están en el menú Lógicas. Las tablas y los vectores están en Tablas.
Todos se ejecutan en cada ciclo de la función, nominalmente 1 ms (1 kHz): el intervalo depende de la carga del procesador. Cada ejecución es un ciclo. Cada ficha trae entradas, salida, campos de la pantalla, regla de cálculo y costo de memoria.
#Tiempo y conteo
#Retardo
Retarda el cambio de estado de una señal de encendido/apagado (en la pantalla, el bloque se llama Atraso). No retarda un valor analógico.
| Elemento | Descripción |
|---|---|
| Entradas | Entrada: mayor que 0 es encendido; 0 o menos, apagado. Anulación de tiempo (la pantalla muestra Anulación de tempo): conectada y mayor que 0, vale en lugar del campo; desconectada, vale el campo. |
| Salida | Siempre 0 o 1, nunca el valor de la entrada. |
| Modo | Retardo de encendido (aquí, encendido es la señal en 1, no la ignición): retarda solo la subida (de 0 a 1). Retardo de apagado: retarda solo la bajada. Ambos: retarda las dos. Predeterminado: Retardo de encendido. |
| Tiempo de retardo (s) | Predeterminado 1,0; la pantalla acepta de 0,001 a 60. Unidad: segundos. |
La salida solo acompaña a la entrada después de que el nuevo estado dura el tiempo ajustado. En Retardo de encendido, si la entrada vuelve a 0 antes del tiempo, la cuenta se cancela. En Retardo de apagado, si vuelve a 1, la salida pasa a 1 al instante. En Ambos, cada cambio reinicia la cuenta: un pulso más corto que el tiempo ajustado no llega a la salida.

Memoria: 16 bytes de la memoria de trabajo (límite de 512 del mapa) y 14 bytes de configuración (límite de 2048).
#Temporizador cíclico
Alterna sin parar entre una fase encendida y una apagada y pone en la salida el valor de la fase actual. Sirve de generador de pulsos.
| Elemento | Descripción |
|---|---|
| Entradas | Dato on (la pantalla muestra Dado on): valor que sale en la fase encendida. Dato off (la pantalla muestra Dado off): valor que sale en la fase apagada. Desconectada, la entrada vale 0. |
| Salida | El valor de Dato on o de Dato off. Con 1 y 0 en las entradas se vuelve un tren de pulsos; con dos valores cualesquiera, alterna entre ellos. |
| Tiempo On (ms) | Duración de la fase encendida. Predeterminado 1000; 0 a 999999. |
| Tiempo Off (ms) | Duración de la fase apagada. Predeterminado 1000; 0 a 999999. |
Período = Tiempo On + Tiempo Off. Fracción encendida = Tiempo On ÷ (Tiempo On + Tiempo Off). No hay entrada para habilitar ni para reiniciar: el bloque funciona desde que la función se carga. El conteo es en milisegundos enteros: un tiempo fraccionario vale el entero siguiente (7,14 se vuelve 8 ms) y 0 vale 1 ms.
Memoria: 12 bytes de la memoria de trabajo (límite de 512 del mapa) y 14 bytes de configuración (límite de 2048).
#Contador
Cuenta cuántas veces sube el disparo. Se satura en el máximo: no vuelve a cero solo.
| Elemento | Descripción |
|---|---|
| Entradas | Disparador: cada subida (de 0 o menos a más que 0) cuenta 1. Restablecer: mayor que 0 pone la salida en cero y bloquea el conteo. Habilitar: desconectada, habilita; conectada, solo cuenta si es mayor que 0. |
| Salida | El conteo actual. |
| Dirección | Creciente suma 1 por subida; Decreciente resta 1. Predeterminado: Creciente. |
| Conteo máximo | Límite del conteo, en valor absoluto (la pantalla muestra Contagem máxima como nombre del campo). Predeterminado 9999; 0 a 999999. |
Creciente: sube hasta el Conteo máximo y se queda en él. Decreciente: parte de 0 y baja hasta el valor negativo del Conteo máximo; no hay valor inicial ajustable. Las subidas con Habilitar en 0 o con Restablecer en alto se pierden. Soltar el Restablecer con el Disparador todavía en alto no genera conteo.
Memoria: 8 bytes de la memoria de trabajo (límite de 512 del mapa) y 16 bytes de configuración (límite de 2048).
#Rampa
Lleva la salida de un valor inicial a un valor final en un tiempo fijo, cuando la señal de disparo supera un límite.
| Elemento | Descripción |
|---|---|
| Entradas | Valor de activación: la señal de disparo. Valor inicial: de dónde parte la rampa. Valor final: dónde termina. Desconectadas, valen 0. |
| Salida | Valor inicial mientras la rampa no comenzó; después el valor intermedio; al final, Valor final. |
| Tiempo de rampa (ms) | Duración de la rampa. Predeterminado 1000; 0 a 999999. |
| Activar arriba de: | La rampa comienza cuando Valor de activación supera este número. Predeterminado 0. |
| Reactivar abajo de: | Después del fin de la rampa, solo se rearma cuando Valor de activación queda por debajo de este número; rearmada, vuelve a empezar cuando esté por encima de Activar arriba de:. Predeterminado 0. |
La rampa se define por la duración, no por la tasa: pendiente = (Valor final − Valor inicial) ÷ Tiempo de rampa. Caer por debajo de Reactivar abajo de: en medio de la rampa no la interrumpe. Al rearmarse, la salida vuelve de una vez a Valor inicial. Valor inicial y Valor final se leen en cada ciclo: cambiarlos durante la rampa tuerce la trayectoria.
Memoria: 12 bytes de la memoria de trabajo (límite de 512 del mapa) y 20 bytes de configuración (límite de 2048).
#Muestra y Retén
Muestreo y retención (en inglés, Sample and Hold): guarda el valor de una señal en el instante en que un disparo cambia y mantiene ese valor en la salida hasta el disparo siguiente.
| Elemento | Descripción |
|---|---|
| Entradas | Señal: el valor a guardar. Disparador: el disparo; mayor que 0 cuenta como encendido. Desconectadas, valen 0. |
| Salida | El último valor capturado de Señal. Comienza en 0. |
| Modo de captura | Borde de subida: el Disparador pasa de apagado a encendido. Borde de descenso: lo inverso. Ambos bordes: los dos. Predeterminado: Borde de subida. La pantalla muestra estas opciones como Borda de subida, Borda de descida y Ambas las bordas. |
No hay entrada de reinicio: la salida solo cambia en una captura.
Memoria: 8 bytes de la memoria de trabajo (límite de 512 del mapa) y 7 bytes de configuración (límite de 2048).
#Detector de Pico
Retiene el mayor (o el menor) valor visto en la entrada y, si usted quiere, deja que ese pico decaiga con el tiempo.
| Elemento | Descripción |
|---|---|
| Entradas | Entrada: la señal. Restablecer: mientras sea mayor que 0, la salida copia la entrada en cada ciclo. Desconectadas, valen 0. |
| Salida | El pico retenido. |
| Modo | Máximo retiene el mayor valor; Mínimo, el menor. Predeterminado: Máximo. |
| Tasa de decaimiento | En unidades de la señal por segundo. Predeterminado 0 (el pico no decae); 0 a 999999. |
Con Tasa de decaimiento mayor que 0, el pico se acerca a la entrada en línea recta, por el tiempo real medido, y nunca la cruza. Ejemplo: el pico fue 1 y la entrada volvió a 0; con tasa 5, la salida llega a 0 en 200 ms. En el primer ciclo después de cargar, la salida parte del valor de la entrada, no de 0.
Memoria: 12 bytes de la memoria de trabajo (límite de 512 del mapa) y 14 bytes de configuración (límite de 2048).
#Filtros y derivada
Dos de estos bloques valen por ciclo de 1 ms (Filtro EMA y Filtro de médias), uno vale en hertz (Filtro de paso bajo) y la Derivada tiene un factor por ciclo y una salida en unidades por segundo. Cada ficha dice cómo convertir el ajuste a tiempo o frecuencia. Al encender la VCU y en cada grabación de mapa, el Filtro EMA y el Filtro de paso bajo parten de 0 y tardan el tiempo del filtro en alcanzar la entrada, y la Derivada compara la primera muestra con 0, lo que produce un pico en la salida.
#Filtro EMA
Filtro de media móvil exponencial (EMA): suaviza una señal mezclando la muestra nueva con el valor anterior de la salida.
| Elemento | Descripción |
|---|---|
| Entradas | Entrada: la señal. Desconectada, vale 0. |
| Salida | La señal filtrada. |
| Alpha | Peso de la muestra nueva en cada ciclo de 1 ms. Predeterminado 1,0 (sin filtro); 0 a 1 en la pantalla. |
Salida = Alpha × entrada + (1 − Alpha) × salida anterior. Alpha 1 pasa la señal sin filtrar; Alpha 0 no deja pasar la señal. El Alpha vale por ciclo, no en tiempo. La salida llega al 63 % de un escalón en 1 tau (la constante de tiempo del filtro) y al 95 % en 3 tau. Convierta así:
tau (ms) = −1 ÷ ln(1 − Alpha)
Alpha = 1 − e^(−1 ÷ tau) (tau en ms)
frecuencia de corte (Hz) ≈ 159 ÷ tau (ms)
| Alpha | Constante de tiempo (tau) | Corte aproximado |
|---|---|---|
| 0,005 | 199,5 ms | 0,8 Hz |
| 0,019 | 52,1 ms | 3,1 Hz |
| 0,05 | 19,5 ms | 8,2 Hz |
| 0,15 | 6,15 ms | 26 Hz |
| 0,5 | 1,44 ms | la relación no vale |
Para tau = 50 ms, Alpha = 0,0198. La relación con el corte solo vale para tau mucho mayor que 1 ms.
Memoria: 8 bytes de la memoria de trabajo (límite de 512 del mapa) y 8 bytes de configuración (límite de 2048).
#Filtro de médias
Devuelve el promedio de las últimas N muestras de la señal, una muestra por ciclo de 1 ms.
| Elemento | Descripción |
|---|---|
| Entradas | Entrada: la señal. Desconectada, vale 0. |
| Salida | El promedio móvil. |
| Puntos | El número N de muestras. Predeterminado 16; 1 a 32. |
Con N puntos la ventana dura N ciclos (cerca de N ms). Ante un escalón, la salida sube en línea recta y llega al valor nuevo después de N ms; ante una rampa, queda (N − 1) ÷ 2 ms atrás. Justo después de cargar, mientras las muestras no llenan la ventana, el promedio usa solo las recibidas.
Memoria: 12 + 4 × Puntos bytes de la memoria de trabajo (límite de 512 del mapa) y 5 bytes de configuración (límite de 2048). Es el único bloque del capítulo con costo variable. Ejemplos: 16 B con 1 punto, 44 B con 8, 76 B con 16 (predeterminado, 14,8 % del límite) y 140 B con 32 (27,3 %).
#Filtro de paso bajo
Filtro de primer orden ajustado por la frecuencia de corte, en hertz, con el tiempo real medido entre ciclos.
| Elemento | Descripción |
|---|---|
| Entradas | Entrada: la señal. Desconectada, vale 0. |
| Salida | La señal filtrada. |
| Frecuencia de corte (Hz) | Predeterminado 100; 1 a 1000 en la pantalla. Valor 0 o menor: la señal pasa sin filtro. |
| Factor Q | Predeterminado 1,0; 0 a 1. No es factor de calidad: mezcla la señal filtrada con la señal cruda. 1 es solo filtrada. |
Constante de tiempo tau (ms) ≈ 159 ÷ Fc (Hz): 1 Hz da 159 ms, 3 Hz da 53 ms, 10 Hz da 16 ms. A 1 kHz el filtro pierde sentido por encima de 500 Hz. Con Factor Q por debajo de 1, la mezcla vuelve al interior del filtro y este queda más rápido de lo que indica el corte. Ejemplo con 10 Hz: Q 1 da tau de 16,4 ms; Q 0,99, 14,1 ms; Q 0,9, 6,0 ms; Q 0,5, 1,3 ms. Deje Q en 1 para que el corte valga.
Memoria: 12 bytes de la memoria de trabajo (límite de 512 del mapa) y 12 bytes de configuración (límite de 2048).
#Derivada
Mide la tasa de variación de la señal, en unidades por segundo.
| Elemento | Descripción |
|---|---|
| Entradas | Entrada: la señal. Desconectada, vale 0. |
| Salida | Variación de la entrada por segundo, no por ciclo. |
| Factor de filtro | Peso de la muestra nueva (la pantalla escribe el símbolo alfa después del nombre) en el filtro de la salida, por ciclo de 1 ms. Predeterminado 0,5; 0 a 1. |
Derivada = (entrada − entrada del ciclo anterior) ÷ tiempo medido entre los ciclos (cerca de 1 ms). Con el factor de filtro (alfa) entre 0 y 1, la salida pasa por un filtro igual al del Filtro EMA: salida = alfa × derivada + (1 − alfa) × salida anterior.
La derivada no tiene ventana: compara dos muestras seguidas, cerca de 1 ms entre ellas. Una señal que solo se actualiza de vez en cuando, en escalones, da derivada 0 en la mayoría de los ciclos y un pico en el ciclo en que llega el escalón. Verifique en el registro (log) con qué frecuencia cambia el canal. Filtre antes de derivar: la tabla muestra una señal que sube 1 unidad cada 50 ms (pendiente real: 20 unidades por segundo).
| Montaje | Menor salida (unid/s) | Mayor salida (unid/s) |
|---|---|---|
| Derivada con alfa 1 (sin filtro) | 0 | 1000 |
| Derivada con alfa 0,5 (predeterminado) | 0 | 500 |
| Derivada con alfa 0,05 | 4,4 | 54,2 |
| Filtro EMA (Alpha 0,0198) antes, Derivada con alfa 1 | 11,8 | 31,3 |
| Filtro EMA (Alpha 0,0198) antes, Derivada con alfa 0,05 | 16,3 | 22,1 |
Valores calculados con las fórmulas de los bloques, con ciclo de 1 ms, una vez en régimen permanente. El filtro antes cuesta retardo: con tau de 50 ms, la derivada llega cerca de 50 ms después.

Memoria: 12 bytes de la memoria de trabajo (límite de 512 del mapa) y 8 bytes de configuración (límite de 2048).
#Qué filtro usar
| Situación | Bloque | Por qué | Memoria de trabajo |
|---|---|---|---|
| Usted piensa en hertz | Filtro de paso bajo | El corte vale en Hz, con el tiempo medido entre ciclos. | 12 B |
| Usted piensa en tiempo de respuesta y quiere el menor costo | Filtro EMA | Un cálculo y un valor guardado; el Alpha vale por ciclo. | 8 B |
| Usted quiere una ventana de tamaño fijo (N muestras) | Filtro de médias | La salida llega al valor nuevo en N ms, N ciclos. | 12 + 4 × Puntos |
| Usted va a derivar una señal que cambia en escalones | Uno de los tres, antes de la Derivada | La derivada sin filtro se vuelve picos. | (del filtro) |

#Control
#Integrador
Suma la entrada a lo largo del tiempo, con ganancia y límites.
| Elemento | Descripción |
|---|---|
| Entradas | Entrada: el valor a integrar. Reiniciar: mientras sea mayor que 0, la salida queda en 0. Desconectadas, valen 0. |
| Salida | El valor acumulado. |
| Ganancia | Predeterminado 1,0; −999999 a 999999. Unidad: por segundo. |
| Límite mínimo | Piso del acumulado. Predeterminado −999999. |
| Límite máximo | Techo del acumulado. Predeterminado 999999. |
En cada ciclo: acumulado = acumulado + entrada × Ganancia × tiempo medido (en segundos); después el acumulado se limita entre los dos límites. Entrada 10 y Ganancia 1 durante 2 s suben 20. No hay valor de reserva: con la Entrada desconectada el bloque integra 0 y la salida no se mueve. No hay entrada para pausar: para mantener el valor, lleve la entrada a 0 antes del bloque (por ejemplo, con un Interuptor). El Reiniciar pone en cero sin aplicar los límites. Si Límite mínimo es mayor que Límite máximo, vale el mínimo. En uso continuo durante horas, sin llegar a un límite, el acumulado termina por dejar de crecer por falta de resolución numérica.
Memoria: 8 bytes de la memoria de trabajo (límite de 512 del mapa) y 18 bytes de configuración (límite de 2048).
#PID
Calcula una salida a partir de la diferencia entre el valor medido y el objetivo, con términos proporcional, integral y derivativo.
| Elemento | Descripción |
|---|---|
| Entradas | Dato (el valor medido), Objetivo (la pantalla muestra Objetico), Ganancia P, Ganancia I, Ganancia D (desconectada vale 0) y Anti windup (opcional: desconectada, vale el campo). |
| Salida | La suma de los tres términos, sin límite. |
| Tiempo de loop (ms) | Factor de escala del tiempo de las ganancias. Predeterminado 100; 1 a 999999. |
| Anti windup (valor fijo) | Límite del acumulado, en valor absoluto (de −valor a +valor). Predeterminado 100; 0 a 999999. |
error = Dato − Objetivo
acumulado = acumulado + error × (Tiempo de loop ÷ 1000), limitado a ± Anti windup
variación = (error anterior − error) ÷ (Tiempo de loop ÷ 1000)
Salida = error × Ganancia P + acumulado × Ganancia I + variación × Ganancia D
El bloque se ejecuta en cada ciclo (nominalmente 1 ms). El Tiempo de loop (ms) no cambia eso: entra solo como tiempo de cada cálculo. Por segundo, el acumulado crece error × Tiempo de loop, así que la Ganancia I efectiva es Ganancia I × Tiempo de loop y la Ganancia D efectiva es Ganancia D ÷ Tiempo de loop. Con Tiempo de loop en 1, las ganancias quedan en unidades reales (I por segundo, D en segundos). Con el valor predeterminado 100, una Ganancia I de 0,5 rinde 50. Las tres ganancias son entradas, no campos: conecte un Valor fijo en cada una.

El Anti windup limita el acumulado antes de la ganancia: el término integral nunca supera |Ganancia I| × Anti windup. No hay reinicio, habilitación ni límite de salida: ponga un Limitador después del PID. El acumulado suma todo el tiempo, aunque usted desvíe la salida con un Interuptor, hasta llegar a ± Anti windup. El término derivativo compara el error de dos ciclos seguidos (cerca de 1 ms) y actúa sobre el error, no solo sobre el Dato: un dato que cambia en escalones, un escalón en el Objetivo o la primera ejecución después de grabar el mapa (el error anterior comienza en 0) generan picos en él. Filtre el Dato antes, como en la Derivada.
Memoria: 12 bytes de la memoria de trabajo (límite de 512 del mapa) y 22 bytes de configuración (límite de 2048).
#Tablas y vectores
Las tablas y los vectores guardan números que usted escribe y devuelven el valor interpolado para la entrada.
#Tabla 4x4, Tabla 8x8 y Tabla 12x12
Devuelve un valor de una tabla de dos dimensiones, con interpolación entre las celdas vecinas.
| Elemento | Descripción |
|---|---|
| Entradas | X: valor en el eje de las columnas. Y: valor en el eje de las filas. Desconectadas, valen 0. |
| Salida | El valor interpolado. |
| Modo | Fuera del rango de los ejes: Abrazadera (Clamp) mantiene el valor del extremo; Extrapola continúa la recta (o el plano) del segmento del extremo. |
| Ejes y celdas | De −100000 a 100000. Una tabla nueva viene con ejes 0, 1, 2... y celdas 0: devuelve 0. |
La interpolación es bilineal: el bloque encuentra el cuadrado del eje donde caen X e Y e interpola entre las cuatro celdas vecinas. Los ejes deben ser estrictamente crecientes (cada punto mayor que el anterior). Con un eje fuera de orden, el resultado no sigue lo que usted dibujó; dos puntos iguales seguidos dan un escalón. La pantalla de la tabla muestra un aviso en rojo cuando el eje X, el Y o ambos no son estrictamente crecientes, pero solo avisa.

Memoria: 4 bytes de la memoria de trabajo (límite de 512 del mapa) y de 106 a 682 bytes de configuración (límite de 2048), según el tamaño: vea la tabla de tamaños.
#Vector 1x4, Vector 1x8, Vector 1x12 y Vector 1x16
La misma idea de la tabla, con un solo eje: devuelve el valor interpolado en línea recta entre dos puntos.
| Elemento | Descripción |
|---|---|
| Entradas | X: valor en el eje. Desconectada, vale 0. |
| Salida | El valor interpolado. |
| Modo | Igual al de la tabla: Abrazadera (Clamp) mantiene el valor del extremo; Extrapolación continúa la recta del segmento del extremo. |
| Eje y datos | De −100000 a 100000. Un vector nuevo viene con eje 0, 1, 2... y datos 0. |
Valen las mismas reglas de eje estrictamente creciente y de entrada desconectada. La pantalla del vector no muestra el aviso de eje fuera de orden que muestra la pantalla de la tabla: verifique el orden usted mismo.
Memoria: 4 bytes de la memoria de trabajo (límite de 512 del mapa) y de 40 a 136 bytes de configuración (límite de 2048), según el tamaño.
#Tamaños y costo de configuración
| Bloque | Puntos de eje y celdas | Configuración | Parte de los 2048 B |
|---|---|---|---|
| Tabla 4x4 | 4 + 4 puntos, 16 celdas | 106 B | 5,2 % |
| Tabla 8x8 | 8 + 8 puntos, 64 celdas | 330 B | 16,1 % |
| Tabla 12x12 | 12 + 12 puntos, 144 celdas | 682 B | 33,3 % |
| Vector 1x4 | 4 puntos | 40 B | 2,0 % |
| Vector 1x8 | 8 puntos | 72 B | 3,5 % |
| Vector 1x12 | 12 puntos | 104 B | 5,1 % |
| Vector 1x16 | 16 puntos | 136 B | 6,6 % |