Registros y registros de posición en Fanuc Robótica
Contenido, directo a lo que necesitas:
- Que son los registros en fanuc robótica ?
- Los registros en fanuc robótica
- Insertar un registro en un programa en fanuc
- Posibles operaciones aritméticas en un registro.
- Los registros de posición en fanuc robótica
- Insertar un registro de posición en un programa en fanuc
- Acceso por parámetro independiente en registros de posición
- Posibles operaciones aritméticas en un registro de posición.
1.Que son los registros en fanuc robótica?
Son variables donde guardar, recibir, almacenar, operar, gestionar… tanto números como posiciones del robot.
Son una maravilla, muy útiles y puedes aplicarlo para guardar velocidades, crear offsets, guardar contadores de piezas, guardar operaciones aritméticas, asociarlo a entradas para recibir datos del PLC, etc.
Hay dos tipos de registros en fanuc:
- Los registros: real (32 bits) o entero
- Los registros de posición:
- puntos en coordenadas
- puntos en joint
- puntos en puntos en coordenadas cartesianas
- puntos en matrices.
Estas son variables globales (todos los programas tienen acceso a todos los registros y registros de posición).
2.Los registros en fanuc:
Los registros: real (32 bits) o entero
Los registros de posición: puntos en coordenadas joint, puntos en coordenadas cartesianas o matrices.
Hay un máximo de 256 (configurables), por defecto vienen 32 registros. Si necesitas más hay que configurarlos.
Para visualizar la lista de registros y su contenido con el botón → DATA → F1: [TYPE] → Registers. Puedes verlos desde cualquier punto no es necesario que estés dentro de un programa.
Estas son variables globales (todos los programas tienen acceso a todos los registros y registros de posición).
2.1.Insertar un registro en un programa en fanuc
Para poder insertar un registro tienes que tener el programa creado y abierto para editar. Si estas dentro del programa justo debajo en F1 arriba en la pantalla tiene que poner INST. Si pone Point tienes que dar al botón Next. Ya puedes empezar.
Para insertar en un programa un registro → F1: [INST] → Registers.
Cuando damos a registros, nos da la opción de que queremos hacer, lo mas sencillo es igualar a una contante o otro registro.
Seleccionamos la primera opción y escogemos registo.
Podemos escoger tanto a un lado como otro del igual si queremos coger una constante, si es la primera vez que lo hacer pon dos contantes y vas probando poco a poco.
Un registro debe ser comentado con un nombre. Es una mala práctica no hacerlo.
El direccionamiento puede ser:
- Directo
R[ 1 ] = 2 → el valor es guardado directamente en R[ 1 ]
- 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.
2.2.Posibles operaciones aritméticas en un registro.
R[ n ] = [valor] [operador] [valor]
El [operador] puede ser:
- una resta (-)
- una suma (+)
- 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 ]
En las siguientes instrucciones de un programa tiene ejemplos de posibles usos de los registros, esto te inspirara sino los has usado nunca aunque es normal que al principio te sature.
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] ; 32: AO[1]=R[28] ; 33: AO[2]=R[29] ; 34: ; 35: !CONTROL ESTIRAJE ; 36: CALL ESTIRAJE ; 37: ; 38: !CONTROL TIEMPO ROTURA FILM ; 39: !FUNCION VELOCIDAD DE TRABAJO ; 40: R[31]=R[30] DIV R[23] ; 41: $WAITTMOUT=R[31] ; | 10: DO[23:CAJA COG. L1]=PULSE,0.5sec ; 11: DO[31:ULTIMO V.L1]=PULSE,0.5sec ; 12: DO[25:FIN PALET L1]=PULSE,0.5sec ; 13: R[4:CONT. CAPAS L1]=0 ; 14: R[5:CONT. CICLOS L1]=0 ; 15: R[6:TRABAJANDO EN L1]=0 ; 16: R[7:CARTON COGIDO L1]=0 ; 17: R[8:CARTON PUESTO L1]=0 ; 18: DO[29:RECHAZADO L1]=PULSE,0.5sec ; 19: WAIT 1.00(sec) ; |
3.Los registros de posición en Fanuc
Los registros de posición guardan las tres coordenadas (X,Y,Z) y las tres rotaciones de un punto(RX,RY,RZ).
- Los registros de posición pueden ser:
- puntos en coordenadas
- puntos en joint
- puntos en puntos en coordenadas cartesianas
- puntos en matrices.
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.
2.1.Insertar un registro de posición en un programa en fanuc
Igual que en los registros programa creado y en posición de editar.
Para insertar en un programa → F1: [INST] → Registers
Para visualizar la lista de registros y su contenido → DATA → F1: [TYPE] → Position Registers
El direccionamiento en los registros de posición puede ser:
- Directo
PR[ 1 ] = P[ 1 ] → el punto es guardado directamente en PR[ 1 ]
- 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 ].
Si quieres grabar o techear un PR, tienes que pulsar SHIFT+ F5 TOUCHUP. Siempre que este el robot en el punto, el teach en ON y la controlador en manual.
En un registro de posición es posible almacenar un punto o una operación de punto. PR[ n ] = [punto] [operador] [punto]
El [operador] en los registros de posición 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 en fanuc son también accesibles elemento por elemento.
Ejemplo de asignación directa e indirecta:
- Directa
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.
- indirectamente
R[ 1 ] = 1 R[ 2 ] = 2
PR[R[ 1 ],R[ 2 ]] = 300 → la coordenada Y de PR[ 1 ] está inicializada a 300mm.
2.2.Acceso por parámetro independiente en registros de posición
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 |
2.3.Posibles operaciones aritméticas en un registro.
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 ]
En los siguientes instrucciones de un programa tiene ejemplos de posibles usos de los registros, esto te inspirara sino los has usado nunca, aunque es normal que al principio te sature.
12: WAIT .50(sec) ; 13: PR[7:VERTICAL]=LPOS ; 14: R[27:Z ROB]=PR[7,3:VERTICAL] ; 15: PR[7,3:VERTICAL]=750 ; 16:L PR[7:VERTICAL] 2000mm/sec CNT100 | 6: UTOOL_NUM=1 ; 7: UFRAME_NUM=1 ; 8: PR[1:WORLD]=PR[1:WORLD]-PR[1:WORLD] ; 9: PR[10:ALTURA SEGURIDAD]=PR[1:WORLD] ; 10: PR[2:MOVIL]=PR[1:WORLD] ; 11: UFRAME[1]=PR[1:WORLD] ; |
Si te ha gustado y quieres invitarme a un café con paypal.
Posts Relacionados con este:
Si dejas un comentario sobre lo que te ha parecido el post, me ayudaras a mejorar y nos servirá a todos. Si te parece bueno o malo, si ves que falta algo o se puede mejorar. Sera un WIN/WIN. Muchas gracias
Desarrollado y publicado por www.elsitiodelprogramador.wordpress.com con Licencia Creative Commons 4.0