TWILIGHT / ATELIER DE PROGRAMMATION

À toi de programmer.

Le capteur mesure. Ton code décide. La pompe agit.

AUTOMATE VIRTUELCycle de 100 ms simulées

Comprendre avant de programmer : le cours illustré sur la pompe ↗

POURQUOI CE GESTE COMPTE

01 Écris la logique

ST simplifié
Brouillon

É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.

02 Observe la machine

STOP · temps figé
Une cuve transparente, sa pompe, ses tuyaux et l’armoire de l’automate.
Chargement de la scène Blender…
Glisse pour tourner · molette pour zoomer
Niveau réel50,0 %
Mesure reçue50,0 %
Ordre PompeFALSE
Moteur réelArrêté

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 s

A. 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.

  1. 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 / adresseType · rôleÀ quoi ça sert

Comprendre ce que tu programmes

Comment commencer ?
  1. Modifie le programme de l’exercice.
  2. Clique sur Charger mon code. L’automate reste en STOP.
  3. Clique sur RUN, puis active Marche.
  4. 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.