Post on 04-Apr-2015
GJC
LES REGISTRESA DECALAGE
Introduction
GJC
Introduction
DéfinitionUn registre est un ensemble permettant de stocker des informations en attendant leur traitement. Suivant sa conception, les informations stockées peuvent être ou pas soumises à différents types de manipulations.
Les registres de mémorisation ou registres tamponsUn registre de mémorisation est un ensemble permettant de stocker momentanément une information au format bit ou mot.
Introduction
DéfinitionUn registre est un ensemble permettant de stocker des informations en attendant leur traitement. Suivant sa conception, les informations stockées peuvent être ou pas soumises à différents types de manipulations.
Les registres à décalageIl permet le stockage et la modification de l’information. A l’aide d’une entrée de commande l’information contenue dans le registre est décalée. Ce décalage s’effectue vers la droite ou vers la gauche. Dans un registre, les informations peuvent être introduites ou disponibles en sortie de deux manières différentes:
• en série• en parallèle
IntroductionReprésentation Norme EN 61131-3
SHR
IN
N
Décalage logique à droite SHR
Avant l’exécution de la fonction
Introduction
Après l’exécution de la fonction
SHR
IN
N3
Décalage logique à droite SHR
Avant l’exécution de la fonction
Introduction
%MW10 %MW10
Après l’exécution de la fonction
SHR
IN
N3
Décalage logique à droite SHR
Avant l’exécution de la fonction
%MW10
Introduction
%MW10 %MW10
Après l’exécution de la fonction
%MW10
0 1 1 0 1 1 0 0 1 0 1 1 0 0 1 1
SHR
IN
N3
Décalage logique à droite SHR
Avant l’exécution de la fonction
%MW10
Introduction
%MW10 %MW10
Après l’exécution de la fonction
%MW10
0 1 1 0 1 1 0 0 1 0 1 1 0 0 1 1
SHR
IN
N3
Décalage logique à droite SHR
Avant l’exécution de la fonction
%MW10
Introduction
%MW10 %MW10
Après l’exécution de la fonction
%MW10 0 0 0 0 1 1 0 1 1 0 0 1 0 1 1 0
ROL
IN
N
Décalage circulaire à gauche ROL
Avant l’exécution de la fonction
Introduction
Après l’exécution de la fonction
ROL
IN
N5
Avant l’exécution de la fonction
Introduction
%MW10 %MW10
Après l’exécution de la fonction
Décalage circulaire à gauche ROL
ROL
IN
N5
Avant l’exécution de la fonction
%MW10
Introduction
%MW10 %MW10
Après l’exécution de la fonction
%MW10
Décalage circulaire à gauche ROL
ROL
IN
N5
Avant l’exécution de la fonction
%MW10
Introduction
%MW10 %MW10
Après l’exécution de la fonction
%MW10
Décalage circulaire à gauche ROL
0 1 1 0 1 1 0 0 1 0 1 1 0 0 1 1
0 1 1 0 1 1 0 0 1 0 1 1 0 0 1 1
ROL
IN
N5
Avant l’exécution de la fonction
%MW10
Introduction
%MW10 %MW10
Après l’exécution de la fonction
%MW10 1 0 0 1 0 1 1 0 0 1 1 0 1 1 0 1
Décalage circulaire à gauche ROL
Utilisation des registres à décalage
GJC
Utilisation des registres à décalage
Positionnement d'un mobile
Un registre à décalage de n bits dans lequel circule un seul 1 parmi des 0 permet de représenter la position du mobile parmi n positions possibles.
Utilisation des registres à décalage
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1Position du mobile
Utilisation des registres à décalage
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0Position du mobile
Utilisation des registres à décalage
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0Position du mobile
Utilisation des registres à décalage
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0Position du mobile
Utilisation des registres à décalage
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0Position du mobile
Utilisation des registres à décalage
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0Position du mobile
Utilisation des registres à décalage
0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0Position du mobile
Utilisation des registres à décalage
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0Position du mobile
Utilisation des registres à décalage
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0Position du mobile
Utilisation des registres à décalage
0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0Position du mobile
Utilisation des registres à décalage
0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0Position du mobile
Utilisation des registres à décalage
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0Position du mobile
Utilisation des registres à décalage
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0Position du mobile
Utilisation des registres à décalage
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0Position du mobile
Utilisation des registres à décalage
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0Position du mobile
Utilisation des registres à décalage
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0Position du mobile
Utilisation des registres à décalage
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0Position du mobile
Utilisation des registres à décalage
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0Position du mobile
Utilisation des registres à décalage
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0Position du mobile
Diviseur de fréquence
En base 2 :- un décalage à droite est équivalent à une division.- un décalage à gauche est équivalent à une multiplication.
Utilisation des registres à décalage
Utilisation des registres à décalage
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
Valeur = 2
Utilisation des registres à décalage
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
Valeur = 4
Utilisation des registres à décalage
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
Valeur = 8
Utilisation des registres à décalage
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
Valeur = 16
Utilisation des registres à décalage
0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0
Valeur = 36
Utilisation des registres à décalage
0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0
Valeur = 72
Suivi des pièces dans une machine type transfert:
- Un 1er registre peut autoriser ou pas le travail d'un poste si une pièce est présente ou absente. - Un 2em registre peut bloquer le travail d'un poste si une pièce est présente mais en mauvais état et autoriser dans ce cas précis le rejet de la pièce au poste d'évacuation pièces mauvaises.
Utilisation des registres à décalage
Utilisation des registres à décalage
1 1 1 0 1 1 0 0 1 0 1 1 0 0 1 1Présence pièce
Défaut sur pièce 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
Travail sur pièce
Travail sur pièce = Présence pièce . / Défaut sur pièce
Utilisation des registres à décalage
1 1 1 0 1 1 0 0 1 0 1 1 0 0 1 1Présence pièce
Défaut sur pièce 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
travail sur pièce 0 1 1 0 1 0 0 0 1 0 0 1 0 0 1 0
Travail sur pièce = Présence pièce . / Défaut sur pièce
Registres à décalage etlogique programmée
GJC
Registres en logique programméeTraduction d’un registre par grafcet
sens de déplacementCR
PO
P1 P2 P3 P4
OP1 OP2 OP3 OP4
Registres en logique programméeTraduction d’un registre par grafcet
1
OP12
CR . P0
OP12
CR . P0
1
OP1
OP2
2
3
CR . P0
CR
1
OP1
OP2
OP3
2
3
4
CR . P0
CR
CR
1
OP1
OP2
OP3
OP4
2
3
4
5
CR . P0
CR
CR
CR
1
OP1
OP2
OP3
OP4
2
3
4
5
CR . P0
CR
CR
CR
CR
1
Registres en logique programméeTraduction d’un registre par grafcet
OP1
OP2
OP3
OP4
2
3
4
5
CR . P0
CR
CR
CR
CR
Transition source
Transition puits
Registres en logique programméeTraduction d’un registre par grafcet
Si : - on réaliser le registre en logique câblée à l’aide d’un séquenceur, - on utilise une méthode de programmation asynchrone en logique programmée,
On ne peut pas avoir deux étapes consécutivement actives!
Registres en logique programméeTraduction d’un registre par grafcet
OP1
OP2
2
3
4
5
CR . P0
CR
CR
Transition source
CR
CR
etc ………
il faut doubler les étapes !
Registres en logique programméeTraduction d’un registre par grafcet
Avec un automate si la méthode le permet - on traduira le grafcet type « a »,
OP1
OP2
OP3
OP4
2
3
4
5
CR . P0
CR
CR
CR
CR
Registres en logique programméeTraduction d’un registre par grafcet
Avec un automate si la méthode le permet - on traduira le grafcet type « a », - on traduira le grafcet type « b », OP1
OP2
2
3
4
5
CR . P0
CR
CR
CR
CR
etc ………
Registres en logique programméeTraduction d’un registre par grafcet
Avec un automate si la méthode le permet - on traduira le grafcet type « a », - on traduira le grafcet type « b », - on utilisera les opérateurs registres à décalage intégrés,
Registres en logique programméeTraduction d’un registre par grafcet
Avec un automate si la méthode le permet - on traduira le grafcet type « a », - on traduira le grafcet type « b », - on utilisera les opérateurs registres à décalage intégrés, - on utilisera les opérateurs calcul qui traduisent le registre.
Le registre sera représenté par:- un mot (16 bits), - un mot double (32 bits),- un mot long (64 bits)- ou plus (travail sur plusieurs mots).
Registres en logique programméeUtilisation des instructions registres intégrées
Opérations à réaliser pour utiliser un registre à décalage programmé:
- Initialiser le registreRAZ si machine type transfert
Machine type transfert
13 12 11 10 9 8 7 6 5 4 3 2 1 015 14
Initialisation « RAZ »
Registres en logique programméeUtilisation des instructions registres intégrées
Registres en logique programméeUtilisation des instructions registres intégrées
Opérations à réaliser pour utiliser un registre à décalage programmé:
- Initialiser le registreRAZ si machine type transfertPrépositionnement si contrôle de position
13 12 11 10 9 8 7 6 5 4 3 2 1 015 14
Initialisation « Prépositionnement »
Registres en logique programméeUtilisation des instructions registres intégrées
Contrôle de position
Registres en logique programméeUtilisation des instructions registres intégrées
Opérations à réaliser pour utiliser un registre à décalage programmé:
- Initialiser le registreRAZ si machine type transfertPré positionnement si contrôle de position
- Introduction de l’informationmachine type transfert uniquement
Machine type transfert
13 12 11 10 9 8 7 6 5 4 3 2 1 015 14Introduction information
Initialisation « RAZ »
Registres en logique programméeUtilisation des instructions registres intégrées
Registres en logique programméeUtilisation des instructions registres intégrées
Opérations à réaliser pour utiliser un registre à décalage programmé:
- Initialiser le registreRAZ si machine type transfertPré positionnement si contrôle de position
- Introduction de l’informationmachine type transfert uniquement
- décaler l’informationà droite ou à gauche si machine type transfert
Machine type transfert
13 12 11 10 9 8 7 6 5 4 3 2 1 015 14Introduction information
Initialisation « RAZ »
décalage information
Registres en logique programméeUtilisation des instructions registres intégrées
Registres en logique programméeUtilisation des instructions registres intégrées
Opérations à réaliser pour utiliser un registre à décalage programmé:
- Initialiser le registreRAZ si machine type transfertPré positionnement si contrôle de position
- Introduction de l’informationmachine type transfert uniquement
- décaler l’informationà droite ou à gauche si machine type transfertà droite et à gauche si contrôle de position
13 12 11 10 9 8 7 6 5 4 3 2 1 015 14
Initialisation « Prépositionnement »
décalage Information
à gauche
décalage Information
à droite
Registres en logique programméeUtilisation des instructions registres intégrées
Contrôle de position
Registres en logique programméeUtilisation des instructions registres intégrées
Opérations à réaliser pour utiliser un registre à décalage programmé:
- Initialiser le registreRAZ si machine type transfertPré positionnement si contrôle de position
- Introduction de l’informationmachine type transfert uniquement
- décaler l’informationà droite ou à gauche si machine type transfertà droite et à gauche si contrôle de position
- utiliser les informationslecture d’un bit quelconque du registre
Machine type transfert
13 12 11 10 9 8 7 6 5 4 3 2 1 015 14
utilisation
Introduction information
Initialisation « RAZ »
décalage information
Registres en logique programméeUtilisation des instructions registres intégrées
13 12 11 10 9 8 7 6 5 4 3 2 1 015 14
utilisation
Initialisation « Prépositionnement »
décalage Information
à gauche
décalage Information
à droite
Registres en logique programméeUtilisation des instructions registres intégrées
Contrôle de position
ExempleUtilisation d’un registre
cas d’une machine type transfert
GJC
Registres en logique programméeregistre et machine type transfert
AVcp_pièce
cp_pas
Poste1
Opération N°1
Poste2
Opération N°2
Poste3
Opération N°3
Poste4
Opération N°4
Registres en logique programméeregistre et machine type transfert
Initialisation « RAZ »
Utilisation
Décalage à droite
Chargement
Poste 1 Poste 2 Poste 3 Poste 4
Registre à utiliser
Utilisation OK
étape du GrafcetConduite Machine
Registres en logique programméeregistre et machine type transfert
GCT
Registres en logique programméeregistre et machine type transfert
Analyse
Initialisation
Registres en logique programméeregistre et machine type transfert
Analyse
Décalage - Chargement
Registres en logique programméeregistre et machine type transfert
Analyse
Décalage - Chargement
Analyse
Registres en logique programméeregistre et machine type transfert
Programme(*déclaration*)
215 214 213 212 211 210 29 28 27 26 25 24 23 22 21 20registre
poste1_reg
poste2_reg
poste3_reg
poste4_reg
Registres en logique programméeregistre et machine type transfert
Initialisation
Programme(*corps de la fonction*)
Registres en logique programméeregistre et machine type transfert
Programme(*corps de la fonction*)
Registres en logique programméeregistre et machine type transfert
Décalage - Chargement
Programme(*corps de la fonction*)
Registres en logique programméeregistre et machine type transfert
Décalage - Chargement
Programme(*corps de la fonction*)
Registres en logique programméeregistre et machine type transfert
Décalage - Chargement
Programme(*corps de la fonction*)
Registres en logique programméeregistre et machine type transfert
Décalage - Chargement
Programme(*corps de la fonction*)
Programme
(*corps de la fonction*)
Utilisation OK
Registres en logique programméeregistre et machine type transfert
GCT
Utilisation des informations du registre dans les grafcets des taches
101
106
107
100
Opération N°1
/ X 33
X 33 . / poste1_reg X 33 . poste1_reg
201
204
205
200
Opération N°2
/ X 33
X 33 . / poste2_reg X 33 . poste2_reg
Utilisation du registre
Tache N°1 Tache N°2
301
303
304
300
Opération N°3
/ X 33
X 33 . / poste3_reg X 33 . poste3_reg
401
408
409
400
Opération N°4
/ X 33
X 33 . / poste4_reg X 33 . poste4_reg
Utilisation du registre
Tache N°3 Tache N°4
Registres en logique programméeregistre et machine type transfert
ExempleUtilisation d’un registre
cas d’un contrôle de position
GJC
Registres en logique programméeregistre et contrôle de position
cp_origine
cp_position
01234
AVAR
Registres en logique programméeregistre et contrôle de position
01234
AV cp_origine
cp_position
Registres en logique programméeregistre et contrôle de position
01234
AV cp_origine
cp_position
Registres en logique programméeregistre et contrôle de position
01234
AV cp_origine
cp_position
Registres en logique programméeregistre et contrôle de position
01234
AV cp_origine
cp_position
Registres en logique programméeregistre et contrôle de position
01234
cp_origine
cp_position
Registres en logique programméeregistre et contrôle de position
01234
AR cp_origine
cp_position
Registres en logique programméeregistre et contrôle de position
01234
AR cp_origine
cp_position
Registres en logique programméeregistre et contrôle de position
01234
AR cp_origine
cp_position
01234
AR cp_origine
cp_position
Registres en logique programméeregistre et contrôle de position
01234
cp_origine
cp_position
Registres en logique programméeregistre et contrôle de position
décalage à
droite
Position 4
Position3
Position2
Position1
Registre à utiliser
Registres en logique programméeregistre et contrôle de position
Position0
décalage à
gauche
utilisation
Initialisation « Prépositionnement »
Analyse
Registres en logique programméeregistre et contrôle de position
Analyse
Registres en logique programméeregistre et contrôle de position
Analyse
Problème !
Analyse
Le dernier décalage à droite est remplacé par l’initialisation
Registres en logique programméeregistre et contrôle de position
Programme(*déclaration*)
215 214 213 212 211 210 29 28 27 26 25 24 23 22 21 20registre
Position 3_reg
Position 2_reg
Position 1_reg
Position 0_regPosition 4_reg
Registres en logique programméeregistre et contrôle de position
Programme(*corps de la fonction*)
Programme(*corps de la fonction*)
Registres en logique programméeregistre et contrôle de position
Registres en logique programméeregistre et contrôle de position
(*corps de la fonction*)
Registres en logique programméeregistre et contrôle de position
registre et contrôle de position
Sorties
position 4_reg KM_A V
KM_A Rposition 0_reg
Conditions pour marche AV
Conditions pour marche AR
Fin