0% ont trouvé ce document utile (0 vote)
405 vues46 pages

Programmation des robots ABB en RAPID

Transféré par

Patrick Mainil
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
405 vues46 pages

Programmation des robots ABB en RAPID

Transféré par

Patrick Mainil
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Prise en main des robots ABB Cours #2

Cours de robotique – Prise en


main des robots ABB

Par Claude Théorêt, M.Ing.


1
© Claude Théorêt, M.Ing.

Prise en main des robots ABB Cours #2

Aujourd’hui
 Principes de programmation
 Données & Routines
 Les trajectoires

Prochain cours
 Les outils
 Les objets
2
© Claude Théorêt, M.Ing.

2
Prise en main des robots ABB Cours #2

Principes de programmation
- Les instructions
comptage
- Les routines

- Les modules
Bonjour. affichage
- Les données
mouvement attente
- La tâche boucle
choix
- Le programme

3
© Claude Théorêt, M.Ing.

Prise en main des robots ABB Cours #2

Principes de programmation
- Programme en RAPID
- Création d’un programme

- Sauvegarde d’un programme


- Exécution d’un programme
- Atelier #3 : Déplacement du robot du point A au point B

4
© Claude Théorêt, M.Ing.

4
Prise en main des robots ABB Cours #2

Principes de programmation
- Les instructions
Un "programme de production" est constitué d'une succession d' instructions.
Une instruction correspond à une opération élémentaire.
Les instructions permettent de déplacer le robot, de dialoguer avec l'environnement et
avec l'opérateur. Elles sont exécutées une par une.
Instruction
Exemples :
"Arrêt de l'exécution du programme" Stop; Instruction de mouvement

"Déplacement du robot vers ..." MoveL … , … …;

5
© Claude Théorêt, M.Ing.

Prise en main des robots ABB Cours #2

Principes de programmation
- Les instructions (suite)
Une instruction a souvent besoin d' arguments pour être exécutée.
Ces arguments peuvent être des valeurs, des données, des expressions ou
des fonctions.

Instruction E/S
Exemple :
"Activation de la sortie TOR SetDO s_FermPince , 1 ;
nommée s_FermPince" valeur
donnée

6
© Claude Théorêt, M.Ing.

6
Prise en main des robots ABB Cours #2

Principes de programmation
- Les Routines
Le programmeur décompose son programme en un ensemble de routines.

Chaque routine permet de décrire une fonctionnalité ou une phase du


programme. Elle comprend une suite d'instructions.
DeposeMag FermetureP ControlePiece Traj58
Instruction ; Instruction ; Instruction ; Instruction ;
Instruction ; Instruction ; Instruction ; Instruction ;
Instruction ; Instruction ; Instruction ; ControlePiece ;
... ... Instruction ;
...
PrisePiece
Instruction de mouvement ; Certaines routines peuvent être considérées
FermetureP ; comme des instructions. Elles seront
Instruction ; appelées progressivement à partir d'une
Traj58 ;
... autre routine. 7
© Claude Théorêt, M.Ing.

Prise en main des robots ABB Cours #2

Principes de programmation
- Les Modules
 Ces routines sont regroupées dans une structure appelée module.
MODULE XXX

xxx()
Instruction;
Instruction;
... Routine principale
main() du "programme"
Instruction;
...
xxx()
Instruction;
...
xxx()
Instruction;
... 8
© Claude Théorêt, M.Ing.

8
Prise en main des robots ABB Cours #2

Principes de programmation
- Les Données
 Les données utilisées dans les instructions sont également stockées
dans les modules. MODULE xxx
xxx()
Instruction;
MoveL pA , … ;
...
outils
main()
Instruction; pièces
... points (pA,…)
temps données
xxx()
Instruction; ...
Add Cpt , x ; compteurs (Cpt,…)

xxx()
Instruction;
...
9
© Claude Théorêt, M.Ing.

Prise en main des robots ABB Cours #2

Principes de programmation
- Les Données
 Les données utilisées devraient avoir une désignation appropriées.

Exemple :

pService – designe une donnée “positional data”


vService – designe une donnée “speed data”
zService – designe une donnée “zone data”
tService – designe une donnée “tool data”
rService – designe une donnée “Robtarget”
nService – designe une donnée “number data”

10
© Claude Théorêt, M.Ing.

10
Prise en main des robots ABB Cours #2

Principes de programmation
- La Tâche
MODULE MainModule  Il existe 2 types de modules : les modules
routines
programme et les modules système.
main()
... MODULE BASE(SYSMODULE)
xxx()
...
xxx()
...
MODULE xxx
xxx()
...
xxx()
... MODULE xxx(…...)
xxx()
...

MODULE xxx  L'ensemble de ces modules constitue


xxx() une tâche.
...
11
© Claude Théorêt, M.Ing.

11

Prise en main des robots ABB Cours #2

Principes de programmation
- Le Programme
MODULE MainModule  Un programme est un répertoire
routines qui regroupe l'ensemble des
modules programme.
main()
...
xxx()  Cette notion de programme ne
...
sert que pour des sauvegardes-
chargements.
MODULE xxx

xxx()
...
xxx()
...
12
© Claude Théorêt, M.Ing.

12
Prise en main des robots ABB Cours #2

Principes de programmation
- Structure d’un programme en RAPID
<?xml version="1.0" encoding="ISO-8859-1" ?>
Pick_and_Place_Cell_A.pgf <Program>
<Module>ModuleA.mod</Module>
<Module>MainModule.mod</Module>
MainModule.mod </Program>
MODULE MainModule ModuleA.mod
PROC main()
Rotuine1; MODULE ModuleA
Routine2; PROC RoutineA1()
ENDPROC MoveL;
MoveL;
PROC Routine1() ENDPROC
MoveL; ENDMODULE
ENDPROC

PROC Routine2()
MoveL;
ENDPROC
ENDMODULE 13
© Claude Théorêt, M.Ing.

13

Prise en main des robots ABB Cours #2

Principes de programmation
- Exemple d’un programme en RAPID
MODULE Exemple
CONST robtarget A:=[[300,0,500],[0,1,0,0],[0,-1,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
CONST robtarget B:=[[0,300,500],[0,1,0,0],[0,-1,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
CONST tooldata tPince_bout:= [TRUE,[[0,0,233.37],[0.707107,0,0,0.707107]],
[1.7,[12.2,0,158],[1,0,0,0],0.009,0.003,0.012]];

PROC main()
deplacer_piece;
ENDPROC

PROC fermer_pince()
Set DO01_EE_PINCE01;
ENDPROC

PROC deplacer_piece()
VAR num reponse;

MoveJ A,v100,z5,tPince_bout\WObj:=wobj0;
MoveL B,v800,fine,tPince_bout\WObj:=wobj0;
WaitDI DI14_ZS0104, 1;
fermer_pince;
TPWrite "Le bloc est dans la pince. Êtes-vous satisfait?";
TPReadFK reponse, "", stEmpty, stEmpty, stEmpty, "Oui", "Non";
ENDPROC
ENDMODULE 14
© Claude Théorêt, M.Ing.

14
Prise en main des robots ABB Cours #2

Principes de programmation
- Règle de base
 Chaque instruction se termine par un point-virgule
(sauf FOR, IF, PROC, etc.).
 Une ligne commençant par ! ne sera pas interprétée.
 RAPID n’est pas sensible à la casse, mais il est recommandé d’écrire
tous les mots réservés (VAR, PROC, etc.) en majuscules.
 Le premier caractère d’un identificateur doit être une lettre. Les autres
caractères peuvent être des lettres, des chiffres ou “ _ ”. La longueur
maximale est 32 caractères.
 RAPID est un langage à structure non imposée, ce qui signifie que l’on
peut utiliser des espaces n’importe où sauf dans les identificateurs, les
mots réservés, les valeurs numériques, et les marques de réservation
(<SMT>, <EXP>, etc.).
15
© Claude Théorêt, M.Ing.

15

Prise en main des robots ABB Cours #2

Principes de programmation
- Création d’un programme
 Deux espaces différents sont proposés :
– Pour créer les modules et les routines, pour créer les lignes de programme,
– Pour créer les données.

16
© Claude Théorêt, M.Ing.

16
Prise en main des robots ABB Cours #2

Principes de programmation
- Création d’un programme (suite)
 Dans le cas où il n'y a pas encore de programme :

T_ROB1 / MainModule / main

17
© Claude Théorêt, M.Ing.

17

Prise en main des robots ABB Cours #2

Principes de programmation
- Création d’un programme (suite)
 Dans le cas où un programme est déjà présent :

18
© Claude Théorêt, M.Ing.

18
Prise en main des robots ABB Cours #2

Principes de programmation
- Sauvegarde d’un programme

On obtient un répertoire qui porte le


nom du programme

19
© Claude Théorêt, M.Ing.

19

Prise en main des robots ABB Cours #2

Principes de programmation
- Sauvegarde d’un programme (suite)
 Un répertoire du même nom que le programme est créé.
 Module: MainModule (Tous les programmes ont un)
 Fichier d’extension: pgf
– C’est un fichier XML qui contient les liens des modules
programme à charger.

Le même
nom

Lien des modules programme à recharger


(Ces modules doivent se trouver impérativement dans le répertoire du programme)
20
© Claude Théorêt, M.Ing.

20
Prise en main des robots ABB Cours #2

Principes de programmation
- Sauvegarde d’un programme (suite)
 Contenu du fichier pgf :

<?xml version="1.0" encoding="ISO-8859-1" ?>


<Program>
<Module>ModuleA.mod</Module>
<Module>MainModule.mod</Module>
</Program>

Lien des modules programme à recharger


(Ces modules doivent se trouver impérativement dans le
répertoire du programme) 21
© Claude Théorêt, M.Ing.

21

Prise en main des robots ABB Cours #2

Principes de programmation
- Création d’une instruction
 Écran d’Édition.
Nom du programme Tâche / Module / Routine
Liste des
modules

Liste des tâches et Liste des


des programmes routines

Zoom

Boites
de
menus
22
© Claude Théorêt, M.Ing.

22
Prise en main des robots ABB Cours #2

Principes de programmation
- Création d’une instruction (suite)
 Les listes d’instruction

23
© Claude Théorêt, M.Ing.

23

Prise en main des robots ABB Cours #2

Principes de programmation
- Création d’une instruction (suite)
 Ajout d’une instruction programme.
Numérotation
des lignes de Choix de
programme
l’instruction

Curseur

 La nouvelle ligne d'instruction sera placée à la suite


de la ligne sélectionnée par le curseur. 24
© Claude Théorêt, M.Ing.

24
Prise en main des robots ABB Cours #2

Principes de programmation
- Structure du nouveau programme
 Représentation de ce qui vient d’être créé :
MODULE MainModule Le répertoire Prog_stage
PROC main() pour la sauvegarde du
MoveJ , v1000 , z50 , tool0 ; programme
MoveJ * , v1000 , z50 , tool0 ;
MoveL * , v1000 , z50 , tool0 ;
MoveJ * , v1000 , z50 , tool0 ;
Le module programme
* MainModule
contenant la routine main
MODULE BASE (SYSMODULE, … )
PROC SYSRESET() et
tool0
... les différents modules
wobj0 système de la
PROC ...() v1000 version logicielle
... z50
... Ex : BASE et USER
MODULE USER (SYSMODULE) sont présents dans toutes
les versions logicielles
25
© Claude Théorêt, M.Ing.

25

Prise en main des robots ABB Cours #2

Principes de programmation
- Édition d’une instruction
 L'activation de certaines fonctionnalités dépend de la
position du curseur.

26
© Claude Théorêt, M.Ing.

26
Prise en main des robots ABB Cours #2

Principes de programmation
- Exécution d’un programme
 Réduction de la vitesse d’exécution

27
© Claude Théorêt, M.Ing.

27

Prise en main des robots ABB Cours #2

Principes de programmation
- Exécution d’un programme (suite)
 Choix du mode d’exécution
 Continu.
 Cyclique.

28
© Claude Théorêt, M.Ing.

28
Prise en main des robots ABB Cours #2

Principes de programmation
- Exécution d’un programme (suite)
 Choix du mode pas à pas
 détaillé,
 sortant,
 principal,
 déplacement.

29
© Claude Théorêt, M.Ing.

29

Prise en main des robots ABB Cours #2

Principes de programmation
- Exécution d’un programme (suite)
 Choix du mode pas à pas

30
© Claude Théorêt, M.Ing.

30
Prise en main des robots ABB Cours #2

Principes de programmation
- Exécution d’un programme en mode manuel
 Choix du programme à exécuter Place le PP et le curseur
au début de la routine
principale.

Place le PP au niveau
du curseur.

Place le curseur
au niveau du PP.

Pour sélectionner une


autre routine.

Appelle une routine


de service.

PP
(Pointeur Programme) Curseur 31
© Claude Théorêt, M.Ing.

31

Prise en main des robots ABB Cours #2

Principes de programmation
- Exécution d’un programme en mode manuel
 Lancement de l’exécution
Exécution
de
l’instruction
en
"marche
avant"
Exécution du
programme
Exécution de
Arrêt de
l’instruction
l‘exécution
en
"marche arrière"
32
© Claude Théorêt, M.Ing.

32
Prise en main des robots ABB Cours #2

Travaux pratiques
Atelier #3 : Déplacement du robot du point A au point B

Objectif : Apprendre à créer, charger, éditer,


sauvegarder et exécuter un programme à l’aide du
boitier de commande FlexPendant.

Manipulations :
 Créer un nouveau programme : Atelier3;

33
© Claude Théorêt, M.Ing.

33

Prise en main des robots ABB Cours #2

Travaux pratiques
Atelier #3 : Déplacement du robot du point A au point B
Manipulations :
 Déplacer manuellement le robot à une première
localisation sécuritaire à vitesse réduite;
 Ajouter l’instructions MOVEJ;
 Déplacer manuellement le robot à une deuxième
localisation sécuritaire à vitesse réduite. Assurez-vous
qu’il n’y ait aucune obstacle entre les deux
localisation);
 Ajouter une nouvelle instructions MOVEJ sous la
première;
34
© Claude Théorêt, M.Ing.

34
Prise en main des robots ABB Cours #2

Travaux pratiques
Atelier #3 : Déplacement du robot du point A au point B
Manipulations :
Effectuer la sauvegarde du programme;

Le programme devrait ressembler à celle de la figure suivante :

35
© Claude Théorêt, M.Ing.

35

Prise en main des robots ABB Cours #2

Travaux pratiques
Atelier #3 : Déplacement du robot du point A au point B
Manipulations :
 À l’aide de la commande « pp to main » de la
« fenêtre de production », activer le pointeur de
programme;

36
© Claude Théorêt, M.Ing.

36
Prise en main des robots ABB Cours #2

Travaux pratiques
Atelier #3 : Déplacement du robot du point A au point B
Manipulations :
 Réduire la vitesse d’exécution à 25 %;

37
© Claude Théorêt, M.Ing.

37

Prise en main des robots ABB Cours #2

Travaux pratiques
Atelier #3 : Déplacement du robot du point A au point B
Manipulations :
 Sélectionner le mode de fonctionnement : Cyclique;

38
© Claude Théorêt, M.Ing.

38
Prise en main des robots ABB Cours #2

Travaux pratiques
Atelier #3 : Déplacement du robot du point A au point B
La sécurité
- RAPPEL des Règles de Sécurité
 Utilisation des robots par des personnes formées
 Obtenir l'approbation écrite avant l’utilisation
 Enlever les objets inutiles du périmètre (aucune chaise permis)
 Porte fermée ⇒ aucune personne à l’intérieur du périmètre
 Une seule personne dans le périmètre lorsque le robot est vivant
 Avoir le boîtier activé dans le périmètre (si robot vivant)
 Ne jamais utiliser les boutons de desserrage des freins
 Être près d’un arrêt d'urgence en mode auto
39
© Claude Théorêt, M.Ing.

39

Prise en main des robots ABB Cours #2

Travaux pratiques
Atelier #3 : Déplacement du robot du point A au point B
Manipulations :
 Exécution du programme en mode manuel.

1- Sélecteur à clé
en mode manuel 2- Activer les moteurs
3- Lancer le programme
40
© Claude Théorêt, M.Ing.

40
Prise en main des robots ABB Cours #2

Données & Routine


- Sortes de données
- Types de données
- Menus des écrans « Donnée programme »
- Création d’une donnée
- Types de routines
- Menu des routines
- Création d’une routine
- Appel d’une routine : Édition

41
© Claude Théorêt, M.Ing.

41

Prise en main des robots ABB Cours #2

Données & Routine


- Sortes de données
 Trois sortes : constantes, variables et persistantes.
− Une constante représente une valeur statique et peut seulement recevoir
une nouvelle valeur manuellement.
− Une variable peut également recevoir une valeur en cours d’exécution du
programme.
− Une persistante peut être décrite comme étant une variable “persistante”.
Lorsqu’un programme est sauvegardé, la valeur d’initialisation reflète la
valeur actuelle de la persistante.
 Exemples :
CONST num Decalage := 200;
CONST string auteur := "Jean Tremblay";
CONST speeddata LowSpeed := [250,500,5000,1000];
VAR bool PresenceTrou;
VAR num N;
VAR num maxno{10} := [1,2,3,4,5,6,7,8,9,10];
PERS robtarget table := [[300,0,500],[0,1,0,0],
[0,-1,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]]; 42
© Claude Théorêt, M.Ing.

42
Prise en main des robots ABB Cours #2

Données & Routine


- Types de données
 Trois types : atomic, record et alias.
− Un type de données est atomic (atomique) dans le sens ou il n’est pas
défini en se basant sur un autre type et qu’il ne peut pas être divisé en
parties ou composantes (bool, num et string).
− Un type de données record (d’enregistrement), est un type composé avec
des composantes ayant un nom et un ordre, par exemple pos. Une
composante pourra être soit du type atomic soit du type record.
VAR pos pos1 := [200, 300, 150];
VAR orient orient1 := [1, 0, 0, 0];
VAR pose frame1;
frame1:= [pos1,orient1];
pos1.x := pos1.x + 20;
frame1.trans.y := 300;

− Un type de données pseudonymes est, par définition, équivalent à un


autre type. Les types pseudonymes permettent de classer les objets de
données. Par exemple, dionum est équivalent à num. 43
© Claude Théorêt, M.Ing.

43

Prise en main des robots ABB Cours #2

Données & Routine


- Types de données : Records
 robtarget : Définit la localisation d’un référentiel d’outil du robot
par rapport à un référentiel, la configurations des axes du robot,
et les axes externes. Les composantes :
− trans de type pos;
− rot de type orient;
− robconf de type confdata;
− extax de type extjoint
(toujours [9E9,9E9,9E9,9E9,9E9,9E9] pour nos robots).

PERS robtarget Retrait:=[[-306.31,517.44,768.63],


[0.263201,-0.442148,-0.833986,-0.199236],
[1,1,-3,0], [9E9,9E9,9E9,9E9,9E9,9E9]];

44
© Claude Théorêt, M.Ing.

44
Prise en main des robots ABB Cours #2

Données & Routine


- Types de données : Records
 orient : utilisé pour les orientations.
L’orientation est décrite sous la forme d'un roll
quaternion composé de quatre éléments:
q1, q2, q3 et q4, de type num.
yaw pitch
− L'orientation doit être normalisée,
c'est-à-dire que la somme des carrés
doit être égale à 1.
− Absolument non intuitives et difficiles à utiliser!!!
− Ne jamais entrer une orientation en quaternions directement!
− Heureusement, il y a des fonctions suivantes :
object.rot := OrientZYX(roll1, pitch1, yaw1);
yaw2 := EulerZYX(\X, object.rot);
pitch2 := EulerZYX(\Y, object.rot);
roll2 := EulerZYX(\Z, object.rot);
!Note : il y a 50% de probabilité que yaw2 ≠ yaw1, etc. 45
© Claude Théorêt, M.Ing.

45

Prise en main des robots ABB Cours #2

Données & Routine


- Types de données : Angles d’Euler
Convention d’angles d’Euler utilisée par ABB
interprétation 1 : ZR (r°)  Y’(p°)  X’’(w°)
interprétation 2 : XR (w°)  YR (p°)  ZR (r°)
y
z 2zR xyz321 yy12 L’ordre des rotations est important!!!
x1z 180o y1 zR
Exemple :
y2 y
z12 y2 w = 90o Roll
p = −90o
xzy21 r = 180o y
y Yaw Pitch R
yz2
xR
zxyx213 90o y
-90o zy R
xR 3
z2 z2 46
© Claude Théorêt, M.Ing.

46
Prise en main des robots ABB Cours #2

Données & Routine


- Types de données : Records
confdata : Configuration d’axes du robot (cf1, cf4, cf6 et cfx). Défini sous la forme
de la révolution de quart de cercle des axes 1, 4 et 6. La première révolution de
quart de cercle positive allant de 0 à 90°est fixée à 0, ensuite 1, 2, 3, etc., ou -1, -2,
etc. Le composant cfx est de 0 à 7.
− Très difficile à utiliser!!!
− On peut ignorer la configuration avec
ConfL \Off ou ConfJ \Off.

47
© Claude Théorêt, M.Ing.

47

Prise en main des robots ABB Cours #2

Données & Routine


- Types de données : Records
 speeddata : permet de spécifier la vitesse à laquelle le robot et les axes
externes se déplacent. Les composantes :
− v_tcp : vitesse du point central de l’outil (TCP) en mm/s;
− v_ori : vitesse angulaire du TCP, exprimée en degrés/s;
− v_leax : vitesse des axes externes linéaires en mm/s;
− v_reax : vitesse des axes externes rotatifs en mm/s;
 plusieurs vitesses prédéfinies : v5, v10, …, v6000, v5000, vmax.
 VelSet : permet de changer la vitesse programmée
(VelSet Override Max)

48
© Claude Théorêt, M.Ing.

48
Prise en main des robots ABB Cours #2

Données & Routine


- Types de données : Records
 zonedata : permet de spécifier la façon dont une position doit être terminée,
c'est-à-dire à quelle distance de la position programmée les axes doivent se
trouver avant de se déplacer vers la position suivante.
 plusieurs points de passages prédéfinies : z0, z1, …, z200.
 point d’arrêt : fine.

fine

fine

49
© Claude Théorêt, M.Ing.

49

Prise en main des robots ABB Cours #2

Données & Routine


- Types de données : Records
 zonedata : permet de spécifier la façon dont une position doit être terminée,
c'est-à-dire à quelle distance de la position programmée les axes doivent se
trouver avant de se déplacer vers la position suivante.
 plusieurs points de passages prédéfinies : z0, z1, …, z200.
 point d’arrêt : fine.
75mm
50mm

z50

fine
50
© Claude Théorêt, M.Ing.

50
Prise en main des robots ABB Cours #2

Données & Routine


- Menus des écrans « Donnée programme »

51
© Claude Théorêt, M.Ing.

51

Prise en main des robots ABB Cours #2

Données & Routine


- Création d’une donnée

OU

52
© Claude Théorêt, M.Ing.

52
Prise en main des robots ABB Cours #2

Données & Routine


- Création d’une donnée Visibilité d'une donnée :
Globale : utilisable dans la totalité de
la tâche.
Locale : utilisable uniquement dans le
module identifié après.
Tâche : réservée aux données
persistantes. Pour un système
MultiMove.
Nature d'une donnée :
Constante : valeur non modifiable par
programmation.
Variable : valeur pouvant être modifiée
lors de l'exécution, mais réinitialisée si
"Exécution Début Programme".
Permanente : valeur pouvant être
modifiée lors de l'exécution, et
conservée si "Exécution Début
Module de Programme". Visible
stockage en dehors de la tâche (ex : outils
proposés dans l'écran de Pilotage
53
Manuel)..
© Claude Théorêt, M.Ing.

53

Prise en main des robots ABB Cours #2

Données & Routine


- Création d’une donnée

Mnémoniques des Type de valeur


différentes composantes
Valeurs
(num , bool ou string)
54
© Claude Théorêt, M.Ing.

54
Prise en main des robots ABB Cours #2

Données & Routine


- Modification de la valeur d’un argument

55
© Claude Théorêt, M.Ing.

55

Prise en main des robots ABB Cours #2

Données & Routine


- Modification d’une donnée

56
© Claude Théorêt, M.Ing.

56
Prise en main des robots ABB Cours #2

Données & Routine


- Types de routines
 Trois types : procédures, fonctions et interruptions.
− Les procédures ne fournissent pas de valeur et sont utilisées dans le
contexte des instructions.
− Les fonctions fournissent une valeur d’un type spécifique et sont utilisées
dans le contexte des expressions.
− Les routines d’interruption fournissent un moyen de gérer les interruptions.
 Locales (LOCAL PROC routine1()) et globales (PROC routine2()).

 Quatre types de paramètres :


PROC routine1(num in_par, INOUT num inout_par, VAR num var_par,
PERS num pers_par)

 Exemple de fonction :
FUNC num veclen(pos vector)
RETURN SQRT(POW(vector.x,2)+POW(vector.y,2)+POW(vector.z,2));
ENDFUNC
57
© Claude Théorêt, M.Ing.

57

Prise en main des robots ABB Cours #2

Données & Routine


- Menu des routines

58
© Claude Théorêt, M.Ing.

58
Prise en main des robots ABB Cours #2

Données & Routine


- Création d’une routine

3 types de routines :
- Fonction,
- Procédure,
- Interrompre (Trap)
Choisissez le module
de stockage
et validez

59
© Claude Théorêt, M.Ing.

59

Prise en main des robots ABB Cours #2

Données & Routine


- Appel d’une routine : Édition

60
© Claude Théorêt, M.Ing.

60
Prise en main des robots ABB Cours #2

Données & Routine


- Appel d’une routine : Exécution
MoveJ p_dep , v400 , fine , tool0 ; p_dep
MoveL * , v400 , fine , tool0 ;
MoveL * , v400 , fine , tool0 ;
t_Prise ;
t_Prise

MoveJ * , v400 , fine , tool0 ;


MoveJ * , v400 , fine , tool0 ;
depose_piece ;

61
© Claude Théorêt, M.Ing.

61

Prise en main des robots ABB Cours #2

Les trajectoires
- Qu’est-ce qu’une trajectoire ?
- Les instructions de mouvement
- Création d’une trajectoire
- Arguments d’une instruction
- Modification des arguments d’une instruction
- Arguments de position
- Arguments de vitesse
- Arguments de zone
- Approches et retraits appropriés
- Atelier #4 : Déplacement du robot suivant une trajectoire 62
© Claude Théorêt, M.Ing.

62
Prise en main des robots ABB Cours #2

Les trajectoires
- Qu’est-ce qu’une trajectoire ?
 On appelle Trajectoire une succession de mouvements du robot

position à atteindre
position visée
mouvement à éviter
circulaire
mouvement
linéaire mouvement
libre (articulaire)

 Un mouvement correspond à l'exécution d'une instruction de mouvement


dans laquelle est précisée la position à atteindre ou à survoler.
63
© Claude Théorêt, M.Ing.

63

Prise en main des robots ABB Cours #2

Les trajectoires
- Qu’est-ce qu’une trajectoire ? (Suite)

Une trajectoire correspond donc à une routine essentiellement


constituée d'instructions de mouvement.

64
© Claude Théorêt, M.Ing.

64
Prise en main des robots ABB Cours #2

Les trajectoires
- Les instructions de mouvement
 Il existe 3 instructions simples pour obtenir un déplacement
robot :
MoveJ
Les mouvements des différents axes sont synchronisés pour amener
le robot sur la position visée. Le tronçon est libre.
position
position (articulaire)
courante
visée

MoveL
Le centre de l'outil (appelé CDO) est déplacé linéairement entre sa position
courante (position de départ) et la position visée (position d'arrivée).
position
courante position (géométrique)
visée 65
© Claude Théorêt, M.Ing.

65

Prise en main des robots ABB Cours #2

Les trajectoires
- Les instructions de mouvement (Suite)
 Il existe 3 instructions simples pour obtenir un déplacement
robot :
MoveC

Le centre de l'outil décrit un arc de cercle entre sa position courante


(de départ) et la position visée (arrivée).
position
courante
position
visée position
visée

position
courante

66
© Claude Théorêt, M.Ing.

66
Prise en main des robots ABB Cours #2

Les trajectoires
- Les instructions de mouvement (Suite)
 Déplacement articulaire - Instruction : MoveJ
 Les différentes articulations devant bouger vont se synchroniser : elles
démarrent en même temps et terminent leur mouvement en même temps.
 Le temps du mouvement est donc imposé par l'axe le plus contraignant.
 Les éléments portés par le poignet du robot ont donc un déplacement
quelconque dans l'espace avec une vitesse difficilement déterminable.

Position de départ

Position d'arrivée

67
© Claude Théorêt, M.Ing.

67

Prise en main des robots ABB Cours #2

Les trajectoires
- Les instructions de mouvement (Suite)
 Déplacement Linéaire – Instruction : MoveL
 Le centre de l'outil (appelé CDO) est déplacé linéairement entre sa position
courante (de départ) et la position visée (arrivée).
 Il est déplacé avec une vitesse constante.

Position
de départ

MoveL Position
d'arrivée
MoveJ 68
© Claude Théorêt, M.Ing.

68
Prise en main des robots ABB Cours #2

Les trajectoires
- Les instructions de mouvement (Suite)
 Déplacement circulaire – Instruction : MoveC
 Le centre de l'outil (appelé CDO) décrit un arc de cercle entre sa position
courante (de départ) et la position visée (arrivée).

Position
intermédiaire

Position
de départ
Position
d'arrivée

MoveC
MoveL
MoveJ 69
© Claude Théorêt, M.Ing.

69

Prise en main des robots ABB Cours #2

Les trajectoires
- Création d’une trajectoire

70
© Claude Théorêt, M.Ing.

70
Prise en main des robots ABB Cours #2

Les trajectoires
- Création d’une trajectoire (suite)

71
© Claude Théorêt, M.Ing.

71

Prise en main des robots ABB Cours #2

Les trajectoires
- Création d’une trajectoire (suite)
1. Déplacez le robot jusqu'à la position que vous souhaitez mémoriser.
2. Ouvrez la fenêtre pour vérifier (et changer) l'outil et l'objet actifs.

3. Revenir à la fenêtre , sélectionnez la liste Commune et créez une ligne


d'instruction en sélectionnant directement l’instruction.
Le système calcule alors la position courante 72
et ajoute des arguments par défaut.
© Claude Théorêt, M.Ing.

72
Prise en main des robots ABB Cours #2

Les trajectoires
- Arguments d’une instruction
 Argument de base des instructions de mouvement

Instruction Speed Data Tool Data


L, J, C

Robtarget Data Zone Data


(Position Data) (Accuracy)

73
© Claude Théorêt, M.Ing.

73

Prise en main des robots ABB Cours #2

Les trajectoires
- Arguments d’une instruction (Suite)
 Argument de base des instructions de mouvement

MoveJ , v1000 , z50 , fraise ;


position outil qui devra
à atteindre se retrouver
sur la position visée
vitesse maximale zone de passage au
pour aller vers la position niveau du point visé
(arrêt ou survol)

74
© Claude Théorêt, M.Ing.

74
Prise en main des robots ABB Cours #2

Les trajectoires
- Arguments d’une instruction (Suite)
 Arguments de base des instructions de mouvement

MoveL Pt1 , v500 , fine , fraise \WObj:= table ;


outil qui sera déplacé linéairement
jusqu'à la position visée

 Par défaut, c'est l'outil qui était actif lors de la création de l'instruction.
 Si l'objet actif est wobj0, il n'est pas mentionné dans l'instruction.

75
© Claude Théorêt, M.Ing.

75

Prise en main des robots ABB Cours #2

Les trajectoires
- Arguments d’une instruction (Suite)
 MoveL : permet de déplacer le point central de l'outil (TCP) de façon
linéaire vers une destination donnée.
 pour des petits déplacements précis
 exemples :
MoveL rtStart, v2000, z40, tPince_bout\WObj:=fixture;
MoveL rtStart, v2000, z40, tPince_bout;
MoveL *, v2000 \T:=5, z40, tPince_bout;
MoveL \Conc rtStart, v2000, z40, tPince_bout;

MoveL

76
© Claude Théorêt, M.Ing.

76
Prise en main des robots ABB Cours #2

Les trajectoires
- Arguments d’une instruction (Suite)
 MoveJ : permet de déplacer le robot rapidement d'un point à un autre lorsqu'il
n'est pas nécessaire que ce déplacement se fasse en ligne droite. Le robot et
les axes externes se déplacent vers la position de destination le long d'une
trajectoire non linéaire.
 Chaque axe est déplacé selon une vitesse d'axe constante et tous les axes
atteignent le point de destination en même temps, ce qui résulte en une
trajectoire non linéaire.

77
© Claude Théorêt, M.Ing.

77

Prise en main des robots ABB Cours #2

Les trajectoires
- Modification des arguments d’une instruction
 Accès n°1 : à partir de l'instruction complète.

Vers fenêtre « Insérer


l’expression »
(page suivante)

78
© Claude Théorêt, M.Ing.

78
Prise en main des robots ABB Cours #2

Les trajectoires
- Modification des arguments d’une instruction
 Accès n°2 : en sélectionnant l’argument dans l’instruction.

Ajoute un élément afin


de créer une expression
Permet d’ajouter une Retire un élément
nouvelle donnée d’une expression

De la fenêtre
« Sélectionner l’argument Ajoute des parenthèses à
à modifier » l’expression
Retire des parenthèses à
(page précédente) l’expression

79
© Claude Théorêt, M.Ing.

79

Prise en main des robots ABB Cours #2

Les trajectoires
- Argument de Position
 Une position peut-être directement stockée dans l'instruction. Elle est
représentée par *.
 Une position peut également être
identifiée à travers une donnée.
C'est une donnée de type robtarget.

• 16 caractères maximum,
• caractères alphabétiques et numériques seulement (et _)
• 1er caractère : alphabétique obligatoirement

80
© Claude Théorêt, M.Ing.

80
Prise en main des robots ABB Cours #2

Les trajectoires
- Argument de Position (suite)
 Après avoir déterminé un nom, validez par "OK" (2 fois) pour retrouver
l'écran d'argumentation de l'instruction.
Le nouveau point apparaît dans la liste des données et est immédiatement
utilisé dans la ligne d’instruction.

81
© Claude Théorêt, M.Ing.

81

Prise en main des robots ABB Cours #2

Les trajectoires
- Argument de Position (suite)
 Pour modifier une position, vous devez :
- placer le robot sur la position
souhaitée,
- placer le curseur sur l'instruction ou
la position, et
- appuyer sur la touche

ou

82
© Claude Théorêt, M.Ing.

82
Prise en main des robots ABB Cours #2

Les trajectoires
- Argument de Vitesse
 La vitesse de déplacement est donnée par un ensemble de
valeurs. C'est une donnée de type speeddata.
 Il existe un ensemble de données déjà "prédéfinies" (elles sont
dans le module système BASE).
v5 pour un déplacement maximum
de 5 mm/s
du CDO.
v10 pour 10 mm/s.
...
v100 pour 100 mm/s.
v150 pour 150 mm/s.
...
v1000 pour 1000 mm/s.
v1500 pour 1500 mm/s.
v2500 pour 2500 mm/s.
...
vmax pour 5000 mm/s.
83
© Claude Théorêt, M.Ing.

83

Prise en main des robots ABB Cours #2

Les trajectoires
- Argument de Vitesse (suite)
 Pour créer une nouvelle donnée de
vitesse, il faut choisir Nouveau sur la
1ère ligne de donnée.

Module de stockage :
MainModule ou USER
84
© Claude Théorêt, M.Ing.

84
Prise en main des robots ABB Cours #2

Les trajectoires
- Argument de Vitesse (suite)
 Il faut ensuite donner la Valeur initiale à
cette donnée. Pour une donnée Constante,
c'est sa valeur d'utilisation. Elle est figée
pendant l'exécution du programme
(contrairement à des données de nature
Variable ou Permanente)

Vitesse maximale de
déplacement linéaire
du CDO.
(1000 mm/s pour v1000
par ex)

Changement d’orientation
de l’outil
(en deg/s)
85
© Claude Théorêt, M.Ing.

85

Prise en main des robots ABB Cours #2

Les trajectoires
- Argument de Zone
 L'argument de Zone permet de préciser
le passage sur le point visé. C'est une
donnée de type zonedata.
 Il existe un ensemble de données déjà
"prédéfinies" (elles sont dans le module BASE).

fine : arrêt sur la position visée


zxx : passage à proximité de la
position visée

86
© Claude Théorêt, M.Ing.

86
Prise en main des robots ABB Cours #2

Les trajectoires
- Argument de Zone

fine

75mm fine
50mm

z50

fine 87
© Claude Théorêt, M.Ing.

87

Prise en main des robots ABB Cours #2

Les trajectoires
- Approches et retraits appropriés d’un robot
 Exemple d’approche et de retrait appropriés :

Approche selon l’axe Z


avec un mouvement
linéaire à vitesse réduite Retrait selon l’axe Z avec
un mouvement linéaire à
vitesse réduite

P1 Z P16

88
© Claude Théorêt, M.Ing.

88
Prise en main des robots ABB Cours #2

Travaux pratiques
Atelier #4 : Déplacement du robot suivant une trajectoire

Objectif : Apprendre à créer routine comprenant une


trajectoire ayant des instructions de mouvement avec
différents arguments.

Manipulations :
 Créer un nouveau programme : Atelier4;

89
© Claude Théorêt, M.Ing.

89

Prise en main des robots ABB Cours #2

Travaux pratiques
Atelier #4 : Déplacement du robot suivant une trajectoire
Manipulations :
 Ajouter les instructions nécessaires pour effectuer la
trajectoire suivante en faisant les approches et les
retraits appropriés :
o position d’approche et
de départ
o pHome x position sur la feuille
o p60
p40 x x p10

x p50

p30 x x p20

90
© Claude Théorêt, M.Ing.

90
Prise en main des robots ABB Cours #2

Travaux pratiques
Atelier #4 : Déplacement du robot suivant une trajectoire
Manipulations :
 Une position, appelée rRetrait, est enseignée pour
permettre au robot de commencer et de terminer la tâche
à une position sécuritaire;
 Effectuer l’apprentissage des localisations à l’aide du
FlexPendant. Les localisations (Robtarget) doivent être
de types « Pers »;
 Les localisations (Robtarget) p10 à p50 doivent être à
l’intérieur d’une routine « trajectoire_A »;
 Sauvegarder votre programme;
 Tester, puis exécuter votre programme en mode manuel. 91
© Claude Théorêt, M.Ing.

91

Vous aimerez peut-être aussi