Programación Fuera de Línea

Programación fuera de línea (o programación offline - OLP) significa programar robots fuera del entorno de producción. La programación fuera de línea elimina el tiempo de inactividad de producción causado por la programación en la línea de producción. La programación y simulación fuera de línea permite estudiar múltiples escenarios de una celda robotizada antes de instalar la celda de producción. Errores típicamente cometidos en el diseño de una celda de trabajo pueden predecirse a tiempo.

La programación fuera de línea es la mejor manera de maximizar el retorno de la inversión para los sistemas de robot y requiere herramientas de simulación apropiadas. El tiempo para la adopción de nuevos programas puede reducirse de semanas a un único día, lo que permite la robotización de pequeños lotes de producción.

Programación Fuera de Línea con RoboDK

La programación fuera de línea no tiene límites con RoboDK. RoboDK proporciona una interfaz gráfica de usuario amigable para simular y programar robots industriales. RoboDK ayudará a evitar singularidades y límites de eje. No se requiere experiencia en programación. Más información disponible en la sección de programación fuera de línea de la documentación.

Con la API de RoboDK también puede programar y simular robots usando Python. Python es un lenguaje de programación que permite trabajar más rápido e integrar sus sistemas de manera más efectiva. Python permite expresar conceptos en menos líneas de código en comparación con otros lenguajes, por lo que es amigable y fácil de aprender.

Más información disponible en la sección de API de RoboDK de la documentación. La API de RoboDK también está disponible para C# y Matlab.

Ejemplo de programación Fuera de Línea:

# Draw a hexagon around the Target 1
from robolink import *    # RoboDK's API
from robodk import *      # Math toolbox for robots
 
# Start the RoboDK API:
RDK = Robolink()
 
# Get the robot (first robot found):
robot = RDK.Item('', ITEM_TYPE_ROBOT)
 
# Get the reference target by name:
target = RDK.Item('Target 1')
target_pose = target.Pose()
xyz_ref = target_pose.Pos()
 
# Move the robot to the reference point:
robot.MoveJ(target)
 
# Draw a hexagon around the reference target:
for i in range(7):
    ang = i*2*pi/6 # Angle = 0,60,120,...,360
    R = 200        # Polygon radius
    
    # Calculate the new position around the reference:
    x = xyz_ref[0] + R*cos(ang) # new X coordinate
    y = xyz_ref[1] + R*sin(ang) # new Y coordinate
    z = xyz_ref[2]              # new Z coordinate    
    target_pose.setPos([x,y,z])
    
    # Move to the new target:
    robot.MoveL(target_pose)
 
# Trigger a program call at the end of the movement
robot.RunInstruction('Program_Done')
 
# Move back to the reference target:
robot.MoveL(target)

Una vez que la simulación produce el resultado deseado, es muy fácil generar el programa de robot fuera de línea (Programación fuera de línea). Como ejemplo, se generará el siguiente programa para un robot ABB.

Resultado de programación fuera de línea de Robot:

MODULE MOD_HexagonPath

PROC HexagonPath()
	!Program generated by RoboDK for ABB IRB 1600ID-4/1.5 on 29/11/2014 17:42:31
	ConfJ \On;
	ConfL \On;
	rdkTool.tframe:=[-4,0,371.3],[0.92387953,0,0.38268343,0];
	MoveJ [[1010.634,-114.491,662.29],[0,0,1,0],[-1,0,-1,0],rdkExtax], rdkSpeed, rdkZone, rdkTool, \WObj:=rdkWObj;
	MoveL [[810.634,-114.491,662.29],[0,0,1,0],[-1,0,-1,0],rdkExtax], rdkSpeed, rdkZone, rdkTool, \WObj:=rdkWObj;
	MoveL [[910.634,58.715,662.29],[0,0,1,0],[0,-1,0,0],rdkExtax], rdkSpeed, rdkZone, rdkTool, \WObj:=rdkWObj;
	MoveL [[1110.634,58.715,662.29],[0,0,1,0],[0,-1,0,0],rdkExtax], rdkSpeed, rdkZone, rdkTool, \WObj:=rdkWObj;
	MoveL [[1210.634,-114.491,662.29],[0,0,1,0],[-1,0,-1,0],rdkExtax], rdkSpeed, rdkZone, rdkTool, \WObj:=rdkWObj;
	MoveL [[1110.634,-287.696,662.29],[0,0,1,0],[-1,0,-1,0],rdkExtax], rdkSpeed, rdkZone, rdkTool, \WObj:=rdkWObj;
	MoveL [[910.634,-287.696,662.29],[0,0,1,0],[-1,0,-1,0],rdkExtax], rdkSpeed, rdkZone, rdkTool, \WObj:=rdkWObj;
	MoveL [[810.634,-114.491,662.29],[0,0,1,0],[-1,0,-1,0],rdkExtax], rdkSpeed, rdkZone, rdkTool, \WObj:=rdkWObj;
	Program_Done;
	MoveL [[1010.634,-114.491,662.29],[0,0,1,0],[-1,0,-1,0],rdkExtax], rdkSpeed, rdkZone, rdkTool, \WObj:=rdkWObj;
	ConfJ \On;
	ConfL \On;
ENDPROC
ENDMODULE

Post-Procesadores para Robots

Los Post-Procesadores definen cómo se deben generar los programas para un controlador de robots específico. La conversión de una simulación a un controlador de robot específico se realiza mediante un Post-Procesador. Los Post-Procesadores RoboDK proporcionan una flexibilidad completa para generar programas de robot con requisitos específicos.

RoboDK proporciona Post-Procesadores para la mayoría de los controladores de robot. Los Post-Procesadores se pueden crear o modificar fácilmente. Más información disponible en la sección Post-Procesadores de la documentación.