Intégrez les exigences de sécurité machines ISO 13849-1 et CEI 62061 dans vos programmes AutomationView.
Dans les installations industrielles modernes :
+-------------------------------------------------------------------+
| HIÉRARCHIE DE SÉCURITÉ |
| |
| [Bloc Sécurité Matériel / API-F] =====> (Coupure Puissance) |
| | | |
| | (Signal d'état : bSafetyZone_OK) v |
| v [Variateurs/Vannes] |
| [Logique Grafcet AutomationView] -----------> [Commandes Mvts] |
+-------------------------------------------------------------------+
Déclarez systématiquement les signaux de sécurité en logique positive (contacts NF avec niveau haut au repos) :
| Nom de Variable | Type | Signification si TRUE | Signification si FALSE |
|---|---|---|---|
bSafety_Gate_Closed |
BOOL |
Protecteur mobile fermé et verrouillé | Porte ouverte (Opérateur en zone) |
bLight_Curtain_Clear |
BOOL |
Faisceau barrière immatérielle libre | Faisceau coupé (Intrusion) |
bE_Stop_Healthy |
BOOL |
Tous les boutons d'arrêt d'urgence OK | Arrêt d'urgence enclenché |
bSafety_Zone_Permit |
BOOL |
Boucle de sécurité armée et acquittée | Puissance coupée des actionneurs |
Chaque transition autorisant un mouvement dangereux doit intégrer l'autorisation de sécurité :
from automation_machine import Sequence, StepType
class SafetyInterlockedCell(Sequence):
def setup(self):
s0 = self.add_step(StepType.INITIAL, name="Standby")
s1 = self.add_step(name="Advance_Hydraulic_Ram")
s_safe_hold = self.add_step(name="Safety_Interrupted_Hold")
self.add_transition(s0, s1, condition="bStart_Cmd AND bSafety_Zone_Permit AND bLight_Curtain_Clear")
self.add_transition(s1, s_safe_hold, condition="NOT bSafety_Zone_Permit")
self.add_transition(s_safe_hold, s1, condition="bSafety_Zone_Permit AND bResume_Pushbutton")
s1.add_action("cmd_Ram_Down", "Descente verin presse")
s_safe_hold.add_action("bHold_Lamp", "Allumer voyant attente securite")