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 trois 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):
# Définir les étapes
s0 = self.add_step(StepType.INITIAL, name="Red")
s1 = self.add_step(name="Green")
s2 = self.add_step(name="Yellow")
# Transitions temporisées
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 - lumières ALLUMÉES lorsque l'étape est active
s0.add_action("red_light", "Feu rouge allumé")
s1.add_action("green_light", "Feu vert allumé")
s2.add_action("yellow_light", "Feu jaune allumé")
# Temporisateurs - chaque étape a sa propre durée
s0.add_action("timer_red", "Timer phase rouge", instruction=ActionInstruction.TON, duration=10000)
s1.add_action("timer_green", "Timer phase verte", instruction=ActionInstruction.TON, duration=8000)
s2.add_action("timer_yellow", "Timer phase jaune", 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", "Feu rouge allumé") utilise le qualificatif par défaut Non mémorisé (N) - 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 API vous permet de tester votre programme sans matériel physique.
red_light s'ALLUMEUtilisez F10 pour exécuter l'émulation 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 :