5.1 离线软件操作
5.1.1 环境配置
由于现场环境可能出现重新标定tcp或者外部轴范围变更,因此需要检查并更新tcp和外部轴数据。
%20V1.1-20250911_0f8b2863-7e9d-4903-b6a1-43ec6a0335e2.png)
5.1.1.1 焊枪TCP设置
点击绿色的工具名称,鼠标右键,单击工具属性。
%20V1.1-20250911_d5e6e611-8e0c-4929-aef8-ad063d1f641e.png)
将示教器中工具1的tcp数据输入到红色框中。
%20V1.1-20250911_1cbac506-0645-483d-8795-2784d39bf8bb.png)
蓝色框中数值可以微调焊枪尖与TCP的相对位置。
%20V1.1-20250911_f4fca6d9-6b34-4397-9deb-79fe31ea52ea.png)
5.1.1.2 激光TCP设置
在线激光头名称位置点鼠标右键,点工具属性。
%20V1.1-20250911_5cf6197f-8cd5-48e4-84ce-cb791718c773.png)
将激光标定结果(先扫后焊标定数据)填入到红色框。
说明蓝色方框中,轨迹TCP偏移表示扫描高度。
蓝色方框中,屏幕TCP偏移表示从标定tcp位置到光源的高度(即传感器视野)。
%20V1.1-20250911_ae5b9b03-fbe2-45e8-ab59-0b70adfd6700.png)
5.1.1.3 外部轴范围设置
扩展模型绿色的就是外部轴名称,右键,然后单击属性。
%20V1.1-20250911_fbca866a-5666-4034-a27a-c51216415909.png)
映射:XYZ正方向代表的值。本项目中,X正方向为-e2,Y正方向为+e3,Z正方向为-e1。在左右极限位置填入每个方向对应的外部轴值的范围(X为e2范围,Y为e3范围,Z为e1范围)。蓝色框联动设置里,勾选自动规划,联动方向选XYZ。
说明在设置范围时,需要设置的比实际外部轴范围小一点,这样能避免外部轴刚好运行到极限位置时机器人报警。
搜索表示外部轴搜索的方向和范围,按照下图设置即可。
5.1.1.4 设置工作台
依次点击工作台库>右键>新建,输入工作台尺寸(mm)信息后,单击确定。

右键工作台属性,单击工作台属性。在工作台用途列表中选择焊接。
5.1.2 模型导入
右键工件集合,单击导入。
%20V1.1-20250911_b5af7da1-fce2-455c-9395-ea591d1278aa.png)
单击模型导入,文件格式选择
attr。%20V1.1-20250911_f9498cb7-7a7a-41a9-8208-f4f822fdd90b.png)
5.1.3 焊缝自动提取
由于逆向建模数据自带底面信息,因此无需再次选择底面。直接点击提取焊缝即可。
若焊缝无法提取,可能是未设置底面导致,参考有模型方案的功能使用说明。
如图所示,依次点击编程>路径焊接>提取>平焊缝(立焊缝)>完成。%20V1.1-20250911_e295e35e-27cb-47d5-b458-2f1cb29fcf30.png)
5.1.4 轨迹参数自动匹配
单击快速焊缝编辑。在工艺设置区域中,在姿态模版匹配方式中选择按照类型。
先设置好选项,在自动提取焊缝过程中会自动匹配轨迹参数(软件有轨迹参数库)。
%20V1.1-20250911_3a936751-1fd7-48bf-9573-c0cc6d84d9c0.png)
5.1.5 轨迹自动优化
点击右下角快速优化,进入自动优化界面,点击右下角自动优化按钮,等待优化完成即可。
%20V1.1-20250911_5521176f-8f84-4688-b1ca-c90b54337414.png)
自动优化进度、时间、初始焊缝数量、实际焊缝数量、初始焊缝总长度、实际焊缝总长度及焊达率。
自动优化方式:
方式一:失败立即停止,选择的焊缝有一条不可焊接,自动优化立即停止。
%20V1.1-20250911_f6d0ee40-170b-4236-8413-1b5ebc3e56d7.png)
方式二:自动过滤掉不可焊接焊缝,自动删除不可达焊缝程序,不可达焊缝会显示红色,便于查看不可达焊缝原因。
%20V1.1-20250911_9408fbe8-2ad1-4020-803d-7c8e087b7877.png)
5.1.6 程序生成
在快速优化界面单击生成程序。
%20V1.1-20250911_6ec5c6f1-29c8-4399-912e-a1aaf2c0b45d.png)
在对应轨迹名称位置右键,并点击生成程序。
说明逆向建模只需要运行一个程序即可(LX_WeldMain),每工件都会生成子程序,对应主程序会调用子程序(通过大线扫粗定位对比工件)。
%20V1.1-20250911_93b26b25-9029-41ac-becb-e6889eb755f8.png)
5.2 多工位和多工件设置
5.2.1 离线软件设置
5.2.1.1 多工位设置
以单导轨工作站为例,需要在导轨另一侧添加工位。
%20V1.1-20250911_654501f6-55d7-4eef-8379-bf5cb3406207.png)
首先右键工作台库,单击新建。
%20V1.1-20250911_a26827d8-1ea1-4ac4-80c8-e5bfc4bd0487.png)
在创建工作台界面,可以设置工作台的长宽高信息。长宽高设置并没有严格要求,可尽量与导轨长度接近。
%20V1.1-20250911_93f6cdd2-23cc-4c0d-8820-8634c480e1f6.png)
创建完成后,右键新建的工作台,单击设置坐标。
%20V1.1-20250911_ad70fbac-a1ce-4fe1-8769-79a119848ce4.png)
设置到与工位1对称的位置即可。
%20V1.1-20250911_07a00bd1-5379-4e37-a47a-a406bc3bd9f3.png)
右键点工作台属性。
%20V1.1-20250911_828b3a24-02aa-41e6-840f-ae8d8a8616a1.png)
工作台用途选焊接。为避免工作台与工件穿模导致工件显示不全,可以设置工作台不透明度。为避免焊枪与工作台碰撞干扰后续自动优化,可不勾选碰撞检测。
%20V1.1-20250911_caa5f491-9336-4a2c-b3f1-523ae66ff619.png)
对于导轨两侧的工位,机器人在不同工位之间切换可能会撞到焊接等外部设备,需要给每个工位单独设置安全点。
%20V1.1-20250911_b7d329a5-3fba-46d6-b9ff-1e51524ca996.png)
5.2.2 多工件设置
在工作台属性的程序列表页面,取消单工件模式和单程序模式的勾选,可启用多工件模式。
单工件模式表示当前工位每次只记录一个工件,新工件名称和程序会覆盖原来工件。
单程序模式表示每个工件只记录一个程序,新程序名称会覆盖原来程序名称。程序生成后,工件名和程序名会记录到对应工位的程序列表中。
说明多工件模式目前每工位最多记录5个工件。
%20V1.1-20250911_7483057b-4658-4e31-9747-effb663a875e.png)
%20V1.1-20250911_dfe62878-77c4-4502-8172-fdcb820f8cc4.png)
5.3 案例说明
5.3.1 单导轨
5.3.1.1 工作站配置图
%20V1.1-20250911_fb0f63a3-d96c-4fe8-9bfe-a125ec5ab279.png)
5.3.1.2 离线操作流程图
%20V1.1-20250911_4aaa794f-dc08-43cd-80ad-157c9b291613.png)
5.3.1.3 主程序流程图
%20V1.1-20250911_31de1d12-7564-4be6-9a50-324853260bdf.png)
5.3.1.4 多工位多工件实例
多工件示意图
如图所示工位1上,摆放着三个工件A、B、C。
说明该图为离线软件中的工件摆放位置,不是实际位置。
%20V1.1-20250911_f727a8d2-5895-40a5-b4ec-2843cca8cc76.png)
准备工作
生成工件对应文件
离线软件生成工件对应的点云(pcd)、位姿(pose)和列表名称(list)文件。其中,ABC点云文件分别为_A_GW1.pcd、_B_GW1.pcd和_C_GW1.pcd,位姿文件分别为_A_GW1.pose、_B_GW1.pose和_C_GW1.pose,列表文件为_list_GW1.list,其中文件内容为三个工件模型的名称_A_GW1、_B_GW1和_C_GW1。
生成主程序
主程序大致格式为:
CALL CAM222_GW1 //视觉拍照指令或程序
IF wb==1 //工位1
LBL[1]:
CALL CAM202_GW1 //视觉计算指令或程序
IF wp==1 //工件1,对应A
CALL Prog_A_1
CALL Prog_A_2
……
END IF
IF wp==2 //工件2,对应B
CALL Prog_B_1
CALL Prog_B_2
……
END IF
IF wp==3 //工件3,对应C
CALL Prog_C_1
CALL Prog_C_2
……
END IF
IF R[6]==0 //判断是否有剩余工件
GOTO LBL[2]
ELSE
GOTO LBL[1]
END IF
END IF
LBL[2]:
END
视觉定位计算流程
调用拍照指令,工位1拍照,获得该工位上摆放的工件的点云数据,如下图所示。
%20V1.1-20250911_6fc63d2c-e352-4bdc-9fcb-b70edda58b30.png)
调用视觉计算指令,视觉软件会用list文件中所有名称相同的pcd和pose文件去做匹配。
每次只匹配一个工件。
%20V1.1-20250911_30802d86-d244-4c97-a38c-cd097239fc90.png)
匹配成功则返回定位矩阵M和工件编号(工件编号为list文件中的工件名称编号。如果定位出A工件,则返回1)。同时,工件A所在区域会被标记,不再参与计算。
然后主程序根据工件编号执行对应子程序。
IF wp==1 //工件1,对应A
CALL Prog_A_1
CALL Prog_A_2
……
再次调用视觉计算指令,定位出工件C,返回定位结果矩阵和工件编号。
%20V1.1-20250911_255aea2e-be99-4f76-a2ef-1ea4264614cd.png)
然后主程序根据工件编号执行对应子程序。
IF wp==3 //工件3,对应C
CALL Prog_C_1
CALL Prog_C_2
……
再次调用视觉计算指令,定位出工件B,返回定位结果矩阵和工件编号。
%20V1.1-20250911_81a8ead4-8420-4989-8720-882818e1ccf8.png)
然后主程序根据工件编号执行对应子程序。
IF wp==2 //工件2,对应B
CALL Prog_B_1
CALL Prog_B_2
……
再次调用视觉计算指令,视觉软件判断所有工件都被标记,认为所有工件焊接完成,焊接结束。
%20V1.1-20250911_9d334329-12e0-449e-9867-51a90837a9ec.png)
主程序结束,当前工位焊接完成。
多工位在线更新程序示例及释义
子程序示例