离线编程
机器人离线编程软件

使用直观、友好的用户界面,轻松仿真工业机械臂并为其编程。您可以通过点击和拖拽物体来创建布局并对机器人编程。

使用RoboDK软件无需编程经验。

进一步了解RoboDK软件

离线编程

离线编程(或OLP)是指在生产环境之外对机器人进行编程,离线编程极大地缩短了因车间编程而造成的生产停机。

通过仿真和离线编程,可以在投入生产单元之前研究机器人工作单元的多种方案,及时制止设计工作单元时常见的错误。

离线编程是最大化机器人系统投资回报的最佳方案,这需要合适的仿真编程工具。生成新程序的时间可以从数周缩短至一天,短线生产也可以实现机器人化。

机器人应用程序编程接口(API)

访问RoboDK API——用于机器人手臂编程的最先进API。

RoboDK API让您使用熟悉的编程语言和开发环境,对任何工业机器人进行仿真和编程。

RoboDK API可用 Python, C#/.Net, C++Matlab.

进一步了解RoboDK API

后处理器

当仿真效果达到预期,只需点击两下鼠标,即可离线生成机器人程序(离线编程)。

RoboDK包含超过 100 个后处理器,可为超过 1000 台机器人和 80 个机器人品牌生成真机程序。

进一步了解后处理器

例如,为ABB机器人生成以下程序。

ABB IRC5控制器的离线编程结果:

MODULE MOD_HexagonPath

PROC HexagonPath()
  ! Program generated by RoboDK for ABB IRB 1600ID-4/1.5
  ConfJ \On;
  ConfL \On;
  tl.tframe:=[-4,0,371.3],[0.92387953,0,0.38268343,0];
  MoveJ [[1010.6,-114.4,662.2],[0,0,1,0],[-1,0,-1,0],ex],sp,z1,tl;
  MoveL [[810.6,-114.4,662.2],[0,0,1,0],[-1,0,-1,0],ex],sp,z1,tl;
  MoveL [[910.6,58.7,662.2],[0,0,1,0],[0,-1,0,0],ex],sp,z1,tl;
  MoveL [[1110.6,58.7,662.2],[0,0,1,0],[0,-1,0,0],ex],sp,z1,tl;
  MoveL [[1210.6,-114.4,662.2],[0,0,1,0],[-1,0,-1,0],ex],sp,z1,tl;
  MoveL [[1110.6,-287.6,662.2],[0,0,1,0],[-1,0,-1,0],ex],sp,z1,tl;
  MoveL [[910.6,-287.6,662.2],[0,0,1,0],[-1,0,-1,0],ex],sp,z1,tl;
  MoveL [[810.6,-114.4,662.2],[0,0,1,0],[-1,0,-1,0],ex],sp,z1,tl;
  Program_Done;
  MoveL [[1010.6,-114.4,662.2],[0,0,1,0],[-1,0,-1,0],ex],sp,z1,tl;
ENDPROC
ENDMODULE

使用RoboDK API的程序示例

# 围绕目标(Target 1)绘制一个六边形
from robolink import *    # RoboDK API
from robodk import *      # 机器人数学工具箱
 
# 启动RoboDK API:
RDK = Robolink()
 
# 引用机器人
robot = RDK.Item('', ITEM_TYPE_ROBOT)
 
# 获取目标位置
target = RDK.Item('Target 1')
target_pose = target.Pose()
xyz_ref = target_pose.Pos()
 
# 将机器人移动至目标
robot.MoveJ(target)
 
# 在目标周围绘制一个六边形
for i in range(7):
    ang = i*2*pi/6 # 角度 = 0,60,120,...,360
    R = 200        # 半径
    
    # 计算新位置
    x = xyz_ref[0] + R*cos(ang) # 新X坐标
    y = xyz_ref[1] + R*sin(ang) # 新Y坐标
    z = xyz_ref[2]              # 新Z坐标
    target_pose.setPos([x,y,z])
    
    # 移动到新目标
    robot.MoveL(target_pose)
 
# 在运动结束后触发程序调用
robot.RunInstruction('Program_Done')
 
# 回到目标
robot.MoveL(target)