31
UVA - CARTIF Manual Básico de Programación. Lenguaje RAPID J. M. Vázquez Pag.: 3

Manual Rapid Abb s4

Embed Size (px)

Citation preview

  • UVA - CARTIF Manual Bsico de Programacin. Lenguaje RAPID

    J. M. Vzquez Pag.: 3

  • Manual Bsico de Programacin. Lenguaje RAPID UVA - CARTIF

    J.M. Vzquez Pag.: 4

    MANUAL BSICO DE PROGRAMACINLENGUAJE RAPID

    J.C. FraileJ. Lpez Cruzado

    J.M. Vzquez

    Valladolid, Octubre 2003

  • UVA - CARTIF Manual Bsico de Programacin. Lenguaje RAPID

    J. M. Vzquez Pag.: 5

  • Manual Bsico de Programacin. Lenguaje RAPID UVA - CARTIF

    J.M. Vzquez Pag.: 6

    ndice1. CARACTERSTICAS GENERALES DEL LENGUAJE RAPID 8

    2. ELEMENTOS BASICOS DEL LENGUAJE 9

    2.1 IDENTIFICADORES 92.2 SEPARADORES 92.3 VALORES NUMRICOS, LGICOS Y DE CADENA 92.4 COMENTARIOS 92.5 COMODINES 92.6 ENCABEZADO DE ARCHIVO 102.7 CONTROL DEL FLUJO DEL PROGRAMA 102.8 INSTRUCCIONES Y ARGUMENTOS 10

    3. MODULOS Y RUTINAS 12

    3.1 ESTRUCTURA DE UNA APLICACIN 123.2 MDULOS 12

    3.2.1 DECLARACIN DE LOS MDULOS 123.2.2 MDULOS DE SISTEMA 13

    3.3 RUTINAS 133.3.1 TIPOS DE RUTINAS 133.3.2 ALCANCE DE UNA RUTINA 133.3.3 DECLARACIN DE UNA RUTINA 133.3.4 PARMETROS DE UNA RUTINA 14

    4. DATOS 15

    4.1 INTRODUCCIN 154.2 CARACTERSTICAS DE LOS DATOS 15

    4.2.1 ALCANCE DE LOS DATOS 154.2.2 DECLARACIN DE LOS DATOS 15

    4.3 TIPOS DE DATOS 154.4 LISTA DE LOS DIFERENTES TIPOS DE DATOS 164.5 DESCRIPCIN DE ALGUNOS DE LOS TIPOS DE DATOS MS USUALES 16

    4.5.1 POS 164.5.2 ORIENT 174.5.3 POSE 174.5.4 CONFDATA 184.5.5 LOADDATA 184.5.6 SPEEDDATA 194.5.7 ZONEDATA 194.5.8 EXTJOINT 204.5.9 ROBTARGET 204.5.10 TOOLDATA 20

  • UVA - CARTIF Manual Bsico de Programacin. Lenguaje RAPID

    J. M. Vzquez Pag.: 7

    4.5.11 WOBJDATA 21

    5. MOVIMIENTOS 22

    5.1 CARACTERSTICAS DE MOVIMIENTO 225.1.1 DEFINICIN DE LA VELOCIDAD 225.1.2 DEFINICIN DE LA ACELERACIN 225.1.3 DEFINICIN DE LA GESTIN DE LA CONFIGURACIN 225.1.4 DEFINICIN DE LA CARGA TIL 235.1.5 DEFINICIN DEL COMPORTAMIENTO DEL ROBOT CERCA DE UN PUNTO SINGULAR 235.1.6 DESPLAZAMIENTO DE UN PROGRAMA 235.1.7 SERVO SUAVE 245.1.8 VALORES DE AJUSTE DEL ROBOT 24

    5.2 INSTRUCCIONES DE POSICIONAMIENTO MS USUALES 255.3 OTRAS INSTRUCCIONES Y FUNCIONES RELACIONADAS 27

    6. ENTRADAS Y SALIDAS 28

    6.1 INSTRUCCIONES DE E/S MS USUALES 286.1.1 SET 286.1.2 RESET 286.1.3 SETAO 286.1.4 SETDO 286.1.5 SETGO 286.1.6 WAITDI 296.1.7 WAITDO 29

    6.2 OTRAS INSTRUCCIONES Y FUNCIONES RELACIONADAS 29

    7. DIALOGO CON EL OPERADOR Error!Marcador no definido.

    7.1 INSTRUCCIONES DE COMUNICACIN MS USUALES 307.1.1 TPWRITE 307.1.2 TPREADFK 30

    7.2 OTRAS INSTRUCCIONES Y FUNCIONES RELACIONADAS 31

    8. INSTRUCCIONES VARIAS 32

    8.1 INSTRUCCIONES DE ESPERA 328.2 FECHA Y HORA 328.3 MATEMTICAS 328.4 INSTRUCCIONES DE SERVICIO 338.5 FUNCIONES DE CADENA 338.6 FUNCIONES VARIAS 33

  • Manual Bsico de Programacin. Lenguaje RAPID UVA - CARTIF

    J.M. Vzquez Pag.: 8

    1. CARACTERSTICAS GENERALES DEL LENGUAJE RAPID

    RAPID = Robotics Application Programming Interactive Dialogue

    Lenguaje estructurado de alto nivel. Procedimientos y funciones. Programas modulares. Datos y rutinas locales y globales. Interrupciones. Gestin automtica de errores. Gestin de ejecucin hacia atrs. Expresiones aritmticas y lgicas. Multitarea: varios programas ejecutndose a la vez. Libreras de mdulos de programas para rutinas especficas. El programa robot y los datos definidos por el usuario se almacenan en formato texto PC

    DOS. Los programas se escriben de una manera fcil usando ventanas que contienen las

    instrucciones. Puede ser ampliado por el usuario generando sus propias instrucciones. ProcessWare: coleccin de mdulos de software que proporcionan herramientas para los

    distintos procesos. Ejemplos: ArcWare (para soldadura de arco) y SpotWare (para soldadurapor puntos).

    Programacin OFF-LINE y transmisin de los programas al robot desde disquete o PC (vapuerto serie)

  • UVA - CARTIF Manual Bsico de Programacin. Lenguaje RAPID

    J. M. Vzquez Pag.: 9

    2. ELEMENTOS BSICOS DEL LENGUAJE

    2.1 Identificadores

    Los identificadores sirven para nombrar mdulos, rutinas, datos y etiquetas. El primer carcter de un identificador debe ser una letra. El resto de caracteres pueden ser letras, nmeros o el carcter de subrayado _. La longitud mxima de cualquier identificador es de 16 caracteres. El tamao de la letra (mayscula o minscula) no diferencia los identificadores.

    Hay una serie de palabras que no se pueden utilizar como identificadores: Palabras reservadas del lenguaje RAPID (ej.: AND, IF, MODULE, LOCAL, etc.) Nombres predefinidos para tipos de datos, datos del sistema, instrucciones y funciones.

    2.2 Separadores

    El lenguaje RAPID es un lenguaje sin formatos, lo que significa que los espacios pueden utilizarse encualquier parte excepto en : identificadores, palabras reservadas, valores numricos y comodines.

    Los caracteres fin de lnea, tabuladores y fin de pgina se pueden usar donde se pueda usar un espacio,excepto dentro de comentarios.

    Las instrucciones se separan entre s mediante ; .

    Los identificadores, palabras reservadas y valores numricos debern estar separados entre s por unespacio, un carcter fin de lnea o un tabulador.

    Los espacios innecesarios y los caracteres de fin de lnea sern automticamente borrados al cargar unprograma en la memoria. Esto implica que un programa cargado desde un disquete (programa realizadoOFF-LINE) y luego almacenado de nuevo, puede diferir del original.

    2.3 Valores numricos, lgicos y de cadena

    Un valor numrico (entero o coma flotante) deber estar dentro de los lmites especificados por elestndar ANSI de coma flotante simple precisin.

    Un valor lgico podr expresarse como TRUE (verdadero) o FALSE (falso).

    Un valor de cadena es una secuencia de caracteres (ISO 8859-1) y de caracteres de control. Se puedenincluir cdigos de caracteres (precedidos por \) y caracteres no imprimibles. Una cadena va siempreentre comillas . En el caso de tener que incluir dentro de una cadena los caracteres \ o , se debenescribir dos veces.

    Ejemplo:Esta cadena termina con el cdigo de control BEL \07Esta cadena contiene un carcter comillas

    2.4 Comentarios

    Los comentarios se incluyen para facilitar la comprensin del programa y no afectan en modo alguno alfuncionamiento del mismo. Un comentario empieza siempre con el smbolo ! y acaba con el carcter defin de lnea. Siempre ocupa una lnea entera.

    Ejemplo:...! Esto es un comentario...

    2.5 Comodines

    Los comodines se utilizan para representar de forma temporal ciertas partes del programa que todavano han sido definidas.

  • Manual Bsico de Programacin. Lenguaje RAPID UVA - CARTIF

    J.M. Vzquez Pag.: 10

    Comodn Representa Una declaracin de datos Una declaracin de rutina Un parmetro alternativo opcional Un parmetro opcional Una definicin de la dimensin de una matriz Una instruccin Una referencia (variable, persistente o parmetro) a un dato La clusula ELSE de una instruccin IF La clusula CASE de una instruccin TEST Una expresin Un argumento de llamada de procedimiento Un identificador

    2.6 Encabezado de archivo

    Un archivo de programa empieza siempre con el siguiente encabezado:%%%VERSION: 1 Versin del sistemaLANGUAGE: ENGLISH Idioma%%%

    2.7 Control del flujo del programa

    En algunos casos es necesario interrumpir la ejecucin secuencial de las instrucciones del programa. Elflujo del programa se puede controlar mediante:

    Llamadas a rutinas ProcCall: llamada (salto) a otra rutina. CallByVar: llamada a un procedimiento con nombre especfico. RETURN: regreso a la rutina original.

    Instrucciones de evaluacin de condicin: CompactIF: ejecuta una instruccin slo si se cumple una condicin. IF: ejecuta una parte de programa u otra segn una condicin. WHILE: repite una parte del programa hasta que se cumpla una condicin. TEST: ejecuta diferentes partes de programa segn el valor de una expresin.

    Instrucciones de repeticin de una secuencia: FOR: repite una parte de programa un cierto nmero de veces.

    Salto a una etiqueta dentro de una rutina: GOTO: salta a una etiqueta.

    Parada de la ejecucin del programa: STOP: detiene la ejecucin del programa. EXIT: para la ejecucin de un programa cuando el rearranque de un programa no es

    permitido. BREAK: para la ejecucin de un programa temporalmente para el diagnstico y

    solucin de averas.

    2.8 Instrucciones y argumentos

    Un programa robot est formado por una serie de instrucciones que describen el trabajo del mismo:instrucciones de movimiento, de entradas y salidas, de comunicacin, etc.

    Las instrucciones contienen argumentos asociados que definen lo que va a producir la ejecucin de lainstruccin. Los argumentos se pueden especificar de alguna de las siguientes maneras:

    Valor numrico: 4, 1E4, 2.5, etc.

  • UVA - CARTIF Manual Bsico de Programacin. Lenguaje RAPID

    J. M. Vzquez Pag.: 11

    Referencia a un dato: reg1 (num), posicin3 (robtarget), etc. Expresin. ej.:5+reg1*2. Llamada a una funcin. ej.: Abs(reg1). Valor de cadena. ej.: Nmero de piezas.

  • Manual Bsico de Programacin. Lenguaje RAPID UVA - CARTIF

    J.M. Vzquez Pag.: 12

    3. MDULOS Y RUTINAS

    3.1 Estructura de una Aplicacin

    Una Aplicacin consta de un programa y una serie de mdulos de sistema. A su vez el programa puedeestar dividido en varios mdulos.

    3.2 Mdulos

    Un mdulo de programa est compuesto por DATOS y RUTINAS. Cada mdulo puede ser cargado osalvado independientemente.

    Uno de los mdulos del programa contendr la rutina principal o MAIN, que es el punto de arranque delprograma.

    3.2.1 Declaracin de los mdulos

    Al declarar un mdulo hay que especificar un nombre y unos atributos (los atributos slo se puedenaadir OFF-LINE).

    Tipos de atributos: SYSMODULE: se trata de un mdulo de sistema. NOSTEPIN: no permite la entrada en el mdulo durante la ejecucin paso a paso. VIEWONLY: el mdulo no puede ser modificado. READONLY: el mdulo no puede ser modificado pero sus atributos pueden ser eliminados. NOVIEW: no puede ser visualizado; slo ejecutado. Un programa que contiene un mdulo

    NOVIEW no puede ser salvado. NOVIEW se utiliza sobre todo para los mdulos de sistema.Ejemplo:

    MODULE modulo1 (SYSMODULE, NOVIEW) Mdulo de sistema no visible! Declaraciones! InstruccionesENDMODULE

    PROGRAMA

    MDULO PRINCIPALDATOS

    RUTINA PRINCIPAL

    RUTINAS

    MDULO 1DATOS

    RUTINAS

    MDULO NDATOS

    RUTINAS...

    MDULOde

    SISTEMA

    MDULOde

    SISTEMA

    MDULOde

    SISTEMA...

    MEMORIA DE PROGRAMA

  • UVA - CARTIF Manual Bsico de Programacin. Lenguaje RAPID

    J. M. Vzquez Pag.: 13

    3.2.2 Mdulos de Sistema

    Sirven para la definicin de los datos y rutinas especficas del sistema, como por ejemplo lasherramientas. No sern incluidos cuando se salva un programa, lo que significa que una modificacinrealizada en un mdulo de sistema afectar a todos los programas.

    Los mdulos de sistema residen siempre en memoria (se cargan durante el arranque en fro del sistema)y pueden ser utilizados siempre.

    3.3 Rutinas

    Una rutina tpica tiene la siguiente estructura:

    3.3.1 Tipos de rutinas

    Existen tres tipos de rutinas: PROCEDIMIENTOS: rutinas que no devuelven ningn valor. FUNCIONES: devuelven un valor de un tipo determinado. RUTINAS DE TRATAMIENTO DE INTERRUPCIONES: para el tratamiento de las

    interrupciones. Nunca pueden ser llamadas explcitamente desde el programa.

    3.3.2 Alcance de una rutina

    El alcance de una rutina hace referencia a desde dnde se puede acceder a dicha rutina. Desde estepunto de vista hay dos tipos de rutinas:

    LOCALES: slo se puede acceder desde el mdulo que la contiene. Se deben declararaadiendo al principio la palabra reservada LOCAL.

    GLOBALES: puede ser llamada desde cualquier mdulo. Las rutinas son globales pordefecto.

    3.3.3 Declaracin de una rutina

    Declaracin de un procedimiento:PROC nombre_proc ( ...argumentos... ) ...ENDPROC

    El final de un procedimiento est indicado por ENDPROC, BACKWARD o ERROR, perotambin se puede forzar con la instruccin RETURN.

    Declaracin de una funcin:FUNC tipo_devuelto nombre_func ( ...argumentos... ) ... RETURN(...); ...ENDFUNC

    DECLARACIONES

    DATOS

    INSTRUCCIONES

    RUTINA de TRATAMIENTOde ERRORES

  • Manual Bsico de Programacin. Lenguaje RAPID UVA - CARTIF

    J.M. Vzquez Pag.: 14

    La evaluacin de una funcin debe terminar con una instruccin RETURN. Declaracin de una rutina de tratamiento de interrupciones:

    TRAP nombre_rut_trat_int ... RETURN ...ENDTRAP

    El final de una rutina de interrupcin est indicado por ENDTRAP o ERROR, pero tambinse puede forzar con la instruccin RETURN.

    3.3.4 Parmetros de una rutina

    Son los argumentos que se deben suministrar a dicha rutina cuando se la llama. Tipos de parmetros: NORMALES: se utilizan como entradas a la rutina y son procesados como variables de la

    rutina. El cambio de esta variable en la rutina no cambia el valor del argumento. INOUT: el argumento correspondiente debe ser una variable o un entero persistente y su

    valor puede ser cambiado por la rutina. VAR: el argumento correspondiente debe ser una variable que puede ser cambiada por la

    rutina. PERS: el argumento correspondiente debe ser un persistente entero que puede ser cambiado

    por la rutina.Un parmetro puede ser opcional. En ese caso se antepone un \ en la declaracin. Si hay variosparmetros opcionales mutuamente excluyentes entre s se deben separar por |.

    Ejemplo:PROC rutina1 (num par_in, INOUT num par_inout, VAR num par_var, PERS num

    par_pers, num par_obligat, \num par_opcional, \numpar_opc_1 | num par_opc_2)

    El tipo especial switch slo puede ser asignado a parmetros opcionales y proporciona una forma deutilizar argumentos especificados por los nombres y no por los valores.

    Ejemplo:PROC rutina2 (\switch on | \switch off) ... IF present(off) THEN ...ENDPROC

    Las matrices tambin pueden utilizarse como argumento. La dimensin de la matriz ser determinadapor el parmetro.

    Ejemplo:PROC rutina3 (VAR num matriz1{*,*})

  • UVA - CARTIF Manual Bsico de Programacin. Lenguaje RAPID

    J. M. Vzquez Pag.: 15

    4. DATOS

    4.1 Introduccin

    Existen 3 tipos de datos: VARIABLES: se les puede asignar un nuevo valor durante la ejecucin del programa. PERSISTENTES: es una variable que tiene la particularidad de que su valor de inicializacin

    se actualiza a medida que va cambiando. Cuando se guarda un programa, el valor deinicializacin de cualquier declaracin de persistente refleja el ltimo valor que ha tomado eldato persistente.

    CONSTANTES: representan un valor esttico que no podr cambiar.Siempre que se declara un dato es necesario asignarle un tipo de dato, excepto los datos predefinidos ylas variables de bucle.

    No hay limitacin en cuanto al nmero de datos que se pueden definir de cada tipo, excepto laslimitaciones impuestas por la memoria del sistema.

    4.2 Caractersticas de los datos

    4.2.1 Alcance de los datos

    El alcance de un dato hace referencia a desde donde se puede acceder a dicho dato. Segn dnde sedeclaren los datos, stos pueden ser:

    DATOS DE PROGRAMA: datos declarados fuera de una rutina. Estos datos a su vez puedenser :

    LOCALES: slo se pueden usar en el mdulo que los contiene. Se deben declararaadiendo al principio la palabra reservada LOCAL.

    GLOBALES: puede ser llamada desde cualquier mdulo. Las rutinas son globales pordefecto.

    DATOS DE RUTINA: datos declarados dentro de una rutina. Slo se pueden usar en la rutinaen que se encuentran.

    4.2.2 Declaracin de los datos

    Declaracin de un dato variable:[LOCAL] VAR tipo_dato nombre_dato

    Los datos de variable con tipo de valor podrn ser inicializados en la declaracin:VAR num matriz{10}:=[1,2,3,4,5,6,7,8,9,0]VAR string nombre:=JUAN

    Declaracin de un dato persistente:PERS num reg1:=0

    Los datos persistentes slo pueden declararse en el nivel de mdulo (fuera de las rutinas)y deben tener obligatoriamente un valor inicial. Si un dato persistente es actualizado, seactualizar automticamente su valor de inicializacin.

    Declaracin de un dato constante:CONS num pi:= 3.1415

    4.3 Tipos de datos

    Atendiendo a su descomposicin, existen 2 grandes grupos de tipos de datos: ATMICOS: datos cuya definicin no est basada en otro tipo y que no puede ser dividido en

    partes ni componentes. Ej.: num. REGISTRO: tipo de datos formado por componentes ordenados y nombrados. Ej.: pos.

    Atendiendo a su valor, hay dos grandes grupos de tipos de datos:

  • Manual Bsico de Programacin. Lenguaje RAPID UVA - CARTIF

    J.M. Vzquez Pag.: 16

    CON VALOR: representan de alguna forma un valor. Pueden ser utilizados en operacionesque tratan con valores: inicializacin, asignacin, comparacin , etc.

    SIN VALOR: no representan un valor.4.4 Lista de los diferentes tipos de datos

    bool Valores lgicosclock Medida del tiempoconfdata Datos de configuracin del robotdionum Valores digitales (0,1)errnum Nmero de errorextjoint Posicin de los ejes externosintnum Identificacin de una interrupciniodev Canales y archivos de comunicacin seriejointtarget Datos de posicin de los ejesloaddata Datos de cargamecunit Unidad mecnicamotsetdata Datos de movimientonum Valores numricos (registros)orient Orientacino_lointtarget Dato de posicin original de un ejeo_robtarget Datos de posicin originalpos Posiciones (X,Y,Z) sin orientacinpose Transformacin de coordenadasprogdisp Desplazamiento de programarobjoint Posicin de los ejes del robotrobtarget Datos de posicin (completos)signalai Seales de entrada analgicassignalao Seales de salida analgicassignaldi Seales de entrada digitalessignaldo Seales de salida digitalessignalgi Grupo de seales de entrada digitalessignalgo Grupo de seales de salida digitalesspeeddata Datos de velocidadstring Cadena de caracteressymnum Nmero simblicotooldata Datos de herramientatriggdata Eventos de posicionamiento (disparo)tunetype Tipo de ajuste servowobjdata Datos del objeto de trabajozonedata Datos de zona de ajusteDatos del sistema

    4.5 Descripcin de algunos de los tipos de datos ms usuales

    4.5.1 Pos

    Se usa para almacenar la posicin del robot (Solo X,Y,Z)

    Componentes:

  • UVA - CARTIF Manual Bsico de Programacin. Lenguaje RAPID

    J. M. Vzquez Pag.: 17

    x Coordenada X numy Coordenada Y numz Coordenada Z num

    Ejemplo:VAR pos posicion1:= [600,500,400];

    4.5.2 Orient

    El tipo de datos Orient se utiliza para almacenar la orientacin de un sistema de coordenadas.

    Componentes:q1 Cuaternio 1 numq2 Cuaternio 2 numq3 Cuaternio 3 numq4 Cuaternio 4 num

    La orientacin de un sistema de coordenadas respecto a uno de referencia se puede describir medianteuna matriz de rotacin. Esta matriz tendr por columnas los vectores normalizados que representan lasdirecciones de los ejes X, Y y Z respecto al sistema de coordenadas de referencia. Necesitamos, portanto, 9 valores para representar una orientacin.

    x x x xy y y yz z z z

    ===

    ( , , )( , , )( , , )

    1 2 31 2 31 2 3

    x y zx y zx y z

    1 1 12 2 23 3 3

    Mediante los cuaternios podemos representar la orientacin con slo 4 valores. Los cuaternios secalculan en funcin de los componentes de la matriz de rotacin de la siguiente forma:

    qx y z

    qx y z

    sign q sign y z

    qy x z

    sign q sign z x

    qz x y

    sign q sign x y

    11 2 3 1

    2

    21 2 3 1

    22 3 2

    32 1 3 1

    23 1 3

    43 1 2 1

    24 2 1

    = + + +

    = + =

    = + =

    = + =

    ( )

    ( )

    ( )

    Siempre se cumple que q q q q1 2 3 4 12 2 2+ + + =Ejemplo:VAR orient orient1:= [1,0,0,0]; Orientacin del sistema de coordenadas de la mueca

    4.5.3 Pose

    Se usa para definir un sistema de coordenadas respecto a otro, por ejemplo, el sistema de coordenadasde la herramienta respecto al sistema de la mueca

    Componentes:trans Desplazamiento (x,y,z) del sistema de coordenadas posrot Rotacin del sistema de coordenadas orient

    Ejemplo:VAR pose pose1:= [[50,0,40], [1,0,0,0] ];

  • Manual Bsico de Programacin. Lenguaje RAPID UVA - CARTIF

    J.M. Vzquez Pag.: 18

    4.5.4 Confdata

    Sirve para definir las configuraciones de los ejes del robot. A veces el robot es capaz de alcanzar lamisma posicin y orientacin de la herramienta mediante varias configuraciones de ejes diferentes. Paraevitar esta ambigedad se utilizar este tipo de dato.

    Componentes:cf1 Indica el cuadrante en el que se encuentra el eje 1 (entre -4 y +3) numcf4 Indica el cuadrante en el que se encuentra el eje 4 (entre -4 y +3) numcf6 Indica el cuadrante en el que se encuentra el eje 6 (entre -4 y +3) numcfx No se utiliza de momento num

    El cuadrante 0 corresponde a un ngulo entre 0 y 90, el 1 entre 90 y 180, el -1 entre 0 y -90, y assucesivamente.

    Ejemplo:VAR confdata config1:= [1,-1,0,0];

    4.5.5 Loaddata

    Sirve para definir las cargas instaladas en la brida de montaje del robot. Las cargas definidas sirven paradeterminar un modelo de dinmica del robot, de forma que los movimientos puedan ser controlados de lamejor forma posible.

    NOTA: la carga til que manipula la pinza del robot es de tipo Loaddata. La carga de la propiaherramienta es tambin de este tipo pero est definida dentro de la herramienta.

    Si la carga declarada es mayor que la real, el robot no ser utilizado a su capacidad mxima, la precisinser incorrecta y habr riesgo de vibraciones. Si la carga declarada es menor que la instalada, laprecisin ser incorrecta y habr tambin riesgo de vibraciones.

    Componentes:mass El peso de la carga en Kg. numcog El centro de gravedad de la carga (x,y,z) en mm posaom La orientacin de los ejes del momento de la carga en el centro de

    gravedad.orient

    ix El momento de inercia de la carga alrededor del eje X en Kgm2 numiy El momento de inercia de la carga alrededor del eje Y en Kgm2 numiz El momento de inercia de la carga alrededor del eje Z en Kgm2 num

    La orientacin de los ejes de momento y de los momentos de inercia, normalmente no necesitan serdefinidos. Si ix, iy e iz son 0 kgm2, se considera una carga puntual. Normalmente, slo se definir elmomento de inercia cuando la distancia entre la brida de montaje y el centro de gravedad sea menor quela dimensin de la carga.

    La carga til debe ser definida slo como persistente y no dentro de una rutina.

    La carga load0 define una carga til de un peso de 0 kg. Siempre se puede acceder a la carga load0desde el programa, pero no se puede cambiar (se almacena en el mdulo de sistema BASE).

    PERS loaddata load0:= [0, [0,0,0], [1,0,0,0],0,0,0];Ejemplo:PERS loaddata pieza1:= [5, [50,0,50], [1,0,0,0],0,0,0];Set pinza;WaitTime 0.3;GripLoad pieza1; La conexin de la carga til pieza1 se especifica en el momento en que el

    robot coge la pieza1Reset pinza;WaitTime 0.3;GripLoad load0; La desconexin de la carga til pieza1 se especifica en el momento en que el

    robot deja la pieza1

  • UVA - CARTIF Manual Bsico de Programacin. Lenguaje RAPID

    J. M. Vzquez Pag.: 19

    4.5.6 Speeddata

    Sirve para especificar la velocidad del robot: TCP, reorientacin de la herramienta y de los ejes externos.Cuando se combinan diferentes tipos de movimientos hay una velocidad que limita todos losmovimientos. La velocidad del resto de movimientos ser reducida para que los movimientos acaben suejecucin al mismo tiempo. La velocidad tambin ser restringida por la capacidad del robot.

    Componentes:v_tcp Velocidad del TCP en mm/s numv_ori Velocidad de la reorientacin de la herramienta en grados/segundo numv_leax Velocidad de los ejes externos lineales en mm/s numv_reax Velocidad de los ejes externos rotativos en mm/s num

    Hay una serie de datos de velocidad ya definidos en el mdulo de sistema BASE: v5, v10, v20, ..., v3000y vmax.

    Ejemplo:VAR speeddata vel_alta:= [2000,30,200,15];

    4.5.7 Zonedata

    Una posicin puede terminarse en un punto de paro o en un punto de paso. Un punto de paro significaque el robot debe alcanzar la posicin programada. En un punto de paso, el robot nunca alcanza laposicin programada sino que comenzar o moverse hacia el siguiente punto cuando entre en la zonaque se haya definido.

    Para cada posicin se pueden definir 2 zonas distintas: Zona de la trayectoria del TCP Zona extendida de reorientacin de la herramienta y ejes externos.

    El tamao de la zona nunca podr ser mayor que la mitad de la distancia a la posicin anterior osiguiente ms cercana. Si se especifica una zona mayor, el robot la reducir automticamente.

    Punto Programa

    Zona del TCPZona extendida(reorientacin y ejes externos)

    Inicio del cambio de reorientacin

    Inicio del cambio de trayectoria del TCP

    Componentes:finep TRUE: el movimiento termina en un punto de paro

    FALSE: el movimiento termina en un punto de pasobool

    pzone_tcp Radio de la zona del TCP en mm numpzone_ori Radio de la zona de reorientacin de la herramienta en mm (debe ser

    mayor que pzonetcp)num

    pzone_eax Radio de la zona de los ejes externos (debe ser mayor que pzonetcp) numzone_ori Tamao de la zona de reorientacin de herramienta en grados numzone_leax Tamao de zona de los ejes externos lineales en mm numzone_reax Tamao de la zona de los ejes externos rotativos en grados num

    Hay una serie de datos de zona ya definidos en el mdulo de sistema BASE: z1, z5, z10, z15, ..., z200 yfine (punto de paro).

  • Manual Bsico de Programacin. Lenguaje RAPID UVA - CARTIF

    J.M. Vzquez Pag.: 20

    Ejemplo:VAR zonedata zona1:= [FALSE,25,40,40,10,35,5];

    4.5.8 Extjoint

    Se utiliza para almacenar la posicin de los ejes externos. Los 6 ejes externos que puede controlar elrobot se denominan a,b,c,d,e y f. Cada uno de estos ejes lgicos podr ser conectado a una eje fsicomediante un parmetro de sistema. En el caso de que un eje lgico no est conectado a un eje fsico, seindicar 9E9 como valor de posicin.

    Para los ejes rotativos, la posicin ser definida como la rotacin en grados a partir de la posicin decalibracin. Para los ejes lineales, la posicin ser definida como la distancia en mm a partir de laposicin de calibracin.

    Componentes:eax_a Posicin del eje externo a (en grados o mm segn el tipo de eje) numeax_b Posicin del eje externo b (en grados o mm segn el tipo de eje) numeax_c Posicin del eje externo c (en grados o mm segn el tipo de eje) numeax_d Posicin del eje externo d (en grados o mm segn el tipo de eje) numeax_e Posicin del eje externo e (en grados o mm segn el tipo de eje) numeax_f Posicin del eje externo f (en grados o mm segn el tipo de eje) num

    Ejemplo:VAR extjoint pos_ejes_ext1:= [11,25.2,9E9,9E9,9E9,9E9];

    4.5.9 Robtarget

    Sirve para definir la posicin del robot y los ejes externos. Dado que el robot es capaz de alcanzar unamisma posicin de varias formas diferentes, se deber especificar la configuracin de los ejes.

    Componentes:trans Posicin XYZ del TCP en mm respecto al sistema de coordenadas

    objeto incluyendo desplazamiento si lo hay.pos

    rot Orientacin de la herramienta expresada en cuaternios orientrobconf Configuracin de los ejes del robot (cf1, cf4, cf6 y cfx) confdataextax Posicin de los ejes externos extjoint

    Ejemplo:CONST robtarget punto1:= [[600,500,400], [1,0,0,0], [1,1,0,0],[15,20.3,9E9,9E9,9E9,9E9];

    4.5.10 Tooldata

    Se utiliza para describir las caractersticas de una herramienta: TCP, carga, etc. Los datos deherramienta debern ser definidos nicamente como persistentes y no debern ser definidos dentro deuna rutina.

    Componentes:robhold TRUE: el robot est sujetando la herramienta.

    FALSE: se trata de una herramienta estacionaria.bool

    tframe Sistema de coordenadas de la herramienta: posicin del TCP yorientacin.

    pose

    tload Define la carga de la herramienta loaddataLa herramienta tool0 define el sistema de coordenadas de la mueca. Los datos de tool0 no pueden sercambiados (estn almacenados en el mdulo de sistema BASE).

    PERS tooldata tool0:= [TRUE,[ [0,0,0], [1,0,0,0] ], [0,[0,0,0],[1,0,0,0],0,0,0] ];

    Ejemplo:

  • UVA - CARTIF Manual Bsico de Programacin. Lenguaje RAPID

    J. M. Vzquez Pag.: 21

    PERS tooldata herram1:= [TRUE,[ [58,26.3,0], [0.924,0,0.383,0] ],[5,[23,0,75], [1,0,0,0],0,0,0] ];

    4.5.11 Wobjdata

    Se utiliza para definir el objeto de trabajo del robot. Si se utiliza una herramienta estacionaria o ejesexternos coordinados se deber definir el objeto de trabajo, ya que la trayectoria y la velocidad sereferirn al objeto de trabajo y no al TCP.

    Componentes:robhold TRUE: el robot est sujetando el objeto de trabajo.

    FALSE: el robot est sujetando la herramienta.bool

    ufprog TRUE: sistema de coordenadas fijo del usuario.FALSE: sistema de coordenadas mvil de usuario (ejes externoscoordinados)

    bool

    ufmec La unidad mecnica con la que los movimientos del robot estncoordinados.

    string

    uframe Sistemas de coordenadas del usuario poseoframe Sistema de coordenadas del objeto pose

    Los datos de objeto debern ser definidos nicamente como persistentes y no debern ser definidosdentro de una rutina.

    El objeto wobj0 coincide con el sistema de coordenadas mundo. Los datos de wobj0 no pueden sercambiados (estn almacenados en el mdulo de sistema BASE).

    PERS wobjdata wobj0:= [FALSE,TRUE,,[ [0,0,0], [1,0,0,0] ], [[0,0,0],[1,0,0,0]]];

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

    NOTA: para ms informacin sobre el resto de tipos de datos, consultar el captulo Tipos de datos de laGUIA DE REFERENCIA RAPID.

  • Manual Bsico de Programacin. Lenguaje RAPID UVA - CARTIF

    J.M. Vzquez Pag.: 22

    5. MOVIMIENTOS

    5.1 Caractersticas de movimiento

    Las caractersticas bsicas del movimiento del robot estn especificadas en los argumentos de lasinstrucciones de movimiento. Sin embargo hay algunas que se especifican en instrucciones separadas yse aplican a todos los movimientos hasta que estas cambian.

    Las caractersticas generales de movimiento del robot estn especificadas mediante una serie deinstrucciones, pero tambin pueden leerse mediante las variables de sistema C_MOTSET(caractersticas de movimiento excepto desplazamientos de programa) y C_PROGDISP (desplazamientode programa).

    Los valores por defecto de estas caractersticas quedan activados automticamente (mediante laejecucin de la rutina SYS_RESET del mdulo de sistema BASE) al arrancar el programa, cargar unprograma nuevo o arrancar un programa desde el principio.

    Veamos a continuacin estas caractersticas:

    5.1.1 Definicin de la velocidad

    Adems de la velocidad absoluta especificada en cada instruccin se puede definir una velocidadmxima y un ajuste de velocidad con la instruccin VelSet.

    VelSet ajuste MaxSirve para definir la velocidad mxima y el ajuste de velocidad.ajuste Es la velocidad deseada expresada en un % de la velocidad programada.

    Valor por defecto = 100%num

    Max Velocidad mxima del TCP en mm/s.Valor por defecto = 5000 mm/s.

    num

    Ejemplo:VelSet 200, 1000

    Todas las velocidades programadas se duplican pero sin pasar nunca de 1000.

    5.1.2 Definicin de la aceleracin

    Cuando se manipulan piezas frgiles, por ejemplo, se puede reducir la aceleracin en una parte delprograma, para que los movimientos del robot sean ms suaves.

    AccSet Acc RampaSirve para ajustar la aceleracin del robot.Acc Limita la aceleracin, mediante un porcentaje de la aceleracin mxima.

    Valor mximo =100%. Un valor

  • UVA - CARTIF Manual Bsico de Programacin. Lenguaje RAPID

    J. M. Vzquez Pag.: 23

    [\On] El robot siempre se mueve a la configuracin de ejes programada. Si ello noes posible la ejecucin del programa se detiene. Opcin activa por defecto.

    switch

    [\Off] En el caso en que la posicin y orientacin programadas se pueda alcanzarde varias maneras diferentes, con distintas configuraciones de ejes, elsistema escoger la ms cercana posible.

    switch

    ConfL [\On] | [\Off]Activa o desactiva el control de la configuracin de los ejes en los movimientos de tipo MOVEL oMOVEC.[\On] El robot siempre se mueve a la configuracin de ejes programada. Si ello no

    es posible la ejecucin del programa se detiene. Opcin activa por defecto.switch

    [\Off] En el caso en que la posicin y orientacin programadas se pueda alcanzarde varias maneras diferentes, con distintas configuraciones de ejes, elsistema escoger la ms cercana posible.

    switch

    5.1.4 Definicin de la carga til

    Se deber definir la carga til correcta del robot para optimizar el funcionamiento del mismo.

    GripLoad cargaDefine la carga til que el robot sujeta con su pinza.carga Carga til utilizada. Por defecto es load0 (de 0 Kg). loaddata

    5.1.5 Definicin del comportamiento del robot cerca de un punto singular

    Se puede programar el robot para que evite los puntos singulares cambiando la orientacin de laherramienta automticamente.

    SingArea [\Wrist] | [\Arm] | [\Off]Define cmo el robot debe moverse en la proximidad de los puntos singulares.[\Wrist] Se tolera una pequea diferencia en la orientacin de la herramienta a fin de

    evitar la singularidad de la mueca. Se usa cuando los ejes 4 y 6 estnalineados.

    switch

    [\Arm] Se tolera una pequea diferencia en la orientacin de la herramienta a fin deevitar la singularidad del brazo. Se usa cuando el centro de la muecacoincide con la extensin del eje 1.

    switch

    [\Off] No se permite cambiar la orientacin en los puntos singulares. Argumentopor defecto.

    switch

    5.1.6 Desplazamiento de un programa

    Permite desplazar todos los puntos de un programa en una direccin determinada. Se utilizar cuandose repitan estructuras de movimientos en diferentes lugares del programa. Un desplazamiento deprograma consiste en una traslacin y una rotacin respecto al sistema de coordenadas objeto.

    PDispSet BaseDespDefine y activa un desplazamiento de programa utilizando valores.BaseDesp Dato que define el desplazamiento. poseEjemplo:

    VAR pose desp1:= [[100,-50,0],[1,0,0,0]];PDispSet desp1;

    El sistema de coordenadas de desplazamiento de programa ser desplazado 100 mm del sistema decoordenadas objeto en la direccin positiva del eje X y 50 en la negativa del eje y. La orientacin nocambia.

    Otras instrucciones relacionadas:

  • Manual Bsico de Programacin. Lenguaje RAPID UVA - CARTIF

    J.M. Vzquez Pag.: 24

    PDispOn Activa el desplazamiento de programaPDispOff Desactiva el desplazamiento de programaEOffsOn Activar un offset de un eje externoEOffsSet Activar un offset de un eje externo especificando un valorEOffsOff Desactivar un offset de un eje externo

    Funciones relacionadas:DefDFrame Calcula un desplazamiento de programa a partir de 3 posicionesDefFrame Calcula un desplazamiento de programa a partir de 6 posicionesORobT Elimina un desplazamiento de programa a partir de 1 posicin

    5.1.7 Servo suave

    Esta funcin puede aplicarse a uno o varios ejes del robot, proporcionndole una gran flexibilidad.

    SoftAct Eje Suavidad [\Rampa]Activa el servo suave en cualquiera de los ejes del robot.Eje Eje del robot (1 a 6). numSuavidad Valor de suavidad en porcentaje (0-100%)En el caso en que la posicin y

    orientacin programadas se pueda alcanzar de varias maneras diferentes,con distintas configuraciones de ejes, el sistema escoger la ms cercanaposible.

    num

    [\Rampa] Factor de rampa en % (>100%). Cuanto ms elevado sea el valor, el servofuncionar ms lentamente. (rampa ms larga)

    num

    SoftDeactDesactiva el servo suave en todos los ejes del robot.

    5.1.8 Valores de ajuste del robot

    En el caso de desajuste del robot, se podrn ajustar determinados valores para conseguir siempre elmximo rendimiento del robot.

    TuneServo Unidadmec Eje Valorajuste [\Tipo]Ajusta el comportamiento dinmico de los ejes del robot.Unidadmec Unidad mecnica (ej.: IRB) del robot (1 a 6). mecunitEje Nmero de eje (1 a 6) numValorajuste Valor de ajuste en % (1 a 200%). 100 es el valor normal. num[\Tipo] Tipo de ajuste servo: TUNE_DF, TUNE_KP, TUNE_KV y TUNE_TI. tunetype

    TuneResetReinicializa el comportamiento dinmico del todos los ejes del robot a sus valores normales.

  • UVA - CARTIF Manual Bsico de Programacin. Lenguaje RAPID

    J. M. Vzquez Pag.: 25

    5.2 Instrucciones de posicionamiento ms usuales

    MoveJ [\Conc] Alpunto Velocidad [\V] [\T] Zona [\Z] Herramienta [\WObj]Sirve para mover rpidamente el robot de un punto a otro punto cuando este movimiento no tiene querealizarse necesariamente en lnea recta. Todos los ejes se mueven a una velocidad constante yalcanzan su posicin final a la vez. La herramienta ser orientada y los ejes externos se movern, almismo tiempo que se mueve el TCP. En el caso en que la reorientacin o los ejes externos no puedanalcanzar la velocidad programada, la velocidad de TCP ser reducida.[\Conc] Con esta opcin, las instrucciones lgicas siguientes se ejecutarn

    mientras el robot est en movimiento. Acorta tiempo de ciclo.switch

    Alpunto Coordenadas y orientacin del punto destino. robtargetVelocidad Velocidad del TCP, reorientacin de la herramienta y ejes externos. speeddata[\V] Sirve para especificar la velocidad del TCP en mm/s directamente en la

    instruccin.num

    [\T] Sirve para especificar el tiempo total del movimiento en segundos. numZona Tamao de la zona cero del movimiento. zonedata[\Z] Sirve para especificar el tamao en mm. de la zona cero directamente en

    la instruccinnum

    Herramienta Es la herramienta activa durante el movimiento. El TCP de la misma es elpunto que se mueve.

    tooldata

    [\WObj] Es el objeto de trabajo (sistema de coordenadas) al que se refiere laposicin del robot en la instruccin. Si se omite este argumento, se refiereal sistema de coordenadas mundo.

    wobjdata

    Ejemplo:MoveJ punto1, v200, z40, pinza3;

    MoveL [\Conc] Alpunto Velocidad [\V] [\T] Zona [\Z] Herramienta [\WObj]Sirve para mover el TCP de la herramienta de forma lineal al punto destino. La herramienta es orientadaa intervalos iguales sobre la trayectoria y los ejes externos (no coordinados) se movern a un avelocidad constante para que puedan llegar al punto de destino al mismo tiempo que los ejes del robot.En el caso en que la reorientacin o los ejes externos no puedan alcanzar la velocidad programada, lavelocidad de TCP ser reducida.[\Conc] Con esta opcin, las instrucciones lgicas siguientes se ejecutarn

    mientras el robot est en movimiento. Acorta tiempo de ciclo.switch

    Alpunto Coordenadas y orientacin del punto destino. robtargetVelocidad Velocidad del TCP, reorientacin de la herramienta y ejes externos. speeddata[\V] Sirve para especificar la velocidad del TCP en mm/s directamente en la

    instruccin.num

    [\T] Sirve para especificar el tiempo total del movimiento en segundos. numZona Tamao de la zona cero del movimiento. zonedata[\Z] Sirve para especificar el tamao en mm. de la zona cero directamente en

    la instruccinnum

    Herramienta Es la herramienta activa durante el movimiento. El TCP de la misma es elpunto que se mueve.

    tooldata

    [\WObj] Es el objeto de trabajo (sistema de coordenadas) al que se refiere laposicin del robot en la instruccin. Si se omite este argumento, se refiereal sistema de coordenadas mundo.

    wobjdata

    Ejemplo:MoveL punto1, v200, z40, pinza3;

  • Manual Bsico de Programacin. Lenguaje RAPID UVA - CARTIF

    J.M. Vzquez Pag.: 26

    MoveC [\Conc] PuntoCirculo Alpunto Velocidad [\V] [\T] Zona [\Z] Herramienta[\WObj]Sirve para mover el TCP de la herramienta de forma circular. La herramienta es reorientada a velocidadconstante desde la orientacin de la posicin de arranque hasta la del punto destino. La reorientacinse lleva a cabo respecto a la trayectoria circular. En el caso en que la reorientacin o los ejes externosno puedan alcanzar la velocidad programada, la velocidad de TCP ser reducida.[\Conc] Con esta opcin, las instrucciones lgicas siguientes se ejecutarn

    mientras el robot est en movimiento. Acorta tiempo de ciclo.switch

    PuntoCirculo Es la posicin en el crculo entre el punto de arranque y de destino. Nodebe estar situado demasiado cerca del punto de arranque o destino.

    robtarget

    Alpunto Coordenadas y orientacin del punto destino. robtargetVelocidad Velocidad del TCP, reorientacin de la herramienta y ejes externos. speeddata[\V] Sirve para especificar la velocidad del TCP en mm/s directamente en la

    instruccin.num

    [\T] Sirve para especificar el tiempo total del movimiento en segundos. numZona Tamao de la zona cero del movimiento. zonedata[\Z] Sirve para especificar el tamao en mm. de la zona cero directamente en

    la instruccinnum

    Herramienta Es la herramienta activa durante el movimiento. El TCP de la misma es elpunto que se mueve.

    tooldata

    [\WObj] Es el objeto de trabajo (sistema de coordenadas) al que se refiere laposicin del robot en la instruccin. Si se omite este argumento, se refiereal sistema de coordenadas mundo.

    wobjdata

    Ejemplo:MoveC punto2,punto3, v200, z40, pinza3;

    MoveAbsJ [\Conc] APosEje Velocidad [\V] [\T] Zona [\Z] Herramienta [\WObj]Sirve para mover el TCP de la herramienta a una posicin absoluta. Se debe utilizar esta instruccinslo en los siguientes casos: cuando el punto final es un punto singular o para posiciones ambiguas enel 6400C.[\Conc] Con esta opcin, las instrucciones lgicas siguientes se ejecutarn

    mientras el robot est en movimiento. Acorta tiempo de ciclo.switch

    APosEje Posicin absoluta de destino del robot y de los ejes externos. jointtargetVelocidad Velocidad del TCP, reorientacin de la herramienta y ejes externos. speeddata[\V] Sirve para especificar la velocidad del TCP en mm/s directamente en la

    instruccin.num

    [\T] Sirve para especificar el tiempo total del movimiento en segundos. numZona Tamao de la zona cero del movimiento. zonedata[\Z] Sirve para especificar el tamao en mm. de la zona cero directamente en

    la instruccinnum

    Herramienta Es la herramienta activa durante el movimiento. El TCP de la misma es elpunto que se mueve.

    tooldata

    [\WObj] Es el objeto de trabajo (sistema de coordenadas) al que se refiere laposicin del robot en la instruccin. Si se omite este argumento, se refiereal sistema de coordenadas mundo.

    wobjdata

    Ejemplo:MoveAbsJ punto2, v200, z40, pinza3;

  • UVA - CARTIF Manual Bsico de Programacin. Lenguaje RAPID

    J. M. Vzquez Pag.: 27

    5.3 Otras instrucciones y funciones relacionadas

    Instrucciones de bsqueda:SearchC Bsqueda a lo largo de una trayectoria circularSearchL Bsqueda a lo largo de una trayectoria lineal

    Activacin de salidas o interrupciones especficas:TriggIO Define una condicin de disparo para la activacin de una salida en una posicin

    determinada.TriggInt Define una condicin de disparo para la ejecucin de una rutina de tratamiento de

    interrupciones en una posicin determinadaTriggEquip Define una condicin de disparo para la activacin de una salida en una posicin

    especfica con la posibilidad de incluir una compensacin de tiempo por el retrasoen el equipo externo.

    TriggC Hacer funcionar el robot de forma circular con una condicin de disparo activadaTriggJ Hacer funcionar el robot eje a eje con una condicin de disparo activadaTriggL Hacer funcionar el robot de forma lineal con una condicin de disparo activada

    Control del movimiento en caso de error o interrupcin:StopMove Parar los movimientos del robotStartMove Rearrancar los movimientos del robotStorePath Almacenar la ltima trayectoria generadaRestoPath Volver a generar una trayectoria almacenada con anterioridad

    Control de los ejes externos:DeactUnit Desactivar una unidad mecnica externaActUnit Activar una unidad mecnica externa

    Ejes independientes:IndAMove Cambiar un eje a modo independiente y mover el eje a una posicin absolutaIndCMove Cambiar un eje a modo independiente y arrancar un movimiento continuo del ejeIndDMove Cambiar un eje a modo independiente y mover el eje una distancia deltaIndRMove Cambiar un eje a modo independiente y mover el eje a una posicin relativaIndReset Cambiar un eje a modo dependiente y/o reinicializar el rea de trabajoIndInpos Comprobar si un eje independiente est en su posicinIndSpeed Comprobar si un eje independiente ha alcanzado la velocidad programada.

    Funciones de posicinOffs Aadir un offset a una posicin del robot, expresado respecto al objeto de trabajoRelTool Aadir un offset, expresado en el sistema de coordenadas de la herramientaCPos Lee la posicin del robot (slo X,Y,Z)CRobT Lee la posicin del robot (el robtarget completo)CJointT Lee los ngulos de los ejesReadMotor Lee los ngulos del motorCTool Lee los datos de la herramientaCWObj Lee los datos del objeto de trabajoORobT Eliminar un desplazamiento de programaMirPos Realizar una copia espejo de una posicin

  • Manual Bsico de Programacin. Lenguaje RAPID UVA - CARTIF

    J.M. Vzquez Pag.: 28

    6. ENTRADAS Y SALIDAS

    El robot est equipado con una serie de cartas de entradas y salidas. Los nombres de las seales deestas cartas se declaran en los parmetros de configuracin del sistema, y mediante estos nombres sepueden utilizan estas seales en el programa.

    El valor de una seal analgica o un grupo de seales digitales est especificado como un valornumrico.

    6.1 Instrucciones de E/S ms usuales

    6.1.1 Set

    Set sal_digSirve para activar (poner a 1) una salida digital.sal_dig El nombre de la seal a activar signaldoEjemplo:

    Set do126.1.2 Reset

    Reset sal_digSirve para desactivar (poner a 0) una salida digital.sal_dig El nombre de la seal a desactivar signaldoEjemplo:

    Reset do126.1.3 SetAO

    SetAO sal_analog valorSirve para cambiar el valor de una salida analgica.sal_analog El nombre de la salida analgica a cambiar signalaovalor El valor deseado de la seal num

    6.1.4 SetDO

    SetDO [\Sdelay] sal_dig valorSirve para cambiar el valor de una salida digital con posible retraso.[\Sdelay] Retrasa el cambio los segundos especificados (de 0.1 a 32 segundos con

    una resolucin de 0.01 seg.). El programa contina con la instruccinsiguiente.

    num

    sal_dig El nombre de la salida digital a cambiar signaldovalor El valor deseado de la seal (0,1) dionumEjemplo:

    SetDO \Sdelay:=0.2 , do15 , 1La salida digital 15 pasara a 1 al cabo de 0.2 segundos.

    6.1.5 SetGO

    SetGO grup_sal valorSirve para cambiar el valor de un grupo de salidas digitales.grup_sal El nombre del grupo de salidas digitales que se desea cambiar signalgovalor El valor deseado de la seal (entero positivo): Depende del nmero de num

  • UVA - CARTIF Manual Bsico de Programacin. Lenguaje RAPID

    J. M. Vzquez Pag.: 29

    seales que formen el grupo: de 0 a 2numero seales grupo - 1

    Ejemplo:SetGO grupo_1 , 12

    6.1.6 WaitDI

    WaitDI ent_dig valor [\MaxTime] [\TimeFlag]Espera hasta que se active una seal de entrada digital.ent_dig Nombre de la seal signaldivalor El valor deseado de la seal (0,1) dionum[\MaxTime] Es el intervalo de tiempo de espera mximo en seg. Si transcurrido ese

    tiempo la condicin no se ha cumplido, se genera el errorERR_WAIT_MAXTIME.

    num

    [\TimeFlag] Es el parmetro de salida que contiene el valor TRUE cuando el tiempo deespera mximo permitido ha transcurrido sin que se haya cumplido lacondicin. En este caso no se produce error.

    bool

    Ejemplo:WaitDI di12 , 1

    El programa espera hasta que la entrada digital 12 pase a valer 1.

    6.1.7 WaitDO

    WaitDO sal_dig valor [\MaxTime] [\TimeFlag]Espera hasta que se active una seal de salida digital.sal_dig Nombre de la seal signaldovalor El valor deseado de la seal (0,1) dionum[\MaxTime] Es el intervalo de tiempo de espera mximo en seg. Si transcurrido ese

    tiempo la condicin no se ha cumplido, se genera el errorERR_WAIT_MAXTIME.

    num

    [\TimeFlag] Es el parmetro de salida que contiene el valor TRUE cuando el tiempo deespera mximo permitido ha transcurrido sin que se haya cumplido lacondicin. En este caso no se produce error.

    bool

    Ejemplo:WaitDO do12 , 0

    El programa espera hasta que la salida digital 12 pase a valer 0.

    6.2 Otras instrucciones y funciones relacionadas

    Instrucciones:InvertDO Invierte el valor de una salida digitalPulseDO Genera un pulso en una seal de salida digitalDoutput Para leer el valor de una salida digitalGoutput Para leer el valor de un grupo de salidas digitales

    Funciones:TestDI Comprueba si se ha activado una entrada digital

  • Manual Bsico de Programacin. Lenguaje RAPID UVA - CARTIF

    J.M. Vzquez Pag.: 30

    7. DIALOGO CON EL OPERADOR

    Existen cuatro formas distintas de comunicar a travs de los canales serie: Mostrar mensajes que se pueden en el visualizador del pupitre y que pueden solicitar una

    respuesta del usuario. Leer o escribir en la memoria msica del sistema (archivos de texto). Transferir informacin binaria entre el robot y un sensor, por ejemplo. Transferir informacin binaria entre el robot y otro computador, por ejemplo un protocolo de

    enlace.Si se requiere una comunicacin en ambos sentidos de forma simultnea, se necesitar un tipo detransmisin binaria.

    Cada canal serie o archivo deber en primer lugar ser abierto. Al hacerlo, recibir un nombre que seutilizar posteriormente como referencia en el momento de leer o escribir. La unidad de programacinest siempre abierta y se puede utilizar en cualquier momento.

    7.1 Instrucciones de comunicacin ms usuales

    7.1.1 TPWrite

    TPWrite texto [\Num] | [\Bool] | [\Pos] | [\Orient]Escribe un texto en el visualizador del pupitre mvil.texto Cadena de texto de menos de 80 caracteres string[\Num] Dato numrico a aadir a la cadena num[\Bool] Dato lgico a aadir a la cadena bool[\Pos] Dato de posicin del robot a aadir a la cadena pos[\Orient] Dato de orientacin del robot a aadir a la cadena orientEl texto empieza siempre en una lnea nueva del visualizador. Cuando ste se llena, el texto se muevehacia arriba.Ejemplo:

    TPWrite El N de piezas producidas es \NUM:= num_piezas7.1.2 TPReadFK

    TPReadFK contestacin texto FK1 FK2 FK3 KF4 FK5 [\MaxTime] [\DIBreak][\BreakFlag]Escribe una etiqueta sobre cada tecla de funcin y lee qu tecla ha sido pulsada.contestacin Variable que contendr 1,2,3,4 o 5 segn la tecla pulsada numtexto Texto informativo que aparecer en el visualizador stringFKx Texto que aparece sobre las teclas de funcin. Mximo 7 caracteres string[\MaxTime] Intervalo mximo de tiempo (en seg) que la ejecucin del programa espera.

    Si no se pulsa ninguna tecla en ese tiempo se genera el errorERR_TP_MAXTIME

    num

    [\DIBreak] Entrada digital que podra interrumpir el dilogo. Si no se pulsa ningunatecla antes de que esta seal pase a 1 se genera el errorERR_TP_DIBREAK

    signaldi

    [\BreakFlag] Variable de salida que contiene el cdigo de error si se utiliza MaxTime oDIBreak. Si esta variable est presente no se produce el error.

    errnum

    El texto empieza siempre en una lnea nueva del visualizador. Cuando ste se llena el texto se muevehacia arriba. Las teclas de funcin que no tengan indicador sern desactivadas.Ejemplo:

    VAR errnum error;

  • UVA - CARTIF Manual Bsico de Programacin. Lenguaje RAPID

    J. M. Vzquez Pag.: 31

    ...TPReadFK reg1 Ir a la posicin de REPLIEGUE?, , , , Si, No

    \Maxtime:=600 \DIBreak:=di5 \BreakFlag:=error;IF reg1=4 or error=ERR_TP_DIBREAK THEN MoveL repli, v500, fine, tool1; Stop;ENDIFIF error=ERR_TP_MAXTIME EXIT

    El robot se mueve a la posicin repli si se pulsa la tecla Si o si se activa la entrada 5. Si no hayrespuesta en 10 minutos, la ejecucin termina.

    7.2 Otras instrucciones y funciones relacionadas

    Instrucciones:TPErase Borra la informacin del visualizador de la unidad de programacinErrWrite Escribe un texto en el visualizador y lo almacena en el registro de erroresTPReadNum Lee un valor numrico de la unidad de programacinOpen Abrir un canal o archivo para lectura o escrituraWrite Escribir texto en un canal o archivoClose Cerrar un canal o archivoWriteBin Escribir en un canal serie binario

    Funciones:ReadNum Lee un valor numrico de un canal o archivoReadStr Lee una cadena de texto de un canal o archivoReadBin Lee desde un canal serie binario.

  • Manual Bsico de Programacin. Lenguaje RAPID UVA - CARTIF

    J.M. Vzquez Pag.: 32

    8. INSTRUCCIONES VARIAS

    8.1 Instrucciones de espera

    Se puede programar el robot para que espere un cierto tiempo o hasta que se cumpla un aciertacondicin.

    Instrucciones:WaitTime Esperar un cierto tiempo o esperar hasta que el robot se detengaWaitUntil Esperar hasta que se cumpla una condicinWaitDI Esperar hasta que se active una entrada digital (Ver cap. entradas y salidas).WaitDO Esperar hasta que se active una salida digital (Ver cap. entradas y salidas).

    8.2 Fecha y hora

    Las instrucciones de reloj permiten al usuario contar, controlar y registrar el tiempo, utilizando relojes(clock) que funcionan como cronmetros. La hora o fecha actual se registra en una cadena. Pero existenla posibilidad de registrar algunos de los componentes de la hora del sistema como valor numrico. Estopermite al programa realizar una actividad a una hora o un da determinado.

    Instrucciones:ClkReset Pone a 0 un reloj para cronometrajeClkStart Arranca un reloj para el cronometrajeClkStop Parar un reloj para el cronometraje

    Funciones:ClkRead Leer el reloj del cronometrajeCDate Leer la fecha actual como una cadenaCTime Leer la hora actual como una cadenaGetTime Leer la hora actual como un valor numrico

    8.3 Matemticas

    Las instrucciones y funciones matemticas sirven para calcular y cambiar el valor de los datos. Elresultado de los clculos se suele asignar a un nuevo dato mediante la instruccin de asignacin: := .

    Instrucciones:Clear Poner a 0 un valorAdd Sumar o restar un valorIncr Incrementar en 1Decr Decrementar en 1

    Funciones:Abs Calcula el valor absolutoRound Redondea un valor numricoTrunc Trunca un valor numricoSqrt Calculo la raz cuadradaExp Calcula la exponencial de ePow Calcula la exponencial con cualquier baseACos Calcula el arco cosenoASin Calcula el arco senoATan Calcula el arco tangente (entre -90 y 90)ATan2 Calcula el arco tangente (entre -180 y 180)

  • UVA - CARTIF Manual Bsico de Programacin. Lenguaje RAPID

    J. M. Vzquez Pag.: 33

    Cos Calcula el cosenoSin Calcula el senoTan Calcula la tangenteEulerZYX Calcula los ngulos de Euler a partir de una orientacin (cuaternios)OrientZYX Calcula la orientacin (cuaternios) a partir de los ngulos de EulerPoseInv Invertir una posicinPoseMult Multiplicar una posicinPoseVect Multiplicar una posicin y un vector

    8.4 Instrucciones de servicio

    El sistema dispone de una serie de instrucciones que sirven para hacer el test del sistema robot. Sepuede direccionar una seal de referencia (por ejemplo la velocidad de un motor) a una salida analgicadel robot

    Funciones:TestSign Definir y activar una seal de test

    8.5 Funciones de cadena

    Permiten realizar operaciones con cadenas como: copia, concatenacin, comparacin, bsqueda,conversin, etc.

    Operadores::= Asignar un valor a una cadena+ Concatenacin de cadenas= Comprobar si es igual a Comprobar si no es igual a

    Funciones:StrLen Calcula la longitud de una cadenaStrPart Tomar parte de una cadenaStrMemb Comprobar si un carcter pertenece a una cadenaStrFind Buscar un carcter dentro de una cadenaStrMatch Buscar una estructura de caracteres en una cadenaStrOrder Comprobar si las cadenas estn ordenadasNumToStr Convertir un valor numrico en cadenaValToStr Convertir un valor en una cadenaStrToVal Convertir una cadena en un valorStrMap Realizar un mapa de la cadena

    8.6 Funciones varias

    OpMode Lee el modo de funcionamiento actual del robotRunMode Lee el modo de ejecucin de programa que est usando actualmente el robotDim Obtiene las dimensiones de una matrizPresent Descubrir si un parmetro opcional estaba presente en la llamada a la rutinaIsPers Comprobar si un parmetro es un dato persistenteIsVar Comprobar si un parmetro es un dato variableLoad Carga un mdulo de programa en la memoria de programaUnLoad Descarga un mdulo de programa en la memoria de programa