Robotica

Clasificado en Electrónica

Escrito el en español con un tamaño de 20,23 KB

Lenguaje RAPID
Comentarios: ! Esto es un comentario

Encabezado de archivo:
%%%
VERSION:1 (Versión M94 del programa)
LANGUAGE:ENGLISH (Cualquier idioma)
%%%

MODULOS
MODULE <nombre_módulo> [<Lista de atributos>]
<Lista declaración de datos>
<Lista declaración rutina>
ENDMODULE

[<Lista de atributos>]:
SYSMODULE : Módulo del sistema.
NOSTEPIN : No se podrá entrar durante ejecución paso a paso.
VIEWONLY : No podrá ser modificado.
READONLY : No podrá ser modificado pero sí sus atributos.

RUTINAS

Procedimientos
PROC <nombre procedimiento> ( Lista de parámetros )
<Lista de declaraciones de datos>;
<Lista de instrucciones>;
ERROR <lista instrucciones>;
ENDPROC

Funciones
FUNC <tipo valor dato> ( Lista de parámetros)
<Lista de declaraciones de datos>;
<Lista de instrucciones>;
RETURN dato;
ERROR <lista instrucciones>;
ENDFUNC

Interrupciones
TRAP <nombre trap>
<Lista de declaraciones de datos>;
<Lista de instrucciones>;
ERROR <lista instrucciones>;
ENDTRAP

POSIBLES PERSISTENCIAS PARA UN DATO:

VAR: dato variable. Su valor puede ser modificado en el programa.

CONST: dato constante. No permite ser modificado.

PERS: dato persistente. Si se modifica en el programa permanece modificado para nuevas ejecuciones del mismo.

TIPOS DE DATOS

bool (Booleano)
VAR bool <identificador>:= <valor>
<valor>: =TRUE / FALSE <expresión lógica>

Ejemplo:
VAR bool flag;
flag:=TRUE;
flag:= valor1 > valor2;

clok (Reloj)
VAR clok <identificador>; Tiempo máximo: 4.294.967 seg.
ClkReset, ClkStart, ClkStop, y ClkRead

Ejemplo:
VAR clok reloj;
ClkReset reloj;

confdata ( Estructura ) Permite definir las configuraciones de los ejes del robot. En los ABB = [1,0,0,0]
Componentes:
cf1: Cuadrante utilizado del eje 1.
cf4: Cuadrante utilizado del eje 4.
cf6: Cuadrante utilizado del eje 6.
cfx: No utilizado.

Ejemplo:
VAR confdata conf15:=[1,-1,0,0]

dionum Se utiliza en combinación con instrucciones y funciones que manipulan señales de entrada y salida digitales.

Ejemplo:
CONST dionum cerrado := 1;
SetDO pinza1, cerrado;

errnum Utilizada para describir errores recuperables durante la ejecución de un programa, para que pueda ser procesado por el gestor de errores.
ERRNO: Variable del sistema con valores del sistema.
RAISE : Instrucción que permite crear un error desde dentro del programa.

Ejemplo:
CONST errnum err_maq1:=1;
IF Dinput(di1) = 0 RAISE err_maq1;

extjoint Permite definir posiciones de los ejes externos, de los posicionadores o de los manipuladores de piezas de trabajo.

intnum Sirve para identificar una interrupción.
VAR error_transp;
CONNECT error_transp WITH correg_transp;
ISignalDI di1, 1, error_transp;

iodev Se utiliza para los canales serie, como impresores y archivos.

loaddata Sirve para describir las cargas instaladas en la brida de montaje del robot.

mecunit Sirve para definir las diferentes unidades mecánicas que pueden ser controladas y a las que se pueden acceder desde el robot y desde el programa.

num Valores numéricos

Ejemplo:
VAR num a;
a:=5;

orient Define orientación de herramientas y rotaciones de ejes, en forma de cuaternios (q1, q2, q3, q4 ).

[ cos(?/2), vi · sen (?/2), vj · sen (?/2), vk · sen (?/2)]

pos ( Estructura ) Representar posiciones sólo x, y y z en milímetros.

Ejemplo:
VAR pos p1;
p1 := [500,0,940];
p1.y := p1.y + 50;

pose Se utiliza para cambiar de un sistema de coordenadas a otro.
Componentes
trans: Desplazamineto en la posición (x,y,z)
rot: Rotación del sistema de coordenadas (quaternios).

Ejemplo:
VAR pose base1;
base1.trans := [ 50, 0, 40 ]
;
base1.rot := [ 1, 0, 0, 0 ]
;

robtarget ( Estructura ) Sirve para definir la posición del robot.
Componentes:
trans : Posiciones ( x, y, z )
rot : Orientación de la herramienta (q1,q2,q3,q4)
robconf : Configuración de los ejes (c1,c2,c3,c4)
extax : Posición de los ejes externos (e1,e2,e3,e4,e5,e6)

Ejemplo:
CONST robtarget p1 :=[ [x,y,z],[q1,q2,q3,q4],[c1,c2,c3,c4],[ e1,e2,e3,e4,e5,e6]];
CONST robtarget p1 := [[x,y,z],[q1,q2,q3,q4],[1,0,0,0],[ 9E9, 9E9, 9E9, 9E9, 9E9, 9E9]];

string Cadena de caracteres

Ejemplo:
VAR string text;
text:= Arranque del sistema;

tooldata ( Estructura ) Describe las características de una herramienta.
Componentes:
robhold : Tipo bool que define si el robot sujeta la herramienta o no (TRUE/FALSE)
tframe : Sistema de coordenadas de la herramienta
Posición del TCP (x,y,z)
Orientación (q1, q2, q3, q4)
tload : Carga de la herramienta
Peso (mass)
Centro de gravedad (x,y,z)
Ejes de momento de la herramienta (q1, q2, q3, q4)
Momento de inercia de los ejes (ix,iy,iz)

Ejemplo:
CONST tooldata herramienta := [TRUE, [[x,y,z],[q1,q2,q3,q4]] , [mass,[xg,yg,zg],[qg1,qg2,qg3,qg4],ix,iy,iz]];
CONST robtarget p1 := [x,y,z],[q1,q2,q3,q4],[1,0,0,0],[ 9E9, 9E9, 9E9, 9E9, 9E9, 9E9];

wobjdata (Estructura) En algunas aplicaciones el robot no porta la herramienta, sino el objeto de trabajo, mientras que la herramienta está fija. Entonces, se habla de un TCP estacionario. Este es el único caso en el que los movimientos programados no se refieren al TCP, que está inmóvil, sino al objeto de trabajo. Los objetos de trabajo deben definirse como una variables persistente (PERS) y nunca dentro de una rutina.

robhold bool: ¿Está el robot sujetando el objeto de trabajo?. Es verdadero para herramientas estacionarias
ufprog bool: ¿Está fijo el sistema de coordenadas de usuario?. Es falso cuando se utilizan ejes externos coordinados
ufmec string: Unidad mecánica (motor) asociada al eje externo coordinado (sólo si ufprog es falso).
uframe pose: Sistema de coordenadas del usuario, normalmente asociado a la superficie de trabajo o al utillaje, respecto del SDC del mundo. En caso de herramienta estacionaria, se refiere al SDC de la muñeca.
oframe pose: Sistema de coordenadas del objeto de trabajo referido al SDC del usuario.

Ejemplo:
PERS wobjdata obj2 := [FALSE, TRUE, "", [[300,600,200],[1,0,0,0]],[[0,200,30],[1,0,0,0]]];

El robot sujeta la herramienta. El SDC de usuario está fijo, no ha sido girado y su origen se encuentra en las coordenadas (300,600,200) (mm) respecto al SCD del mundo. El SDC del objeto de trabajo tampoco ha sido girado y las coordenadas de su origen están en (0,200,30) (mm) en el SDC del usuario.

SpeedData: velocidad para los movimientos. Existen valores predefinidos: v100, v200, v1000, .... El valor indica velocidad de traslación en mm/s; también se especifica la vel. de rotación.

ZoneData: precisión con la que se debe alcanzar una posición antes de que el robot pueda dirigirse hacia la posición siguiente. Existen valores predefinidos: z10, z20, z50, fine,... .El valor indica la máxima diferencia en mm. respecto del punto pedido. Se especifican más parámetros: orientaciones, ejes externos,... También se distingue entre puntos de paso y puntos de paro.

INSTRUCCIONES DE MOVIMIENTO

MoveL: desplazamiento hasta el punto en línea recta.
MoveL p1, v100, z10, tool1;

MoveC: desplazamiento describiendo un círculo.
MoveC p0, p1, v100, z10, tool1; ! ojo: dos puntos

MoveJ: desplazamiento rápido, sin garantizar la trayectoria seguida (sin coordinación de velocidad entre los ejes del robot).
MoveJ p1, v100, z10, tool1;

Offs Sirve para añadir un offset a una posición determinada del robot.
Offs(Punto, offsetX, offsetY, offsetZ)
Punto = robtarget, offsetX = num, offsetY = num, offsetZ =num
Ejemplo
MoveL p1,v100,fine,tool1;
MoveL offs(p1,100,0,0),v100,fine,tool1;
MoveJ offs(p1,100,100,0,0),v100,fine,tool1;
MoveL offs(p1,0,100,0),v100,fine,tool1;
p1:=offs(p1,100,0,0);

INSTRUCCIONES

Cambio de valor de una salida

Reset <salida digital> Desactivación = 0
Set <salida digital> Activación =1
SetDO do1, 1

Condición de espera

WaitDI di1, 1 Esperar hasta que se active una señal digital
WaitTime 0.5 Esperar cierto tiempo (segundos)
WhileUntil Esperar hasta que se cumpla cierta condición

CONTROL DE FLUJO

Compact IF Ejecutar una instrucción sólo si se cumple una condición.
IF <condición> Instrucción;
IF Diferentes instrucciones se ejecutan si se cumple la condición
IF <condición> THEN
Instrucciones;
ELSE
Instrucciones;
ENDIF

FOR
FOR <contador> FROM VI TO VF [ STEP Incremento ] DO
Instrucciones;
ENDFOR

WHILE
WHILE <condición> DO
Instrucciones;
ENDWHILE

TEST
TEST <dato>
CASE valor1, valor2,.., valor(n-1):
rutina1;
CASE valor n:
rutinax;
DEFAULT
instrucciones;
ENDTEST

GOTO
GOTO Etiqueta



 Parametros D-H:

• Numerar los eslabones de 0 a N. El eslabón 0 será la base fija del robot.

• Numerar las articulaciones de 1 a N.

• Determinar cuales son los ejes de cada articulación, de giro o traslación.

• De 0 a N-1 situar el eje zi sobre el eje de la articulación i+1.

• Situar el origen del Sistema de la Base S0 en cualquier punto del eje z0. Elegir x0 e y0 con la regla de la mano derecha.

• De 1 a N-1 situar el sistema Si en la intersección de zi con la línea normal común a zi-1 y zi. • Situar xi en la línea normal común a zi-1 y zi.

• Situar yi para completar el sistema dextrógiro con xi y zi.

• Situar el sistema Sn en el extremo del robot, con zn paralelo a zn-1 y xn normal a zn-1 y zn.

• Obtener el giro ?i en torno a zi-1 para que xi-1 y xi queden paralelos

• Obtener el desplazamiento di a lo largo de zi-1 para que xi-1 y xi queden alineados

• Obtener el desplazamiento ai a lo largo de xi para que coincidan los orígenes de Si-1 y Si.

• Obtener el giro ?i en torno a xi para que para que coincidan los sistemas Si-1 y Si.

Configuraciones singulares:

- Definición física: Las configuraciones singulares de un robot son aquellas para las cuales las velocidades del extremo no se pueden realizar por una velocidad finita de las articulaciones, o cuando se pierde algún grado de libertad en el movimiento.

- Definición matemática: El robot esta en una configuración singular cuando el rango de la matriz jacobiana[mxn] sea menor m. En el caso de que n=m: existirá singularidad cuando el determinante de la matriz jacobiana es nulo {det J(q)=0}

- De forma práctica: Cuando el robot esta en los límites de su espacio de trabajo porque pierde posibilidades de movimiento o cuando están alineados dos o más ejes de articulaciones del mismo tipo (rotación o traslación)

Tipos de Trayectorias

- Punto a punto: No importa el camino del extremo del robot. Solo importa que alcance el punto final indicado 

Tipos: 

Movimiento eje a eje: sólo se mueve un eje cada vez (aumento del tiempo de ciclo) (Sólo en robots muy simples o con unidad de control limitada) 

Movimiento simultáneo de ejes: los ejes comienzan a la vez. Cada uno acaba cuando puede (altos requerimientos inútiles) 

Movimiento coordinado: empiezan y acaban a la vez

- Coordinadas o isocronas: No importa el camino del extremo del robot, pero los ejes se mueven simultáneamente, ralentizando las articulaciones más rápidas, de forma que todos los ejes acaben a la vez. Tiempo total = menor posible. Se evitan exigencias inútiles de velocidad y aceleración.

- Continuas: Se pretende que el extremo del robot describa una trayectoria concreta y conocida. Importa el camino, pues durante el mismo el robot realiza parte de su cometido (soldadura por arco, corte por láser, etc.). Trayectorias típicas: Línea recta, arco de círculo, otras.

Metodos de programacion de robots

• Programacion por guiado: Se lleva al robot por el camino que se desea que repita posteriormente en modo automático.

- Pasivo: El programador aporta la energía para moverlo

Directo: Se mueve directamente el extremo del robot.

Maniquí: En vez del robot real se mueve un maniquí con su misma configuración cinemática pero mucho más ligero y fácil de mover.

- Activo: Se utiliza el propio sistema de accionamiento del robot, controlado desde una botonera o un JoyStick

• Programacion textual: Se basa en la existencia de un lenguaje formal de programación para indicar los comandos al robot. PROGRAMA: secuencia de ordenes primeramente, editadas y escritas por el usuario y posteriormente, ejecutadas por el robot 

- Modos en que se procesa un programa:

• Interpretado: facilita la depuración y puesta a punto

• Compilado: necesario en lenguajes con sintaxis muy compleja, aumenta la velocidad de ejecución

Criterios de implantacion:

 – Lay-out: esquema de implantación de equipos, máquinas y otros elementos de la planta

– Arquitectura de control: tanto hardware como software

– Elección de la maquinaria: en especial el ROBOT

– Seguridad: tratada de forma especial al aparecer maquinas con funcionamiento automático

– Justificación económica de la implantación

Resolución: mínimo incremento que acepta la unidad de control. Limitado por la electrónica de sensores, convertidores, etc.

Precisión: distancia entre el punto programado y el valor medio de los puntos realmente alcanzados. Errores de calibración, deformación, modelado, etc.

Repetibilidad: radio de la esfera que abarca los puntos alcanzados por el robot tras muchos movimientos. Debido al sistema mecánico: rozamientos, histéresis, zonas muertas, etc.

Entradas relacionadas: