E03.65.036.G
Normes Biens d'Equipement
AVANT-PROPOS
A la date de publication du présent document, il n’existe pas de norme internationale, européenne ou française
traitant de ce sujet.
HISTORIQUE
INTERVENANTS
Les personnes suivantes ont participé à la rédaction et/ou à la vérification de cette norme :
DTI/DITV/ISP/IMAI/AUT/BOME Philippe FORET
DTI/DITV/ISP/IMAI/AUT/BOMG Bernard CHATEAU JAUNE
DTI/DITV/ISP/IMAI/AUT/EMFE Fabien ATTAFI
DTI/DITV/ISP/IMAI/AUT/FERV Alain ETCHEVERRY
DTI/DITV/ISP/IMAI/AUT/PEMO Eric BOEUF, François WIATROWSKI
DTI/DITV/ISP/IMAI/AUT/ATA/VSA Gérard GREMAUD
DTI/DITV/RHN/NCF Sylvain BIGOT
SOMMAIRE
1. OBJET ET DOMAINE D’APPLICATION 4
2. DOCUMENTS DE REFERENCE 5
2.1. NORMES 5
2.1.1. Normes PSA 5
2.1.2. Normes Externes 5
2.2. REGLEMENTATIONS 5
2.3. AUTRES DOCUMENTS 5
2.4. EXPRESSION SUR DOCUMENTS 5
3. TERMINOLOGIE ET DEFINITION 5
3.1. DEFINITIONS 5
3.2. SIGLES 5
4. REGLES SYSTEME 6
4.1. DEBORDEMENT DES CAPACITES DE CALCUL 6
4.2. REPRISE APRES COUPURE ALIMENTATION 6
5. REGLES FONCTIONNELLES 7
5.1. DECOUPAGE FONCTIONNEL 7
5.1.1. Traitement de la sécurité 7
5.1.2. Traitement de la mise en énergie 9
5.2. MARCHES D'EXPLOITATION 10
5.2.1. Aide a la remise en production 10
5.2.2. Les commandes manuelles 10
5.3. INFORMATIONS D'EXPLOITATION 11
5.4. TRAITEMENT DU DIAGNOSTIC 11
5.4.1. surveillance des événements 11
5.4.2. Classification des événements 12
5.4.3. Mémorisation des événements 12
5.4.4. Filtrage des événements 13
5.4.5. Réaction de l'automate sur le process 13
5.4.6. Signalisation des événements 14
5.5. SURVEILLANCE DES CAPTEURS ET ACTIONNEURS 14
5.6. IMPACT DU PROGRAMME SUR LA QUALITE PRODUIT 14
6. REGLES DE CONCEPTION 16
6.1. LA NOTION DE TACHES 16
6.1.1. Temps de réaction d'un système automatisé 17
6.2. ORGANISATION DE LA TACHE PRINCIPALE 18
6.3. LA CONCEPTION MODULAIRE 20
6.4. LA MAINTENABILITE 21
6.5. CHOIX DES LANGAGES 23
7. REGLES DE REALISATION 24
7.1. LE GRAFCET (SFC) 24
7.1.1. Structure générale 24
7.1.2. Transitions 24
7.1.3. Etape initiale 24
7.1.4. Etape de fin 24
7.1.5. Utilisation des bits d'étape 25
7.1.6. Parallélisme structural 25
7.1.7. Parallélisme interprété 27
7.1.8. Saut de séquence 27
7.1.9. Fonctions de contrôle 28
7.1.10. Synchronisation des graphes 29
7.2. LANGAGE A CONTACTS (LD) 29
7.2.1. Structure générale 29
7.2.2. Formes types des équations de surveillance des événements 32
7.2.3. Programmation d’un processus cyclé en langage à contacts 34
7.2.4. Equations types de commande des sorties actionneurs 36
7.2.5. Autres équations type 38
7.3. LE LANGAGE TEXTUEL (ST) 38
7.4. LE REPERAGE DES OBJETS PROGRAMMES 40
Les textes bleus en italique constituent des informations destinées à accompagner les règles.
1. Les textes noirs précédés d'un numéro constituent les règles. Chacune d'elle doit être appliquée et
autocontrôlée par le fournisseur intégrateur.
Un support de formation est associé à ce document.
2. Le contrôle de la bonne application de ce document est à réaliser en utilisant le Guide GE03 047G et l'outil de
contrôle Qualimètre (outil logiciel de contrôle automatique des programmes automates tous constructeurs).
Les termes utilisés dans ce document sont définis dans le référentiel technique transversal : E03.65.015.G.
3. Certaines règles, dépendantes du type de matériel ou des différents ateliers logiciels constructeurs utilisés, sont
énoncées dans des référentiels (appelés annexes constructeurs dans le reste du document) et doivent être
respectées :
AUT-STD-524 : automates SCHNEIDER,
AUT-STD-525 : automates SIEMENS.
2.DOCUMENTS DE REFERENCE
2.1.NORMES
2.1.1.NORMES PSA
E03.65.015.G Machines et installations industrielles – Automatisme – Référentiel technique transversal.
E03.65.038.G Machines et installations industrielles – Automatisme – Règles de rédaction de l'analyse
fonctionnelle, de l'analyse organique et du manuel opérateur.
GE03-047G Guide de suivi et de réception des logiciels d'automates programmables.
2.1.2.NORMES EXTERNES
CEI 61131-1 Automates programmables - Partie 1 : informations générales.
CEI 61131-2 Automates programmables - Partie 2 : spécifications et essais des équipements.
CEI 61131-3 Automates programmables - Partie 3 : langages de programmation.
2.2.REGLEMENTATIONS
Sans objet
2.3.AUTRES DOCUMENTS
AUT-STD-524 Annexe à la norme E03.65.036.G pour automates SCHNEIDER.
AUT-STD-525 Annexe à la norme E03.65.036.G pour automates SIEMENS.
3.TERMINOLOGIE ET DEFINITION
Un dictionnaire (glossaire) des principaux termes et leurs définitions utilisés au sein de la Direction Technique et
Industrielle, dans le domaine des automatismes, est fournie dans la norme E03.65.015.G.
3.1.DEFINITIONS
Sans objet
3.2.SIGLES
Sans objet
4.REGLES SYSTEME
4.1.DEBORDEMENT DES CAPACITES DE CALCUL
4. La modification de la valeur d'une donnée utilisée dans le programme automate, à partir des entrées (réseaux,
automate) ou du terminal opérateur, ne doit provoquer aucune anomalie ou incident tel que débordement
arithmétique, dépassement chaînes de caractères, dépassement chien de garde, …
• Cette valeur doit impérativement être filtrée par rapport aux bornes admises avant utilisation,
• Le paramétrage des valeurs de bornes doit être réalisé en priorité dans l'application du terminal, si celui-ci
le permet,
• L'opérateur doit être averti que sa saisie n'a pas été prise en compte lorsque celle-ci est hors bornes.
Exemple : affichages séparés de la consigne et de la valeur prise en compte.
5. Les traitements de type calculs doivent tenir compte des capacités de l'automate afin de maîtriser les
débordements (bornes de calcul, division par 0, …).
6. Toute anomalie ou incident provoqué par un débordement de capacité doit être signalé par un message
(système ou applicatif) acquittable par l'opérateur.
Voir aussi l'annexe par constructeur.
5.REGLES FONCTIONNELLES
Ces règles de l'art s'appliquent en complément des prescriptions du cahier des charges et de l'analyse
fonctionnelle détaillée.
5.1.DECOUPAGE FONCTIONNEL
5.1.1.TRAITEMENT DE LA SECURITE
5.1.1.1.Autocontrôle à la mise en service
11. Le bon fonctionnement de tous les relais et contacteurs utilisés dans les parties du système de commande
relatives à la sécurité doit être testé à la mise en service de la machine.
Cet autocontrôle peut être fait par programme au moyen d'une sortie automate pilotant un relais de test des
sécurités. Ce relais permet de couper l'alimentation des relais à contrôler. La retombée du relais de test doit
être contrôlée après le démarrage.
12. La temporisation de test des sécurités au démarrage ne dépasse en aucun cas une seconde.
13. Le périmètre du relais de test des sécurités doit correspondre à celui de l'organe de mise en service.
Exemple : pour un automate gérant deux îlots dont la mise en service est indépendante, un relais de test par
îlot est utilisé.
14. Même si l'autocontrôle est commun à plusieurs composants, le diagnostic de chaque composant doit être
réalisé individuellement, conformément au chapitre diagnostic.
Exemple d'équation de test à la mise en service : l'appui sur le bouton de mise en service active une sortie
automate qui coupe l'alimentation de tous les relais à tester.
Front montant
Fin du test organe de mise
démarrage en service Tempo test
P sécurités au
démarrage
Relais test
sécurités au
démarrage
Fin du test
démarrage
Relais test
sécurités au Fin du test Test démarrage
démarrage démarrage OK
Dans cet exemple, dès que tous les relais sont vus au repos, le test est considéré comme bon.
Si, au bout d'un temps enveloppe, un ou plusieurs relais restent actifs :
- le test est arrêté,
- un défaut est signalé,
- la mise en service est impossible,
- il faut un nouvel appui sur le bouton de mise en service pour réaliser un nouveau test.
5.1.1.2.Autocontrôle à chaque sollicitation
15. Le bon fonctionnement de chaque relais et contacteur utilisé dans les parties du système de commande
relatives à la sécurité doit être testé à chaque sollicitation.
Cet autocontrôle peut être fait par programme.
16. Le défaut détecté ne peut être acquitté que si le relais est vu au repos.
17. La temporisation contrôlant le fonctionnement du relais ne dépasse en aucun cas une seconde.
Défaut
Bouton arrêt Relais arrêt relais arrêt
d'urgence d'urgence d'urgence
Tempo
contrôle
relais
Relais test
sécurités au Bouton arrêt Relais arrêt
démarrage d'urgence d'urgence
Relais arrêt
d'urgence
19. Pour chaque groupe de sécurité défini dans l'analyse fonctionnelle, un bit "Groupe de sécurité OK" valide les
traitements dépendant de ce groupe de sécurité.
Exemples de gestion du bit "groupe de sécurité OK" :
Groupes de Retour relais Retour Groupe de
sécurités pères OK Validation GS validation GS relais GS sécurité OK
Groupe d'énergie OK
26. Pour chaque groupe d'énergie défini dans l'analyse fonctionnelle, un bit "Groupe d'énergie OK" valide les
traitements dépendants de ce groupe d'énergie. Il tient compte de l'état du relais de validation du groupe
(KAVL, KAVP...).
Exemple de solution :
5.2.MARCHES D'EXPLOITATION
27. Un bit programmé signale chaque état des marches d'exploitation prévues dans l'analyse fonctionnelle.
Exemples : AIAUTO2X : arrêt immédiat de la marche auto du GMM2
MDAUTO1X : mode auto GMM1 sélectionné
MRNORM23 : marche normale entité 23
MRRODA34 : marche rodage entité 34
MRAUTO2X : marche automatique GMM 2
• le temps de réaction système d'une touche du terminal opérateur. Dans tous les cas, le temps de réaction
(temps qui s'écoule entre l'appui sur une touche et la réaction attendue) d'une touche ou d'un bouton
poussoir doit être inférieur à la seconde,
• le temps d'affichage des pages du terminal opérateur.
31. Le programme doit fournir les informations suivantes aux composants (terminal opérateur, bouton poussoir
lumineux, …) permettant la commande manuelle :
• nom du mouvement,
• autorisation mouvement sens repos (sécurités mécaniques et opérateur présentes et pas de défaut
sécurités),
• autorisation mouvement sens travail (sécurités mécaniques et opérateur présentes et pas de défaut
sécurités),
• mouvement attendu sens repos pour reprise auto (aide à la remise en cycle),
• mouvement attendu sens travail pour reprise auto (aide à la remise en cycle),
• événement sur l'actionneur (défaut, alarme, alerte, arrêt, …).
• position atteinte sans événement sens repos (état repos),
• position atteinte sans événement sens travail (état travail),
• commande en cours sens repos (commande repos présente et position non atteinte),
• commande en cours sens travail (commande travail présente et position non atteinte),
• présence d'une demande venant du processus sens repos (manuel guidé),
• présence d'une demande venant du processus sens travail (manuel guidé),
5.3.INFORMATIONS D'EXPLOITATION
32. Afin de garantir la bonne transmission des données échangées avec un équipement tiers (pouvant être
furtives), celles-ci doivent être en priorité de type "demande / compte rendu" (échanges "carrés"). A défaut,
elles doivent être considérées comme des entrées / sorties pour lesquelles les règles du paragraphe "la notion
de tâche" (ci-après) sont appliquées : leur durée doit être supérieure à 2 temps de réaction automate.
Par exemple, l'API envoie une demande de remise à zéro à l'équipement tiers, il reçoit un compte rendu signalant
la remise à zéro effective.
5.4.TRAITEMENT DU DIAGNOSTIC
33. L'ensemble des événements à signaler, issus du diagnostic de la partie opérative (capteurs, actionneurs,
produits, pièces, …) et du diagnostic du système (batteries, piles, réseau d'entrées sorties déportées, cartes
spécialisées, temps de cycle automate, communication, …), doit être traité selon le phasage suivant :
• surveillance de l'événement,
• classification de l'événement,
• mémorisation (si besoin) de l'événement,
• filtrage de l'événement,
• réaction de l'automate programmable pour les événements de type DI, DD (coupure des sorties, inter
verrouillage, …),
• signalisation de l'événement (message de diagnostic, verrine, …).
• aide à l'opérateur pour la remise en production de l'installation (message d'aide à la conduite,…).
34. Si l'affichage des événements système n'est pas traité par le système, il doit être traité selon le phasage ci-
dessus.
35. Si les événements système sont traités par le système et si le paramétrage de la réaction de l’automate est
accessible au programmeur, ces événements et les réactions associées doivent être pris en compte et prévus
dès le début de la conception du programme.
Bouton
Alarme d'acquittement
64. Lorsque des plots mémoires embarqués ou des liaisons informatiques sont mis en œuvre, les buffers de
réception, d'émission et de travail font partie des mémoires d'état liées à la pièce et doivent être remises à zéro
lorsque la pièce est évacuée.
65. les conditions d'effacement de ces données doivent être définies pour toutes les marches de l'installation
(normale, dégradées, manuelle…) et pour toutes les procédures particulières et procédures de reprise, y
compris les cas de reprise après coupure secteur, reprise à froid, microcoupure.
66. Une nouvelle pièce ne peut être introduite que si toutes les données de la pièce précédente sont remises à
zéro.
67. Il faut prévoir la possibilité de modifier les mémoires d'état sur le terminal opérateur, pour recaler la logique
programmée par rapport à l'état physique de l'installation et du produit (attention à la resynchronisation des
échanges avec les équipements tiers) Pour des cas particuliers (opération faite obligatoirement en
automatique, process classé sécurité…), cette opération peut être protégée par mot de passe.
6.REGLES DE CONCEPTION
6.1.LA NOTION DE TACHES
Les règles énoncées dans ce chapitre ont un impact direct sur le dimensionnement des automatismes et
notamment des unités centrales des automates.
Il existe trois types de tâches :
- les tâches rapides, qui sont déclenchées de façon périodique ou sur événement,
- la tâche principale, qui est soit périodique (période d'appel fixe pour une bonne répétitivité des arrêts, par
exemple), soit cyclique (relancée dès qu'elle est terminée),
- les tâches lentes, qui sont toujours périodiques.
68. La phase de conception doit permettre d'affecter les différents traitements à programmer au sein des tâches
les plus appropriées en fonction de leurs besoins en temps de détection ou en temps de réaction (voir le calcul
du temps de réaction au sous chapitre ci-après), en respectant les règles suivantes :
• la période de la tâche où est programmée l'acquisition d'un événement doit être au minimum deux fois plus
faible que la durée de l'événement considéré (théorème de Shannon),
Il convient donc de s'assurer de la durée précise des événements de courte durée (détecteur à la volée sur
came courte, …) pour le choix du type de tâche d'acquisition de cet événement.
• le temps de réaction du système automatisé doit permettre d'obtenir la précision nécessaire dans les
arrêts, les positionnements, les lectures étiquettes, …,
• la dispersion due aux variations du temps de réaction (différence entre le temps le plus court et le temps le
plus long) doit être compatible avec la répétitivité nécessaire au processus (voir l'exemple de calcul de
dispersion ci-après),
• le dimensionnement de l'automatisme doit permettre son évolution en terme de temps de réaction (voir
chapitre maintenabilité),
• la tâche rapide ne doit être utilisée que pour l'acquisition d'événements trop rapides pour la tâche
principale ou pour programmer une réaction «réflexe» (arrêt positionné, etc.). On veille à réduire au
maximum le nombre de traitements réalisés en tâche rapide, ceci afin de ne pas augmenter exagérément
les temps de scrutation des tâches moins prioritaires,
• la tâche principale est utilisée de façon privilégiée (modes de marche, sécurités, commande de process,
etc.),
• la tâche lente peut être utilisée pour réaliser des traitements sans aucune priorité et lorsqu’il est nécessaire
d’alléger la tâche principale,
• la période d’appel de la tâche lente est toujours supérieure à deux fois la période de la tâche principale,
69. Lorsqu'un bus de terrain est utilisé, la durée de la tâche principale doit permettre de garantir le
rafraîchissement de toutes les entrées/sorties du bus en un seul tour de cycle automate.
Capteur Actionneur
Temps de réaction du système automatisé
Exemple de calcul de temps de réaction et de dispersion d'arrêt d'un mobile induite par les variations du
temps de réaction (pour simplifier le calcul, les temps de filtrage des cartes, de l'ordre de la milliseconde, sont
négligés) :
Vitesse du mobile : V = 60 m/mn = 1 mm/ms
Temps de cycle automate : Tca = 20 ms
Temps de cycle réseau : Tcr = 20 ms
Un temps de réaction moyen voisin de 50 ms est signe d'un automatisme bien dimensionné.
70. En aucun cas le temps de réaction moyen ne devra dépasser 70 ms sans accord ou spécifications
particulières du pilote AUT.
71. Afin d'être le plus réactif et dans tous les cas où c'est possible, les données sont écrites avant d'être lues.
EPO n
Traitements Entité 2
d'entrée Entité n
GMM 2
GMM n
Ilot 2
Ilot n
API 1
Ilot 1
GMM1
Entité 1
EPO 1
EPO n
Gestion Entité 2
du processus
Entité n
GMM 2
GMM n
Ilot 2
Ilot n
API
Ilot 1
GMM 1 Entité 1
EPO 1
EPO n
Entité 2
Traitements
de sortie Entité n
GMM 2
GMM n
Ilot 2
Ilot n
• la limitation du couplage : afin de faciliter l’intégration et la suppression d’un module de programme, il est
nécessaire de le concevoir de manière à limiter ses échanges avec le reste du programme.
Le regroupement de l’ensemble des données utilisées pour réaliser la fonctionnalité à l’intérieur du
module, permet de limiter le couplage,
• la cohérence : les traitements effectués dans un module doivent tous contribuer à la réalisation d’une
même fonctionnalité.
• la limite de décomposition : il faut poursuivre la décomposition des fonctions en sous fonctions, jusqu’à
obtenir des modules réutilisables dans le plus grand nombre d’applications.
Une trop grande décomposition, augmente les temps d’intégration, une faible décomposition diminue les
possibilités de réutilisation.
Mise en œuvre :
La réutilisation d’un module peut être réalisée de deux façons :
- par duplication du code, les données sont réaffectées à chaque duplication.
Cette solution consomme beaucoup de place mémoire et peu de temps de cycle.
- par utilisation d’un module instanciable permettant l’instanciation multiple. Le code programme du module
instanciable est contenu une seule fois dans l'automate et les données sont dupliquées autant de fois que
d'instances déclarées.
Cette solution consomme plus de temps de cycle que par duplication de code (passage des paramètres
d'entrée et restitution des données de sortie), mais moins de place mémoire.
Un module instanciable possède des données locales, propres à chaque instance (chaque appel).
Il utilise les données d’entrées et les données locales pour calculer ses données de sorties.
Le module instanciable contribue à améliorer la maintenabilité et la fiabilité du programme :
- en localisant les données manipulées par une fonction,
- en obligeant le concepteur à un effort de standardisation,
- en facilitant les modifications, car le programme «source» n’est écrit qu’une fois,
- en présentant uniquement les paramètres d’entrées et de sorties de la boîte à chaque appel (permet un
diagnostic rapide),
- en étant programmé de façon lisible et documentée, en cohérence avec le reste du programme (pas de
module verrouillé en lecture),
- en capitalisant les retours d'expérience et les mises au point sur plusieurs applications.
78. Les données locales d'un module instanciable ne doivent être ni lues ni écrites en dehors de ce module.
Seules les données de sorties, d'entrées/sorties les données publiques peuvent l'être.
79. Dans le cas d’une conception modulaire par duplication de code (sans utilisation du module instanciable), la
zone de données utilisées est partitionnée :
• à chaque copie de programme correspond une partition.
• chaque zone de programme peut lire toutes les partitions et écrire seulement dans celle qui lui est
affectée.
80. Un module instanciable ne doit pas contenir à la fois les traitements d'entrée, la gestion du processus et les
traitements de sortie. Ces trois parties doivent faire l'objet d'une programmation distincte.
Lorsqu'un module instanciable prend en compte les entrées automate, calcule les états (stable, OK, défaut, …)
et commande un actionneur, les problèmes suivants peuvent se poser :
• les informations d'entrée module peuvent être prises en compte avec un tour de cycle de retard si elles
sont calculées en aval dans le programme,
• la commande de marche peut être passée avec un temps de cycle de retard si l'état généré par l'instance
du bloc fonctionnel est traité par la gestion du processus écrite en aval dans le programme,
• la commande de marche peut être passée dans un tour de cycle automate puis infirmée au tour de cycle
automate suivant pour cause de défaut ou de perte de condition de sécurité venant d'un élément de partie
opérative traité en aval dans le programme.
81. La conception modulaire ne doit dans aucun cas être réalisée au détriment du comportement dynamique et
donc de la fiabilité de l’automate (réactivité et déterminisme).
82. Les modules instanciables intégrant du diagnostic doivent posséder une entrée de filtrage des événements.
Exemple : Mddfhs (mode défauts inhibés), Prten (Présence tension d'entrées)
83. Les modules programme (portillons, mouvement, communication, …) cités au cahier des charges doivent être
utilisés.
84. Les "boites noires" (modules instanciables verrouillés en lecture) fournies par l'intégrateur sont interdites sauf
dérogation prévue au cahier des charges.
85. La description fonctionnelle des modules instanciables est renseignée sous forme de commentaire en tête du
module ou dans une fiche descriptive si elle existe.
86. Au moins une instance de chaque module instanciable est appelée.
87. Les niveaux d'imbrication des modules instanciables ne doivent pas dépasser 3.
6.4.LA MAINTENABILITE
Un logiciel maintenable est un logiciel dont la lisibilité et la documentation intrinsèque permettent à tout
automaticien d’en comprendre la structure et le fonctionnement à un degré tel qu’il soit capable de lui apporter
toutes modifications liées à la vie de l’installation.
88. L'application des règles de maintenabilité ne doit pas dégrader la fiabilité.
89. Tout programme est structuré et commenté :
95. Toutes les données d'entrée, d'entrée/sortie et internes sont lues au moins une fois, hormis les données
écrites pour un équipement tiers ou pour un terminal opérateur.
96. Toutes les données de sortie, d'entrée/sortie et internes doivent être écrites au moins une fois.
97. L'écriture d'une donnée binaire est le résultat d’une équation unique ou de deux équations si set/reset.
98. L'écriture d'une même valeur dans une donnée numérique est le résultat d’une équation unique.
99. Lorsque des écritures multiples d’une même donnée numérique sont indispensables, elles sont regroupées
dans une même zone de programme ou à défaut dans une même tâche.
100. Les entrées physiques ne sont pas écrites par programme.
101. L’état logique 1 des événements signale toujours leur présence. La mise à 1 de ces bits est prioritaire sur leur
mise à 0 (acquittement possible uniquement si la cause a disparu).
102. Le symbole et le commentaire d'une donnée décrivent son état logique 1. Dans le cas ou le commentaire de
l'état logique 1 est incompréhensible (logique inverse), c'est l'état logique 0 qui est décrit avec la mention "0 ="
incluse.
Exemple :
SQ3SE_23 0 = surcourse section élévatrice 23 atteind
103. Les équations des voyants contiennent un essai lampes.
104. Une zone minimum de 10 données de type bit, mot, temporisateur, est réservée pour utilisation provisoire en
mise au point.
105. Les données provisoires utilisées pendant la période de mise en service de l'installation sont supprimées à la
fin de la phase de mise au point ("shunts", inhibitions, …).
106. Le code provisoirement mis en commentaire est supprimé à la fin de la phase de mise au point.
107. Seuls les équations, blocs, sections, modules, sous programmes… utilisés par l'application doivent demeurer
dans le programme. Toute partie de programme non scrutée doit être supprimée.
108. Les données lues et non écrites ou écrites et non lues sont supprimées hormis les données d'échange avec un
équipement tiers ou un terminal opérateur.
109. Une application doit pouvoir évoluer après son développement et sa mise au point tout en garantissant le
temps de réaction du système automatisé. Pour cela, une réserve de 15 % de chacune des capacités
suivantes doit rester disponible :
• les données internes de chaque type,
• les mémoires image des entrées sorties en rack ou déportées,
• chaque espace mémoire de données et de programmes (y compris la mémoire de chargement des
programmes),
• les bus de terrains (temps de cycle, nombre d'esclaves,…),
• le temps de réaction.
110. Les données de réserve ne sont ni lues ni écrites.
111. Les données de format différent affectées au même plan mémoire (par exemple un plan mémoire commun aux
trois types de données Mots/Octets/Bits de mots) ne se chevauchent pas.
112. Une donnée binaire n'est jamais affectée sans condition sauf le bit toujours à 1 et bit toujours à 0.
113. La recopie des entrées automate dans des bits internes et des bits internes dans les sorties automate est
interdite.
Cette recopie est inutile car le programme travaille sur l'image des entrées automate pendant tout son tour
cycle. Un changement d'état d'une entrée en cours de cycle ne sera prise en compte qu'au tour ce cycle
suivant. Pour des questions de regroupement, la recopie de bits d'entrée dans des mots internes est autorisée.
7.REGLES DE REALISATION
7.1.LE GRAFCET (SFC)
7.1.1.STRUCTURE GENERALE
118. Le découpage du grafcet doit correspondre au découpage fonctionnel de l'installation.
119. Si un élément du découpage fonctionnel engendre un graphe dont la taille est supérieure à quatre branches et
vingt étapes, le graphe doit être découpé plus finement.
120. Toute fonction séquentielle indépendante doit être rendue autonome par un grafcet qui lui est propre. Elle n'est
pas représentée par une branche parallèle dans un autre grafcet.
121. les macros étapes doivent être utilisées en priorité par rapport aux graphes, notamment pour la gestion du
processus des entités (une macroétape par entité).
122. Les imbrications de macro étapes sont limitées à deux niveaux.
123. Les graphes comportant moins de trois étapes sont interdits.
124. Les étapes, macro étapes et transitions doivent être commentées (minimum 10 et maximum 150 caractères).
125. Aucune équation ne doit être écrite dans une étape ou une macro étape de grafcet.
7.1.2.TRANSITIONS
126. Les équations respectent les règles du chapitre "langage à contacts".
127. Si une équation dépasse la taille maximale autorisée, elle est décomposée et écrite dans le traitement
combinatoire d'entrée, en utilisant des bits de regroupement.
128. Lorsque les étapes demandent des mouvements, les transitions correspondent aux états contrôlés et sans
défaut de ces mouvements.
7.1.3.ETAPE INITIALE
129. Les étapes initiales des grafcet doivent correspondre à des états physiques stables (pas d’origine en position
intermédiaire par exemple).
130. Chaque graphe possède une et une seule étape initiale correspondant à l’état d’origine mécanique.
131. L’état origine doit toujours correspondre à la première étape du graphe (état stable machine au repos).
132. La première transition correspond toujours aux conditions de départ depuis cet état stable d’origine, et au
contrôle de retombée des mémoires d'état.
Conditions
de départ et mémoires
d'état retombées
7.1.4.ETAPE DE FIN
133. Chaque graphe se termine par une étape de fin ou étape d’attente. Cette étape correspond à la même
situation mécanique que l’étape origine, avec la plus-value «opération effectuée».
134. La transition qui fait passer de cette étape à l’étape origine tient compte des conditions d’origine et d’évolution
vers un nouveau cycle (retombée des mémoires d'état).
Conditions
vers l’étape origine
de redémarrage et retombée
des mémoires d'état
7.1.6.PARALLELISME STRUCTURAL
137. La représentation suivante d’un parallélisme dissimulé est interdite, elle occulte la notion de synthèse globale
d’un grafcet.
1 1
5 5
138. Toute action maintenue sur plusieurs étapes se fait en parallélisme structural (ou en graphes séparés selon le
nombre d’actions).
139. Deux actions indépendantes validées simultanément doivent être contrôlées et activées séparément.
t1 t2
2 Validation 5 Validation
action 1 action 2
1 Validation action 1 Validation action 2
t1 t2
t1 et t2
3 7
=1
8
140. Les étapes d’attentes doivent être utilisées systématiquement lors de parallélisme structural.
t 3 7
=1
La représentation de gauche ne permet pas d’identifier l’action bloquante et les validations d'actions sont
maintenues tant que la transition commune n'est pas vraie.
La représentation de droite doit être adoptée. L’état de blocage est matérialisé par la (les) branches(s) n’étant pas
en attente. Chaque validation d'action retombe dès que sa condition de transition est vraie.
7.1.7.PARALLELISME INTERPRETE
141. Il est interdit d’utiliser les possibilités du parallélisme interprété offertes par le grafcet.
Dans l’exemple ci-dessous l’évolution à partir de l’étape 5 peut se faire dans chacune des trois branches vers les
étapes 6, 7 et 8 si les données a, b, c sont dans l'état logique 1 simultanément.
Les conditions des transitions doivent être exclusives : ne seule branche valide à la fois.
6 A 7 B 8 C
7.1.8.SAUT DE SEQUENCE
142. Il est interdit de sortir d’une structure de branches parallèles si les étapes de fin de chaque branche ne sont
pas toutes atteintes.
143. Les branches parallèles doivent être refermées avant une nouvelle divergence.
Une divergence à l'intérieur d'une branche parallèle telle que la montre la vue suivante est interdite car elle
peut générer deux pointeurs dans la même branche.
7.1.9.FONCTIONS DE CONTROLE
144. Les fonctions de contrôle du grafcet sont réalisées dans le traitement combinatoire d'entrée de chacune des
entités (voir paragraphe ‘traitement d'entrée’).
145. Les fonctions autorisées sont :
• Figeage : cette fonction réalise le maintien du grafcet dans une situation stable,
• Forçage : cette fonction réalise le positionnement du grafcet dans une situation donnée,
• Désactivation : c’est une mise à zéro de toutes les étapes actives. Cet ordre est suivi d’un ordre de
forçage,
• Initialisation : cette fonction consiste à mettre à zéro toutes les étapes actives et à activer la ou les étapes
initiales.
146. Elles sont utilisées exclusivement :
• le regroupement des données d'échanges de même nature avec plusieurs destinataires, dans une même
équation,
Exemple : envoi d'une donnée vers deux terminaux opérateur
• le regroupement des affectations de données de nature différente ayant la même signification (conditions
identiques),
Exemple : traitement d'une donnée locale et d'une donnée de sortie d'un module instanciable.
Condition 1 Condition 2 Condition 3 Condition 4 Donnée de sortie
151. La représentation d’une équation doit tenir dans un écran console en mode "affichage par défaut". Il convient
donc de limiter le nombre de branches parallèles ainsi que le nombre de contacts en série.
Cette contrainte permet d’avoir une vue dynamique globale de l’équation sans aucune manipulation clavier.
A Saut à suite
JUMP
B C Bit1
Suite
D Bit2
A B C Bit1
D Bit2
155. L'affectation multiple d'un même bit réalisée pour des raisons de nombre d'instructions est interdite. Utiliser
des bits de regroupement
Demande
Evénement
acquittement
Conditions
d'acquittement
conditions d'apparition
Filtrage Evénement
Relais 6
Relais 2 Relais 6
Relais 7 Relais 1
Relais 4
Relais 3
Relais 2 Relais 6
Relais 5
Relais 7
Demande
Défaut relais 7 acquittement
Chronogramme fonctionnel :
Condition
Conditiondede Mouvement
Mouvement travail
travail
début
débutdedecycle
cycle Mouvement
Mouvement repos
repos
Actionneur A
Actionneur B
Actionneur C
Travail effectué
Condition
Conditiondede
travail Condition de fin
effectué de cycle
travail effectué
Mode de Conditions
Demande marche manu
opérateur manu éventuelles
Autant de branches
parallèles que de
marches
Autre
Autre mode de Conditions
demande marche éventuelles
* Cycle autorisé pour une installation cyclée, par exemple "présence étiquette et présence pièce,
Fonctionnement autorisé pour une installation non cyclée, par exemple "température four atteinte".
168. En cas de besoin de l'information "Présence demande mouvement" ou action, notamment pour le diagnostic,
l'équation de sortie ci-dessus peut être remplacée par les deux équations suivantes :
Mode de Conditions
Demande marche auto Présence demande
processus auto éventuelles
Mode de Conditions
Demande marche manu
opérateur manu éventuelles
Autant de branches
parallèles que de
marches
Autre
Autre mode de Conditions
demande marche éventuelles
169. En fonction du comportement souhaité de l'actionneur, les formes standard des équations de sortie sont les
suivantes :
• commande si demande :
Autorisation Commande
Présence demande Commande
mouvement inverse
Autorisation
Commande
mouvement inverse
170. Les équations d'interverrouillage programmé des contacteurs inverseurs doivent intégrer l'information "retour
contacteur".
Il est possible, par programme, de passer une commande et sa commande inverse sur deux tours de cycle
automate consécutifs, c'est-à-dire en quelques dizaines de millisecondes, donc, pendant le temps de
basculement du contacteur qui peut être supérieur. L'utilisation de l'information retour contacteur permet de ne
passer une commande inverse que lorsque le contacteur est dans un état stable.
Commande
Commande
AV
AV
AR
Retour Commande Commande
contacteur AV
contacteur AR
contacteur AV AV AR
Retour
Retour
Contacteur Contacteur
AV AR
175. Il est interdit de forcer les données définissant une boucle, à l'intérieur celle-ci.
Cette règle améliore la lisibilité et la compréhension et donc l'évolutivité du programme.
176. Les tests de fin de boucle ne doivent pas être de type strictement =. Ils doivent être de type >, >=, <, <=.
Ceci permet d’intégrer des cas de débordement ou d’initialisation erronée, et procure ainsi une meilleure tolérance
aux fautes.
177. Les équations en texte structuré ne doivent pas dépasser les possibilités d'affichage d'un écran en mode
standard.
178. Les valeurs calculées ne dépendant pas d’un indice de boucle ne se font pas à l’intérieur de la boucle.
Ceci a des incidences évidentes sur le temps de cycle de l'automate
179. Utiliser les indentations (tabulations) afin de souligner et rendre plus lisible les différents paragraphes ou
niveaux de structure du programme.
Exemple :