Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1
OBJETIVO
2
INTRODUCCION
3
1. SEGURIDAD
1.1 SEGURIDAD
Es primordial contar con una copia del documento de Seguridad
Estándar Nacional de ANSI/RIA, para robots industriales y sistemas
robotizados. Esta información puede ser obtenida en Robotic
Industries Association, solicitando el ANSI/RIA R15.06. La dirección es la
siguiente: Robotic Industries Association
900 Victors Way
P.O. Box 3724
Ann Arbor, Michigan 48106
Tel: (313) 994-6088
Fax: (313) 994-3388
La mejor medida de seguridad es el personal capacitado. El usuario es
responsable de proveer personal capacitado adecuadamente para
operar, programar y dar mantenimiento a la celda del robot. ¡El robot no
debe ser operado por personal que no ha sido capacitado!
4
Todos los operadores, programadores, ingenieros, herramentistas,
personal de mantenimiento, supervisores y cualquier otra persona
trabajando cerca del robot debe entender los peligros potenciales de
operación. Los consejos de protección general son los siguientes:
5
• Instale todos los controladores fuera del área de trabajo del robot.
• El área de la celda del robot debe ser amplia para poder realizar los
procesos de programación y mantenimiento de una forma segura.
6
• Asegúrese de que solo personal autorizados puede operar este sistema.
7
• El robot debe estar en modo de paro de emergencia (E-Stop) cuando
no este en uso.
8
La celda cuenta con Paros de Emergencia en distintas áreas como,
Controlador de Robot, Teach Pendant, botonera del operador, Panel
View, etc.
9
2. TIPOS DE UNIDADES MECÁNICAS (ROBOT)
10
Definición de “ROBOT”, acordada en el European Standard EN775, 1992:
“Robot Manipulador Industrial: Maquina manipuladora con varios grados
de libertad, controlada automáticamente, reprogramable en posición,
velocidad y aceleración, la cual puede ser ubicada en un lugar fijo o
móvil y destinada para uso de automatización industrial.”
Compuesto por 2 grupos de ejes. Los ejes mayores (J1, J2 y J3) al igual
que los ejes menores (J4, J5 y J6) posicionan la herramienta montada al
final del brazo del robot. Esta unidad cuenta con un controlador para
direccionar y gobernar sus movimientos
11
Cada eje es manejado por un sevo motor de VCA. de 200 VAC. El cual
no es posible su reparación por el cliente. Cada motor cuenta con un
freno interno aplicado mecánicamente, es liberado eléctricamente por
una señal desde el Servo amplificador. Si el freno falla, el motor debe ser
reemplazado.
3.1 SOFTWARE
Define el funcionamiento del robot, contiene el núcleo del sistema
operativo (Karel).|Programas de Usuario, Diagnóstico de fallas,
Parámetros defidos por el usuario, Frames, Variables de Sistema,
Configuración de I/O y Protocolos de comunicación.
12
4. DESCRIPCIÓN DEL CONTROLADOR
13
4.1 DESCRIPCION DEL CONTROLADOR
Es un dispositivo programable que gobierna los movimientos del robot,
provee la energía eléctrica para el funcionamiento del sistema y
presenta los elementos para el control del robot como el Panel del
Operador y Teach Pendant.
14
Este dispositivo permite seleccionar el modo de utilización del robot y se
define en 2 posiciones:
15
CYCLE START Switch que permite rearrancar el robot después de una falla.
16
Todas las operaciones y la programación podrán realizarse mediante la
utilización del Teach Pendant. La información aparece en un visualizador
en el que se presentarán ventanas, menús, diálogos y teclas de función.
Así como para mover en modo manual el robot, la tarea más importante
para el programador, crear, editar y correr programas de prueba,
ingresar datos al robot (configuración) y/o desplegar el estado del robot
al operador.
17
TECLA SELECT: para visualizar la pantalla de selección del programa.
18
TECLAS DE MOVIEMIENTO: son efectivas mientras se mantiene pulsada
una tecla Shift. Se utilizan para la habilitación de movimiento.
19
TECLA PREV: vuelve a almacenar el estado más reciente. En algunos
casos, la tecla no puede volver inmediatamente al estado anterior.
20
6. MOVIMIENTO DEL ROBOT
6.1 JOINT
21
En el sistema de coordenadas específicas JOINT, cada eje puede
desplazarse en forma individual, en dirección positiva o negativa del eje.
Se puede mover ejes simultáneamente. El movimiento en JOINT se mide
en “grados º”. Cada eje posee una marca física de 0º (una fija y otra
móvil). La posición de 0º para cada eje se define como “posición de
masterizado o de marcas”. Hay que pensar en las teclas de movimiento
como J1, J2, J3, J4, J5, J6.
22
6.3 CARTESIANAS: XYZ USER
El sistema de coordenadas USER o COORDENADAS RELATIVAS MÓVILES es
un sistema de coordenadas cartesianas, cuyo origen viene definido por
el usuario. Se disponen de 9 sistemas de coordenadas USER
programables.
23
6.4 CARTESIANAS: XYZ JOGFRM
El sistema de coordenadas JOGFR o COORDENADAS RELATIVAS FIJAS es
un sistema de coordenadas cartesianas cuyo origen viene definido por el
usuario. Se utiliza para mover linealmente de manera eficaz el robot
respecto de un área de trabajo. A diferencia del USER, las coordenadas
JOGFRM no tienen un significado especial, por eso no se revelan en
ningún tipo de pantalla. Se trata de seleccionar la posición más
conveniente para definir el sistema de coordenadas de movimiento
JOGFR que más adelante nos será de gran utilidad a la hora de mover el
robot. Se disponen de 5 sistemas de coordenadas JGFRM programables.
24
6.5.CARTESIANAS: TOOL
El sistema de coordenadas TOOL es un sistema de coordenadas
cartesianas, cuyo origen es definible por el usuario y programable, es
decir, puede ser móvil. Se disponen de 9 sistemas de coordenadas TOOL
programables.
25
En definitiva, el TOOL define la herramienta que se usa en un
determinado momento. Mueve el TCP (Tool Center point o punto central
de la herramienta) en dirección x, y, z y gira sobre x(w), y(p), z(r) en el
marco TOOL de la herramienta seleccionado.
26
El TCP es el origen de la referencia herramienta. Cuando se crea una
referencia de herramienta, el TCP se desplaza al extremo de la
herramienta utilizada. La referencia herramienta puede ser orientada
según el eje de ataque de esa herramienta.
27
Herramienta Compleja: Una herramienta compleja es una herramienta
en la cual el eje de ataque no es paralelo al eje Z de la herramienta del
robot (eje 6)
28
7.3 PROCEDIMIENTO DE CONFIGURACIÓN de TCP.
Para definir una nueva herramienta es necesario seguir el siguiente
procedimiento:
1. Seleccionar MENU.
2. Seleccionar SETUP.
3. Presionar F1: [TYPE].
4. Seleccionar FRAMES y aparece la siguiente pantalla.
29
5. Seleccionar algún Frame vacío (Del 1 al 10)
6. Seleccionar F3: [DETAILS] o presionar ENTER y aparece la siguiente
pantalla.
5. Presionar F2 [METHOD].
6. Seleccionar el método a utilizar para configurar el TCP.
Three Point, Six Point o Directy Enter.
30
7.3.2 Método THREE POINT.
El objetivo de este método es el de desplazar el TCP al extremo de la
herramienta utilizada. Para ello tenemos que marcar un mismo punto con
3 orientaciones diferentes y memorizar esas posiciones.
31
12. Presionando SHIFT + RECORD se graba la posición: Approach point 2:
RECORDED.
13. Con el cursor te colocas en: Approach point 3: UNINIT
14. Se reorienta el robot hasta quedar en una posición uniforme y
aproximadamente asi:
32
Estas coordenadas son dadas respecto al TCP original de fábrica. El
sentido de la coordenada Z del TCP creado por el método Three Point es
el mismo que la del TCP original del robot
33
El objetivo de este método es el de desplazar el TCP original del robot a
un punto concreto de la herramienta utilizada y de reorientar la
herramienta en base a ese punto. El sentido de la coordenada Z del TCP
creado por el método Six Point es diferente que la del TCP original
del robot. En este caso es impuesto por el usuario
20. Definiremos ahora la orientación y el sentido del eje X. Para este paso
y el siguiente, es mas practico moverse en el sistema WORLD, con el
fin de asegurar que desplazamos horizontalmente el eje OZ de
34
la herramienta
35
Estas coordenadas son dadas respecto al TCP original de fábrica. El
sentido de la coordenada Z del TCP creado por el método Six Point es
diferente que la del TCP original del robot. En este caso es impuesta por el
usuario.
36
mueve y reorienta en base a ese sistema siempre que movamos el robot
en modo USER. Si no hay definido ningún sistema de referencia usuario,
por defecto, las posiciones se referirán al sistema de coordenadas
WORLD.
37
8. Elegir la herramienta a definir con el cursor
9. Presionar F2: DETAIL. Para seleccionar el método deseado
10. Presionar F2: [METHOD] y después elegir entre los 3 métodos
propuestos.
38
8.2.2 Método THREE POINT.
Dos rectas que se cruzan determinan un plano, con origen fijo
en el punto de cruce y Z perpendicular al plano.
11. Con el cursor te colocas en: Orient Origin Point: UNINIT
12. El primer paso que memorizaremos será el Orient origin point.
15. Definiremos ahora la orientación y el sentido del eje X. Para este paso,
es mas practico moverse en el sistema WORLD, con el fin de asegurar
que desplazamos horizontalmente el eje.
39
16. Presionando SHIFT + RECORD se graba la posición: X Direction Point::
RECORDED.
17. Con el cursor te colocas en: Y Direction Point: UNINIT. Este último paso
determina la orientación y el sentido del eje Y y del eje Z.
40
8.2.3 Método FOUR POINT.
Este método es utilizado cuando el sitio deseado para la definición del
sistema de referencia no está accesible o es poco cómodo. Por ejemplo,
para definir el origen de un sistema de referencia en el centro de una
mesa; es más cómodo definirlo sobre los bordes y desplazar a
continuación el centro.
41
Usando las mismas referencias que en el procedimiento anterior para
grabar los tres primeros puntos, hasta el paso 18.
19. Con el cursor te colocas en: System Origin: UNINIT. Este paso
determinara el origen de sistema y el usuario lo definirá donde crea
conveniente.
9. MODO DE OPERACION
Modo TEACH.
42
Operación manual del robot. Donde se puede crear, modificar, editar
programas y algunas funciones programables.
Modo AUTO.
Operación automática. Hacer que el robot reproduzca un programa en
modo automático.
43
10.2 TIPOS DE MOVIMIENTOS.
El tipo de movimiento es especificado en el programa, no por el modo
de sistema de coordenadas utilizadas.
44
alcance.
e) La velocidad es especificada como un porcentaje de la velocidad
total o en segundos.
f) Es utilizado principalmente para movimientos de aproximación, lejos
del área de trabajo, donde su movimiento impredecible no sea un
problema.
g) Se recomienda que de este tipo de movimiento sea grabada la
trayectoria para ir a la posición HOME.
45
segundo, pulgadas por minuto o grados por segundo
e) La velocidad para este tipo de movimiento será dada en unidades de
distancia sobre tiempo.
46
10.3 TIPO DE POSICION
Existen 2 Tipos de Posición
P: Posición, tipo de posición por default
Define una posición individual y específica en el programa
PR: Posición de Registro
Una posición predefinida almacenada en un registro la cual
puede ser utilizada (compartida) por cualquier programa.
Posición de Registros Usualmente la posición HOME se guarda en este
tipo de registro. La pantalla de registros de posición muestra la
información actual de los registros
47
10.4 NUMERO DE LA POSICION.
Es un identificador automáticamente asignado por el software que indica
la secuencia de punto. Puede ser editado y renumerado en orden
secuencial del programa.
10.5 VELOCIDAD.
La velocidad se puede expresar de varias formas según el tipo de
movimiento seleccionado:
JOINT : valor en % de la velocidad máxima
valor en segundos (un tiempo de llegada es impuesto)
LINEAL o CIRCULAR : valor en Mm./s
valor en cm./min.
valor en segundos (un tiempo de llegada es
impuesto)
48
Terminación Continuo (CNT): No se detiene sobre el punto programado.
49
• Un botón del Panel del Operador es presionado
• Una instrucción en un programa es ejecutada
Algunos ejemplos:
HOMEIO: Rutina de Programa Main o Principal.
MOVE_HOME: Mueve el robot a Home.
ENTERZON: Rutina donde están las solicitudes para entrar a una zona.
EXITZON: Rutina de liberación de todas las zonas.
VERIFY: Rutina de confirmación de programa.
50
b) Límites de ejes por switch.
c) Límites de ejes por topes mecánicos.
51
Después de que la creación del programa ha sido completado, se realiza
la operación automática repetidamente.
52
3. Seleccionar con el cursor el método para nombrar el programa:
Ejemplo :
Escribir FANUC: pulsar 6 veces sobre F1: [F ]
Después desplazar el cursor a la derecha.
pulsar 1 vez sobre F1 : [FA ]
2 veces sobre F3 : [FAN ]
3 veces sobre F4 : [FANU ]
y 3 veces sobre F1 : [FANUC ]
4. Para validar el nombre del programa presionar ENTER.
5. Presionar F2: DETAIL para que despliegue la siguiente pantalla:
53
6. Para terminar e irse a la edición del programa presionar F1: END
y despliega la pantalla de edición de programa.
54
(Se recomiendo grabar un movimiento JOINT para HOME con
terminación fina).
14. Presionamos ENTER y el punto se grabara.
55
15. COMO ABRIR UN PROGRAMA
56
4. Con el cursor te posicionas en el programa que deseamos ABRIR.
5. Presionar la tecla ENTER y se despliega en la pantalla el programa. Listo
para ser utilizado en cualquier procedimiento.
57
4. Con el cursor te posicionas en el programa que deseamos COPIAR.
Ejemplo: SUB.
5. Presionar la tecla NEXT para desplegar el menú de la siguiente pagina,
presionar la tecla F1: COPY y se despliega la siguiente ventana.
Ejemplo :
Escribir FANUC: pulsar 6 veces sobre F1: [F ]
Después desplazar el cursor a la derecha.
pulsar 1 vez sobre F1 : [FA ]
2 veces sobre F3 : [FAN ]
3 veces sobre F4 : [FANU ]
y 3 veces sobre F1 : [FANUC ]
58
8. Para validar el nombre del programa presionar ENTER.
9. Te pregunta si deseas copiar el programa, seleccionar YES o NO según
sea el caso.
Nota:
El programa seleccionado será copiado. El menú de SELECT se volverá a
desplegar y el programa copiado aparecerá en la lista.
59
4. Con el cursor te posicionas en el programa que deseamos BORRAR.
Ejemplo: SUB.
5. Presionar la tecla NEXT para desplegar el menú de la siguiente pagina,
presionar la tecla F3: DELETE.
6. Te pregunta si deseas borrar el programa, seleccionar YES o NO según
sea el caso.
Nota:
El programa seleccionado será borrado. En el menú de SELECT cuando se
vuelva a desplegar, el programa ya no aparecerá en la lista.
No se puede borrar un programa que está siendo editado o ejecutado o
uno que tenga protección de escritura.
60
4. Con el cursor te posicionas en el programa que deseamos
RENOMBRAR. Ejemplo: SUB.
5. Presionar la tecla NEXT para desplegar el menú de la siguiente pagina,
presionar la tecla F2: DETAIL.
Ejemplo :
Escribir FANUC: pulsar 6 veces sobre F1: [F ]
Después desplazar el cursor a la derecha.
pulsar 1 vez sobre F1 : [FA ]
2 veces sobre F3 : [FAN ]
61
3 veces sobre F4 : [FANU ]
y 3 veces sobre F1 : [FANUC ]
8. Para validar el nombre del programa presionar ENTER.
9. Para terminar e irse a la edición del programa presionar F1: END
y despliega la pantalla de edición de programa.
Nota:
El programa seleccionado será renombrado. En el menú de SELECT
cuando se vuelva a desplegar, el programa ya aparecerá en la lista con
el nuevo nombre.
No se puede renombrar un programa que está siendo editado o
ejecutado o uno que tenga protección de escritura.
62
12 : J P[5] 100% FINE
13 : L P[6] 2000mm/s FINE
4. Presionar la tecla F5 EDCMD.
5. Seleccionar INSERT. Escribir la cantidad de líneas a insertar y validar
con la tecla ENTER.
12 : J P[5] 100% FINE
13 :
14 : L P[6] 2000mm/s FINE
INSERTAR UN MOVIMIENTO.
6. Se posiciona en la línea donde se desea insertar el movimiento.
12 : J P[5] 100% FINE
13 :
14 : L P[6] 2000mm/s FINE
7. Presionar la tecla F! POINT y seleccionar el tipo de movimiento a
insertar, tomando en cuenta que en la posición donde este el robot ahí
se grabara el paso.
12 : J P[5] 100% FINE
13 : J P[6] 50% CNT
14 : L P[7] 2000mm/s FINE
63
8. Seleccionar el tipo de instrucción a insertar y presionar ENTER.
Ejemplo: CALL (Llamar un programa).
9. Aparece una ventana donde están todos los programas donde hay
que seleccionar el programa a llamar.
10. Presionar la tecla ENTER.
12 : J P[5] 100% FINE
13 : SUB
14 : L P[6] 2000mm/s FINE
64
BORRAR UN MOVIMIENTO o UNA ISNTRUCCION
65
F4 : POSITION : pega la estructura del punto, la cota = Position, pero bajo una
Identificación = nº de punto diferente ® L P[8] 100mm/s FINE (el punto 8
contiene las coordenadas del punto 6)
F5 : CANCEL : borra la memoria de copia
NEXT + F2 : R_LOGIC : pega las líneas en orden inverso sin los puntos
NEXT + F3 : R_POS_ID : pega las líneas en orden inverso con los puntos
NEXT + F4 : R_POSITION : pega las líneas en orden inverso renombrando los puntos
66
programa si las condiciones en ese momento son verdaderas. Pueden
operar con registros o con entradas y salidas.
67
21. ESTANDAR FORD CUAUTITLAN
1. DISTRIBUCION DE PROGRAMAS
La distribucion de programas puede variar dependiendo de la aplicación
del robot.
PROGRAMA MODELO APLICACION
HOME_IO Macro Todos
PG01 B299 4 Door Todas
PG02 B299 5 Door Todas
PG08 Mantenimiento Todas
PG10 Tip Dress Welding
68
PLANTILLAS
HOME_IO Programa Macro
/PROG HOME_IO Macro
1: !******************************** ;
2: !MACRO SET AT HOME I-O ;
3: !Example Housekeeping Routine ;
4: !Insert Appropriate Commands ;
5: !Where Necessary ;
6: !******************************** ;
7: ;
8: ! Call Clear of Transfer Macro ;
9: !CLR TO ADV. TRANSFER ;
10: DO[954:CLRTOADVXFR]=ON ;
11: ;
12: !CLR TO RET. TRANSFER ;
13: DO[955:CLRTORETXFR]=ON ;
14: ;
15: !CLEAR TO UNCLAMP ;
16: DO[956:CLRTOUNCLMP]=ON ;
17: ;
18: !ROBOT USER DEFINE OFF ;
19: DO[41:UDEF RBT OUT 1]=OFF ;
20: DO[42:UDEF RBT OUT 2]=OFF ;
21: DO[43:UDEF RBT OUT 3]=OFF ;
22: DO[44:UDEF RBT OUT 4]=OFF ;
23: DO[45:UDEF RBT OUT 5]=OFF ;
24: DO[46:UDEF RBT OUT 6]=OFF ;
25: DO[47:UDEF RBT OUT 7]=OFF ;
26: DO[48:UDEF RBT OUT 8]=OFF ;
27: ;
28: ;
29: DO[73:OPEN CLAMP 1]=OFF ;
69
30: DO[74:CLOSE CLAMP 1]=OFF ;
31: DO[75:OPEN CLAMP 2]=OFF ;
32: DO[76:CLOSE CLAMP 2]=OFF ;
33: DO[77:OPEN CLAMP 3]=OFF ;
34: DO[78:CLOSE CLAMP 3]=OFF ;
35: DO[79:OPEN CLAMP 4]=OFF ;
36: DO[80:CLOSE CLAMP 4]=OFF ;
37: DO[81:OPEN CLAMP 5]=OFF ;
38: DO[82:CLOSE CLAMP 5]=OFF ;
39: DO[83:OPEN CLAMP 6]=OFF ;
40: DO[84:CLOSE CLAMP 6]=OFF ;
41: DO[85:OPEN CLAMP 7]=OFF ;
42: DO[86:CLOSE CLAMP 7]=OFF ;
43: DO[87:OPEN CLAMP 8]=OFF ;
44: DO[88:CLOSE CLAMP 8]=OFF ;
45: DO[89:OPEN CLAMP 9]=OFF ;
46: DO[90:CLOSE CLAMP 9]=OFF ;
47: DO[91:OPEN CLAMP 10]=OFF ;
48: DO[92:CLOSE CLAMP 10]=OFF ;
49: ;
50: DO[959:FAULTRESET]=OFF ;
51: ;
52: DO[24:RBT IN LOOP]=OFF ;
53: DO[977]=ON ;
54: ;
55: ! AT REPAIR OFF ;
56: DO[6:RBT AT MAINT]=OFF ;
57: ;
58: DO[49:RBT @ PKUP POS 1]=OFF ;
59: DO[59:RBT AT DRP OFF 1]=OFF ;
60: DO[50:RBT @ PKUP POS 2]=OFF ;
61: DO[60:RBT AT DRP OFF 2]=OFF ;
62: DO[51:RBT @ PKUP POS 3]=OFF ;
63: DO[61:RBT AT DRP OFF 3]=OFF ;
64: DO[52:RBT @ PKUP POS 4]=OFF ;
65: DO[62:RBT AT DRP OFF 4]=OFF ;
66: ;
67: DO[177:MDL WRK POS 1]=OFF ;
68: DO[178:MDL WRK POS 2]=OFF ;
69: DO[179:MDL WRK POS 3]=OFF ;
70: DO[180:MDL WRK POS 4]=OFF ;
71: DO[181:MDL WRK POS 5]=OFF ;
72: DO[182:MDL WRK POS 6]=OFF ;
73: DO[183:MDL WRK POS 7]=OFF ;
74: DO[184:MDL WRK POS 8]=OFF ;
75: ;
76: ! Call Exit Zone Macros ;
70
77: Exit Zone(1) ;
78: Exit Zone(2) ;
79: Exit Zone(3) ;
80: Exit Zone(4) ;
81: Exit Zone(5) ;
82: Exit Zone(6) ;
83: Exit Zone(7) ;
84: Exit Zone(8) ;
85: Exit Zone(9) ;
86: Exit Zone(10) ;
87: Exit Zone(11) ;
88: Exit Zone(12) ;
89: Exit Zone(13) ;
90: Exit Zone(14) ;
91: ;
/POS
/END
71
PG01 Programa B299 4 Door (R10-2 DASH Welding)
/PROG PG01
1: !***************************** ;
2: ! FORD Cuautitlan ;
3: ! B299 4 Door ;
4: ! Dash Panel Robot 9B-10-2 ;
5: ! Spotweld ;
6: !***************************** ;
7: ! UTOOL[1]={X -480.046, ;
8: ! Y -0.924, ;
9: ! Z 810.001, ;
10: ! W -180.000 ;
11: ! R -90.000 ;
12: ! U 0.000 ;
13: !***************************** ;
14: ;
15: !Verify Program ;
16: Program Verify(1) ;
17: ;
18: !Set Robot Payload WITHOUT PART ;
19: PAYLOAD[2] ;
20: ;
21: !Set Robot UTOOL Number ;
22: UTOOL_NUM=1 ;
23: ;
24: !Set Robot UFRAME Number ;
25: UFRAME_NUM=1 ;
26: ;
27: !Setup App Specific Outputs ;
28: Setup Outputs ;
29: ;
30: !Move to Home ;
31: Go To Home Pos ;
32: ;
33: !Move to Pounce Position ;
34:J P[1:START] 100% FINE ;
35: ;
36: !Clr to Adv Xfer ;
37: DO[954:CLRTOADVXFR]=ON ;
72
38: ;
39: !Clr to Ret Xfer ;
40: DO[955:CLRTORETXFR]=ON ;
41: ;
42: !Clr to Unclamp ;
43: DO[956:CLRTOUNCLMP]=OFF ;
44: ;
45: !Wait Continue from Pounce ;
46: !or Return to Home ;
47: WAIT DI[9:START CYCLE]=ON OR DI[13:RETURN TO HOME]=ON ;
48: ;
49: !If Continue from Pounce ;
50: !jump to label ;
51: IF DI[9:START CYCLE]=ON,JMP LBL[11] ;
52: ;
53: !If Return to Home ;
54: !jump to label ;
55: IF DI[13:RETURN TO HOME]=ON,JMP LBL[12] ;
56: ;
57: !Continue from Pounce ;
58: LBL[11] ;
59: ;
60: !Clr to Return Xfer ;
61: DO[955:CLRTORETXFR]=OFF ;
62: ;
63: !Clr to Adv Xfer ;
64: DO[954:CLRTOADVXFR]=OFF ;
65: ;
66: !Enter Zone6 W/Fixture ;
67: !/Zone1 PICK R20-5 ;
68: Enter Zone(6) ;
69: ;
70: !***************************** ;
71: !Weld Path ;
72: !***************************** ;
73: !Approach Weld Position ;
74:L P[33] 2000mm/sec CNT60 ;
75:L P[2:VIA1] 2000mm/sec CNT40 ;
76:L P[3:VIA2] 1800mm/sec CNT20 ;
77:L P[5:9L003A-004] 500mm/sec CNT30
: SPOT[SD=2,P=1,S=1,ED=2] ;
78:L P[6:9L003A-001] 500mm/sec CNT30
: SPOT[SD=2,P=2,S=2,ED=2] ;
79:L P[7:9L003A-002] 500mm/sec CNT30
: SPOT[SD=2,P=3,S=3,ED=2] ;
80:L P[8:VIA4] 1000mm/sec CNT20 ;
81:L P[9:VIA5] 1000mm/sec CNT20 ;
73
82:L P[10:VIA6] 1000mm/sec CNT20 ;
83:L P[11:9C007C-016] 500mm/sec CNT30
: SPOT[SD=2,P=5,S=5,ED=2] ;
84:L P[12:VIA7] 1000mm/sec CNT20 ;
85:L P[13:VIA8] 1200mm/sec CNT20 ;
86:L P[14:VIA9] 1200mm/sec CNT20 ;
87:L P[16:9C007A-005] 500mm/sec CNT30
: SPOT[SD=2,P=6,S=6,ED=2] ;
88:L P[17:9C007A-003] 500mm/sec CNT30
: SPOT[SD=2,P=7,S=7,ED=2] ;
89:L P[18:9C007A-001] 500mm/sec CNT30
: SPOT[SD=2,P=8,S=8,ED=2] ;
90:L P[19:VIA11] 1000mm/sec CNT20 ;
91:L P[20:VIA12] 1000mm/sec CNT20 ;
92:L P[21:9C007B-010] 500mm/sec CNT30
: SPOT[SD=2,P=9,S=9,ED=2] ;
93:L P[22:9C007B-011] 500mm/sec CNT30
: SPOT[SD=2,P=10,S=10,ED=2] ;
94:L P[23:VIA13] 1000mm/sec CNT20 ;
95:L P[24:VIA14] 1800mm/sec CNT20 ;
96:L P[25:VIA15] 1800mm/sec CNT20 ;
97:L P[27:9C007A-006] 500mm/sec CNT30
: SPOT[SD=2,P=11,S=11,ED=2] ;
98:L P[28:9C007A-007] 500mm/sec CNT30
: SPOT[SD=2,P=12,S=12,ED=2] ;
99:L P[29:9C007C-014] 500mm/sec CNT30
: SPOT[SD=2,P=13,S=13,ED=2] ;
100:L P[30:VIA17] 1000mm/sec CNT20 ;
101:L P[31:VIA18] 2000mm/sec CNT60 ;
102: ;
103: !Clr to UnClamp ;
104: DO[956:CLRTOUNCLMP]=ON ;
105: ;
106:J P[32:REST] 100% FINE ;
107: ;
108: !***************************** ;
109: ;
110: !Clr to Ret Xfer ;
111: DO[955:CLRTORETXFR]=ON ;
112: ;
113: !Clr to Adv Xfer ;
114: DO[954:CLRTOADVXFR]=ON ;
115: ;
116: !Exit Zone6 W/Fixture ;
117: Exit Zone(6) ;
118: ;
119: !Return to Home ;
74
120: LBL[12] ;
121: ;
122: !Move to Home ;
123: Go To Home Pos ;
124: ;
125: !If pulled tip bypass, skip ;
126: !Calibration Routine ;
127: IF DI[961:REM NO STROK]=OFF,JMP LBL[555] ;
128: ;
129: !Call Tipwear Update ;
130: CALL TPWEARC1 ;
131: ;
132: !Label to jump to, skip calibrat ;
133: LBL[555] ;
/POS
/END
75
No Aplica para este modelo
76
43: ;
44: !If TIP ALIGN was selected ;
45: IF DI[974:TIP ALIGN CLOSE]=ON,JMP LBL[100] ;
46: ;
47: !If MANUAL WELD was selected ;
48: IF DO[967:MANUALWELD1PB]=ON,JMP LBL[101] ;
49: ;
50: ! jump back up ;
51: JMP LBL[8306] ;
52: ;
53: !TIP ALIGN ;
54: LBL[100] ;
55: ;
56: !CLOSE GUN ;
57: CALL CLSGUN ;
58: ;
59: !Wait for the button release ;
60: WAIT DI[974:TIP ALIGN CLOSE]=OFF ;
61: !Wait for the button press ;
62: WAIT DI[975:TIP ALIGN OPEN]=ON ;
63: !OPEN GUN ;
64: CALL OPNGUN ;
65: ;
66: !Wait for the button release ;
67: WAIT DI[975:TIP ALIGN OPEN]=OFF ;
68: !Wait for the button release ;
69: WAIT DI[974:TIP ALIGN CLOSE]=OFF ;
70: !Finished ALIGN Jump Back ;
71: JMP LBL[8306] ;
72: ;
73: !Simple Weld, ;
74: LBL[101] ;
75: ;
76: !Save the man. wld. schedule ;
77: R[4:Weld Sched Num]=GO[7:MANUALWELDW1BITS] ;
78: ;
79: !Weld with part thickness 0 ;
80: !And manual weld schedule ;
81: SPOT[SD=2,P=96,S=R[4],ED=12] ;
82: ;
83: !Wait for the button release ;
84: WAIT DI[976:MANUALWELD1PB]=OFF ;
85: !Done welding, jump back up ;
86: JMP LBL[8306] ;
87: ;
88: !Maintenance clear ;
89: LBL[7] ;
77
90: ;
91: DO[936:STEPPERRST1]=PULSE,1.0sec ;
92: ;
93: JMP LBL[9] ;
94: ;
95: !Maintenance clear ;
96: LBL[8] ;
97: ;
98: IF DI[120:TD BYPASSED 1]=ON,JMP LBL[7] ;
99: ;
100: !Maintenance clear (TD Bypass) ;
101: LBL[9] ;
102: ;
103: !If pulled tip bypass, skip ;
104: !Calibration Routine ;
105: IF DI[961:REM NO STROK]=OFF,JMP LBL[555] ;
106: ;
107: !Call tip wear compensation macro ;
108: CALL TPWEARC1 ;
109: ;
110: !Label to jump to, skip calibrat ;
111: LBL[555] ;
112: ;
113: !Depart pos. ;
114: !Maint Position OFF ;
115: DO[6:RBT AT MAINT]=OFF ;
116: ;
117: !Set Number of retries ;
118: CALL WELD1DIS ;
119: ;
120: !Move to Home ;
121: Go To Home Pos ;
/POS
/END
78
8: !Verify Program ;
9: Program Verify(10) ;
10: ;
11: !Set Robot Payload WITHOUT PART ;
12: PAYLOAD[2] ;
13: ;
14: !Set Robot UTOOL Number ;
15: UTOOL_NUM=1 ;
16: ;
17: !Set Robot UFRAME Number ;
18: UFRAME_NUM=1 ;
19: ;
20: !Setup App Specific Outputs ;
21: Setup Outputs ;
22: ;
23: !Move to Home ;
24: Go To Home Pos ;
25: ;
26: !Approach Position ;
27:J P[1] 50% CNT60 ;
28:J P[2] 50% CNT40 ;
29:L P[3] 500mm/sec FINE ;
30: ;
31: !Move Fix Tip Dress Pos ;
32:L P[4:At Tip Dress] 500mm/sec FINE ;
33: ;
34: !Macro for Tip Dress ;
35: CALL CGTDMAC(95) ;
36: ;
37: !Move Fix Tip up, ;
38: !under Tip Dress ;
39:L P[3] 500mm/sec FINE ;
40: ;
41: !Depart Position ;
42:L P[7] 500mm/sec CNT20 ;
43:J P[8] 50% CNT50 ;
44:J P[9] 50% CNT80 ;
45: ;
46: !Reset Dress Req ;
47: DO[936:STEPPERRST1]=PULSE,1.0sec ;
48: ;
49: !Wait for Maint Clear ;
50: WAIT DI[7:MAINT POS CLR]=ON ;
51: ;
52: !Move to Home ;
53: Go To Home Pos ;
54: ;
79
55: !If pulled tip bypass, skip ;
56: !Calibration Routine ;
57: IF DI[961:REM NO STROK]=OFF,JMP LBL[555] ;
58: ;
59: !Call tip wear compensation macro ;
60: CALL TPWEARC1 ;
61: ;
62: !Label to jump to, skip calibrat ;
63: LBL[555] ;
64: ;
/POS
/END
80
1: !******************************** ;
2: !ENTER ZONE ;
3: !******************************** ;
4: ;
5: !Save the argument that was ;
6: ! passed to the program into ;
7: ! register R[151] ;
8: ! i.e. Enter Zone(5) will set ;
9: ! R[151]=5 ;
10: R[151]=AR[1] ;
11: ;
12: !Depending on what the value of ;
13: ! R[151], jump to the different ;
14: ! subroutine ;
15: SELECT R[151]=1,JMP LBL[10] ;
16: =2,JMP LBL[20] ;
17: =3,JMP LBL[30] ;
18: =4,JMP LBL[40] ;
19: =5,JMP LBL[50] ;
20: =6,JMP LBL[60] ;
21: =7,JMP LBL[70] ;
22: =8,JMP LBL[80] ;
23: =9,JMP LBL[90] ;
24: =10,JMP LBL[100] ;
25: =11,JMP LBL[110] ;
26: =12,JMP LBL[120] ;
27: =13,JMP LBL[130] ;
28: =14,JMP LBL[140] ;
29: ELSE,JMP LBL[220] ;
30: ;
31: !-------------------------------- ;
32: !ZONE 1 ;
33: !-------------------------------- ;
34: LBL[10] ;
35: ;
36: ! ClearZone1 = ON ;
37: DO[900:CLROFZONE1]=ON ;
38: ;
39: ! Wait for Zone1Clear = OFF ;
40: WAIT DI[25:ZONE 1 CLR]=OFF ;
41: ;
42: ! ClearZone1 = OFF ;
43: DO[900:CLROFZONE1]=OFF ;
44: ;
45: ! If Zone1Clear = ON, loop again ;
46: IF DI[25:ZONE 1 CLR]=ON,JMP LBL[10] ;
47: ;
81
48: ! Wait for Zone1Clear = ON ;
49: WAIT DI[25:ZONE 1 CLR]=ON ;
50: ;
51: ! If Zone1Clear = OFF, loop again ;
52: IF DI[25:ZONE 1 CLR]=OFF,JMP LBL[10] ;
53: ;
54: ! Jump to the end of program ;
55: JMP LBL[200] ;
56: ;
57: !-------------------------------- ;
58: !ZONE 2 ;
59: !-------------------------------- ;
60: LBL[20] ;
61: ;
62: ! ClearZone2 = ON ;
63: DO[901:CLROFZONE2]=ON ;
64: ;
65: ! Wait for Zone2Clear = OFF ;
66: WAIT DI[26:ZONE 2 CLR]=OFF ;
67: ;
68: ! ClearZone2 = OFF ;
69: DO[901:CLROFZONE2]=OFF ;
70: ;
71: ! If Zone2Clear = ON, loop again ;
72: IF DI[26:ZONE 2 CLR]=ON,JMP LBL[20] ;
73: ;
74: ! Wait for Zone2Clear = ON ;
75: WAIT DI[26:ZONE 2 CLR]=ON ;
76: ;
77: ! If Zone2Clear = OFF, loop again ;
78: IF DI[26:ZONE 2 CLR]=OFF,JMP LBL[20] ;
79: ;
80: ! Jump to the end of program ;
81: JMP LBL[200] ;
82: !-------------------------------- ;
83: !ZONE 3 ;
84: !-------------------------------- ;
85: LBL[30] ;
86: ;
87: ! ClearZone3 = ON ;
88: DO[902:CLROFZONE3]=ON ;
89: ;
90: ! Wait for Zone3Clear = OFF ;
91: WAIT DI[27:ZONE 3 CLR]=OFF ;
92: ;
93: ! ClearZone3 = OFF ;
94: DO[902:CLROFZONE3]=OFF ;
82
95: ;
96: ! If Zone3Clear = ON, loop again ;
97: IF DI[27:ZONE 3 CLR]=ON,JMP LBL[30] ;
98: ;
99: ! Wait for Zone3Clear = ON ;
100: WAIT DI[27:ZONE 3 CLR]=ON ;
101: ;
102: ! If Zone3Clear = OFF, loop again ;
103: IF DI[27:ZONE 3 CLR]=OFF,JMP LBL[30] ;
104: ;
105: ! Jump to the end of program ;
106: JMP LBL[200] ;
107: ;
108: !-------------------------------- ;
109: !ZONE 4 ;
110: !-------------------------------- ;
111: LBL[40] ;
112: ;
113: ! ClearZone4 = ON ;
114: DO[903:CLROFZONE4]=ON ;
115: ;
116: ! Wait for Zone4Clear = OFF ;
117: WAIT DI[28:ZONE 4 CLR]=OFF ;
118: ;
119: ! ClearZone4 = OFF ;
120: DO[903:CLROFZONE4]=OFF ;
121: ;
122: ! If Zone4Clear = ON, loop again ;
123: IF DI[28:ZONE 4 CLR]=ON,JMP LBL[40] ;
124: ;
125: ! Wait for Zone4Clear = ON ;
126: WAIT DI[28:ZONE 4 CLR]=ON ;
127: ;
128: ! If Zone4Clear = OFF, loop again ;
129: IF DI[28:ZONE 4 CLR]=OFF,JMP LBL[40] ;
130: ;
131: ! Jump to the end of program ;
132: JMP LBL[200] ;
133: !-------------------------------- ;
134: !ZONE 5 ;
135: !-------------------------------- ;
136: LBL[50] ;
137: ;
138: ! ClearZone5 = ON ;
139: DO[904:CLROFZONE5]=ON ;
140: ;
141: ! Wait for Zone5Clear = OFF ;
83
142: WAIT DI[29:ZONE 5 CLR]=OFF ;
143: ;
144: ! ClearZone5 = OFF ;
145: DO[904:CLROFZONE5]=OFF ;
146: ;
147: ! If Zone5Clear = ON, loop again ;
148: IF DI[29:ZONE 5 CLR]=ON,JMP LBL[50] ;
149: ;
150: ! Wait for Zone5Clear = ON ;
151: WAIT DI[29:ZONE 5 CLR]=ON ;
152: ;
153: ! If Zone5Clear = OFF, loop again ;
154: IF DI[29:ZONE 5 CLR]=OFF,JMP LBL[50] ;
155: ;
156: ! Jump to the end of program ;
157: JMP LBL[200] ;
158: !-------------------------------- ;
159: !ZONE 6 ;
160: !-------------------------------- ;
161: LBL[60] ;
162: ;
163: ! ClearZone6 = ON ;
164: DO[905:CLROFZONE6]=ON ;
165: ;
166: ! Wait for Zone6Clear = OFF ;
167: WAIT DI[30:ZONE 6 CLR]=OFF ;
168: ;
169: ! ClearZone6 = OFF ;
170: DO[905:CLROFZONE6]=OFF ;
171: ;
172: ! If Zone6Clear = ON, loop again ;
173: IF DI[30:ZONE 6 CLR]=ON,JMP LBL[60] ;
174: ;
175: ! Wait for Zone6Clear = ON ;
176: WAIT DI[30:ZONE 6 CLR]=ON ;
177: ;
178: ! If Zone6Clear = OFF, loop again ;
179: IF DI[30:ZONE 6 CLR]=OFF,JMP LBL[60] ;
180: ;
181: ! Jump to the end of program ;
182: JMP LBL[200] ;
183: !-------------------------------- ;
184: !ZONE 7 ;
185: !-------------------------------- ;
186: LBL[70] ;
187: ;
188: ! ClearZone7 = ON ;
84
189: DO[906:CLROFZONE7]=ON ;
190: ;
191: ! Wait for Zone7Clear = OFF ;
192: WAIT DI[31:ZONE 7 CLR]=OFF ;
193: ;
194: ! ClearZone7 = OFF ;
195: DO[906:CLROFZONE7]=OFF ;
196: ;
197: ! If Zone7Clear = ON, loop again ;
198: IF DI[31:ZONE 7 CLR]=ON,JMP LBL[70] ;
199: ;
200: ! Wait for Zone7Clear = ON ;
201: WAIT DI[31:ZONE 7 CLR]=ON ;
202: ;
203: ! If Zone7Clear = OFF, loop again ;
204: IF DI[31:ZONE 7 CLR]=OFF,JMP LBL[70] ;
205: ;
206: ! Jump to the end of program ;
207: JMP LBL[200] ;
208: !-------------------------------- ;
209: !ZONE 8 ;
210: !-------------------------------- ;
211: LBL[80] ;
212: ;
213: ! ClearZone8 = ON ;
214: DO[907:CLROFZONE8]=ON ;
215: ;
216: ! Wait for Zone8Clear = OFF ;
217: WAIT DI[32:ZONE 8 CLR]=OFF ;
218: ;
219: ! ClearZone8 = OFF ;
220: DO[907:CLROFZONE8]=OFF ;
221: ;
222: ! If Zone8Clear = ON, loop again ;
223: IF DI[32:ZONE 8 CLR]=ON,JMP LBL[80] ;
224: ;
225: ! Wait for Zone8Clear = ON ;
226: WAIT DI[32:ZONE 8 CLR]=ON ;
227: ;
228: ! If Zone8Clear = OFF, loop again ;
229: IF DI[32:ZONE 8 CLR]=OFF,JMP LBL[80] ;
230: ;
231: ! Jump to the end of program ;
232: JMP LBL[200] ;
233: !-------------------------------- ;
234: !ZONE 9 ;
235: !-------------------------------- ;
85
236: LBL[90] ;
237: ;
238: ! ClearZone9 = ON ;
239: DO[908:CLROFZONE9]=ON ;
240: ;
241: ! Wait for Zone9Clear = OFF ;
242: WAIT DI[33:ZONE 9 CLR]=OFF ;
243: ;
244: ! ClearZone9 = OFF ;
245: DO[908:CLROFZONE9]=OFF ;
246: ;
247: ! If Zone9Clear = ON, loop again ;
248: IF DI[33:ZONE 9 CLR]=ON,JMP LBL[90] ;
249: ;
250: ! Wait for Zone9Clear = ON ;
251: WAIT DI[33:ZONE 9 CLR]=ON ;
252: ;
253: ! If Zone9Clear = OFF, loop again ;
254: IF DI[33:ZONE 9 CLR]=OFF,JMP LBL[90] ;
255: ;
256: ! Jump to the end of program ;
257: JMP LBL[200] ;
258: !-------------------------------- ;
259: !ZONE 10 ;
260: !-------------------------------- ;
261: LBL[100] ;
262: ;
263: ! ClearZone10 = ON ;
264: DO[909:CLROFZONE10]=ON ;
265: ;
266: ! Wait for Zone10Clear = OFF ;
267: WAIT DI[34:ZONE 10 CLR]=OFF ;
268: ;
269: ! ClearZone10 = OFF ;
270: DO[909:CLROFZONE10]=OFF ;
271: ;
272: ! If Zone10Clear = ON, loop again ;
273: IF DI[34:ZONE 10 CLR]=ON,JMP LBL[100] ;
274: ;
275: ! Wait for Zone10Clear = ON ;
276: WAIT DI[34:ZONE 10 CLR]=ON ;
277: ;
278: ! If Zone10Clear = OFF, loop agai ;
279: IF DI[34:ZONE 10 CLR]=OFF,JMP LBL[100] ;
280: ;
281: ! Jump to the end of program ;
282: JMP LBL[200] ;
86
283: !-------------------------------- ;
284: !ZONE 11 ;
285: !-------------------------------- ;
286: LBL[110] ;
287: ;
288: ! ClearZone11 = ON ;
289: DO[910:CLROFZONE11]=ON ;
290: ;
291: ! Wait for Zone11Clear = OFF ;
292: WAIT DI[35:ZONE 11 CLR]=OFF ;
293: ;
294: ! ClearZone11 = OFF ;
295: DO[910:CLROFZONE11]=OFF ;
296: ;
297: ! If Zone11Clear = ON, loop again ;
298: IF DI[35:ZONE 11 CLR]=ON,JMP LBL[110] ;
299: ;
300: ! Wait for Zone11Clear = ON ;
301: WAIT DI[35:ZONE 11 CLR]=ON ;
302: ;
303: ! If Zone11Clear = OFF, loop agai ;
304: IF DI[35:ZONE 11 CLR]=OFF,JMP LBL[110] ;
305: ;
306: ! Jump to the end of program ;
307: JMP LBL[200] ;
308: !-------------------------------- ;
309: !ZONE 12 ;
310: !-------------------------------- ;
311: LBL[120] ;
312: ;
313: ! ClearZone12 = ON ;
314: DO[911:CLROFZONE12]=ON ;
315: ;
316: ! Wait for Zone12Clear = OFF ;
317: WAIT DI[36:ZONE 12 CLR]=OFF ;
318: ;
319: ! ClearZone12 = OFF ;
320: DO[911:CLROFZONE12]=OFF ;
321: ;
322: ! If Zone12Clear = ON, loop again ;
323: IF DI[36:ZONE 12 CLR]=ON,JMP LBL[120] ;
324: ;
325: ! Wait for Zone12Clear = ON ;
326: WAIT DI[36:ZONE 12 CLR]=ON ;
327: ;
328: ! If Zone12Clear = OFF, loop agai ;
329: IF DI[36:ZONE 12 CLR]=OFF,JMP LBL[120] ;
87
330: ;
331: ! Jump to the end of program ;
332: JMP LBL[200] ;
333: !-------------------------------- ;
334: !ZONE 13 ;
335: !-------------------------------- ;
336: LBL[130] ;
337: ;
338: ! ClearZone13 = ON ;
339: DO[912:CLROFZONE13]=ON ;
340: ;
341: ! Wait for Zone13Clear = OFF ;
342: WAIT DI[37:ZONE 13 CLR]=OFF ;
343: ;
344: ! ClearZone13 = OFF ;
345: DO[912:CLROFZONE13]=OFF ;
346: ;
347: ! If Zone13Clear = ON, loop again ;
348: IF DI[37:ZONE 13 CLR]=ON,JMP LBL[130] ;
349: ;
350: ! Wait for Zone13Clear = ON ;
351: WAIT DI[37:ZONE 13 CLR]=ON ;
352: ;
353: ! If Zone13Clear = OFF, loop agai ;
354: IF DI[37:ZONE 13 CLR]=OFF,JMP LBL[130] ;
355: ;
356: ! Jump to the end of program ;
357: JMP LBL[200] ;
358: !-------------------------------- ;
359: !ZONE 14 ;
360: !-------------------------------- ;
361: LBL[140] ;
362: ;
363: ! ClearZone14 = ON ;
364: DO[933:CLROFZONE14]=ON ;
365: ;
366: ! Wait for Zone14Clear = OFF ;
367: WAIT DI[38:ZONE 14 CLR]=OFF ;
368: ;
369: ! ClearZone14 = OFF ;
370: DO[933:CLROFZONE14]=OFF ;
371: ;
372: ! If Zone14Clear = ON, loop again ;
373: IF DI[38:ZONE 14 CLR]=ON,JMP LBL[140] ;
374: ;
375: ! Wait for Zone14Clear = ON ;
376: WAIT DI[38:ZONE 14 CLR]=ON ;
88
377: ;
378: ! If Zone14Clear = OFF, loop agai ;
379: IF DI[38:ZONE 14 CLR]=OFF,JMP LBL[140] ;
380: ;
381: ! Jump to the end of program ;
382: JMP LBL[200] ;
383: ;
384: !-------------------------------- ;
385: !NO VALID ZONE ;
386: !-------------------------------- ;
387: LBL[220] ;
388: UALM[1] ;
389: PAUSE ;
390: JMP LBL[220] ;
391: ;
392: ! End of program ;
393: LBL[200] ;
/POS
/END
89
22.1.2 MACRO PARA SALIR DE ZONA.
/PROG EXITZONE Macro
1: !******************************** ;
2: !EXIT ZONE ;
3: !******************************** ;
4: ;
5: !Save the argument that was ;
6: ! passed to the program into ;
7: ! register R[151] ;
8: ! i.e. Exit Zone(5) will set ;
9: ! R[151]=5 ;
10: R[151]=AR[1] ;
11: ;
12: !Depending on what the value of ;
13: ! R[151], jump to the different ;
14: ! subroutine ;
15: SELECT R[151]=1,JMP LBL[10] ;
16: =2,JMP LBL[20] ;
17: =3,JMP LBL[30] ;
18: =4,JMP LBL[40] ;
19: =5,JMP LBL[50] ;
20: =6,JMP LBL[60] ;
21: =7,JMP LBL[70] ;
22: =8,JMP LBL[80] ;
23: =9,JMP LBL[90] ;
24: =10,JMP LBL[100] ;
25: =11,JMP LBL[110] ;
26: =12,JMP LBL[120] ;
27: =13,JMP LBL[130] ;
28: =14,JMP LBL[140] ;
29: ELSE,JMP LBL[200] ;
30: ;
31: !-------------------------------- ;
32: !ZONE 1 ;
90
33: !-------------------------------- ;
34: LBL[10] ;
35: ;
36: ! ClearZone1 = ON ;
37: DO[900:CLROFZONE1]=ON ;
38: ;
39: ! Jump to the end of program ;
40: JMP LBL[200] ;
41: ;
42: !-------------------------------- ;
43: !ZONE 2 ;
44: !-------------------------------- ;
45: LBL[20] ;
46: ;
47: ! ClearZone2 = ON ;
48: DO[901:CLROFZONE2]=ON ;
49: ;
50: ! Jump to the end of program ;
51: JMP LBL[200] ;
52: ;
53: !-------------------------------- ;
54: !ZONE 3 ;
55: !-------------------------------- ;
56: LBL[30] ;
57: ;
58: ! ClearZone3 = ON ;
59: DO[902:CLROFZONE3]=ON ;
60: ;
61: ! Jump to the end of program ;
62: JMP LBL[200] ;
63: ;
64: !-------------------------------- ;
65: !ZONE 4 ;
66: !-------------------------------- ;
67: LBL[40] ;
68: ;
69: ! ClearZone4 = ON ;
70: DO[903:CLROFZONE4]=ON ;
71: ;
72: ! Jump to the end of program ;
73: JMP LBL[200] ;
74: ;
75: !-------------------------------- ;
76: !ZONE 5 ;
77: !-------------------------------- ;
78: LBL[50] ;
79: ;
91
80: ! ClearZone5 = ON ;
81: DO[904:CLROFZONE5]=ON ;
82: ;
83: ! Jump to the end of program ;
84: JMP LBL[200] ;
85: ;
86: !-------------------------------- ;
87: !ZONE 6 ;
88: !-------------------------------- ;
89: LBL[60] ;
90: ;
91: ! ClearZone6 = ON ;
92: DO[905:CLROFZONE6]=ON ;
93: ;
94: ! Jump to the end of program ;
95: JMP LBL[200] ;
96: ;
97: !-------------------------------- ;
98: !ZONE 7 ;
99: !-------------------------------- ;
100: LBL[70] ;
101: ;
102: ! ClearZone7 = ON ;
103: DO[906:CLROFZONE7]=ON ;
104: ;
105: ! Jump to the end of program ;
106: JMP LBL[200] ;
107: ;
108: !-------------------------------- ;
109: !ZONE 8 ;
110: !-------------------------------- ;
111: LBL[80] ;
112: ;
113: ! ClearZone8 = ON ;
114: DO[907:CLROFZONE8]=ON ;
115: ;
116: ! Jump to the end of program ;
117: JMP LBL[200] ;
118: ;
119: !-------------------------------- ;
120: !ZONE 9 ;
121: !-------------------------------- ;
122: LBL[90] ;
123: ;
124: ! ClearZone9 = ON ;
125: DO[908:CLROFZONE9]=ON ;
126: ;
92
127: ! Jump to the end of program ;
128: JMP LBL[200] ;
129: ;
130: !-------------------------------- ;
131: !ZONE 10 ;
132: !-------------------------------- ;
133: LBL[100] ;
134: ;
135: ! ClearZone10 = ON ;
136: DO[909:CLROFZONE10]=ON ;
137: ;
138: ! Jump to the end of program ;
139: JMP LBL[200] ;
140: ;
141: !-------------------------------- ;
142: !ZONE 11 ;
143: !-------------------------------- ;
144: LBL[110] ;
145: ;
146: ! ClearZone11 = ON ;
147: DO[910:CLROFZONE11]=ON ;
148: ;
149: ! Jump to the end of program ;
150: JMP LBL[200] ;
151: ;
152: !-------------------------------- ;
153: !ZONE 12 ;
154: !-------------------------------- ;
155: LBL[120] ;
156: ;
157: ! ClearZone12 = ON ;
158: DO[911:CLROFZONE12]=ON ;
159: ;
160: ! Jump to the end of program ;
161: JMP LBL[200] ;
162: ;
163: !-------------------------------- ;
164: !ZONE 13 ;
165: !-------------------------------- ;
166: LBL[130] ;
167: ;
168: ! ClearZone12 = ON ;
169: DO[912:CLROFZONE13]=ON ;
170: ;
171: ! Jump to the end of program ;
172: JMP LBL[200] ;
173: ;
93
174: !-------------------------------- ;
175: !ZONE 14 ;
176: !-------------------------------- ;
177: LBL[140] ;
178: ;
179: ! ClearZone14 = ON ;
180: DO[933:CLROFZONE14]=ON ;
181: ;
182: ! Jump to the end of program ;
183: JMP LBL[200] ;
184: ;
185: !-------------------------------- ;
186: ;
187: LBL[200] ;
188: ;
/POS
/END
94
22.2 DISTRIBUCION DE ZONAS
El estándar de Chrysler distribuye las zonas de las siguientes formas.
95
22.2.1 Estación con robots de Manejo de Materiales
96
Antes de iniciar el CUSTOMIZADO del Robot es necesario contar con los
archivos del CUSTOM a utilizar, en algún dispositivo de almacenamiento.
Este procedimiento no es muy común realizarlo ya que los robots vienen
customizados por el proveedor y consta de varios procedimientos según
la aplicación.
97
2. Non Servo Weld + Aplicación
3. MH Application Only (Solo Material Handing) 10
4. Seal + Application (Sello)
10
MATERIAL HANDING
24. Seleccionar 3. MH Application Only y presionar ENTER.
25. Aparecerá una Nota, si es Material Handing presionar ENTER.
26. Seleccionar si tiene otra aplicación (Nut, Stud, etc.)
27. Presionar ENTER.
28. Seleccionar 0 FINALIZTION.
29. Application has a Tool Changer seleccionar y presionar ENTER, según
caso.
30. Érase Current I/O Config, seleccionar YES y presionar ENTER.
31. Setup I/O Comments, seleccionar YES y presionar ENTER.
32. Setup I/O Config, seleccionar YES y presionar ENTER.
33. Setup Ethernet Parameter, seleccionar YES y presionar ENTER.
34. Load From Media, seleccionar YES y presionar ENTER.
35. Presionar la tecla FNTC.
36. Seleccionar la opción 1. START COLD esto reseteara el controlador.
Y quedara cuztomizado el robot.
20
WELDING SPOT.
24. Seleccionar 1. Servo Weld + Application y presionar ENTER.
25. Does Robot Have a MH Application, seleccionar NO y presionar ENTER.
27. Weld Application, seleccionar Carried Spot (1) SWG y presionar ENTER.
28. Weld Controller, seleccionar (1) Bosch Single y presionar ENTER.
29. AC/DC Weld Controller, seleccionar DC y presionar ENTER.
30. Water Saver Configuration, seleccionar 0 y presionar ENTER.
31. Weld Ethernet IP Configuration, seleccionar 0 y presionar ENTER.
32. Set Servo Gun Backup Schedule Default, seleccionar YES y presionar
ENTER.
33. If you run the Servo Gun Parameters, seleccionar YES y presionar
ENTER.
34. Gun #1 Seg Compensation, seleccionar YES y presionar ENTER.
35. Gun #1 Seg Compensation, seleccionar Maxim Force y presionar
ENTER.
98
40. Erase Current I/O Config, seleccionar YES y presionar ENTER.
41. Setup I/O Comments, seleccionar YES y presionar ENTER.
42. Setup I/O Config, seleccionar YES y presionar ENTER.
43. Setup Ethernet Parameter, seleccionar YES y presionar ENTER.
44. Load From Media, seleccionar YES y presionar ENTER.
99
8. Sin soltar motores presionar F4 EXEC.
9. Pregunta Execute Mater New Tips? presionar la tecla F4 YES.
10. Finalmente aparece el siguiente mensaje: Gun is Masterizated &
Calibated. Do Servo Auto Tuning.
ENTER.
12. En la opción Enter Close Limit Here (Mm.), asignar 10mm y presionar
ENTER.
13. Presionar la tecla F3 COMP y despliega mensaje Setting Tip
Displasamen.
14. Presionar la tecla FNCTN.
15. Seleccionar 0 NEXT.
16. Seleccionar 8. Cycle Power.
17. Seleccionar YES,
18. Presionar ENTER, esto reseteara el controlador.
100
19. Al establecerse el equipo ponerlo en condiciones de modo
automático.
20. Seleccionar la opción 3. Auto Tune.
21. Presionar la tecla SHIFT + F3 EXEC simultáneamente y comenzara el
proceso de Auto Tuning.
22. Al finalizar de desplegara mensaje Tuning exercises will begin and
servo parameters will change.
23. Pregunta Are you sure you went to do this?. Seleccionar YES y
presionar ENTER.
101
9. Asignar un porcentaje de presión al primer valor tomando en cuenta
que buscamos llegar a Max Force 850 lbf. Ejemplo 5%.
10. Habilitando los motores y presionando las teclas SHIFT + F3 PRESSURE
simultáneamente, se cerrara la pinza hará ejercer la presión, si no es
razonable el valor volvemos a intentar otro valor y repetimos la
operación.
11. Continuar con este proceso hasta llegar al valor máximo de presión
de nuestra pinza.
12. Presionar la tecla PREV.
13. Posicionarte en la opción Max Fressure (lbs), colocamos el valor
máximo de nuestra tabla sin olvidar el que tiene actualmente.
14. Seleccionar DETAIL y presionar ENTER.
15. Pregunta Do you want to start calibration?, seleccionamos YES y
presionamos la tecla ENTER.
16. Al finalizar proceso Calibration Status seleccionamos F4 COMP y
presionamos la tecla F2 END.
102
4. Seleccionar Set Device y presionar ENTER.
5. Seleccionar periférico.
6. Presionar F1: FILE y seleccionar 1 FILES.
7. Seleccionar la carpeta MACRO en nuestro dispositivo y presionar
ENTER.
8. Seleccionar *TP (all program).
9. Presionar F1 LOAD e ir sobrescribiendo todos los archivos.
10. Presionar la tecla SELEC o EDIT para terminar el proceso.
103
23.10 REALIZAR PAYLOAD.
Este proceso se realiza para calcular el peso que va a manejar nuestro
robot. Deben de realizarse los payload que sena necesarios.
1. Presionar la tecla MENU.
2. Seleccionar NEXT.
3. Seleccionar SYSTEM y seleccionamos MOTION, y presionamos ENTER.
4. Seleccionamos el numero de Payload a utilizar, en el No. 1 deben de
aparecer los valores que vienen de fabrica.
5. Presionar la tecla NEXT.
6. Presionar la tecla F2 IDENT.
7. Presionar la tecla NEXT.
8. Presionar la tecla F4 DETAIL, despliega la pantalla de ID Pos1.
9. Habilitando los motores mover los ejes 1, 2 y 3 del robot a 0s o a una
posición donde no vaya a tener interferencia nuestra rutina.
10. Ya definida la posición rotar solamente los ejes 5 y 6 a 45°
aproximadamente.
11. Presionar la tecla F5 RECORD.
12. Presionar la tecla F2 Pos2 ID, para cambiar a la pantalla del ID Pos2.
13. Habilitando los motores mover los ejes 5 y 6 a 45° aproximadamente al
contrario de los anteriores.
14. Presionar la tecla F5 RECORD.
15. Habilitando los motores y presionando la tecla F2 Pos1 ID, a baja
velocidad el robot se moverá a la ID Pos1, para validar que no haya
interferencias en la trayectoria.
16. Se realiza el mismo proceso para el ID Pos2 y se regresa al ID Pos1, si
esta OK continuamos si NO OK repetir pasos 9 al 16.
17. Presionar la tecla PREV.
18. Posicionarte en la opción 4 Calibration Status, y poner el robot en
condiciones de AUTO.
19. Presionar la tecla F4. EXEC.
20. Desplegara mensaje Robot moves and estimates seleccionar F4 YES y
realiza el calculo de Payload al 100% de velocidad.
21. Al finalizar proceso presionar F5 Apply.
22. Pregunta Path and Cycle time will change. Set it?, seleccionar F4 YES.
104
6. Colocarte en la opción Bend Rafe y asignarle el valor que debe estar
en la placa de nuestra pinza y presionar ENTER.
24.2 MASTERIZACION.
La masterización asocia el ángulo existente entre las marcas móviles y las
marcas fijas de cada eje respectivamente con los pulsos generados en
los encoders absolutos (APC = encoder absoluto), los cuales están
mecánicamente acoplados al eje de cada motor. La posición actual del
robot es determinada por los pulsos de los encoders.
105
Hay que tener cuidado antes de mazterizar y verificar la compensación
de movimientos.
106
E) SET QUICK MASTER REF Graba la posición de referencia para una
masterización rápida.
107
2. Presionar la tecla MENU.
3. Seleccionar NEXT.
4. Seleccionar SYSTEM y seleccionamos TYPE.
5. Posicionarte en la opción Master Cal y presionar la tecla ENTER.
6. Seleccionar la opción de Zero Position Master, después presionar la
tecla F4 Yes, aparecerán los valores de los encoders de la posición
actual)
7. Seleccionar la opción de Calíbrate, después presionar la tecla F4 Yes.
Se realiza la interpolación de los pulsos actuales a grados de posición
actual para definir el cero mecánico y establecer el cero en marcas
8. Presionar la tecla F5 DONE para terminar proceso.
108
Es conveniente realizar un programa ZERO, grabando un punto al azar y
cambiando sus coordenadas en JOINT a cero grados para todos los ejes.
Ejecutarlo y comprobar que el robot se posiciona correctamente en
marca y así ya tendríamos nuestro programa ZERO.
109