WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Automatisme d'un magasin de stockage commandé par ordinateur

( Télécharger le fichier original )
par Youssef MELLOUKI
ENSAM-Maroc - Stage Ingénieur 2006
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

5 - Description technique détaillée de la machine :

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 ».

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Les esprits médiocres condamnent d'ordinaire tout ce qui passe leur portée"   François de la Rochefoucauld