Fichier PDF

Partage, hébergement, conversion et archivage facile de documents au format PDF

Partager un fichier Mes fichiers Convertir un fichier Boite à outils Recherche Aide Contact



Les annexes .pdf



Nom original: Les_annexes.pdf
Titre: Les_annexes
Auteur: Etienne

Ce document au format PDF 1.4 a été généré par PDFCreator Version 0.9.8 / GPL Ghostscript 8.64, et a été envoyé sur fichier-pdf.fr le 05/12/2009 à 12:42, depuis l'adresse IP 79.81.x.x. La présente page de téléchargement du fichier a été vue 1441 fois.
Taille du document: 224 Ko (26 pages).
Confidentialité: fichier public




Télécharger le fichier (PDF)









Aperçu du document


ANNEXE 1

ANNEXE 2

ANNEXE 3
/*
TRIAGE DES RUBIS
* $Id: Program6.cs 16 2009-02-11 15:37:11Z PeS $
*
* Copyright © 2008, Asyril SA
* All rights reserved.
* Proprietary software. Use is subject to license terms.
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Windows.Forms;
using System.Net.Sockets;
using System.Net;
using System.IO;
using Asyril.Robot;
using Asyril.Vision;
namespace AsyrilRoboticsInterface
{
class Program6
{
private RobotInterface robotInterface;
private VisionInterface visionInterface;
private Thread programmThread;
private ProgrammState programmState = ProgrammState.STOPPED;
public Program6(RobotInterface robotInterface, VisionInterface visionInterface)
{
this.robotInterface = robotInterface;
this.visionInterface = visionInterface;
}
public ProgrammState State
{
get
{
return programmState;
}
}
public void start()
{
if (programmState != ProgrammState.RUNNING)
{
programmThread = new Thread(new ThreadStart(run));
programmThread.Start();
}
}
public void stop()
{
if (programmState == ProgrammState.RUNNING)
{
try
{
programmThread.Join(1);
programmThread.Abort();
programmThread = null;

I

ANNEXE 3
programmState = ProgrammState.STOPPED;
}
catch (Exception e)
{
programmState = ProgrammState.ERROR;
MessageBox.Show(e.ToString(), "Programm6 Warning", MessageBoxButtons.OK,
MessageBoxIcon.Warning);
}
}
}
private void run()
{
programmState = ProgrammState.RUNNING;
//Chargement du modèle du Rubis2.
visionInterface.loadModelSettings(@"C:\Documents and
Settings\Administrateur.AIP-PRIMECAFC\Mes documents\Piece\rubis2.xml");
//Déclaration des variables utilisées
bool trouv =false; //Variable si pièce trouvée = vrai
bool pieceok = false; //Variable si ligne non pleine = vrai
double x =0.02; //Variable d'incrémentation de décalage sur la ligne.
int nbpiece =1; //Initialisation de la variable définissant le nombre de pièces
rangées.
//Boucle DO While
do
{
//Prise d'une image.
visionInterface.takeImage();
//Condition si la ligne de Rubis2 n'est pas terminée.
if (nbpiece < 15)
pieceok = true;
else pieceok = false;
//Détéction d'un Rubis2.
if (visionInterface.partFound())
{trouv = true;}
else {trouv = false;
}
robotInterface.writeDigitalOutput(0, false);
//Transférer les coordonnées de la vision au robot et saisie du Rubis2.
RobotPosition searchPosition = new RobotPosition();
searchPosition.X = visionInterface.getXPosition();
searchPosition.Y = visionInterface.getYPosition();
searchPosition.RZ = 0;
searchPosition.Z = 0.00950;
robotInterface.movePAP(searchPosition, 0.8, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, true);
//Déplacement du Rubis2 sur la ligne de rangement.

II

ANNEXE 3
RobotPosition searchPosition1 = new RobotPosition();
searchPosition1.X = x;
searchPosition1.Y = 0.022;
searchPosition1.RZ = 0;
searchPosition1.Z = 0.00957;
robotInterface.movePAP(searchPosition1, 0.8, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
//Décalage sur X pour la ligne de rangement et incrémantation.
x = x - 0.003;
nbpiece = nbpiece + 1;
}
while (trouv == true && pieceok == true);
{
//Chargement du modèle du Rubis1.
visionInterface.loadModelSettings(@"C:\Documents and
Settings\Administrateur.AIP-PRIMECAFC\Mes documents\Piece\rubis1.xml");
//RAZ des variables.
trouv = false;
pieceok = false;
double y = 0.018;
nbpiece = 1;
//Boucle DO While
do
{
//Prendre Image.
visionInterface.takeImage();
//Condition si la ligne de Rubis1 n'est pas terminée.
if (nbpiece < 15)
pieceok = true;
else pieceok = false;
//Détéction d'un Rubis1.
if (visionInterface.partFound())
{ trouv = true; }
else
{
trouv = false;
}
robotInterface.writeDigitalOutput(0, false);
//Transférer les coordonnées de la vision au robot et saisie du Rubis1.
RobotPosition searchPosition = new RobotPosition();
searchPosition.X = visionInterface.getXPosition();
searchPosition.Y = visionInterface.getYPosition();
searchPosition.RZ = 0;
searchPosition.Z = 0.00950;
robotInterface.movePAP(searchPosition, 0.3, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);

III

ANNEXE 3
robotInterface.writeDigitalOutput(0, true);
//Déplacement du Rubis1 sur la ligne de rangement.
RobotPosition searchPosition1 = new RobotPosition();
searchPosition1.X = 0.0278;
searchPosition1.Y = y;
searchPosition1.RZ = 0;
searchPosition1.Z = 0.00957;
robotInterface.movePAP(searchPosition1, 0.3, 0.005,
RobotMotionMode.TIME, TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
//Décalage sur Y pour la ligne de rangement et incrémantation.
y = y - 0.002;
nbpiece = nbpiece + 1;
}
while (trouv == true && pieceok == true);
//Mouvements rapides à la vitesse maximale du robot:
//Remontée du robot.
RobotPosition searchPosition3 = new RobotPosition();
searchPosition3.X = 0.0278;
searchPosition3.Y = -0.012;
searchPosition3.RZ = 0;
searchPosition3.Z = 0.015;
robotInterface.moveTo(searchPosition3, 3, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
//Déplacement à la position initiale n°1 à la vitesse maximale.
RobotPosition searchPosition2 = new RobotPosition();
searchPosition2.X = 0.00368;
searchPosition2.Y = 0.00303;
searchPosition2.RZ = 0;
searchPosition2.Z = 0.03;
robotInterface.moveTo(searchPosition2, 0.1, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
//Déplacement à la position 2 à la vitesse maximale.
RobotPosition searchPosition4 = new RobotPosition();
searchPosition4.X = -0.026;
searchPosition4.Y = 0.020;
searchPosition4.RZ = 0;
searchPosition4.Z = 0.0176;
robotInterface.moveTo(searchPosition4, 0.1, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);

IV

ANNEXE 3
robotInterface.writeDigitalOutput(0, false);
//Déplacement à la position 3 à la vitesse maximale.
RobotPosition searchPosition5 = new RobotPosition();
searchPosition5.X = 0.02478;
searchPosition5.Y = -0.0157;
searchPosition5.RZ = 0;
searchPosition5.Z = 0.0176;
robotInterface.moveTo(searchPosition5, 0.1, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
//Déplacement à la position 4 à la vitesse maximale.
RobotPosition searchPosition6 = new RobotPosition();
searchPosition6.X = -0.026;
searchPosition6.Y = -0.0157;
searchPosition6.RZ = 0;
searchPosition6.Z = 0.0176;
robotInterface.moveTo(searchPosition6, 0.1, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
//Déplacement à la position 5 à la vitesse maximale.
RobotPosition searchPosition7 = new RobotPosition();
searchPosition7.X = 0.02478;
searchPosition7.Y = 0.020;
searchPosition7.RZ = 0;
searchPosition7.Z = 0.0176;
robotInterface.moveTo(searchPosition7, 0.1, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
//Retour à la position initiale n°1 à la vitesse maximale.
RobotPosition searchPosition8 = new RobotPosition();
searchPosition8.X = 0.00368;
searchPosition8.Y = 0.00303;
searchPosition8.RZ = 0;
searchPosition8.Z = 0.03;
robotInterface.moveTo(searchPosition8, 0.1, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
{
programmState = ProgrammState.STOPPED;
}
}
}
}
}

V

ANNEXE 4
/*
* $Id: Program9.cs 16 2009-02-11 15:37:11Z PeS $
*
* Copyright © 2008, Asyril SA
* All rights reserved.
* Proprietary software. Use is subject to license terms.
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Windows.Forms;
using Asyril.Robot;
using Asyril.Vision;
namespace AsyrilRoboticsInterface
{
class Program9
{
private RobotInterface robotInterface;
private VisionInterface visionInterface;
private Thread programmThread;
private ProgrammState programmState = ProgrammState.STOPPED;
public Program9(RobotInterface robotInterface, VisionInterface visionInterface)
{
this.robotInterface = robotInterface;
this.visionInterface = visionInterface;
}
public ProgrammState State
{
get
{
return programmState;
}
}
public void start()
{
if (programmState != ProgrammState.RUNNING)
{
programmThread = new Thread(new ThreadStart(run));
programmThread.Start();
}
}
public void stop()
{
if (programmState == ProgrammState.RUNNING)
{
try
{
programmThread.Join(1);
programmThread.Abort();
programmThread = null;
programmState = ProgrammState.STOPPED;
}
catch (Exception e)
{

I

ANNEXE 4
programmState = ProgrammState.ERROR;
MessageBox.Show(e.ToString(), "Programm9 Warning", MessageBoxButtons.OK,
MessageBoxIcon.Warning);
}
}
}
private void run()
{
programmState = ProgrammState.RUNNING;
//Chargement du modèle de pièce n°1.
visionInterface.loadModelSettings(@"C:\Documents and
Settings\Administrateur.AIP-PRIMECAFC\Mes documents\Piece\ARIA31082.xml");
//Prendre Image
visionInterface.takeImage();
//Test si la pièce n°1 est détectée.
if (visionInterface.partFound())
{
robotInterface.writeDigitalOutput(0, false);
//Transférer les coordonnées de la vision au robot et prise de la pièce n°1.
RobotPosition searchPosition10 = new RobotPosition();
searchPosition10.X = visionInterface.getXPosition();
searchPosition10.Y = visionInterface.getYPosition();
searchPosition10.RZ = 0;
searchPosition10.Z = 0.0085;
robotInterface.movePAP(searchPosition10, 0.6, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, true);
RobotPosition Position11 = new RobotPosition();
//Déplacement du robot avec la pièce n°1, au centre de l'image.
Position11.X = 0.0;
Position11.Y = -0.005;
Position11.RZ = 0;
Position11.Z = 0.0084;
robotInterface.movePAP(Position11, 1, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
//Retrait du robot: mouvement vertical.
RobotPosition Position12 = new RobotPosition();
Position12.X = 0.0;
Position12.Y = -0.005;
Position12.RZ = 0;
Position12.Z = 0.015;
robotInterface.moveTo(Position12, 2, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);

II

ANNEXE 4
robotInterface.writeDigitalOutput(0, false);
//Retrait du robot: mouvement horizontal.
RobotPosition Position13 = new RobotPosition();
Position13.X = 0.0;
Position13.Y = 0.013;
Position13.RZ = 0;
Position13.Z = 0.015;
robotInterface.moveTo(Position13, 0.1, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
}
//Prendre une nouvelle Image
visionInterface.takeImage();
//Test si pièce n°1 est détectée une nouvelle fois.
if (visionInterface.partFound())
{
//Arrêt de l'aspiration.
robotInterface.writeDigitalOutput(0, false);
//Transférer les coordonnées de la vison au robot et prise de la pièce n°1.
RobotPosition searchPosition14 = new RobotPosition();
searchPosition14.X = visionInterface.getXPosition();
searchPosition14.Y = visionInterface.getYPosition();
searchPosition14.RZ = 0;
searchPosition14.Z = 0.0085;
robotInterface.movePAP(searchPosition14, 1, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, true);
//Déplacement de la pièce n°1 sur la montre à sa position.
RobotPosition Position15 = new RobotPosition();
Position15.X = 0.00257;
Position15.Y = 0.01925;
Position15.RZ = 0;
Position15.Z = 0.011;
robotInterface.movePAP(Position15, 1, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
//Dépose de la piece n°1 à sa place.
RobotPosition Position16 = new RobotPosition();
Position16.X = 0.00257;
Position16.Y = 0.01925;
Position16.RZ = 0;
Position16.Z = 0.0093;
robotInterface.moveTo(Position16, 1.5, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);

III

ANNEXE 4
}
else
{
MessageBox.Show("Pièce n°1 non détectée !");
}
//Chargement du modèle de la pièce n°2.
visionInterface.loadModelSettings(@"C:\Documents and
Settings\Administrateur.AIP-PRIMECAFC\Mes documents\Piece\ARIA31100.xml");
//Prendre Image.
visionInterface.takeImage();
//Test si la pièce n°2 est détectée.
if (visionInterface.partFound())
{
//Arrêt de l'aspiration.
robotInterface.writeDigitalOutput(0, false);
//Transférer les coordonnées de la vision au robot et prise de la pièce n°2.
RobotPosition searchPosition20 = new RobotPosition();
searchPosition20.X = visionInterface.getXPosition();
searchPosition20.Y = visionInterface.getYPosition();
searchPosition20.RZ = 0;
searchPosition20.Z = 0.0065;
robotInterface.movePAP(searchPosition20, 0.2, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, true);
//Déplacement du robot avec la pièce n°2, au centre de l'image.
RobotPosition Position21 = new RobotPosition();
Position21.X = 0.0;
Position21.Y = -0.005;
Position21.RZ = 0;
Position21.Z = 0.0065;
robotInterface.movePAP(Position21, 0.2, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
//Retrait du robot: mouvement vertical.
RobotPosition Position22 = new RobotPosition();
Position22.X = 0.0;
Position22.Y = -0.005;
Position22.RZ = 0;
Position22.Z = 0.015;
robotInterface.moveTo(Position22, 1.5, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
//Retrait du robot: mouvement horizontal.
RobotPosition Position23 = new RobotPosition();

IV

ANNEXE 4
Position23.X = 0.0;
Position23.Y = 0.013;
Position23.RZ = 0;
Position23.Z = 0.015;
robotInterface.moveTo(Position23, 0.1, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
}
//Prendre une nouvelle Image.
visionInterface.takeImage();
//Test si la pièce n°2 est détectée une nouvelle fois.
if (visionInterface.partFound())
{
//Arrêt de l'aspiration.
robotInterface.writeDigitalOutput(0, false);
//Transférer les coordonnées de la vision au robot et prise de la pièce n°2.
RobotPosition Position24 = new RobotPosition();
Position24.X = visionInterface.getXPosition();
Position24.Y = visionInterface.getYPosition();
Position24.RZ = 0;
Position24.Z = 0.0065;
robotInterface.movePAP(Position24, 1, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, true);
//Déplacement de la pièce n°2 sur la montre à sa position.
RobotPosition Position25 = new RobotPosition();
Position25.X = -0.001213;
Position25.Y = 0.01349;
Position25.RZ = 0;
Position25.Z = 0.011;
robotInterface.movePAP(Position25, 1, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
//Dépose de la pièce n°2 à sa place.
RobotPosition Position26 = new RobotPosition();
Position26.X = -0.001213;
Position26.Y = 0.01349;
Position26.RZ = 0;
Position26.Z = 0.0071;
robotInterface.moveTo(Position26, 1.5, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
}
else
{
MessageBox.Show("Pièce n°2 non détectée !");
}

V

ANNEXE 4
//Chargement du modèle de la pièce n°3.
visionInterface.loadModelSettings(@"C:\Documents and
Settings\Administrateur.AIP-PRIMECAFC\Mes documents\Piece\ARIA33100.xml");
//Prendre Image.
visionInterface.takeImage();
//Test si la piece n°3 est détectée.
if (visionInterface.partFound())
{
//Arrêt de l'aspiration.
robotInterface.writeDigitalOutput(0, false);
//Transférer des coordonnées de la vision au robot et prise de la pièce n°3.
RobotPosition searchPosition30 = new RobotPosition();
searchPosition30.X = visionInterface.getXPosition();
searchPosition30.Y = visionInterface.getYPosition();
searchPosition30.RZ = 0;
searchPosition30.Z = 0.00669;
robotInterface.movePAP(searchPosition30, 0.2, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, true);
//Déplacement du robot avec la pièce n°3, au centre de l'image.
RobotPosition Position31 = new RobotPosition();
Position31.X = 0.0;
Position31.Y = -0.005;
Position31.RZ = 0;
Position31.Z = 0.00669;
robotInterface.movePAP(Position31, 0.2, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
//Retrait du robot: mouvement vertical.
RobotPosition Position32 = new RobotPosition();
Position32.X = 0.0;
Position32.Y = -0.005;
Position32.RZ = 0;
Position32.Z = 0.015;
robotInterface.moveTo(Position32, 1.5, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
//Retrait du robot: mouvement horizontal.
RobotPosition Position33 = new RobotPosition();
Position33.X = 0.0;
Position33.Y = 0.013;
Position33.RZ = 0;
Position33.Z = 0.015;

VI

ANNEXE 4
robotInterface.moveTo(Position33, 0.1, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
}
//Prendre une nouvelle Image.
visionInterface.takeImage();
//Test si piece n°3 est détectée une nouvelle fois.
if (visionInterface.partFound())
{
//Arrêt de l'aspiration.
robotInterface.writeDigitalOutput(0, false);
//Transférer les coordonnées de la vision au robot et prise de la pièce n°3.
RobotPosition searchPosition34 = new RobotPosition();
searchPosition34.X = visionInterface.getXPosition();
searchPosition34.Y = visionInterface.getYPosition();
searchPosition34.RZ = 0;
searchPosition34.Z = 0.00669;
robotInterface.movePAP(searchPosition34, 1, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, true);
//Déplacement de la pièce n°3 sur la montre à sa position.
RobotPosition Position35 = new RobotPosition();
Position35.X = 0.002518;
Position35.Y = 0.01560;
Position35.RZ = 0;
Position35.Z = 0.009;
robotInterface.movePAP(Position35, 1, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
//Dépose de la pièce n°3 à sa place.
RobotPosition Position36 = new RobotPosition();
Position36.X = 0.002518;
Position36.Y = 0.01560;
Position36.RZ = 0;
Position36.Z = 0.0075;
robotInterface.moveTo(Position36, 1.5, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
}
else
{
MessageBox.Show("Pièce n°3 non détectée !");
}
//Chargement du modèle de la pièce n°4.
visionInterface.loadModelSettings(@"C:\Documents and
Settings\Administrateur.AIP-PRIMECAFC\Mes documents\Piece\ARIA64260.xml");
//Prendre Image.

VII

ANNEXE 4
visionInterface.takeImage();
//Test si la pièce n°4 est détectée.
if (visionInterface.partFound())
{
//Arrêt de l'aspiration.
robotInterface.writeDigitalOutput(0, false);
//Transférer les coordonnées de la vision au robot et prise de la pièce n°4.
RobotPosition searchPosition40 = new RobotPosition();
searchPosition40.X = visionInterface.getXPosition();
searchPosition40.Y = visionInterface.getYPosition();
searchPosition40.RZ = 0;
searchPosition40.Z = 0.0067;
robotInterface.movePAP(searchPosition40, 0.2, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, true);
//Déplacement du robot avec la pièce n°4, au centre de l'image.
RobotPosition Position41 = new RobotPosition();
Position41.X = 0.0;
Position41.Y = -0.005;
Position41.RZ = 0;
Position41.Z = 0.0067;
robotInterface.movePAP(Position41, 0.2, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
//Retrait du robot: mouvement vertical.
RobotPosition Position42 = new RobotPosition();
Position42.X = 0.0;
Position42.Y = -0.005;
Position42.RZ = 0;
Position42.Z = 0.015;
robotInterface.moveTo(Position42, 1.5, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
//Retrait du robot: mouvement horizontal.
RobotPosition Position43 = new RobotPosition();
Position43.X = 0.0;
Position43.Y = 0.013;
Position43.RZ = 0;
Position43.Z = 0.015;
robotInterface.moveTo(Position43, 0.1, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
}
//Prendre une nouvelle Image

VIII

ANNEXE 4
visionInterface.takeImage();
//Test si la pièce n°4 est détectée une nouvelle fois.
if (visionInterface.partFound())
{
//Arrêt de l'aspiration.
robotInterface.writeDigitalOutput(0, false);
//Transférer les coordonnées de la vision au robot et prise de la pièce n°4.
RobotPosition searchPosition44 = new RobotPosition();
searchPosition44.X = visionInterface.getXPosition();
searchPosition44.Y = visionInterface.getYPosition();
searchPosition44.RZ = 0;
searchPosition44.Z = 0.0067;
robotInterface.movePAP(searchPosition44, 1, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, true);
//Déplacement de la pièce n°4 sur la montre à sa position.
RobotPosition Position45 = new RobotPosition();
Position45.X = 0.003785;
Position45.Y = 0.01895;
Position45.RZ = 0;
Position45.Z = 0.01;
robotInterface.movePAP(Position45, 1, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
//Dépose de la pièce n°4 à sa place.
RobotPosition Position46 = new RobotPosition();
Position46.X = 0.003785;
Position46.Y = 0.01895;
Position46.RZ = 0;
Position46.Z = 0.0084;
robotInterface.moveTo(Position46, 1.5, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
}
else
{
MessageBox.Show("Pièce n°4 non détectée !");
}
//Rotation pour mise en place des dents entre la pièce n°1 et la pièce n°3.
//Mise en position du robot au dessus de la pièce n°1.
RobotPosition Position100 = new RobotPosition();
Position100.X = 0.00257;
Position100.Y = 0.01925;
Position100.RZ = 0;
Position100.Z = 0.011;

IX

ANNEXE 4
robotInterface.movePAP(Position100, 0.8, 0.01, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
//Descente sur la pièce n°1.
RobotPosition Position201 = new RobotPosition();
Position201.X = 0.00257;
Position201.Y = 0.01925;
Position201.RZ = 0;
Position201.Z = 0.0088;
robotInterface.moveTo(Position201, 1, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, true);
//Rotation de la pièce n°1.
RobotPosition Position202 = new RobotPosition();
Position202.X = 0.00257;
Position202.Y = 0.01925;
Position202.RZ = 5;
Position202.Z = 0.0088;
robotInterface.moveTo(Position202, 1, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
//Chargement du modèle de la pièce n°5.
visionInterface.loadModelSettings(@"C:\Documents and
Settings\Administrateur.AIP-PRIMECAFC\Mes documents\Piece\ARIA31048.xml");
//Prendre Image.
visionInterface.takeImage();
//Test si la pièce n°5 est détectée.
if (visionInterface.partFound())
{
//Arrêt de l'aspiration.
robotInterface.writeDigitalOutput(0, false);
//Transférer les coordonnées de la vision au robot et prise de la pièce n°5.
RobotPosition Position50 = new RobotPosition();
Position50.X = visionInterface.getXPosition();
Position50.Y = visionInterface.getYPosition();
Position50.RZ = visionInterface.getRZPosition();
Position50.Z = 0.00704;
robotInterface.movePAP(Position50, 1, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, true);
//Déplacement du robot avec la pièce n°5, au centre de l'image.
RobotPosition Position51 = new RobotPosition();
Position51.X = -0.000;
Position51.Y = -0.00912;

X

ANNEXE 4
Position51.RZ = -1.49716;
Position51.Z = 0.00704;
robotInterface.movePAP(Position51, 0.2, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
//Retrait du robot: mouvement vertical.
RobotPosition Position52 = new RobotPosition();
Position52.X = 0.00385;
Position52.Y = -0.00912;
Position52.RZ = -1.49716;
Position52.Z = 0.015;
robotInterface.moveTo(Position52, 1.5, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
//Retrait du robot: mouvement horizontal.
RobotPosition Position53 = new RobotPosition();
Position53.X = 0.00385;
Position53.Y = 0.013;
Position53.RZ = 0;
Position53.Z = 0.015;
robotInterface.moveTo(Position53, 0.1, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
}
//Prendre une nouvelle Image.
visionInterface.takeImage();
//Test si la pièce n°5 est détectée une nouvelle fois.
if (visionInterface.partFound())
{
//Arrêt de l'aspiration.
robotInterface.writeDigitalOutput(0, false);
//Transférer les coordonnées de la vision au robot et prise de la pièce n°5.
RobotPosition searchPosition54 = new RobotPosition();
searchPosition54.X = visionInterface.getXPosition();
searchPosition54.Y = visionInterface.getYPosition();
searchPosition54.RZ = visionInterface.getRZPosition();
searchPosition54.Z = 0.00704;
robotInterface.movePAP(searchPosition54, 1, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, true);
//Mise en place de la pièce n°5.
RobotPosition Position55 = new RobotPosition();
Position55.X = 0.000808;
Position55.Y = 0.01860;

XI

ANNEXE 4
Position55.RZ = -1.49716;
Position55.Z = 0.01;
robotInterface.movePAP(Position55, 1, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
}
else
{
MessageBox.Show("Pièce n°5 non détectée !");
}
//Charcgement du modèle de pièce n°6.
visionInterface.loadModelSettings(@"C:\Documents and
Settings\Administrateur.AIP-PRIMECAFC\Mes documents\Piece\ARIA33032.xml");
//Prendre Image
visionInterface.takeImage();
//Test si la pièce n°6 est détectée.
if (visionInterface.partFound())
{
//Arrêt de l'aspiration.
robotInterface.writeDigitalOutput(0, false);
//Transférer les coordonnées de la vision au robot et prise de la pièce n°6.
RobotPosition searchPosition60 = new RobotPosition();
searchPosition60.X = visionInterface.getXPosition();
searchPosition60.Y = visionInterface.getYPosition();
searchPosition60.RZ = 0;
searchPosition60.Z = 0.0070;
robotInterface.movePAP(searchPosition60, 1, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, true);
//Déplacement du robot avec la pièce n°6, au centre de l'image.
RobotPosition Position61 = new RobotPosition();
Position61.X = 0.0;
Position61.Y = -0.00787;
Position61.RZ = 0;
Position61.Z = 0.0070;
robotInterface.movePAP(Position61, 1, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
//Retrait du robot: mouvement vertical.
RobotPosition Position62 = new RobotPosition();
Position62.X = 0.0;
Position62.Y = -0.00787;
Position62.RZ = 0;
Position62.Z = 0.015;
robotInterface.moveTo(Position62, 0.5, RobotMotionMode.TIME,

XII

ANNEXE 4
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
//Retrait du robot: mouvement horizontal.
RobotPosition Position63 = new RobotPosition();
Position63.X = 0.0;
Position63.Y = 0.013;
Position63.RZ = 0;
Position63.Z = 0.015;
robotInterface.moveTo(Position63, 0.1, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
}
//Prendre une nouvelle Image
visionInterface.takeImage();
//Test si la pièce n°6 est détectée une nouvelle fois.
if (visionInterface.partFound())
{
//Arrêt de l'aspiration.
robotInterface.writeDigitalOutput(0, false);
//Transférer les coordonnées de la vision au robot et prise de la pièce n°6.
RobotPosition Position64 = new RobotPosition();
Position64.X = visionInterface.getXPosition();
Position64.Y = visionInterface.getYPosition();
Position64.RZ = 0;
Position64.Z = 0.00715;
robotInterface.movePAP(Position64, 1, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, true);
//Déplacement de la pièce n°6 sur la montre à sa position.
RobotPosition Position65 = new RobotPosition();
Position65.X = 0.000005;
Position65.Y = 0.00425;
Position65.RZ = 0;
Position65.Z = 0.009;
robotInterface.movePAP(Position65, 1, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
//Dépose de la pièce n°6 sur la montre.
RobotPosition Position66 = new RobotPosition();
Position66.X = 0.000005;
Position66.Y = 0.00425;
Position66.RZ = 0;
Position66.Z = 0.007818;
robotInterface.moveTo(Position66, 1.5, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);

XIII

ANNEXE 4
robotInterface.writeDigitalOutput(0, false);
//Remonter le robot après la dépose.
RobotPosition Position67 = new RobotPosition();
Position67.X = 0.000005;
Position67.Y = 0.00425;
Position67.RZ = 0;
Position67.Z = 0.02;
robotInterface.moveTo(Position67, 1.5, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
}
else
{
MessageBox.Show("Pièce n°6 non détectée !");
}
//Chargement du modèle de la pièce n°7.
visionInterface.loadModelSettings(@"C:\Documents and
Settings\Administrateur.AIP-PRIMECAFC\Mes documents\Piece\ARIA91438-02.xml");
//Prendre Image
visionInterface.takeImage();
//Test si la pièce n°7 est détectée.
if (visionInterface.partFound())
{
//Arrêt de l'aspiration.
robotInterface.writeDigitalOutput(0, false);
//Transférer les coordonnées de la vision au robot et prise de la pièce n°7.
RobotPosition searchPosition70 = new RobotPosition();
searchPosition70.X = visionInterface.getXPosition();
searchPosition70.Y = visionInterface.getYPosition();
searchPosition70.RZ = 0;
searchPosition70.Z = 0.007571;
robotInterface.movePAP(searchPosition70, 0.5, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, true);
//Déplacement du robot avec la pièce n°7, au centre de l'image.
RobotPosition Position71 = new RobotPosition();
Position71.X = 0.006;
Position71.Y = -0.0083;
Position71.RZ = 0;
Position71.Z = 0.0078;
robotInterface.movePAP(Position71, 0.5, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
//Retrait du robot: mouvement vertical.
RobotPosition Position72 = new RobotPosition();

XIV

ANNEXE 4
Position72.X = 0.006;
Position72.Y = -0.0083;
Position72.RZ = 0;
Position72.Z = 0.015;
robotInterface.moveTo(Position72, 1.5, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
//Retrait du robot: mouvement horizontal.
RobotPosition Position73 = new RobotPosition();
Position73.X = 0.0;
Position73.Y = 0.013;
Position73.RZ = 0;
Position73.Z = 0.015;
robotInterface.moveTo(Position73, 0.1, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
}
//Prendre une nouvelle Image
visionInterface.takeImage();
//Test si la piàce n°7 est détectée une nouvelle fois.
if (visionInterface.partFound())
{
//Arrêt de l'aspiration.
robotInterface.writeDigitalOutput(0, false);
//Transférer les coordonnées de la vision au robot et prise de la pièce n°7.
RobotPosition Position74 = new RobotPosition();
Position74.X = visionInterface.getXPosition();
Position74.Y = visionInterface.getYPosition();
Position74.RZ = 0;
Position74.Z = 0.007571;
robotInterface.movePAP(Position74, 1, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, true);
//Déplacement de la pièce n°7 sur la montre à sa position.
RobotPosition Position75 = new RobotPosition();
Position75.X = 0.00389;
Position75.Y = 0.00216;
Position75.RZ = 0;
Position75.Z = 0.011;
robotInterface.movePAP(Position75, 1, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
//Dépose de la pièce n°7 à sa place.
RobotPosition Position76 = new RobotPosition();

XV

ANNEXE 4
Position76.X = 0.00389;
Position76.Y = 0.00216;
Position76.RZ = 0;
Position76.Z = 0.0082;
robotInterface.moveTo(Position76, 1.5, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
//Remonter pour la poussée d'ajustement.
RobotPosition Position77 = new RobotPosition();
Position77.X = 0.00389;
Position77.Y = 0.00216;
Position77.RZ = 0;
Position77.Z = 0.0085;
robotInterface.moveTo(Position77, 1, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
//Décalage pour l'ajustement.
RobotPosition Position78 = new RobotPosition();
Position78.X = 0.000;
Position78.Y = 0.00603;
Position78.RZ = 0;
Position78.Z = 0.0085;
robotInterface.moveTo(Position78, 2, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
}
else
{
MessageBox.Show("Pièce n°7 non détectée !");
}
//Chargement du modèle de la pièce n°8.
visionInterface.loadModelSettings(@"C:\Documents and
Settings\Administrateur.AIP-PRIMECAFC\Mes documents\Piece\ARIA91438-01.xml");
//Prendre Image
visionInterface.takeImage();
//Test si la pièce n°8 est détectée.
if (visionInterface.partFound())
{
//Arrêt de l'aspiration.
robotInterface.writeDigitalOutput(0, false);
//Transférer les coordonnées de la vision au robot et prise de la pièce n°8.
RobotPosition searchPosition80 = new RobotPosition();
searchPosition80.X = visionInterface.getXPosition();
searchPosition80.Y = visionInterface.getYPosition();
searchPosition80.RZ = 0;
searchPosition80.Z = 0.007574;

XVI

ANNEXE 4
robotInterface.movePAP(searchPosition80, 0.5, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, true);
//Déplacement du robot avec la pièce n°8 au centre de l'image.
RobotPosition Position81 = new RobotPosition();
Position81.X = -0.00385;
Position81.Y = -0.00912;
Position81.RZ = 0;
Position81.Z = 0.007574;
robotInterface.movePAP(Position81, 0.5, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
//Retrait du robot: mouvement vertical.
RobotPosition Position82 = new RobotPosition();
Position82.X = -0.00385;
Position82.Y = -0.00912;
Position82.RZ = 0;
Position82.Z = 0.015;
robotInterface.moveTo(Position82, 1.5, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
//Retrait du robot: mouvement horizontal.
RobotPosition Position83 = new RobotPosition();
Position83.X = 0.00385;
Position83.Y = 0.013;
Position83.RZ = 0;
Position83.Z = 0.015;
robotInterface.moveTo(Position83, 0.1, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
}
//Prendre une nouvelle Image.
visionInterface.takeImage();
//Test si la pièce n°8 est détectée une nouvelle fois.
if (visionInterface.partFound())
{
//Arrêt de l'aspiration.
robotInterface.writeDigitalOutput(0, false);
//Transférer les coordonnées de la vision au robot et prise de la pièce n°8.
RobotPosition searchPosition84 = new RobotPosition();
searchPosition84.X = visionInterface.getXPosition();
searchPosition84.Y = visionInterface.getYPosition();
searchPosition84.RZ = 0;
searchPosition84.Z = 0.007574;

XVII

ANNEXE 4
robotInterface.movePAP(searchPosition84, 1, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, true);
//Déplacement de la pièce n°8 sur la montre à sa position.
RobotPosition Position85 = new RobotPosition();
Position85.X = -0.00891;
Position85.Y = 0.006178;
Position85.RZ = 0;
Position85.Z = 0.011;
robotInterface.movePAP(Position85, 1, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
//Mise en place de la pièce n°8.
RobotPosition Position86 = new RobotPosition();
Position86.X = -0.00896;
Position86.Y = 0.00633;
Position86.RZ = 0;
Position86.Z = 0.0082;
robotInterface.moveTo(Position86, 1.5, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
//Poussée d'ajustement.
RobotPosition Position87 = new RobotPosition();
Position87.X = -0.00296;
Position87.Y = 0.01233;
Position87.RZ = 0;
Position87.Z = 0.0082;
robotInterface.moveTo(Position87, 2, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
}
else
{
MessageBox.Show("Pièce n°8 non détectée !");
}
//Chargement du modèle de pièce n°9.
visionInterface.loadModelSettings(@"C:\Documents and
Settings\Administrateur.AIP-PRIMECAFC\Mes documents\Piece\1954.xml");
//Prendre Image.
visionInterface.takeImage();
//Test si la pièce n°9 trouvée.
if (visionInterface.partFound())
{
//Arrêt de l'aspiration.
robotInterface.writeDigitalOutput(0, false);

XVIII

ANNEXE 4
//Transférer les coordonnées de la vision au robot et prise de la pièce n°9.
RobotPosition searchPosition90 = new RobotPosition();
searchPosition90.X = visionInterface.getXPosition();
searchPosition90.Y = visionInterface.getYPosition();
searchPosition90.RZ = visionInterface.getRZPosition();
searchPosition90.Z = 0.00796;
robotInterface.movePAP(searchPosition90, 0.2, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, true);
//Déplacement du robot avec la pièce n°9, au centre de l'image.
RobotPosition Position91 = new RobotPosition();
Position91.X = 0.001527;
Position91.Y = 0.01795;
Position91.RZ = -1.6;
Position91.Z = 0.00877;
robotInterface.movePAP(Position91, 0.2, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
//Dépose de la pièce n°9 sur la montre.
RobotPosition Position92 = new RobotPosition();
Position92.X = 0.001527;
Position92.Y = 0.01795;
Position92.RZ = -1.6;
Position92.Z = 0.02;
robotInterface.movePAP(Position92, 1.5, 0.005, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
}
else
{
MessageBox.Show("Pièce n°9 non détectée !");
}
//Retrait du robot: mouvement horizontal.
RobotPosition PositionInit = new RobotPosition();
PositionInit.X = 0.00385;
PositionInit.Y = 0.013;
PositionInit.RZ = 0;
PositionInit.Z = 0.02;
robotInterface.moveTo(PositionInit, 0.1, RobotMotionMode.TIME,
TaskPlannerMode.APPEND, true);
robotInterface.writeDigitalOutput(0, false);
programmState = ProgrammState.STOPPED;
}
}
}

XIX


Documents similaires


Fichier PDF ps9aj5d
Fichier PDF mouton rouge j apprends a com
Fichier PDF c2018 rules beta fr
Fichier PDF creation des blocs du debut
Fichier PDF yub2blo
Fichier PDF english 7 bible outline of satan s 666 traps


Sur le même sujet..