Concevez une détection déterministe des pannes, une classification claire des alarmes et des boucles de reprise structurées dans AutomationView.
+-------------------------------------------------------------+
| BOUCLE STRUCTURÉE DE REPRISE SUR DÉFAUT |
| |
| [Étape 20: Poste en Travail] |
| | |
| +----(Timeout TON > 3s)-----> [Étape 90: Alarme] |
| | | |
| (bCapteur_Atteint) | (bBtn_Reset |
| v | AND DefautOK)|
| [Étape 21: Étape Suivante] v |
| [Étape 91: Réarmement] |
| | |
| +---------------+
+-------------------------------------------------------------+
Chaque étape générant un mouvement physique doit associer une instruction de temporisation travail TON :
from automation_machine import Sequence, StepType, ActionInstruction
class StationAlarmManagement(Sequence):
def setup(self):
s20 = self.add_step(StepType.INITIAL, name="Clamp_Workpiece")
s21 = self.add_step(name="Machining_Operation")
s_alarm = self.add_step(name="Fault_Clamp_Timeout")
s_retry = self.add_step(name="Retract_And_Retry")
self.add_transition(s20, s21, condition="bClamp_Closed_Sensor")
self.add_transition(s20, s_alarm, condition="tClamp_Watchdog.Q")
self.add_transition(s_alarm, s_retry, condition="bBtn_Ack_Alarms AND bClamp_Pressure_OK")
self.add_transition(s_retry, s20, condition="bClamp_Fully_Opened")
s20.add_action("cmd_Clamp_Valve", "Actionner electrovanne serrage")
s20.add_action("tClamp_Watchdog", "Chien de garde serrage", instruction=ActionInstruction.TON, duration=3000)
s_alarm.add_action("bAlarm_Active_Tower", "Colonne lumineuse rouge clignotante")
s_retry.add_action("cmd_Unclamp_Valve", "Desserrer pour reessai")
Exportez des mots d'alarmes structurés vers votre automate et votre pupitre opérateur :
| Décalage de Bit | Variable d'Alarme | Description | Gravité |
|---|---|---|---|
| Bit 0 | bAlarm_EStop_Active |
Boucle arrêt d'urgence générale ouverte | Critique (Arrêt Cat 0) |
| Bit 1 | bAlarm_Air_Pressure_Low |
Pression réseau pneumatique < 5,5 bars | Haute (Maintien de cycle) |
| Bit 2 | bAlarm_Feeder_Empty |
Magasin de pièces amont vide | Avertissement (Fin de cycle) |
| Bit 3 | bAlarm_Stn1_Timeout |
Dépassement temps de serrage Poste 1 | Moyenne (Arrêt poste) |