Programmation Standard ABB Armoire IRC5 Cette ouvrage, à destination des stagiaires de la société Avenir Formation, à été réalisé pour facilité la compréhension du langage de programmation RAPID des robots ABB. Chapoul Jérôme 31/01/2013
2 Sommaire Titre 1 Méthode de programmation Page 3. Titre 2 Instruction While Page 3. Titre 3 Instruction IF Page 4. Titre 4 Instruction Test Page 5. Titre 5 Instruction FOR Page 6. Titre 6 Données Jointtarget Page 7. Titre 7 Données Robtarget Page 8. Titre 8 Instruction TPWrite Page 9. Titre 9 Instruction TPErase page 9. Titre 10 Instruction TPReadNum Page 10. Titre 11 Instruction TPReadFK Page 11. Titre 12 Instruction MotionSup Page 12. Titre 13 Instruction SoftAct/Deact Page 13. Notes Page 14, 15, 16.
3 Programmation : 1 Méthode de programmation : Le langage de programmation utilisé chez ABB, est le langage RAPID. C est un langage de type Structure Hot Text, qui lui même est un dérivé du langage C++. Se langage va souvent être accompagné de structure comme celle présenté si dessous. De se fait, un langage spécifique de programmation va être à employer. Ci dessous, voici une explication sur les différentes parties composants une Structure d instruction. 2 Instruction de structure de type While : Traduction : Tant que mon compteur est inférieur à la valeur 4, allez (sauter) au Label ici. Içi : While Cpt < 4 DO Goto Label içi ; ENDWHILE Cpt Donnée de type numérique (Exemple 4, 5, 32, 7..) While Tant que. DO Faire. ENDWHILE Fin de WHILE. Label Etiquette. Goto Allez à.
4 3 Instruction de structure de type IF : Traduction : Si ma donnée référence (de type numérique) est égale à 369, alors appeler le programme Vernier. Sinon de si, ma donnée référence est égale à 369, alors appeler le programme Boucle. Sinon appeler mon programme Cycle_de_production. Fonctionnement : La traduction faite précédemment, signifie que si jamais la première condition IF (Si) n est pas vraie (référence autre que 369), alors l ont sauteras sur la condition suivante SINON DE SI (Elsif). Si la condition SINON DE SI n est pas vraie (Référence autre que 469), alors l ont sauteras directement sur la condition SINON (Else). L instruction SINON (else) quand à elle, exécutera directement le programme Cycle_de _production. If Référence = 369 Then Procall Vernier ( ) ; Elsif Référence = 469 Then Procall Boucle ( ) ; Else Procall Cycle_de_production ( ) ; ENDIF!!!!!!!Note: Les arguments Case sont des arguments optionnels, et devront donc être renseignés comme présenté dans le cahier de cours Page 54 et 55. Référence Donnée de type numérique (Exemple 4, 5, 32, 7..) If Si. Then Alors. ENDIF Fin de si. Procall Appelle routine. Boucle ( ) Routine. Elsif Sinon de si. Else Sinon. = La valeur devant le = est comparé à celle derrière le =.
5 4 Instruction de type TEST : Traduction : Tester la valeur de la donnée numérique Référence. Dans le cas ou cette valeur serait 134, le programme vernier serait appelé. Dans le cas ou cette valeur serait 234, le programme Cycle_de_production serait appelé. Dans le cas ou cette valeur serait, 334 le programme replis serait appelé. Dans le cas ou aucune des valeurs n est trouvé, alors le programme se métra en défaut et stoppera son exécution. TEST Référence : ENDTEST Case 134 Procall Vernier ( ); Case 234 Procall Cycle_de_production ( ); Case 334 Procall Replis ( ); DEFAULT Stop!!!!!!!Note: Les arguments Cases sont des arguments optionnels, et devront donc être renseignés comme présenté dans le cahier de cours Page 54 et 55. Référence Donnée de type numérique (Exemple 4, 5, 32, 7..) Test Tester la valeur. Case Dans le cas ou. ENDTEST Fin de test. Procall Appelle routine. Replis ( ) Routine. Stop Arrêt du programme. Default Aucune valeur ne correspond.
6 5 Instruction de type FOR : Traduction : Pour la valeur de la donnée Reg2 allant de 1 à 10, faire le contenu de la structure (répéter les trois Move L). A chaque boucle, la donnée Reg2 sera incrémentée de 1 grâce au Step 1. Si à la place de Step1 nous avions eu Step2, l incrémentation aurais été de 2. Fonctionnement : Le contenu de la structure (les trois Move L) vont êtres répété 10 fois, à l aide de la donnée Reg2 qui sera incrémenté par le Step. Si le Step = 1, alors l incrémentation aura lieu de cette manière (1, 2, 3, 4,5 ). Si le Step = 2, alors l incrémentation aura lieu de cette manière (2, 4, 6, 8 ). Reg2 := Reg2 + 1 FOR Reg2 From 1 to 10 [Step 1] do Move L, P10, V1000, Z10, Tool 0; Move L, P11, V1000, Z10, Tool 0; Move L, P12, V1000, Z10, Tool 0; ENDFOR Reg2 Donnée de type numérique (Exemple 4, 5, 32, 7..) FOR Pour la donnée. 1 To 10 De 1 à 10. Step Sauter de. Do Faire. ENDFOR Fin de FOR. Reg2 := Reg2 + 1 Reg2 sera égale à sa valeur actuel incrémenté de 1.
7 6 Instruction de Mouvement type Jointtarget: Fonctionnement : L instruction de mouvement qui va être référencé dans les données de programme de type Jointtarget se nomme Move AbsJ. La donnée de type Jointtarget va permettre de rentrer la position des angles moteurs comme coordonné. Analyse du point Jpos10 : Rax_1 : 3,4 Le moteur 1 sera positionné à 3,4. Rax_2 : 56 Le moteur 2 sera positionné à 56. Rax_3 : 0 Le moteur 3 sera positionné à 0. Rax_4 : 3,4 Le moteur 4 sera positionné à 3,4. Rax_5: 46 Le moteur 5 sera positionné à 46. Rax_6 : 10 Le moteur 6 sera positionné à 10. Eax_a: Eax_b : Eax_c : Eax_d : Eax_e: Eax_f : 9 E +09 A ne pas modifier. 9 E +09 A ne pas modifier. 9 E +09 A ne pas modifier. 9 E +09 A ne pas modifier. 9 E +09 A ne pas modifier. 9 E +09 A ne pas modifier. Les valeurs d angles moteurs à modifier sont les paramètres Rax_.
8 7 Instruction de Mouvement type Robtarget: Fonctionnement : Les instructions de mouvement qui vont êtres référencés dans les données de programme de type Robtarget se nomment Move J, Move L, Move C. Une donnée de type Robtarget va permettre de rentrer la position du CDO (centre d outil) de l outil sélectionné par rapport au repère objet sélectionné. Move J, P10, V1000, Z10, Tool 0, Wobj 0; Move L, P11, V2000, FINE, Tool 0, Wobj 0; Move C, P20, P21, V2000, Z20, Tool 0, Wobj 0 Analyse du point Jpos10 : X : Y : Z : 380 Le CDO de l outil sera positionné à 380mm de l origine de l axe X du repère objet. 110 Le CDO de l outil sera positionné à 110mm de l origine de l axe Y du repère objet. 1276 Le CDO de l outil sera positionné à 1276mm de l origine de l axe Y du repère objet. Q1: 0 Quaternion. Q2 : 1 Quaternion. Q3 : 0 Quaternion. Q4 : 0 Quaternion. Cf_1: Cf_4 : Cf_6: Cf_X: Eax_a: Eax_b : Eax_c : Eax_d : Eax_e: Eax_f : 0 Configuration d axe. 0 Configuration d axe. 0 Configuration d axe 0 Configuration d axe 9 E +09 A ne pas modifier. 9 E +09 A ne pas modifier. 9 E +09 A ne pas modifier. 9 E +09 A ne pas modifier. 9 E +09 A ne pas modifier. 9 E +09 A ne pas modifier. Les valeurs à modifier sont les paramètres X, Y et Z. Les quaternions peuvent êtres modifiés à l aide de la fonction Euler.
9 8 Instruction de communication TPwrite: Fonctionnement : Cette instruction va permettre d écrire un message à destination de l opérateur dans la fenêtre d information de taches. (Cette instruction se trouvera dans le répertoire communicate de l onglet «ajouter une instruction» dans l éditeur de programme) Deux possibilités s offrent à vous, soit utiliser une donnée de type String, où bien écrire directement le texte entre les guillemets. TPWrite String_1 ; TPWrite Attente pièce ; Analyse de l instruction: TPWrite Ecrire sur le Teach pendant. String_1 Donnée programme de type String_Data. (Guillemets) Début et fin de zone d écriture (obligatoire). Tout texte écrit à l aide de l instruction TPWrite devra être effacé à l aide d un TPErase. 9 Instruction de communication TPErase: Fonctionnement : Cette instruction va permettre d effacer un message écris dans la fenêtre d information de tache. (Cette instruction se trouvera dans le répertoire communicate de l onglet «ajouter une instruction» dans l éditeur de programme). TPErase;
10 10 Instruction de communication TPReadNum: Fonctionnement : Cette instruction va permettre à l opérateur de rentrer une valeur numérique en saisie manuelle dans la donnée de type Num Reg2. La donnée String_2 sera la phrase qui sera écrite dans la fenêtre d information de taches (Exemple : référence de la pièce? ). (Cette instruction se trouvera dans le répertoire communicate de l onglet «ajouter une instruction» dans l éditeur de programme). TPReadNum Reg1, String_2 ; Analyse de l instruction: TPReadNum Instruction. String_2 Donnée programme de type String_Data. (Guillemets) Début et fin de zone d écriture (obligatoire). Reg2 Donnée de programme de type Num. Tout texte écrit à l aide de l instruction TPReadNum devra être effacé à l aide d un TPErase.
11 11 Instruction de communication TPReadFK: Fonctionnement : Cette instruction va permettre à l opérateur de rentrer une valeur numérique en à l aide des touches fonctions virtuel dans la donnée de type Num Reg3. (Exemple : lancer différents programmes à partir de différentes touches) La donnée String_3 sera la phrase qui sera écrite dans la fenêtre d information de taches (Exemple : Choisir le programme à lancer? ). (Cette instruction se trouvera dans le répertoire communicate de l onglet «ajouter une instruction» dans l éditeur de programme). Si j appuy sur la touche N 1, alors ma donnée Reg3 prendra la valeur 1. Si j appuy sur la touche N 2, alors ma donnée Reg3 prendra la valeur 2. TPReadFK Reg3, String_3, Sting_4, String_5, stempty, stempty, stempty; Analyse de l instruction: TPReadFK Instruction. String_3 Donnée programme de type String_Data. (Guillemets) Début et fin de zone d écriture (obligatoire). String_4 Texte de la touche numéro 1. String_5 Texte de la touche numéro 2. stempty Touches non utilisés. Tout texte écrit à l aide de l instruction TPReadNum devra être effacé à l aide d un TPErase.
12 12 Instruction de supervision MotionSup: Fonctionnement : Cette instruction va permettre au programmateur de modifier la valeur de la supervision en Cycle. Application : Cette instruction peut être utilisé pour alléger les efforts générer par certaine applications. Exemple : Perçage, dépose, changement d outils.. (Lors d un cycle, je dois inter changer deux outils. L un est de 10 kilos et l autre de 80 Kilos. Si je n augmente pas ma valeur de supervision, l outil va détecter un effort additionnel de 70 Kilos. 80 10 =70 kilos. Naturellement la supervision va stopper le robot. Il conviendra donc en cycle d utiliser l instruction MotionSup pour pallier à se problème). (Cette instruction se trouvera dans le répertoire setting de l onglet «ajouter une instruction» dans l éditeur de programme). MotionSup\On\TuneValue := 120; Passe la valeur de supervision à 120%. MotionSup\On; Active la supervision. MotionSup\Off; Désactive la supervision.
13 12 Instruction Soft Act: Fonctionnement : Cette instruction va permettre de libérer les freins d un axes partiellement, pour le rendre libre mécaniquement. Exemple : Perçage, dépose, changement d outils.. (Lors d une dépose, le robot Vien placer un engrenage dans un calibre. Lors de ma prise engrenage je peux avoir un très léger défaut de concentricité entre mes deux éléments. En utilisant l instruction SoftAct, je vais venir libérer mon axe 6 pour que ma pièce puisse correctement glisser et s orienter dans son calibre). SoftAct 6, 100%; Relâche le frein de l axe 6 et lui impose une résistance mécanique, diminué de 100% de sont couple nominale. SoftAct 3, 30%; Relâche le frein de l axe 3 et lui impose une résistance mécanique de 70% de sont couple nominale. SoftAct 6, 100%; Relâche le frein de l axe 6 et lui impose une résistance mécanique, diminué de 100%. SoftDeact; Désactive un SoftAct précédemment programmé.
14 Notes
15
16