Tous les mouvements de la machine peuvent se faire soit
automatiquement, à partir de l'ordinateur ou manuellement à
partir du pupitre de commande (voir Fig. 18). La manipulation manuelle de la
machine est faite pour être utilisée lors d'une panne par exemple
ou lors d'un arrrt de l'ordinateur commandant la machine.
- Emplacement des capteurs sur la machine :
Fig. 18 : Emplacement des capteurs
sur la machine
à déplacement unidirectionnel
Remarque :
L'application Visual Basic commandant la machine ne peut pas
lire les entrées de l'automate néanmoins, elle peut lire les
valeurs des bits du registre « M ». Ainsi toutes les entrées
de l'automate sont stockées dans ce mrme registre afin qu'elles soient
interprétables par l'application sur ordinateur.
- Entrées de la machine et leurs
équivalents dans le registre « M » de l'automate
:
X0 (M5) : Fin de course niveau zéro.
X1 (M6) : Fin de sortie de la rangée.
X2 (M7) : Fin d'entrée de la rangée.
X3 (M8) : Présence d'un plateau sur le côté
gauche de la
table.
X4 (M9) : Présence d'un plateau au centre de la table.
X5 (M10) : Sécurité haut.
X6 (M11) : Sécurité bas.
X7 (M17) : Bouton de mise en marche.
X20 (M 18) : Bouton d'arrrt d'urgence.
X21 (M19) : Photocellule détection plateaux mal
placés.
X22 (M 13) : Commande manuelle déplacement vers le
haut.
X23 (M 14) : Commande manuelle déplacement vers le
bas.
X24 (M 15) : Commande manuelle entrée de la
rangée.
X25 (M 16) : Commande manuelle sortie de la rangée.
X26 (M31) : Commande manuelle d'ouverture de la porte.
X31* : Commande manuelle fermeture de la porte.
X27 (M29) : Fin de course d'ouverture de la porte.
X30 (M28) : Contact de détection de fermeture de la
porte.
(*) : L'entrée de commande manuelle de fermeture de la
porte n'a pas son équivalent dans le registre « M » car la
fermeture de la porte ne peut se faire que manuellement et NON à partir
de l'ordinateur.
- Sorties de l'automate :
Y1 : Déplacement vers le haut.
Y2 : Déplacement vers le bas.
Y3 : Ralenti.
Y20 : Entrée de la rangée.
Y21 : Sortie de la rangée.
Y22 : Remise à zéro du compteur.
Y23 : Alarme.
Y24 : Ouverture de la porte.
Y25 : Fermeture de la porte.
- Bits des ordres de l'ordinateur :
M0 : Déplacement vers le haut.
M1 : Déplacement vers le bas.
M2 : Déclenchement du ralenti.
M3 : Sortie de la rangée.
M4 : Entrée de la rangée.
M30 : Ouverture de la porte.
M40 : Bit de détection du cycle en cours.
Pourquoi X4 existe alors que X3 et X1 sont suffisants
pour détecter la présence d'un plateau sur le
chariot ?
En regardant le schéma de la machine (Fig. 18) en
remarque bien qu'il y a quatre différents cas de position du plateau au
départ.
1er cas : X2 est activé c'est-à-dire que le
plateau est entièrement à l'intérieur de sa
rangée.
2ème cas : X1 et X3 sont tous les deux activés
et dans ce cas le plateau est entièrement sorti sur le chaiot.
Il reste encore deux autres cas i ntermédiaires
notamment si le plateau est mal positionné sur le chariot et une partie
est à l'intérieur de la rangée ou encore s'il est mal
positionné sur le chariot mais à l'extérieur de la
rangée. C'est l'information qu'on peut avoir grkce à X4.
3ème cas : X3 est activé et X4 non. Avec la
condition de distance a, si X4 n'est pas activé donc automatiquement une
partie du plateau est à l'intérieure de la rangée. Dans ce
cas là lors de l'initialisation de la machine et avant le
déplacement vers la position zéro, l'automate va faire entrer le
chariot jusqu'à ce que X2 soit activé et c'est là que sont
mouvement de descente va commencer.
4ème cas : X3 et X4 sont tous les deux activés
et X1 non ce qui veut dire que le plateau est mal positionné mais il
n'est pas à l'intérieur de la rangée donc l'automate va le
faire sortir jusqu'à ce que X1 soit activé pour le faire
descendre dans la phase d'initialisation.
6 - Grafcet capteurs/actionneurs :
Fig. 19 : Grafcet détaillé de la machine
à déplacement undirectionnel
7 - Application Visual Basic :
Fenêtre de l 'appli cati on Visual Basic :
Fig. 20 : Application Visual Basic de la
machine
à déplacement unidirectionnel
Algorithme de l'application :
Phase : variable contenant la valeur de la phase en cours.
Phase = 0 : Phase repos.
Phase = 1 : Phase déplacement vertical allée.
Phase = 2 : Phase sortie de la rangée.
Phase = 3 : Phase déplacement vertical retour vers
position de travail.
Phase = 31 : Phase d'ouverture de la porte afin de
récupérer les pièces voul ues.
Phase = 4 : Phase déplacement vertical allée.
Phase = 5 : Phase entrée de la rangée.
Phase = 6 : Phase exécutée si, lors de
l'initialisation de la machine, il y a un plateau sur le chariot. Elle fait le
même travail que la Phase 3 (déplacement vers la position du
travail et elle attend la lecture de l'emplacement du chariot.
Phase = 61 : Phase d'ouverture de la porte correspondante
à la Phase 6.
Pos_départ (Position de départ) :
variable contenant la position de départ de chaque
mouvement
vertical.
Pos_Actuelle (Position actuelle) : Variable
contenant la position actuelle du chaiot
donnée en permanence par le
codeur.
Pos_Arrivée (Position d'arrivée) :
variable contenant la position d'arrivée du
chariot.
D_AccRlt (Distance
d'accélération/ralentissement) : variable contenant la
valeur de
distance d'accélération et de
ralentissement).
Pre_Pos (Précision de positionnement) :
variable contenant la valeur de l'incertitude
du positionnement du
chariot.
Répéter
Si M18 = 1 et Phase <> 0 alors
M0 = 0
M1 = 0
M2 = 0
M3 = 0
M4 = 0 M30 = 0
Répeter
Message «Attention ! Boutton d'arrêt d'urgence
enfoncé ! Désactivez le pour continuer ! » Jusqu'à
M18 = 0
Pos_Départ = Pos_Actuelle
Fin Si
Si Phase = 1 Alors
Si (Abs(Pos_Actuelle - Pos_Arrivée) <= D_AccRlt) Ou
(Abs(Pos_Actuelle - Pos_Départ) <= D_AccRlt) Alors
M2 = 1
Si non
M2 = 0
Fin Si
Si (Pos_Actuelle > Pos_Arrivée + Pre_Pos) Alors
M0 = 0 M1 = 1
Fin Si
Si (PosActuelle < PosArrivée - PrePos) Alors
M1 = 0 M0 = 1
Fin Si
Si (Abs(Pos_Actuelle - Pos_Arrivée) <= Pre_Pos)
Alors
M0 = 0 M1 = 0
Fin Si
Si stabilité pendant 2 secondes Alors
Phase = 2
M0 = 0 M1 = 0
Fin Si
Fin Si
Si Phase = 2 Alors
Si M6 = 0 Alors
M3 = 1
Si non
M3 = 0 Phase = 3
Fin Si
Fin Si
Si Phase = 3 Alors
Si (Abs(Pos_Actuelle - Y_Travail) <= D_AccRlt) Ou
(Abs(Pos_Actuelle - Pos_Arrivée) <= D_AccRlt) Alors
M2 = 1
Si non
M2 = 0
Fin Si
Si (Y_Travail - Pre_Pos > Pos_Actuelle) Alors
M1 = 0 M0 = 1 Fin Si
Si (Y_Travail + Pre_Pos < Pos_Actuelle) Alors
M0 = 0 M1 = 1
Fin Si
Si (Abs(PosActuelle - YTravail) <= PrePos) Alors
M0 = 0 M1 = 0
Fin Si
Si stabilité pendant 2 secondes Alors
Phase = 31
M40 = 0 M0 = 0 M1 = 0
Fin Si
Fin Si
Si Phase = 31 Alors
Si M29 = 0 Alors M30 = 1
Si non
M30 = 0
Message « Prendre la pièce X, Fermer la porte de la
machine et cliquer sur ok ! »
Message « La porte de la machine doit être
fermée »
Jusqu'à M28 = 1
Fin Si
M40 = 1 Phase = 4
Fin Si
Fin Si
Si Phase = 4 Alors
Si (Abs(Pos_Actuelle - Y_Travail) <= D_AccRlt) Ou
(Abs(Pos_Actuelle - Pos_Arrivée) <= D_AccRlt) Alors
M2 = 1
Si non
M2 = 0
Fin Si
Si (Pos_Actuelle > Pos_Arrivée + Pre_Pos) Alors
M0 = 0 M1 = 1
Fin Si
Si (PosActuelle < PosArrivée - PrePos) Alors
M1 = 0 M0 = 1
Fin Si
Si (Abs(Pos_Actuelle - Pos_Arrivée) <= Pre_Pos)
Alors
M0 = 0 M1 = 0
Fin Si
Si stabilité pendant 2 secondes Alors
Phase = 5
M0 = 0 M1 = 0
Fin Si
Fin Si
Si Phase = 5 Alors
Si M7 = 0 Alors
M4 = 1
Si non
M4 = 0
M40 = 0 Phase = 0
Fin Si
Si Phase = 6 Alors
Si (Abs(Pos_Actuelle - Y_Travail) <= D_AccRlt) Ou
(Abs(Pos_Actuelle - 0) <= D_AccRlt) Alors
M2 = 1
Si non
M2 = 0
Fin Si
Si (Y_Travail - Pre_Pos > Pos_Actuelle) Alors M1 = 0
M0 = 1
Fin Si
Si (Y_Travail + Pre_Pos < Pos_Actuelle) Alors M0 = 0
M1 = 1
Fin Si
Si (Abs(PosActuelle - YTravail) <= PrePos) Alors
M0 = 0 M1 = 0
Fin Si
Si stabilité pendant 2 secondes Alors
Phase = 61
M0 = 0 M1 = 0
Fin Si
Fin Si
Si Phase = 61 Alors
Si M29 = 0 Alors M30 = 1
Si non
M30 = 0
Message « Présence d'un plateau sur le chariot !
Entrez la position du plateau et fermez la porte » Lire
Pos_Arrivée
Message « La porte de la machine doit être
fermée »
Jusqu'à M28 = 1
Fin Si Phase = 4
Fin Si
Fin Si
Jusqu'à Arrêt de la machine
PV - Machine à déplacement
bidirectionnel :
1 - Schéma de la machine :
Là, à la différence par rapport à
la machine à déplacement unidirectionnel, il s'agit d'une machine
qui livre les articles stockés dans des boites qu'on peut chercher
séparément et non pas dans des rangées entières.
(voir schéma Fig. 21)
Fig. 22 : Schéma de la machine à
déplacement
bidirectionnel
2 - Introduction au fonctionnement de la
machine :
Le fonctionnement de la machine à déplacement
bidirectionnel est le même que celle à déplacement
unidirectionnel sauf que là, on rajoute d'autres phases relatives aux
déplacements horizontaux. Et ainsi on aura deux positions de travail :
une verticale et une autre horizontale.
3 - Connexions et synoptique de la
machine :
La partie commande de la machine ne change pratiquement pas
par rapport à la première machine. La seule différence
réside dans la présence d'un autre codeur lié aux
déplacements horizontaux et la présence de nouvelles phases dans
les cycles de travail de l'automate
Fig. 23 : Schéma de transmission de
données de la machine
à déplacement
bidirectionnel
Synopti que du foncti onnement de la machine
:
De mrme après l'initialisation de la machine,
l'automate attend les ordres de l'ordinateur pour déplacer le chariot.
L'ordinateur envoie premièrement un ordre de déplacement vertical
vers la position de
la boite voulue, ensuite un autre ordre vers
la position horizontale de la boite voulue
puis un ordre de sortie de la boite. Une fois la boite bien sorti, il
envoie encore un ordre de déplacement vers la position de travail
horizontale, ensuite un autre ordre de déplacement vers la position de
travail verticale, puis une ouverture de la porte de la machine. Après
la récupération des pièces contenues dans la boite
apportée et la fermeture manuelle de la porte, l'ordinateur envoie pour
une troisième fois un ordre de déplacement jusqu'à la
position verticale du plateau puis un pour rendre la boite à sa position
initiale et finalement un dernier ordre pour faire entrer la boite à sa
place.
Ordre de déplacement vertical vers
la
position de la boite
Phase 1
Ordre de déplacement horizontal vers
la
position de la boite
Phase 2
Ordre de sortie de la boite
Phase 3
Phase 4
Ordre de déplacement horizontal vers
la
position de travail horizontale
Phase 5
Ordre de déplacement vertical vers
la
position de travail verticale
Phase 6
Ordre d'ouverture de la porte
Phase 7
Fermeture manuelle de la porte
Phase 8
Ordre de déplacement vertical vers la position
verticale initiale du plateau
Phase 9
Ordre de déplacement horizontal vers
la
position initiale du plateau
Ordre d'entrée de la boite
Phase 10
Rebouclage
Fig. 24 : Phases d'un cycle de fonctionnement
de la
machine à déplacement bidirectionnel
4 - Description technique détaillée de
la machine :
- Emplacement des capteurs sur la
machine :
Fig. 25 : Emplacement des capteurs
sur la machine
à déplacement bidirectionnel
- Entrées de la machine et leurs
équivalents dans le registre « M » de l'automate
:
X0 (M5) : Fin de course verticale niveau zéro.
X26 (M22) : Fin de course horizontale niveau zéro.
X1 (M6) : Fin de sortie du chariot.
X2 (M7) : Fin d'entrée du chariot.
X3 (M8) : Présence d'un plateau sur le côté
gauche de la
table.
X4 (M9) : Présence d'un plateau au centre de la table.
X5 (M10) : Sécurité haut.
X6 (M11) : Sécurité bas.
X27 (M23) : Sécurité droite.
X20 (M24) : Sécurité gauche.
X7 (M17) : Bouton de mise en marche.
X30 (M 18) : Bouton d'arrrt d'urgence.
X31 (M19) : Photocellules (*) détection
plateaux mal placés.
X32 (M 13) : Commande manuelle déplacement vers le
haut.
X33 (M 14) : Commande manuelle déplacement vers le
bas.
X34 (M 15) : Commande manuelle entrée de la
rangée.
X35 (M 16) : Commande manuelle sortie de la rangée.
X21 (M25) : Commande manuel le déplacement vers la
droite.
X22 (M26) : Commande manuelle déplacement vers
la
gauche.
X23 (M31) : Commande manuelle d'ouverture de la porte.
X36 (**) : Commande manuel le fermeture de la
porte.
X25 (M29) : Fin de course d'ouverture de la porte.
X24 (M28) : Contact de détection de fermeture de la
porte.
(*) : L'entrée X3 1 est une entrée dans
laquelle sont branchées toutes les photocellules de détection des
boites mal placées qu'elles soient horizontales ou verticales. Ça
ne veut en AUCUN cas dire qu'une seule photocellule qui est branchée
à l'automate.
(* *) : L'entrée de commande manuelle de fermeture de
la porte n'a pas son équivalent dans les registres « M » car
la fermeture de la porte ne peut se faire que manuellement et NON à
partir de l'ordinateur.
- Sorties de l'automate :
Y1 : Déplacement vers le haut.
Y2 : Déplacement vers le bas.
Y3 : Ralenti vertical.
Y20 : Entrée de la boite.
Y21 : Sortie de la boite.
Y22 : Remise à zéro du compteur vertical.
Y23 : Alarme.
Y24 : Déplacement vers la droite.
Y25 : Déplacement vers la gauche.
Y26 : Remise à zéro du compteur horizontal
Y27 : Ralenti horizontal
Y30 : Ouverture de la porte
Y31 : Fermeture de la porte
- Bits des ordres de l'ordinateur :
M0 : Déplacement vers le haut.
M1 : Déplacement vers le bas.
M2 : Déclenchement du ralenti vertical.
M3 : Sortie de la boite.
M4 : Entrée de la boite.
M20 : Déplacement vers la droite.
M21 : Dépl acement vers la gauche.
M27 : Déclenchement du ralenti horizontal
M30 : Ouverture de la porte.
M40 : Bit de détection du cycle en cours.
5 - Grafcet capteurs/actionneurs :
Fig. 26 : Grafcet détaillé de la machine
à déplacement bidirectionnel
Rapport de stage de formation
6 - Application Visual Basic :
Fenêtre de l'application :
Fig. 27 : Application Visual Basic de la
machine
à déplacement vector iel
Algorithme :
Phase = 0 : Phase repos
Phase = 1 : Phase déplacement vertical allée
Phase = 2 : Phase dépl acement horizontal allée
Phase = 3 : Phase sortie de la rangée
Phase = 4 : Phase dépl acement horizontal vers poste de
travail
Phase = 5 : Phase déplacement vertical vers position de
travail
Phase = 51 : Phase d'ouverture de la porte afin de
récupérer les
pièces voul ues
Phase = 6 : Phase déplacement horizontal allée
Phase = 7 : Phase déplacement vertical allée
Phase = 8 : Phase entrée de la rangée
Phase = 9,10 : Phases exécutées si lors de
l'initialisation de la machine, il y avait un plateau sur le chariot. Elles
font le même travail que les Phases 4 et 5 (déplacement vers la
position du travail et attente de la lecture de l'emplacement du chariot)
Phase = 101 : Phase d'ouverture de la porte correspondante
aux
phases 9 et 10.
X_Départ, Y_Départ : variables
contenant les positions respectivement horizontale et
verticale de
départ de chaque mouvement.
Pos_Actu_X, Pos_Actu_Y :
Variables contenant l es positions respectivement horizontale
et
verticale actuel les du chariot donnée en permanence par les
codeurs.
X_Arrivée, Y_Arrivée : Variables
contenant les positions d'arrivée respectivement
horizontale et
verticale du chariot.
D_AccRlt_X, D_AccRlt_Y : variables
contenant les valeurs des distances d'accélération et
de
ralentissement.
Pre_Pos_X, Pre_Pos_Y : variables contenant
les valeurs de l'incertitude du positionnement
du chariot.
Répéter
Si M18 = 1 Et Phase <> 0 Alors
M0 = 0
M1 = 0
M2 = 0
M3 = 0
M4 = 0
M20 = 0
M21 = 0 M27 = 0 M30 = 0
Répéter
Message « Attention ! Bouton d'arrêt d'urgence
enfoncé ! Désactiver le pour continuer »
Jusqu'à M18 = 0
Y_Départ = Pos_Actu_Y X_Départ = Pos_Actu_X
Fin Si
Si Phase = 1 Alors
Si (Abs(Pos_Actu_Y - Y_Arrivée) <= D_AccRlnt_Y) Ou
(Abs(PosActuY - YDépart) <= DAccRlntY) Alors
M2 = 1
Si non
M2 = 0
Fin Si
Si (PosActuY > YArrivée + PrePosY) Alors
M0 = 0 M1 = 1
Fin Si
Si (Pos_Actu_Y < Y_Arrivée - Pre_Pos_Y) Alors
M1 = 0 M0 = 1
Fin Si
Si (Abs(PosActuY - YArrivée) <= PrePosY) Alors
M0 = 0 M1 = 0
Fin Si
Si stabilité pendant 2 secondes Alors
Phase = 2
M0 = 0 M1 = 0
Fin Si
Fin Si
Si Phase = 2 Alors
Si (Abs(Pos_Actu_X - X_Arrivée) <= D_AccRlnt_X) Ou
(Abs(Pos_Actu_X - X_Départ) <= D_AccRlnt_X) Alors M27 = 1
Si non
M27 = 0
Fin Si
Si (Pos_Actu_X > X_Arrivée + Pre_Pos_X) Alors M21 =
0
M20 = 1
Fin Si
Si (Pos_Actu_X < X_Arrivée - Pre_Pos_X) Alors
M20 = 0
M21 = 1
Fin Si
Si (Abs(Pos_Actu_X - X_Arrivée) <= Pre_Pos_X)
Alors
M20 = 0
M21 = 0
Fin Si
Si stabilité pendant 2 secondes Alors
Phase = 3
M20 = 0
M21 = 0
Fin Si
Fin Si
Si Phase = 3 Alors
Si M6 = 0 Alors
M3 = 1
Si non
M3 = 0
Phase = 4
Fin Si
Fin Si
Si Phase = 4 Alors
Si (Abs(Pos_Actu_X - X_Travail) <= D_AccRlnt_X) Ou
(Abs(Pos_Actu_X - X_Travail) <= D_AccRlnt_X) Alors
M27 = 1
Si non
M27 = 0
Fin Si
Si (X_Travail - Pre_Pos_X > Pos_Actu_X) Alors
M20 = 0
M21 = 1
Fin Si
Si (X_Travail + Pre_Pos_X < Pos_Actu_X) Alors M21 = 0
M20 = 1
Fin Si
Si (Abs(Pos_Actu_X - X_Travail) <= Pre_Pos_X) Alors
M20 = 0
M21 = 0
Fin Si
Si stabi lité pendant deux secondes Alors
Phase = 5
M20 = 0
M21 = 0
Fin Si
Fin Si
Si Phase = 5 Alors
Si (Abs(Pos_Actu_Y - Y_Travail) <= D_AccRlnt_Y) Ou
(Abs(PosActuY - YTravail) <= DAccRlntY) Alors
M2 = 1
Si non
M2 = 0
Fin Si
Si (PosActuY > YTravail + PrePosY) Alors M0 = 0
M1 = 1
Fin Si
Si (Pos_Actu_Y < Y_Travail - Pre_Pos_Y) Alors M1 = 0
M0 = 1
Fin Si
Si (Abs(PosActuY - YTravail) <= PrePosY) Alors
M0 = 0 M1 = 0
Fin Si
Si stabilité pendant 2 secondes Alors Phase = 51
M40 = 0
M0 = 0
M1 = 0
Fin Si
Fin Si
Si Phase = 51 Alors
Si M29 = 0 Alors M30 = 1 Si non
M30 = 0
Message « Prendre la pièce X et Fermer la porte de
la machine »
Si M28 = 0 Alors
Répéter
Message « La porte de la machine doit être
fermée ! »
Jusqu'à M28 = 1
Fin Si
M40 = 1 Phase = 6
Fin Si
Fin Si
Si Phase = 6 Alors
Si (Abs(PosActuX - XArrivée) <= DAccRlntX) Ou
(Abs(Pos_Actu_X - X_Travail) <= D_AccRlnt_X) Alors
M27 = 1
Si non
M27 = 0
Fin Si
Si (Pos_Actu_X > X_Arrivée + Pre_Pos_X) Alors
M21 = 0 M20 = 1
Fin Si
Si (PosActuX < XArrivée - PrePosX) Alors
M20 = 0
M21 = 1
Fin Si
Si (Abs(Pos_Actu_X - X_Arrivée) <= Pre_Pos_X)
Alors
M20 = 0
M21 = 0
Fin Si
Si stabilité pendant 2 secondes Alors
Phase = 7
M20 = 0
M21 = 0
Fin Si
Fin Si
Si Phase = 7 Alors
Si (Abs(Pos_Actu_Y - Y_Arrivée) <= D_AccRlnt_Y) Ou
(Abs(Pos_Actu_Y - Y_Travail) <= D_AccRlnt_Y) Alors
M2 = 1
Si non
M2 = 0
Fin Si
Si (Pos_Actu_Y > Y_Arrivée + Pre_Pos_Y) Alors
M0 = 0 M1 = 1
Fin Si
Si (Pos_Actu_Y < Y_Arrivée - Pre_Pos_Y) Alors
M1 = 0 M0 = 1
Fin Si
Si (Abs(Pos_Actu_Y - Y_Arrivée) <= Pre_Pos_Y)
Alors
M0 = 0
M1 = 0
Fin Si
Si stabilité pendant 2 secondes Alors
Phase = 8
M0 = 0
M1 = 0
Fin Si
Fin Si
Si Phase = 8 Alors
Si M7 = 0 Alors
M4 = 1
Si non
M4 = 0 M40 = 0 Phase = 0
Fin Si
Fin Si
Si Phase = 9 Alors
Si (Abs(Pos_Actu_Y - Y_Travail) <= D_AccRlnt_Y) Ou
(Abs(Pos_Actu_Y - 0) <= D_AccRlnt_Y) Alors
M2 = 1
Si non
M2 = 0
Si (Y_Travail - Pre_Pos_Y > Pos_Actu_Y) Alors M1 = 0
M0 = 1
Fin Si
Si (Y_Travail + Pre_Pos_Y < Pos_Actu_Y) Alors M0 = 0
M1 = 1
Fin Si
Si (Abs(Pos_Actu_Y - Y_Travail) <= Pre_Pos_Y) Alors
M0 = 0 M1 = 0
Fin Si
Si stabilité pendant 2 secondes Alors
Phase = 10
M0 = 0 M1 = 0
Fin Si
Fin Si
Si Phase = 10 Alors
Si (Abs(PosActuX - XTravail) <= DAccRlntX) Ou (Abs(Pos_Actu_X
- 0) <= D_AccRlnt_X) Alors
M27 = 1
Si non
M27 = 0
Fin Si
Si (X_Travail - Pre_Pos_X > Pos_Actu_X) Alors
M20 = 0
M21 = 1
Fin Si
Si (XTravail + PrePosX < PosActuX) Alors M21 = 0
M20 = 1
Fin Si
Si (Abs(Pos_Actu_X - X_Travail) <= Pre_Pos_X) Alors
M21 = 0 M20 = 0
Fin Si
Si stabilité pendant 2 secondes Alors
M20 = 0
M21 = 0 Phase = 101
Fin Si
Si Phase = 101 Alors
Si M29 = 0 Alors M30 = 1
Si non
M30 = 0
Message « Boite présente stir le chariot ! Entrer
les positions verticale et horizontale de la boite »
Lire les positions
Si M28 = 0 Alors
Répéter
Message « La porte de la machine doit être
fermée ! »
Jusqu'à M28 = 1
Fin Si
Phase = 6
Fin Si
Fin Si
Jusqu'à Arrêt de la machine
ors de ma période de stage, les machines sur lesquel
les j e travai llais étaient encore en phase de conception, ce qui
justifie l'absence de dessins d'ensemble de leurs constituants ainsi que leurs
architectures.
Il faut dire que le grand gain pour l'entreprise,
n'était pas l'automatisation de deux machines pouvant être
vendues, la première à 20 millions de centimes et la
deuxième à 35 millions (si on attei nt 10 étages avec un
poids de 200 Kg par étage à titre d'exemple pour la machine
à déplacement unidirectionnel ou 20 Kg par case, 15 cases par
rangées pour la machine à déplacement vectoriel) et qui
ont été déjà commandées aux nombre de trois
jusqu'à la fin de la durée de mon stage. Le grand gain
était de savoir comment utiliser des nouveaux automates qu'on vient
d'acheter et qu'on jamais utilisé au sein l'entreprise, notamment
l'automate Delta DVP 12-SA mais surtout surtout
la commande de cet automate par ordinateur, chose j ugée la
bête noire des automaticiens d'après le patron de l'entreprise
(expert en automatisme avec plus de 25 ans d'expérience en
industrie).
Il faut savoir aussi que sans la présence du stagiaire
Ensamien, ce travail sera très difficilement achevé ou, au moins,
pas dans une telle durée. Car à titre d'exemple, pour commander
une simple carte électronique par ordinateur, il leur a fallut 6 mois de
travail pour la simple raison que ni l'automaticien (le patron) ni
l'informaticien (programmeur en Visual Basic) ne comprend se qui se passe chez
l'autre (l'automate et l'ordinateur n'ont pas la mrme base de temps), ce qui
rendait la communication très floue alors que maintenant les deux
rapports des machines 10 fois plus compliquées que la carte
électronique, un tutorial de la commande par Visual Basic et un autre
tutorial du logiciel de programmation de l'automate sont désormais entre
les mains de l'entreprise. Ceci n'est pas d€ finalement à mes
compétences personnelles, car de base l'automatisme n'est pas le domaine
où je suis vraiment le maître des maîtres mais c'est d€
pl utôt à la formation Arts et Métiers qui vise à
former des i ngénieurs aptes à s'adapter à
«toutes» les situations nouvelles.
Plus que trois mois pour le Projet de Fin d'Etudes tant
attendu, le statut étudiant à l'ENSAM touche bientôt
à sa fin pour sorti r vers une industrie marocaine où
règne encore, les entreprises familiales et les expressions genre :
« Recrutons celui là, c'est le cousin d'Ahmed ».