Contrôle séquentiel

Le bloc fonction Commande séquentielle permet de programmer des séquences de fonctions sous forme de texte.
Divers processus qui nécessitent une commande séquentielle peuvent être automatisés de cette façon.

Le bloc fonction peut simplifier ces processus, qui nécessitent souvent plusieurs blocs fonction conventionnels avec une programmation complexe.

Les étapes individuelles sont programmées ligne par ligne, un groupe de lignes qui remplit une fonction spécifique est appelé séquence.

Table des matières


Entrées

Abréviation Résumé Description Valeurs
S1-8 Activate sequence 1-8 Activer la séquence 1-8 0/1
AI1-8 Inputs 1-8 Entrées 1-8
S Select sequence Sélectionnez la séquence 0...8
Off Off Impulsion : les sorties sont réinitialisées/désactivées.
On : le bloc est verrouillé.
Entrée dominante.
Le nom du capteur connecté est utilisé dans l'interface utilisateur.
0/1
Rem Remanence input Entrée de rémanence : si elle est active, le bloc fonction conserve son état précédent après un redémarrage du Miniserver.
L'état du bloc fonction est enregistré :
– Lors de l'enregistrement sur le Miniserver
– À un redémarrage planifié
– Avant une sauvegarde
– Une fois par heure
Les données sont enregistrées sur la carte SD.
0/1




Sorties

Abréviation Résumé Description Valeurs
AQ1-8 Outputs 1-8 Sorties 1-8
S Current active sequence Séquence active en cours
L Current program line Ligne de programme actuelle
TQ Text output La sortie peut être utilisée par des séquences. -
AC API Connector Connecteur intélligent basé sur l'API.
API Commands
-




Propriétés

Résumé Description Valeurs Valeur défaut
Configuration Éditeur de code de programme - -
Intervalle[ms] Intervalle en millisecondes auquel les lignes de programme sont exécutées. Des valeurs faibles peuvent affecter la charge du processeur. 20...1000 500




Exemple d'application

L'exemple suivant montre une application simple pour le chauffage de l'eau domestique, dans laquelle deux ballons d'eau chaude sont chauffés consécutivement par un chauffage central.

Les températures du chauffage, des deux réservoirs d'eau chaude et la température de consigne de l'eau chaude sont fournies aux entrées du bloc fonction.
La séquence 1 est lancée via l'entrée (S1), dans cet exemple par une impulsion à un moment précis.
Le chauffage, les pompes et les vannes sont commandés via les sorties :

Double-cliquez sur le bloc fonction pour ouvrir la fenêtre de programmation.
La bibliothèque sur le côté gauche de la fenêtre répertorie les entrées, sorties, commandes et variables disponibles.
Double-cliquez sur l'une d'entre elles les objets l'inséreront dans la fenêtre de l'éditeur à droite où il pourra être davantage personnalisé :

Chaque ligne doit commencer par une commande, comme on peut le voir dans l'exemple ci-dessus.
Les commentaires verts ne sont pas nécessaires pour que la séquence fonctionne, mais permettent de documenter les étapes individuelles.

Remarque : Cet exemple est destiné à fournir une vue d'ensemble du bloc fonction et de ses fonctionnalités. Il ne peut être appliqué à une application spécifique que dans une mesure limitée.

La fonctionnalité d'une séquence peut être testée dans Simulation / Liveview. La ligne active actuelle est marquée en jaune dans la fenêtre de programmation. Pour Liveview, l'ensemble du document doit être identique à celui du Miniserver.


Description fonctionnelle

Les séquences sont exécutées ligne par ligne à un intervalle réglable. Des sections spécifiques peuvent être sautées à l'aide de conditions ou retardées par des commandes de temps.
Il est possible de créer plusieurs séquences, chaque séquence peut être lancée individuellement ou commutée à l'aide d'une commande.

Le bloc fonction comprend également un contrôle de syntaxe, qui met en évidence les erreurs de syntaxe lors de l'édition d'une séquence. Les lignes non valides ou vides sont ignorées lorsque la séquence est en cours d'exécution.

Une ligne de programmation commence toujours par la fonction souhaitée, suivie des paramètres et opérateurs requis, séparés chacun par un espace.

Les entrées et sorties spécifiées dans la bibliothèque du bloc peuvent être définies ou interrogées.
Si une entrée est connectée à la logique, la dernière valeur définie est valide. Les modifications apportées à l'entrée écrasent la valeur définie par une séquence.

Les commandes prises en charge par le bloc fonction Formula peuvent être utilisées pour définir et comparer les sorties (par exemple SET AQ1 = AI2 * 3).


Opérateurs, entrées/sorties (IOs) et variables

Les opérateurs disponibles sont =, >=, >, <=, <, !=

Entrées disponibles : (AI1 - 8). Les noms des entrées peuvent être personnalisés dans la boîte de dialogue.

Sorties disponibles : (AQ1 - 8). Les noms des sorties peuvent être personnalisés dans la boîte de dialogue.

Variables : valeur1 - valeur5. Les noms de variables peuvent être personnalisés dans la boîte de dialogue.
Les variables sont utilisées pour traiter des valeurs qui ne sont pas disponibles au niveau IOs. Ils peuvent être définis comme des IOs. utilisés dans des calculs ou comme mémoire.


Commandes

Sleep
Attendez le temps spécifié
Syntaxe : sleep [value] [s : seconds, m : minutes]
Exemples :
sleep 300 s (attend 300 secondes, puis passe à la ligne suivante)
sommeil 10 m (attend 10 minutes, puis passe à la ligne suivante)

Waitcondition
Attente que la condition soit remplie
Syntaxe : waitcondition [IO] [operator] [value]
Exemples :
waitcondition AI1 > AQ1 (attend que AI1 soit supérieur à AQ1, puis passe à la ligne suivante)
waitcondition AI1 3 > value1 (attend que AI1 3 soit supérieur à la variable value1, puis passe à la ligne suivante)

Set
Définir une entrée, une sortie ou une variable sur une valeur
Syntaxe : set [IO] = [value]
Exemples :
set AQ1 = AI1 - AI2 (soustrait AI2 de AI1 et affiche le résultat sur AQ1)
set value1 = AI2 AI3 (ajoute AI2 et AI3 et définit la variable value1 au résultat)

Setpulse
Impulse une entrée ou une sortie
Syntaxe : setpulse [IO]
Exemples :
setpulse AQ1 (fournit une courte impulsion à AQ1 )
setpulse AI2 = 4 (fournit une courte impulsion avec la valeur 4 sur AI2)

Startsequence
Démarre une séquence spécifique
Syntaxe : startsequence [numéro] ou startsequence [nom de la séquence]
Exemples :
startsequence 2 ( démarre la deuxième séquence)
startsequence Alarm (démarre la séquence nommée « Alarme »)

Return
Si la séquence en cours a été démarrée par une autre séquence avec [startsequence], cette commande retourne à la séquence appelante et passe à sa ligne suivante
Syntaxe : return

Goto
Aller à la ligne spécifique
Syntaxe : goto [value]
Exemples :
goto 1 (commence la séquence depuis le début)
goto 23 (passe à la ligne 23 et continue à partir de là)

If
"If" vérifie d'abord si une condition est vraie. Seulement si la condition est vraie, les commandes suivantes jusqu'à "endif" sont exécutées.
Syntaxe : if [terme gauche] [opérateur] [terme droit] ... endif
Exemple :
if AQ3 >= 4
set AQ1 = AQ3
endif

Commentaires et textes

Comment
Ajoute un commentaire à la ligne courante ou désactive le reste de la ligne
Syntaxe : //
Exemples :
waitcondition AI2 > AI4 // attend que AI2 soit supérieur à AI4 (le commentaire est utilisé pour décrire la ligne)
// waitcondition AI2 > AI4 (les slashs de commentaires sont utilisés au début pour désactiver toute la ligne)

Text output TQ
Les caractères entre guillemets sont sortis sous forme de texte, sinon ils sont traités comme des valeurs analogiques
Syntaxe : set TQ = "..."
Exemples :
[set TQ = AQ2] affichera "27,5"
[set TQ = "La valeur de AQ2 est" AQ2] affichera "La valeur de AQ2 est 27,5"