0% encontró este documento útil (0 votos)
65 vistas5 páginas

Creación de Programas para Robots ABB

El documento explica los pasos para crear un programa para un robot, incluyendo darle un nombre, definir herramientas y objetos de trabajo, escribir instrucciones de movimiento y control de entradas/salidas, y crear variables.

Cargado por

israelpilin123
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
65 vistas5 páginas

Creación de Programas para Robots ABB

El documento explica los pasos para crear un programa para un robot, incluyendo darle un nombre, definir herramientas y objetos de trabajo, escribir instrucciones de movimiento y control de entradas/salidas, y crear variables.

Cargado por

israelpilin123
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Una vez vista la paleta de programación, estudiaremos cuáles son los pasos a dar para la

creación de un programa.

Primer paso: dar un nombre al programa


Se pulsará el botón ‘programa’ de la botonera y se introducirá el nombre que se desea
dar al programa.
Segundo paso: definición de herramientas y objeto de trabajo
Sólo será necesario si no se utilizan herramientas u objetos de trabajo previamente
definidos en el sistema. Se verá más adelante cómo crear objetos del tipo tooldata
(herramienta) o loaddata (objeto de trabajo o carga); por ahora consideraremos que se
utiliza la herramienta definida por defecto en el sistema.
CONTROL DE ROBOTS Y SISTEMAS SENSORIALES ABB EJEMPLO 1
Tercer paso: Escritura de las instrucciones del programa
Los programas de gran extensión se estructuran en rutinas y módulos, de modo que sean
más fáciles de leer. En nuestro caso, dado que los programas serán sencillos,
obviaremos el paso de la creación de las rutinas y escribiremos las instrucciones
directamente.
Las instrucciones se eligen de entre varias listas; normalmente bastará con utilizar la
lista de instrucciones más comunes; pero si es necesario se puede abrir cualquier otra.
Nosotros nos centraremos en las instrucciones de movimiento y en las instrucciones de
control de entradas y salidas.
Las instrucciones de movimiento más comunes son MoveL, MoveC y MoveJ, tal y
como se vieron anteriormente. Para introducir una cualquiera de ellas, caben dos
posibilidades:
Posibilidad 1:
· Desplazar el robot hasta la posición y orientación deseadas como punto final de
la instrucción de movimiento.
· Elegir la instrucción adecuada de la lista (por ejemplo, MoveL).
· Adecuar los parámetros:
- Posición destino: se introducirá un asterisco (*) que indica que la posición
destino es la posición en la que se encuentra el robot actualmente.
- Velocidad: se elegirá alguna de las velocidades predefinidas: v10, v50,
v1000, etc. donde la cifra indica la velocidad de traslación en mm/s. Para
operaciones especiales será preciso definir una velocidad específica.
- Precisión: se elegirá una de las precisiones predefinidas: z10, z30, z150, etc.
donde la cifra indica el valor en mm. de la precisión (el valor ‘fine’ supone
una precisión de 0 mm).
- Herramienta: se elegirá en este caso la herramienta predefinida tool0. En
caso de querer utilizar otra herramienta, habría que haberla definido
previamente.
Posibilidad 2:
· Desplazar el robot hasta la posición y orientación deseadas como punto final de
la instrucción de movimiento.
· Crear una variable de tipo robtarget con esa posición. Para ello se debe acceder
a la ventana de datos desde el menú ‘Ver’, opción ‘Datos’. Deberemos asignar
un nombre a la variable, por ejemplo, ‘pos_fin’.
· Elegir la instrucción adecuada de la lista (por ejemplo, MoveL).
· Adecuar los parámetros:
- Posición destino: se introducirá el nombre de la variable recién creada, en
nuestro caso ‘pos_fin’.
- Velocidad, Precisión y Herramienta: se procederá como en el caso
anterior.
Mediante cualquiera de las dos posibilidades, habrá quedado definida una instrucción de
movimiento para el robot.
CONTROL DE ROBOTS Y SISTEMAS SENSORIALES ABB EJEMPLO 1
Para las instrucciones de control de las entradas y salidas emplearemos un
procedimiento más sencillo. Bastará elegir la instrucción adecuada de entre la lista: Set,
Reset, SetDO, WaitDI... todas ellas vistas con anterioridad. Los parámetros a fijar en
este tipo de instrucciones se limitan al nombre de la señal a utilizar y al valor que se
desea para ella o que se quiere comprobar en ella.
Con estos tipos de instrucciones vistos, ya es posible crear un programa para el robot
que:
· Espere hasta tener una pieza lista para ser procesada.
· Se desplace hasta la posición de la pieza siguiendo la trayectoria deseada
(instrucciones de movimiento).
· Agarre la pieza (activando una determinada señal digital).
· Desplace la pieza hasta el lugar deseado (instrucciones de movimiento).
· Suelte la pieza (desactivando la señal digital anterior).
· Ponga en marcha la cinta transportadora que debe llevarse la pieza una vez
depositada por el robot (activando otra señal digital).
ESCRITURA DEL PROGRAMA EN UN PC
Una vez vista la forma de introducir los programas desde la paleta de programación, se
estudiará la forma de escribir los programas en un PC y transferirlos posteriormente al
robot vía disquete.
Un programa escrito en el PC debe tener un formato inteligible para el robot. Para ello
se deberán seguir unas ciertas reglas de sintaxis en la escritura de las instrucciones y del
conjunto del programa. Veremos a continuación como crear un programa para un
ejemplo de movimiento sencillo como el descrito anteriormente.
Las líneas iniciales del programa deben ser, de acuerdo con la versión del software
disponible, tal y como las que se muestran a continuación:
%%%
VERSION:1
LANGUAGE:ENGLISH
%%%
Tras estas líneas iniciales, se introducirá el código del programa; todo el englobado
dentro de un determinado módulo; por lo tanto el código se englobará entre las dos
líneas siguientes:
MODULE prueba
...
código del programa
...
ENDMODULE
Se ha asumido que, en este ejemplo, el nombre dado al módulo principal ha sido
‘prueba’. Las primeras instrucciones que aparecerán en el programa serán definiciones
de variables. Entre estas definiciones estarán las que hacen referencia a las herramientas
a utilizar, las que se pretendan utilizar para realizar operaciones matemáticas o lógicas,
CONTROL DE ROBOTS Y SISTEMAS SENSORIALES ABB EJEMPLO 1
etc. Supongamos que en nuestro caso sólo pretendemos definir un dato, que especificará
la herramienta con la que pensamos trabajar. En este caso la instrucción a introducir
tendría un aspecto como el siguiente:
PERS tooldata pinza :=
[TRUE,[[0,0,0],[1,0,0,0]],[5,[9,0,9],[1,0,0,0],0.01,0.
01,0.01]];
Analicemos detenidamente la expresión anterior:
· La palabra clave PERS especifica el alcance de la variable o dato que deseamos
crear. Existen tres posibilidades:
· LOCAL: variable sólo accesible dentro del módulo donde se ha definido.
· GLOBAL: variable accesible en todos los módulos del programa.
· PERS: variable persistente: accesible en todos los módulos del programa y con
valor no reinicializable al comenzar de nuevo los programas.
Para los programas sencillos que crearemos no necesitaremos considerar el alcance
de las variables; declararemos en general variables locales.
· tooldata especifica el tipo de dato que queremos crear, en este caso se trata de una
definición de herramienta.
· pinza es el nombre que se desea dar a la variable y se elige arbitrariamente.
· := es el operador de asignación en RAPID, permite dar valores a las variables.
· El resto de datos son los valores para cada uno de los campos del tipo de datos
tooldata:
· TRUE corresponde al campo ‘robhold’ e indica si la herramienta está sujeta al
robot o no.
· El primer vector, [0,0,0] corresponde a la posición del punto origen de la
herramienta con relación al extremo del robot, expresado en mm.
· El segundo vector, [1,0,0,0] corresponde a la orientación de la herramienta con
relación también al sistema de coordenadas situado en el extremo del robot. La
orientación se expresa mediante un cuaternio.
· El resto de datos tienen que ver con la masa y los momentos de inercia de la
herramienta:
· El primer valor, 5, es el peso de la herramienta en kg.
· El primer vector, [9,0,9], indica la posición del centro de gravedad de la
herramienta en mm.
· El segundo vector, [1,0,0,0], indica la orientación del sistema de coordenadas
sobre el que se medirán los momentos de inercia de la herramienta. Debe
tener SIEMPRE el valor [1,0,0,0] para indicar que este sistema de
coordenadas coincide con el del extremo del robot.
· Los tres restantes valores, 0.01,0.01,0.01 representan los momentos de
inercia mencionados anteriormente y expresados en kg×m2.
CONTROL DE ROBOTS Y SISTEMAS SENSORIALES ABB EJEMPLO 1
Tras la declaración de variables, se encontrarían las rutinas y funciones constitutivas del
módulo. Dado que el ejemplo a introducir es muy sencillo, esta estructuración no es
necesaria, y todo el código se incluirá dentro de una única rutina, que necesariamente ha
de llamarse main (rutina principal):
PROC main()
...
instrucciones
...
ENDPROC
Las instrucciones a introducir serán básicamente movimientos y control de entradas y
salidas digitales. Un ejemplo sería el siguiente:
! movimiento rapido hasta un punto proximo a la pieza
MOVEL pos1, v1000, z50, pinza;
! descenso hacia la pieza con velocidad lenta y alta
precision
MOVEL pos2, v50, z0.3, pinza;
! activacion de la pinza
SET do15;
! espera de 0.5 segundos para asegurar accion pinza
WAITTIME 0.5;
! movimiento rapido hasta un punto proximo al destino
MOVEL pos3, v1000, z50, pinza;
! descenso hacia el destino con velocidad lenta y alta
precision
MOVEL pos4, v50, z0.3, pinza;
Hay que resaltar algunos aspectos del ejemplo:
· Todas las líneas que comienzan con el carácter admiración (!) no son interpretadas
por el robot, sencillamente sirven como comentario para facilitar la comprensión del
programa.
· La instrucción WaitTime realiza una espera del número de segundos indicado antes
de ejecutar la siguiente instrucción.
· Las variables pos1, pos2, pos3 y pos4, deberían estar definidas e inicializadas a sus
valores correspondientes. Son variables del tipo robtarget, por lo que deberían tener
especificados los siguientes campos:
· Trans: posición en coordenadas cartesianas [x, y, z].
· Rot: orientación expresada como un cuaternio: [q1, q2, q3, q4].
· Robconf: configuración de los ejes deseada (pueden existir ambigüedades si
sólo se indican posición y orientación). Esta configuración se expresa mediante
los cuadrantes de los ejes 1, 4 y 6 más un cuarto valor que no se utiliza en este
modelo de robot.
· Extax: indica la posición de los ejes externos 1 a 6 en caso de existir; si los ejes
no están conectados (como es el caso) se utilizará el valor 9E9.
CONTROL DE ROBOTS Y SISTEMAS SENSORIALES ABB EJEMPLO 1
Un ejemplo de definición de una de estas posiciones sería el siguiente:
CONST robtarget pos2 :=
[33.1,-61.8,64.9], [0.34,-0.42,0.42,-0.72], [-1,-1,-
1,1], [9E+09,9E+09,9E+09,9E+09,9E+09,9E+09];
El programa completo quedaría al y como se muestra a continuación:
%%%
VERSION:1
LANGUAGE:ENGLISH
%%%
MODULE prueba
PERS tooldata pinza :=
[TRUE,[[0,0,0],[1,0,0,0]],[5,[9,0,9],[1,0,0,0],0.01,0.01,0.01]];
CONST robtarget pos1 :=
[[33.1,-61.8,54.9], [0.34,-0.42,0.42,-0.72], [-1,-1,-1,1],
[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget pos2 :=
[[33.1,-61.8,64.9], [0.34,-0.42,0.42,-0.72], [-1,-1,-1,1],
[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget pos3 :=
[[-27.2,53.4,-15.1], [0.27,0.32,-0.22,0.56], [-1,-1,-1,1],
[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget pos4 :=
[[-27.2,53.4,-25.1], [0.27,0.32,-0.22,0.56], [-1,-1,-1,1],
[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
PROC main()
! movimiento rapido hasta un punto proximo a la pieza
MOVEL pos1, v1000, z50, pinza;
! descenso hacia la pieza con velocidad lenta y alta
precision
MOVEL pos2, v50, z10, pinza;
! activacion de la pinza
SET do15;
! espera de 0.5 segundos para asegurar accion pinza
WAITTIME 0.5;
! movimiento rapido hasta un punto proximo al destino
MOVEL pos3, v1000, z50, pinza;
! descenso hacia el destino con velocidad lenta y alta
precision
MOVEL pos4, v50, z10, pinza;
ENDPROC
ENDMODULE
CONTROL DE ROBOTS Y SISTEMAS SENSORIALES ABB EJEMPLO 1
4.5. Modo de ejecutar los programas en el IRB140
Deben considerarse dos posibilidades: la ejecución de programas en pruebas, durante la
creación y depuración de los mismos; y la ejecución de programas en producción, una
vez están perfectamente probados.
Para la ejecución en pruebas, el equipo ofrece muchas facilidades que permiten realizar
las pruebas sin riesgos y detectar posibles errores en el programa. Las ayudas que ofrece
el sistema son:
· Posibilidad de reducir la velocidad de todos los movimientos para la realización de
pruebas: si el robot se mueve a velocidad reducida será más sencillo detenerlo ante
un posible fallo.
· Posibilidad de ejecutar el programa paso a paso: se ven los resultados de la
ejecución de cada instrucción antes de pasar a la siguiente.
· Posibilidad de ejecutar un solo ciclo de programa: en general, el robot ejecuta una
secuencia de movimientos y acciones de modo repetitivo; para las pruebas es más
razonable realizar un solo ciclo de trabajo.
· Posibilidad de ejecutar instrucciones hacia atrás: permite, en la mayor parte de los
casos, volver al estado anterior a la ejecución de una determinada instrucción si se
detecta que ha habido un error.
· Posibilidad de comenzar la ejecución en una instrucción determinada en lugar de en
el principio del programa: esto permite probar rápidamente fragmentos del
programa.
Todas estas opciones están accesibles desde la ventana ‘Test del programa’, a la que se
llega con la opción ‘Test’ del menú ‘Ver’.
Para el funcionamiento en producción, una vez perfectamente depurado el programa, se
accederá a la ventana ‘Producción’, pulsando el botón ‘Varios’ y eligiendo la opción
‘Producción’.

También podría gustarte