Control Secuencial

El bloque de funciones de control secuencial permite programar secuencias de funciones en forma de texto.
De esta manera se pueden automatizar varios procesos que requieren control secuencial.

El bloque de función puede simplificar estos procesos, que a menudo requieren varios bloques de funciones convencionales con una programación compleja.

Los pasos individuales se programan línea por línea, un grupo de líneas que realiza una función específica se denomina secuencia.

Contenido


Entradas

Abreviatura Resumen Descripción Rango de valores
S1-8 Activate sequence 1-8 Activar secuencia 1-8 0/1
AI1-8 Inputs 1-8 Entradas 1-8
S Select sequence Seleccionar secuencia 0...8
Off Off Pulso: Las salidas se reinician / apagan.
On: El bloque está bloqueado.
Entrada dominante.
El nombre del sensor conectado se utiliza en la interfaz de usuario.
0/1
Rem Remanence input Entrada de remanencia: si está activa, el bloque de función conserva su estado anterior después de reiniciar el Miniserver.
El estado del bloque de función se guarda:
— Al guardar en el Miniserver
— En un reinicio planificado
— Antes de una copia de seguridad
— Una vez por hora
Los datos se guardan en la tarjeta SD.
0/1




Salidas

Abreviatura Resumen Descripción Rango de valores
AQ1-8 Outputs 1-8 Salidas 1-8
S Current active sequence Secuencia activa actual
L Current program line línea de programa actual
TQ Text output La salida puede ser utilizada por secuencias. -
AC API Connector Conector inteligente basado en comandos API. -




Propiedades

Resumen Descripción Rango de valores Valor por defecto
Configuración Editor de código de programa - -
Intervalo [ms] Intervalo de tiempo en milisegundos al que se ejecutan las líneas del programa. Un intervalo de tiempo bajo puede afectar la carga de la CPU. 20...1000 500




Ejemplo de aplicación

El siguiente ejemplo muestra una aplicación sencilla para el calentamiento de agua sanitaria, en la que dos depósitos de agua caliente se calientan consecutivamente mediante un calentador central.

Las temperaturas del calentador, los dos tanques de agua caliente y el punto de ajuste de temperatura para el agua caliente se proporcionan en las entradas del bloque de función.
La secuencia 1 se inicia a través de la entrada (S1), en este ejemplo por un pulso en un tiempo específico.
El calentador, las bombas y las válvulas se controlan a través de las salidas:

Haga doble clic en el bloque de función para abrir la ventana de programación.
La biblioteca en el lado izquierdo de la ventana enumera las entradas, salidas, comandos y variables disponibles.
Al hacer doble clic en uno de estos objetos, se insertará en la ventana del editor de la derecha, donde se puede personalizar aún más:

Cada línea debe comenzar con un comando, como se puede ver en el ejemplo anterior.
Los comentarios verdes no son necesarios para que la secuencia funcione, pero permiten documentar los pasos individuales.

Nota: Este ejemplo está destinado a proporcionar una descripción general del bloque de función y su funcionalidad. Se puede aplicar a una aplicación específica solo de forma limitada.

La funcionalidad de una secuencia se puede probar con el Simulador/Liveview. La línea activa actual se marca en amarillo en la ventana de programación. Usando el Liveview, todo el proyecto debe ser idéntico entre el Loxone Config y el Miniserver.


Descripción funcional

Las secuencias se ejecutan línea por línea en un intervalo ajustable. Se pueden omitir secciones específicas mediante condiciones o retrasar mediante comandos de tiempo.
Es posible crear múltiples secuencias, cada secuencia puede iniciarse individualmente o cambiar entre ellas mediante un comando.

El bloque de función también incluye una verificación de sintaxis, que resalta los errores de sintaxis al editar una secuencia. Las líneas no válidas o vacías se omiten cuando la secuencia se está ejecutando.

Una línea de programación siempre comienza con la función deseada, seguida de los parámetros y operadores requeridos, cada uno separado por un espacio.

Las entradas y salidas especificadas en la biblioteca del bloque se pueden configurar o consultar.
Si una entrada está conectada a la lógica, el valor válido es el último valor asignado. Los cambios en la entrada sobrescriben el valor establecido por una secuencia.

Los comandos admitidos por el bloque de función Fórmula se pueden usar para establecer y comparar salidas (por ejemplo, SET AQ1 = AI2 * 3).


Operadores, entradas/salidas (IO) y variables

Los operadores disponibles son =, >=, >, <=, <, !=

Entradas disponibles: (AI1 - 8). Los nombres de entrada se pueden personalizar en el cuadro de diálogo.

Salidas disponibles: (AQ1 - 8). Los nombres de salida se pueden personalizar en el cuadro de diálogo.

Variables: valor1 - valor5. Los nombres de las variables se pueden personalizar en el cuadro de diálogo.
Las variables se usan para procesar valores que no están disponibles en las IO. Pueden configurarse como IO, usarse en cálculos o como memorias.


Comandos

Sleep
Esperar un tiempo especificado
Sintaxis: sleep [valor] [s: segundos, m: minutos]
Ejemplos:
sleep 300 s (espera 300 segundos y luego continúa con la siguiente línea)
sleep 10 m (espera 10 minutos, luego continúa con la siguiente línea)

Waitcondition
Esperar a que se cumpla la condición
Sintaxis: waitcondition [IO] [operador] [valor]
Ejemplos:
waitcondition AI1 > AQ1 (espera hasta que AI1 sea mayor que AQ1, luego continúa con la siguiente línea)
waitcondition AI1 + 3 > value1 (espera hasta que AI1 + 3 sea mayor que la variable value1, luego continúa con la siguiente línea)

Set
Establece una entrada, salida o variable a un valor
Sintaxis: set [IO] = [valor]
Ejemplos:
set AQ1 = AI1 - AI2 (resta AI2 de AI1 y el resultado generado lo asigna a AQ1)
set value1 = AI2 + AI3 (suma AI2 y AI3 y establece el resultado a la variable value1)

Setpulse
Genera un pulso en una entrada o salida
Sintaxis: setpulse [IO]
Ejemplos:
setpulse AQ1 (proporciona un pulso corto a AQ1)
setpulse AI2 = 4 (proporciona un pulso corto con valor 4 en AI2)

Startsequence
Inicia una secuencia específica
Sintaxis: startsequence [número] o startsequence [nombre de la secuencia]
Ejemplos:
startsequence 2 (comienza la segunda secuencia)
startsequence Alarm (inicia la secuencia denominada "Alarma")

Return
Si la secuencia actual fue iniciada por otra secuencia con [startsequence], este comando vuelve a la secuencia de llamada y pasa a la siguiente línea.
Sintaxis: return

Goto
Ir a una línea específica
Sintaxis: goto [valor]
Ejemplos:
goto 1 (inicia la secuencia desde el principio)
goto 23 (salta a la línea 23 y continúa desde allí)

If
"If" comprueba primero si una condición es verdadera. Solo si la condición es verdadera, se ejecutan los siguientes comandos hasta "endif".
Sintaxis: if [término izquierdo] [operador] [término derecho] ... endif
Ejemplo:
if AQ3 >= 4
set AQ1 = AQ3
endif

Comentarios y Textos

Comment
Añade un comentario a la línea actual o deshabilita el resto de la línea
Sintaxis: //
Ejemplos:
waitcondition AI2 > AI4 // Esperar hasta que AI2 sea mayor que AI4 (el comentario se usa para describir la línea)
// waitcondition AI2 > AI4 (las barras de comentario se utilizan al principio para deshabilitar toda la línea)

Text output TQ
Los caracteres entre comillas se generan como texto; de lo contrario, se manejan como valores analógicos.
SSintaxis: set TQ = "..."
Ejemplos:
[set TQ = AQ2] generará "27.5"
[set TQ = "Value of AQ2 is" AQ2] generará "Value of AQ2 is 27.5"