Construisez un contrôleur de feux de circulation à partir de zéro - étape par étape.
Une séquence simple de feux de circulation avec :
traffic-lightVous obtenez deux fichiers :
traffic-light/
machine.machine # Configuration du projet
main.seq # Diagramme de Séquence principal

from automation_machine import Sequence, StepType, ActionInstruction
class TrafficLight(Sequence):
def setup(self):
# Define steps
s0 = self.add_step(StepType.INITIAL, name="Red")
s1 = self.add_step(name="Green")
s2 = self.add_step(name="Yellow")
# Timed transitions
self.add_transition(s0, s1, condition="timer_red.Q")
self.add_transition(s1, s2, condition="timer_green.Q")
self.add_transition(s2, s0, condition="timer_yellow.Q")
# Actions - lights ON while step is active
s0.add_action("red_light", "Red light on")
s1.add_action("green_light", "Green light on")
s2.add_action("yellow_light", "Yellow light on")
# Timers - each step has its own duration
s0.add_action("timer_red", "Red phase timer", instruction=ActionInstruction.TON, duration=10000)
s1.add_action("timer_green", "Green phase timer", instruction=ActionInstruction.TON, duration=8000)
s2.add_action("timer_yellow", "Yellow phase timer", instruction=ActionInstruction.TON, duration=3000)
Enregistrez le fichier. L'éditeur visuel affiche instantanément le diagramme de Séquence.
self.add_step(StepType.INITIAL) crée une étape initiale - le point de départ de votre Séquence (indiqué par une double bordure dans l'éditeur).s0.add_action("red_light", "Red light on") utilise le qualificatif Non mémorisé (N) par défaut - l'action s'exécute en continu pendant que son étape est active et s'arrête lorsque l'étape se désactive.instruction=ActionInstruction.TON utilise l'instruction TON (Temporisateur avec retard à la montée). Le temporisateur démarre lorsque l'étape s'active, et sa sortie .Q devient TRUE après la duration spécifiée (en millisecondes).Ouvrez main.seq et écrivez le programme suivant. Cela crée trois étapes connectées par des transitions temporisées, avec des actions qui contrôlent les lumières.
Le moteur d'Émulation d'Automate vous permet de tester votre programme sans matériel physique.
red_light s'ALLUMEUtilisez F10 pour exécuter la simulation pas à pas, un cycle de balayage à la fois. C'est utile pour comprendre exactement quand les transitions se déclenchent et que les étapes changent.
Ouvrez le panneau Variables dans la barre latérale. Vous verrez les valeurs en temps réel mises à jour par le moteur d'émulation :
red_light : TRUE lorsque l'Étape 0 est activegreen_light : TRUE lorsque l'Étape 1 est activeyellow_light : TRUE lorsque l'Étape 2 est activeVous pouvez forcer les valeurs des variables pendant l'émulation pour tester des cas extrêmes. Voir Gestion des Variables pour plus de détails.
Félicitations ! Vous avez construit et testé votre premier projet AutomationView. Voici quelques idées à explorer ensuite.
Essayez d'étendre ce projet :