Structurez vos installations automatisées selon le standard industriel GEMMA (Guide d'Étude des Modes de Marches et d'Arrêts).
Le guide GEMMA classe les comportements machine en trois grandes familles d'états :
Dans AutomationView, l'architecture recommandée repose sur une Séquence Maître Superviseur qui pilote et verrouille les séquences de production de chaque poste.
+---------------------------------------------------------------+
| SÉQUENCE MAÎTRE GEMMA |
| |
| [Étape A1: Repos] <====== [Étape A6: Prise de référence] |
| | ^ |
| (bStart_Auto) | (bReset_Cmd) |
| v | |
| [Étape F1: Production] =========> [Étape D1: Arrêt Urgence] |
| | ^ |
| (bCycle_Stop) | (bE_Stop_Active) |
| v | |
| [Étape A2: Arrêt Fin Cycle] ------------+ |
+---------------------------------------------------------------+
Ces variables seront générées automatiquement lors de la saisie de votre séquence. Vous pouvez également les préparer et les documenter à l'avance dans le panneau Variables :
| Nom de Variable | Type | Direction | Description |
|---|---|---|---|
bMode_Auto |
BOOL |
Entrée | Commutateur de mode en position Automatique |
bMode_Manual |
BOOL |
Entrée | Commutateur de mode en position Manuel / Réglage |
bBtn_Start |
BOOL |
Entrée | Bouton-poussoir vert Départ Cycle |
bBtn_Stop |
BOOL |
Entrée | Bouton-poussoir Arrêt Fin de Cycle |
bBtn_Reset |
BOOL |
Entrée | Bouton-poussoir Réarmement / Acquittement défaut |
bE_Stop_OK |
BOOL |
Entrée | Boucle de sécurité Arrêt d'Urgence saine (contact NF) |
bStation_At_Home |
BOOL |
Entrée | Tous les actionneurs confirmés en position initiale |
bProduction_Active |
BOOL |
Sortie | Signal d'autorisation générale pour les postes |
bHoming_Active |
BOOL |
Sortie | Ordre de lancement du cycle de remise en référence |
bEmergency_State |
BOOL |
Sortie | Témoin lumineux ou alarme d'arrêt d'urgence |
A1_REST_STATE. Action : bProduction_Active = FALSE.bMode_Auto AND bBtn_Start AND bE_Stop_OK AND bStation_At_Home.F1_AUTO_PRODUCTION. Action : bProduction_Active = TRUE.bBtn_Stop OR NOT bMode_Auto.A2_CYCLE_END_STOP. Action : bProduction_Active = FALSE.bStation_At_Home.NOT bE_Stop_OK.D1_EMERGENCY_STOP. Action : bEmergency_State = TRUE.bE_Stop_OK AND bBtn_Reset.A6_HOMING_CYCLE. Action : bHoming_Active = TRUE.bStation_At_Home.from automation_machine import Sequence, StepType
class GemmaMaster(Sequence):
def setup(self):
s_a1 = self.add_step(StepType.INITIAL, name="A1_REST_STATE")
s_f1 = self.add_step(name="F1_AUTO_PRODUCTION")
s_a2 = self.add_step(name="A2_CYCLE_END_STOP")
s_d1 = self.add_step(name="D1_EMERGENCY_STOP")
s_a6 = self.add_step(name="A6_HOMING_CYCLE")
self.add_transition(s_a1, s_f1, condition="bMode_Auto AND bBtn_Start AND bE_Stop_OK AND bStation_At_Home")
self.add_transition(s_f1, s_a2, condition="bBtn_Stop OR NOT bMode_Auto")
self.add_transition(s_a2, s_a1, condition="bStation_At_Home")
self.add_transition(s_f1, s_d1, condition="NOT bE_Stop_OK")
self.add_transition(s_a1, s_d1, condition="NOT bE_Stop_OK")
self.add_transition(s_d1, s_a6, condition="bE_Stop_OK AND bBtn_Reset")
self.add_transition(s_a6, s_a1, condition="bStation_At_Home")
s_f1.add_action("bProduction_Active", "Autoriser cycle automatique")
s_d1.add_action("bEmergency_State", "Témoin défaut arrêt d'urgence")
s_a6.add_action("bHoming_Active", "Déclencher cycle de remise à l'origine")
Ouvrez gemma_master.seq pour modéliser le superviseur principal.
Les sous-séquences de chaque poste intègrent la variable bProduction_Active dans leur transition de démarrage. En cas de chute de l'arrêt d'urgence, bProduction_Active retombe à FALSE, figeant immédiatement l'enchaînement des étapes en toute sécurité.
bE_Stop_OK = TRUE et bStation_At_Home = TRUE.bMode_Auto = TRUE puis basculez bBtn_Start = TRUE.F1_AUTO_PRODUCTION.bE_Stop_OK = FALSE. La séquence bascule immédiatement sur D1_EMERGENCY_STOP.bE_Stop_OK = TRUE puis validez bBtn_Reset = TRUE pour enclencher la prise d'origine A6_HOMING_CYCLE.