Programmation de l'application de sécurité

Informations générales sur le projet de sécurité

La liste suivante indique les principaux aspects de l'interface utilisateur de Machine Expert - Safety et les caractéristiques du code et des variables liés à la sécurité.

Pour plus d'informations, consultez EcoStruxure Machine Expert - Safety - User Guide.

  • Les POU sont organisées dans la fenêtre de l'Arborescence du projet.

  • Un projet lié à la sécurité contient exactement une POU de programme de type CEI 61131-3 nommée Main. Cette POU ne peut pas être supprimée ni renommée, et aucun autre programme de type CEI 61131-3 défini par l'utilisateur ne peut être ajouté (uniquement des blocs fonctions, appelés FB).

  • La tâche liée à la sécurité dans laquelle est exécuté ce programme est prédéfini mais non visible dans Machine Expert - Safety. Vous ne pouvez pas modifier la configuration de cette tâche.

    NOTE : Comme une seule tâche de sécurité est exécutée par SLC, une modification du temps de cycle SLC a le même effet que la modification du temps de cycle de la tâche.
  • Vous pouvez créer des blocs fonction de sécurité définis par l'utilisateur (selon la norme CEI 61131-3) mais pas des fonctions.

  • Vous pouvez insérer des bibliothèques qui fournissent des fonctions et blocs fonction relatifs à la sécurité.

  • Chaque POU est composée d'une ou plusieurs feuilles de travail de code, et une table de variables contenant les déclarations des variables locales. Double-cliquez sur une icône d'arborescence pour ouvrir la feuille de travail correspondante à modifier.

  • Les déclarations de variables sont placées dans une grille de variables distincte. Cliquez sur l'icône Global Decl. de la barre d'outils principale pour ouvrir cette table.

  • L'assistant Edit Wizard fournit des fonctions et blocs fonction. Après l'ajout d'une bibliothèque de POU (via le menu contextuel du dossier Bibliothèques de l'arborescence du projet), vous pouvez sélectionner les blocs inclus dans un Groupe distinct.

  • Le code standard et le code relatif à la sécurité sont totalement distincts dans Machine Expert - Safety. Par conséquent, les variables standard et les variables relatives à la sécurité, ou plus exactement les types de données standard et relatifs à la sécurité, sont totalement distincts aussi. Par exemple, il est impossible de relier une variable avec type de données standard et un paramètre formel qui attend une variable liée à la sécurité.

    Les variables liées à la sécurité s'affichent sur fond rouge dans le code. Les variables des types de données standard s'affichent sans couleur de fond.

  • Les unités fonctionnelles et les blocs fonction (FU/FB) ainsi que les blocs fonction de la bibliothèque liée à la sécurité s'affichent en rouge. Les blocs standard s'affichent en gris-bleu. Les unités fonctionnelles et les blocs fonction (FU/FB) de fonction s'affichent en vert.

  • En cas de mixité de variables standard et liées à la sécurité, Machine Expert - Safety exécute une analyse du flux de données dans le code FBD/LD, et affiche les chemins des signaux liés à la sécurité d'un réseau sous la forme de lignes rouges épaisses. Un chemin lié à la sécurité se termine toujours sur une variable de sortie liée à la sécurité ou, dans le cas d'une variable de sortie standard, à la dernière entrée d'objet située avant cette sortie. Si un chemin de signal standard se termine sur une sortie liée à la sécurité, cette sortie s'affiche sur un fond rouge hachuré.

Exemple d'application de sécurité

Le programme simple suivant repose sur la configuration de modules d'E/S TM5 de l'exemple de projet. Les procédures de développement de cet exemple sont décrites dans les sections suivantes.

Consultez le chapitre Développement de code FBD/LD dans le document EcoStruxure Machine Expert - Guide utilisateur pour la description détaillée des fonctions de l'éditeur.

Le signal d'entrée SafeDigitalInput01 du module TM5SDI4DFS est lu et mappé via la fonction AND_S sur le signal de sortie SafeDigitalOutput01 du module TM5SDO4TFS. Étant donné la fonction AND_S, les signaux de diagnostic SafeModuleOK des modules d'E/S liés à la sécurité sont évalués. Une défaillance détectée dans un module désactive le signal SafeDigitalOutput01 (SAFEFALSE).

De plus, le signal SafeDigitalOutput01 est écrit dans la variable d'échange booléenne SLC2LMC_Bool0_7_0 qui appartient aux échanges de données SLC2LMC configurés dans la configuration d'équipement SLC dans Logic Builder. Ainsi, l'application standard peut lire l'état de la sortie. (Le signal SafeDigitalOutputxx est disponible pour les modules de sortie numériques. Il indique à l'application standard si la sortie de sécurité est définie par l'application de sécurité). La connexion directe de variable de sécurité en variable d'échange standard SLC2LMC_Bool0_7_0 est possible car les conversions des types de données de sécurité en types de données standard sont autorisées.

Le bloc fonction de temporisation (timer) TON_S retarde le signal ReleaseOutput01. Ce signal de relâchement désactive une inhibition de redémarrage active et active la voie de sortie du signal SafeDigitalOutput01 du module TM5SDO4TFS. Le temps de retard est de 50 ms.

NOTE : Ce temps de retard programmé influence le temps de réponse global de la fonction de sécurité du système.

Insertion d'une fonction ou d'un bloc fonction dans le code

Effectuez la procédure suivante pour la fonction AND_S et le bloc fonction TON_S :

Étape

Action

1

Ouvrez la feuille de travail de programme Principal en double-cliquant sur l'icône de la fenêtre de l'Arborescence du projet.

2

Dans la zone de sélection de l'assistant Edit Wizard, sélectionnez le bloc souhaité.

Si le bloc n'est pas visible , sélectionnez d'abord le Groupe <all FUs and FBs>.

3

Faites glisser le bloc de la zone de sélection Edit Wizard dans la feuille de travail de code, cliquez avec le bouton gauche pour insérer le schéma du bloc, puis déposez-le avec un clic gauche dans la position souhaitée.

4

Dans le cas d'un bloc fonction (TON_S dans l'exemple), une variable d'instance doit être déclarée.

Résultat : la boîte de dialogue Variable propose un nom d'instance que vous pouvez modifier.

5

Dans la boîte de dialogue Variable, cliquez sur OK.

Résultat : l'instance du bloc fonction est insérée dans le code et la variable d'instance correspondante est insérée dans les déclarations locales de la POU Principal. Vous pouvez ouvrir la feuille de travail de déclaration en cliquant sur l'icône ToggleWS dans la barre d'outils principale.

6

Dans l'exemple, la fonction AND_S requiert quatre entrées. Pour adapter cette fonction, cliquez avec le bouton droit sur l'icône de bloc et sélectionnez Object Properties dans le menu contextuel. Sélectionnez IN2 dans la liste Formal Parameters et cliquez sur Duplicate FP deux fois pour ajouter deux autres entrées. Fermez la boîte de dialogue en cliquant sur OK.

Insertion des signaux d'équipement dans le code

La procédure suivante s'applique aux signaux d'équipement émis dans les noeuds d'équipement dans la fenêtre des Equipements. Cela inclut des variables d'échange définies pour le SLC ainsi que des signaux de diagnostic et de contrôle des modules d'E/S liés à la sécurité.

Procédure dans Machine Expert - Safety :

Étape

Action

1

Ouvrez la feuille de travail de code où vous souhaitez insérer le signal.

2

Dans la fenêtre Devices, ouvrez l'arborescence des équipements à gauche et développez le noeud du module souhaité (SL1.SMx).

3

Faites glisser le signal souhaité dans la feuille de travail de code.

Résultat : lorsque vous relâchez le bouton de la souris, la boîte de dialogue Variable s'affiche.

4

Dans la boîte de dialogue Variable, acceptez le nom proposé, sélectionnez une variable globale existante, ou déclarez une nouvelle variable globale. La figure indique les noms des variables utilisés dans l'exemple.

5

Confirmez l'action dans la boîte de dialogue Variable en cliquant sur OK et déposez la variable à la position souhaitée avec un clic gauche.

Résultat : la variable est insérée dans le code et la déclaration de cette variable est automatiquement insérée dans la feuille de travail des variables globales.

Vous pouvez déposer directement la variable sur une sortie ou une entrée de bloc pour la connecter à l'insertion.

Par exemple, insérez les signaux suivants comme décrit :

  • SafeDigitalInput01 du module TM5SDI4DFS connecté à une entrée AND_S.

  • SafeModuleOK de chaque module d'E/S connecté à une entrée AND_S.

  • SafeDigitalOutput01 du module TM5SDO4TFS connecté à une entrée AND_S.

    Insérez la variable une seconde fois et déposez-la dans un emplacement vide sans connexion.

  • ReleaseOutput01 du module TM5SDO4TFS connecté à une sortie TON_S.

  • Variable d'échange SLC2LMC_Bool0_7_0 du SLC connecté à l'entrée (point de connexion bleu) de la variable non connectée SafeDigitalOutput01. Ainsi, la variable de sortie est écrite dans la variable d'échange booléenne.

Insertion de constantes (littéraux) dans le code

La procédure suivante explique comment insérer des littéraux dans le code. Les littéraux permettent d'entrer des valeurs de constantes dans le code. Leur utilisation ne requiert pas la spécification de déclarations.

Étape

Action

1

Vous pouvez insérer des constantes non connectées ou des constantes connectées/attribuées :

  • Pour insérer une constante déjà connectée à une fonction ou un bloc fonction, double-cliquez sur le paramètre formel souhaité.

  • Pour insérer une constante non connectée à un objet, cliquez dans un emplacement vide de la feuille de travail, et appuyez sur F5 ou cliquez sur l'icône Variable de la barre d'outils de l'éditeur.

Résultat : la boîte de dialogue Variable s'affiche.

2

Définissez Scope = Constant.

3

Un type de données est proposé dans la liste déroulante Type. Adaptez ce paramètre si nécessaire.

4

Entrez le littéral souhaité (constante) dans le champ Nom.

Respectez les règles indiquées dans ce tableau.

5

Appuyez sur OK.

Résultat : la constante est insérée dans le code FBD/LD.

Consultez le chapitre Constantes (littéraux) : insertion et déclaration dans le document EcoStruxure Machine Expert - Guide utilisateur pour plus d'informations sur les constantes et le cas spécial des "Constantes globales".

Règles liées aux constantes :

  • Les littéraux doivent être saisis en incluant toujours le type de données (par exemple, SAFEINT#1000).

    Exceptions : TRUE et FALSE sont toujours traités comme type BOOL et SAFETRUE/SAFEFALSE sont toujours traités comme type SAFEBOOL. Par exemple, il n'est pas nécessaire d'entrer BOOL#TRUE.

  • Les constantes INT standard peuvent être saisies sans type de données (par exemple, 1000 signifie INT#1000) car les entrées décimales sont automatiquement interprétées comme type INT.

    Exception : 0 et 1 si utilisé avec un type de données booléen.

Consultez le chapitre Constants vs. Literals dans EcoStruxure Machine Expert - User Guide pour plus d'informations sur les littéraux selon la norme CEI 61131-3.

Insertion de variables dans le code

La procédure suivante explique comment insérer des variables dans le code. La déclaration est automatiquement insérée dans la feuille de travail de déclarations respective.

Étape

Action

1

Vous pouvez insérer des variables non connectées ou des variables connectées/attribuées :

  • Pour insérer une variable déjà connectée à une fonction ou un bloc fonction, double-cliquez sur le paramètre formel souhaité.

  • Pour insérer une variable non connectée à un objet, cliquez dans un emplacement vide de la feuille de travail, et appuyez sur F5 ou cliquez sur l'icône Variable de la barre d'outils de l'éditeur.

  • Pour insérer une variable pour un contact ou une bobine, double-cliquez sur l'objet LD particulier.

Résultat : la boîte de dialogue Variable s'affiche.

2

Sélectionnez la portée de la variable dans Scope.

Résultat : pour les variables locales, la déclaration est insérée dans la feuille de travail de déclarations de la POU en cours (à ouvrir via l'icône ToggleWS). Une déclaration globale est insérée dans la feuille de travail de déclarations globales que vous pouvez ouvrir en cliquant sur l'icône Global Decl..

3

Indiquez le type de données de la nouvelle variable, entrez le nom de la variable dans Name, et définissez les autres propriétés.

4

Appuyez sur OK.

Résultat : la variable est insérée dans le code FBD/LD et la déclaration dans la feuille de travail de déclarations correspondante.

Il y a d'autres façons de déclarer des variables. Consultez le chapitre Variables: Inserting and Declaring dans EcoStruxure Machine Expert - User Guide pour plus d'informations.

Connexion d'objets dans le code graphique

Pour tracer des lignes entre les paramètres formels des blocs et les objets, activez le mode de connexion en cliquant sur l'icône Connect dans la barre d'outils de l'éditeur.

Si vous cliquez sur l'icône Mark dans la barre d'outils, l'éditeur passe en mode marquage, qui permet de sélectionner et de déplacer des objets.

Déclaration d'une variable liée à la sécurité pour un signal d'équipement

Le projet de sécurité doit contenir des modules de sécurité TM5/TM7 non utilisés. "Non utilisé" signifie qu'aucun des signaux (répertoriés dans le noeud d'équipements dans la fenêtre des Equipements de Machine Expert - Safety) n'est utilisé dans le projet de sécurité. Au moins un signal de chaque module doit être attribué à une variable globale de sécurité dans Machine Expert - Safety. Sinon, le compilateur signale des erreurs.

De même, pour les signaux d'échange SLC que vous avez définis dans Logic Builder (voir la section Configuration des échanges de données pour l'automate de sécurité).

NOTE : La déclaration d'une variable de sécurité et son attribution à un signal d'équipement sans l'utiliser dans le code est utile durant le développement du projet car ensuite cela permet la compilation du projet de sécurité. Dans une application pratique, il est important de vérifier que les variables appropriées sont bien lues ou écrites dans le programme d'application lié à la sécurité.

La procédure suivante s'applique à chaque type de signal fourni dans la fenêtre des Machine Expert - Safety Equipements :

Étape

Action

1

Dans Machine Expert - Safety, ouvrez la feuille de travail des variables globales en cliquant sur l'icône Global decl. dans la barre d'outils.

2

Cliquez avec le bouton droit dans la grille et sélectionnez New Variable dans le menu contextuel.

Résultat : une nouvelle variable avec un nom par défaut (que vous pouvez modifier) est créée.

3

Dans la fenêtre des Equipements, ouvrez l'arborescence des équipements à gauche. Développez le noeud de l'équipement associé au terminal que vous souhaitez utiliser.

4

Faites glisser le signal de l'équipement à connecter à la feuille de travail des variables globales et déposez-le dans la déclaration souhaitée.

Résultat :

  • Le nom de la voie du signal de l'équipement connecté (Channel Name) est visible dans la colonne Terminal de la déclaration globale dans la feuille de travail des variables.

  • Le type de données de la variable globale a été adapté au type de données du signal de l'équipement attribué.

  • Dans la fenêtre des Equipements, le nom de la variable connectée s'affiche pour ce signal d'équipement dans la colonne Variable.

NOTE : Dans cette procédure, vous pouvez également remplacer les attributions existantes entre les variables globales et les signaux d'équipement. Respectez les messages relatifs aux risques dans le chapitre Connecting/Disconnecting Process Data Items and Global I/O Variables dans le document EcoStruxure Machine Expert - Safety - User Guide.

Pour insérer une variable déclarée dans le code, utilisez la boîte de dialogue Variable, accessible en cliquant sur l'icône Variable dans la barre d'outils de l'éditeur. Pour plus d'informations, consultez le chapitre Variables: Inserting and Declaring dans EcoStruxure Machine Expert - Safety - User Guide.

Compilation d'un projet de sécurité

Après avoir réalisé le développement du projet de sécurité, vous devez le compiler. (si une POU est identifiée par un astérisque (*) dans l'arborescence du projet, cela indique qu'il n'a pas été compilé après la modification de variables ou du code. Après une compilation réussie, l'astérisque disparaît.)

Procédure dans Machine Expert - Safety :

Étape

Action

1

Appuyez sur F9 ou cliquez sur l'icône Compile dans la barre d'outils.

2

Corrigez les erreurs détectées par le compilateur, affichées dans la fenêtre des messages.

Pour accéder à l'emplacement d'une erreur suspectée, double-cliquez sur le message d'erreur.

3

Une fois le projet compilé sans erreur, transférez le projet dans SLC. Consultez le chapitre Téléchargement de l'application de sécurité.