西门子840D地铁车辆焊接程序设计与开发

  摘 要:为满足地铁车辆不锈钢车体焊接工艺要求,车辆钢结构总组成焊接任务均由自动焊接机器人承担,要求生产高效可靠,自动挠度补偿、精确定位、最大限度控制焊接变形,保证产品焊接质量。因此对承担该焊接任务的西门子 840D 自动焊接机器人进行相关部分的程序设计与开发。

  关键词: 焊接工艺、自动挠度补偿、精确定位、西门子840D

  前言:地铁总组成焊接程序采用模块化、柔性化的设计理念进行开发。 改变以往利用绝对坐标系进行工件定位的单一模式,采用绝对坐标与相对坐标相结合,并使用“R”指令增加人工干预的复合定位模式,以达到焊点精确定位、自动挠度补偿的目的,极大提高车辆组对精度和焊接质量。

  程序功能:精确定位、自动挠度补偿、断点续焊、工件误差补偿、迂回焊接等。

  程序结构:

  一、主程序:SP3_WELD_DK74_MAIN.MPF

  对整个程序框架的构建和各个功能模块的整合, 设计实用的功能接口,对各个功能模块(子程序)的调用、数据传递。对焊接机器人的走行定位、焊接顺序、焊接过程、焊接姿态等方面进行控制,实现车体组对焊接的全过程。

  对主程序关键部分进行详细描述:

  -------------------------------------------

  PROC SP3_WELD_DK74_MAIN (主程序名称)

  -------------------------------------------

  子程序声明过程:

  EXTERN SP3_ABS_74 (REAL) (X 绝对坐标值定位子程序声明)

  EXTERN SP3_WELD74_PREPARE (REAL) (Y 绝对坐标值、Z 增量子程序声明)

  EXTERN SP3_WELD74_STEP (REAL) (X 增量、挠度获取子程序声明)

  EXTERN SP3_WELD74_UP (INT) (焊接子程序声明)

  - ------------------------------------------

  主程序变量声明过程:

  DEF REAL _Offset(X 绝对坐标偏移变量 ), FRIST (初始焊点序号)

  DEF INT _NUM ( 焊点数量 ), _ACOUNT ( 计数器 ) ,_POINT(跳点次数)

  --------------------------------------------

  当工件摆放位置与程序 X 绝对位置存在偏差时,修正机器人内部参数 R3,并将 R3 值赋予变量 _Offset,保证机器人精确定位到工件实际焊接位置。

  _Offset = R3

  --------------------------------------------

  偏差值>10mm 时,机器人暂停并做出提示,要求操作者检查焊接工件,防止错误焊接。

  IF _Offset > 10

  MSG ("Offset invalid ! R3 > 10 ! Please change it! ")

  M_01: M0

  GotoB M_01

  ENDIF

  --------------------------------------------

  焊接定位过程:机器人以安全行走姿态走行至 X 绝对坐标值“49451.5 + _Offset”位置暂停,提示操作者检查焊接位置并确认操作。

  SP3_WELD74_FREE (安全行走姿态子程序调用)

  SP3_ABS_74(49451.5 + _Offset)

  MSG ("please check the position of weld point") (屏幕提示)

  M0 (暂停)

  MSG("") (屏幕清空)

  --------------------------------------------

  SP3_WELD74_PREPARE(17.95) ( 机器人调整 Y 绝对坐标值并获取 Z 增量值 17.95,运行至焊接姿态)

  --------------------------------------------

  断点续焊功能判断: 在焊接过程中某个焊接位置出现错误,通过设置内部指令 R31,机器人会自动判断并走行至该位置重新焊接。

  _NUM = 48 (焊点数量 48)

  FOR _POINT = 1 TO _NUM-1 (循环判断 47 次)

  IF (R31 == _POINT) (判断条件)

  X3 = IC(-60*_POINT) (X 绝对坐标增量值为-60*R31,实现快速跳转)

  ENDIF

  ENDFOR

  --------------------------------------------

  焊接过程:通过循环语句控制,机器人依次焊接,直至焊接完成,关闭焊接电源、冷却水,以安全姿态行走至 X 绝对坐标“10000”。

  FRIST = R31 (R31 将初始焊点序号赋值给变量 FRIST)

  FOR _ACOUNT = FRIST TO _NUM-1 (焊接循环 “47-FRIST”次)

  SP3_WELD74_STEP(-60) (每循环一次 X 增量值增加 “-60mm”)

  SP3_WELD74_UP (2) (使用 2 号焊接参数进行焊接)

  ENDFOR

  SP3_WELD74_FINISH (焊接结束子程序调用)

  SP3_WELD74_FREE (安全行走姿态子程序调用)

  SP3_ABS_74(10000) (安全位置)

  ……

  M30 (程序完成)

  -------------------------------------------

  二、焊接功能模块:SP3_WELD74_UP(INT).SPF

  通过使用西门子 840D 数控系统内部“M”指令,控制焊接时机器人焊接动作全过程,包括焊接前准备:接通焊接电源、冷却水启动、空压机启动等;焊接中:调用焊接参数、执行焊接动作等;焊接后:关闭焊接电源、停止冷却、空压机关闭等,最终实现自动焊接。 子程序 SP3_WELD74_UP (INT _NUMBER)中,变量类型为整形,变量 _NUMBER 功能用于向机器人传递焊接参数类型。

  三、自动挠度获取功能模块:GET_POS_Z3.SPF

  此功能模块为核心部分,设计严密的科学算法,实现机器人通过 X 绝对坐标值自动计算挠度、获取挠度的功能,大大提高了机器人自动点焊的精度,增强程序的实用性。

  对程序 GET_POS_Z3.SPF 关键部分进行详细描述:

  --------------------------------------------

  PROC GET_POS_Z3 (程序声明)

  DEF REAL Z_0, Z_1 (变量声明;Z_0, Z_1 分别表示特定点挠度值)

  DEF REAL dX_0, dX_1(变量声明;dX_0, dX_1 分别表示特定点 X 绝对坐标值)

  Z_0= 7.22 dx_0= 16499-7795(为特定点赋予 X 绝对坐标值、挠度值)

  Z_1= 10.77 dX_1= 16499-6625(为特定点赋予 X 绝对坐标值、挠度值)

  -------------------------------------------

  机器人获取当前位置 X 绝对坐标值在哪两个特定点之间,根据前后特定点挠度计算当前点挠度,并将其值赋予机器人内部参数 R10, 为子程序 SP3_WELD74_STEP.SPF 传递参数,最终计算当前点 Z 绝对坐标值。

  IF ($AA_IW[X3] <= dX_1) AND ($AA_IW[X3] > dx_0)

  R10 = Z_1 + ( (Z_0-Z_1)/(dX_0-dX_1) * ($AA_IW[X3]-dX_1) )

  ENDIF

  m17 (子程序结束)

  --------------------------------------------

  算法介绍:

  假设:特定点 A0、A1;当前点 Ax;dx_0、Z_0、dx_1、Z_1 分别为特定点 A0、A1 的 X 绝对坐标值、挠度值。 如图所示:

  

  四、工件绝对坐标系定位系统:SP3_ABS_77.SPF

  该定位系统实现了机器人对工件的定位检测功能, 判断工件是否在合理的误差范围内, 将位置误差自动记录在主程序“R”参数内,自动调整机器人的自动点焊位置并进行报警提示。

  五、焊接动作系统

  SP3_WELD74_PREPARE.SPF、 SP3_WELD74_STEP.SPF

  SP3_WELD74_FREE.SPF、 SP3_WELD74_FINISH.SPF

  该系统通过整合调用 4 个功能模块, 实现了整个焊接过程。包括:焊前自由状态、焊前设备准备、焊接参数自动调用传递、焊接开始、焊接过程检测、焊接结束准备等。

  该程序已经运用于地铁车辆的焊接生产制造中, 经过实际生产验证,该程序实用可靠、操作简单,真正实现了无人看管、自动焊接、迂回点焊等功能。大幅提高了生产效率,降低了工人劳动强度和生产成本。

free spyware for phones phone monitoring apps phone tracking app for android

相关文章