2. 2
OBJECTIUS:
Robots:
● Interpretar la documentació tècnica.
● Aplicar llenguatges de programació.
● Desenvolupar programes de gestió i
control de xarxes de comunicació.
CONTINGUTS:
3.1 Què és programar un robot?
3.2 Conceptes previs per a la programació de
robots.
3.3 Referències i sistemes de coordenades.
3.4 Moviment del robot.
3.5 Procés de programació.
3.6 Llenguatges de programació.
3.7 Modes de programació de robots.
3.8 Estructura del programa.
3.9 Instruccions de programació
PRECONEIXEMENT:
● Components i aplicacions dels robots.
● Configuració, selecció i connexió de components.
www.raulsolbes.wordpress.com
3. 3.1Quèésprogramarunrobot?
● És moure els seus eixos de forma seqüencial a determinats punts o objectius de l'espai de treball,
● és seguir una trajectòria predefinida,
● és interactuar amb el seu entorn davant els esdeveniments que en ell es produeixen, realitzant operacions
industrials i evitant col·lisions.
3www.raulsolbes.wordpress.com Imatge de Juan Carlos Martín Castillo
EXEMPLE:
4. 3.2ConceptesprevisperalaprogramacióDEROBOTS.
● Posicions (“points”):
○ coordenades de l'espai de treball a les quals el robot ha d'accedir per a posicionar-se i realitzar des d'elles les tasques
encomanades.
○ assignació per guiat o de forma textual,
○ posició inicial = “home”,
○ coordenades absolutes i relatives,
○ les accions de la ferramenta no són posicions!
● Moviments:
○ desplaçaments d’una posició a una altra,
○ poden ser: rectilinis, per interpolació rectilínia o per interpolació circular.
● Trajectòries (“paths”):
○ camins o rutes que han de seguir un robot per a moure's a l'entorn de treball,
○ poden estar formades per un o més moviments.
● Velocitat (de cada trajectòria).
● Orientació: posició angular que pren la ferramenta respecte al seu punt central (TCP).
● Accions sobre la ferramenta: han de programar-se independement a les trajectòries.
● Entrades i eixides.
4www.raulsolbes.wordpress.com
6. 3.4movimentdelrobot.
6www.raulsolbes.wordpress.com
Mitjançant “Teach Pendant” o el programari de programació corresponent, han d'ensenyar-se els punts o
posicions en els quals ha de posicionar-se el robot. Esta tasca es realitza en la fase prèvia a la programació i
consisteix a moure els eixos mitjançant impulsos (“Jog”) per a aconseguir els objectius en els quals el robot es va
a posicionar posteriorment.
● Mode cartesià: permet moure el robot de forma sincronitzada, és a dir, en mouen tots els motors del robot
per a realitzar un desplaçament lineal en un dels eixos del sistema cartesià (X, I o Z). En este cas, el
desplaçament (en mil·límetres) del TCP s'efectua amb valors negatius o positius respecte al punt de
referència que és el de la base del robot.
● Mode articulació (“joint”): permet moure el robot en cadascun dels seus eixos, mitjançant l'alimentació
elèctrica individual dels seus corresponents motors.
7. 3.5Procésdeprogramació(1).
7www.raulsolbes.wordpress.com
1. Dissenyar un croquis.
2. Portar el robot a inici o punts de referència.
3. Ensenyar i memoritzar posicions.
4. Crear i programar trajectòries
5. Elaborar de l'estructura del programa i les condicions de funcionament.
6. Carregar el programa en la controlador.
7. Depurar i detectar d'errors.
8. Executar de forma automàtica
8. 3.5Procésdeprogramació(2).
8www.raulsolbes.wordpress.com
(1) Dissenar un croquis. Croquis o esbós a mà en el qual es representen els elements que intervenen en el
procés, les posicions, les trajectòries que ha de seguir el robot i tots els aclariments que cregues
convenients.
Imatge de Juan Carlos Martín Castillo
9. 3.5Procésdeprogramació(3).
9www.raulsolbes.wordpress.com
(2) Portar el robot a inici o punts de referència. Les operacions d'aprenentatge de posicions has de començar-
les amb el robot situat en la posició d'inici (“home”). Tots els robots disposen d'algun mètode maquinari o
programari que permetrà portar al robot a la seua posició de referència.
(3) Ensenyar i memoritzar posicions. Abans de procedir a escriure la seqüència del programa, és necessari que
ensenyes al robot les posicions per les quals es va moure.
● Per guiat, és a dir, memoritzant les posicions amb la “Teach Pendant” o el programari del robot instal·lat
(sempre a seguretat baixa).
● Si el llenguatge de programació ho permet, les coordenades de les posicions es poden indicar de forma
textual en escriure la instrucció de moviment corresponent. Aquesta pràctica té nombrosos avantatges, si
es coneixen les coordenades de l'entorn en el qual es treballa, ja que agilita l'elaboració dels programes.
(4) Crear i programar trajectòries. Definir com es van a realitzar els moviments d'unes a unes altres posicions
(circulars, rectilinis, d'aproximació, etc.) i quins van a ser les diferents rutes o trajectòries que es van a seguir per a
realitzar cadascuna de les tasques previstes, evitant col·lisions amb altres elements de l'entorn.
10. 3.5Procésdeprogramació(4).
10www.raulsolbes.wordpress.com
(5) Elaborar de l'estructura del programa i les condicions de funcionament. Es convenient estructurar el
programa en blocs, escrivint les condicions de funcionament de cada tasca. Tot en funció dels successos que es
produeixen en l'entorn, per exemple, l’activació d’un sensor.
(6) Carregar el programa en la controladora. Una vegada realitzat el programa, hi ha que transferir el codi font
a la controladora.
(7) Depurar i detectar d'errors. Es recomanable comprovar pas a pas l'execució de la seqüència. Està acció
permet conèixer si les sentències escrites en el codi font s'executen correctament, evitant col·lisions i situacions
de perill per a l'entorn, les persones i el propi robot. L'execució del programa requereix que les barreres
protectores i/o sistemes de seguretat electrònica estiguen activats, per a evitar riscos a l'entorn de la màquina.
(8) Executar de forma automàtica. Després de realitza la comprovació “pas a pas”, ja es pot llançar l'execució
automàtica i cíclica del programa.
11. 3.6llenguatgesdeprogramació.
11www.raulsolbes.wordpress.com
● La programació NO està estandarditzada, és a dir, cada fabricant utilitza el sue propi llenguatge, i no
existeix compatibilitat, almenys absoluta.
● Ara bé, els llenguatges de programació de robots tenen característiques similars als llenguatges d'alt nivell
de tipus generalista com Basic, C++ o Pascal, la qual cosa permet una fàcil adaptació per part dels
programadors.
LLENGUATGE FABRICANT
RAPID ABB Robots
KRL KUKA Robotics
MELFA BASIC Mitsubishi
BAPS Bosch Rexroth AG
...
12. 3.7modesdeprogramacióderobots(1).
12www.raulsolbes.wordpress.com
● Programació per guiat o programació d’aprenentatge.
Consisteix a moure el robot als objectius desitjats, memoritzant les posicions i configurant els paràmetres associats.
● Programació guiada passiva: es mou el robot de forma manual, amb els motors desconnectats, als punts de l'espai de
treball i seguint les trajectòries que s'han de realitzar en la tasca, memoritzant-les una a una mitjançant el dispositiu
de programació o Teach Pendant. Aquest mètode presenta considerables dificultats quan els robots són de gran
envergadura.
● Programació guiada activa: és similar a la passiva, però en este cas, el moviment del robot es realitza amb els motors
connectats elèctricament, a través de la consola d'aprenentatge i mitjançant els comandaments destinats a tal fi com
poden ser un joystick. Es pot utilitzar amb qualsevol tipus de robot, però adquireix gran rellevància en els sistemes de
gran grandària. Aquest tipus de programació ha de fer-se On-line (“en línia”), ja que el robot i la unitat de control han
d'estar activats i funcionant.
EXEMPLE:
https://www.youtube.com/watch?v=acJ3WDnoDCM&feature=youtu.be
14. 3.8ESTRUCTURADElprograma.
14www.raulsolbes.wordpress.com
La majoria dels llenguatges estan estructurats en les següents parts:
1. Declaracions. Normalment es posa a l'inici del programa i en ella es declaren: les variables, el seu tipus i els
valors inicials que han de tenir; la connexió amb programes externs, si és que existeixen; els canals
d'entrades i eixides que existeixen en el sistema; les cadenes cinemàtiques a controlar amb el programa.
2. Sentències. És el lloc destinat a escriure les instruccions del programa principal i que seran executades
seqüencialment en funció del cicle de la unitat de control. En aquesta zona s'escriuen les: instruccions (de
moviment i d'acció); expressions aritmètiques i lògiques; cridades a subrutines i funcions primitives per al
control del flux (flow control) del programa: salts, condicionals, repeticions, etiquetes, etc.
15. 3.9instruccionsdeprogramació(1).
15www.raulsolbes.wordpress.com
● No hi ha llenguatge estandarditzat per a programació de robots, però els llenguatges són bastant
homogenis en el seu joc d'instruccions bàsiques, per la qual cosa es bastant senzill transcriure'ls d'un
fabricant a un altre.
● Els programes de robot s'executen línia a línia, de manera que no es passa a la següent fins que no s'ha
realitzat per complet la instrucció en ella escrita. Així, en el cas de les instruccions de moviment, el
programa es deté en la línia corresponent fins que s'aconsegueix l'objectiu que ací s'ha marcat.
● Qualsevol llenguatge de programació d’un robot permet el desplaçament d'un punt a un altre:
○ Per interpolació lineal (MoveL).
○ Per interpolació circular (MoveC).
● Altres instruccions usuals de programació són les següents:
○ Control de la velocitat (usualment és un paràmetre de cada trajectòria).
○ Control de la ferramenta (usualment a través d’eixides de la controladora).
○ Instruccions condicionals (temps d’espera, valor d’entrades,...).
○ ...
16. 3.9instruccionsdeprogramació(2).
16www.raulsolbes.wordpress.com
EXEMPLE D’UN PROGRAMA GENÈRIC
Inici del programa
1. Si SENSOR=1, aleshores salta a la línia següent, en cas contrari roman en esta posició.
2. VELOCITAT = 100
3. MOU LINEAL a P2
4. OBRE la pinça
5. MOU LINEAL a P3
6. TANCA la pinça
7. TEMPS D’ESPERA = 5s
8. MOU CIRCULAR a P4
9. VELOCITAT = lenta
10. MOU LINEAL a P5
11. …
Final del programa
17. BIBLIGRAFIA
17www.raulsolbes.wordpress.com
Apunts d’elaboració pròpia de Juan Carlos Martín Castillo
(https://www.linkedin.com/pub/juan-carlos-mart%C3%ADn-castillo/32/a6a/8b8)
Juan Carlos, recibe mi más
sincero agradecimiento por
tus consejos, por la
documentación que me has
facilitado y muy especialmente
per ser tan buen técnico y tan
buena persona.