Comprendre avant de programmer : le cours illustré sur la pompe ↗
01 Écris la logique
ST simplifiéÉcris avec les noms de la table ci-dessous. := affecte une valeur ; ; termine une instruction.
Tab : indenter de 4 espaces · Maj+Tab : désindenter · Échap puis Tab : sortir de l’éditeur.
Le brouillon n’est pas encore chargé dans l’automate.
Un coup de pouce
Voir une correction expliquée par les exercices
Remplace le brouillon de cet exercice. Charge-le ensuite pour l’exécuter.
Ces essais vérifient le brouillon sur des entrées préparées, indépendamment de la cuve. Ils contrôlent l’ordre Pompe, même si la protection arrêterait le moteur.
Réussir ces cas pédagogiques ne valide pas la sécurité d’une installation réelle.
02 Observe la machine
STOP · temps figéLa 3D n’est pas disponible dans ce navigateur. Les mesures, la programmation et les tests restent utilisables.
Charge un programme pour commencer.
Préparer une situation de départ
Disponible quand le temps est figé. Ce réglage déplace l’eau directement pour préparer un essai ; ce n’est pas une commande de l’automate.
RUN exécute ton code. STOP force les sorties à FALSE mais l’eau continue de s’écouler. « Pause » fige le temps du simulateur, y compris l’écoulement. « Un cycle » avance exactement de 100 ms.
03 Suis un cycle de l’automate
Cycle 0 · 0,0 sA. Lire les entrées
Photographie prise au début du dernier cycle exécuté.
B. Exécuter de haut en bas
Les conditions et affectations réellement parcourues.
- Charge ton code, puis avance d’un cycle.
C. Mettre à jour les sorties
Les variables à utiliser
Les adresses sont des repères pédagogiques. Les variables sont déjà déclarées : utilise leur nom dans ton code.
| Nom / adresse | Type · rôle | À quoi ça sert |
|---|
Comprendre ce que tu programmes
Comment commencer ?
- Modifie le programme de l’exercice.
- Clique sur Charger mon code. L’automate reste en STOP.
- Clique sur RUN, puis active Marche.
- Observe, provoque un défaut, puis clique sur Tester mon programme.
TRUE, FALSE, IF… ça veut dire quoi ?
TRUE signifie vrai ou actif ; FALSE signifie faux ou inactif. Ce sont les deux valeurs d’un BOOL.
IF Marche THEN
Pompe := TRUE;
ELSE
Pompe := FALSE;
END_IF;Si Marche est vrai, la première branche s’exécute. Sinon, c’est ELSE. ELSIF ajoute une condition intermédiaire. AND demande les deux conditions ; OR au moins une ; NOT inverse une condition.
:= écrit une valeur. = compare deux valeurs. Les comparaisons acceptées sont < > <= >= = <>. Les parenthèses regroupent une expression.
Pourquoi la mémoire reste-t-elle active ?
Chaque cycle lit les entrées puis recommence le programme de haut en bas. Si tu n’écris pas une variable, elle garde sa valeur du cycle précédent. C’est utile pour Demande entre 30 et 80 %. Si tu écris deux fois une sortie, la dernière affectation exécutée gagne.
Charger un programme ou réinitialiser la cuve remet mémoire et sorties à FALSE. STOP coupe les sorties ; il conserve Demande.
Pourquoi séparer l’ordre et le moteur ?
Ton code écrit Pompe. Une protection indépendante coupe aussi le moteur lors d’un arrêt d’urgence ou si le niveau réel atteint 95 %. Elle reste déclenchée jusqu’au réarmement, possible après libération du bouton et sous 85 %.
Un mauvais programme peut donc encore demander TRUE alors que le moteur est arrêté. Réarmer peut alors relancer le moteur. Les tests signalent cette erreur de programme. Cette protection est un modèle d’apprentissage, pas une architecture de sécurité certifiée.
Où sont l’OT et l’automatisme ?
L’OT englobe ici le capteur, la liaison de mesure, l’automate, les commandes et la pompe qui interagissent avec l’eau. L’automatisme consiste notamment à concevoir la logique qui les fait fonctionner. Tu pratiques cette partie en écrivant le programme.
Dans une installation réelle, il faudrait aussi choisir et câbler les équipements, configurer leurs communications, vérifier le comportement et les protections sur le matériel.
Ce que ce petit langage couvre
Ce labo interprète un sous-ensemble pédagogique inspiré du Structured Text : affectations, conditions, logique booléenne, comparaisons et commentaires // ou (* … *). Les noms ne distinguent pas majuscules et minuscules.
Il n’implémente pas les déclarations VAR, les temporisateurs, les boucles, les fonctions ni l’ensemble de la norme IEC 61131-3. Les adresses et les 100 ms sont propres à ce modèle. Le fichier .st exporté demande une adaptation et des vérifications dans un outil d’automate réel.