|
|
14. PAYLOAD
Para el uso efectivo del robot, se recomienda para establecer adecuadamente la información sobre las
cargas tal como la herramienta, pieza de trabajo, y dispositivos montados en el robot.
El ajuste de la información sobre la carga en el robot puede causar los siguientes efectos:
- Aumento en el rendimiento del movimiento, vibración más baja y tiempos de ciclo más cortos.
- Reacción más efectiva de las funciones relacionadas con la dinámica como aumento en el
rendimiento relacionado con la detección de choque y la compensación de la gravedad.
14.1. CONFIGURACIÓN MANUAL
MENUS, 0-NEXT, 6-SYSTEM, F1-(TYPE), 6- MOTION, F3-DETAIL
F2-GROUP
> para cambiar de grupo de movimiento.
F3-DETAIL
> para pasar a la pantalla de detalle de la derecha.
F4-ARMLOAD
> para configurar una carga adicional por el brazo del robot.
Especificar la masa de los dispositivos en los brazos J1 y J3.
Introduciendo los valores se visualiza el mensaje Path and Cycletime will
change. Set it? Pulsar F4 (YES) o F5 (NO) si fuera necesario.
F5-SETIND
> para configurar activar un payload determinado.
Especificar la masa de la carga en Kg.
Especificar centro de gravedad de la carga en cm respecto del TCP original del robot.
Especificar los momentos de inercia Ix, Iy, Iz de una masa puntual de masa M(Kg) respecto de los ejes
X, Y, Z que pasan por el centro de gravedad de la herramienta.
Estos valores los tiene que proporcionar el fabricante de la herramienta debido a la complejidad de
cálculo. En otro caso nos podemos ayudar de aproximaciones a figuras geométricas uniformes cuyos
momentos de inercia respecto de un eje concreto ya es conocido.
Momento de inercia respecto un eje (I) = Masa * distancia al eje al cuadrado.
1[kgf cm s2] = 980 [kg cm2]
Robótica Prog. FANUC
64
Cuando se introduce un valor, aparece el mensaje de confirmación Path and Cycletime will change.
Set it? Pulsar F4 (YES) o F5 (NO) si fuera necesario.
DESPUÉS CONFIGURAR UN PAYLOAD O MODIFICARLO, APAGAR Y ENCENDER DE NUEVO.
Instrucciones de Payload dentro de un programa
65
Robótica Prog. FANUC
14.2. PAYLOAD ID (OPCIÓN J669)
La estimación de carga automática por el robot es una función para la estimación del peso y
momentos de inercia, tanto de la herramienta como herramienta mas pieza de trabajo, montados en la
muñeca del robot. Esta función es solo válida para robots de 6 ejes.
El proceso de identificación de la carga se basa en:
1-Calibrado del robot para el Payload (movimientos de robot sin herramienta) obligatorio previo.
2-Estimación de la carga (movimientos de robot con pinza): con peso conocido.
con peso desconocido.
14.2.1. Calibrado del robot para el Payload
Robot sin carga de ningún tipo.
Sólo se mueven los ejes J5 y J6 durante la estimación de carga. Los otros ejes permanecen en la
posición donde están cuando empieza la estimación de carga.
El alcance de movimiento se define como un intervalo entre dos puntos especificados en las pantallas
de posición de estimación.
MENUS, 0-NEXT, 6-SYSTEM, F1-(TYPE), 6- MOTION, NEXT, F2-IDENT, NEXT, F4-DETAIL
Pantalla selección
Pantalla estimación
Pantalla grabación
En la pantalla de grabación se modifica las F2-POS.2 y F2-POS. 1, o se deja por defecto.
F4-MOVE_TO, para movernos a las posiciones 1 y 2.
F5-RECORD, para grabarlas de nuevo.
Una vez de acuerdo con las posiciones 1 y 2, PREV para volver a la pantalla de estimación:
CALIBRACIÓN MODE, poner a ON
TP en OFF, reset de fallos, F5-EXEC.
Aparece el mensaje Robot moves and estimates. Ready?, F4-(YES).
El robot hace dos tipos de maniobras: Maniobra a baja velocidad y maniobra a alta velocidad
consecutivas.
Al acabar los movimientos, los valores de Axis moment y Axis Inertia han cambiado. CALIBRACIÓN
MODE pasa a OFF a la vez que CALIBRACIÓN STATUS pasa a DONE.
Robótica Prog. FANUC
66
14.2.2. Estimación de la carga
Robot con carga, pinza, equipos y mangueras de cables sobre el robot...
MENUS, 0-NEXT, 6-SYSTEM, F1-(TYPE), 6- MOTION
Seleccionar el Payload que se quiere estimar.
NEXT, F2-IDENT.
Comprobamos que CALIBRACIÓN DONE esté a TRUE.
MASS IS KNOW, es aconsejable introducir el Peso de la pinza si lo conocemos.
TP en OFF, reset de fallos, F4-EXEC.
Aparece el mensaje Robot moves and estimates. Ready?, F4-(YES).
El robot hace dos tipos de maniobras: Maniobra a baja velocidad y maniobra a alta velocidad
consecutivas.
Al acabar los movimientos, los valores de Axis moment y Axis Inertia han cambiado.
F5-APPLY,
Verificar que los valores del payload seleccionado han cambiado en la pantalla:
67
Robótica Prog. FANUC
15. LAS INSTRUCCIONES TPE
15.1. ÁRBOL DEL EDITOR
FANUC
LINE 0
EDIT
FANUC
JOINT
10 %
1/1
[End]
F1 : POINT
F5 : TOUCHUP
NEXT
[ INST ]
[EDCMD]>
: [INST]
F1
1 Registers
2 I/O
1 RSR[
]
3 IF/SELECT
2 UALM[
]
4 WAIT
3 TIMER[
]
5 JMP/LBL
4 OVERRIDE
6 CALL
5 Remark
7 SEALING
6 Message
8 ---next page---
7 Parameter name
1 Miscellaneus
8 ---next page---
2 Skip
1 MAX_SPEED
3 Payload
4 Offset/Frames
5 Multiple control
6 Program control
7 MACRO
8 ---next page---
1 Tool_Offset
2 LOCK PREG
3 MONITOR/MON. END
4 Collision Detect
5 Stick Detect
6 IB CHANGE
F5 : [EDCMD]
15.2. INSTRUCCIONES CON REGISTROS Y REGISTROS DE POSICIÓN
Las variables disponibles a utilizar son:
Los registros: real (32 bits) o entero
Los registros de posición: puntos en coordenadas joint, puntos en coordenadas cartesianas o
matrices.
Estas son variables globales (todos los programas tienen acceso a todos los registros y registros de
posición)
Robótica Prog. FANUC
68
15.2.1. Los registros
Para insertar en un programa Æ F1: [INST] Æ Registers.
Para visualizar la lista de registros y su contenido Æ DATA Æ F1: [TYPE] Æ Registers.
Hay un máximo de 256 (configurables).
Un registro permite ser comentado con un nombre.
· El direccionamiento puede ser:
Directo
R[ 1 ] = 2 Æ el valor es guardado directamente en R[ 1 ]
O indirecto
R[R[ 1 ]] = 5 Æ el registro afectado depende del valor contenido en R[ 1 ]
Si R[ 1 ] = n, por tanto el valor 5 es guardado en R[ n ].
· En un registro es posible almacenar el resultado de una operación aritmética.
R[ n ] = [valor] [operador] [valor]
- El [operador] puede ser:
- una suma (+)
- una resta (-)
- una multiplicación (*)
- una división (/)
- una división entera (DIV)
- el resto de una división (MOD)
- El [valor] puede ser:
- una constante
- un valor de entrada-salida analógico AI[ n ]/AO[ n ]
- un valor de entrada-salida digital DI[ n ]/DO[ n ]
- un valor de entrada-salida grupo GI[ n ]/GO[ n ]
- un valor de entrada-salida de robot RI[ n ]/RO[ n ]
- un valor de un registro R[ n ]
- un valor de un elemento de un registro de posición PR[ i , j ]
24:
!CONTROL PARAMETROS ANALOGICOS ;
25:
!FUNCION VELOCIDAD DE TRABAJO ;
26:
R[22]=$MCR.$GENOVERRIDE ;
27:
R[23]=R[22]/100
;
28:
R[27]=R[23]*R[24]
;
29:
R[28]=R[23]*R[25]
;
30:
R[29]=R[23]*R[26]
;
31:
GO[2]=R[27] ;
10: DO[23:CAJA COG. L1]=PULSE,0.5s ec ;
32:
AO[1]=R[28] ;
11: DO[31:ULTIMO V.L1]=PULSE,0.5sec ;
33:
AO[2]=R[29] ;
12: DO[25:FIN PALET L1]=PULSE,0.5sec ;
34:
;
13: R[4:CONT. CAPAS
L1]=0
;
35:
!CONTROL ESTIRAJE ;
14: R[5:CONT. CICLOS
L1]=0
;
36:
CALL ESTIRAJE
;
15: R[6:TRABAJANDO EN L1]=0
;
37:
;
16: R[7:CARTON COGIDO L1]=0
;
38:
!CONTROL TIEMPO ROTURA FILM ;
17: R[8:CARTON PUESTO L1]=0
;
39:
!FUNCION VELOCIDAD DE TRABAJO ;
18: DO[29:RECHAZADO L1]=PULSE,0.5sec ;
40:
R[31]=R[30] DIV R[23]
;
19: WAIT
1.00(sec) ;
41:
$WAITTMOUT=R[31] ;
15.2.2. Los registros de posición
Para insertar en un programa Æ F1: [INST] Æ Registers
Para visualizar la lista de registros y su contenido Æ DATA Æ F1: [TYPE] Æ Position Registers
Hay un máximo de 64 en R-J2, 100 en R-J3 y 100 en R-J3i (configurables).
Un registro de posición almacena un punto.
· El direccionamiento puede ser:
Directo
PR[ 1 ] = P[ 1 ] Æ el punto es guardado directamente en PR[ 1 ]
69
Robótica Prog. FANUC
O indirecto
PR[R[ 1 ]] = P[ 3 ] Æ el registro de posición afectado depende del valor contenido en R[ 1 ]
Si R[ 1 ] = n, entonces el punto P[ 3 ] está almacenado en PR[ n ].
·
En un registro de posición es posible almacenar un punto o una operación de punto.
PR[ n ] = [punto] [operador] [punto]
-
El [operador] puede ser:
- una suma (+)
- una resta (-)
-
El [punto] puede ser:
- una posición P[ n ]
- un registro de posición PR[ n ]
- la posición actual del robot en grados eje por eje JPOS
- la posición actual del robot en cartesianas LPOS
·
Los registros de posición son también accesibles elemento por elemento.
Por ejemplo, la coordenada j de PR[ i ] está definida por PR[ i , j ]
PR[1,2] = 300 Æ la coordenada Y de PR[ 1 ] está inicializada a 300mm.
O indirectamente
R[ 1 ] = 1
R[ 2 ] = 2
PR[R[ 1 ],R[ 2 ]] = 300 Æ la coordenada Y de PR[ 1 ] está inicializada a 300mm.
Cada posición y orientación es por tanto accesible independientemente.
PR[…, 1 ]
PR[…, 2 ]
PR[…, 3 ]
PR[…, 4 ]
PR[…, 5 ]
PR[…, 6 ]
PR[ 1 ,…]
X1
Y1
Z1
W1
P1
R1
PR[ 2 ,…]
X2
Y2
Z2
W2
P2
R2
…
…
…
…
…
…
…
PR[100,…]
X100
Y100
Z100
W100
P100
R100
·
Es posible hacer cálculos con estos elementos.
PR[ i , j ] = [valor] [operador] [valor]
-
El [operador] puede ser: - una suma (+)
- una resta (-)
- una multiplicación (*)
- una división (/)
- una división entera (DIV)
- el resto de una división (MOD)
-
El [valor] puede ser:
- una constante
- un valor de entrada-salida analógico AI[ n ]/AO[ n ]
- un valor de entrada-salida digital DI[ n ]/DO[ n ]
- un valor de entrada-salida grupo GI[ n ]/GO[ n ]
- un valor de entrada-salida de robot RI[ n ]/RO[ n ]
- un valor de un registro R[n]
- un valor de un elemento de un registro de posición PR[ i , j ]
12: WAIT
.50(sec) ;
6: UTOOL_NUM=1 ;
13: PR[7:VERTICAL]=LPOS
;
7: UFRAME_NUM=1 ;
14: R[27:Z ROB]=PR[7,3:VERTICAL]
;
8: PR[1:WORLD]=PR[1:WORLD]-PR[1:WORLD]
;
15: PR[7,3:VERTICAL]=750
;
9: PR[10:ALTURA SEGURIDAD]=PR[1:WORLD]
;
16:L PR[7:VERTICAL] 2000mm/sec CNT100
10: PR[2:MOVIL]=PR[1:WORLD]
;
11: UFRAME[1]=PR[1:WORLD] ;
Robótica Prog. FANUC
70
15.2.3. Variación de la cantidad de R[ ] y PR[ ] en R-J2
Con el siguiente proceso, podremos adaptar el robot a nuestras necesidades, variando el número de
registros, registros de posición, etc...
Arrancamos el robot con PREV-NEXT + ON para acceder a la memoria BOOT MONITOR (BMON),
con lo que aparecerá la pantalla de configuración de sistema. Realizar los siguientes pasos:
F2-CTRL, enter, F5-START, enter, Esperar 30 seg.
MENU, 2- PROGRAM INIT.
Elegiremos el número máximo de REGISTERS, que nosotros necesitemos, (1-255).
Por defecto vienen con un total de 32.
Elegiremos ahora el número máximo de POSITION REGISTERS, que más nos
convenga. (1-64).
En este punto nos solicita un número máximo para las USER ALARM, (1-200).
Hacer un arranque en frío para reiniciar el equipo:
FCTN, 1-START COLD
Esperar 30 seg. Hasta que el TP recobre la pantalla de inicio.
15.2.4. Variación de la cantidad de R[ ] y PR[ ] en R-J3 y R-J3i
Con el siguiente proceso, podremos adaptar el robot a nuestras necesidades, variando el número de
registros, registros de posición, etc...
Arrancamos el robot con PREV-NEXT + ON para acceder a la memoria BOOT MONITOR (BMON),
con lo que aparecerá la pantalla de configuración de sistema. Realizar los siguientes pasos:
3-Controlled start, ø, Esperar 30 seg. Aprox.
MENUS, 0-NEXT, 1-PROGRAM SETUP
Poner los valores deseados de los posibles parámetros modificables.
Hacer un arranque en frío para reiniciar el equipo:
FCTN, 1-START (COLD)
Esperar 30 seg. Hasta que el TP recobre la pantalla de inicio.
71
Robótica Prog. FANUC
15.3. INSTRUCCIONES DE ENTRADAS -SALIDAS
Para insertar instrucciones de entradas-salidas en un programa Æ F1: [INST] Æ I/O.
15.3.1. Las salidas
· Salidas digitales y de robot
DO[ n] o RO[ n] = [valor]
Æ El [valor] puede ser : ON, OFF, un
valor 0 o 1 de un registro R[ n ].
DO[ n] o RO[ n] = PULSE [valor] Æ El [valor] es un tiempo en segundos
(de 0,11 a 25,01).
· Salidas de grupo
GO[ n] = [valor]
Æ El [valor] es decimal y está limitado a 2n para n
salidas agrupadas. La conversión en binario se
hace sobre las salidas digitales agrupadas.
· Salidas analógicas
AO[ n ] = [valor]
Æ El [valor] está comprendido entre 0 y 2000 por
defecto. 2000 corresponde a la tensión máxima en
la salida.
15.3.2. Las entradas
La captura de entradas se hace a través de un registro.
R[ n ] = DI[ n ]
Æ R[ n ] contiene 1 (para ON) o 0 (para OFF).
R[ n ] = RI[ n ]
Æ R[ n ] contiene 1 (para ON) o 0 (para OFF).
R[ n ] = GI[ n ]
Æ R[ n ] contiene el valor decimal correspondiente al código binario
recibido sobre el grupo de entradas digitales.
R[ n ] = AI[ n ]
Æ R[ n ] contiene un valor entre 0 y 2000 ;
Correspondiente al valor de la tensión sobre AI[ n ].
15.4. INSTRUCCIONES DE SALTO INCONDICIONAL
15.4.1. Definición de label
Un label marca un emplazamiento de destino de salto. LBL[ n: [comentario] ] F1 : [INST] Æ JMP/LBL.
Puede ser utilizada para instrucciones de salto condicional o incondicional (JMP LBL[ n ]).
15.4.2. Salto incondicional
Un « jump label » permite efectuar un salto (o bucle) a una etiqueta situada en el mismo programa.
F1: [INST] Æ JMP/LBL. JMP LBL[ n ] Æ el cursor se coloca sobre LBL[ n ] y seguidamente la ejecución
del programa continua a partir de aquí.
1:
!******************************** ;
2:
!******************************** ;
3:
!**
** ;
4:
!**
PROGRAMA PRINCIPAL
** ;
5:
!**
** ;
6:
!**
FANUC Roboti cs
** ;
7:
!**
** ;
8:
!******************************** ;
9:
!******************************** ;
10:
;
11: CALL INICIO
;
12: RUN CAJAS ;
13:
;
14: LBL[1] ;
15: CALL HOME
;
16: CALL EVACUAR
;
17: CALL CAMB_FOR
;
18: CALL PALETIZA
;
19: CALL ORDEN
;
20: JMP LBL[1] ;
Robótica Prog. FANUC
72
15.4.3. Llamada de programa
La instrucción « CALL Programa » permite lanzar un programa, F1: [INST] Æ CALL:
CALL FANUC
Æ El programa FANUC es ejecutado completamente. Una vez
terminado, el cursor se coloca directamente debajo de la
instrucción CALL FANUC y continua con el programa inicial.
CALL Programa « parámetro » Æ Esta instrucción de llamada de programa permite pasar valores a
los subprogramas llamados. Estos valores serán recuperados en
los subprogramas bajo el identificador AR[n] donde n es el valor
pasado como parámetro. Una vez terminado, el cursor se coloca
directamente bajo la instrucción CALL Programa « parámetro » y
continua el programa inicial.
15.4.4. Llamada de programa « parámetro »
Utilizando esta instrucción se puede transferir datos desde un programa a un subprograma necesarios
para que el subprograma realice su ejecución en forma correcta.
Ejemplo:
El subprograma AREA calcula el área de un rectángulo en función de la longitud de los lados cuyos
datos existen en el programa principal MAIN.
De esta manera se puede realizar el cálculo del área de un rectángulo definido por el producto de una
constante equivalente a su base y una entrada analógica correspondiente a su altura. El programa
AREA hace los cálculos necesarios considerando que el valor de AR[1] en el subprograma AREA es el
mismo que corresponde al primer argumento de la instrucción CALL AREA del programa MAIN y el
valor de AR[2] en el subprograma AREA es el correspondiente al segundo argumento de la misma
instrucción.
73
Robótica Prog. FANUC
Tipos de argumento
Se suponen los siguientes argumentos:
Tipos de argumento
Ejemplo
Constante
1, 3.5
Secuencia de caracteres
‘Perch’
Registro de argumento
AR[3]
registro
R[6]
CALL PROC_1 (1, AR[1], AR[6])
PROC_1:
AR[1], AR[2], AR[3]
Instrucciones para que puedan establecerse los argumentos
Instrucción
Ejemplo
Instrucción de llamada del programa
CALL SUBPRG (1, R[3], AR[1])
Instrucción macro
Apertura manual en el vacío (2.5)
NOTA En una instrucción CALL perteneciente a una instrucción condicional no puede usarse
argumentos. Este problema puede resolverse programando como sigue:
(Argumentos que no pueden establecerse)
(Argumentos que pueden establecerse)
IF R[1] = 3, CALL PROC_5
Æ
IF R[1]<>3, JMP LBL[1]
CALL PROC_5 (1, R[2])
LBL[1]
Instrucciones que pueden utilizar registros de argumento
Instrucción
Ejemplo
Lado derecho de una instrucción y expresión condicional
R[1]=AR+R[2]+AR[4]
teniendo un registro en el lado izquierdo
IF R[1]=AR[1], JMP LBL[1]
Lado derecho de la salida análoga (AO[]) e instrucciones de
AO[1]=AR[2]
salida de grupo (GO[])
GO[1]=AR[2]
Lado derecho de una expresión condicional teniendo
IF AO[1]=AR[1], JMP LBL[1]
entrada/salida análoga (AI[]/AO[]) o entrada/salida de grupo
WAIT GI[1]<>AR[2],
(GI[]/GO[]) en el lado izquierdo
TIMEOUT, LBL[1]
Lado derecho de la instrucción de selección del sistema de
UTOOL_NUM=AR[4]
coordenadas USER y la instrucción de selección del
sistema de coordenadas TOOL
Especificación del índice indirectamente
R[AR[1]]=R[AR[2]]
SDO[AR[1]]=ON
Argumento de una instrucción de llamada del programa
CALL SUBPRG1 (AR[5])
Argumento de una instrucción macro
Apertura manual 3 (AR[1])
Restricciones sobre argumentos
Las siguientes restricciones se imponen a los argumentos:
· Pueden establecerse hasta 10 argumentos.
· Un argumento de tipo de secuencia de caracteres puede tener de uno a dieciséis caracteres de
longitud. (Un argumento de 0 caracteres se considera como que se está inicializando).
· Una especificación indirecta puede utilizarse para un elemento ya especificado indirectamente
de un índice.
O R[AR[1]]
¥ R[R[AR[1]]]
· El valor almacenado en un registro de argumento no puede cambiarse en un subprograma.
Robótica Prog. FANUC
74
15.5. INSTRUCCIONES DE SALTO CONDICIONAL
Una instrucción de salto condicional permite efectuar un salto (o bucle) a una etiqueta situada en el
mismo programa si (y sólo si) ciertas condiciones son verdaderas.
F1: [INST] Æ IF/SELECT.
15.5.1. Instrucción IF
Efectúa un salto en función de una condición verdadera IF [valor1] [operador] [valor2] [salto]
El [valor1] puede ser:
- un valor de un registro R[ n ]
- un valor de entradas-salidas analógicas AI[ n ]/AO[ n ]
- un valor de entradas-salidas digitales DI[ n ]/DO[ n ]
- un valor de entradas-salidas de grupo GI[ n ]/GO[ n ]
- un valor de entradas-salidas de robot RI[ n ]/RO[ n ]
El [operador] puede ser:
- un test de igual (=)
- un test de diferente (<>)
- un test de menor (<)
- un test de mayor (>)
- un test de menor o igual (<=)
- un test de mayor o igual (=>)
El [valor2] puede ser:
- una constante
- ON
- OFF
- un valor de un registro R[ n ]
- un valor de entradas-salidas analógicas AI[ n ]/AO[ n ]
- un valor de entradas-salidas digitales DI[ n ]/DO[ n ]
- un valor de entradas-salidas de grupo GI[ n ]/GO[ n ]
- un valor de entradas-salidas de robot RI[ n ]/RO[ n ]
El [salto] puede ser:
- un JMP LBL[ n ]
- un CALL programa
5: LBL[10] ;
6: IF R[10:CAPAS L1]=1,JMP LBL[1] ;
7: IF R[10:CAPAS L1]=2,JMP LBL[2] ;
8: IF R[10:CAPAS L1]=3 AND R[11:CICLOS L1]<9,JMP LBL[3] ;
9: IF R[10:CAPAS L1]=3 AND R[11:CICLOS L1]>8,JMP LBL[4] ;
10: JMP LBL[4] ;
11: CALL ERROR
;
12: PAUSE ;
13: JMP LBL[10] ;
15.5.2.
Instrucción SELECT
Efectúa uno o varios saltos en función del valor de un registro.
SELECT R[ n ] = [valor 1], [salto]
[valor 2], [salto]
[valor n], [salto]
ELSE, [salto]
Los [valores] pueden ser:
- una constante
- un valor de un registro R[ n ]
Los [saltos] pueden ser:
- un JMP LBL[ n ]
- un CALL programa
No olvidar ELSE como fin de instrucción, ya que tiene en cuenta todos los valores posibles del registro
R[ n ] no citados.
75
Robótica Prog. FANUC
16: SELECT R[1:TIPO MOSAICO L1]=1,CALL MOS1_1 ;
17:
=2,CALL MOS2_1 ;
18:
=3,CALL MOS3_1 ;
19:
=4,CALL MOS4_1 ;
20:
=5,CALL MOS5_1 ;
40:
=25,CALL MOS25_1 ;
41:
ELSE,JMP LBL[55] ;
42: END ;
15.6. INSTRUCCIONES DE ESPERA
Las instrucciones de espera retardan la ejecución de un programa mediante un tiempo especificado o
hasta que una condición sea verdadera. F1 : [INST] Æ WAIT.
15.6.1. Temporización
Retarda la ejecución de un programa durante un tiempo especificado. La duración se expresa en
segundos; hay un mínimo de 0,01 segundos
WAIT [tiempo]. El [tiempo] puede ser:
- una constante
- un registro R[ n ]
15.6.2. Espera de una condición verdadera
Retarda la ejecución de un programa hasta que la condición sea verdadera.
WAIT [valor 1] [operador] [valor 2] [tiempo]
-
El [valor] puede ser:
- un valor de un registro R[ n ]
- un valor de entradas-salidas digitales DI[ n ]/DO[ n ]
- un valor de entradas-salidas de robot RI[ n ]/RO[ n ]
-
El [operador] puede ser:
- un test de igual (=)
- un test de diferente (<>)
-
El [valor 2] puede ser:
- una constante
- ON
- OFF
- un valor de un registro R[ n ]
- un valor de entradas-salidas digitales DI[ n ]/DO[ n ]
- un valor de entradas-salidas de robot RI[ n ]/RO[ n ]
-
El [tiempo] puede ser:
- FOREVER Æ espera mientras la condición no se cumpla
- TIMEOUT LBL[ n ] Æ espera el tiempo especificado en la variable
timeout ($WAITTMOUT), después salta a
label n si la condición no se ha cumplido.
1: DO[15:FIN PALET L1]=ON ;
2: WAIT
.70(sec) ;
3: DO[15:FIN PALET L1]=OFF ;
4: R[10:CAPAS L1]=0
;
5: R[11:CICLOS L1]=0
;
21:
$WAITTMOUT=100 ;
6: R[12:TRABAJANDO L1]=0
;
22: WAIT DI[17]=ON TIMEOUT,LBL[17] ;
7: WAIT DI[11:L1 COMPLETA]=OFF
23: WAIT DI[18]=ON TIMEOUT,LBL[18] ;
Robótica Prog. FANUC
76
15.7. INSTRUCCIÓN DE SISTEMA DE REFERENCIA
F1: [INST] Æ OFFSET/FRAMES.
15.7.1. Seleccionar los sistemas de referencia
Para seleccionar el sistema de referencia usuario. UFRAME_NUM = [valor]
-
El [valor] puede ser: una constante
un registro R[ n ]
Si [valor] = 0, entonces el programa utiliza las coordenadas del sistema (WORLD).
Para seleccionar el sistema de referencia herramienta. UTOOL_NUM = [valor]
-
El [valor] puede ser: una constante
un registro R[ n ]
¡Un punto está ligado a un (y únicamente a uno) sistema de referencia de usuario, y a un (y
únicamente a uno) sistema de referencia herramienta!
15.7.2. Almacenar un sistema de referencia en un registro de posición
Para almacenar el sistema de referencia usuario deseado. PR[ n ] = UFRAME[ n ]
El registro de posición PR[ n ] cambia de formato. Contiene en lo sucesivo una matriz de 12 elementos
permitiendo definir el sistema de referencia usuario n.
Para restituir el sistema de referencia de usuario. UFRAME[ n ] = PR[ n ]
Para almacenar el sistema de referencia herramienta deseado. PR[ n ] = UTOOL[ n ]
El registro de posición PR[ n ] cambia de formato. Contiene en lo sucesivo una matriz de 12 elementos
permitiendo definir el sistema de referencia herramienta n.
Para restituir el sistema de referencia de herramienta. UTOOL[ n ] = PR[ n ]
1: UTOOL_NUM=1 ;
2: UFRAME_NUM=1 ;
3: UFRAME[1]=PR[10:WORLD] ;
4: PR[1:MOVIL]=PR[10:WORLD]
;
1: LBL[1] ;
2: UTOOL_NUM=2 ;
3: UFRAME_NUM=5 ;
4:
;
5: PR[10,1]=742
;
6: PR[10,2]=50.1
;
7: PR[10,3]=176.2
;
8: PR[10,4]=0
;
9: PR[10,5]=0
;
10: PR[10,6]=31.5
;
13: PR[10,1]=PR[10,1]+R[1:X]
;
14: PR[10,2]=PR[10,2]+R[2:Y]
;
15: PR[10,3]=PR[10,3]+R[3:Z]
;
16: UFRAME[5]=PR[10] ;
17:
;
18:J P[1] 100% FINE
;
20:J P[2] 100% FINE
;
21:L P[3] 500mm/sec FINE
;
22:L P[4] 2000mm/sec FINE
;
23:L P[5] 2000mm/sec FINE
;
25:J P[1] 100% FINE
;
26: JMP LBL[1] ;
77
Robótica Prog. FANUC
15.8. INSTRUCCIONES MULTITAREA (MULTI-TASKING, OPCIÓN J600)
Los sistemas R-J2, R-J3 y R-J3i permiten funcionar 4 programas al mismo tiempo.
F1 : [INST] Æ MULTIPLE CONTROL.
RUN FANUC
Æ lanza la ejecución de un programa FANUC y al mismo tiempo
sigue la ejecución del programa inicial.
SEMAPHORE[ n ] = [valor]
Æ activa o desactiva el semáforo n. Los semáforos se
Utilizan para la sincronización de tareas.
Esta instrucción funciona a la par con la instrucción
WAIT SEMAPHORE[ n ]. El [valor] puede ser: ON o OFF.
WAIT SEMAPHORE[ n ] [tiempo] Æ
Para la ejecución de un programa que contiene
Esta instrucción, hasta que otro programa
en paralelo activa el semáforo n a ON.
El [tiempo] puede ser:
- FOREVER Æ espera a que el semáforo pase a ON.
- TIMEOUT LBL[ n ] Æ espera el tiempo especificado en la
variable timeout ($WAITTMOUT),
después salta a la etiqueta n si el
semáforo no se ha puesto a ON.
PROGRAM2
PROGRAM 1
1: J P [3] 100% FINE
1: SEMAPHORE [1] = OFF
2: J P [4] 100% FINE
2: RUN PRG2
3: J P [5] 100% FINE
3: J P [1] 100% FINE
4: J P [6] 100% FINE
4: J P [2] 100% FINE
5: SEMAPHORE [1] = ON
5: WAIT SEMAPHORE[1]
Group Mask[1,*,*,*,*]
Group Mask[*,1,*,*,*]
Robótica Prog. FANUC
78
15.9. INSTRUCCIONES DE CONTROL
F1: [INST] Æ PROGRAM CONTROL.
ABORT Æ Pone fin a un programa y anula todos los movimientos en curso o en pausa.
Después de esta instrucción, el programa no puede continuar, se debe re-arrancar.
PAUSE Æ suspende la ejecución de un programa; todo movimiento comenzado continua hasta el
final, todos los temporizadores continúan siendo incrementados y todas las instrucciones
en curso de ejecución son acabadas salvo las instrucciones CALL que serán ejecutadas
cuando el programa sea reanudo.
RESUME_PROG = FANUC Æ relanza el programa FANUC que estaba en PAUSE.
15.10. INSTRUCCIONES DE MISCELANEOUS
79
Robótica Prog. FANUC
15.11. INST RUCCIONES DE CONDICIÓN
1: SKIP CONDITION SDI [1] = ON
Especifica la condición de ejecución de salto para la instrucción adicional de movimiento.
Se pueden unir (condiciones) utilizando operadores.
“Si se detecta la señal, no llega al punto y continua con la siguiente línea de programa”.
“Si no se detecta la señal, llega al punto y salta a la etiqueta”.
1:
!...VOY A POR CARTON ;
2: UFRAME[1]=PR[10:WORLD] ;
3:
;
4:
!PUNTO ENCIMA DEL PALET ;
5:J P[1] 100% CNT100
;
6:
;
7:
!SEGURIDAD ANTES DE BAJAR ;
8:
CALL PREPINZA
;
9:
10:
!BAJA HASTA UN PALET COMPLETO ;
11:L P[2] 1800mm /sec CNT100
;
12:
;
13:
!BAJA HASTA DETECCION FOTOCELULA ;
14:
SKIP CONDITION RI[6:FOTOCELULA]=OFF
;
15:L P[2] 1200mm/sec FINE Skip,LBL[1]
;
16:
;
17:
!BAJA HASTA DETECCION VACIO ;
18:
SKIP CONDITION RI[7:SIN CARTON]=OFF
;
19:L P[2] 30mm/sec FINE Skip,LBL[2]
;
20: DO[21:VACIO]=ON ;
21: WAIT
.70(sec) ;
22:
;
23:
!SUBE EL CARTON VERTICAL ;
24:
PR[11,3:CARTON]=1000
;
25: L P[1] 1000mm/sec CNT100
;
26:
;
27: END ;
28: LBL[1] ;
29: UALM[1] ;
30: END ;
31: LBL[2] ;
32: UALM[2] ;
33: End;
2: OFFSET CONDITION PR [1] ,UFRAME[1]
Especifica la condición de offset utilizado por la instrucción de movimiento.
3: TOOL OFFSET CONDITION PR [2 ] , UTOOL[1]
Especifica la condición de offset de TOOL utilizado por la instrucción de movimiento.
Robótica Prog. FANUC
80
15.12. INSTRUCCIÓN CONDITION MONITOR (OPCIÓN J628)
Esta función permite el monitoreo del sistema o dentro de programas al cambio de señales de
entradas/salidas, alarmas y registros del robot. Este monitoreo ejecuta un programa si ciertas
condiciones son satisfechas.
Ejemplo:
Con el siguiente programa ejemplo, si al manejar el robot se cae una pieza, el usuario se pondrá en
alerta con un mensaje de error y el robot se para.
Sample. TP (programa para la operación de manejo)
1: MONITOR WRK FALL
2: J P[1] 100% FINE
:
:
:
Operación
Visualización estado
:
8. J P[7] 100% FINE
9: MONITOR END WRK FALL
10: Open hand
WRK FALL.Condition (programa de condición)
1: WHEN DI[2] = Off, CALL STP RBT
STP RBT. TP (programa de acción)
1: DO[2] = On
!Notification to a peripheral device
2: R[8] =[8] + 1
!Drop count
3: UALM [1]
! Alarm and robot stop
[End]
Esta función consiste en las siguientes instrucciones y programas:
·
Instrucción de arranque del monitor
Especifica el programa de condición que tiene que monitorizarse y el arranque de la
monitorización.
Ejemplo:
1: MONITOR WRK FALL
Nombre del programa de condición
·
Instrucción de paro del monitor
Especifica el programa de condición que finaliza.
9: MONITOR END WRK FALL
Nombre del programa de condición
·
Programa de condición
Describe la condición a monitorizarse y especifica el programa que tiene que ejecutarse si
se satisface la condición.
Ejemplo del programa:
1: WHEN DI[2] = Off, CALL STP RBT
*1 *2
Este programa de condición muestra que cuando se apaga DI[2], se llama al programa STP
RBT.
*1 Describir la condición de monitorización deseada usando la instrucción WHEN. Los tipos
de la condición de monitorización se explican en la sección WHEN.
81
Robótica Prog. FANUC
*2 Especificar el programa que tiene que ejecutarse si se satisface la condición descrita en
*1. El programa de acción puede crearse y nombrarse de la misma manera que un
programa normal.
·
Programa de acción
Llamado si se satisface la condición. Pueden utilizarse las mismas instrucciones que las
utilizadas en los programas normales.
Ejemplo del programa:
1: DO [2] =On
! Notification to a peripheral device
2: R [8] = R [8] +1
! Drop count
3: UALM [1]
! Alarm and robot stop
$UALRM_MSG [1] = WORK HAS FALLEN
Hay dos tipos principales de monitores: el monitor de programa y el monitor del sistema:
·
El monitor de programa arranca/para desde un programa. Cuando termina el programa,
también termina la monitorización.
·
El monitor del sistema se arranca/para desde la pantalla especializada. Realiza
constantemente la monitorización sin reparar en el estado de la ejecución de programa.
(La monitorización continua incluso después de que termine el programa).
Monitor del programa
Ese tipo de monitor depende del estado de la ejecución del programa. Es adecuado para la
monitorización de estado dentro de un programa aparte.
La monitorización arranca con una instrucción (instrucción de arranque del monitor) en el
programa. La monitorización termina con una instrucción de paro del monitor o finalización del
programa.
El monitor del programa puede conmutarse entre dos ajustes: ajuste 1 en el que el monitor para
cuando el programa se para temporalmente, y ajuste 2 en el que el monitor continua la
monitorización.
NOTA Los ajustes 1 y 2 no pueden utilizarse al mismo tiempo.
Monitor del sistema
Este tipo de monitor no depende del estado de la ejecución de un programa. Es adecuado para
la monitorización el estado del sistema completo.
El monitor se arranca y para desde la pantalla de estado. No puede manejarse con instrucciones
en el programa.
El monitor del sistema puede conmutarse entre dos ajustes: ajuste 1 en el que el monitor para
después de un arranque en frío, y ajuste 2 en el que el monitor continua la monitorización.
NOTA El monitor del programa y el monitor del sistema pueden utilizarse al mismo tiempo.
Los monitores pueden conmutarse entre los ajustes utilizando las siguientes variables del sistema:
$TTP_MON.$LOCAL_MT = 1D Conmuta el monitor del programa al ajuste 1 (por defecto).
$TTP_MON.$LOCAL_MT = 2D Conmuta el monitor del programa al ajuste 2 (la misma
especificación que para KAREL)
$TTP_MON.$GLOBAL_MT = 0D Activa el monitor del sistema (por defecto).
$TTP_MON.$GLOBAL_MT = 1D Conmuta el monitor del sistema al ajuste 1.
$TTP_MON.$GLOBAL_MT = 2D Conmuta el monitor del sistema al ajuste 2.
Robótica Prog. FANUC
82
Descripción de las operaciones de una en una:
Operación
Estado
MONITOR
Cuando se ejecuta una instrucción de arranque del monitor en el programa, la monitorización
instruction
arranca con el monitor del programa especificado.
Cuando se pulsa la tecla de función RESTART en la pantalla del monitor del programa de la
RESTART
pantalla de estado, se vuelve a arrancar la monitorización con el monitor del programa
(state screen)
especificado con el cursor.
Cuando se pulsa la tecla de función START en la pantalla del monitor del sistema de la pantalla
START
de estado, la monitorización arranca con el monitor del sistema especificado con el cursor.
(state screen)
Cuando se pulsa la tecla de paro temporal o si el programa se para temporalmente debido al
salto de una alarma, la monitorización de estado se para con el monitor del programa
Program Stop
previamente arrancado mediante el programa parado temporalmente, si el monitor del
programa se establece a 1.
Cuando el programa termina debido a la finalización del programa, finalización forzada, o el
Program
salto de una alarma, se borra el monitor del programa previamente arrancado por el programa
End/Enforced End
finalizado. El monitor del programa borrado no arranca a menos que se ejecute una instrucción
de arranque del monitor.
Cuando se ejecuta una instrucción de paro del monitor en el programa, se termina el monitor
MONITOR END
del programa especificado. Éste no arranca a menos que se ejecute una instrucción de
arranque del monitor.
Cuando s e pulsa la tecla de función PAUSE en la pantalla del monitor del programa de la
pantalla de estado, se para la monitorización con el monitor del programa especificado con el
cursor. El monitor parado vuelve a arrancar cuando se pulsa la tecla “Restart” o vuelve a
PAUSE
arrancar el programa.
(state screen)
Cuando se pulsa la tecla de función PAUSE en la pantalla del monitor del sistema de la pantalla
de estado, se para la monitorización con el monitor del sistema especificado con el cursor.
Cuando se pulsa la tecla de función END en la pantalla del monitor del programa de la pantalla
END
de estado, se para el monitor del programa especificado con el cursor.
(state screen)
Cuando el programa parado temporalmente vuelve a arrancar, también vuelve a arrancar el
RESUME
monitor del programa parado.
Si se activa el manejo de la caída de tensión y se monitoriza el sistema, ocurre lo siguiente
cuando se apaga/enciende la alimentación.
· La monitorización del estado para si el monitor del programa se establece al
ajuste 1.
Power failure
· La monitorización del estado continua si el monitor del programa se establece
handling
al ajuste 2. (El programa para temporalmente, pero se realiza la
monitorización del estado).
· El monitor del sistema continua la monitorización del estado.
Si se para el monitor, permanece en estado parado cuando se apaga/enciende la alimentación.
Si se desactiva el manejo de la caída de tensión y se apaga/enciende la alimentación, todos los
Cold start
monitores terminan excepto el monitor del sistema del ajuste 2. El monitor del sistema del
ajuste 2 mantiene el estado apropiado antes de que se quitara la potencia.
Para las operaciones distintas de las anteriores, se mantiene el estado del monitor.
Other
Estados de la instrucción
La monitorización del estado se realiza en la sección adjunta por las siguientes instrucciones:
·
MONITOR <conditional-program-name>
La monitorización arranca bajo la condición descrita en el programa de condición.
·
MONITOR END <conditional-program-name>
La monitorización realizada se para bajo la condición descrita en el programa de condición.
Programa de condición
El programa de condición de la monitorización, que tiene el subtipo llamado WHEN, sólo puede especificar las
instrucciones de condición.
·
WHEN <conditional-expression>, CALL <program-name>
En la instrucción de comparación de la condición, pueden especificarse múltiples condiciones en una única línea
en el estado de condición, utilizando los operadores lógicos (“and” y “or”). Esto simplifica la estructura del
programa, permitiendo que las condiciones tengan que evaluarse de manera eficiente.
83
Robótica Prog. FANUC
Formato de instrucción
·
Producto lógico (and)
WHEN <Cond.1> AND <Cond.2>, CALL <PRG Name>
·
Suma lógica (or)
WHEN <Cond.1> OR <Cond.2>, CALL <PRG Name>
Si se utilizan en combinación los operadores “and” (producto lógico) y “or” (suma lógica), lo lógico se convierte en
complejo, afectando a la lectura del programa y a la facilidad de edición. Por esta razón, esta función prohíbe el
uso combinado de los operadores lógicos “and” y “or”.
Se combinan hasta cinco condiciones con los operadores “and” o “or” en una única línea.
(Ejemplo) WHEN <Cond.1> AND <Cond.2> AND <Cond.3> AND <Cond.4> AND <Cond.5> CALL <PRG
Name>
Especificación
Paso
1 Introducir el nombre del programa de condición.
En la pantalla de lista del programa, pulsar F2 CREATE e introducir un nombre del programa.
2 Seleccionar Cond como subtipo.
Pulsar F2 DETAIL para moverse a la pantalla de detalle del programa.
Situar el cursor al elemento del subtipo y pulsar F4 CHOICE.
Seleccionar Cond desde la subventana.
NOTA Al mismo tiempo, el grupo de operación se establece automáticamente como [*,*,*].
Un programa de condición no necesita grupo de operación.
Pantalla de monitorización del estado
El estado de la monitorización de estado puede controlarse utilizando la pantalla del monitor del programa y la
pantalla del monitor del sistema.
Pantalla monitor del programa
Para el monitor del programa que se está actualmente ejecutando o parando, se visualiza el nombre y el estado
(bajo ejecución, parado) del programa de condición, lo mismo que el nombre del programa principal (*1) del
programa que arrancó el monitor del programa.
NOTA Si el programa “A” llama al programa “B” con una llamada al subprograma, y el programa “B” ejecuta una
instrucción de arranque de movimiento se visualiza el nombre del programa principal, “A”, en la columna del
nombre del programa.
Elementos y teclas de función en la pantalla del monitor del programa:
Elemento
Descripción
CH Prog.
Nombre del programa de condición
Status
Estado del programa, que se está ejecutando o parando
Program
Nombre del programa principal que arrancó el monitor del programa
Conmuta la pantalla a la pantalla del monitor del sistema. Si se desactiva el monitor
F2 SYSTEM
del sistema ($TPP_MON.$GLOBAL_MT = 0), la tecla no es efectiva
F3 RESTART
Cuando se pulsa, esta tecla vuelve a arrancar el monitor parado.
F4 PAUSE
Para el monitor
F5 END
Termina el monitor. El monitor finalizado se pone a 0 desde la pantalla.
Robótica Prog. FANUC
84
Pantalla del monitor del sistema
Se visualizan todos los programas de condición. Los monitores del sistema pueden arrancarse y
pararse.
Tabla 9-8. Elementos y teclas de función en la pantalla del monitor del sistema
Elemento
Descripción
CH Prog.
Nombre del programa de condición
Status
Estado del programa, que se está ejecutando o parando
F2 PROGRAM
Conmuta la pantalla a la pantalla del monitor del programa.
F3 START
Arranca el monitor del sistema.
Para el monitor. En la columna “State”, se visualiza un espacio para el monitor
F5 END
parado.
Notas/Restricciones
Si se especifican múltiples instrucciones de condición en un programa de condición, se arrancan
múltiples monitores al mismo tiempo.
1: WHEN (conditional-expression1), CALL (Program name1)
2: WHEN (conditional-expression2), CALL (Program name2)
3: WHEN (conditional-expression3), CALL (Program name3)
Si, antes de que termine una instrucción de arranque del monitor, se ejecuta otra instrucción de
arranque de monitor, ambos monitores se ejecutan al mismo tiempo.
Si los nombres del programa de condición especificados en las instrucciones de arranque del monitor
son los mismos, el primer programa de condición se sobrescribe por el segundo.
El monitor de programa para la monitorización de estado bajo las siguientes condiciones:
· Se ejecuta la instrucción MONITOR END.
· Termina el programa.
· El programa para temporalmente. (La monitorización de estado vuelve a arrancar cuando el
programa vuelve a arrancar).
Puede monitorizarse hasta cinco condiciones al mismo tiempo.
En el programa de acción para un monitor del programa, puede especificarse un grupo de movimiento.
En el programa de acción para un monitor del sistema, el grupo de movimiento debe especificarse
como [*,*,*,*,*].
En el programa de acción para un monitor del programa, puede especificarse un grupo de movimiento.
Sin embargo, mientras el robot está funcionando, el robot no puede manejarse con el programa.
Mientras el robot no está funcionando, el robot puede manejarse con el programa.
85
Robótica Prog. FANUC
16. FUNCIONES AVANZADAS
16.1. REF POSITION (POSICIÓN DE REFERENCIA)
Una posición de referencia es una posición en la cual se puede especificar el margen de tolerancia en
grados. Esto delimita una zona en el espacio, y cuando el robot entra en esa zona, una salida DO[n]
se activa.
MENU Æ SETUP Æ F1: [TYPE] Æ REF POSITION
REF POSN
JOINT
10 %
1/3
No. Enb/Dsbl
@Pos
Comment
1
ENABLE
FALSE
[
]
2
ENABLE
FALSE
[
]
3
DISABLE
FALSE
[
]
[ TYPE ]
DETAIL ENABLE
DISABLE
ENABLE: activa la posición de referencia
DISABLE: desactiva la posición de referencia
GPOS: a TRUE, el robot está dentro de la zona
a FALSE, el robot está fuera de la zona
F3: DETAIL
REF POSN
JOINT
10 %
Reference Position
1/12
Ref.Position Number:
1
1
Comment:
[****************]
2
Enable/Disable:
ENABLE
3
Signal definition:
DO [
1]
4
J1:
88.998
+/-
22.000
5
J2:
-3.631
+/-
11.500
6
J3:
-65.274
+/-
52.000
7
J4:
134.782
+/-
26.000
8
J5:
91.569
+/-
6.500
9
J6:
-2.367
+/-
11.000
[ TYPE ]
RECORD
Poner el robot en el centro de la zona a definir y pulsar SHIFT + F5: RECORD, grabando la posición.
A continuación definir las tolerancias deseadas eje por eje.
Nota: DO [1] es la salida elegida, que debe ser activada cuando el robot está dentro de la zona.
Cuando ninguna salida es elegida, el control toma por defecto UO 7: At perch.
Nota: $REFPOSMAXNUM, para ampliar nº de posiciones de referencia. (Parar y arrancar controlador).
Robótica Prog. FANUC
86
16.2. SPACE CHECK FUNCIÓN (OPCIÓN J609)
Esta función permite programar un volumen específico mediante el cual se establecen una serie de
condiciones:
-Se precisa de una DI para poder acceder al volumen. Mientras no se recibe esta entrada el
movimiento del robot se para al contactar con el volumen de seguridad. Si estando dentro del
volumen, se perdiera la señal, no puede salir.
-Una salida cambia de estado dentro (DO = Off) y fuera del volumen(DO = On).
Rectangular\Space
JOINT 10%
LIST SCREEN
1/3
No.Enb/Dsbl
Comment
Usage
1 ENABLE\\[CINTA
]Common Space
2 DISABLE[
]Common Space
3 DISABLE[
]Common Space
[ TYPE ]
DETAIL ENABLE DISABLE
Rectangular\Space
JOINT
10%
DETAILED SCREEN
1/6
SPACE :1
GROUP :1
USAGE : Common Space
1 Enable/Disable:
ENABLE\\
2 Comment:
[
CINTA]
3 Output Signal:
DO [ 12]
4 Input Signal:
DI [
1]
5 Priority:
Low
6 inside/outside:
Inside
[ TYPE ] SPACE
ENABLE DISABLE
Rec
JOINT
10%
SPACE SETUP
1/4
SPACE :1
GROUP :1
UFRAME :1
UTOOL :1
1 : BASIS\VERTEX
[SIDE LENGTH
]
2 :X 1123.6
mm
-2073.6 mm
3 :Y 1645.4
mm
280.3
mm
4 :Z -310.0
mm
-218.9
mm
[ TYPE ] OTHER
RECORD
Nota: $REFPOSMAXNUM, para ampliar nº de posiciones de referencia. (Parar y arrancar controlador).
87
Robótica Prog. FANUC
16.3. AUTOEXEC PROGRAM FOR COLD START / HOT START
Este programa se arrancará mientras reinicia el sistema cuando damos ON al controlador.
MENU Æ NEXT Æ SYSTEM Æ F1: [TYPE] Æ
MENU Æ NEXT Æ SYSTEM Æ F1: [TYPE] Æ
CONFIG
VARIABLES
System Config
JOINT
10 %
SYSTEM Variables
JOINT
10 %
3/28
214/306
1 Use HOT START:
FALSE
208
$PRIORITY
128
2 I/O power fail recovery:RECOVER ALL
209
$PROTOENT
[4] of PROTOENT_T
3 Autoexec program
[ ********
]
210
$PRPORT_NUM
4
for Cold start:
211
$PSSAVE_GRP
[5] of PSSAVE_GRP_T
4 Autoexec program
[********]
212
$PURGE_ENBL
TRUE
for Hot start:
213
$PWF_IO
4
5 HOT START done signal:
DO[
0]
214
$PWR_NORMAL
*uninit*
6 Restore selected program:
TRUE
215
$PWR_SEMI
*uninit*
7 Enable UI signals:
TRUE
216
$PWR_UP_RTN
[16] of STRING[13]
8 START for CONTINUE only:
FALSE
217
$RCVTMOUT
3000
[ TYPE ]
[ TYPE ]
Para que un programa sea arrancado en modo
Para que un programa sea arrancado en
automático mediante COLD START, su nombre
modo automático mediante HOT START, su
debe figurar en la variable de sistema
nombre debe figurar en la variable de
$PWR_NORMAL
sistema $PWR_SEMI
ATENCION:
El programa de arranque en autoejecución no debe incluir movimientos (group
mask: [*,*,*,*,*]). En su ejecución no debe exceder de más de 15 seg. , siendo inferior
en todo caso al tiempo que tarda la SRAM en descargar sobre la DRAM. Para poder ser
ejecutado no debe estar editado.
AUTOEXEC
AUTOEXEC
USE
RESTORE
PROGRAM
PROGRAM
RESULTADOS ANTE CAÍDA DE
RESULTADOS Desde BIOS
RESULTADOS Desde BIOS
HOT
SELECTED
FOR COLD
FOR HOT
TENSIÓN OFF/ON
COLD START
HOT START
START
PROGR AM
START
START
False
Programa en ejecución se aborta.
Programa en ejecución se aborta.
Programa en ejecución se aborta.
True
(por
xxxxxxx
xxxxxxx
Autoselección último programa en
Autoselección último programa en
Autoselección último programa en
(por defecto)
defecto)
ejecución/edición desde la línea 0.
ejecución/edición desde la línea 0.
ejecución/edición desde la línea 0.
Programa en ejcución se pausa.
Programa en ejcución se pausa.
Programa en ejcución se pausa.
Autoselección último programa en
Autoselección último programa en
Autoselección último programa en
True
True
xxxxxxx
xxxxxxx
ejcución/edición desde la línea
ejcución/edición desde la línea
ejcución/edición desde la línea
donde se quedó.
donde se quedó.
donde se quedó.
Programa en ejecución se aborta.
Programa en ejecución se aborta.
Programa en ejecución se aborta.
False
False
xxxxxxx
xxxxxxx
Ningún programa se selecciona.
Ningún programa se selecciona.
Ningún programa se selecciona.
Programa en ejcución se pausa.
Programa en ejcución se pausa.
Programa en ejcución se pausa.
Autoselección último programa en
Autoselección último programa en
Autoselección último programa en
True
False
xxxxxxx
xxxxxxx
ejcución/edición desde la línea
ejcución/edición desde la línea
ejcución/edición desde la línea
donde se quedó.
donde se quedó.
donde se quedó.
Programa en ejecución se aborta.
Programa en ejecución se aborta.
Programa en ejecución se aborta.
False
True
Autoselección último programa en
Autoselección último programa en
Autoselección último programa en
(por
A
B
(por defecto)
ejecución/edición desde la línea 0
ejecución/edición desde la línea 0
ejecución/edición desde la línea 0
defecto)
+ se ejecuta programa A
+ se ejecuta programa A
+ se ejecuta programa A
Programa en ejcución se pausa.
Programa en ejcución se pausa.
Programa en ejcución se pausa.
Autoselección último programa en
Autoselección último programa
Autoselección último programa en
True
True
A
B
ejcución/edición desde la línea
en ejcución/edición desde la línea
ejcución/edición desde la línea
donde se quedó
donde se quedó
donde se quedó
+ se ejecuta programa B
+ se ejecuta programa A
+ se ejecuta programa B
Programa en ejecución se aborta.
Programa en ejecución se aborta.
Programa en ejecución se aborta.
False
False
A
B
Ningún programa se selecciona +
Ningún programa se selecciona +
Ningún programa se selecciona +
se ejecuta programa A
se ejecuta programa A
se ejecuta programa A
Programa en ejcución se pausa.
Programa en ejcución se pausa.
Programa en ejcución se pausa.
Autoselección último programa en
Autoselección último programa
Autoselección último programa en
True
False
A
B
ejcución/edición desde la línea
en ejcución/edición desde la línea
ejcución/edición desde la línea
donde se quedó
donde se quedó
donde se quedó
+ se ejecuta programa B
+ se ejecuta programa A
+ se ejecuta programa B
Robótica Prog. FANUC
88
16.4. AJUSTE DINÁMICO DE LA TRAYECTORIA (PROGRAM ADJU ST, OPCIÓN J517)
El ajuste dinámico de la trayectoria permite modificar ciertos puntos de una trayectoria sin para el
desarrollo de la aplicación.
MENU Æ UTILITIES Æ F1: [TYPE] Æ PROG ADJUST
FANUC
LINE 0
UTILITIES Prog Adj
JOINT
10 %
Program
Lines
Status
1/10
1
FANUC
5- 15
EDIT
2
FANUC
21- 23
ENABLED
3
PERCAGE
1- 5
DISABLED
4
TACHE1
9- 14
ENABLED
5
********
0- 0
********
6
********
0- 0
********
7
********
0- 0
********
8
********
0- 0
********
9
********
0- 0
********
10
********
0- 0
********
[ TYPE ]
DETAIL
>
PROGRAM: nombre del programa en el cual se encuentran los puntos a modificar.
LINES: líneas del programa entre las cuales se encuentran los puntos a modificar
STATUS:
ENABLE Æ plan de ajuste activo
DISABLE Æ plan de ajuste activo
F2: DETAIL
FANUC
LINE 23
UTILITIES Prog Adj
JOINT
10 %
1/11
Current schedule:
1
Status: EDIT
1 Program name:
FANUC
2 Starting line number:
5
3 Ending line number:
15
4 X adjustment:
6.000
mm
5 Y adjustment:
0.000
mm
6 Z adjustment:
-2.500
mm
7 W adjustment:
0.000
dg
8 P adjustment:
0.000
dg
9 R adjustment:
0.000
dg
10 Motion speed:
0
mm/s
11 Joint speed:
0
%
[ TYPE ]
UNITS
SCHED
ENABLE
>
COPY
CLR_ADJ
CLR_ALL
>
UNITS: permite cambiar las unidades de ajuste
SCHED: pasa de un plan de ajuste a otro.
ENABLE/DISABLE: valida / invalida el plan de ajuste
COPY: copia un plan de ajuste en otro
CLR_ADJ: borra los ajustes y velocidades especificadas (hace permanente los ajustes)
CLR_ALL: hace permanente los planes activos y borra los planes de ajuste.
89
Robótica Prog. FANUC
16.5. DESPLAZAMIENTO TRAYECTORIA (PROGRAM SHIFT, OPCIÓN J505)
Permite duplicar todo o parte de un programa cuando una trayectoria similar es aplicada a varias
piezas idénticas.
Permite también corregir una trayectoria después del emplazamiento físico del robot en relación a la
pieza a trabajar.
MENU Æ UTILITIES Æ F1: [TYPE] Æ PRG SHIFT
PROGRAM SHIFT
JOINT
10 %
Program
2/6
1 Original Program :
[FANUC
]
2
Range:
WHOLE
3
Start line: (not used)
*****
4
End
line: (not used)
*****
5 New Program :
[
]
6
Insert line: (not used)
*****
Use shifted up,down arrows for next page
[ TYPE ]
PART
WHOLE >
ORIGINAL PROGRAM: Nombre del programa que contiene el nombre del programa a desplazar
RANGE => WHOLE: copia completa
=> PART: copia parcial
Æ START LINE: primera línea de la trayectoria a copiar
Æ END LINE: última línea de la trayectoria a copiar
NEW PROGRAM: nombre del programa de destino que contendrá la trayectoria desplazada
INSERT LINE: si el programa ya existe, número de la línea donde insertar la trayectoria desplazada
Q3
Q1
Programa
destino
Q1
Q2
Programa
P1
P1
destino
P3
Programa
Programa
fuente
fuente
P2
Sin rotación
Con rotación
PROGRAM SHIFT
JOINT
10 %
PROGRAM SHIFT
JOINT
10 %
Shift amount/Teach
1/3
Shift amount/Teach
1/7
Position data
Position data
X :********
Y :********
Z :********
X :********
Y :********
Z :********
1 Rotation:
OFF
1 Rotation:
ON
2 Source position
P1:
2 Source position
P1:
3
P2:
4
P3:
5 Destination position
Q1:
3 Destination position
Q1:
6
Q2:
7
Q3:
[ TYPE ] EXECUTE
ON
OFF
>
[ TYPE ] EXECUTE
ON
OFF
>
ROTATION: indica si el desplazamiento de la trayectoria se hace con (ON) o sin (OFF) rotación.
SOURCE POSITION: registra el o los puntos (SHIFT + F5: RECORD) sobre las diferentes piezas a fin
de definir el desplazamiento a realizar (referirse a los dibujos).
EXECUTE: crea el programa destino una vez grabadas las posiciones.
Robótica Prog. FANUC
90
16.6. TRAYECTORIAS SIMÉTRICAS (MIRROR IMAGE, OPCIÓN J506)
Esta opción permite duplicar todo o parte de un programa TP en una imagen simétrica respecto los
puntos originalmente programados.
MENU Æ UTILITIES Æ F1: [TYPE] Æ MIRROR IMAGE
MIRROR IMAGE SHIFT
JOINT
10 %
Program
2/6
1 Original Program :
[FANUC
]
2
Range:
WHOLE
3
Start line: (not used)
*****
4
End
line: (not used)
*****
5 New Program :
[
]
6
Insert line: (not used)
*****
Use shifted up,down arrows for next page
[ TYPE ]
PART
WHOLE >
ORIGINAL PROGRAM: Nombre del programa que contiene la trayectoria original
RANGE => WHOLE: copia completa
=> PART: copia parcial
Æ START LINE: primera línea de la trayectoria a copiar
Æ END LINE: última línea de la trayectoria a copiar
NEW PROGRAM: nombre del programa de destino que contendrá la trayectoria simétrica
INSERT LINE: si el programa ya existe, número de la línea donde insertar la trayectoria simétrica
P1
P1
Q1
Q1
Q3
P3
Q2
P2
Programa
Programa
Programa
Programa
fuente
destino
fuente
destino
Sin rotación
Con rotación
PROGRAM SHIFT
JOINT
10 %
MIRROR IMAGE SHIFT
JOINT
10 %
Shift amount/Teach
1/3
Shift amount/Teach
1/7
Position data
Position data
X :********
Y :********
Z :********
X :********
Y :********
Z :********
1 Rotation:
OFF
1 Rotation:
ON
2 Source position
P1:
2 Source position
P1:
3
P2:
4
P3:
5 Destination position
Q1:
3 Destination position
Q1:
6
Q2:
7
Q3:
[ TYPE ] EXECUTE
ON
OFF
>
[ TYPE ] EXECUTE
ON
OFF
>
ROTATION: indica si el desplazamiento de la trayectoria se hace con (ON) o sin (OFF) rotación.
SOURCE POSITION: registra el o los puntos (SHIFT + F5: RECORD) sobre las diferentes piezas a fin
de definir el desplazamiento a realizar (referirse a los dibujos).
EXECUTE: crea el programa destino una vez grabadas las posiciones.
91
Robótica Prog. FANUC
16.7. CAMBIO DE HERRAMIENTA (TOOL OFFSET, OPCIÓN J509).
Convert type: TCP FIXED
- Cambia Utool sin cambiar las cotas de los puntos de programa, con lo
que el robot va a los mismos puntos anteriores.
ROBOT FIXED - Cambia Utool con cambio de cotas de puntos de programa con lo que
el robot se desplaza a otros puntos y podría colisionar con algo.
16.8. CAMBIO DE SISTEMA DE USUARIO (FRAME OFFSET, OPCIÓN J509).
Convert position data: Yes- Cambia Uframe con cambio de las cotas de los puntos de programa, con
lo que el programa se desplaza y puede colisionar con algo.
No- Cambia Uframe sin cambio de cotas de puntos de programa para
conservar trayectorias originales del programa.
Robótica Prog. FANUC
92
17. ENTRADAS-SALIDAS
17.1. DIGITALES Æ DI[N] Y DO[N]
Interruptores DIP
Indicaciones de estado y de diagnóstico
Conexión de entrada bus remoto, esclavo
SLOT
1
Conexión de salida bus remoto, esclavo
Alimentación de tensión, esclavo
Interface de diagnóstico
SLOT
1
RACK
Conexión de bus remoto, maestro
94
RACK
93
IBS PCI SC/RI-LK
MENU Æ I/O Æ F1: [TYPE] Æ DigitalÆ F2: CONFIG
I/O Digital Out
JOINT
10 %
I/O Digital Out
JOINT
10 %
#
SIM STATUS
1/256
1/6
DO[
1] U
OFF
[
]
#
RANGE
RACK SLOT START PT
DO[
2] U
OFF
[
]
1 DO[
1-
16]
93
3
1
DO[
3] U
OFF
[
]
2 DO[
17-
32]
93
4
17
3 DO[
33- 128]
0
0
0
DO[
4] U
OFF
[
]
4 DO[ 129- 176]
94
1
129
DO[
5] U
OFF
[
]
5 DO[ 177-1024]
0
0
0
DO[
6] U
OFF
[
]
DO[
7] U
OFF
[
]
DO[
8] U
OFF
[
]
DO[
9] U
OFF
[
]
DO[
10] U
OFF
[
]
[ TYPE ] MONITOR IN/OUT DETAIL
HELP >
[ TYPE ] CONFIG
IN/OUT
ON
OFF
[ TYPE ] VERIFY
SIMULATE: La salida se simula al nivel de soft. La entrada se simula al nivel de soft.
(No hay tensión física sobre la salida).(No se tiene en cuenta la entrada física).
UNSIMULATE: la salida es físicamente forzada. (Hay tensión física en la salida).
VALUE: Valor escrito sobre la salida. Valor leído de las entradas.
IN/OUT: Para pasar de ventana de Salidas a entradas.
MONITOR: retorno a la página anterior.
VERIFY: verifica si la configuración es correcta Æ Port assignment is valid.
O incorrecta Æ Port assignment is inva lid.
Æ F4: DETAIL
93
Robótica Prog. FANUC
JOINT
10 %
JOINT
10 %
Digital Output Detail
12/23
Digital Output Detail
1/23
10
Comment: [
7][
]
11
Comment: [
8][
]
Digital Output: DO[
1]
12
Polarity: [
1]
NORMAL
13
Polarity: [
2] NORMAL
Digital Outputs:
[
1 -
8]
14
Polarity: [
3] NORMAL
1
Rack Number:
1
15
Polarity: [
4] NORMAL
2
Slot Number:
2
16
Polarity: [
5] NORMAL
3 Starting Point:
1
17
Polarity: [
6] NORMAL
4
Comment: [
1][
]
18
Polarity: [
7] NORMAL
5
Comment: [
2][
]
19
Polarity: [
8] NORMAL
6
Comment: [
3][
]
[ TYPE ]
NEXT
IN/OUT INVERSE NORMAL >
[ TYPE ]
NEXT
IN/OUT
>
[ TYPE ] VERIFY
>
[ TYPE ] VERIFY
>
JOINT
10 %
Digital Output Detail
20/23
14
Polarity:
[
3] NORMAL
15
Polarity:
[
4] NORMAL
16
Polarity:
[
5] NORMAL
17
Polarity:
[
6] NORMAL
18
Polarity:
[
7] NORMAL
19
Polarity:
[
8] NORMAL
20
Complementary:
[
1 -
2]
FALSE
21
Complementary:
[
3 -
4] FALSE
22
Complementary:
[
5 -
6] FALSE
23
Complementary:
[
7 -
8] FALSE
[ TYPE ]
NEXT
IN/OUT
TRUE
FALSE >
[ TYPE ] VERIFY
>
NEXT: pasa a las 8 salidas o a las 8 entradas siguientes.
POLARITY: establece la polaridad de las salidas o entradas:
-NORMAL Æ ON
=> 24V
OFF
=> 0V
- O INVERSE Æ ON
=> 0V
OFF
=> 24V
COMPLEMENTARY: asocia las salidas de 2 en 2
Complementary [1-2] = TRUE
Si DO [1]=ON, DO [2]=OFF
Si DO [1]=OFF, DO [2]=ON
O no Æ Complementary [1-2] = FALSE
Las salidas DO [1] y DO [2] son independientes.
Una vez terminada la configuración, parar y arrancar de nuevo el controlador para que el
sistema tenga en cuenta las modificaciones.
Nota: Para ampliar el número de puntos máximo permitido por ejemplo DI / DO [1 - 256] a
DI / DO [ 1 - 1024] modificar la variable $MAX_DIG_PRT.
O mediante CRTL START, Menú, Program Setup.
Robótica Prog. FANUC
94
|
||
|
|
|