Post-procesadores

Los Post-Procesadores son un paso clave en la programación fuera de línea. Los post procesadores permiten flexibilidad para soportar cualquier controlador de robot. Un post-procesador robot define cómo los programas de robot deben generados para un controlador robot específico.

La conversión desde la simulación RoboDK a un programa robot específico se realizada con un Post-Procesador. Cada robot tiene un post-procesador asignado por defecto. El post-procesador se usa cuando el programa es generado fuera de línea, como se muestra en la sección Generar Programa (haciendo clic derecho en un programa, luego, seleccionando Generar Programa de Robot).

RoboDK incluye varios post-procesadores que soportan  diferentes controladores robot, listados en la sección Post-Procesadores disponibles. Alternativamente, es posible crear un post-procesador personalizado o modificar un post-procesador existente. Todos los post-procesadores disponibles están en la carpeta:

C:/RoboDK/posts/

Un post-procesador es un archivo PY (cada post-procesador está definido por un script Python). Es posible añadir manualmente, modificar o eliminar los archivos de la carpeta Posts de RoboDK. Si se le ha proporcionado un post-procesador RoboDK (archivo PY) debe ser colocado en la carpeta Posts para que se pueda seleccionar desde RoboDK.

Esta sección muestra cómo seleccionar, editar o crear un post-procesador y usarlo con sus robots en RoboDK. Una introducción rápida está disponible en el siguiente vídeo: https://www.robodk.com/help#PostProcessor


Seleccionar un Post-Procesador

Para seleccionar un post-procesador específico para un robot:

1.Haga clic derecho en un robot o un programa

2.Seleccione Seleccionar Post-Procesador

3.Elija un post-procesador desde la lista

4.Seleccione OK.

Post Processors - Imagen 1Post Processors - Imagen 2

El cambio es aplicado ahora y el programa puede ser generado de nuevo para ver el resultado.

Nota La selección de un Post-Procesador está vinculada a un robot específico. Al cambiar el post-procesador de un programa se actualizará el post-procesador para todos los programas vinculados al mismo robot.

Como una alternativa, también es posible seleccionar el post-procesador siguiendo estos pasos:

1.Abra el panel del robot (haga doble clic en un robot)

2.Seleccione Parámetros

3.Seleccione su post-procesador en la caja de la marca del robot, como se muestra en la siguiente imagen.

Post Processors - Imagen 3


Modificar un Post-procesador

Es posible modificar post-procesadores existentes o crear nuevos post-procesadores. Los post-procesadores deben ser colocados en la carpeta C:/RoboDK/posts/ para que puedan ser seleccionados en RoboDK. En la sección anterior se describen cómo enlazar un robot específico a un post-procesador.

Cada post-procesador es un archivo PY. Es posible renombrar el archivo o copiar los archivos desde/hacia la carpeta C:/RoboDK/posts/ para compartir diferentes post-procesadores. Para eliminar un script de post-procesador existente, simplemente elimine el archivo PY correspondiente en la carpeta Posts.

Los post-procesadores pueden editarse mediante cualquier editor de texto o un editor de Python (Python IDLE). Usar el editor de Python permite depurar rápidamente y evaluar un programa de muestra al final del archivo.

Python puede ser instalado para probar y usar los post-procesadores correctamente (Python está instalado por defecto con RoboDK).

Para modificar un post-procesador existente:

1.Seleccione ProgramaAgregar/Editar Post-procesador

2.Seleccione un post-procesador existente

3.Seleccione OK. Un editor de texto se abrirá con el programa.

4.Seleccione EjecutarEjecutar módulo (F5) para pre visualizar el resultado. Haga cualquier cambio si es necesario.

Post Processors - Imagen 4

Alternativamente, es posible editar manualmente un post-procesador:

1.Vaya a la carpeta de los post-procesadores: C:/RoboDK/posts/

2.Abra un archivo PY con Python IDLE (clic derecho Editar con IDLE) u otro editor de texto

3.Realice los cambios deseados

4.Ejecute el archivo para probar el resultado: Seleccione EjecutarEjecutar Módulo (F5 por defecto) desde Python IDLE.

Alternativamente, es posible editar este archivo usando un editor de texto y ejecutarlo con Python haciendo doble clic en él.

Post Processors - Imagen 5


Ejemplo de Modificación

Esta sección muestra cómo hacer un pequeño cambio para un post-procesador existente.

Como ejemplo, se realizarán los siguientes cambios en el post-procesador KUKA KRC4 existente:

Ajustar la velocidad máxima a 500 mm/s. incluso si el robot está programado para moverse más rápido, la velocidad se limitará a 500 mm/s en el post-procesador.

Generar cada programa como un archivo separado y forzar programas para tener 3000 líneas de código por programa como máximo. Los programas grandes serán divididos en programas más pequeños y llamados secuencialmente.

La sección anterior muestra cómo abrir un post-procesador existente para su edición:

1.Seleccione ProgramaAñadir/Editar Post-procesador

2.Seleccione KUKA_KRC4

3.Seleccione OK. El post-procesador será mostrado en el editor de Python IDLE.

En las siguientes secciones se muestra cómo realizar en el editor de texto los cambios sugeridos.

Forzar un límite de velocidad

Siga estos pasos para establecer un límite de velocidad de 500 mm/s y evitar establecer velocidades más altas usando RoboDK:

1.Localice la definición de la función setspeed (def setspeed)

2.Añada el siguiente código antes de generar la salida $VEL.CP que cambiará la velocidad en m/s:       
speed_mms = min(speed_mms, 500)

Post Processors - Imagen 6

Generar  un programa por archivo

Añada los siguientes cambios para evitar agregar más de un programa por archivo y para generar programas con 3000 líneas de código como máximo:

1.Establezca la variable MAX_LINES_X_PROG en 3000

2.Establezca la variable INCLUDE_SUB_PROGRAMS en falso

Post Processors - Imagen 7


Post-procesadores disponibles

De forma predeterminada, los siguientes post-procesadores están disponibles en RoboDK:

ABB_RAPID_IRC5: para controladores de robot ABB IRC5

ABB_RAPID_S4C: para controladores de robot ABB S4C

Adept_Vplus: para el lenguaje de programación de Adept V+

Allen_Bradley_Logix5000: para Allen Bradley Logix5000 PCL

CLOOS: para controladores de robots CLOOS

Comau_C5G: Para controladores de robots Comau C5G

Denso_PAC: para los controladores del robot Denso RC7 (y más antiguos) (lenguaje de programación PAC)

Denso_RC8: para los controladores de denso RC8 (y más antiguos) (lenguaje de programación PacScript)

Dobot: para los robots educacionales Dobot

Fanuc_R30iA: para los controladores de Fanuc R30iA y R30iB

Fanuc_R30iA_Arc: para soldadura de arco de Fanuc

Fanuc_RJ3: para los controladores de robot Fanuc RJ3

GCode_BnR: para los controladores del robot B&R

Gsk: para robots de GSK

HIWIN_HRSS: para robots HIWIN

Kairo: para los controladores de robot Keba Kairo

KUKA_IIWA: para programar en KUKA IIWA Java sunrise

KUKA_KRC2: para los controladores de robot KUKA KRC2

KUKA_KRC2_CamRob: para la opción de fresado de KUKA CamRob

KUKA_KRC2_DAT: para los controladores de robot KUKA KRC2 incluyendo archivos de datos DAT

KUKA_KRC4: para los controladores de robot KUKA KRC4

KUKA_KRC4_Config: para los controladores de robot KUKA KRC4 con datos de configuración en cada línea

KUKA_KRC4_DAT: para los controladores de robot KUKA KRC4 incluyendo archivos de datos DAT

Kawasaki: para controladores de robot Kawasaki AS

Mecademic: para robot Mecademic Meca500

Mitsubishi: para los controladores de robot Mitsubishi

Motoman/Yaskawa: para diferentes controladores de robot Motoman usando Inform II e Inform III (JBI)

Nachi_AX_FD: para los controladores de robot Nachi AX y  FD

OTC: para controladores de robot Daihen OTC

Panasonic: Para los programas de Panasonic PRG

Precise: para robots Precise Scara

Siemens_Sinumerik: para controlador de robot Siemens Sinumerik ROBX

Staubli_VAL3: para programas de robot Staubli VAL3 (controladores CS8s y posteriores)

Staubli_VAL3_InlineMove: para generar programas Staubli VAL3 con datos de movimiento en línea

Staubli_S6: para controladores de robot Staubli S6

Toshiba: para robots Toshiba

Universal_Robots: para robots UR, genera movimientos lineales como posiciones de pose

Universal_Robots_RobotiQ: para robots UR incluyendo soporte para pinza RobotiQ

Universal_Robots_joints: para robots UR, genera movimientos lineales y movimiento de articulación

Yamaha: para robots Yamaha


Referencia

El siguiente vídeo muestra una visión general de los Post-Procesadores en RoboDK:  
https://robodk.com/help#PostProcessor

La documentación de referencia para cada método en el post-procesador está disponible en línea:  
http://robodk.com/doc/en/PythonAPI/postprocessor.html

Todos los post-procesadores utilizan el módulo robodk.py:    
http://robodk.com/doc/en/PythonAPI/robodk.html#robodk.Mat

El módulo robodk.py proporciona herramientas para operaciones de Pose (multiplicaciones, inversas,...) y conversiones entre poses y ángulos de Euler en diferentes formatos, entre otras cosas.

La documentación está disponible en línea para aprender sobre la programación de Python: 
https://docs.Python.org/3/

Cuando un programa es generado, es generado un programa de Python pre-procesado/universal y es guardado en una carpeta temporal local. El programa pre-procesado está vinculado con el post-procesador correcto (seleccionado por el usuario en RoboDK). El post-procesador define un RobotPost Class que genera el código deseado.

Los programas pre compilados son ejecutados con Python.