Réaliser Une Partie Opérative Virtuelle Sous Automgen7

Télécharger au format doc, pdf ou txt
Télécharger au format doc, pdf ou txt
Vous êtes sur la page 1sur 46

Mise à jour le 25 août 2003

Réaliser une partie opérative virtuelle 3D sous Automgen7

Etude préliminaire du système.

Avant de se lancer dans la construction des pièces du système, prenez le temps


d’étudier le système :

- Repérez les pupitres de commande : les boutons, interrupteurs


seront placer sur un ou des pupitres IRIS2D.
Exemple : pour le portail coulissant :
La télécommande se résume à un pupitre de commande IRIS2D avec deux boutons et du
texte.

Le pupitre de commande sera créé sur un autre pupitre


IRIS2D :

- Repérez les différentes classes de pièces (Pièces liées par une


liaison encastrement).
- Repérez les mouvements élémentaires (pivot et/ou glissière) entre
chaque classe de pièces.

Cette étude permet de gagner du temps pendant la conception, car elle influe sur la
technique à employer :

- Utilisation d’AUTOMSIM si vous voulez montrer la représentation


électrique, pneumatique ou hydraulique qui se cache derrière la simulation.
- Utilisation de commande numérique, monostable ou bistable pour les
déplacements en fonction de l’utilisation ou non d’AUTOMSIM.

Réalisation des pièces.

- Pour réaliser les différentes pièces de la partie opérative, nous utiliserons le logiciel
SOLIDWORKS.

Tutorial : Pour ceux qui ne connaissent pas le logiciel, une aide est proposée dans la
section « aide / Manuel pour commencer » de SOLIDWORKS: sur le fichier PDF qui
s’ouvre, se rendre à la section « Débuter en 40 minutes » : toutes les notions de bases s’y
trouvent pour faire rapidement un travail correct.

- Chaque classe de pièces sera créée dans des fichiers séparés.

Important : Evitez de faire des pièces trop détaillées, car vous perdrez du temps, mais
aussi parce que sous IRIS3D cela demandera plus de ressources système : des ralentissements
sont alors possible pour les ordinateurs possédant une petite configuration.

1/46
Mise à jour le 25 août 2003

Important : Nous rappelons l’importance des noms des fichiers qui permet à une autre
personne de reprendre le projet sans chercher la fonction de chaque fichier.

- Une fois que votre pièce est créée sous SOLIDWORKS et enregistrée (format
fichier de pièce *.SLDPRT), exportez la au format VRML (fichier / enregistrez sous /
*.WRL).

Astuce : Donnez le même nom à votre fichier VRML que votre fichier SLDPRT pour
une meilleure tracabilité.

Pour les versions d’AUTOMGEN antérieure à 7.014

Ouvrez le logiciel CROSSROAD, ouvrez votre fichier (file / Open / VRML V1.0),
et sauvez le au format 3DS (file / Save as / 3D studio :

Astuce : Donnez le même nom à votre fichier 3DS que votre fichier VRML pour une
meilleure traçabilité.

- La pièce peut maintenant être importée sous AUTOMGEN7 : Dans votre projet
AUTOMGEN7, faite un clic droit de la souris sur « Ressources », puis « Importer un ou des
fichier 3D » :

Sélectionnez le ou les fichiers 3DS que vous venez de créer, ils s’ajouteront à la liste
des ressources.
Astuce : Si vous avez donné un nom correct à vos fichiers 3DS il ne sera pas
nécessaire de les renommer sous AUTOMGEN7.

Pour les versions d’AUTOMGEN 7.014 et suivantes.

Sous AUTOMGEN7 versions 7.014 et supérieures, il est maintenant possible


d’importer des fichier VRML, sans votre projet AUTOMGEN7. Pour cela, faite un clic droit
de la souris sur « Ressources », puis « Importer un ou des fichier 3D. Sélectionnez le type
VRML et sélectionnez votre fichier.

2/46
Mise à jour le 25 août 2003

Placer les pièces sous AUTOMGEN7.

- Pour réaliser une simulation 3D il faut créer un pupitre IRIS3D : clic droit sur le
module IRIS, puis sélectionnez « Ajouter un pupitre IRIS3D » :

Sur la fenêtre IRIS3D se trouvent différents boutons :

Zoom In Zoom Out Rotations Y Déplacements Rotations X

Astuce : La molette de la souris permet aussi de faire un zoom.

- Une fois le pupitre créé, sélectionnez «Options / Ouvrir la fenêtre de configuration» pour
accéder à l’écran de contrôle des objet 3D:

- Sur la nouvelle fenêtre qui vient de s’ouvrir, on peut maintenant sélectionner l’objet que
l’on a importer précédemment en le sélectionnant dans le menu déroulant puis en cliquant sur
« Ajouter »:

La pièce ajoutée apparaît alors dans la fenêtre de visualisation 3D et dans le cadre de la


fenêtre de configuration.

- En cliquant sur la pièce en 3D ou sur son nom, les informations de celle-ci apparaissent à
droite de la fenêtre de configuration.

Ces informations permettent de positionner les pièces à sa convenance.

Astuce : Commencez par dimensionner le châssis : cela permet de vérifier que les
dimensions du système sont acceptables : faites un zoom sur le châssis, on doit pouvoir se
rapprocher de la pièce suffisamment avant quel ne disparaisse, mais aussi assez rapidement.

3/46
Mise à jour le 25 août 2003

Exemple d’un châssis « suffisamment grand »

- Si la pièce n’est pas aux bonnes dimensions, ou doit être modifiée, voici la
procédure d’actualisation sous AUTOMGEN7 :

- Noter la position actuelle de la pièce (positions, rotations, liaisons..).


- La supprimer d’IRIS3D (bouton droit de la souris sur le nom de l’objet, puis
« supprimer »).
- La supprimer des ressources (bouton droit de la souris sur le fichier adéquat,
puis « supprimer »).
- Reprendre la procédure de création d’une pièce vue ci-dessus.

Astuce : Pensez à mettre des couleurs différentes sur vos pièces pour mieux les
visualiser.

Important : Une fois le châssis aux bonnes dimensions, assurez vous que les rotations
sont bien configurés : En maintenant appuyer le bouton gauche de la souris sur le fond de la
fenêtre IRIS3D, vous pouvez faire tourner votre châssis. Les rotations doivent correspondre :

La maquette doit suivre le mouvement de la souris. Si se


n’est pas le cas, déplacez votre châssis.

Une autre possibilité consiste à changer l’axe de rotation :


Bouton droit de la souris sur votre pupitre IRIS3D, sélectionner « propriétés », ensuite cliquez
sur le bouton « autres propriétés de l’objet » :

4/46
Mise à jour le 25 août 2003

 

Sous l’onglet « Externe » se trouvent différents paramètres dont « /ROTATEONZ »,


changez la dernière lettre par X, Y, ou Z. Pour que la configuration soit prise en compte,
fermer puis re-ouvrez le projet, et observez si le déplacement du châssis correspond mieux à
vos attentes.

- Placez alors toutes les pièces du système dans leurs positions initiales.

Important : Au cours des phases de tests, le système pourra avoir un comportement


aberrant, pensez donc à écrire sur une feuille, la position de chaque pièce pour pouvoir les
replacer rapidement dans leur positon d’origine.

Nous obtenons, pour l’exemple du transpalette, la maquette 3D suivante :

Corps de vérin

Tige
Carton

Palette
Capteur

Tapis

Châssis Rouleau

Exemple du transpalette

Créer des liens, déplacements, rotations, changements de couleur …

Lien.

Pour les objets possédant des liaisons simples (liaison glissière ou pivot) dans un
ensemble complexe, le plus simple est de créer un lien entre les deux objets.

Prenons l’exemple du vérin (avec l’exemple du Transpalette): le corps du vérins bouge


horizontalement tandis que la tige bouge verticalement : pour ne pas avoir à traiter le

5/46
Mise à jour le 25 août 2003

déplacement horizontal de la tige, on lie la tige au corps du vérin. Ainsi le mouvement de la


tige se fera par rapport à un repère local propre au corps du vérin.

Pour lier la tige au vérin : sur la fenêtre de configuration, faire un clic droit sur le nom
de l’objet (« tige » dans le cas de notre exemple), sélectionner « Ajouter un lien » :

Sur la fenêtre qui s’ouvre, sélectionnez « lié à l’objet », puis sélectionnez l’objet dans le
menu déroulant (« vérin » dans notre exemple).

Configuration d’un lien

Important : Avec la mise en place d’un lien entre les pièces, on passe de coordonnées
absolue, à des coordonnées relatives à la pièce avec qui le lien est effectué, il est donc normal
que la pièce change de place avec la mise en place d’un lien, il faut alors la replacer.

Intérêt du lien : simplification du nombre de mouvement à configurer.

Corps Tige horizontale

Vérin rotatif
Tige verticale

Pince

Exemple de la pince

Dans l’exemple de la pince le Corps bouge horizontalement, la pince est liée au vérin
rotatif qui est lié à la tige verticale qui est liée au corps. Ainsi le déplacement horizontal du
corps fait bouger l’ensemble « Pince + Vérin rotatif + Tige verticale + Corps ».

6/46
Mise à jour le 25 août 2003

Translation.

Reprenons l’exemple du transpalette. Pour que la tige du vérin puisse sortir, nous
allons l’animer d’un mouvement de translation : bouton droit de la souris sur la tige,
puis « ajouter une translation ».

Configuration de la liaison.

La configuration de la liaison dépend du système modélisé.

Sans utilisation d’AUTOMSIM.


Dans ce cas on préfèrera utiliser un pilotage monostable ou bistable. Une ou deux
variables booléennes autorise le déplacement entre 2 limites (« Mini » et « Maxi ») durant un
temps précis (« Temps de la course en ms »). C’est le moyen le plus simple pour créer un
mouvement.

Avec utilisation d’AUTOMSIM.


AUTOMSIM permet de connaître la position d’un objet en mouvement (la tige d’un vérin
par exemple) de manière exacte. Ainsi on fait le lien entre AUTOMSIM et IRIS3D grâce à un
pilotage numérique.
On configure la fenêtre de configuration ainsi :

Configuration d’une translation.

 « Pilotage numérique » : un flottant permettra de donner la valeur et donc de la


modifier.
 « Mini » et « Maxi » : ces valeurs donnent l’intervalle admissible par la valeur de
« F203 ». Si vous ignorez les valeurs butoirs, mettez des valeurs du genre [-100 ; +100].
Toutefois il est recommandé par la suite de mettre des valeurs plus précises, pour éviter un
fonctionnement aberrant de la partie opérative.

- Maintenant que l’objet est configuré, nous pouvons nous occuper de la valeur de
« F203 ». Dans notre exemple, la valeur est comprise entre 0,2619 et 0,4.

7/46
Mise à jour le 25 août 2003

Créez un folio que nous intitulerons « Gestion de la simulation » : ce folio contiendra


le programme permettant la simulation des capteurs mais aussi permettant le déplacement des
pièces.

Ce folio sera compilez pour la cible PC (Simulation sur ordinateur) mais devra être
désactivé pour la compilation sur les autres cibles (Transfert sur automate) : bouton droit de la
souris sur le folio, puis « propriétés », mettre l’option « ne pas compiler ce folio » pour
compiler sur une cible autre que PC :

Exemple d’utilisation sans AUTOMSIM.

Pour l’exemple du vérin : nous obtenons le programme suivant :

Ainsi i0 fait monter le vérin et i1 le fait descendre. La valeur 0.01 permet de définir la
vitesse de l’objet.

Astuce : Plutôt que de mettre f203, il est plus lisible de mettre un symbole du type
« _TIGEZ_ » (nom de l’objet + axe de déplacement). Ainsi on sait sur quel objet on travaille,
et sur quel axe, dans le cas de mouvements sur différents axes.

Important : Pensez que les utilisateurs qui vont utiliser la simulation peuvent le conduire à
un fonctionnement aberrant : prendre des précautions sur les condition d’arrêt.

Important : Les utilisateurs devant souvent construire le GRAFCET, les étapes relatives à
la simulation devront avoir une valeur importante (à partir de 9900 par exemple).

Exemple d’utilisation avec AUTOMSIM.


Pour l’exemple du vérin : le schéma AUTOMSIM est le suivant :

8/46
Mise à jour le 25 août 2003

Le pourcentage d’ouverture d’un réducteur de pression peut permettre de régler la vitesse


de déplacement.

« _Posvert_ » est un mot long qui donne la position de la tige (entre 0 et 100000). Pour
pouvoir donner à IRIS la valeur f203 qui est un flottant, on met dans le folio « Gestion de la
simulation » le programme suivant :

Ce code AUTOMGEN permet de transformer _PosVert_ en


un pourcentage de déplacement (l211), puis de le mettre dans
un flottant (_100Vert_)

Ainsi nous obtenons le programme suivant :

Valeur maximale Course

Important : Pour chaque mouvement, testez un petit programme pour valider le


fonctionnement partiel : un test global conduit souvent à de nombreuses erreur.

Rotation

Le principe de la rotation est identique à celui de la translation.

9/46
Mise à jour le 25 août 2003

Changement de couleur.

Le changement de couleur est utile pour animer les capteurs.

Exemple : Capteur de présence palette :



Pour ajouter un changement de couleur, bouton droit de la souris sur le nom de l’objet,
puis choisir « Ajouter un changement de couleur » :

On le configure ainsi:

Dans notre exemple, le capteur de palette en position (correspondant à l’entrée I9) est
à l’état 1 si une palette se trouve devant le capteur. Le programme suivant est alors placé dans
le folio de « Gestion de la simulation » :

Ainsi c’est la position de la palette qui indique si l’entrée est active ou pas.

Attention : Lorsqu’on utilise AUTOMSIM, on active pas directement les entrées


comme dans l’exemple précédent : on passe par un bit interne qui active l’entrée. On obtient
alors le schéma suivant :

Folio de Bit Contact Entrée


gestion interne AUTOMSIM Automate

Changement de
couleur sous
IRIS3D

10/46
Mise à jour le 25 août 2003

Important : Eviter l’utilisation des test de collision : cela demande beaucoup de


ressource. Il est donc préférable d’utiliser la manière décrite ci-dessus.

Autres comportements.

Dans les autres comportements disponibles se trouvent les sons. Ils doivent être
importer dans AUTOMGEN à partir d’un fichier Wave (*.WAV).

Méthodologie

Voici un des ordres possibles et logiques de construction d’une partie opérationnelle


virtuelle :
- Le châssis : dessin, placement, orientation.
- Les autres pièces : dessin, placement, orientation.
- Création des pupitres de commandes sous IRIS2D (si nécessaire)

Pour la suite il est préférable d’avancer fonction par fonction. A chaque fois il faut faire les
étapes :
- Dessin du schéma sous AUTOMSIM (si utilisé).
- Etablir les symboles : pour être rigoureux, il est conseiller d’utiliser la norme
suivante :
o MONTER : verbe à l’infinitif en majuscule, pour les sorties automates.
o bo monter : pour les boutons sous AUTOMSIM
o ca monté : pour les capteurs sous AUTOMSIM.
o VERINX : pour les positions des actionneurs.
- Créer le mouvement désiré sous IRIS3D.
- Faire le programme de gestion associée à chaque capteur d’IRIS3D et chaque
actionneur.
- Tester les mouvements élémentaires un par un.

Une fois touts les mouvements et touts les capteurs opérationnels :


- Saisie du/des GRAFCET de fonctionnement du système.
- Validation du fonctionnement global

BON COURAGE !

11/46
Mise à jour le 25 août 2003

Exemple

Nous allons traiter ici un exemple, que nous allons créer pas à pas. Il s’agit du poste de
production de CD AUTOMGEN de l’IRAI.

Stock de
CD vierges

Pile de CD
mal gravé

Pile de CD
gravés
x
y

Bras manipulateur

Zone de gravure

Le bras manipulateur récupère un CD sur une pile, et le place dans le graveur. Le graveur
envoie une information à l’automate, pour lui indiquer si la gravure est bonne ou pas. En
fonction de l’information, l’automate place le cd sur la pile approprié.

Etude du système.

Le bras possède deux mouvements élémentaires :


- Une translation d’axe Z : pour MONTER et DESCENDRE le bras
manipulateur
- Une rotation d’axe Z : pour déplacer à DROITE et a GAUCHE le bras
manipulateur.

Etude des classes de pièces :


- Le châssis.
- Le bras manipulateur.
- Les axes du bras manipulateur.

12/46
Mise à jour le 25 août 2003

- Les CD (chaque CD constituant une classe de pièce)

Schéma de liaison entre les pièces :

Châssis Liaison pivot Axes


d’axe Z

Liaison glissière
d’axe Z

Liaison
CD Bras
encastrement

Ce schéma permet de déterminer les liens qu’il faudra créer sous AUTOMGEN.

Réalisation du châssis.

Nous passerons rapidement sur la réalisation des pièces sous SOLIDWORKS.


La maquette réelle mesure 36 x 30 x 45 : Un facteur d’échelle 4 sera pris pour avoir une
maquette virtuelle de dimension raisonnable :

Une fois le projet sauvé (au format SLDPRT), on l’exporte au format VRML :

13/46
Mise à jour le 25 août 2003

Sous AUTOMGEN.

- Pour la version 7.014 et supérieure, le fichier VRML est directement importé (sinon
voir le chapitre sur la conversion du fichier ):

 

- On crée un pupitre IRIS3D avec les options par défaut :

- On y insère le châssis :

 

- Vérification de la rotation sur les axes : la rotation est configuré sur Z


(/ROTATEONZ) :

14/46
Mise à jour le 25 août 2003

  

Pour en finir avec le châssis, on place l’axe Z au milieu de la maquette, pour pouvoir faire
tourner la maquette sans déplacement latéral :

- On crée maintenant les axes, que l’on importe, et que l’on place :

- On crée maintenant le bras, que l’on importe, et que l’on place :

Comme nous l’avons vu sur le schéma lors de l’étude du système, le bras est
lié aux axes, nous pouvons donc créer cette liaison afin de placer notre pièce
dans un repère relatif à l’axe :

- On crée maintenant le cd, que l’on importe, et que l’on place :

15/46
Mise à jour le 25 août 2003

16/46
Mise à jour le 25 août 2003

Nous obtenons le résultat suivant :

Mouvements.

Une fois toute nos classes en place, nous allons commencer par programmer les
mouvements élémentaires :

- MONTER le bras.
- DESCENDRE le bras.
- tourner à DROITE le bras.
- tourner à GAUCHE le bras.

Nous les modifierons par la suite.

Type de pilotage

Lorsque on créé un mouvement (translation ou rotation), plusieurs types de pilotage


sont possibles :

- Pas de pilotage : dans le cas de mouvement continu.


- Pilotage bistable : pour des fonctionnement du type vérin double
effet.
- Pilotage monostable : pour des fonctionnement du type vérin
simple effet à rappel par ressort.
- Pilotage numérique est utile lorsque on veut positionner un objet
par rapport à un autre (comme dans notre exemple, le CD sera
placé par rapport au bras dans certains cas).
- Le pilotage AUTOMSIM, permet de créer facilement des mouvements avec
AUTOMSIM sans pouvoir obtenir la valeur de ceux-ci.

Ainsi le type de pilotage dépend de l’utilisation des mouvements.

17/46
Mise à jour le 25 août 2003

Translation bistable.

Dans la fenêtre de configuration d’IRIS3D, on ajoute au bras une translation :

O0 : fera MONTER le bras.


O1 : fera DESCENDRE le bras.

Ainsi la configuration de translation est la suivante :

Position haute Position basse

Créez la table des symboles :

- Créez dans la table des symboles, les mnémoniques associées à O0 et O1


(respectivement MONTER et DESCENDRE) :

Puisque se sont des sorties, le symbole est un verbe à l’infinitif, en majuscule.

18/46
Mise à jour le 25 août 2003

- testez tout de suite la translation : Cliquez sur « Go ! » , la compilation

s’effectue automatiquement , ainsi que la connexion au simulateur PC . Ainsi que le


passage en RUN .

Ouvrez un moniteur de visualisation :

Cliquez sur le bouton de configuration :

Tapez « MONTER » ou allez le chercher dans la table des symboles :

Recommencer l’opération pour visualiser « DESCENDRE » :

Ces boutons permettent de d’inverser l’état actuel des


sorties O0 et O1.

Vous pouvez donc faire monter et descendre le bras


manuellement pour déterminer les valeurs des
positions haute et basse du bras.

19/46
Mise à jour le 25 août 2003

Rotation bistable.

- La rotation du bras est identique à la translation :

- On ajoute les symboles DROITE et GAUCHE dans la table des symboles :

- On teste de la même façon le mouvement rotatif :

Une autre solution consiste à passer par un pupitre IRIS2D :

 

On place 2 boutons poussoir sur le pupitre et on le configure ainsi :

20/46
Mise à jour le 25 août 2003

   


De même pour le bouton GAUCHE, monter et descendre :

Exemple de pupitre IRIS2D pour aider dans la phase de test

Avec AUTOMSIM

AUTOMSIM ne disposant pas encore d’élément électrique de translation et de rotation, nous


utiliserons ceux proposés pour la pneumatique.
Tout d’abord, créons une page AUTOMSIM :

Insérons nos éléments : (bouton droit de la souris)

- Une source de pression hydraulique et un échappement :

- Un distributeur 3/2 à pilotage électrique, ainsi qu’un 4/3 :

21/46
Mise à jour le 25 août 2003

- Un actionneur angulaire, une ventouse et un petit vérin double effet :

Une fois que touts nos composants sont présents, nous fabriquons les schémas
suivants :

Gestion sous AUTOMSIM de la rotation

22/46
Mise à jour le 25 août 2003

Gestion sous AUTOMSIM de la translation

Gestion sous AUTOMSIM de l’aspiration

Nous configurons maintenant la commande électrique du distributeur 3/2 :


Sélectionnez le distributeur puis bouton droit de la souris, sélectionnez « Propriétés » :

Accès au panneau des propriétés

23/46
Mise à jour le 25 août 2003

Configurez le distributeur de la manière suivante :

Configuration du distributeur de l’aspiration des CDs

Le symbole « ASPIRER » correspond ici à notre sortie automate O4. Configurez de


même les autres distributeurs avec les symboles adéquats.

Pour les actionneurs, on configure le vérin double effet ainsi :

Et le vérin rotatif ainsi :

« Pos translation » et « Pos angle » sont deux mots longs que nous n’oublions pas de
déclarer :

Ils représentent la position des l’actionneurs entre 0 et 100000. Pour pouvoir les utiliser, on
insère le code suivant dans le folio de « gestion de la simulation » :

Gestion des mouvements à partir des informations d’AUTOMSIM

Ce code permet de transformer la position, en un pourcentage, de le convertir en mot puis en


flottant. On le stocke dans la variable « _100 angle_ » et « _100 translation_ » :

24/46
Mise à jour le 25 août 2003

Les formules suivantes traduisent les mouvements :

_BRASROTZ_:=2.06*_100 angle_/100-1.28;

Position maximale Course Position minimale

_BRASTRZ_:= 0.3-0.3*_100 translation_/100;

Capteurs.

Les capteurs de fin de course sont les plus faciles et les plus courants à mettre en œuvre :
- Sur la translation, 2 capteurs sont présents :
o I0 « fch » correspondant à la position haute du bras.
o I1 « fcb » correspondant à la position basse du bras.
- Sur la rotation, 4 capteurs sont présents :
o I2 « posVièrge » : bras en face à la pile de CD vierge.
o I3 « posMalGravé » : bras en face à la pile de CD mal gravé.
o I4 « posFinis » : bras en face à la pile de CD gravé.
o I5 « posGraveur » : bras en face du graveur de CD.

On obtient la table des symboles suivante :

A chaque capteur correspond une valeur du déplacement :

Nom du symbole Valeur de détection


Fch 0.4
Fcb 0
posVièrge 0.78
posMalGravé 0.17
posFinis -0.38
posgraveur -1.28

Dans la fenêtre de configuration de la translation :

25/46
Mise à jour le 25 août 2003

Dans la fenêtre de configuration de la rotation :

Enfin il reste le capteur présent sur le bras qui permet la détection d’un CD :

Il sera configuré par la suite.

Testez tout les capteurs, en faisant des mouvement manuels comme précédemment, et en
observant la valeur des capteurs, ou bien en faisant des petits GRAFCET :

Exemple de GRAFCET de test des capteurs

Autres actions.

Certaines sorties ne nécessitent pas de mouvement, C’est le cas de l’aspiration qui


permet au doigt d’attraper un CD. Il ne faut pas oublier de l’insérer dans la table des symboles
car nous en aurons besoin dans la partie suivante :

A ce niveau de la modélisation, nous avons entré dans la table des symboles toutes les
entrées et sorties automates.

Gestion du déplacement du CD.

Pour le déplacement du CD, nous avons besoin d’un folio que nous appellerons
« gestion de la simulation ». Dans ce folio se trouvera tout ce qui concerne la simulation et
uniquement la simulation.

 

26/46
Mise à jour le 25 août 2003

Le CD suit le bras dans son mouvement de rotation et de translation dans certaines conditions.
Tout d’abord il faut trouver l’axe de rotation : après plusieurs tests, nous obtenons la
configuration suivante pour le CD :

Rotation à pilotage numérique sans AUTOMSIM.

Nous utiliserons un pilotage numérique, car cela nous permettra de connaître


exactement la position de l’objet afin de pouvoir placer le CD en face de son logement.

Le bras.

Ainsi nous aurons besoin d’un flottant (à partir de f200). Il sera plus lisible d’utiliser
un symbole : Puisque il s’agit de la rotation du CD sur l’axe Z, nous utiliserons le symbole
« BRASROTZ » :

Dans un premier temps, nous nous occuperons de l’axe de rotation et des bornes
(MINI et MAXI). Pour cela nous créons le GRAFCET suivant dans le folio de « gestion de la
simulation » :

GRAFCET de rotation du bras

Nous configurons la rotation ainsi :

27/46
Mise à jour le 25 août 2003

Rotation du CD

Ainsi l’activation de la sortie O2 permet le déplacement dans un sens et celle de O3 dans


l’autre sens. De plus f203 correspond à la vitesse. Par tâtonnement nous trouvons les valeurs
butoirs (ici -1.28 et 0.78) et une vitesse convenable (ici 0.0093).

Le CD.
Nous utiliserons la variable f202 sou le nom de CDROTZ

Pour la rotation du CD, on peut reprendre le même principe que précédemment :


- Mini : -2.85
- Maxi : 0.947
Toutefois, En réfléchissant un peut, on peut se servir de la variable de rotation du bras
« BRASROTZ » :
- La course de la rotation du CD est de 1.9, la course de la rotation du bras est de
2.09 : soit un rapport de 0.92.
- Afin de réaliser un changement d’échelle on applique la formule suivante :

Angle CD = (ANGLE BRAS_- offset bras) x rapport + offset CD

Avec « offset bras » correspondant à la valeur Mini prise par le bras (0.78), et l’« offset
CD » correspondant à la valeur Mini prise par le CD (-0.94)

GRAFCET de rotation du CD sur l’axe Z

Ce deuxième fonctionnement et meilleur car il permet au CD de suivre plus fidèlement


le bras, sans effet de glissement horizontal du CD par rapport au bras.

Translation à pilotage numérique sans AUTOMSIM.

28/46
Mise à jour le 25 août 2003

Le bras.

Pour faire monter et descendre le CD il faut connaître la position du bras. Pour cela
nous utiliserons plus un pilotage bistable mais un pilotage numérique. La configuration de la
translation du bras est donc la suivante :

Translation à pilotage numérique du bras

Dans le folio de « gestion de la simulation », on insère le GRAFCET suivant :

GRAFCET de translation du bras

Si on teste MONTER et DESCENDRE le bras, il doit avoir un comportement


identique au pilotage précédent.

Le CD.

Maintenant, nous pouvons placer le CD de manière relative au bras (comme pour un


lien mais sans changer de repère). Nous utiliserons la variable f204 pour le déplacement :

29/46
Mise à jour le 25 août 2003

GRAFCET de translation du CD

Le capteur de présence d’un CD.

Puisque nous connaissons la position du CD dans l’espace, nous pouvons détecter la


présence du CD au niveau du bras :

Gestion du capteur de présence CD

F240 vérifie la hauteur du CD par rapport au bras. F242 et F243 vérifie l’angle entre le bras et
le CD.

Fonctionnement.

Maintenant que toutes les fonctionnalités marchent, vous pouvez créer un nouveau
folio pour le fonctionnement :

30/46
Mise à jour le 25 août 2003

GRAFCET simplifié de simulation de la gravure

Ce GRAFCET permet d’éviter de simuler le dialogue avec le PC.

Améliorations.

Plusieurs améliorations sont possibles :

- Gestion du lâché de CD en l’air : la pesanteur.

- Empêcher de monter et descendre en même temps : ce genre de sécurité est


important pour éviter des aberrations dans le fonctionnement.

- Gestion du Graveur : Communication et fermeture du tiroir

- Gestion de plusieurs CD.

- Visualisation de tout les capteur en 3D.

Gestion de la pesanteur.

La pesanteur se fait sentir lorsque le CD est en l’air et que l’aspiration et arrêté. On


obtient donc le GRAFCET suivant :

31/46
Mise à jour le 25 août 2003

Gestion de translation du CD avec effet de la pesanteur

Nous resterons sur une chute verticale du fait de la longueur du déplacement.

Gestion du graveur.

En modifiant légèrement la structure, on supprime le faux


graveur. On le construit dans un fichier à part, que l’on importe :

On crée, pour le graveur une translation d’axe X :

La variable numérique de gestion de la translation du graveur est


« GRAVEURTRX » :

On crée, pour le CD une translation d’axe X :

32/46
Mise à jour le 25 août 2003

La variable numérique de gestion de la translation du CD est « CDTRX » :

On place dans le folio de « gestion de la simulation », le GRAFCET suivant :

GRAFCET de gestion du graveur

33/46
Mise à jour le 25 août 2003

La variable Com permet la simulation de la communication du PC vers l’automate :

Gestion de plusieurs CD.

Nous allons, dans cette partie, permettre au système de gérer 10 CD. Pour cela nous
allons utiliser l’adressage indexé. L’adressage indexé n’étant pas prévu par le langage CEI,
l’essentiel du programme sera fait en langage AUTOMGEN.

Il existe 3 valeurs caractéristiques pour le CD :


- Sa valeur de rotation sur l’axe Z : CDROTZ
- Sa valeur de translation sur l’axe Z : CDTRZ
- Sa valeur de translation sur l’axe X : CDTRX

Nous aurons donc besoins de 10 de chaque variable pour gérer les 10 CD. La gestion
de la mémoire est donc la suivante :

F300 Rotation sur Z CD1


1 CD2
2 CD3
3 CD4
4 CD5
5 CD6
6 CD7
7 CD8
8 CD9
9 CD10
F310 Translation sur Z CD1
1 CD2
2 CD3
3 CD4
4 CD5
5 CD6
6 CD7
7 CD8
8 CD9
9 CD10
F320 Translation sur X CD1
1 CD2
2 CD3
3 CD4
4 CD5
5 CD6
6 CD7
7 CD8
8 CD9

34/46
Mise à jour le 25 août 2003

9 CD10
La variable m900 servira d’index pour se déplacer dans les tableaux :

Les CD pouvant se trouvé dan un ordre quelconque sur les différentes piles, nous
utiliserons des tableaux pour indiquer le numéro du CD sur chaque pile. Une pile pouvant
recevoir au maximum 10 CD nous créons 3 tableaux de 10 cases :

M330 Pile de CD vierge Pos1


1 2
2 Pos3
3 Pos4
4 Pos5
5 Pos6
6 Pos7
7 Pos8
8 Pos9
9 Pos10
M340 Pile de CD mal gravé Pos1
1 Pos2
2 Pos3
3 Pos4
4 Pos5
5 Pos6
6 Pos7
7 Pos8
8 Pos9
9 Pos10
M350 Pile de CD gravé Pos1
1 Pos2
2 Pos3
3 Pos4
4 Pos5
5 Pos6
6 Pos7
7 Pos8
8 Pos9
9 Pos10

M360 (Num graveur) recevra le numéro du CD en train se faire graver :

Nous utiliserons des variables pour indiquer le nombre de CD sur chaque pile :

Ils seront utilisés pour se déplacer dans les tableaux, d’où -1 correspond à pas de CD.

35/46
Mise à jour le 25 août 2003

M901 (Courant) recevra le numéro du CD présent dans le bras (-1 si pas de CD) :

Gestion sous IRIS2D.

Sous IRIS2D nous créons un bouton « mettre un CD vierge » :


Nous le configurons ainsi :

« bo init » sera un bit interne pour la simulation :

Pour pouvoir utilisé le bit 900 il faut le déclaré. Pour cela on place dans le folio en
commentaire:
Cela permet d’utiliser 1000 bits utilisateur.

Création des CD.

Nous devons créer des CD identiques à celui que nous avons créé précédemment :

La seule différence vient des variables utilisées pour la


rotation et les translations, puisque les numéros évoluent de
300 à 319 pour la rotation, de 310 à 319 et de 320 à 329 pour
les translations.
Pensez à changer les couleurs pour les différentier !

Initialisation des positions.

Afin qu’au lancement de l’application, il n’y ai aucun CD sur la maquette, on


remplace le code de l’étape 9905 par le suivant :

36/46
Mise à jour le 25 août 2003

Etape de mise en position initiale de la partie opérative

Ainsi, on indique qu’il n’y a pas de CD dans le bras (Courant=-1), on met en position
initiale le bras et le graveur, tout les CD sont supprimés (libre=0 et boucle WHILE), et les
tableaux sont initialisés (seconde boucle WHILE), enfin on indique qu’il n’y a pas de CD sur
les piles (nb X=-1) ni dans le graveur (num graveur=-1).

Cela permet de mettre tout les CD loin de la maquette, donnant l’illusion qu’ils ont
disparut. Afin de les remettre en position nous utiliserons une variable donnant le numéro du
CD se trouvant loin de la maquette et pouvant être mis en haut de la pile de CD vierge :

Ainsi on remplace le code de l’étape 9906 par le suivant :


#end_st
(1) IF (#_bo init_.(_fch_._posVierge_+/_posVierge_)
.(_libre_<10+_nb Malgravé_>>-1+_nb Finis_>>-1))
THEN
(5) LDA 330
ADA _nb vierge_
STA _index_
LDA m(900)
ADA 310
STA _index_
LDA _nb Vierge_
ITF aaa
MLA 0.004R
ADA 0.008R
STA f950
IF (f(900)>f950)
THEN
LDA f950
STA f(900)
ENDIF

37/46
Mise à jour le 25 août 2003

inc _nb Vierge_


(4) IF (_libre_>9 . _nb MalGravé_=-1._nb Finis_>>-1)
THEN
lda 350
ada _nb Finis_
sta _index_
lda 330
ada _nb vierge_
sta m980
lda m(900)
sta m(980)
dec _nb Finis_
ENDIF
(3)
IF (_libre_>9 . _nb MalGravé_>>-1)
THEN
lda 340
ada _nb MalGravé_
sta _index_
lda 330
ada _nb vierge_
sta m980
lda m(900)
sta m(980)
dec _nb MalGravé_
ENDIF

(2) IF (_libre_<10)
THEN
lda 330
ada _nb Vierge_
sta _index_
lda _libre_
sta m(900)
inc _libre_
ENDIF

lda 330
ada _nb Vierge_
sta m980

lda 300
ada m(980)
sta _index_
lda -0.95R
sta f(900)

lda 310
ada m(980)
sta _index_
lda 0.1R
sta f(900)

lda 320
ada m(980)
sta _index_
lda -0.25R
sta f(900)

ENDIF;
#begin_st

Mis en position d’un CD libre en fonction du nombre de CD

Etudions ce petit programme :

- Pour commencer (1), le programme s’exécute sur les fronts montant du bouton
« insérer un CD », ainsi que sur d’autre condition que nous verrons par la suite.

38/46
Mise à jour le 25 août 2003

Ensuite (2), si tout les CD n’ont pas été placé sur la maquette (libre<10), alors on en
place un. Pour cela, on se place sur une case libre on y rajoute le numéro du CD que l’on va
faire apparaître (libre) :
Adresse de début du tableau
lda 330

ada _nb Vierge_ Nième Case

sta _index_ On place le résultat dans la variable m900

lda _libre_
Numéro du CD à placer

sta m(900)
On place le numéro dans la bonne case du tableau

inc _libre_
Le numéro du prochain CD à placer
....

lda 330
ada _nb Vierge_
On place l’adresse de la « nb Vierge » case du tableau
sta m980 de la pile de CD vierge dans la variable m980
Initialisation de lda 300
ada m(980) Permet de récupérer le numéro du CD présent
la rotation sur Z sta _index_
lda -0.95R en haut de la pile
sta f(900)

lda 310
Initialisation de la ada m(980)
sta _index_
translation sur Z lda 0.1R
sta f(900)

lda 320
Initialisation de la ada m(980)
translation sur X sta _index_
lda -0.25R
sta f(900)

Mais si on teste se programme, une fois que nous avons placé les 10 CD, nous ne
pourrons plus en mettre d’autres. Ainsi on rajoute un morceau de programme (3) qui permet
de récupérer un CD de la pile de CD mal gravé, pour le remettre sur la pile de CD vierge. La
structure est voisine de la précédente :
IF (_libre_>9 . _nb MalGravé_>>-1)
THEN
lda 340
La différence provient de
ada _nb MalGravé_ l’adresse de départ du tableau
sta _index_
lda 330
et de la variable utilisé.
ada _nb vierge_
sta m980
lda m(900)
sta m(980)
dec _nb MalGravé_ On enlève un CD de la pile adéquate
ENDIF

De même pour la pile CD correctement gravé (4) s’il n’y a plus de CD mal gravé :
IF (_libre_>9 . _nb MalGravé_=-1._nb Finis_>>-1)

39/46
Mise à jour le 25 août 2003

THEN
lda 350
ada _nb Finis_
sta _index_
lda 330
ada _nb vierge_
sta m980
lda m(900)
sta m(980)
dec _nb Finis_
ENDIF

Ainsi, la maquette pourra fonctionner indéfiniment.

Le morceau de programme (5) sera étudié avec la gestion de la pesanteur. En effet il règle le
cas d’appuies répétés à une certaine vitesse.

Gestion de la pesanteur.

En fait le bras ne pose pas le CD en haut de la pile, mais il le lâche à une certaine
hauteur (position haute). Il faut donc mettre en place une simulation de la pesanteur. Celle-ci
sera linéaire. Afin de pouvoir faire plusieurs mouvements simultanément, nous avons
décomposé la maquette en 4 zones correspondant à chaque piquet :
- Zone CD vierge,
- Zone CD mal gravé,
- Zone CD finis,
- Zone Graveur.
- Remarque il existe une cinquième zone correspondant à l’ensemble des zones
non couverte par les zones précédente dont nous nous occuperons plus tard.

Dans un premier temps, nous allons nous intéresser au cas de la zone « CD vierge »
car nous pourrons tester tout de suite son effet.

Gestion de la pesanteur pour les CD vierges

En fait la position finale (sur l’axe Z) des CD vierges suit une fonction linéaire :

40/46
Mise à jour le 25 août 2003

Numéro Coordonnées
finales sur Z
0 0.008
1 0.0012
2 0.0016
… …

Cette fonction est donc Z = 0.004 x Position sur la pile + 0.008


IF (_nb Vierge_!-1) Aucune gestion s’il n’y as pas de CD sur la pile
THEN
LDA 330
ADA _nb Vierge_
STA _index_
LDA m(900)
ADA 310 F980 prend la valeur de Z du dernier CD de la
STA _index_
LDA f(900) pile
sta f980

LDA _nb Vierge_


ITF aaa Calcul de la position finale
MLA 0.004R
ADA 0.008R
STA f950

IF (f980>f950)
THEN
LDA f(900) Changement de position du CD s’il n’est pas à sa
ADA -0.004R position finale
STA f(900)
ENDIF
ENDIF
Programme de gestion de la pesanteur pour les CD vierges

Ce programme permet donc de gérer la position du dernier CD de la pile. Mais si on


teste le programme, on s’aperçoit que lorsque on clique rapidement sur le bouton « mettre un
CD vierge », celui qui descendait reste figé tandis qu’un autre apparaît. Ainsi il faut traité le
cas de l’apparition d’un CD alors que le précédent n’est pas à sa position finale.
Ceci est réalisé dans l’étape (5) : avant de rajouter un autre CD sur la pile, on place le
CD précédent à sa valeur finale.

Le code précédent est adapté pour les autres zones :

41/46
Mise à jour le 25 août 2003

Pour la zone de gravure, le code est plus simple car il ne peut y avoir qu’un CD dans
cette zone.

Gestion du capteur de présence.

La gestion du capteur est un peu différente par rapport au programme précédent. Plutôt
que de chercher la position dans l’espace de tout les CD, nous ne nous en occuperons que de
ceux qui sont en haut des piles, en fonction de la position de la pince.
f240:=_BRASTRZ_-0.016;
f242:=(_BRASROTZ_-0.7812)*0.92-1.08;
f243:=(_BRASROTZ_-0.7812)*0.92-0.80;
#end_st

IF (_courant_!-1)
THEN Si un CD est dans la pince alors
SET _présence CD_
ENDIF
le capteur de présence est à 1.

ELSE
IF (_PosVierge_)
THEN En fonction de la position en
LDA 330 récupère le numéro du CD en
ADA _nb Vierge_
STA _index_ haut de la bonne pile.
LDA m(900)
STA _index_
ENDIF

IF (_PosMalgravé_)
THEN
LDA 340
ADA _nb MalGravé_
STA _index_
LDA m(900)
STA _index_
ENDIF

IF (_PosFinis_)
THEN
LDA 350

42/46
Mise à jour le 25 août 2003

ADA _nb Finis_


STA _index_
LDA m(900)
STA _index_
ENDIF

IF (_PosGraveur_)
THEN
LDA _num Graveur_
STA _index_
ENDIF

LDA _index_
ADA 300
Récupération de l’angle et de la
STA _index_ hauteur du CD.
LDA f(900)
STA _CDROTZ_
LDA _index_
ADA 10
STA _index_
LDA f(900)
STA _CDTRZ_
IF ((f240<_CDTRZ_) AND (f242<_CDROTZ_) AND (_CDROTZ_<f243))
THEN
SET _présence CD_ L’état du capteur est défini par la
ENDIF
ELSE valeur de l’angle et de la hauteur
RES _présence CD_ du CD par rapport au bras.
ENDIF
ENDIF
#begin_st

Gestion des mouvements

Les mouvements des CD se font par rapport à la position du BRAS :

Cela permet d’éviter un mouvement du CD par rapport au bras.

Gestion du graveur.

43/46
Mise à jour le 25 août 2003

On simplifie la gestion du graveur en la décomposant en 2 parties : le graveur en lui-


même et le CD qui si trouve dessus.

Pour le graveur, le GRAFCET est celui-ci :

On rajoute à l’étape 9906, pour ne pas gêner l’initialisation en 9905, le code suivant :

Ainsi le CD se déplace comme le graveur, comme si le CD était posé sur le graveur.

Gestion des piles.

Pour faire passer un CD d’une pile à une autre on rajoute le code suivant :

44/46
Mise à jour le 25 août 2003

Le principe est le suivant :

- quand le bras enlève un CD d’une pile, on place le numéro correspondant dans


la variable « courant » et on décrément le nombre de CD de la pile approprié.
- Quand le bras lâche un CD en dessus d’une pile, on incrémente le nombre de
CD de la pile approprié et on place la valeur de la variable courant dans la
bonne case du tableau correspondant.

45/46
Mise à jour le 25 août 2003

46/46

Vous aimerez peut-être aussi