Skip to main content

Exemple de programmation pour le niveau de base

L'exemple « Commande bimanuelle avec EDM » du document « PLCopen – Technical Committee 5 Safety Software Technical Specification Part 2: User Examples Version 1.01 – Official Release » est utilisé comme exemple. CODESYS Safety Extension exemple de programmation pour un programme au niveau de base et illustré comme un CODESYS Safety Extension Implémentation FBD.

Astuce

Pour plus d'informations sur la programmation au niveau de base, consultez le document « PLCopen - Comité technique 5 Logiciel de sécurité ».

Description fonctionnelle des fonctions de sécurité

Les fonctions de sécurité suivantes sont utilisées dans cet exemple :

  • Lorsque le bouton d'arrêt d'urgence est enfoncé, tous les mouvements dangereux doivent être arrêtés (via SF_EmergencyStop)

    L'arrêt d'urgence a la plus haute priorité. Après avoir relâché le EStop bouton poussoir, une réinitialisation via le reset S0 est nécessaire.

  • La sortie de sécurité est activée en appuyant sur les deux boutons-poussoirs de la commande bimanuelle. Le relâchement de l'un des boutons-poussoirs bimanuels désactive la sortie de sécurité et arrête le mouvement dangereux via les dispositifs de commutation K1 et K2 (via SF_TwoHandControlTypeII)

  • L'état de base et l'état de fonctionnement des dispositifs de commutation raccordés sont surveillés. Si une erreur est détectée, la sortie de sécurité ne peut pas devenir opérationnelle. (via SF_EDM)

  • Après la mise en marche de l'application de sécurité ou fonctionnelle, ou après une condition d'arrêt d'urgence, la commande bimanuelle doit être relâchée et actionnée à nouveau pour réactiver la sortie de sécurité (via SF_OutControl). Pour garantir cela pour le redémarrage fonctionnel, le signal de processus de l'application fonctionnelle est connecté au Activate entrée de la commande bimanuelle FB THC_S2_S3. (Si le processus d'application est redémarré alors que la commande à deux mains est activée, l'appareil passe alors à l'état C0003, qui signale l'erreur que les deux boutons-poussoirs sont enfoncés lors de l'activation et empêche un redémarrage.)

Dans cet exemple, il n’existe qu’un seul état de fonctionnement.

Figure 123. Déclaration de variable pour exemple de programmation : Commande à deux mains avec EDM
Déclaration de variable pour exemple de programmation : Commande à deux mains avec EDM


Figure 124. Mise en œuvre pour exemple de programmation : commande à deux mains avec EDM
Mise en œuvre pour exemple de programmation : commande à deux mains avec EDM


Tableau 105. Entrées :

Nom

Type de données

Description

S1_S_EStopIn

SAFEBOOL

Bouton d'arrêt d'urgence S1

S2_S_Switch1

SAFEBOOL

Interrupteur S2 connecté au bouton-poussoir 1 de la commande bimanuelle

S3_S_Switch2

SAFEBOOL

Interrupteur S3 connecté au bouton-poussoir 2 de la commande bimanuelle

K1_S_EDM1

SAFEBOOL

Rétroaction périphérique externe K1

K2_S_EDM2

SAFEBOOL

Rétroaction périphérique externe K2

S0_Reset

BOOL

Réinitialisation par le développeur avec le commutateur S0 (dérivé de l'application fonctionnelle)

Process

BOOL

Libération du mouvement par le processus (dérivé de l'application fonctionnelle)



Tableau 106. Résultats :

Nom

Type de données

Description

S_EDM_Out_EDM_K1_K2

SAFEBOOL

Contrôle l'actionneur via K1 et K2

Error_EStop_S1

BOOL

Drapeau d'erreur de EStop_S1

Error_THC_S2_S3

BOOL

Drapeau d'erreur de THC_S2_S3

Error_OC_K1_K2

BOOL

Drapeau d'erreur de OC_K1_K2

Diag_EStop_S1

WORD

Code de diagnostic pour EStop_S1,

16#8xxx:Fonctionnement régulier,

16#Cxxx en cas d'erreur dans EStop_S1

Diag_THC_S2_S3

WORD

Code de diagnostic pour THC_S2_S3,

16#8xxx:Fonctionnement régulier,

16#Cxxx en cas d'erreur dans THC_S2_S3

Diag_OC_K1_K2

WORD

Code de diagnostic pour OC_K1_K2,

16#8xxx:Fonctionnement régulier,

16#Cxxx en cas d'erreur dans OC_K1_K2



Notes complémentaires

Cet exemple peut également être utilisé avec SF_TwoHandControlTypeIII.

L'entrée de Activer était sur le point de TRUE pour des raisons de simplicité. Cela peut être remplacé par une variable dans l'application.

Tableau 107. Informations sur les paramètres FB utilisés

Bloc de fonctions

Saisir

Valeur constante

Description

EStop_S1

S_StartReset

FALSE

Pas de réinitialisation automatique au démarrage du S-PLC.

S_AutoReset

FALSE

Pas de réinitialisation automatique, réinitialisation/confirmation par le développeur nécessaire

OC_K1_K2

S_StartReset

TRUE

La réinitialisation automatique est autorisée au démarrage du S-PLC.

S_AutoReset

TRUE

Réinitialisation automatique, aucune réinitialisation/confirmation par le développeur n'est nécessaire

Static Control

FALSE

Un changement dynamique du signal Appl_Control (front montant) est demandé après l'activation du bloc fonctionnel ou le déclenchement d'une fonction de sécurité (S_SafeControl à FALSE)

EDM_K1_K2

S_StartReset

FALSE

Pas de réinitialisation automatique au démarrage du S-PLC.

MonitoringTime

T#200ms

Le temps de réponse maximal des deux signaux de rétroaction

S_EDM1 et S_EDM2