Aller au contenu

Automatisme : norme 1131-3 et GRAFCET/Le langage SFC de la norme 1131-3

Leçons de niveau 14
Une page de Wikiversité, la communauté pédagogique libre.
Début de la boite de navigation du chapitre
Le langage SFC de la norme 1131-3
Icône de la faculté
Chapitre no 4
Leçon : Automatisme : norme 1131-3 et GRAFCET
Chap. préc. :Retour sur le graphe d'état – Langage LD de la norme 1131-3
Chap. suiv. :Transitions, Actions et temps
fin de la boite de navigation du chapitre
En raison de limitations techniques, la typographie souhaitable du titre, « Automatisme : norme 1131-3 et GRAFCET : Le langage SFC de la norme 1131-3
Automatisme : norme 1131-3 et GRAFCET/Le langage SFC de la norme 1131-3
 », n'a pu être restituée correctement ci-dessus.

Le Sequential function chart (SFC) est un langage graphique de programmation des Automates Programmable Industriel défini dans la norme CEI 61131-3. Nous arrivons avec ce chapitre au troisième langage graphique de la norme.

Ce langage est une interprétation assez libre et plus permissive du grafcet dont il est inspiré : le grafcet est dédié à la spécification, alors que SFC est plus appliqué à la programmation.

L'ensemble de ce chapitre concernera les deux langages, mais on utilisera, certainement de manière abusive, le terme grafcet mieux connu chez les francophones.

Nous présentons dans cette section tous les concepts importants relatifs aux grafcets. Cette présentation est concise et méritera certainement d'y revenir pour en assimiler toute l'essence. Il est important en particulier d'assimiler la différence entre une étape et un état.

Le problème important de l'obtention d'un grafcet à partir d'un cahier des charges n’est pas abordé dans ce cours.

Une étape est représentée par un carré. Cette représentation a volontairement été choisie comme telle pour ne pas être confondue avec la notion d'état. Elle peut avoir deux états :

  • état actif (une marque à l'intérieur du carré)
  • état inactif
Les étapes d'un grafcet

Remarquez dans cette figure la partie droite qui décrit ce qu'est une étape en général. Elle est forcément liée à un simple trait horizontal en entrée, en sortie ou aux deux.


Règle 1 : La situation initiale d'un grafcet caractérise le comportement de la partie commande vis-à-vis de la partie opérative et correspond aux étapes actives au début du fonctionnement de la partie commande.


Les transitions d'un grafcet (à droite le parallélisme structural)

Une transition est représentée par un trait horizontal. À chaque transition est associée une réceptivité.


Règle 2 : l'évolution de la situation d'un grafcet correspondant au franchissement d'une transition ne peut se faire :

  • que lorsque cette transition est validée
  • et que la réceptivité associée à cette transition est vraie.

Lorsque ces deux conditions sont réunies, la transition devient franchissable et elle est obligatoirement franchie.

Règle 3 : Le franchissement d'une transition provoque :

  • la désactivation de toutes les étapes immédiatement précédentes reliées à cette transition.
  • l'activation de toutes les étapes suivantes reliées à cette transition.

Un exemple sera plus parlant.

Comment les transitions sont franchies ?

Remarquez encore une fois sur la figure les doubles traits horizontaux qui décrivent le parallélisme.

Règle 4 : plusieurs transitions simultanément franchissables sont simultanément franchies

exemple : montrer que ces deux représentations sont équivalentes

Ces deux morceaux de grafcet sont-ils équivalents ?

Règle 5 : si au cours du fonctionnement de l'automatisme une même étape doit être simultanément activée et désactivée, elle reste active.

exemple :

Un grafcet très spécial

Règles de syntaxe

[modifier | modifier le wikicode]

Un grafcet est un graphe comportant des étapes et des transitions. Comme il s'agit d'un langage graphique de programmation les utilisateurs n'ont pas toujours conscience qu’il obéit quand même à une syntaxe. On trouve par exemple dans l’article wikipédia sur le grafcet :

  1. L'alternance étape-transition doit être respectée quel que soit le chemin du graphe parcouru.
  2. Deux étapes ne doivent jamais être reliées directement.
  3. Deux transitions ne doivent jamais être reliées directement.

Arrivé à ce point il serait assez normal d’être un peu perdu avec les règles de syntaxe. Nous allons donc les formuler autrement :

  • Si vous avez un simple trait horizontal vous pourrez y connecter plusieurs transitions mais une seule étape !
  • Si vous avez un double trait horizontal vous pourrez y connecter plusieurs étapes mais une seule transition !


Un exemple de grafcet

Les étapes d'un grafcet peuvent être associées à des actions comme pour les graphes d'états. Ce point sera détaillé plus tard, mais un exemple est donné.


À partir de maintenant, nous allons rencontrer un certain nombre de grafcet d'exemple. Nous n'avons pas encore abordé les problèmes d'obtentions des grafcets. Ainsi on vous demande de prendre les grafcets d'exemples comme ils viennent et juste de comprendre ce qu’ils font.

Équations de récurrences. Passage GRAFCET graphe d'états

[modifier | modifier le wikicode]

La différence entre un grafcet et un graphe d'états (présenté au chapitre précédent) est le nombre de jetons : un seul pour le graphe d'état et un ou plusieurs pour le GRAFCET.

Équation de récurrences

[modifier | modifier le wikicode]

La méthode simple consiste à écrire pour chacune des étapes les conditions d'activations (notées ) et les conditions de désactivations (notées ).


Avec ces conditions on va pouvoir former les équations de récurrences :

  • Pour la ou les étapes initiales :
  • Pour les étapes non initiales :

L'indice i parcourant toutes les étapes, il y a autant d'équations de récurrences que d'étapes. En terme matériel, cela signifie que l’on utilisera un bit mémoire par étape. Bien sûr, un codage des états (abordé plus loin) permet de faire des économies de ce côté là mais rappelez-vous qu’à ce point on a que des étapes et pas encore des états.

Grafcet d'exemple

Nous allons partir d'un GRAFCET assez général pour réaliser un exemple complet.

Prenez un peu de temps pour relire l'équation de AC1 et celle de D3 qui prennent en compte le parallélisme. C'est le seul type de situation qui diffère du graphe d'état.

Transformation en graphe d'états

[modifier | modifier le wikicode]

Transformer un GRAFCET en graphe d'états est toujours possible. L'intérêt de la chose est qu'une fois le graphe d'évolution obtenu, il est possible de compter ses états. L'exemple de la section précédente nous semble être un bon point de départ :

Transformation d'un grafcet en graphe d'états

Cette figure transforme un GRAFCET à gauche en un graphe d'états à droite. La notation {2,4} dans un état indique que l'état correspond à l'étape 2 et l'étape 4 actives (avec un jeton) dans le GRAFCET.


Dans cet exemple vous obtenez un graphe d'états qui comporte 5 états pour un GRAFCET qui comporte 5 étapes.


Nous allons présenter maintenant une opération qui s’appelle codage des états. Au fur et à mesure de l'évolution des technologies la connaissance de cette opération est de moins en moins indispensable. Elle ne s'avérait importante qu’à une époque largement révolue où la taille de la mémoire pour les états était limitée.

Codage des états et équations de récurrences

[modifier | modifier le wikicode]

Cette section est difficile à comprendre. Même si elle ne fait intervenir que des notions du niveau indiqué, il est conseillé d'avoir du recul sur les notions présentées pour bien assimiler ce qui suit. Cependant, ce contenu n'est pas fondamental et peut être sauté en première lecture.


Il est possible de partir d'un grafcet, de le transformer en graphe d'états comme déjà présenté. Une fois que l’on connait le nombre d'états, on peut choisir un code des états et transformer ensuite le tout en équations de récurrences. Voici un exemple :

Ce qui est nouveau est le tableau complètement à droite d'assignation des états à des codes. Ce tableau permet de remplir ensuite le tableau état présent état futur avec ces codes, pour en déduire finalement les équations de récurrences. Il est facile de tirer de cette figure :