




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ABB 机器人程序框架说明机器人程序框架说明 海南马自达 HMC7180 焊装线项目 1 基本信号表 2 机器人程序框架及说明 基本信号表 ABB 与福臻信号对接图与福臻信号对接图 Under Under R1 Address 61 初始化 WHILE TRUE DO IF Di StartWeld 1 AND Di AutoMode 1 AND Di ShuttleRun 0 THEN 判断焊接条件是否成立 SPOTWELD 进入焊接工序 包含与总线通讯 ENDIF CycleCheck 循环检查 ENDWHILE ENDPROC 主要子程序结构 初始化程序 InitAll PROC InitAll WriteTP 在示教器上显示基本信息 VelSet 100 2000 AccSet 70 70 速度加速度控制 Movehome 机器人移至 Home 点 TPErase Reset DO FinishWeld Reset Do RobInConv 初始化信号 ClkStop Timer ClkReset Timer ENDPROC 焊接工序子程序 PROC SPOTWELD ClkStart Timer Reset DO FinishWeld MoveJ phome vBig z50 tc1 WObj rb1xu It s safe to run this routine from phome especially in op mode Reset DO InSafeArea Set Do RobInConv 进入焊接程序 复位安全信号 MoveJ SpotL rb1xu 4 02B27 vSmall gun1 spot6 300 tc1 WObj rb1xu MoveJ phome vBig z50 tc1 WObj rb1xu Reset Do RobInConv Set DO InSafeArea Set DO FinishWeld 焊接完成发送完成信号 WaitDI Di StartWeld 0 等待总线复位允许焊接信号 Reset DO FinishWeld 复位完成信号 ClkStop Timer nCycleTime ClkRead Timer ClkReset Timer nCount nCount 1 计时计数 ENDPROC 循环检查子程序 PROC CycleCheck IF curr gundata 1 weld counter 1000 THEN IF nChangeTip 3 THEN ChangeTip 如果修磨次数超过设定值 更换电极 nChangeTip 0 ELSE TipDress 如果焊点超过设定值 修磨电极 nChangeTip nChangeTip 1 ENDIF curr gundata 1 weld counter 0 ENDIF WaitTime 0 2 ENDPROC 2 底板线 U3 U4 机器人程序结构 主程序结构与其余的相同 唯一不同的是焊接子程序 多了一个与总线通讯的步骤 PROC SPOTWELD ClkStart Timer MoveJ phome vBig z50 X700 WObj trb3x u DIWait DI StartWeld1 1 3 Waiting Conveyor Start Weld 1 等待第一次焊接允许信号 Set DO RobInConv Reset DO InSafeArea MoveJ SpotL rb3xu 1 01 vSmall gun1 spot5 205 X700 WObj trb3x u 第一次焊接过程 Set DO FinishWeld1 第一次焊接完成 发送完成信号 DIWait DI StartWeld1 0 3 Waiting Conveyor Reset Start Weld 1 等待第一次焊接允许信号复位 Reset DO FinishWeld1 第一次焊接完成信号复位 DIWait DI StartWeld2 1 3 Waiting Conveyor Start Weld 2 Signal 等待第二次焊接允许信号 MoveL SpotL rb3xu 1 27 vSmall gun1 spot7 330 X700 WObj trb3x u 第二次焊接过程 MoveL phome vBig z5 X700 WObj trb3x u Set DO FinishWeld2 第二次焊接完成 发送完成信号 DIWait DI StartWeld2 0 3 Waiting Conveyor Reset Start Weld 2 等待第二次焊接允许信号复位 Reset DO FinishWeld2 第二次焊接完成信号复位 Reset DO RobInConv Set DO InSafeArea ClkStop Timer nCycleTime ClkRead Timer ClkReset Timer nCount nCount 1 ENDPROC 3 底板线 U7 U8 机器人程序结构 U7 U8 多了上料程序 主程序结构有所变化 主程序结构 PROC main InitAll 初始化 WHILE TRUE DO IF DI LoadRq 1 AND DI StartWeld1 0 THEN 在焊接工序之间先完成取料工作 PickupPart 取料 PlacePart 放料 DIWait DI LoadRq 0 3 Waiting Conveyor Reset Load Request 等待允许上料信号复位 DIWait DI ShuttleRun 0 3 Waiting Conveyor Not moving DIWait DI AutoMode 1 3 Waiting Conveyor Auto mode DIWait DI StartWeld1 1 3 Waiting Conveyor Start Weld 1 Signal 等待允许焊接信号 SPOTWELD 焊接过程 ENDIF CycleCheck 循环检查 ENDWHILE ENDPROC 3 车身线 M1 M2 机器人程序结构 主程序结构 PROC main InitAll 初始化 WHILE TRUE DO IF DI StartWeld1 1 AND DI ShuttleRun 0 AND DI AutoMode 1 AND bGunC TRUE AND bGunX FALSE THEN 等待初始条件满足 必须是 C 型焊枪 Weld 焊接过程 ENDIF CycleCheck 循环检查 ENDWHILE ENDPROC 主程序结构与其余的相同 但是此处由于多了换枪机构 所以多了 2 个判断条件 bGunC如果为真则机器人拿着 C 型焊枪 bGunX如果位真则机器人拿着 X 型焊枪 如果两者都为假 则机器人没拿着焊枪 如果两者都为真 则错误 初始化程序 PROC InitAll TPErase IF bGunC TRUE AND bGunX FALSE THEN TPWrite Now Current Gun Is C ELSEIF bGunC FALSE AND bGunX TRUE THEN TPWrite Now Current Gun Is X ELSEIF bGunC FALSE AND bGunX FALSE THEN TPWrite Now Current Gun Is None ELSE TPWrite Now Current Gun Is Error ENDIF 在屏幕上显示当前机器人焊枪的状态 reg3 0 WHILE reg31 AND reg35 DO TPReadFK reg3 Please Confirm Current Gun Correct No Yes ENDWHILE 让操作者确认上述状态是否正确 TEST reg3 CASE 1 reg4 0 WHILE reg41 AND reg43 AND reg45 DO TPReadFK reg4 Please Input Which Gun Attached C None X ENDWHILE 如果状态不正确 请正确输入状态 通常情况下都是正确的 TEST reg4 CASE 1 bGunX FALSE bGunC TRUE CASE 3 bGunX FALSE bGunC FALSE CASE 5 bGunC FALSE bGunX TRUE DEFAULT WaitTime 0 1 ENDTEST DEFAULT WaitTime 0 1 ENDTEST CheckGun 检查焊枪状态 激活相应的参数 MoveHome 移动至 Home 点 Reset DO FinishWeld1 Reset DO FinishWeld2 Reset DO FinishWeld3 Reset DO RobInConv Reset doUnLockGun Set DO InSafeArea Set DO R1Common 初始化信号 AccSet 50 50 ENDPROC 移动至 Home 点子程序 由于机器人初始状态有 3 种 所以 Home 点也有 3 个 他们分别是 pHomeC pHomeX pHome 对应与机器人的 3 种状态 因为不同的状态机器人的 TCP 是不一样的 PROC MoveHome VAR robtarget ActualPos VelSet 100 500 IF bGunC TRUE AND bGunX FALSE THEN 拿着 C 型焊枪的状态 IF CurrentPos pHomeC tgun c 02 m FALSE THEN If no known position is found check if the robot is in a specified window and move him to the first position in the program TPErase ErrWrite Robot position Alarm reg2 0 WHILE reg25 DO TPReadFK reg2 Robot will move to home position OK ENDWHILE WHILE OpMode OP MAN PROG DO ErrWrite Wrong Running Mode Switch to Manual Mode Stop ENDWHILE MoveJ pHomeC v200 fine tgun c 02 m WObj wrb2c 移动至 pHomeC 点 ActualPos CRobT Tool tgun c 02 m WObj wrb2c ENDIF MoveJ pHomeC v500 fine tgun c 02 m WObj wrb2c ELSEIF bGunC FALSE AND bGunX TRUE THEN 拿着 X 型焊枪的状态 IF CurrentPos pHomeX tgun x 01 FALSE THEN If no known position is found check if the robot is in a specified window and move him to the first position in the program TPErase ErrWrite Robot position Alarm reg2 0 WHILE reg25 DO TPReadFK reg2 Robot will move to home position OK ENDWHILE WHILE OpMode OP MAN PROG DO ErrWrite Wrong Running Mode Switch to Manual Mode Stop ENDWHILE MoveJ pHomeX v200 fine tgun x 01 WObj wrb2x 移动至 pHomeX 点 ActualPos CRobT Tool tgun x 01 WObj wrb2x ENDIF MoveJ pHomeX v500 fine tgun x 01 WObj wrb2x GunXtoC 换成 C 型焊枪 ELSEIF bGunC FALSE AND bGunX FALSE THEN 没拿着焊枪的状态 IF CurrentPos pHome tool0 FALSE THEN If no known position is found check if the robot is in a specified window and move him to the first position in the program TPErase ErrWrite Robot position Alarm reg2 0 WHILE reg25 DO TPReadFK reg2 Robot will move to home position OK ENDWHILE WHILE OpMode OP MAN PROG DO ErrWrite Wrong Running Mode Switch to Manual Mode Stop ENDWHILE MoveJ pHome v200 fine tool0 移动至 pHome 点 ActualPos CRobT Tool tool0 WObj wobj0 ENDIF MoveJ pHome v500 fine tool0 OnGunC 换成 C 型焊枪 ELSE ErrWrite Error Gun Status Stop ENDIF VelSet 100 3000 ENDPROC 正常焊接程序 PROC Weld ClkStart Timer DIWait DI StartWeld1 1 3 Waiting Conveyor Weld 1 Signal 等待焊接启动信号 1 Reset DO InSafeArea Set DO RobInConv AccSet 50 50 Area1C 焊接过程 1 Waiting Top Jig go down Set DO FinishWeld1 DIWait DI StartWeld1 0 3 Waiting Conveyor Reset Weld 1 Reset DO FinishWeld1 DIWait DI StartWeld2 1 3 Waiting Upper Jig Go Down Start Weld2 焊接过程 1 完成 等待焊接启动信号 2 吊具下降 Area3C 焊接过程 2 Area4C 焊接过程 2 Area5C 焊接过程 2 Set DO FinishWeld2 DIWait DI StartWeld2 0 3 Waiting Conveyor Reset Weld 2 Reset DO FinishWeld2 焊接过程 2 完成 GunCtoX 在等待焊接启动 3 的同时 吊具上升 完成 C 枪换 X 枪 Waiting Top Jig go up DIWait DI StartWeld3 1 3 Waiting Upper Jig Go Up Start Weld3 等待焊接启动信号 3 Area6X 焊接过程 3 Area7X 焊接过程 3 Area8x 焊接过程 3 Send PLC finished welding Set DO FinishWeld3 DIWait DI StartWeld3 0 3 Waiting Conveyor Reset Weld3 Reset DO FinishWeld3 焊接过程 3 完成 Reset DO RobInConv Set DO InSafeArea ClkStop Timer nCycleTime ClkRead Timer ClkReset Timer Incr nCount ENDPROC 循环检查子程序 PROC CycleCheck DoorCheck IF curr gundata 2 weld counter 1000 AND bGunX TRUE THEN 如果机器人拿着 X 型焊枪同时焊点数达到预设值 IF nTipCountX 3 THEN 如果修磨次数达到最大值需要更换电极头 ChangeTipX 更换电极头 nTipCountX 0 修磨次数复位 ELSE TipDressX 修磨次数未达到最大值进行修磨 Incr nTipCountX 修磨次数累计 ENDIF curr gundata 2 weld counter 0 焊点数复位 GunXtoC 更换或修磨后将 X 型焊枪换成 C 型焊枪 ELSEIF curr gundata 1 weld counter 1000 AND bGunC TRUE THEN 如果机器人拿着 C 型焊枪同时焊点数达到预设值 IF nTipCountC 3 THEN ChangeTipC nTipCountC 0 ELSE TipDressC Incr nTipCountC ENDIF curr gundata 1 weld counter 0 ENDIF IF bGunX TRUE AND bGunC FALSE THEN GunXtoC ENDIF 如果没有修磨或更换电极头 而且机器人拿着的不是 C 型焊枪 将 X 型焊枪 换成 C 型焊枪 WriteTP WaitTime 0 2 ENDPROC 换枪程序 X 型焊枪换成 C 型焊枪 PROC GunXtoC OffGunX 放下 X 型焊枪 OnGunC 拿起 C 型焊枪 ENDPROC C 型焊枪换成 X 型焊枪 PROC GunCtoX OffGunC 放下 C 型焊枪 OnGunX 拿起 X 型焊枪 ENDPROC 为了保证安全 控制换枪机构的输出信号 doUnLockGun 只能在换枪区域才能有效 在这里用了 2 个安全信号 doRobInX doRobInC 信号为 1 表示在换枪区域 doUnLockGun 可以起作用 DoRobInX doRobInC 的信号输出由 PowerUp 子程序控制自动输出信号 PROC PowerUp VAR pos LowLeft VAR pos HighRight 定义区域的 2 点 worldzone def for C Gun Change Pos 定义换 C 型焊枪的有效区域 LowLeft pCChange trans x 30 pCChange trans y 30 pCChange trans z 30 HighRight pCChange trans x 30 pCChange trans y 30 pCChange t rans z 80 WZBoxDef Inside shCChange LowLeft HighRight WZDOSet Stat Rectangle1 Inside shCChange doRobInC 1 在进入该区域内自动置信号 doRobInC 为 1 worldzone def for X Gun Change Pos 定义换 X 型焊枪的有效区域 LowLeft pXChange trans x 30 pXChange trans y 30 pXChange trans z 30 HighRight pXChange trans x 30 pXChange trans y 30 pXChange t rans z 80 WZBoxDef Inside shXChange LowLeft HighRight WZDOSet Stat Rectangle2 Inside shXChange doRobInX 1 在进入该区域内自动置信号 doRobInX 为 1 worldzone def for SafeArea 定义机器人在安全区域的信号 DO InSafeArea LowLeft pHome trans x 500 pHome trans y 100 pHome trans z 5000 HighRight pHome trans x 5000 pHome trans y 5000 pHome tran s z 5000 WZBoxDef Inside shHome LowLeft HighRight WZDOSet Stat Rectangle3 Inside shHome DO InSafeArea 1 ErrWrite Power Up is Running ENDPROC 车身线 3 号位 M3 M4 机器人程序结构与其余的相同 共有 3 个焊接启动信号 与 其对应的有 3 个焊接完成信号 车身线 4 号位机器人程序框架 由于 4 号位 4 台机器人相互之间的焊接工作区域互相重合 所以这些
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论