Programación de Robots KUKA
Programación de Robots KUKA
Programación de Robots KUKA
Programacin de robots 2
Programacin
de robots 2
Edicin: 24.02.2015
Versin: P2KSS8_robotprogramming_2_(R2)_V4
Programacin de robots 2
Copyright 2015
KUKA Roboter GmbH
Zugspitzstrae 140
D-86165 Augsburg
Alemania
ndice
1 Programar con WorkVisual ........................................................................ 7
1.1 Resumen .................................................................................................................... 7
1.2 Gestionar el proyecto con WorkVisual ....................................................................... 7
1.2.1 Enlace de un PC con WorkVisual a una unidad de control .................................. 7
1.2.2 Vista general de la interfaz de usuario WorkVisual .............................................. 8
1.2.3 Cargar el proyecto existente en WorkVisual ......................................................... 10
1.2.4 Guardar proyecto WorkVisual en local ................................................................. 12
1.2.5 Modos de WorkVisual ........................................................................................... 12
1.2.6 Estructura del proyecto WorkVisual (pestaa Ficheros) ....................................... 13
1.2.7 Comparar proyectos con WorkVisual ................................................................... 14
1.2.8 Transmitir el proyecto a la unidad de control del robot (instalar) .......................... 18
1.2.9 Asignar el proyecto a la unidad de control del robot real ...................................... 28
1.2.10 Activar el proyecto en la unidad de control del robot ............................................ 32
1.3 Editar programas KRL con WorkVisual ..................................................................... 35
1.3.1 Manipulacin del fichero ....................................................................................... 35
1.3.2 Activar el catlogo Plantillas ................................................................................. 39
1.3.3 Manejo del editor KRL .......................................................................................... 41
1.4 Ejercicio: Editar un proyecto activo en WorkVisual .................................................... 54
1.1 Resumen
Descripcin Para poder intercambiar proyectos con la unidad de control a travs del
ordenador de WorkVisual, se debe haber establecido una conexin de
red.
Hasta la versin de software KSS 8.2 estaba disponible para ello exclusi-
vamente la interfaz KLI - KUKA Line Interface, la cual deba configurarse por
separado. Esta interfaz tambin sigue estando disponible con la KSS 8.3.
A partir de la versin de software KSS 8.3 est disponible la nueva interfaz
KSI - KUKA Service Interface, que es mucho ms fcil de utilizar.
Tras actualizar desde la versin KSS 8.2 a la versin KSS 8.3, esta inter-
faz tambin se habilita para unidades de control "antiguas".
Conectar el PC
con WorkVisual
en la KSI
Pos. Descripcin
1 Ordenador porttil con WorkVisual
2 Cable de red
3 Armario de control KR C4
A Conexin KSI detrs de la tapa de CSP
Pos. Descripcin
1 Barra de mens
2 Barras de botones
6 Ventana Catlogos
En esta ventana se muestran todos los catlogos aadidos. Los
elementos de los catlogos se pueden aadir en la ventana Es-
tructura del proyecto sobre la pestaa Dispositivo o Geome-
tra.
7 Ventana Zonas de trabajo
8 Ventana Mensajes
Pos. Descripcin
9 Ventana Propiedades
Si se selecciona un objeto se mostrarn sus propiedades en esta
ventana. Las propiedades se pueden modificar. No es posible mo-
dificar las propiedades de los campos grises.
10 Icono Anlisis de proyecto de WorkVisual
Descripcin En cada unidad de control del robot en la que exista una conexin de red se
puede seleccionar un proyecto y cargarlo en WorkVisual. Esto tambin es po-
sible aunque el proyecto no est en el PC.
El proyecto se guarda en el directorio ...\WorkVisual Projects\Downloaded
Projects.
Explorador de
proyecto
Cargar el Procedimiento
proyecto 1. Seleccionar la secuencia de men Fichero > Buscar proyecto. Se abre
WorkVisual de la el Explorador de proyecto. A la izquierda est seleccionada la pestaa
unidad de control Buscar.
2. En la zona Celdas disponibles(3), desplegar el nodo de la celda desea-
da. Se muestran todas las unidades de control del robot de dicha celda.
3. Desplegar los nodos de la unidad de control del robot deseada. Se mues-
tran todos los proyectos.
4. Marcar el proyecto deseado y hacer clic en Abrir. El proyecto se abre en
WorkVisual.
En ciertos casos puede ser que, a pesar de que haya conexin de red en la
ventana Buscar, no se muestre ninguna unidad de control. La ayuda presenta
el siguiente procedimiento:
1. Hacer clic en el botn Lupa (1) del explorador de WorkVisual.
2. Se abre la ventana Find IP Address (buscar direccin IP) (2).
3. Introducir la direccin IP deseada del armario de control.
4. Aceptar la direccin IP con OK (2).
5. A continuacin, la unidad de control se muestra en la ventana Celdas dis-
ponibles (3).
Dispositivos:
En la pestaa Dispositivos se muestra de manera clara la corresponden-
cia de los dispositivos. Aqu se puede asignar una unidad de control del
robot a cada dispositivo.
Geometra:
En la pestaa Geometra se preparan los datos de mquina para las ci-
nemticas externas, como los ejes adicionales.
Ficheros:
La pestaa Ficheros contiene los ficheros de programa y configuracin
del proyecto.
Visualizacin con colores de los nombres de los ficheros:
Ficheros generados automticamente (con la funcin Crear cdigo):
gris
Ficheros aadidos manualmente a WorkVisual: azul
Ficheros transmitidos por una unidad de control del robot a WorkVi-
sual: negro
Ruta del fichero para la programacin en KRL
Para la programacin en WorkVisual se crean o adaptan programas
*.SRC.
En el control real, estos programas se encuentran en la particin
C:\KRC\Roboter\Programme
En el navegador, esta ruta se representa por separado (al igual que los
Ficheros propios de Microsoft Windows.
Proyecto activo
Proyecto con el mismo nombre en el control (nicamente posible si se dis-
pone de conexin de red)
Proyecto base
Proyecto inicial
Proyecto local (del ordenador porttil)
Comparacin:
Las diferencias entre los proyectos se muestran en un resumen. Para cada
una de las diferencias puede seleccionarse el estado que debe asumirse.
Pos. Descripcin
1 El nodo de la unidad de control del robot. Las diferentes reas del proyecto se visuali-
zan en subnodos. Abrir los nodos para mostrar las comparaciones.
Si hay disponibles varias unidades de control del robot estas se listan una debajo de
la otra.
En una lnea, colocar siempre el smbolo de confirmacin en el valor que se quiere
tomar. (Alternativa: emplear las casillas al pie de pgina).
Un smbolo de confirmacin activado como No disponible significa que el elemen-
to no se aceptar o que, en caso de estar ya disponible, se borrar del proyecto.
Si se coloca un smbolo de confirmacin en un nodo, se marcarn automticamen-
te tambin todos los elementos subordinados.
Si se quita un smbolo de confirmacin en un nodo, se quitarn automticamente
tambin en todos los elementos subordinados.
Los elementos subordinados tambin se pueden editar individualmente.
Una casilla con contenido significa que, de los elementos subordinados, al menos
uno est seleccionado.
2 Estado en el proyecto abierto en WorkVisual.
3 Estado en el proyecto de comparacin.
4 Filtros para mostrar u ocultar los diversos tipos de diferencias.
5 TRUE: En la vista general se muestran informaciones detalladas de las lneas marca-
das.
6 Flecha de retroceso: el indicador pasa a la diferencia anterior.
Flecha de avance: el indicador pasa a la diferencia siguiente.
Los nodos cerrados se abren automticamente.
7 Las casillas muestran el estado de la lnea marcada. En lugar de hacerse directamente
en la lnea, los smbolos de confirmacin tambin se pueden colocar aqu.
Pos. Descripcin
8 Confirma las modificaciones seleccionadas en el proyecto abierto.
9 Cierra la ventana Unir proyectos.
Columna Descripcin
Estructura del pro- Cada elemento se muestra con el color que tiene en la columna desde
yecto la que se ha seleccionado.
WorkVisual Todos los elementos se muestran en negro.
Valor seleccionado Verde: elementos que no estn disponibles en el proyecto abierto,
pero s en el proyecto de comparacin.
Azul: elementos que estn disponibles en el proyecto abierto, pero
no en el proyecto de comparacin.
Rojo: el resto de elementos. Tambin se incluyen los elementos su-
periores, los cuales contienen otros elementos en diferentes colores.
5. Para cada una de las diferencias puede seleccionarse el estado que debe
adoptarse. Esto no tiene que hacerse para todas las diferencias de un pa-
so.
Si es adecuado, puede dejarse tambin la seleccin por defecto.
6. Pulsar Reunir para aceptar los cambios en WorkVisual.
7. Repetir los pasos 5 y 6 las veces que se desee. Esto permite la edicin
progresiva de las diferentes zonas.
Si no hay ms diferencias se mostrar el siguiente mensaje: No existen
ms diferencias.
8. cerrar la ventana Comparar proyectos.
9. Si se han modificado parmetros de los ejes adicionales en el proyecto de
la unidad de control del robot, estos debern ser actualizados en WorkVi-
sual:
Abrir la ventana Configuracin de los datos de mquina para este
eje adicional.
En el sector Datos de mquina generales especficos del eje pulsar
sobre el botn para la importacin de los datos de la mquina.
Se actualizan los datos.
10. Guardar el proyecto.
Ejemplo de comparacin de proyectos
o botn
El cdigo aparece en la ventana Estructura del proyecto en la pes-
taa Ficheros.
El cdigo generado automticamente se muestra en color gris claro.
Versiones de
WorkVisual hasta
3.0
Procedimiento
1. En la barra de mens hacer clic en el botn Instalar ... . Se abre la ven-
tana Transmisin del proyecto.
8. Para cada una de las diferencias puede seleccionarse el estado que debe
adoptarse. Esto no tiene que hacerse para todas las diferencias de un pa-
so.
Si es adecuado, puede dejarse tambin la seleccin por defecto.
9. Pulsar Reunir para aceptar los cambios.
10. Repetir los pasos 8 y 9 las veces que se desee. Esto permite la edicin
consecutiva de las diferentes zonas.
Si no hay ms diferencias se mostrar el siguiente mensaje: No existen
ms diferencias.
11. Cerrar la ventana Comparar proyectos.
13. Hacer clic en Continuar. Se inicia la creacin del programa. Cuando el in-
dicador del progreso llegue al 100 % se habr creado el programa y se ha-
br transmitido el proyecto.
14. Hacer clic en Activar.
15. Exclusivo para los modos de servicio T1 y T2: KUKA smartHMI muestra
la pregunta de seguridad Quiere permitir la activacin del proyecto []?. Ade-
ms se indica si con la activacin se ha sobrescrito un proyecto, y en caso
afirmativo, cul.
Si no se ha sobrescrito ningn proyecto relevante: Confirmar la pregunta
en el plazo de 30 minutos con S.
16. Se muestra una vista general de los cambios que se han realizado en la
unidad de control del robot en comparacin con el proyecto an activo.
Mediante la casilla Detalles se pueden mostrar detalles acerca de las mo-
dificaciones.
17. La vista general muestra la pregunta de seguridad Desea continuar?. Res-
ponder con S. El proyecto se activa en la unidad de control del robot. En
WorkVisual se visualiza una confirmacin.
Versiones de
WorkVisual
desde 3.1
Procedimiento
Iniciar trasfe-
En la barra de mens hacer clic en el botn Instalar ... .
rencia de
Se abre la ventana Transmisin del proyecto.
proyecto
Alternativamente, tambin se puede realizar la transferencia del proyecto
a travs de la ruta del men: Extras > Acceder a Instalar.
Asignar unidad 1. El controlador del proyecto WorkVisual (2) est listo para asignar el con-
de control trolador real (4) a la flecha azul (3). (>>> "Procedimiento" Pgina 31)
Pos. Descripcin
1 Transcurso de la transferencia del proyecto
2 Armario de control del proyecto WorkVisual
3 Asignacin del proyecto al armario de control real
4 Armario de control real en la red de la instalacin
5 Abrir la ventana para la bsqueda de armarios de control en
la red de la instalacin
6 Abrir la ventana para la comparacin de proyectos
7 Confirmacin de la asignacin de armario de control
Crear cdigo Despus de la asignacin del controlador WorkVisual generar los datos
*.xml necesarios de la configuracin grfica.
Este paso de trabajo tambin puede llevarse a cabo por separado con an-
telacin. Ruta: Extras > Generar cdigo
Si hay errores durante la generacin de cdigo, la barra de progreso se
mostrar en rojo y se cancelar la generacin.
Activar proyecto Despus de que el proyecto haya sido transferido, el proyecto se puede
activar directamente a travs de WorkVisual. Indica un fallo de activacin,
porque, por ejemplo, no estn presentes los derechos de usuario necesa-
rios en el controlador, mediante el icono (1) se activar de nuevo el pro-
yecto para el controlador.
Aplicar la suma 1. Si cambia la seguridad en WorkVisual, como por ejemplo los parmetros
de control de la interfaz de seguridad o de SafeOperation, aparecer el siguiente
modificada mensaje de error en la ventana de mensajes: "Suma de control de la con-
figuracin de seguridad incorrecta".
Versiones de
WorkVisual hasta
3.0
Procedimiento 1. En la barra de mens hacer clic en el botn Instalar .... Se abre la ventana
Transmisin del proyecto.
A cada unidad de control del robot virtual se le debe asignar una uni-
dad de control del robot real.
11. Si el proyecto contiene varias unidades de control del robot, repetir los pa-
sos 8 y 9 para las siguientes unidades de control del robot.
12. Hacer clic en Continuar. Se muestra un resumen. (Aqu existe la posibi-
lidad de volver a cambiar la asignacin. Para ello, hacer clic sobre Modi-
ficar .)
Versiones de
WorkVisual
desde 3.1
Procedimiento 1. En la barra de mens hacer clic en el botn Instalar .... Se abre la ventana
Transmisin del proyecto WorkVisual. En el lado izquierdo se muestra
la unidad de control del robot virtual del proyecto. En el lado derecho se
muestra el controlador de destino. Ser de color gris si no se ha seleccio-
nado ninguna unidad de control.
4. Seleccionar la unidad de control del robot real deseada y hacer clic en OK.
La unidad de control del robot real es asignada a la virtual. Tras la asigna-
cin, la unidad de control del robot se muestra en color, as como con el
nombre y la direccin IP.
5. Si el proyecto contiene varias unidades de control del robot, repetir los pa-
sos 3 y 4 para las siguientes unidades de control del robot.
6. Hacer clic en Continuar. La asignacin se comprueba para determinar la
presencia de conflictos. En caso de que haya conflictos, se mostrar un
mensaje. Los conflictos deben subsanarse ya que, de lo contrario, no se
podr transmitir el proyecto. En caso de que no haya conflictos, se gene-
rar automticamente el cdigo.
7. El proyecto se puede transmitir ahora a la unidad de control del robot.
Otra posibilidad es transmitir el proyecto en otro momento. Para ello, pul-
sar Cancelar: la asignacin se guarda y la ventana Transmisin del pro-
yecto WorkVisual se cierra.
Funcin de la Generalidades
gestin del La unidad de control del robot tiene la posibilidad de gestionar varios pro-
proyecto yectos en la unidad de control.
Todas las funciones solo estn disponibles en el grupo de usuario Exper-
to.
Puede accederse mediante:
En la interfaz de usuario, a travs de la tecla WorkVisual-Symbol y a
continuacin el botn Abrir
Manejo / servicio
Pos. Descripcin
1 Se muestra el proyecto inicial.
2 Restaura el estado de suministro de la unidad de control del robot.
Est disponible desde el grupo de usuario Experto.
3 Se muestra el proyecto base.
4 Crea una copia del proyecto base.
Est disponible desde el grupo de usuario Experto.
5 Se muestra el proyecto activo.
6 Guarda el proyecto activo como proyecto base. El proyecto activo
permanece activo.
Est disponible desde el grupo de usuario Experto.
7 Crea una copia bloqueada del proyecto activo.
Est disponible desde el grupo de usuario Experto.
8 Lista de los proyectos. Aqu no se muestra el proyecto activo.
Proyecto Descripcin
Proyecto inicial El proyecto inicial est siempre disponible. No puede
ser modificado por el usuario. Contiene el estado de la
unidad de control del robot en el momento del suminis-
tro.
Proyecto base El usuario puede guardar el proyecto activo como pro-
yecto base. Esta funcionalidad se utiliza por regla
general para asegurar un proyecto protegido y en con-
diciones de funcionamiento.
El proyecto base no puede activarse pero s copiarse.
El proyecto base ya no puede ser modificado por el
usuario. Sin embargo, puede sobrescribirse grabando
un nuevo proyecto base (tras una pregunta de seguri-
dad).
Cuando se activa un proyecto que no contiene todos
los ficheros de configuracin, la informacin que falta
se toma del proyecto base. Esto puede ser el caso p.
ej. si se activa un proyecto de una versin de WorkVi-
sual anterior. Entre los ficheros de configuracin se
incluyen ficheros de datos de la mquina, ficheros de
la configuracin de seguridad y muchos otros.
Botn Descripcin
Activar Activa el proyecto marcado.
Si el proyecto marcado est bloqueado: Crea una
copia del proyecto marcado. (Un proyecto bloqueado
no puede activarse, solo una copia del mismo.) El
usuario puede decidir si la copia debe activarse ya o el
proyecto actual debe quedar activo.
Est disponible desde el grupo de usuario Experto.
Introducir Pin Los proyectos bloqueados no pueden ser modificados,
activados o borrados. Sin embargo, pueden copiarse o
desbloquearse. Por lo tanto, se puede bloquear un pro-
yecto para evitar p. ej. que se borre por error.
Solamente est disponible si est marcado un pro-
yecto desbloqueado. Est disponible desde el grupo
de usuario Experto.
Desbloquear Desbloquea el proyecto.
Slo est disponible si est marcado un proyecto blo-
queado. Est disponible desde el grupo de usuario
Experto.
Copiar Copia el proyecto marcado.
Est disponible desde el grupo de usuario Experto.
Borrar Borra el proyecto marcado.
Slo est disponible si est marcado un proyecto inac-
tivo y desbloqueado. Est disponible desde el grupo de
usuario Experto.
Botn Descripcin
Editar Abre una ventana en la que pueden modificarse el
nombre y/o la descripcin del proyecto marcado.
Slo est disponible si est marcado un proyecto des-
bloqueado. Est disponible desde el grupo de usuario
Experto.
Actualizar Actualiza la lista de proyectos. De esta forma se mues-
tran, p. ej., los proyectos que se han transmitido a la
unidad de control del robot desde la apertura del indi-
cador.
Procedimiento
Restriccin: Cuando la activacin causa modificaciones en el sector
Parmetros de comunicacin de la configuracin de seguridad,
debe seleccionarse el grupo de usuarios Tcnico de mantenimiento
de seguridad o superior.
Si se ha seleccionado el modo de servicio AUT o AUT EXT: El proyecto slo
se puede activar si nicamente se modifican programas KRL. Si el proyecto
contiene ajustes que provocan otros cambios no se puede activar.
Activar el
catlogo
Plantillas
3. Seleccionar el fichero o
mediante doble clic
Procedimiento Procedimiento
para aadir un 1. Cambiar el rbol de proyecto del fichero
fichero mediante
2. Desplegar los directorios hasta el directorio R1
plantillas KRL
3. Seleccionar la carpeta en la que se va a crear el fichero nuevo
5. Seleccionar plantilla
Descripcin Para poder llevar a cabo ciertas funciones en WorkVisual, como por ejemplo,
la configuracin o programacin, es necesario activar los catlogos corres-
pondientes.
Ejemplo
La estructura del proyecto debera ampliarse.
Hacer clic derecho en el icono de activacin del controlador y en el botn
"Aadir".
Procedimiento
Activar el
catlogo
Plantillas
Conocer la Descripcin
interfaz de El editor KRL permite la edicicin confortable de programas KUKA.
usuario del editor
No es posible comprobar o dejar que se ejecuten los programas.
KRL
Ruta: Editores > Editor KRL
Pos. Descripcin
1 rea del programa
Aqu se introduce o se procesa el cdigo. El editor KRL ofrece nu-
merosas funcionalidades que ayudarn al programador.
2 Lista de subprogramas en este fichero
Para acceder a un subprograma deber seleccionarse de la lista:
el curso salta a la lnea DEF de dicho subprograma.
Si el fichero no incluye subprogramas, la lista est vaca.
3 Lista de las declaraciones de variables
Esta lista se refiere siempre al subprograma que est selecciona-
do actualmente en la lista de subprogramas. Para acceder a una
declaracin deber seleccionarse la variable en la lista: el cursor
salta a la lnea con la declaracin de dicha variable.
Si no hay presente ninguna declaracin de variable, la lista est
vaca.
4 Barra de anlisis
Las marcas indican errores o desigualdades en el cdigo.
Al pasar con el puntero del ratn sobre una marca se visualiza
una informacin de herramientas con la descripcin del error.
Al hacer clic en una marca, el cursor salta en el programa has-
ta el punto correspondiente. Para algunos errores/desigualda-
des se ofrece una correccin automtica.
Funciones de Marcar
procesamiento Marcar una zona: hacer clic en el punto en el que deban empezar las mar-
generales cas y mantener pulsado el botn izquierdo del ratn. Arrastrar con el ratn
hasta que est marcada la zona deseada y seguidamente soltar de nuevo
el botn del ratn.
Renombrar Descripcin
variables Un nombre de variable se puede modificar con una sola accin en todos
los lugares en los que aparezca.
Esto tambin es posible cuando la variable est declarada en un fichero
DAT y se utiliza en varios ficheros SRC.
Requisito
Los ficheros en los que aparece el nombre de variable no tienen errores
de sintaxis.
Autocompletar Descripcin
En el editor KRL se encuentra disponible una funcionalidad de Autocom-
pletar.
Al introducir el cdigo se visualiza automticamente una lista que contiene
los siguientes elementos:
Palabras clave KRL
Nombres de variables conocidos
Nombres de funcin conocidos
Tipos de datos especficos de usuario conocidos (STRUC o ENUM)
Fragmentos (snippets) (>>> "Fragmentos (snippets): entrada rpida
para instrucciones KRL" Pgina 48)
Procedimiento
Introducir las primeras letras de la instruccin, variable, etc. deseada en
las correspondientes lneas del programa.
Se abre la opcin de Autocompletar:
Fragmentos Descripcin
(snippets): Para las instrucciones KRL habituales se dispone de una entrada rpida
entrada rpida en el editor KRL.
para instruc- Si, por ejemplo, se quiere programar un bucle FOR, no har falta introdu-
ciones KRL cir la sintaxis completa FOR = TO STEP .
En su lugar, se selecciona la instruccin en la lista de Completar.
Slo tienen que completarse manualmente las partes variables de la sin-
taxis.
Procedimiento
1. Si se comienza a escribir el cdigo, se visualizar la lista de Completar.
Aceptar en la lista de Completar la instruccin marcada con la tecla de en-
trada. O hacer doble clic en otra instruccin.
Alternativas
1. La lista de fragmentos (snippet) tambin se puede activar por separado:
hacer clic con el botn derecho y seleccionar la entrada Insertar snippet
en el men contextual.
2. Adems, un fragmento (snippet) se puede introducir del siguiente modo:
teclear la abreviatura y pulsar la tecla TAB.
3. (Se puede determinar la abreviatura activando la lista con los fragmentos
(snippets). Marcar la instruccin. Se visualiza una informacin de herra-
mientas. La 2 lnea contiene las posibles abreviaturas.)
Correccin Descripcin
Quickfix Las partes subrayadas en el cdigo y las marcas en la barra de anlisis
hacen notar errores o desigualdades.
Procedimiento
Para algunos de estos errores/desigualdades se ofrece una correccin
automtica, el "Quickfix".
Se visualiza una lamparita Quickfix.
Cerrar un fold
Hacer clic en el signo menos.
El Fold se cierra.
Requisitos Los siguientes requisitos son necesarios para completar este ejercicio correc-
tamente:
Se necesita un PC con WorkVisual 3.x instalado.
Conocimientos tericos sobre la gestin de proyectos en WorkVisual
Formulacin de Enlazar el PC, con WorkVisual 3.x instalado, con la interfaz KUKA Service
tarea Interface KSI situada en el armario de control.
Cargar el proyecto activo de la unidad de control en WorkVisual.
Crear un nuevo programa con la denominacin my1prog
Crear un comentario entre ambos conjuntos de movimientos PTP HOME.
Establecer la estructura de fichero especfica para el proyecto pulsando el
2 Programacin estructurada
2
2.1 Resumen
INI
END
INI
END
INI
PICK_CUBE()
;CUBE_TO_TABLE()
CUBE_TO_MAGAZINE()
END
END
DEF Main()
...
INI ; KUKA FOLD cerrado
END
DEF Main()
...
INI ; KUKA FOLD cerrado
...
END
LOOP
GET_PEN()
PAINT_PATH()
PEN_BACK()
GET_PLATE()
GLUE_PLATE()
PLATE_BACK()
ENDLOOP
END
Qu provoca la Para aclarar la relacin entre los mdulos del programa, se recomienda inser-
insercin de tar secuencias de instrucciones encajadas en el texto de programacin y es-
lneas de instruc- cribir instrucciones con la misma profundidad de apilamiento, directamente
unas debajo de las otras.
ciones?
El efecto logrado es puramente visual, nicamente afecta al valor de un pro-
grama como medio de informacin de persona a persona.
DEF INSERT()
INT PART, COUNTER
INI
SPTP HOME Vel=100% DEFAULT
LOOP
FOR COUNTER = 1 TO 20
PART = PART+1
;Imposible aplicar sangra en formularios inline
SPTP P1 CONT Vel=100% TOOL[2]:Gripper BASE[2]:Table
PTP XP5 ; Movimiento con KRL
ENDFOR
...
ENDLOOP
Qu es un PEP? Un plan de ejecucin del programa (PEP) es un diagrama de flujo para un pro-
grama que tambin se denomina como plan de estructura del programa. Es
una representacin grfica para la transformacin de un algoritmo en un pro-
grama y describe la secuencia de operaciones para la solucin de una tarea.
Los smbolos para los planes de ejecucin del programa estn regulados en
la norma DIN 66001. Los planes de ejecucin del programa tambin se utili-
zan a menudo en programas de ordenador para la representacin de proce-
sos y tareas.
En comparacin con una descripcin basada en un cdigo, el algoritmo del
programa presenta una legibilidad considerablemente ms sencilla, ya que,
gracias a la representacin grfica, la estructura se puede reconocer mucho
mejor.
Los errores de estructura y programacin se evitan de forma ms sencilla con
la transformacin posterior en cdigo de programacin, ya que en caso de
aplicacin correcta de un PEP, es posible la transformacin directa en un c-
digo de programacin. Al mismo tiempo, con la creacin de un PEP se obtiene
una documentacin del programa que se va a crear.
Herramienta para la estructuracin del proceso de un programa
La ejecucin del programa es fcilmente legible
Los errores en la estructura se pueden reconocer de forma ms sencilla
Documentacin simultnea del programa
Fig. 2-1
Fig. 2-2
Ramificacin
Fig. 2-3
Fig. 2-4
Llamada de subprograma
Fig. 2-5
Indicacin de entrada/salida
Fig. 2-6
Ejemplo PEP
Fig. 2-7
3.1 Resumen
Descripcin La unidad de control del robot ofrece diferentes grupos de usuarios con di-
ferentes funciones. Se pueden seleccionar los siguientes grupos de usua-
rios:
Operario
Grupo de usuario para el operario. Esto es el grupo de usuario por defec-
to.
Usuario
Grupo de usuario para el operario. (Los grupos de usuarios del operario y
del usuario estn declarados por defecto para el mismo grupo destinata-
rio.)
Experto
Grupo de usuario para el programador. Este grupo de usuario est prote-
gido por una contrasea.
Administrador
Mismas funciones que las del grupo de usuario Experto. A modo adicional
es posible integrar plug-ins en la unidad de control del robot. Este grupo
de usuario est protegido por una contrasea. La contrasea por defecto
kuka se debera cambiar.
Tcnico de mantenimiento de seguridad
Este usuario puede activar una configuracin de seguridad existente del
robot mediante un cdigo de activacin. Si no se utiliza ninguna opcin
Safe, p. ej. KUKA.SafeOperation o KUKA.SafeRangeMonitoring, el tcni-
co de mantenimiento de seguridad dispone de derechos complementa-
rios. En este caso, por ejemplo, est autorizado para configurar las
funciones de seguridad estndar. El grupo de usuario est protegido por
una contrasea. La contrasea por defecto kuka se debera cambiar.
Tcnico de mantenimiento de seguridad
Este grupo de usuario solo es relevante cuando se utiliza KUKA.SafeO-
peration o KUKA.SafeRangeMonitoring. El grupo de usuario est protegi-
do por una contrasea. La contrasea por defecto kuka se debera
cambiar.
Funciones avanzadas del grupo de usuario Experto:
Protegido por contrasea (predeterminada: kuka)
La programacin en el editor mediante KRL es posible
El grupo de usuario Experto se vuelve a abandonar automticamente
cuando se cambia al modo de servicio AUT o AUT EXT
cuando durante un tiempo determinado no se realiza ninguna opera-
cin en la interfaz de usuario (300 s)
Abrir/cerrar FOLD
Los FOLD siempre estn cerrados para el usuario y se pueden abrir como
experto.
El experto tambin puede programar FOLD propios.
La sintaxis para un FOLD es la siguiente:
;FOLD Nombre
Instrucciones
;ENDFOLD <Nombre>
Las filas ENDFOLD pueden asignarse ms fcilmente si se introduce aqu
el nombre del FOLD. Pueden encajarse los FOLD.
Mostrar/ocultar la lnea DEF
Por defecto, la lnea DEF est oculta. Solo se pueden efectuar declaracio-
nes en un programa una vez que la lnea DEF sea visible.
La lnea DEF se muestra y oculta independientemente para cada progra-
ma abierto y seleccionado. Si est activada una vista en detalle, la lnea
DEF est visible y no es necesario mostrarla expresamente.
Requisitos Los siguientes requisitos son necesarios para completar este ejercicio correc-
tamente:
Conocimientos tericos sobre la medicin de una herramienta
Conocimientos tericos sobre la medicin de una base
Garra de formacin KR 16
Masa:
M = 4,3 kg
Centro de masa:
X = 41 mm Y = 35 mm Z = 62 mm
Orientacin:
A = 0 B = 0 C = 0
Momentos de inercia:
JX = 0,03 kgm2 JY = 0,04 kgm2 JZ = 0,12 kgm2
Masa:
M = 4,4 kg
Centro de masa:
X = 7 mm Y = -24 mm Z = 80 mm
Orientacin:
A = 0 B = 0 C = 0
Momentos de inercia:
JX = 0,02 kgm2 JY = 0,05 kgm2 JZ = 0,11 kgm2
Masa:
M = 2 kg
Centro de masa:
X = 23 mm Y = 0 mm Z = 61 mm
Orientacin:
A = 0 B = 0 C = 0
Momentos de inercia:
JX = 0,002 kgm2 JY = 0,004 kgm2 JZ = 0,003 kgm2
Masa:
M = 4,9 kg
Centro de masa:
X = 53 mm Y = 49 mm Z = 65 mm
Orientacin:
A = 0 B = 0 C = 0
Momentos de inercia:
JX = 0,02 kgm2 JY = 0,03 kgm2 JZ = 0,15 kgm2
Masa:
M = 5 kg
Centro de masa:
X = 23 mm Y = 38 mm Z = 84 mm
Orientacin:
A = 0 B = 0 C = 0
Momentos de inercia:
JX = 0,02 kgm2 JY = 0,07 kgm2 JZ = 0,14 kgm2
Masa:
M = 2,14 kg
Centro de masa:
X = 30 mm Y = 0 mm Z = 64 mm
Orientacin:
A = 0 B = 0 C = 0
Momentos de inercia:
JX = 0,002 kgm2 JY = 0,004 kgm2 JZ = 0,003 kgm2
Requisitos Los siguientes requisitos son imprescindibles para superar el ejercicio con
xito:
Conocimientos tericos sobre el navegador en el nivel experto
Conocimientos tericos sobre la utilizacin de subprogramas globales
Conocimientos tericos sobre un bucle sinfn
Formulacin de 1. Crear un plan de ejecucin del programa (PEP) antes del inicio de la pro-
tarea gramacin.
2. Crear dos mdulos adecuados (cubo_dep/cubo_rec).
3. La llamada y el bucle sinfn deben tener lugar en el mdulo DEPSITO.
4. Comprobar el programa en los modos de servicio T1, T2 y Automtico. Se
deben tener en cuenta las prescripciones de seguridad enseadas.
Lo que se debe saber tras el ejercicio:
1. Cul es la diferencia al crear un programa entre la seleccin de MODUL
y EXPERT?
............................................................
............................................................
............................................................
............................................................
............................................................
2. Qu se entiende por el modo de ejecucin del programa Paso a paso?
............................................................
............................................................
3. Cul es la diferencia entre SELECCIONAR y ABRIR un programa?
............................................................
............................................................
............................................................
4. Cul es el aspecto de la sintaxis para un "pliegue"?
............................................................
............................................................
5. Qu consecuencias tiene la modificacin posterior de la posicin HOME?
............................................................
............................................................
4 Variables y declaraciones
4
4.1 Resumen
s
Generalidades
sobre variables
Convenciones En la eleccin del nombre de la variable se deben tener en cuenta las siguien-
sobre los tes reglas:
nombres Los nombres en KRL pueden tener una longitud mxima de 24 caracteres.
Los nombres en KRL pueden contener letras (A-Z), cifras (0-9) y los ca-
racteres especiales "_" y "$".
Los nombres en KRL no deben comenzar con cifras.
Los nombres en KRL no deben ser palabras clave.
La utilizacin de maysculas y minsculas es indiferente.
Consejos
Utilizar nombres de variables adecuados y autoexplicativos.
No utilizar nombres o abreviaturas crpticos.
Utilizar una longitud de nombre adecuada, no gastar cada vez 24 carac-
teres.
Doble decla- Una doble declaracin ocurre siempre que se usan los mismos nombres
racin de de variables (cadenas).
variables No se trata de una doble declaracin cuando se utiliza el mismo nombre
en archivos SRC o DAT distintos.
Carcter
Tipos de datos Nmero Nmero con Valores
individua
simples entero coma flotante lgicos
l
Palabra clave INT REAL BOOL CHAR
Rango de valo- -231 ... 1.1 10-38... TRUE / Juego de
res FALSE caracte-
(231-1) 3.4 10+38
res ASCII
Ejemplos -199 o 56 -0,0000123 o TRUE o "A" o "q"
3,1415 FALSE o "7"
Campos / Grupo
Voltage[10] = 12.75
Voltage[11] = 15.59
Datos de sistema Los datos de sistema KUKA estn presentes en todos los tipos de datos,
de KUKA p. ej., como
Tipo de datos de enumeracin, p. ej.: modo de servicio
Estructura, p. ej.: fecha/hora
Las informaciones de sistema se obtienen a travs de variables de siste-
ma de KUKA. Estas
leen la informacin actual del sistema
modifican las configuraciones actuales del sistema
estn predefinidas y comienzan con el carcter "$"
$DATE (fecha y hora actuales)
$POS_ACT (posicin actual del robot)
$MODE_OP(modo de servicio actual)
...
;==================================
; Userdefined Variables
;==================================
DECL INT counter
DECL REAL price
DECL BOOL error
DECL CHAR symbol
...
ENDDAT
Clculo: 1*32+1*16+1*8+0*4+1*2+0*1 = 58
Binario 25 24 23 22 21 20
Dec 32 16 8 4 2 1
Inicializacin hexadecimal
value = 'H3A'
Hex 0 1 2 3 4 5 6 7 8 9 A B C D E F
Dec 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
DEF MY_PROG ( )
...
INI
counter = 10
price = 0.0
error = FALSE
symbol = "X"
...
END
Declaracin e Descripcin
inicializacin de Las constantes se crean con la palabra clave CONST.
una constante
Las constantes solo se pueden crear en listas de datos.
creacin de constantes
1. Abrir el fichero DAT en el editor.
2. Realizar la declaracin y la inicializacin.
DEFDAT MY_PROG
EXTERNAL DECLARATIONS
DECL CONST INT max_size = 99
DECL CONST REAL PI = 3.1415
...
ENDDAT
Listado de las Los valores de las variables se modifican de diferentes maneras en las rutinas
posibilidades de programacin (fichero SRC) en funcin de la tarea. A continuacin se co-
para la modifi- mentarn los mtodos ms comunes. La manipulacin mediante operaciones
de bit y funciones estndar es posible, pero aqu no se profundizar en ello.
cacin de valores
de variables con Manipulacin de datos por medio de
KRL Tipos de clculo bsicos
(+) Suma
(-) Resta
(*) Multiplicacin
(/) Divisin
Operaciones de comparacin
(==) idntico / igualdad
(<>) desigual
(>) mayor que
(<) menor que
(>=) mayor o igual que
(<=) menor o igual que
Operaciones lgicas
(NOT) Inversin
(AND) Y lgico
(OR) O lgico
(EXOR) O excluyente
Operaciones de bit
(B_NOT) Inversin por bits
Relaciones en la Modificacin de valores con la utilizacin del tipo de datos REAL y INT
manipulacin de Redondear hacia arriba/hacia abajo
datos
; Declaracin
DECL INT A,B,C
DECL REAL R,S,T
; Inicializacin
A = 3 ; A=3
B = 5.5 ; B=6 (a partir de x.5 se redondea a la alza)
C = 2.25 ; C=2 (redondear a la baja)
R = 4 ; R=4.0
S = 6.5 ; S=6.5
T = C ; T=2.0 (se utiliza el valor redondeado a la baja)
; Declaracin
DECL INT D,E
DECL REAL U,V
; Inicializacin
D = 2
E = 5
U = 0.5
V = 10.6
; Seccin de instrucciones (manipulacin de datos)
D = D*E ; D = 2 * 5 = 10
E = E+V ; E= 5 + 10.6 = 15.6 -> Redondear a la alza E=16
U = U*V ; U= 0.5 * 10.6 = 5.3
V = E+V ; V= 16 + 10.6 = 26.6
DECL REAL W
; Inicializacin
F = 10
W = 10.0
; Seccin de instrucciones (manipulacin de datos)
; INT / INT -> INT
F = F/2 ; F=5
F = 10/4 ; F=2 (10/4 = 2.5 -> Cortar posicin decimal)
; REAL / INT -> REAL
F = W/4 ; F=3 (10.0/4=2.5 -> Redondear a la alza)
W = W/4 ; W=2.5
Operaciones de comparacin
Con las operaciones de comparacin se pueden formar expresiones lgicas.
El resultado de una comparacin siempre es del tipo de datos BOOL.
Operador /
Descripcin Tipos de datos admisibles
KRL
== idntico/igual- INT, REAL, CHAR, BOOL
dad
<> desigual INT, REAL, CHAR, BOOL
> mayor que INT, REAL, CHAR
< menor que INT, REAL, CHAR
>= mayor o igual INT, REAL, CHAR
que
<= menor o igual INT, REAL, CHAR
que
; Declaracin
DECL BOOL G,H
; Inicializacin/seccin de instrucciones
G = 10>10.1 ; G=FALSE
H = 10/3 == 3 ; H=TRUE
G = G<>H ; G=TRUE
Operaciones lgicas
Con las operaciones lgicas se pueden formar expresiones lgicas. El resul-
tado de una operacin de este tipo siempre es del tipo de datos BOOL.
A EXOR
Operaciones NOT A A AND B A OR B
B
A=FALSE B=FALSE TRUE FALSE FALSE FALSE
A=FALSE B=TRUE TRUE FALSE TRUE TRUE
A=TRUE B=FALSE FALSE FALSE TRUE TRUE
A=TRUE B=TRUE FALSE TRUE TRUE FALSE
; Declaracin
DECL BOOL K,L,M
; Inicializacin/seccin de instrucciones
K = TRUE
L = NOT K ; L=FALSE
Prioridad Operador
1 NOT (B_NOT)
2 Multiplicacin (*); divisin (/)
3 Suma (+), resta (-)
4 AND (B_AND)
5 EXOR (B_EXOR)
6 OR (B_OR)
7 cualquier comparacin (==; <>; ...)
; Declaracin
DECL BOOL X, Y
DECL INT Z
; Inicializacin/seccin de instrucciones
X = TRUE
Z = 4
Y = (4*Z+16 <> 32) AND X ; Y=FALSE
Instruccin HALT HALT se usa, sobre todo, para realizar pruebas en la fase de programacin,
por ejemplo, para visualizar el contenido de una variable en tiempo de ejecu-
cin.
La instruccin HALT detiene el programa. La ltima instruccin de movi-
miento lanzada se ejecuta por completo.
El programa puede continuarse exclusivamente con la tecla de arranque.
A continuacin se ejecutar la siguiente instruccin despus de HALT.
Ejemplo:
DEF program()
DECL BOOL a,b
INI
...
SPTP XP1
a=$IN[1]
b=$IN[2]
HALT
IF ((a == TRUE) AND (b == FALSE)) THEN
..
ENDIF
...
Pos. Descripcin
1 Nombre de la variable que debe modificarse.
2 Nuevo valor que se debe asignar a la variable.
3 Programa en el cual se busca la variable.
En las variables del sistema el campo Mdulo no es relevante.
4 Este campo tiene dos estados:
Campo de 2 dimensiones
dimension[2,1]= 3.25
Campo de 3 dimensiones
dimension[3,4,1]= 21
Relaciones en la La vida til y la validez de las variables de campo es la misma que en la utili-
utilizacin de zacin de variables de tipo de datos simple
campos .
Declaracin de campo
Creacin en el fichero SRC
DEF MY_PROG ( )
DECL BOOL error[10]
DECL REAL value[50,2]
DECL INT parts[10,10,10]
INI
...
END
...
ENDDAT
FOR x = 1 TO 10
error[x]=FALSE
ENDFOR
error[5]=FALSE
error[6]=FALSE
error[7]=FALSE
error[8]=FALSE
error[9]=FALSE
error[10]=FALSE
DEF MY_PROG ( )
INI
error[1]=FALSE
error[2]=FALSE
error[3]=FALSE
...
error[10]=FALSE
o bien
DEF MY_PROG ( )
INI
FOR x = 1 TO 10
error[x]=FALSE
ENDFOR
Campo de 2 dimensiones
DECL INT parts_table[10,5]
DECL INT x, y
FOR x = 1 TO 10
FOR y = 1 TO 5
parts_table[x, y]= 6
ENDFOR
ENDFOR
Campo de 3 dimensiones
DECL INT parts_palette[5,4,3]
DECL INT x, y, z
FOR x = 1 TO 5
FOR y = 1 TO 4
FOR z = 1 TO 3
parts_palette[x, y, z]= 12
ENDFOR
ENDFOR
ENDFOR
Requisitos Los siguientes requisitos son necesarios para completar este ejercicio correc-
tamente:
Conocimientos de tipos de datos simples
Conocimientos tericos sobre campos
Conocimientos tericos sobre el bucle FOR
Conocimientos tericos sobre la indicacin de variables
Fig. 4-3
.............................................................
.............................................................
2. Qu diferencia la declaracin de un campo en el fichero SRC y en el fiche-
ro DAT?
.............................................................
.............................................................
3. Qu mensaje de error aparece si se sobrepasa el ndice de campo?
.............................................................
.............................................................
4. Declarar un campo de 3 dimensiones con el nombre de Precio del armario.
El precio del armario se calcula de los componentes longitud, anchura y pro-
fundidad. El surtido comprende 5 longitudes diferentes, 3 anchuras diferen-
tes y 2 profundidades diferentes?
.............................................................
.............................................................
5. Cmo puede visualizarse por completo el campo superior Precio del ar-
mario?
.............................................................
.............................................................
Variables con
varias informa-
ciones indivi-
duales
Fig. 4-4
Una estructura debe estar definida previamente para que se pueda seguir
utilizando posteriormente.
No obstante:
my_car = {price 14999.95, motor 50, air_condition TRUE}
my_car = {price 12000.0} ; se borra el valor para motor y aire
acondicionado
my_car.price = my_price*0.85
my_car.car_pos.X = x_value
my_car.car_pos.Y = 750+y_value
my_car.price = value_car
Requisitos Los siguientes requisitos son necesarios para completar este ejercicio correc-
tamente:
Conocimientos tericos sobre tipos de datos y estructuras simples
............................................................
5. Para qu se necesita el separador de puntos?
............................................................
............................................................
Forma de texto
como valor de
variable
Fig. 4-5
Requisitos Los siguientes requisitos son necesarios para completar este ejercicio correc-
tamente:
Conocimientos tericos sobre tipos de datos y estructuras simples
Conocimientos tericos sobre variables ENUM sencillas
5 Subprogramas y funciones
5.1 Resumen
s
Esta unidad incluye los siguientes contenidos:
Subprogramas locales
Subprogramas globales
Transferencia de parmetros a un subprograma
Programacin de funciones
DEFDAT MY_PROG
...
DECL E6POS XP1={X 100, Y 200, Z 300 ... E6 0.0}
...
ENDDAT
DEF MY_PROG( )
...
END
DEF PICK_PART( )
END
7. Tras pulsar Return se inserta una barra trasversal entre el programa prin-
cipal y el subprograma
DEF MY_PROG( )
...
END
_______________________________________
DEF PICK_PART( )
END
DEF GLOBAL2( )
...
END
DEF GLOBAL2( )
...
GLOBAL3( )
...
END
DEF GLOBAL3( )
...
END
DEFDAT GLOBAL1( )
DECL E6POS XP1={X 100, Z 200, Z 300 ... E6 0.0}
ENDDAT
DEFDAT GLOBAL2( )
DECL E6POS XP1={X 800, Z 775, Z 999 ... E6 0.0}
ENDDAT
DEF GLOBAL2( )
...
IF $IN[12]==FALSE THEN
RETURN ; Retroceso a GLOBAL1( )
ENDIF
...
END
PICK_PART( )
...
END
Descripcin de la Sintaxis
transferencia de DEF MY_PROG( )
parmetros ...
CALC (K, L)
...
END
...
CALC_1(r)
...
CALC_2(s)
...
END
DEF CALC_1(num1:IN)
; El valor "r" se transfiere a num1 exclusivamente para lectura
DECL REAL num1
...
END
DEF CALC_2(num2:OUT)
; El valor "s" se transfiere, modificado y reescrito, a num2
DECL REAL num2
...
END
DECL REAL ww
DECL INT aa, bb
...
END
Procedimiento
1. Cargar un programa principal en el editor
2. Declarar, inicializar y posiblemente manipular variables en el programa
principal
3. Crear la llamada del subprograma con la transferencia de variables
4. Cerrar y guardar el programa principal
5. Cargar el subprograma en el editor
6. Completar la lnea DEF con variables y con IN/OUT
7. Declarar, inicializar y posiblemente manipular variables en el subprogra-
ma
8. Cerrar y guardar el subprograma
Ejemplo completo:
DEF MY_PROG( )
DECL REAL w
DECL INT a, b
w = 1.5
a = 3
b = 5
CALC(w, b, a)
; Valores actuales
; w = 3.8
; a = 13
; b = 5
END
_______________________________________
DEF CALC(ww:OUT, bb:IN, aa:OUT)
; w <-> ww, b -> bb, a <-> aa
DECL REAL ww
DECL INT aa, bb
ww = ww + 2.3 ; ww = 1.5 + 2.3 =3.8 ->w
bb = bb + 5 ; bb = 5 + 5 = 10
aa = bb + aa ; aa = 10 + 3= 13 -> a
END
Requisitos Los siguientes requisitos son necesarios para completar este ejercicio correc-
tamente:
Conocimientos de tecnologa de subprogramas
Conocimientos tericos sobre la transferencia de parmetros
Conocimientos tericos sobre funciones
Formulacin de Tarea: Completar los resultados una vez ejecutados los programas.
tarea
DEF transmit_var( )
INT A, B, C, D, E, F
A=50
B=48
C=200
D=300
E=8
F=5
Calc (C, D, A, F, B, E)
; Calculation
X1 = X1 + 211 ; X1 =
X2 = X2 - 312 ; X2 =
X3 = X2 + X3 ; X3 =
X4 = X4 * X5 ; X4 =
X5 = X5 * 8 ; X5 =
X6 = X6 40 ; X6 =
END
value = 2.0
result = CALC(value)
; value = 2.0
; result = 1000.0
END
Procedimiento 1. Determinar el valor que debe suministrar la funcin (tipo de datos de re-
para la progra- torno)
macin de 2. Determinar los parmetros que son necesarios en la funcin (tipo de datos
funciones de transferencia)
3. Determinar el tipo de transferencia de parmetros (parmetros IN u OUT)
4. Determinar si es necesaria una funcin local o global
5. Cargar un programa principal en el editor
6. Declarar, inicializar y posiblemente manipular variables en el programa
principal
7. Crear la llamada de funcin
8. Cerrar y guardar el programa principal
9. Crear la funcin (global o local)
10. Cargar la funcin en el editor
11. Completar la lnea DEFFCT con el tipo de datos, las variables y con IN/
OUT
12. Declarar, inicializar y manipular variables en la funcin
6.1 Resumen
Smbolo Tipo
Mensaje de acuse de recibo
Mensaje de estado
Mensaje de observacin
Mensaje de espera
Estructura para
remitente,
nmero de
mensaje, texto
del mensaje
Alternativa:
...
INT X
INI
FOR x=1 TO 80...
My_Message.Msg_txt[x] = " "
ENDFOR
...
Variables en el En el texto de un mensaje se debe mostrar el valor de una variable. Por ejem-
texto de mensaje plo, se debe mostrar la cantidad de piezas actual. Para ello, en el texto del
mensaje se necesitan los denominados marcadores de posicin. La cantidad
mxima de marcadores de posicin es 3. La visualizacin es %1, %2 y %3.
Por este motivo se necesitan 3 juegos de parmetros. Cada juego de parme-
tros est compuesto por la estructura KUKA KrlMsgPar_T:
Enum KrlMsgParType_T Value, Key, Empty
STRUC KrlMsgPar_T KrlMsgParType_T Par_Type, CHAR Par_txt[26], INT
Par_Int, REAL Par_Real, BOOL Par_Bool
Estructura para Cuando se emite un mensaje se transfieren otras 4 opciones de mensaje. Con
opciones de estas opciones se puede influir en el avance, el borrado de mensajes y intro-
mensaje duccin la base de datos Log.
generales Estructura KUKA predefinida: KrlMsgOpt_T
STRUC KrlMsgOpt_T BOOL VL_Stop, BOOL Clear_P_Reset, BOOL Clear_SAW,
BOOL Log_To_DB
Definicin o Con esta funcin se define un mensaje en el programa KRL. Esto significa que
emisin de un el mensaje correspondiente se procesa en la memoria intermedia de mensa-
mensaje jes interna. Excepcin: los mensajes de observacin, que no se administran
en la memoria intermedia de mensajes.
Funciones integradas para emitir un mensaje
DEFFCT INT Set_KrlMsg(Type:IN, MyMessage:OUT, Parameter[ ]:OUT,
Option:OUT)
DECL EKrlMsgType Type
DECL KrlMsg_T MyMessage
DECL KrlMsgPar_T Parameter[ ]
DECL KrlMsgOpt_T Option
Comprobacin de Con esta funcin se puede comprobar si un mensaje determinado con un han-
un mensaje dle definido existe todava. Tambin se comprueba si dicho mensaje se en-
cuentra an en la memoria intermedia de mensajes interna.
Funciones integradas para comprobar un mensaje
DEFFCT BOOL Exists_KrlMsg(nHandle:IN)
DECL INT nHandle
Borrado de un Con esta funcin se puede borrar un mensaje. Esto significa que el mensaje
mensaje correspondiente se borra de la memoria intermedia de mensajes interna.
Funciones integradas para comprobar un mensaje
DEFFCT BOOL Clear_KrlMsg(nHandle:IN)
DECL INT nHandle
Descripcin de
un mensaje de
observacin
definido por el
usuario
Funcin de un Los mensajes de observacin son idneos para mostrar informacin ge-
mensaje de neral.
observacin Slo se puede emitir un mensaje de observacin. Se puede comprobar si
definido por el el mensaje se ha recibido correctamente.
usuario Puesto que los mensajes de observacin no se administran, se pueden
emitir 3 millones aproximadamente.
Requisitos Los siguientes requisitos son imprescindibles para superar el ejercicio con
xito:
Conocimientos del lenguaje de programacin KRL
Conocimientos tericos acerca de la programacin de mensajes
Descripcin de
un mensaje de
estado definido
por el usuario
Funcin de un Los mensajes de estado son adecuados para indicar un cambio de estado
mensaje de (p. ej. la supresin de una entrada).
estado definido El programa persiste, por ejemplo, hasta que el estado desencadenante
por el usuario deja de darse.
Requisitos Los siguientes requisitos son imprescindibles para superar el ejercicio con
xito:
Conocimientos del lenguaje de programacin KRL
Conocimientos tericos acerca de la programacin de mensajes
Descripcin de
un mensaje de
acuse de recibo
definido por el
usuario
Funcin de un Los mensajes de acuse de recibo son idneos para mostrar informacin
mensaje de acuse que el usuario debe conocer.
de recibo definido El programa se detiene, por ejemplo, hasta que se confirme el mensaje.
por el usuario
No existen reacciones predefinidas del sistema de robot asociadas a
los distintos tipos de mensaje (p. ej. el robot frena o se detiene el pro-
grama). Es necesario programar las reacciones deseadas.
Requisitos Los siguientes requisitos son imprescindibles para superar el ejercicio con
xito:
Conocimientos del lenguaje de programacin KRL
Conocimientos tericos acerca de la programacin de mensajes
Descripcin de
un mensaje de
espera definido
por el usuario
Funcin de un Los mensajes de espera son adecuados para esperar a un estado y mos-
mensaje de trar el smbolo de espera.
espera definido El programa se detiene, por ejemplo, hasta que se vuelva a dar el estado
por el usuario esperado.
En la memoria intermedia de mensajes se administran 100 mensajes
como mximo.
El mensaje de espera se vuelve a borrar mediante la funcin
Clear_KrlMsg( ).
Los mensajes de espera tambin se pueden borrar mediante los ajustes
de las opciones de mensaje durante el reset del programa, al salir del pro-
grama o al seleccionar un paso.
Requisitos Los siguientes requisitos son imprescindibles para superar el ejercicio con
xito:
Conocimientos del lenguaje de programacin KRL
Conocimientos tericos acerca de la programacin de mensajes
Estructura para la
asignacin de
botones
Answer se restaura ahora con el valor del botn pulsado. Los valores
vlidos son del 1 al 7, en funcin de los nmeros de los botones pro-
gramados.
Descripcin de
un dilogo
definido por el
usuario
En todos los casos, un dilogo se puede emitir slo si no hay ningn otro
dilogo activo.
Es posible definir hasta 7 teclas de funcin programables.
Funcin de un Los dilogos son idneos para mostrar preguntas a las que el usuario
dilogo definido debe contestar.
por el usuario Con la funcin Set_KrlDlg() se emite un dilogo.
La funcin slo emite el dilogo. No espera a la respuesta del dilogo.
Con la funcin Exists_KrlDlg( ) se puede comprobar si an existe un
dilogo concreto.
Esta funcin tampoco espera a la respuesta del dilogo, sino que solo ex-
plora la memoria intermedia en busca del dilogo que tenga este handle.
La consulta en el programa KRL se debe realizar cclicamente mientras el
dilogo responda o se haya borrado de otro modo.
Se puede conseguir que el resto del flujo de programa dependa de la tecla
de funcin programable seleccionada por el usuario.
Evaluacin de botones
Requisitos Los siguientes requisitos son imprescindibles para superar el ejercicio con
xito:
Conocimientos del lenguaje de programacin KRL
Conocimientos tericos acerca de la programacin de mensajes
Definicin de un
movimiento
Descripcin SPTP se puede programar como segmento en un bloque Spline PTP o como
movimiento individual.
Existe la posibilidad de copiar un movimiento individual SPTP en un bloque
Spline PTP, pero solo si no contiene ninguna asignacin a variables del siste-
ma que estn prohibidos all.
Sintaxis SPTP Punto de destino <WITH SysVar1 = Valor1 <, SysVar2 = Valor2 , >>
<C_SPL>
Ejemplos El robot se aproxima a una posicin del fichero DAT; la posicin ha sido
programada previamente mediante formulario inline y realiza un posicio-
namiento aproximado a este punto P3
SPTP XP3 C_SPL
Sintaxis SLIN:
SLIN Punto de destino <WITH SysVar1 = Valor1 <, SysVar2 = Valor2 , , >>
<C_SPL>
SCIRC:
SCIRC Punto auxiliar, Punto de destino <, CA ngulo circular> <WITH SysVar1 =
Valor1 <,SysVar2 = Valor2 , >> <C_SPL>
SysVar
Elemento Descripcin
Valor Asignacin de valor a la variable del sistema
Para segmentos: La asignacin solo es vlida para ese
segmento.
Las variables del sistema tambin se pueden ocupar por
activacin de funcin. Para esta funcin se aplican las mis-
mas restricciones que para las funciones en el Trigger.
Ejemplos SLIN:
El robot se desplaza hasta una posicin calculada y realiza una aproxima-
cin a este punto DEPSITO[4]
SLIN ABLAGE[4] C_SPL
SCIRC
El robot se acerca a las posiciones previamente programadas del archivo
DAT y se desplaza en un ngulo circular de 190.
SCIRC XP3, XP4, CA 190
Herramienta externa
$IPO_MODE = #TCP
Velocidad
Con movimiento PTP
$VEL_AXIS[x] ; x=1...8 para cada eje
Aceleracin
Con movimiento PTP
$ACC_AXIS[x] ; x=1...8 para cada eje
Tirn
para movimiento SPTP
$GEAR_JERK[1...12] = 0 ... 100 Tirn del engranaje de los ejes A1 a
E6 en tanto por ciento (1...100)
SPTP XP10 WITH GEAR_JERK[1]=22, GEAR_JERK[2]=66
Distancia de aproximacin
en caso de SPINE pasos individuales SLIN, SCIRC y en caso de
SPTP: C_SPL
El alejamiento respecto del punto de destino debe quedar por debajo
del valor $APO.CDIS
$APO.CDIS = 250.0 ; [mm] Distancia
SPTP XP3 C_SPL
SLIN XP4 C_SPL
$ORI_TYPE = #CONSTANT
$ORI_TYPE = #VAR
$ORI_TYPE = #JOINT
$CIRC_TYPE = #PATH
$CIRC_TYPE = #BASE
Configuracin del Para movimientos SCIRC, la unidad de control del robot puede tener en cuen-
crculo SCIRC ta la orientacin programada del punto auxiliar. Si se debe tener en cuenta y
en qu medida puede determinarse por el usuario:
En caso de programacin con sintaxis KRL: mediante la variable del sis-
tema $CIRC_MODE
En caso de programacin mediante formularios inline: en la ventana de
opciones Parmetros de movimiento, pestaa Configuracin del cr-
culo
Del mismo modo, adems se puede determinar para las instrucciones SCIRC
con ngulo circular si el punto de destino debe tener la orientacin programa-
da o si la orientacin se debe continuar de acuerdo con el ngulo circular.
$CIRC_MODE solo se escribir mediante una instruccin SCIRC.
$CIRC_MODE no se puede leer.
Sintaxis KRL
Para puntos auxiliares:
$CIRC_MODE.AUX_PT.ORI = Reaccin HP
Para puntos de destino:
$CIRC_MODE.TARGET_PT.ORI = Reaccin ZP
Elemento Descripcin
Reaccin HP Tipo de datos: ENUM/men desplegable
Comporta- #INTERPOLATE: En el punto auxiliar, el TCP adopta la
miento de orientacin programada.
orientacin #IGNORE: La unidad de control del robot ignora la
en punto orientacin programada del punto auxiliar. La orienta-
auxiliar. cin de partida del TCP se convierte durante la trayec-
toria ms corta en la orientacin de destino.
#CONSIDER (por defecto):
Bsicamente existen 2 trayectorias para convertir la
orientacin de partida con un giro en la orientacin de
destino. Una corta y otra larga. Con #CONSIDER la uni-
dad de control del robot escoge la trayectoria que se
aproxime ms a la orientacin programada del punto
auxiliar. Es posible que el TCP adopte la orientacin
programada del punto auxiliar en un punto indetermina-
do de la trayectoria. Sin embargo, ste no tiene por qu
ser el caso.
Reaccin ZP Tipo de datos: ENUM/men desplegable
Comporta- #INTERPOLATE: En el punto de destino real se acepta
miento de la orientacin programada del punto de destino.
orientacin (nica posibilidad para SCIRC sin indicacin del ngulo
en punto de circular. Si #EXTRAPOLATE est ajustado, #INTER-
destino. POLATE se ejecuta igualmente.)
#EXTRAPOLATE: La orientacin se adapta al ngulo
circular:
Si el ngulo circular prolonga el movimiento, se acepta-
r la orientacin programada en el punto de destino
programado. La orientacin se contina de acuerdo con
ello hasta el punto de destino real.
Si el ngulo circular acorta el movimiento, no se alcan-
zar la orientacin programada.
(Valor por defecto para SCIRC con indicacin del ngu-
lo circular)
SP Punto de inicio
AuxP Punto auxiliar
TP Punto de destino
#CONSIDER
#CONSIDER es adecuado si el usuario desea determinar la direccin
en la que tiene que hacer el TCP el cambio de orientacin, sin que
dependa de una orientacin determinada en el punto auxiliar. El
usuario puede especificar la direccin mediante el punto auxiliar.
SP Punto de inicio
AuxP Punto auxiliar
TP Punto de destino programado
TP_CA Punto de destino real. Se obtiene por el ngulo circular.
Aclaracin de los Algunos mensajes de error contienen el texto "error por regla x"
mensajes de error En la programacin de $CIRC_MODE es necesario tener en cuenta tanto la
orientacin como los ejes externos:
1. Regla 1: #CONSIDER se permite justo cuando no se ignoran ni el punto
de inicio ni el punto de destino.
2. Regla 2: $CIRC_TYPE=#PATH se permite justo cuando no se ignoran ni
el punto de inicio ni el punto de destino.
3. Regla 3: Si $ORI_TYPE=#IGNORE o $EX_AX_IGNORE se han activado,
$CIRC_MODE ya no se evala.
4. Regla 4: si se programa un ngulo circular, queda prohibida la interpola-
cin del punto auxiliar.
5. Regla 5: justo cuando se programe un ngulo circular, podr determinar-
se el punto de destino mediante extrapolacin, siempre que no se ignoren
los puntos de inicio y de destino.
6. Regla 6: justo cuando se programe un ngulo circular, podr aceptarse el
punto de destino (interpolarse), siempre que no se ignore.
7. Regla 7: #CONSIDER la trayectoria nicamente tiene efecto con ejes ex-
ternos de rotacin continua. Con otro tipo de ejes, se escoger siempre la
trayectoria corta que corresponde a #IGNORE.
8. Regla 8: La componente TARGET_PT nicamente se tiene en cuenta
cuando hay programado un ngulo circular.
Bloque Spline, Para los bloques Spline y los movimientos individuales Spline se pueden des-
movimiento cribir las siguientes variables de sistema con la lnea WITH:
individual Spline $ACC
$ACC_AXIS
$ACC_EXTAX
$APO
$BASE
$CIRC_TYPE
$ECO_LEVEL
$GEAR_JERK
$IPO_MODE
$JERK
$LOAD
$ORI_TYPE
$ROTSYS
$SPL_ORI_JOINT_AUTO
$SYNC_ID
$SYNC_LIST
$TOOL
$VEL
$VEL_AXIS
$VEL_EXTAX
Adicionalmente para SCIRC y SLIN: $CIRC_MODE
SPTP_REL:
SPTP_RELse puede programar como segmento en un bloque Spline PTP o
como movimiento individual.
Existe la posibilidad de copiar un movimiento individual SPTP_REL en un blo-
que Spline PTP, pero solo si no contiene ninguna asignacin a variables del
sistema que estn prohibidos all.
SLIN_REL, SCIRC_REL:
SLIN_REL y SCIRC_REL se pueden programar como segmento en un bloque
Spline CP o como movimiento individual.
Existe la posibilidad de copiar un movimiento individual SLIN_REL o
SCIRC_REL en un bloque Spline CP, pero solo si no contiene ninguna asig-
nacin a variables del sistema que estn prohibidos all.
Sintaxis SPTP_REL:
SPTP_REL Punto de destino <WITH SysVar1 = Valor1 <, SysVar2 = Valor2 , >>
<C_SPL><#BASE|#TOOL>
Elemento Descripcin
Punto de Tipo: AXIS, E6AXIS, POS, E6POS, FRAME
destino
El punto de destino puede indicarse de forma cartesiana o
especfica del eje. La unidad de control interpreta las coor-
denadas en relacin a la posicin de destino del paso
anterior.
Si no se indican todos los componentes del punto de des-
tino, la unidad de control pondr a 0 los componentes que
falten. Esto quiere decir que los valores absolutos de estos
componentes no variarn.
Los datos de estado y giro, si existen, se tendrn en
cuenta por la unidad de control. (Esto ocurre contraria-
mente a SLIN_REL, SCIRC_REL y SPL_REL, donde se
ignoran)
Valor Asignacin de valor a la variable del sistema
Para segmentos SPTP: La asignacin solo es vlida para
ese segmento.
Las variables del sistema tambin se pueden ocupar por
activacin de funcin. Para esta funcin se aplican las mis-
mas restricciones que para las funciones en el Trigger.
C_SPL Con C_SPL: Se da una aproximacin del punto de des-
tino. $APO determina cundo se iniciar como muy
pronto el posicionamiento aproximado.
Solo es posible para movimientos individuales, no para
segmentos.
Sin C_SPL: El punto de destino se alcanza con exacti-
tud.
#BASE, Solo est permitido si el punto de destino se ha indicado
#TOOL de forma cartesiana.
#BASE (por defecto): Las coordenadas de este punto
de destino hacen referencia al sistema de coordenadas
que pertenece a la base fsica.
#TOOL: Las coordenadas de este punto de destino ha-
cen referencia al sistema de coordenadas que pertene-
ce a la herramienta fsica.
$IPO_MODE no influye en el significado de #BASE y
#TOOL.
SLIN_REL:
SLIN_REL Punto de destino <WITH SysVar1 = Valor1 <, SysVar2 = Valor2, , >>
<C_SPL><#BASE|#TOOL>
SCIRC_REL:
SCIRC_REL Punto auxiliar, Punto de destino <, CA ngulo circular> <WITH
SysVar1 = Valor1 <,SysVar2 = Valor2 , >> <C_SPL><#BASE|#TOOL>
Elemento Descripcin
Punto auxiliar Tipo: POS, E6POS, FRAME
Punto de des- El punto debe indicarse en coordenadas cartesianas. La
tino unidad de control interpreta las coordenadas en relacin a
la posicin de destino del movimiento anterior.
Si no se indican todos los componentes del punto, la uni-
dad de control pondr a 0 los componentes que falten.
Esto quiere decir que los valores absolutos de estos com-
ponentes no variarn.
Los datos de estado y giro, si existen, se ignorarn por la
unidad de control. (Esto contrasta con SPTP_REL, donde
se tienen en cuenta)
En el punto auxiliar se ignoran adems los ngulos de
orientacin.
El punto auxiliar no puede ser aproximado. Siempre se
ejecutar de forma exacta.
ngulo circu- Unidad: Grado; sin limitacin
lar
Valor Asignacin de valor a la variable del sistema
Para segmentos: La asignacin solo es vlida para ese
segmento.
Las variables del sistema tambin se pueden ocupar por
activacin de funcin. Para esta funcin se aplican las mis-
mas restricciones que para las funciones en el Trigger.
C_SPL Con C_SPL: Se da una aproximacin al punto de desti-
no. $APO determina cundo se iniciar como muy
pronto el posicionamiento aproximado.
Solo es posible para movimientos individuales, no para
segmentos.
Sin C_SPL: El punto de destino se alcanza con exacti-
tud.
#BASE, #BASE (por defecto): Las coordenadas de este punto
#TOOL de destino hacen referencia al sistema de coordenadas
que pertenece a la base fsica.
#TOOL: Las coordenadas de este punto de destino ha-
cen referencia al sistema de coordenadas que pertene-
ce a la herramienta fsica.
$IPO_MODE no influye en el significado de #BASE y
#TOOL.
Ejemplos de sintaxis
SPTP XHOME
SLIN XP1
Principio
En el clculo es importante tener en cuenta los ajus-
tes TOOL y BASE correctos y activarlos a continua-
cin en la programacin de movimientos. En caso de incumplimiento pueden
producirse movimientos inesperados y colisiones.
Descripcin Los valores de posicin (X, Y, Z) y de orientacin (A, B, C) del TCP no son
suficientes para determinar unvocamente la posicin del robot, ya que
con el mismo TCP son posibles varias posiciones del eje. Status y Turn
sirven para determinar una posicin unvoca desde varias posiciones del
eje posibles.
Status (S) y Turn (T) forman parte de los tipos de datos POS y E6POS:
STRUC POS REAL X, Y, Z, A, B, C, INT S, T
STRUC E6POS REAL X, Y, Z, A, B, C, E1, E2, E3, E4, E5, E6, INT S, T
La unidad de control del robot considera los valores de Status y Turn pro-
gramados solo en caso de movimientos SPTP. Se ignoran para movi-
mientos CP.
Por este motivo, la primera instruccin de movimiento en un programa
KRL debe ser una de las siguientes instrucciones para que se determine
una posicin de salida unvoca para el robot:
Una instruccin SPTP completa del tipo POS o E6POS
O bien una instruccin SPTP completa del tipo AXIS o E6AXIS
"Completa" significa que se deben indicar todos los componentes del
punto de destino. La posicin HOME por defecto siempre es una ins-
truccin PTP completa.
En las dems instrucciones se pueden omitir Status y Turn:
La unidad de control del robot conserva un valor de Status anterior.
El valor Turn resulta con el movimiento CP procedente de la trayecto-
ria.
Para los movimientos SPTP, la unidad de control del robot selecciona
el valor Turn que ofrezca el trayecto ms corto posible (es decir, no se
Funcin STATUS
La indicacin de Status (estado) evita ambigedades en la posicin de
eje.
Bit 0: indica la posicin del punto de interseccin de los ejes de la mueca
(A4, A5, A6).
Posicin Valor
rea por encima de la cabeza Bit 0 = 1
El robot se encuentra en el rea por encima de la
cabeza si el valor X del punto de interseccin de los
ejes de la mueca es negativo, referido al sistema de
coordenadas A1.
rea de base Bit 0 = 0
El robot se encuentra en el rea de base si el valor X
del punto de interseccin de los ejes de la mueca es
positivo, referido al sistema de coordenadas A1.
Posicin Valor
A3 0 Bit 1 = 1
A3 < 0 Bit 1 = 0
Posicin Valor
A5 > 0 Bit 2 = 1
A5 0 Bit 2 = 0
Descripcin Valor
El punto no se ha programado con un robot de preci- Bit 4 = 0
sin absoluta.
El punto se ha programado con un robot de precisin Bit 4 = 1
absoluta.
TURN
La indicacin de Turn (giro) tambin permite poder alcanzar ngulos de
eje superiores a +180 o inferiores a -180 , sin una estrategia de despla-
zamiento especial (por ejemplo, puntos auxiliares). En los ejes rotatorios,
los bits individuales determinan el signo que precede al valor del eje del
siguiente modo:
Bit = 0: ngulo 0
Bit = 1: ngulo < 0
Vista general de todos los ejes
Ejemplo
DECL POS XP1 = {X 900, Y 0, Z 800, A 0, B 0, C 0, S 6, T 19}
Requisitos Los siguientes requisitos son necesarios para completar este ejercicio correc-
tamente:
Conocimientos sobre campos, estructuras, bucle FOR
Conocimientos tericos sobre la manipulacin de datos
Conocimientos tericos sobre la programacin de movimientos sin formu-
lario inline
Formulacin de Se debe crear un programa con el que se recojan 16 cubos del depsito de
tarea cubos y se depositen en las posiciones previstas sobre la mesa. A continua-
cin se debern recoger de nuevo todos los cubos y llevarse de vuelta al de-
psito de cubos.
Todas las posiciones para el desplazamiento deben calcularse tomando
como base una posicin programada. Los desplazamientos a las posiciones
de descarga tambin se debern realizar mediante posiciones previas calcu-
ladas. Las distancias entre las distintas posiciones de descarga son, en todos
los lados, de 80 mm respectivamente. La distancia entre la posicin de des-
carga y la posicin previa debe ser de 100 mm.
Tarea parcial 1: Plan de ejecucin del programa
Crear un PEP para la tarea descrita.
Tarea parcial 2: Clculo de las posiciones de descarga
1. Crear la posicin de inicio mediante un formulario en lnea.
2. Crear variables adecuadas para el clculo de las posiciones de descarga.
3. Inicializar las variables con valores iniciales adecuados.
4. Calcular las 16 posiciones de descarga en la mesa de trabajo.
Fig. 7-19
Fig. 7-20
Adems de los pasos individuales con SPTP, SLIN, SCIRC y de los mo-
vimientos relativos, se dispone de un "bloque SPLINE".
El bloque SPLINE se visualiza y se planifica como movimiento nico con
una "trayectoria compleja".
Existen dos clases de bloques SPLINE:
Bloque SPLINE CP: Spline con movimientos CP (SPL, SLIN, SCIRC)
Bloque SPLINE PTP: Spline con movimientos exclusivamente en la
zona del eje (solo SPTP)
Concepto de bloque: un bloque SPLINE es un conjunto de movimientos
con un TOOL, un BASE y un IPO_MODE, pero con velocidades y acele-
raciones diferentes en cada segmento.
La trayectoria se planifica con todos los puntos, pasando por todos ellos.
La trayectoria se calcula previamente en su totalidad. De este modo se co-
noce todo y la planificacin ubicar perfectamente a la trayectoria en la
zona de trabajo de los ejes.
El Spline no puede desactivar la fsica. En las trayectorias que tienen con-
tornos muy estrechos, la velocidad siempre se reduce, ya que los ejes de
los robots son siempre los elementos que actan como limitacin.
Dentro de un bloque spline no se necesita ninguna aproximacin, ya que
tiene lugar una trayectoria continua por todos los puntos. A pesar de ello,
existen casos en los que la velocidad de trayectoria cae a 0 m/s.
Podrn configurarse tambin otras funciones como la "velocidad constan-
te" o el "tiempo fijo definido".
Si el robot se desplaza a puntos que se encuentran sobre una superficie
de trabajo, al desplazar al primer punto se puede producir una colisin con
la superficie de trabajo.
Excepciones:
Si se suceden una serie de segmentos SLIN que crean una recta y que
cambian la orientacin uniformemente, la velocidad no se reduce.
Pos. Observacin
1 posicin programada por aprendizaje con la orientacin
correspondiente
2 posicin interpolada
3 posicin programada por aprendizaje con la orientacin
correspondiente, su orientacin no se acepta
Bloque Spline En los segmentos de un bloque Spline se puede realizar una seleccin de pa-
so.
Bloque Spline CP:
El desplazamiento COI se ejecuta como movimiento LIN convencional.
Esto se avisa mediante un mensaje que deber confirmarse.
Bloque Spline PTP:
El desplazamiento COI se ejecuta como movimiento PTP convencional.
No se notifica con un mensaje.
Tras una seleccin de paso, generalmente la trayectoria se desplaza al igual
que cuando se desplaza el Spline durante la ejecucin normal del programa.
Pueden darse excepciones, como en caso de que el Spline no se haya des-
plazado nunca antes de la seleccin de paso y, siempre y cuando, la selec-
cin de paso se haya ejecutado al inicio del bloque Spline:
El punto de inicio del movimiento Spline es el ltimo punto antes del bloque
Spline, es decir, el punto de inicio est situado fuera del bloque. La unidad de
control del robot guarda el punto de inicio durante la ejecucin normal de un
Spline. De este modo, se reconoce en caso de que se vaya a realizar poste-
riormente una seleccin de paso. No obstante, si todava no se ha desplazado
el bloque Spline, esto indica que el punto de inicio no es conocido.
Si despus del desplazamiento COI se pulsa la tecla de inicio, la trayectoria
alterada se anuncia mediante un mensaje que deber confirmarse.
Ejemplo: Trayectoria modificada en seleccin de paso en P1
1 PTP P0
2 SPLINE
3 SPL P1
4 SPL P2
5 SPL P3
6 SPL P4
7 SCIRC P5, P6
8 SPL P7
9 SLIN P8
10 ENDSPLINE
Lnea Descripcin
2 Encabezamiento/inicio del bloque Spline CP
39 Segmentos Spline
10 Fin del bloque Spline CP
SPL {X 204, Y 0}
ENDSPLINE
Solucin:
Distribuir las distancias de puntos de forma ms constante
Programar las rectas (excepto las rectas muy cortas) como segmentos
SLIN
Descripcin Para sustituir los movimientos CP convencionales aproximados por los movi-
mientos Spline, se debe modificar el programa de la siguiente manera:
Substituir LIN - LIN por SLIN - SPL - SLIN.
Substituir LIN - CIRC por SLIN - SPL - SCIRC.
Recomendacin: Dejar que el SPL se adentre un poco en el crculo origi-
nal. De este modo el SCIRC se inicia ms tarde que el CIRC original.
En caso de movimientos aproximados se programa el punto de esquina. Por
el contrario, en el bloque Spline se programan puntos tanto en el inicio de la
aproximacin como en el final de la aproximacin.
El movimiento aproximado siguiente debe reproducirse:
LIN P1 C_DIS
LIN P2
Movimiento Spline:
SPLINE
SLIN P1A
SPL P1B
SLIN P2
ENDSPLINE
Movimiento Spline:
SPLINE WITH $VEL.CP=0.5
SLIN {Z 30}
SPL {Y 30, Z 10}
SLIN {Y 60}
ENDSPLINE
Bloque spline CP SPLINE ENDSPLINE define un bloque Spline CP. Un bloque Spline CP
KRL puede contener:
Segmentos SLIN, SCIRC y SPL (cantidad limitada por la capacidad de la
memoria.)
PATH-Trigger
1 bloque de tiempo (TIME_BLOCK )
o 1 zona de desplazamiento constante (CONST_VEL )
STOP WHEN PATH
Comentarios
Lneas vacas
El bloque no debe contener otras instrucciones, p. ej. asignaciones de varia-
bles o instrucciones lgicas.
Sintaxis
SPLINE < WITH SysVar1 = Valor1 <, SysVar2 = Valor2, > >
Segmento1
<SegmentoN>
ENDSPLINE <C_SPL>
Elemento Descripcin
SysVar
Valor Asignacin de valor a la variable del sistema. El valor no
es vlido para los segmentos a los que se haya asignado
un valor propio. Exceptuando este caso, el valor es vlido
como ocurre habitualmente hasta que se asigne un valor
nuevo a la variable del sistema.
Las variables del sistema tambin se pueden ocupar por
activacin de funcin. Para esta funcin se aplican las mis-
mas restricciones que para las funciones en el Trigger.
C_SPL Con C_SPL: Se da una aproximacin al punto de desti-
no. $APO determina cundo se iniciar como muy
pronto el posicionamiento aproximado.
Sin C_SPL: El punto de destino se alcanza con exacti-
tud.
SPLINE
SPL P1
TRIGGER WHEN PATH=GET_PATH() ONSTART DELAY=0 DO SUBPROG() PRIO=-1
SPL P2
SLIN P3
SPL P4
SCIRC P5, P6 WITH $VEL.CP=0.2
SPL P7 WITH $ACC={CP 2.0, ORI1 200, ORI2 200}
SCIRC P8, P9
SPL P10
ENDSPLINE
Bloque spline PTP_SPLINE ENDSPLINE define un bloque Spline PTP. Un bloque Spline
PTP KRL PTP puede contener:
Segmentos SPTP (cantidad limitada por la capacidad de la memoria).
PATH-Trigger
1 bloque de tiempo (TIME_BLOCK )
STOP WHEN PATH
Comentarios
Lneas vacas
El bloque no debe contener otras instrucciones, p. ej. asignaciones de varia-
bles o instrucciones lgicas.
Sintaxis
PTP_SPLINE < WITH SysVar1 = Valor1 <, SysVar2 = Valor2, > >
Segmento1
<SegmentoN>
ENDSPLINE <C_SPL>
Elemento Descripcin
SysVar
Valor Asignacin de valor a la variable del sistema. El valor no
es vlido para los segmentos a los que se haya asignado
un valor propio. Exceptuando este caso, el valor es vlido
como ocurre habitualmente hasta que se asigne un valor
nuevo a la variable del sistema.
Las variables del sistema tambin se pueden ocupar por
activacin de funcin. Para esta funcin se aplican las mis-
mas restricciones que para las funciones en el Trigger.
C_SPL Con C_SPL: Se da una aproximacin al punto de desti-
no. $APO determina cundo se iniciar como muy
pronto el posicionamiento aproximado.
Sin C_SPL: El punto de destino se alcanza con exacti-
tud.
Sintaxis
SPL:
SPL Punto de destino < WITH SysVar1 = Valor1 <,SysVar2 = Valor2 , >>
SLIN:
SLIN Punto de destino <WITH SysVar1 = Valor1 <, SysVar2 = Valor2 , , >>
<C_SPL>
SCIRC:
SCIRC Punto auxiliar, Punto de destino <, CA ngulo circular> <WITH
SysVar1 = Valor1 <,SysVar2 = Valor2 , >> <C_SPL>
SPTP:
SPTP Punto de destino <WITH SysVar1 = Valor1 <, SysVar2 = Valor2 , >>
<C_SPL>
Elemento Descripcin
Punto auxi- Tipo: POS, E6POS, FRAME
liar
Las coordenadas hacen referencia al sistema de coorde-
Punto de nadas BASE.
destino
Si no se indican todos los componentes del punto de des-
tino, la unidad de control adopta los valores de la posicin
anterior para los componentes que faltan. Si esta posicin
anterior es el punto de destino de un circuito con ngulo
circular, existe la siguiente diferencia:
Si la posicin anterior se encuentra fuera de un bloque
Spline, se aceptarn los valores del punto de destino
realmente alcanzado y no del punto de destino progra-
mado.
Si la posicin anterior se encuentra en un bloque Spli-
ne, se aceptarn los valores del punto de destino pro-
gramado y no del punto de destino realmente
alcanzado.
Si ninguna posicin anterior es conocida para la unidad de
control del robot, los componentes que falten se aceptarn
de la posicin actual del robot.
ngulo cir- Unidad: Grado; sin limitacin
cular
SysVar
Valor Asignacin de valor a la variable del sistema
Para segmentos: La asignacin solo es vlida para ese
segmento.
Las variables del sistema tambin se pueden ocupar por
activacin de funcin. Para esta funcin se aplican las mis-
mas restricciones que para las funciones en el Trigger.
Segmento Spline Para los segmentos Spline se pueden describir las siguientes variables de sis-
tema con la lnea WITH:
$ACC
$ACC_AXIS
$ACC_EXTAX
$CIRC_TYPE
$EX_AX_IGNORE
$GEAR_JERK
$JERK
$ORI_TYPE
$ROTSYS
$SYNC_ID
$VEL
$VEL_AXIS
$VEL_EXTAX
Adicionalmente para SCIRC y SLIN: $CIRC_MODE
8
T
Trabajar con variables de sistema
8.1 Resumen
j
Descripcin de la
medicin del
tiempo ciclo con
el temporizador
de sistema de
KUKA
Fig. 8-1
$TIMER[1]
$TIMER[2]
...
$TIMER[32]
Las variables de sistema $TIMER[Nr] sirven para medir procesos temporales.
$TIMER[12] = 1500
SPTP XP1
SPTP XP2
SLIN XP3
...
SPTP X50
SPTP XHOME
Requisitos Los siguientes requisitos son necesarios para completar este ejercicio correc-
tamente:
Conocimientos sobre variables de sistema $TIMER[x].
9 Programacin de interrupcin
9.1 Resumen
Descripcin de
rutinas de
interrupcin
Global
Una interrupcin recin se reconoce a partir del nivel en el cual fue de-
clarada.
Programa de interrupcin
Nombre del programa de interrupcin que debe ejecutarse.
Este subprograma se denomina Programa de interrupcin.
Las variables de duracin temporal no se pueden transmitir como pa-
rmetros al programa de interrupcin.
Se permiten variables declaradas en una lista de datos o bien median-
te transferencia de variables.
Rebotes de teclas
Si existe el riesgo de que una interrupcin se desencadene, por error,
dos veces debido a la sensibilidad de un sensor ("rebotes de teclas"),
puede evitarse desactivando la interrupcin en la primera lnea del programa
de interrupcin.
Sin embargo, se ha de tener presente que aqu tampoco se detectar, en
ningn momento, una interrupcin real durante el procesamiento de la inte-
rrupcin. Antes de retroceder, si tiene que continuar estando activa la inte-
rrupcin, se debe volver a conectar.
INI
INTERRUPT DECL 25 WHEN $IN[99]==TRUE DO ERROR( )
END
_________________________________________________
DEF ERROR()
END
INI
INTERRUPT DECL 25 WHEN $IN[99]==TRUE DO ERROR( )
INTERRUPT ON 25
...
...
INTERRUPT OFF 25
END
_________________________________________________
DEF ERROR()
END
INI
INTERRUPT DECL 25 WHEN $IN[99]==TRUE DO ERROR( )
INTERRUPT ON 25
SPTP XHOME
SPTP XP1
SPTP XP2
SPTP XHOME
INTERRUPT OFF 25
END
_________________________________________________
DEF ERROR()
$OUT[20]=FALSE
$OUT[21]=TRUE
END
Variables tiles
del sistema para
parada exacta
Variables de
sistema tiles en
caso de aproxi-
macin
Requisitos Los siguientes requisitos son necesarios para completar este ejercicio correc-
tamente:
Conocimientos del lenguaje de programacin KRL
Conocimientos tericos sobre la programacin de interrupciones
INI
INTERRUPT DECL 25 WHEN $IN[99]==TRUE DO ERROR( )
INTERRUPT ON 25
...
...
INTERRUPT OFF 25
END
_________________________________________________
DEF ERROR()
END
INI
Frenar el El robot se detiene con BRAKE y debe realizar una nueva trayectoria una
movimiento del vez finalizada la rutina de interrupcin. Para ello se puede utilizar la ins-
robot y cancelar truccin RESUME.
movimientos El robot se detiene con BRAKE y pasa a la rutina de interrupcin. Una vez
"antiguos" finalizada la rutina de interrupcin, no se debe continuar con la primera,
sino que se debe realizar una nueva planificacin de trayectoria. Para ello
se puede utilizar tambin la instruccin RESUME.
El robot debe poder avanzar al punto de destino del movimiento SCIRC como
SLIN sin peligro desde cualquier posicin posible en la que se pueda encon-
trar durante RESUME.
INI
INTERRUPT DECL 25 WHEN $IN[99]==TRUE DO ERROR( )
...
END
_________________________________________________
DEF ERROR()
...
END
INI
INTERRUPT DECL 25 WHEN $IN[99]==TRUE DO ERROR( )
SEARCH()
END
_________________________________________________
DEF SEARCH()
INTERRUPT ON 25
SPTP XHOME
SPTP XP1
SPTP XP2
SPTP XHOME
WAIT SEC 0 ; Detener puntero de movimiento de avance
INTERRUPT OFF 25
END
_________________________________________________
DEF ERROR()
...
END
INI
INTERRUPT DECL 25 WHEN $IN[99]==TRUE DO ERROR( )
SEARCH()
END
_________________________________________________
DEF SEARCH()
INTERRUPT ON 25
SPTP HOME
SPTP XP1
SPTP XP2
SPTP XHOME
WAIT SEC 0 ; Detener puntero de movimiento de avance
INTERRUPT OFF 25
END
_________________________________________________
DEF ERROR()
BRAKE
SPTP $POS_INT
RESUME
END
Requisitos Los siguientes requisitos son necesarios para completar este ejercicio correc-
tamente:
Conocimientos del lenguaje de programacin KRL
Conocimientos tericos sobre la programacin de interrupciones
Conocimientos tericos sobre las instrucciones KRL para frenar y cance-
lar el movimiento del robot y su correcta aplicacin
END
___________________________________________
DEF located( )
INTERRUPT OFF 21
BRAKE
;pick_part
RESUME
END
3. Cuando se desencadena una interrupcin?
.............................................................
.............................................................
10.1 Resumen
s
Descripcin de Generalidades
funciones de La unidad de control del robot puede administrar, como mximo, 4096 en-
conmutacin tradas digitales4096 y 4096 salidas digitales.
sencillas De manera opcional, pueden ampliarse a travs de WorkVisual hasta 8192
entradas digitales y 8192 salidas digitales.
Las entradas/salidas se realizan a travs de sistemas de buses de campo
opcionales
La configuracin es especfica del cliente
La proyeccin se realiza a travs de WorkVisual
Fig. 10-1
$OUT[10]=FALSE
Descripcin
Mediante la conmutacin de una salida se genera una parada del movi-
miento de avance, de este modo el movimiento no podr programarse por
aproximacin
...
SLIN XP20 C_SPL
SLIN XP21
$OUT[30]=TRUE
SLIN XP22
Descripcin
Mediante la utilizacin de la instruccin CONTINUE, se suprime la parada
del movimiento de avance y, de este modo, se conmutar con el avance.
La aproximacin es posible con CONTINUE.
CONTINUE se refiere nicamente a la lnea siguiente (incluyendo lneas
en blanco).
...
SLIN XP20
SLIN XP21 C_SPL
CONTINUE
$OUT[30]=TRUE
SLIN XP22
Conmutacin de Sintaxis
una salida con el Conmutacin de una salida con el puntero principal y sin parada del mo-
puntero principal vimiento de avance
$OUT[10]_C=TRUE
Descripcin
Se pueden conectar hasta 8 salidas referidas a la ejecucin principal y sin
parada del movimiento de avance
En caso de que haya una parada exacta programada, se conectar al al-
canzar el punto de destino
En caso de que haya una aproximacin programada, se conectar en el
centro del movimiento de aproximacin del punto de destino
...
SLIN XP20
$OUT_C[30]=TRUE
SLIN XP21 C_SPL
SLIN XP22
Elemento Descripcin
Seal Tipo: BOOL
Salida en la que se genera el impulso. Son admisibles:
OUT[Nr]
Variable de seal
Nivel Tipo: BOOL
Expresin lgica:
TRUE hace referencia a un impulso positivo (alto).
FALSE hace referencia a un impulso negativo (ba-
jo).
Duracin del Tipo: REAL
impulso
p. ej. 1.000.000 de segundos
Descripcin
PULSE activa un impulso.
As, la salida se pone a un nivel definido durante un tiempo determinado
y, a continuacin, el sistema la restablece automticamente.
La instruccin PULSE provoca una parada del procesamiento en avance.
Ejemplo:
PULSE ($OUT[30], TRUE, 20); Impulso positivo
Descripcin El Trigger lanza una instruccin definida por el usuario. La unidad de control
del robot ejecuta la instruccin de forma paralela al movimiento del robot.
El Trigger puede referirse opcionalmente al punto de inicio o de destino del
movimiento. La instruccin se puede activar directamente en el punto de re-
ferencia o an se puede desplazar en el espacio y/o temporalmente.
Posibilidades de la programacin
Formulario inline, ventana de opciones lgica Trigger
Elemento Descripcin
ONSTART Punto de referencia del Trigger
Con ONSTART: Punto de inicio
Sin ONSTART: Punto de destino
Mx. desplaza- El punto de conexin solo se puede desplazar hasta lmites determinados. Si
miento se programan desplazamientos mayores y, de este modo, no vlidos, la uni-
dad de control del robot conecta el Trigger como muy tarde en el lmite permi-
tido. Para ello, emite un mensaje en T1/T2.
Desplazamiento mximo para trayecto + valor de tiempo negativo:
Los lmites son vlidos para el desplazamiento total que se obtiene del des-
plazamiento en el espacio y temporal negativo.
Restricciones Los valores para DELAY y PATH se pueden asignar mediante funciones. Las
para funciones en funciones tienen las restricciones siguientes:
el Trigger El programa KRL que contiene la funcin debe tener la propiedad Oculto.
La funcin debe ser vlida globalmente.
Las funciones solo deben contener las siguientes instrucciones o elemen-
tos:
Asignaciones de valores
Instrucciones IF
Comentarios
Lneas vacas
RETURN
Leer la variable del sistema
Activar la funcin KRL predefinida
Pos. Explicacin
1 punto de frenado calculado en funcin de la carrera y la
velocidad
2 punto de parada predefinido (mediante formulario inline o
KRL)
3 posible anulacin de la expresin booleana -> aceleracin
de la velocidad programada
1 SPTP P1
2 SLIN P2
3 STOP WHEN PATH = -30 IF $IN[20]==TRUE ; se detiene 30 mm antes de
P3, en caso de que la entrada 20 sea TRUE
4 SLIN P3
5 SLIN P4
Descripcin En un bloque Spline CP, se puede definir una zona en la que el robot mantiene
constante la velocidad programada, siempre y cuando sea posible. El margen
se denomina "Zona de desplazamiento constante".
Para cada bloque Spline CP se puede definir 1 zona de desplazamiento
constante.
La zona de desplazamiento constante se define mediante una instruccin
de inicio y una instruccin de final.
La zona no puede superar el bloque Spline.
La zona puede ser tan pequea como se desee.
Elemento Descripcin
ONSTART Punto de referencia de la instruccin
Con ONSTART: Punto de inicio
Sin ONSTART: Punto de destino
Si se ha realizado el posicionamiento aproximado al punto
de inicio o de destino, el punto de referencia se genera de
la misma manera que durante el posicionamiento aproxi-
mado homogneo del PATH-Trigger.
Ejemplo
Aqu la zona de desplazamiento constante se extiende a varios segmentos
con diferentes velocidades programadas. La velocidad ms baja, es decir,
0,2 m/s, se aplica en este caso para la zona completa.
1 PTP P0
2 SPLINE WITH $VEL.CP = 2.5
3 SLIN P1
4 CONST_VEL START = +100
5 SPL P2 WITH $VEL.CP = 0.5
6 SLIN P3 WITH $VEL.CP = 0.2
7 SPL P4 WITH $VEL.CP = 0.4
8 CONST_VEL END = -50
9 SCIRC P5, P6
10 SLIN P7
11 ENDSPLINE
Elemento Descripcin
Parte Tipo: INT o REAL; constante, variable o funcin
Parte deseada del Tiempo total para el siguiente trayecto:
Desde el punto antes de TIME_BLOCK
PART=parte_anterior
hasta el punto antes de TIME_BLOCK PART=parte
Si parte_anterior no existe:
Desde el punto antes de TIME_BLOCK START
hasta el punto antes de TIME_BLOCK PART=parte
"Parte desead" significa: Las partes se mantienen de la
forma ms exacta posible por la unidad de control del
robot. Aunque por regla general no se mantienen de forma
exacta.
El usuario puede asignar las parte de forma que conjunta-
mente de como resultado 100. De este modo podr consi-
derar las partes como porcentaje del Tiempo total.
Aunque las partes no deben dar como resultado 100, sino
que pueden dar como resultado una suma cualquiera. La
unidad de control del robot siempre iguala la suma de las
partes con Tiempo total. De este modo, las partes se pue-
den utilizar de una forma muy flexible y tambin se pueden
modificar.
Si se asignan partes, siempre deber haber un
TIME_BLOCK PART directamente delante de
TIME_BLOCK END. Entremedias no deber haber seg-
mentos.
Tiempo total Tipo: INT o REAL; constante, variable o funcin; unidad: s
Tiempo durante el que se recorre el siguiente trayecto:
Desde el punto antes de TIME_BLOCK START
hasta el punto antes de TIME_BLOCK END
El valor debe ser superior a 0. El tiempo total se mantiene
de forma exacta. Si no se puede mantener, p. ej. porque se
ha programado un tiempo demasiado corto, el robot se
desplaza con el tiempo ms rpido posible. En T1 y T2 se
muestra adems un mensaje.
Ejemplo
SPLINE
SLIN P1
SPL P2
TIME_BLOCK START
SLIN P3
TIME_BLOCK PART = 12.7
SPL P4
SPL P5
SPL P6
TIME_BLOCK PART = 56.4
SCIRC P7, P8
SPL P9
TIME_BLOCK PART = 27.8
TIME_BLOCK END = 3.9
SLIN P10
ENDSPLINE
El bloque de tiempo se ha
Seleccin de paso en la lnea...
planificado?
en el bloque Spline, antes de S
TIME_BLOCK START
TIME_BLOCK START No
en el bloque de tiempo El bloque Spline se ejecutar si no
TIME_BLOCK END existieran instrucciones
en el bloque Spline, despus de TIME_BLOCK.
TIME_BLOCK END
11 Interpretador Submit
t
11.1 Resumen
t
Relaciones en la
Atencin!
programacin del El interpretador Submit no puede utilizarse para
interpretador aplicaciones crticas con respecto al tiempo! En estos casos deber utilizar-
Submit se un PLC. Causas:
El interpretador Submit comparte la capacidad del sistema con el inter-
pretador de robots y la gestin de E/S con la mayor prioridad. Por esta
razn, el interpretador Submit no se ejecuta regularmente en el ciclo de
interpolacin de 12 ms de la unidad de control del robot.
Adems, el tiempo de ejecucin del interpretador Submit es irregular. El
tiempo de ejecucin del interpretador Submit depender del nmero de
lneas en el programa SUB. Las lneas de comentarios y las lneas va-
cas tambin influyen.
Advertencia
No se comprobar si los interpretadores Submit y de
robots acceden simultneamente a la misma salida, ya que esto puede ser
lo que se desee que ocurra en determinados casos.
Por esta razn, el usuario deber verificar con atencin la asignacin de las
salidas. De lo contrario pueden producirse seales de salida inesperadas,
como por ejemplo en los dispositivos de seguridad. Como consecuencia po-
dran ocasionarse importantes daos materiales, lesiones graves e incluso
la muerte.
Advertencia
En la medida de lo posible, no utilizar el interpreta-
dor Submit para modificar las seales y variables crticas con respecto al
tiempo.
12
2
Trabajos con seales analgicas
T
12.1
j
Resumen
s
Descripcin
value = $ANIN[2]
...
value = sensor
...
DEF myprog( )
SIGNAL sensor $ANIN[3]
...
ANIN ON value = 1.99*sensor-0.75
...
ANIN OFF sensor
Ejemplo 2:
DEFDAT myprog
DECL REAL value = 0
DECL REAL corr = 0.25
DECL REAL offset = 0.45
ENDDAT
DEF myprog( )
SIGNAL sensor $ANIN[7]
...
ANIN ON value = corr*sensor-offset
...
ANIN OFF sensor
Procedimiento
El requisito para utilizar las seales analgicas es
para programar proyectar correctamente el sistema de bus con las
con entradas seales analgicas conectadas.
analgicas
Programacin de ANIN ON/OFF
1. Seleccin de la entrada analgica correcta.
2. Ejecucin de la declaracin de seal.
3. Declaracin de las variables necesarias en una lista de datos.
4. Conectar: programacin de la instruccin ANIN ON.
5. Comprobacin de que haya 3 entradas dinmicas activas como mximo.
6. Desconectar: programacin de la instruccin ANIN OFF.
Descripcin
Funcin
Se pueden utilizar, como mximo, 8 salidas analgi-
cas al mismo tiempo (estticas y dinmicas juntas).
ANOUT genera una parada del movimiento de avance.
Pos. Descripcin
1 Nmero de la salida analgica
CHANNEL_1 CHANNEL_32
2 Factor para la tensin
0 1 (graduacin: 0.01)
Elemento Descripcin
Tiempo Tipo: REAL
Unidad: Segundos. Con la palabra clave DELAY y una indi-
cacin de tiempo positiva o negativa, se puede emitir una
seal de salida con retardo (+) o adelanto (-).
Valor mnimo, Tipo: REAL
valor mximo
Tensin mnima y/o mxima que debe existir en la salida.
No se sobrepasa ni por encima ni por debajo, ni siquiera si
los valores calculados estn por encima o por debajo.
Valores permitidos: -1,0 a +1,0 (corresponde de -10 V a
+10 V).
Puede ser una constante, una variable, un componente
estructural o un elemento de campo. El valor mnimo debe
ser en cualquier caso menor al valor mximo. Debe respe-
tarse la secuencia de las palabras clave MINIMUM y
MAXIMUM.
Ejemplo 2
DEFDAT myprog
DECL REAL corr = 1.45
DECL REAL offset = 0.25
ENDDAT
DEF myprog( )
SIGNAL motor $ANOUT[7]
...
ANOUT ON motor = corr*$VEL_ACT-offset
...
ANOUT OFF motor
Procedimiento
El requisito para utilizar las seales analgicas es
para programar proyectar correctamente el sistema de bus con las
con salidas seales analgicas conectadas.
analgicas
Programacin de ANOUT ON/OFF
1. Seleccin de la salida analgica correcta.
2. Ejecucin de la declaracin de seal.
3. Declaracin de las variables necesarias en una lista de datos.
4. Conectar: programacin de la instruccin ANOUT ON.
5. Comprobacin de que haya 4 salidas dinmicas activas como mximo.
6. Desconectar: programacin de la instruccin ANOUT OFF.
Ejemplo:
DEF myprog( )
SIGNAL motor $ANOUT[3]
...
ANOUT ON motor = 3.375*$VEL_ACT MINIMUM=0.30 MAXIMUM=0.97
...
ANOUT OFF motor
Requisitos Los siguientes requisitos son necesarios para completar este ejercicio correc-
tamente:
Conocimientos tericos sobre las declaraciones de seales
Conocimientos tericos sobre la integracin de entradas/salidas analgi-
cas
Formulacin de Configure su sistema de modo que pueda modificar el override del programa
tarea mediante una entrada analgica. Adems, la velocidad real de desplazamien-
to del robot debe controlar una salida analgica.
Tarea parcial 1
1. Cree un programa con el nombre Velocidad.
2. Utilice la entrada analgica 1 controlada mediante el potencimetro.
3. Modifique el override del programa en el interpretador Submit.
4. Compruebe su programa segn prescripcin.
Tarea parcial 2
1. Ample su programa con movimientos de trayectoria (velocidad: hasta 2
m/s) que formen parte de un bucle infinito.
2. Utilice la salida analgica 1, visualizacin en panel.
3. Utilizar la variable de sistema $VEL_ACT para la velocidad de desplaza-
miento actual.
4. Comprobar el programa conforme a lo prescrito.
5. Adicionalmente: si la velocidad es inferior a 0,2 m/s, se debe excitar la sa-
lida de todos modos con 1.0 V; si la velocidad es superior a 1,8 m/s, la sa-
lida no debe emitir ms de 9.0 V.
13 Anexo
A
Definicin de un
movimiento
Elemento Descripcin
Punto auxiliar Tipo: POS, E6POS, FRAME
Si no se indican todos los componentes del punto auxiliar,
la unidad de control adopta los valores de la posicin ante-
rior para los componentes que faltan.
En principio, el ngulo de orientacin y las informaciones
sobre el estado y el giro dentro de un punto auxiliar no se
tienen en cuenta.
El punto auxiliar no puede ser aproximado. Se ejecuta
durante el modo de ejecucin del programa GO. Durante el
modo de ejecucin del programa Movimiento, el robot se
detiene en el punto auxiliar.
Las coordenadas hacen referencia al sistema de coorde-
nadas BASE.
Punto de des- Tipo: POS, E6POS, FRAME
tino
Si no se indican todos los componentes del punto de des-
tino, la unidad de control adopta los valores de la posicin
anterior para los componentes que faltan.
Las informaciones sobre el estado y el giro dentro de un
punto de destino del tipo POS o E6POS no se tienen en
cuenta para los movimientos CIRC (al igual que ocurre con
los movimientos LIN).
Las coordenadas hacen referencia al sistema de coorde-
nadas BASE.
Elemento Descripcin
ngulo circu- Indica el ngulo total del movimiento circular. Permite pro-
lar longar el movimiento ms all del punto de destino progra-
CA mado o acortarlo. Esto significa que el punto de destino
real no incluir el punto de destino programado.
Unidad: Grados. Ninguna limitacin; se puede programar
en particular un ngulo circular de ms de 360.
ngulo circular positivo: la trayectoria circular se
desplaza en direccin punto de inicio punto auxi-
liar punto de destino.
ngulo circular negativo: la trayectoria circular se
desplaza en direccin punto de inicio punto de
destino punto auxiliar.
Apro- Este parmetro consigue que se produzca una aproxima-
ximacin de cin del punto de destino. Adems determina cuando se
trayectoria iniciar, como muy pronto, la aproximacin. Los datos
posibles son:
C_DIS
Parmetros de distancia: La aproximacin comien-
za, como muy pronto, cuando la distancia con res-
pecto al punto de destino queda por debajo del
valor de $APO.CDIS.
C_ORI
Parmetros de orientacin: La aproximacin co-
mienza, como muy pronto, cuando el ngulo de
orientacin dominante queda por debajo del valor
de $APO.CORI.
C_VEL
Parmetros de velocidad: La aproximacin comien-
za, como muy pronto, cuando la velocidad durante
la fase de frenado queda por debajo del valor de
$APO.CVEL.
ngulo circular CA
Herramienta externa
$IPO_MODE = #TCP
Velocidad
Con movimiento PTP
$VEL_AXIS[x] ; x=1...8 para cada eje
Aceleracin
Con movimiento PTP
$ACC_AXIS[x] ; x=1...8 para cada eje
Tirn
para movimiento SPTP
$GEAR_JERK[1...12] = 0 ... 100 Tirn del engranaje de los ejes A1 a
E6 en tanto por ciento (1...100)
SPTP XP10 WITH GEAR_JERK[1]=22, GEAR_JERK[2]=66
Distancia de aproximacin
en caso de SPINE pasos individuales SLIN, SCIRC y en caso de
SPTP: C_SPL
El alejamiento respecto del punto de destino debe quedar por debajo
del valor $APO.CDIS
$APO.CDIS = 250.0 ; [mm] Distancia
SPTP XP3 C_SPL
SLIN XP4 C_SPL
$ORI_TYPE = #CONSTANT
$ORI_TYPE = #VAR
$ORI_TYPE = #JOINT
$CIRC_TYPE = #PATH
$CIRC_TYPE = #BASE
13.2.1 $ACC
13.2.2 $ACC_AXIS
Aclaracin de la
Elemento Descripcin
sintaxis
Nmero del Tipo: INT
eje
1 6: eje del robot A1 A6
Aceleracin Tipo: INT; unidad: %
1 100
13.2.3 $ACC_EXTAX
Aclaracin de la
Elemento Descripcin
sintaxis
Nmero del Tipo: INT
eje
1 6: eje adicional E1 E6
Aceleracin Tipo: INT; unidad: %
1 100
13.2.4 $APO
Aclaracin de la
Elemento Descripcin
sintaxis
CVEL Tipo: INT; unidad: %
Parmetros de velocidad
1 100
El parmetro de aproximacin indica con qu porcentaje
de la velocidad programada comienza como mnimo la
aproximacin en la fase de frenado hacia el punto de des-
tino.
CPTP Tipo: INT; unidad: %
Distancia de aproximacin para movimientos PTP y PTP
Spline (= distancia antes del punto de destino en la que
comienza como mnimo la aproximacin)
1 100
Explicacin sobre los parmetros de aproximacin:
(>>> "CPTP" Pgina 241)
Indicacin: Los movimientos PTP Spline (SPTP) pueden
programarse a partir del KUKA System Software 8.3.
CDIS Tipo: REAL; unidad: mm
Parmetros de distancia
El posicionamiento aproximado comienza, como muy
pronto, cuando la distancia con respecto al punto de des-
tino queda por debajo del valor indicado aqu.
CORI Tipo: REAL; unidad:
Parmetros de orientacin
La aproximacin comienza como mnimo cuando el ngulo
de orientacin dominante (giro o basculacin del eje longi-
tudinal de la herramienta) queda por debajo de la distancia
angular con respecto al punto de destino indicada aqu.
13.2.5 $BASE
13.2.6 $CIRC_TYPE
Sintaxis $CIRC_TYPE=tipo
Aclaracin de la
Elemento Descripcin
sintaxis
Tipo Tipo: ENUM
#BASE: Control de orientacin referido a la base
#PATH: Control de orientacin referido a la trayectoria
Movimiento Efecto?
PTP S
LIN No
CIRC No
Movimientos Spline CP (bloque y conjunto indivi- S
dual)
Con perfil de desplazamiento ms elevado
Movimientos Spline CP (bloque y conjunto indivi- No
dual)
Sin perfil de desplazamiento ms elevado
Movimientos Spline PTP (bloque y conjunto indi- S
vidual)
Sintaxis $ECO_LEVEL=Nivel
Aclaracin de la
Elemento Descripcin
sintaxis
Nivel Tipo: ENUM
#OFF: El modo de ahorro energtico est desconecta-
do.
#LOW: Ahorro bajo
#MIDDLE: Ahorro medio
#HIGH: Ahorro alto
13.2.8 $GEAR_JERK
Aclaracin de la
Elemento Descripcin
sintaxis
Nmero del Tipo: INT
eje
1 6: eje del robot A1 A6
7 12: eje adicional E1 E6
Tirn del Tipo: INT; unidad: %
accion-
amiento 1 100
13.2.9 $IPO_MODE
Sintaxis $IPO_MODE=modo
Aclaracin de la
Elemento Descripcin
sintaxis
Modo Tipo: ENUM
#TCP: La herramienta es una herramienta fija.
#BASE: la herramienta est montada en la brida de
acople.
Por defecto: #BASE
13.2.10 $JERK
13.2.11 $LOAD
Aclaracin de la
Elemento Descripcin
sintaxis
Masa Tipo: REAL; unidad: kg
Centro de Tipo: FRAME
gravedad
X, Y, Z: Situacin del centro de gravedad relativo a la
brida
A, B, C: Orientacin de los ejes principales de inercia
relativos a la brida
Inercia Tipo: INERTIA
X, Y, Z: momentos de inercia de masa alrededor de los
ejes del sistema de coordenadas que est girado de
forma relativa respecto a la brida mediante A, B, C
Parmetros Los datos de carga se definen por medio de los siguientes parmetros:
Parmetros Unidad
Masa m kg
Distancia al centro de Lx, Ly, Lz mm
gravedad
Inercias de masa en el Ix, Iy, Iz kg m2
centro de gravedad
13.2.12 $ORI_TYPE
Sintaxis $ORI_TYPE=Tipo
Aclaracin de la
Elemento Descripcin
sintaxis
Tipo Tipo: ENUM
#CONSTANT: La orientacin del TCP se mantiene de
forma constante durante el movimiento.
#VAR: La orientacin del TCP se modifica continua-
mente durante el movimiento.
#JOINT: La orientacin del TCP se modifica continua-
mente durante el movimiento. Esto se logra mediante el
desplazamiento lineal del ngulo del eje de la mueca
(desplazamiento especfico del eje).
Indicacin: si $ORI_TYPE = #JOINT, la variable
$CIRC_TYPE se ignora.
13.2.13 $ROTSYS
Aclaracin de la
Elemento Descripcin
sintaxis
Sistema de Tipo: ENUM
referencia
#AS_TRA: rotacin en el sistema de coordenadas
$TRANSSYS
#BASE: rotacin en el sistema de coordenadas BASE
#TCP: rotacin en el sistema de coordenadas TOOL
Por defecto: #AS_TRA
13.2.14 $SPL_ORI_JOINT_AUTO
Aclaracin de la
Elemento Descripcin
sintaxis
Tipo Tipo: ENUM
#OFF ninguna optimizacin cerca de la singularidad de
los ejes de la mueca
#ON es una alternativa a la utilizacin de $ORI_TYPE
= #JOINT. Mientras que $ORI_TYPE = #JOINT se pue-
de utilizar de forma precisa para movimientos individua-
les, $SPL_ORI_JOINT_AUTO = #ON permite la
optimizacin automtica para secuencias de programa-
cin con el tamao deseado y con una necesidad de
modificacin muy reducida.
$SPL_ORI_JOINT_AUTO solo se puede modificar me-
diante un programa de robot.
$SPL_ORI_JOINT_AUTO no se puede ajustar en seg-
mentos Spline.
Por defecto: $SPL_ORI_JOINT_AUTO = #OFF
13.2.15 $TOOL
13.2.16 $VEL
13.2.17 $VEL_AXIS
Aclaracin de la
Elemento Descripcin
sintaxis
Nmero del Tipo: INT
eje
1 6: eje del robot A1 A6
Velocidad Tipo: INT; unidad: %
1 100
13.2.18 $VEL_EXTAX
Aclaracin de la
Elemento Descripcin
sintaxis
Nmero del Tipo: INT
eje
1 6: eje adicional E1 E6
Velocidad Tipo: INT; unidad: %
1 100
13.2.19 $CIRC_MODE
Aclaracin de la
Elemento Descripcin
sintaxis
Reaccin HP Tipo: ENUM
#INTERPOLATE: En el punto auxiliar se acepta la
orientacin programada.
#IGNORE: La orientacin de partida se convierte du-
rante la trayectoria ms corta en la orientacin de des-
tino. La orientacin programada del punto auxiliar se
ignora.
#CONSIDER: La orientacin de partida se convierte du-
rante la trayectoria en orientacin de destino, que inclu-
ye la orientacin programada del punto auxiliar. Es
decir, que la orientacin del punto auxiliar se recoge a
lo largo de la trayectoria, pero no necesariamente en el
punto auxiliar.
Por defecto: #CONSIDER
Reaccin ZP Tipo: ENUM
#INTERPOLATE: En el punto de destino real se acepta
la orientacin programada del punto de destino.
(nica posibilidad para SCIRC sin indicacin del ngulo
circular. Si #EXTRAPOLATE est ajustado, #INTER-
POLATE se ejecuta igualmente.)
#EXTRAPOLATE: En el punto de destino programado
se acepta la orientacin programada. En el punto de
destino real se escala la orientacin de acuerdo con el
ngulo circular.
Valor por defecto para SCIRC con indicacin del ngulo
circular: #EXTRAPOLATE
#IGNORE:
La orientacin programada del punto auxiliar se ignora. Se ejecuta el cam-
bio de orientacin ms corto de 163.
#CONSIDER:
Se recorre la trayectoria que incluye la orientacin del punto auxiliar, en
este caso el cambio de orientacin con 197. Es decir, a lo largo de la tra-
yectoria se aceptan los 98, pero no necesariamente en el punto auxiliar.
SP Punto de inicio
AuxP Punto auxiliar
TP Punto de destino programado
TP_CA Punto de destino real. Se obtiene por el ngulo circular.
#EXTRAPOLATE:
En TP se acepta la orientacin programada. Para TP_CA se escala esta
orientacin de acuerdo con el ngulo circular.
ndice
Smbolos DEFFCT 111
$ACC 239 Dilogo 135
$ACC_AXIS 240
$ACC_EXTAX 240 E
$ACC_MA 239 E/S analgicas, ejercicio 229
$APO 240 Editor KRL 41
$BASE 242 Ejemplo PEP 64
$CIRC_MODE 149, 248 EKrlMsgType 117
$CIRC_TYPE 242 ENUM 98
$ECO_LEVEL 242 Entradas analgicas 223
$GEAR_JERK 243 Estructura 93
$IPO_MODE 243 Estructura del proyecto (ventana) 9
$JERK 244 Estructura del proyecto WorkVisual (pestaa
$JERK_MA 244 Ficheros) 13
$LOAD 244 Explorador de proyecto 10
$ORI_TYPE 246
$RAISE_TIME 240 F
$ROTSYS 246 Fold 59
$SPL_ORI_JOINT_AUTO 246 Fragmentos (snippets) entrada rpida para
$TIMER r 185 instrucciones KRL 48
$TOOL 247 Funciones 101, 111, 113
$VEL 247 Funciones de conmutacin 203
$VEL_AXIS 247 Funciones estndar 83, 113
$VEL_AXIS_MA 248 Funciones para la emisin de mensaje 113
$VEL_EXTAX 248 Funciones para variables de cadena 113
$VEL_MA 247 Funciones, matemticas 113
A G
Activar el proyecto en la unidad de control 32 Global 189
Administrador 65 global 77
Anexo 231 Grupo 87
Avance 77 Grupo de usuario, por defecto 65
Ayuda 9
I
B Importar, proyecto de WorkVisual 35
Barra de mens 9 Impulso 206
Barras de botones 9 Individual (opcin de men) 86
Bloque de tiempo 215 Inercia de masa 245
Bloque Spline CP 180 Inicializacin 80
Bloque Spline PTP 181 interpretador Submit 219
Bloquear 34 Interrupcin 189
Introduccin al nivel del experto 65
C
Campos 87 K
Cancelar movimiento con interrupcin, ejercicio KrlMsg_T 116
201 KrlMsgDlgSK_T 133
Cargas en el robot 245 KrlMsgOpt_T 118
Cargas tiles 245
Catlogos (ventana) 9 L
Centro de gravedad 245 local 77
Comentario 57
Comparar proyectos 14 M
Manipulacin 82, 83
D Masa 245
DECL 77, 78 Mensaje de acuse de recibo 115, 127
Declaraciones 75 Mensaje de dilogo 115
Declaracin 77, 79 Mensaje de espera 115, 130
Declarar interrupcin, ejercicio 195 Mensaje de estado 115
R
Remitente 116
Return 102, 111
S
Salidas analgicas 225
Seleccionar el tipo de mensaje 117
Seleccin de paso 173
seales analgicas 223
Singularidad, Spline CP 246
Submit 219
Subprogramas 60, 101
Subprogramas, globales 103
Subprogramas, locales 101
Smbolos PEP 62
T
Template 35
Temporizador 185
Tensin 226
Texto del mensaje 116