收藏 分销(赏)

ABB-robotstudio使用详细步骤.doc

上传人:a199****6536 文档编号:1682349 上传时间:2024-05-07 格式:DOC 页数:28 大小:1.58MB 下载积分:10 金币
下载 相关 举报
ABB-robotstudio使用详细步骤.doc_第1页
第1页 / 共28页
ABB-robotstudio使用详细步骤.doc_第2页
第2页 / 共28页


点击查看更多>>
资源描述
搬运码垛工作站建模 1、创建机器人系统 2、创建动态输送链 3、创建动态夹具 4、工作站逻辑连接 5、添加IO(设置好需重启) 6、示教目标点(同步到RAPID) 7、RAPID编程 一、创建机器人系统 1、创建空工作站 2、导入IRB 260机器人模型 3、从布局创建机器人系统,勾选Chinese和709-1网络 二、创建动态输送链 1、添加输送链并修改位置 2、创建600*400*200的物料 并修改位置 3、添加一个smart组件 4、添加source组件 5、设置物料本地原点 6、添加LINEMOVER和QUEUE组件 7设置LINEMOVER属性 8、添加面传感器组件 9、设置输送链不能被传感器检测 10、设置SC_输送链的属性连接 11、设置信号连接 12、添加信号处理组件,用于检测传感器下降沿 13、传感器下降沿触发source进行copy 第四行有误 14、传感器与SC输送链的输出联系 15、添加仿真开始结束组件,用于激活传感器 16、添加置位复位组件,对仿真开始结束信号进行保持 17、 18、进行仿真设定 选择SC——输送链 进行验证 三、创建动态夹具 1、先制作一个吸盘模型,然后设置成工具,并安装到机器人法拉盘 2、添加SMART组件 3、添加ATTACHER和DETACHER组件 4、设置属性 5、添加一个线传感器组件 6、线传感器设置属性 7、设置吸盘工具不能被传感器检测 8、把线传感器安装到吸盘(不更新位置,保持当前位置) 9、设置属性连接 10、添加信号及连接 11、添加信号处理取非和锁定组件 12、继续信号连接 13、添加一个示教物料 14、应用手动线性验证SC_工具 四、工作站逻辑连接 五、参考代码 MODULE MainMoudle PERS tooldata tGrip:=[TRUE,[[0,0,200],[1,0,0,0]],[25,[0,0.00109327,116.889],[1,0,0,0],0,0,0]]; !吸盘工具数据 PERS loaddata LoadEmpty:=[0.01,[0,0,1],[1,0,0,0],0,0,0]; PERS loaddata LoadFull:=[40,[0,0,50],[1,0,0,0],0,0,0]; !有效载荷数据 PERS robtarget pHome:=[[1620.00,-0.00,1331.59],[1.27986E-06,-0.707107,-0.707107,1.27986E-06],[0,0,1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; !基准点 PERS robtarget pActualPos:=[[1620,-1.87531E-14,1331.59],[1.27986E-06,-0.707107,-0.707107,1.27986E-06],[0,0,1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; !实际点 PERS robtarget pPick1:=[[1488.007792464,376.826660408,476.964684195],[0,0.707106307,0.707107256,0],[0,0,1,0],[9E9,9E9,9E9,9E9,9E9,9E9]]; !1路拾取目标点 PERS robtarget pPlace1:=[[-292.446,1263.27,55.4492],[0,0.707107,0.707106,0],[1,0,2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; !1路放置基准点 PERS robtarget pBase1_0:=[[-292.446294945,1263.272085268,55.449220723],[0,0.707107387,0.707106176,0],[1,0,2,0],[9E9,9E9,9E9,9E9,9E9,9E9]]; !1路放置0度姿态 PERS robtarget pBase1_90:=[[-391.976797324,1362.469634994,55.449159414],[0,1,-0.000030621,0],[1,0,3,0],[9E9,9E9,9E9,9E9,9E9,9E9]]; !1路放置90度姿态 PERS robtarget pPick2:=[[1488.013130905,-358.406014736,476.965039287],[0,0.707106307,0.707107256,0],[-1,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]]; PERS robtarget pPlace2:=[[-317.378,-1857.99,55.449],[0,0.707108,0.707106,0],[-2,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; PERS robtarget pBase2_0:=[[-317.378137718,-1857.993871961,55.448967354],[0,0.707107745,0.707105817,0],[-2,0,-1,0],[9E9,9E9,9E9,9E9,9E9,9E9]]; PERS robtarget pBase2_90:=[[-407.525988074,-1755.902485322,55.449282402],[0,1,-0.000031217,0],[-2,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]]; PERS speeddata MinSpeed:=[1000,300,5000,1000]; PERS speeddata MidSpeed:=[2500,400,5000,1000]; PERS speeddata MaxSpeed:=[4000,500,5000,1000]; !搬运速度定义 PERS bool bPalletFull1:=FALSE; PERS bool bPalletFull2:=FALSE; !逻辑布尔量,拾取后为UE,放置后为FALSE PERS num nCount1:=1; PERS num nCount2:=1; !输送链计数 PROC Main() rInitAll; WHILE TRUE DO IF diBoxInPos1=1 AND diPalletInPos1=1 AND bPalletFull1=FALSE THEN rPick1; rPlace1; ENDIF IF diBoxInPos2=1 AND diPalletInPos2=1 AND bPalletFull2=FALSE THEN rPick2; rPlace2; ENDIF WaitTime 0.1; ENDWHILE ENDPROC PROC rInitAll() Reset doGrip; pActualPos:=CRobT(\tool:=tGrip); pActualPos.trans.z:=pHome.trans.z; MoveL pActualPos,MinSpeed,fine,tGrip\WObj:=wobj0; MoveJ pHome,MidSpeed,fine,tGrip\WObj:=wobj0; bPalletFull1:=FALSE; nCount1:=1; bPalletFull2:=FALSE; nCount2:=1; ENDPROC PROC rPick1() MoveJ Offs(pPick1,0,0,400),MaxSpeed,z50,tGrip\WObj:=wobj0; MoveL pPick1,MinSpeed,fine,tGrip\WObj:=wobj0; Set doGrip; WaitTime 0.3; GripLoad LoadFull; MoveL Offs(pPick1,0,0,400),MinSpeed,z50,tGrip\WObj:=wobj0; ENDPROC PROC rPick2() MoveJ Offs(pPick2,0,0,400),MaxSpeed,z50,tGrip\WObj:=wobj0; MoveL pPick2,MinSpeed,fine,tGrip\WObj:=wobj0; Set doGrip; WaitTime 0.3; GripLoad LoadFull; MoveL Offs(pPick2,0,0,400),MinSpeed,z50,tGrip\WObj:=wobj0; ENDPROC PROC rPlace1() rPosition1; MoveJ Offs(pPlace1,0,0,400),MidSpeed,z50,tGrip\WObj:=wobj0; MoveL pPlace1,MinSpeed,fine,tGrip\WObj:=wobj0; Reset doGrip; WaitTime 0.3; GripLoad LoadEmpty; MoveL Offs(pPlace1,0,0,400),MidSpeed,z50,tGrip\WObj:=wobj0; MoveJ Offs(pPick1,0,0,400),MaxSpeed,z50,tGrip\WObj:=wobj0; nCount1:=nCount1+1; IF nCount1>20 THEN bPalletFull1:=TRUE; ENDIF ENDPROC PROC rPlace2() rPosition2; MoveJ Offs(pPlace2,0,0,400),MaxSpeed,z50,tGrip\WObj:=wobj0; MoveL pPlace2,MinSpeed,fine,tGrip\WObj:=wobj0; Reset doGrip; WaitTime 0.3; GripLoad LoadEmpty; MoveL Offs(pPlace2,0,0,400),MidSpeed,z50,tGrip\WObj:=wobj0; MoveJ Offs(pPick2,0,0,400),MaxSpeed,z50,tGrip\WObj:=wobj0; nCount2:=nCount2+1; IF nCount2>20 THEN bPalletFull2:=TRUE; ENDIF ENDPROC PROC rPosition1() TEST nCount1 CASE 1: pPlace1:=Offs(pBase1_0,0,0,0); CASE 2: pPlace1:=Offs(pBase1_0,600+10,0,0); CASE 3: pPlace1:=Offs(pBase1_90,0,400+10,0); CASE 4: pPlace1:=Offs(pBase1_90,400+10,400+10,0); CASE 5: pPlace1:=Offs(pBase1_90,800+20,400+10,0); CASE 6: pPlace1:=Offs(pBase1_0,0,600+10,200); CASE 7: pPlace1:=Offs(pBase1_0,600+10,600+10,200); CASE 8: pPlace1:=Offs(pBase1_90,0,0,200); CASE 9: pPlace1:=Offs(pBase1_90,400+10,0,200); CASE 10: pPlace1:=Offs(pBase1_90,800+20,0,200); CASE 11: pPlace1:=Offs(pBase1_0,0,0,400); CASE 12: pPlace1:=Offs(pBase1_0,600+10,0,400); CASE 13: pPlace1:=Offs(pBase1_90,0,400+10,400); CASE 14: pPlace1:=Offs(pBase1_90,400+10,400+10,400); CASE 15: pPlace1:=Offs(pBase1_90,800+20,400+10,400); CASE 16: pPlace1:=Offs(pBase1_0,0,600+10,600); CASE 17: pPlace1:=Offs(pBase1_0,600+10,600+10,600); CASE 18: pPlace1:=Offs(pBase1_90,0,0,600); CASE 19: pPlace1:=Offs(pBase1_90,400+10,0,600); CASE 20: pPlace1:=Offs(pBase1_90,800+20,0,600); DEFAULT: TPErase; TPWrite "the Counter of line 1 is error,please check it!"; Stop; ENDTEST ENDPROC PROC rPosition2() TEST nCount2 CASE 1: pPlace2:=Offs(pBase2_0,0,0,0); CASE 2: pPlace2:=Offs(pBase2_0,600+10,0,0); CASE 3: pPlace2:=Offs(pBase2_90,0,400+10,0); CASE 4: pPlace2:=Offs(pBase2_90,400+10,400+10,0); CASE 5: pPlace2:=Offs(pBase2_90,800+20,400+10,0); CASE 6: pPlace2:=Offs(pBase2_0,0,600+10,200); CASE 7: pPlace2:=Offs(pBase2_0,600+10,600+10,200); CASE 8: pPlace2:=Offs(pBase2_90,0,0,200); CASE 9: pPlace2:=Offs(pBase2_90,400+10,0,200); CASE 10: pPlace2:=Offs(pBase2_90,800+20,0,200); CASE 11: pPlace2:=Offs(pBase2_0,0,0,400); CASE 12: pPlace2:=Offs(pBase2_0,600+10,0,400); CASE 13: pPlace2:=Offs(pBase2_90,0,400+10,400); CASE 14: pPlace2:=Offs(pBase2_90,400+10,400+10,400); CASE 15: pPlace2:=Offs(pBase2_90,800+20,400+10,400); CASE 16: pPlace2:=Offs(pBase2_0,0,600+10,600); CASE 17: pPlace2:=Offs(pBase2_0,600+10,600+10,600); CASE 18: pPlace2:=Offs(pBase2_90,0,0,600); CASE 19: pPlace2:=Offs(pBase2_90,400+10,0,600); CASE 20: pPlace2:=Offs(pBase2_90,800+20,0,600); DEFAULT: TPErase; TPWrite "the Counter of line 1 is error,please check it!"; Stop; ENDTEST ENDPROC PROC rModify() MoveJ pHome,MinSpeed,fine,tGrip\WObj:=wobj0; MoveJ pPick1,MinSpeed,fine,tGrip\WObj:=wobj0; MoveJ pBase1_0,MinSpeed,fine,tGrip\WObj:=wobj0; MoveJ pBase1_90,MinSpeed,fine,tGrip\WObj:=wobj0; MoveJ pPick2,MinSpeed,fine,tGrip\WObj:=wobj0; MoveJ pBase2_0,MinSpeed,fine,tGrip\WObj:=wobj0; MoveJ pBase2_90,MinSpeed,fine,tGrip\WObj:=wobj0; ENDPROC ENDMODULE
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服