Certains automates sont prévus pour être programmés plus facilement à partir d'un Grafcet. C'est le cas du TSX (à l'aide d'une cartouche ROM) et du PB 15, mais pas du Micro1 par exemple. Mais ces implantations ne sont pas bien pratiques, c'est pourquoi on utilisera généralement (si on en a les moyens) une génération automatique du programme à l'aide d'un logiciel spécifique (en général sur PC).
Chaque étape doit être représentée par une variable interne. On doit utiliser les premières (donc à partir de A00). Les variables internes suivantes peuvent être utilisées pour d'autres utilisations, par exemple pour un calcul de receptivité (on utilise en général les variables en décroissant à partir de A3F).
La première ligne du programme doit comporter l'instruction PRED, qui initialise le Grafcet. Puis on définit toutes les transitions : quelles est l'étape(s) précédente (antérieure), quelle est la variable contenant la receptivité puis quelle est l'étape(s) postérieure. Puis on affecte les sorties, et on boucle (sans bien sur repasser sur PRED qui réinitialiserait).
Exemple du grafcet 2 :
Choix des variables : étape i : A0i, entrée Ei : 00i , sortie Si : 02i
0C30 PRED 0C31 EANT A01 étape antérieure 1 RCEP 001 réceptivité EPOS A02 2 étapes postérieures : 2 et 3 EPOS A03 EANT A03 SI 002 calcul receptivité SI/ 003 ET A3F mis dans une variable interne RCEP A3F EPOS A04 EANT A04 RCEP /002 EPOS A03 EANT A02 2 étapes antérieures EANT A03 SI 003 SI 002 ET A3E EPOS A01 SI A02 affectation des sorties OU 021 SI A03 OU 022 SI A04 OU 023 SAUT C31 boucler apres PREDLe langage vérifie toutes les règles du grafcet, et entre autre accepte plusieurs étapes actives simultanément, ou plusieurs grafcets simultanés (n'oubliez pas dans ce cas de numéroter différement les étapes). Par contre il nécessite une transcription du Grafcet, et n'est pas trop pratique pour le déboguage (quelles étapes sont actives à un instant donné ?)
Dernier point à élucider, PRED : Cet ordre remet les variables internes (et lesregistres de tempos et compteurs) dans le dernier état sauvé. Les variables internes sont mémorisées dans des mots 16 bits aux adresses 0C00 à 0C03. 0C00 contient A00 en bit de poids fort, jusqu'à A0F en bit de poids faible. Dans notre cas, mettre A01 à 1 et tout les autres à 0 revient donc à mettre 4000 (hexa) dans 0C00 et 0000 dans 0C01 à 0C03. On mémorise alors cet état en appuyant sur la touche MEM puis en validant par VAL/+.
Il faut tout d'abord dessiner le grafcet. Analysons le cas du grafcet 1 :
|
Les
traits verticaux vont de haut en bas uniquement. Par contre on peut remplacer
un trait par 2 flèches, en précisant l'étape d'où
l'on vient et où l'on va. C'est ce que l'on utilise pour une
remontée. (ici pour aller de l'étape 2 à l'étape1).
Cette notation ne respecte pas les règles du Grafcet (une laison est
entre une étape et une transition) et peut nécessiter de rajouter
une étape au niveau d'une convergence ou divergence.
|
Une fois le grafcet entré, on définit les transitions et les actions correspondant aux étapes. Pour ceci, placer le curseur sur une transition à définir, appuyer la touche ZM (zoom). Un réseau à contacts apparaît, avec une bobine représentant la transition. Il faut alors représenter le schéma qui, en fonction des capteurs, "allumera" la receptivité. On valide le réseau par ENT (touche ENTER). Pour les actions, il faut pointer une étape, appuyer ZM, donner le schéma qui allumera les bobines de sortie. On entre un réseau complet, on peut donc faire du combinatoire sur les sorties (test arrêt d'urgence) ou déclencher une tempo. Mais les sorties ne peuvent être activées que par une bobine <S>, ce qui force à désactiver la sortie par une bobine <R> l'étape suivante. Une autre possibilité (que je conseille fortement) est de gérer les actions grâce au "traitement postérieur", voir document complet sur le TSX
Soient : Capteurs m=I1,0, a=I1,1 Sortie L=O0,0. Les réseaux à entrer sont donc:
transition 1 transition 2 | I1,0 | | I1,1 | |---||----------------< # >--| |---||----------------< # >--| | | | | étape 1 étape 2 | O 0,0 | | O 0,0 | |---------------------< R >--| |---------------------< S >--| | | | |