abbrobotstudio使用详细步骤Word文件下载.docx
《abbrobotstudio使用详细步骤Word文件下载.docx》由会员分享,可在线阅读,更多相关《abbrobotstudio使用详细步骤Word文件下载.docx(24页珍藏版)》请在冰豆网上搜索。
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_工具
四、工作站逻辑连接
五、参考代码
MODULEMainMoudle
PERStooldatatGrip:
=[TRUE,[[0,0,200],[1,0,0,0]],[25,[0,,],[1,0,0,0],0,0,0]];
!
吸盘工具数据
PERSloaddataLoadEmpty:
=[,[0,0,1],[1,0,0,0],0,0,0];
PERSloaddataLoadFull:
=[40,[0,0,50],[1,0,0,0],0,0,0];
有效载荷数据
PERSrobtargetpHome:
=[[,,],[,,,],[0,0,1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
基准点
PERSrobtargetpActualPos:
=[[1620,,],[,,,],[0,0,1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
实际点
PERSrobtargetpPick1:
=[[,,],[0,,,0],[0,0,1,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
1路拾取目标点
PERSrobtargetpPlace1:
=[[,,],[0,,,0],[1,0,2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
1路放置基准点
PERSrobtargetpBase1_0:
=[[,,],[0,,,0],[1,0,2,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
1路放置0度姿态
PERSrobtargetpBase1_90:
=[[,,],[0,1,,0],[1,0,3,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
1路放置90度姿态
PERSrobtargetpPick2:
=[[,,],[0,,,0],[-1,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
PERSrobtargetpPlace2:
=[[,,],[0,,,0],[-2,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
PERSrobtargetpBase2_0:
=[[,,],[0,,,0],[-2,0,-1,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
PERSrobtargetpBase2_90:
=[[,,],[0,1,,0],[-2,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
PERSspeeddataMinSpeed:
=[1000,300,5000,1000];
PERSspeeddataMidSpeed:
=[2500,400,5000,1000];
PERSspeeddataMaxSpeed:
=[4000,500,5000,1000];
搬运速度定义
PERSboolbPalletFull1:
=FALSE;
PERSboolbPalletFull2:
逻辑布尔量,拾取后为UE,放置后为FALSE
PERSnumnCount1:
=1;
PERSnumnCount2:
输送链计数
PROCMain()
rInitAll;
WHILETRUEDO
IFdiBoxInPos1=1ANDdiPalletInPos1=1ANDbPalletFull1=FALSETHEN
rPick1;
rPlace1;
ENDIF
IFdiBoxInPos2=1ANDdiPalletInPos2=1ANDbPalletFull2=FALSETHEN
rPick2;
rPlace2;
WaitTime;
ENDWHILE
ENDPROC
PROCrInitAll()
ResetdoGrip;
pActualPos:
=CRobT(\tool:
=tGrip);
MoveLpActualPos,MinSpeed,fine,tGrip\WObj:
=wobj0;
MoveJpHome,MidSpeed,fine,tGrip\WObj:
bPalletFull1:
nCount1:
bPalletFull2:
nCount2:
PROCrPick1()
MoveJOffs(pPick1,0,0,400),MaxSpeed,z50,tGrip\WObj:
MoveLpPick1,MinSpeed,fine,tGrip\WObj:
SetdoGrip;
GripLoadLoadFull;
MoveLOffs(pPick1,0,0,400),MinSpeed,z50,tGrip\WObj:
PROCrPick2()
MoveJOffs(pPick2,0,0,400),MaxSpeed,z50,tGrip\WObj:
MoveLpPick2,MinSpeed,fine,tGrip\WObj:
MoveLOffs(pPick2,0,0,400),MinSpeed,z50,tGrip\WObj:
PROCrPlace1()
rPosition1;
MoveJOffs(pPlace1,0,0,400),MidSpeed,z50,tGrip\WObj:
MoveLpPlace1,MinSpeed,fine,tGrip\WObj:
GripLoadLoadEmpty;
MoveLOffs(pPlace1,0,0,400),MidSpeed,z50,tGrip\WObj:
=nCount1+1;
IFnCount1>
20THEN
=TRUE;
PROCrPlace2()
rPosition2;
MoveJOffs(pPlace2,0,0,400),MaxSpeed,z50,tGrip\WObj:
MoveLpPlace2,MinSpeed,fine,tGrip\WObj:
MoveLOffs(pPlace2,0,0,400),MidSpeed,z50,tGrip\WObj:
=nCount2+1;
IFnCount2>
PROCrPosition1()
TESTnCount1
CASE1:
pPlace1:
=Offs(pBase1_0,0,0,0);
CASE2:
=Offs(pBase1_0,600+10,0,0);
CASE3:
=Offs(pBase1_90,0,400+10,0);
CASE4:
=Offs(pBase1_90,400+10,400+10,0);
CASE5:
=Offs(pBase1_90,800+20,400+10,0);
CASE6:
=Offs(pBase1_0,0,600+10,200);
CASE7:
=Offs(pBase1_0,600+10,600+10,200);
CASE8:
=Offs(pBase1_90,0,0,200);
CASE9:
=Offs(pBase1_90,400+10,0,200);
CASE10:
=Offs(pBase1_90,800+20,0,200);
CASE11:
=Offs(pBase1_0,0,0,400);
CASE12:
=Offs(pBase1_0,600+10,0,400);
CASE13:
=Offs(pBase1_90,0,400+10,400);
CASE14:
=Offs(pBase1_90,400+10,400+10,400);
CASE15:
=Offs(pBase1_90,800+20,400+10,400);
CASE16:
=Offs(pBase1_0,0,600+10,600);
CASE17:
=Offs(pBase1_0,600+10,600+10,600);
CASE18:
=Offs(pBase1_90,0,0,600);
CASE19:
=Offs(pBase1_90,400+10,0,600);
CASE20:
=Offs(pBase1_90,800+20,0,600);
DEFAULT:
TPErase;
TPWrite"
theCounterofline1iserror,pleasecheckit!
"
;
Stop;
ENDTEST
PROCrPosition2()
TESTnCount2
pPlace2:
=Offs(pBase2_0,0,0,0);
=Offs(pBase2_0,600+10,0,0);
=Offs(pBase2_90,0,400+10,0);
=Offs(pBase2_90,400+10,400+10,0);
=Offs(pBase2_90,800+20,400+10,0);
=Offs(pBase2_0,0,600+10,200);
=Offs(pBase2_0,600+10,600+10,200);
=Offs(pBase2_90,0,0,200);
=Offs(pBase2_90,400+10,0,200);
=Offs(pBase2_90,800+20,0,200);
=Offs(pBase2_0,0,0,400);
=Offs(pBase2_0,600+10,0,400);
=Offs(pBase2_90,0,400+10,400);
=Offs(pBase2_90,400+10,400+10,400);
=Offs(pBase2_90,800+20,400+10,400);
=Offs(pBase2_0,0,600+10,600);
=Offs(pBase2_0,600+10,600+10,600);
=Offs(pBase2_90,0,0,600);
=Offs(pBase2_90,400+10,0,600);
=Offs(pBase2_90,800+20,0,600);
PROCrModify()
MoveJpHome,MinSpeed,fine,tGrip\WObj:
MoveJpPick1,MinSpeed,fine,tGrip\WObj:
MoveJpBase1_0,MinSpeed,fine,tGrip\WObj:
MoveJpBase1_90,MinSpeed,fine,tGrip\WObj:
MoveJpPick2,MinSpeed,fine,tGrip\WObj:
MoveJpBase2_0,MinSpeed,fine,tGrip\WObj:
MoveJpBase2_90,MinSpeed,fine,tGrip\WObj:
ENDMODULE