Évitez que votre machine ne reste bloquée indéfiniment en cas de coincement mécanique ou de capteur défaillant en intégrant des Chiens de Garde d'Étape.
Chaque étape en attente d'un signal physique doit comporter une action temporisée TON et une double transition en sortie :
[Étape 10: Descente Perçage]
| Action 1: cmd_Perceuse_Bas (N)
| Action 2: tWatchdog_Perceuse (TON, 4000ms)
|
+------------+------------+
| |
(sPerceuse_Bas) (tWatchdog_Perceuse.Q)
v v
[Étape 11: Rentrée] [Étape 99: Alarme Coincement]
Étape 10).tWatchdog_PerceuseTON4000 (en millisecondes)sPerceuse_Bas -> mène à l'étape normale suivante.tWatchdog_Perceuse.Q -> mène à l'étape d'alarme.s10 = self.add_step(name="Lower_Drill")
s_alarm = self.add_step(name="Drill_Jam_Alarm")
self.add_transition(s10, s11, condition="sDrill_Bottom_Sensor")
self.add_transition(s10, s_alarm, condition="tDrill_Watchdog.Q")
s10.add_action("cmd_Drill_Down", "Engage drilling cylinder")
s10.add_action("tDrill_Watchdog", "Drill stroke watchdog", instruction=ActionInstruction.TON, duration=4000)