ABB-robotstudio使用详细步骤

合集下载

(完整版)2.ABB机器人RobotStudio创建机械装置方法

(完整版)2.ABB机器人RobotStudio创建机械装置方法

RobotStudio创建机械装置方法1.打开RobotStudio软件,创建一个新工作站。

(此处省略)2.导入几何体(导入需要创建成机械装置的几何体,此处使用2个简单的几何体为例创建机械装置)3.创建机械装置。

1.点击建模--创建机械装置--跳出对话框2.更改机械装置名称3.创建装置类型--此处以创建外轴为例4.链接,接点,框架,校准的设置1.双击链接--跳出对话框2.链接名称3.选择部件4.点击按钮添加部件5:勾选基链接(把其中一固定部件作为基链接)5.按照上一步把其他部件都添加到链接里去。

(此处省略)7.框架和校准的设置(同样点击框架和校准,跳出对话框)8.编译机械装置。

1.点击接点--跳出对话框2.关节名称3.选择关节类型4.选择子链接5.设置关节轴的运动的方向6.可以通过操纵轴来设定关节限值7.设定限制类型1.框架名称2.属于链接3.框架位置4.或直接选择做好的框架5.选择是否设置为基框架1.选择校准的关节。

2.校准位置坐标及方向注:A :若一个机械装置上有多个运动关节,则添加相应的关节(注意父链接和子链接要选择对)。

B :关节轴第一个位置:选中旋转轴心的点,第二格位置同样选中旋转轴心的点(注意看轴方向往哪个坐标,即把那个坐标值改小或改大)。

1.点击下拉按钮--选择浮动2.浮动后下拉框架--出现编译机械装置3.点击编译机械装置4.点击添加姿态按钮--跳出创建姿态对话框。

(按要求可添加多个姿态)5.姿态名称6.关节值(可通过滑块调节各个姿态的位置)9.点击关闭,跳出对话框,点击“是”10.保存为库文件,以便调用----完成。

(完整版)2.ABB机器人RobotStudio创建机械装置方法

(完整版)2.ABB机器人RobotStudio创建机械装置方法

(完整版)2.ABB机器人RobotStudio创建机械装置方法RobotStudio创建机械装置方法1.打开RobotStudio软件,创建一个新工作站。

(此处省略)2.导入几何体(导入需要创建成机械装置的几何体,此处使用2个简单的几何体为例创建机械装置)3.创建机械装置。

1.点击建模--创建机械装置--跳出对话框2.更改机械装置名称3.创建装置类型--此处以创建外轴为例4.链接,接点,框架,校准的设置1.双击链接--跳出对话框2.链接名称3.选择部件4.点击按钮添加部件5:勾选基链接(把其中一固定部件作为基链接)5.按照上一步把其他部件都添加到链接里去。

(此处省略)7.框架和校准的设置(同样点击框架和校准,跳出对话框)8.编译机械装置。

1.点击接点--跳出对话框2.关节名称3.选择关节类型4.选择子链接5.设置关节轴的运动的方向6.可以通过操纵轴来设定关节限值7.设定限制类型1.框架名称2.属于链接3.框架位置4.或直接选择做好的框架5.选择是否设置为基框架1.选择校准的关节。

2.校准位置坐标及方向注:A :若一个机械装置上有多个运动关节,则添加相应的关节(注意父链接和子链接要选择对)。

B :关节轴第一个位置:选中旋转轴心的点,第二格位置同样选中旋转轴心的点(注意看轴方向往哪个坐标,即把那个坐标值改小或改大)。

1.点击下拉按钮--选择浮动2.浮动后下拉框架--出现编译机械装置3.点击编译机械装置4.点击添加姿态按钮--跳出创建姿态对话框。

(按要求可添加多个姿态)5.姿态名称6.关节值(可通过滑块调节各个姿态的位置)9.点击关闭,跳出对话框,点击“是”10.保存为库文件,以便调用----完成。

ABB robotstudio使用详细步骤

ABB robotstudio使用详细步骤

搬运码垛工作站建模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进行copy14、传感器与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 MainMoudlePERS tooldatatGrip:=[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 robtargetpPick1:=[[1488.007792464,376.826660408,476.964684195],[0,0.707106307,0.7071 07256,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,放置后为FALSEPERS num nCount1:=1;PERS num nCount2:=1;!输送链计数PROC Main()rInitAll;WHILE TRUE DOIF diBoxInPos1=1 AND diPalletInPos1=1 AND bPalletFull1=FALSE THEN rPick1;rPlace1;ENDIFIF diBoxInPos2=1 AND diPalletInPos2=1 AND bPalletFull2=FALSE THEN rPick2;rPlace2;ENDIFWaitTime 0.1;ENDWHILEENDPROCPROC 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;ENDPROCPROC 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; ENDPROCPROC 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; ENDPROCPROC 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 THENbPalletFull1:=TRUE;ENDIFENDPROCPROC 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 THENbPalletFull2:=TRUE;ENDIFENDPROCPROC rPosition1()TEST nCount1CASE 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;ENDTESTENDPROCPROC rPosition2()TEST nCount2CASE 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;ENDTESTENDPROCPROC 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;ENDPROCENDMODULE。

ABBRobotstudio仿真软件项目式使用说明

ABBRobotstudio仿真软件项目式使用说明

ABBRobotstudio仿真软件项目式使用说明1.打开Robot studio软件,单击创建新建空工作站,同时储存一下,如下图所示;2.选择ABB机器人模型IRB1600,单击添加,选择承重能力和到达距离,选择确定,如下图所示:3.导入设备-tools-Binzel air 22,并拖动安装在机器人法兰盘上:4.选择建模-固体-矩形体,设定长宽高,点击创建:选择差不多-机器人系统-从布局创建系统-下一步-下一步-完成;操纵器启动完成后,选择路径-创建一个空路径,创建成功后,修改下方参数:moveJ ,V1000,Z1008.激活当前路径,选择机器人起点,单击示教指令9.开启捕捉末端或角点,同时将机器人的移动模式设为手动线性,将机器人工具移到矩形体的一个角点上,单击示教指令,形成第一条路径,依次示教四个角点,形成路径,右击路径,选择查看机器人目标,可将机器人移动到当前位置10.路径制作完成后,选择差不多-同步到VC,在弹出的对话框中全部勾选,并点击确定,同步完成后选择仿真-仿真设定-将路径添加到主队列,选择应用--确定;11.选择仿真录像,点击播放,开始仿真录像。

项目二:搬运机器人1.新建空工作站--导入机器人IRB4600--选择最大承重能力,选择建模-固体-圆柱体,添加两个圆柱体,半径为200mm,高度分不为60mm和500 mm,把其中一个作为工具添加到法兰盘上,同时导入两个设备Euro pallet 如下图所示:2.右击物体或在左侧布局窗口中右击物体名称,在下拉菜单中选择设定颜色来更换颜色:3.按照布局创建机器人系统,细节与项目一相同,系统完全启动后,选择操纵器-配置编辑器,在下拉菜单中选择I/O,在弹出窗口中新建Unit,细节如下图所示;4.Unit新建完毕后,右击新建signal,新建do1和do2,细节如下图所示:新建完毕后,重启操纵器重启完毕后,选择仿真-配置-事件治理器-添加事件,细节如下图所示:7.事件添加完成后,开始创建路径啊,依次示教,机器人到达指定位置时,右击插入逻辑指令,如图所示:8.路径创建完成后,同步到VC,仿真设定,然后进行仿真录像项目三:叉车搬运1.打开软件,新建空工作站,导入机器人模型IRB4600,选择最大承重能力,然后选择差不多--导入几何体--扫瞄几何体--选择本地几何体--打开,如下图所示:2.利用平移和旋转指令,将不同几何体按下图位置摆放整齐:创建一个300*300*70的方体分不作为tool,将其创建为工具,具体操作如下图所示:4.设定tool的本地原点为它的中心点,如下图所示:5.选中tool,点击创建工具,将tool创建为工具,具体操作如下:创建完成后将其安装在机器人法兰盘上,右击机器人选择显示机器人工作范畴,可看到机器人最大到达距离,再次选择取消显示:创建四个200*200*200的方体分不作为Box1~Box4,设定为不同颜色,将Box2~Box4设为不可见布局终止,如下图所示:,6.按照布局创建机器人系统,待系统启动完毕后,选择操纵器--配置编辑器-新建Unit --新建signal,包括do1~do 15,如下图所示:7.设置完成后,重启操纵器,打开事件治理器,添加所需事件,包括显示对象,附加对象,提取对象,移动对象四类事件,具体如下:显示对象具体设置如下:附加对象具体设置如下提取对象设置如下:移动对象设置如下:事件添加完成后,创建路径,分不将Box1,Box2,Box3,Box4移动到垛板上,并排列整齐,路径如下图所示9.路径创建完成后,同步到VC :10.同步完成后进行仿真设定,按下图顺序添加路径,之后进行仿真录像:。

ABBrobotstudio使用详细步骤

ABBrobotstudio使用详细步骤

搬运码垛工作站建模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进行copy14、传感器与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 MainMoudlePERS tooldatatGrip:=[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 robtargetpPick1:=[[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,9 E+09,9E+09]];!1路放置基准点PERS robtarget pBase1_0:=[[-292.446294945,1263.272085268,55.449220723],[0,0.707107387,0.707106176,0],[1,0,2,0],[9 E9,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,放置后为FALSEPERS num nCount1:=1;PERS num nCount2:=1;!输送链计数PROC Main()rInitAll;WHILE TRUE DOIF diBoxInPos1=1 AND diPalletInPos1=1 AND bPalletFull1=FALSE THEN rPick1;rPlace1;ENDIFIF diBoxInPos2=1 AND diPalletInPos2=1 AND bPalletFull2=FALSE THEN rPick2;rPlace2;ENDIFWaitTime 0.1;ENDWHILEENDPROCPROC 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;ENDPROCPROC 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; ENDPROCPROC 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; ENDPROCPROC 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 THENbPalletFull1:=TRUE;ENDIFENDPROCPROC 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 THENbPalletFull2:=TRUE;ENDIFENDPROCPROC rPosition1()TEST nCount1CASE 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;ENDPROCPROC rPosition2()TEST nCount2CASE 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);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;ENDTESTENDPROCPROC 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;ENDPROCENDMODULE。

(项目管理)ABBRobotstudio仿真软件项目式使用说明

(项目管理)ABBRobotstudio仿真软件项目式使用说明

项目一:焊接机器人1.打开Robot studio软件,单击创建新建空工作站,同时保存一下,如下图所示;2.选择ABB机器人模型IRB1600,单击添加,选择承重能力和到达距离,选择确定,如下图所示:3.导入设备-tools-Binzel air 22,并拖动安装在机器人法兰盘上:4.选择建模-固体-矩形体,设定长宽高,点击创建:5.选择基本-机器人系统-从布局创建系统-下一步-下一步-完成;6.控制器启动完成后,选择路径-创建一个空路径,7.创建成功后,修改下方参数:moveJ ,V1000,Z1008.激活当前路径,选择机器人起点,单击示教指令9.开启捕捉末端或角点,同时将机器人的移动模式设为手动线性,将机器人工具移到矩形体的一个角点上,单击示教指令,形成第一条路径,依次示教四个角点,形成路径,右击路径,选择查看机器人目标,可将机器人移动到当前位置10.路径制作完成后,选择基本-同步到VC,在弹出的对话框中全部勾选,并点击确定,同步完成后选择仿真-仿真设定-将路径添加到主队列,选择应用--确定;11.选择仿真录像,点击播放,开始仿真录像。

项目二:搬运机器人1.新建空工作站--导入机器人IRB4600--选择最大承重能力,选择建模-固体-圆柱体,添加两个圆柱体,半径为200mm,高度分别为60mm和500mm,把其中一个作为工具添加到法兰盘上,同时导入两个设备Euro pallet如下图所示:2.右击物体或在左侧布局窗口中右击物体名称,在下拉菜单中选择设定颜色来更改颜色:3.根据布局创建机器人系统,细节与项目一相同,系统完全启动后,选择控制器-配置编辑器,在下拉菜单中选择I/O,在弹出窗口中新建Unit,细节如下图所示;4.Unit新建完毕后,右击新建signal,新建do1和do2,细节如下图所示:5.新建完毕后,重启控制器6.重启完毕后,选择仿真-配置-事件管理器-添加事件,细节如下图所示:7.事件添加完成后,开始创建路径啊,依次示教,机器人到达指定位置时,右击插入逻辑指令,如图所示:8.路径创建完成后,同步到VC,仿真设定,然后进行仿真录像项目三:叉车搬运1.打开软件,新建空工作站,导入机器人模型IRB4600,选择最大承重能力,然后选择基本--导入几何体--浏览几何体--选择本地几何体--打开,如下图所示:2.利用平移和旋转指令,将不同几何体按下图位置摆放整齐:3.创建一个300*300*70的方体分别作为tool,将其创建为工具,具体操作如下图所示:4.设定tool的本地原点为它的中心点,如下图所示:5.选中tool,点击创建工具,将tool创建为工具,具体操作如下:6.创建完成后将其安装在机器人法兰盘上,右击机器人选择显示机器人工作范围,可看到机器人最大到达距离,再次选择取消显示:4.创建四个200*200*200的方体分别作为Box1~Box4,设定为不同颜色,将Box2~Box4设为不可见5.布局结束,如下图所示:,6.根据布局创建机器人系统,待系统启动完毕后,选择控制器--配置编辑器-新建Unit --新建signal,包括do1~do 15,如下图所示:7.设置完成后,重启控制器,打开事件管理器,添加所需事件,包括显示对象,附加对象,提取对象,移动对象四类事件,具体如下:显示对象具体设置如下:附加对象具体设置如下提取对象设置如下:移动对象设置如下:8.事件添加完成后,创建路径,分别将Box1,Box2,Box3,Box4移动到垛板上,并排列整齐,路径如下图所示9.路径创建完成后,同步到VC :10.同步完成后进行仿真设定,按下图顺序添加路径,之后进行仿真录像:。

ABB-robotstudio使用详细步骤

ABB-robotstudio使用详细步骤

搬运码垛工作站建模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进行copy14、传感器与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 MainMoudlePERS tooldatatGrip:=[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 robtargetpPick1:=[[1488.007792464,376.826660408,476.964684195],[0,0.707106307,0.7071 07256,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,放置后为FALSEPERS num nCount1:=1;PERS num nCount2:=1;!输送链计数PROC Main()rInitAll;WHILE TRUE DOIF diBoxInPos1=1 AND diPalletInPos1=1 AND bPalletFull1=FALSE THEN rPick1;rPlace1;ENDIFIF diBoxInPos2=1 AND diPalletInPos2=1 AND bPalletFull2=FALSE THEN rPick2;rPlace2;ENDIFWaitTime 0.1;ENDWHILEENDPROCPROC 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;ENDPROCPROC 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; ENDPROCPROC 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; ENDPROCPROC 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 THENbPalletFull1:=TRUE;ENDIFENDPROCPROC 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 THENbPalletFull2:=TRUE;ENDIFENDPROCPROC rPosition1()TEST nCount1CASE 1:pPlace1:=Offs(pBase1_0,0,0,0);CASE 2:pPlace1:=Offs(pBase1_0,600+10,0,0);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);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;ENDTESTENDPROCPROC rPosition2()TEST nCount2CASE 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;ENDTESTENDPROCPROC 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; ENDPROCENDMODULE。

ABB机器人使用robotstudio系统安装步骤

ABB机器人使用robotstudio系统安装步骤

ABB机器人系统安装步骤
在工业机器人维护与保养中,若出现机器人系统崩溃或者无法解决的错误,常常需要重新安装系统,介绍用robotstudio制作系统,方法如下:
1、机器人做”X”启动BOOT Application,进入系统引导界面
2、打开RobotStudio
3、点击安装管理器
4、点击打开
5、点击新建
6、编辑新系统的名称,选择系统备份路径,单击“下一步”
7、点击“下一步”
8、点击“添加”
9、选择系统秘钥,确定,下一步
10、核对系统选项,点击“下一步”,系统选项要与原系统选项一致,否则会出错。

11、点击“应用”
12、选择“是”机器人重启,自动进入新系统
系统安装过程中,请不要随意更改步骤,否则会安装失败,失败后,则无法重新安装,只能请ABB工程技术人员进行安装(代价不是一般的大)。

ABBRobotstudio仿真软件项目式使用说明

ABBRobotstudio仿真软件项目式使用说明

项目一:焊接机器人1.打开Robot studio软件,单击创建新建空工作站,同时保存一下,如下图所示;2.选择ABB机器人模型IRB1600,单击添加,选择承重能力和到达距离,选择确定,如下图所示:3.导入设备-tools-Binzel air 22,并拖动安装在机器人法兰盘上:4.选择建模-固体-矩形体,设定长宽高,点击创建:5.选择基本-机器人系统-从布局创建系统-下一步-下一步-完成;6.控制器启动完成后,选择路径-创建一个空路径,7.创建成功后,修改下方参数:moveJ , V1000,Z1008.激活当前路径,选择机器人起点,单击示教指令9.开启捕捉末端或角点,同时将机器人的移动模式设为手动线性,将机器人工具移到矩形体的一个角点上,单击示教指令,形成第一条路径,依次示教四个角点,形成路径,右击路径,选择查看机器人目标,可将机器人移动到当前位置10.路径制作完成后,选择基本-同步到VC,在弹出的对话框中全部勾选,并点击确定,同步完成后选择仿真-仿真设定-将路径添加到主队列,选择应用--确定;11.选择仿真录像,点击播放,开始仿真录像。

项目二:搬运机器人1.新建空工作站--导入机器人IRB4600--选择最大承重能力,选择建模-固体-圆柱体,添加两个圆柱体,半径为200mm,高度分别为60mm和500mm,把其中一个作为工具添加到法兰盘上,同时导入两个设备Euro pallet如下图所示:2.右击物体或在左侧布局窗口中右击物体名称,在下拉菜单中选择设定颜色来更改颜色:3.根据布局创建机器人系统,细节与项目一相同,系统完全启动后,选择控制器-配置编辑器,在下拉菜单中选择I/O,在弹出窗口中新建Unit,细节如下图所示;4.Unit新建完毕后,右击新建signal,新建do1和do2,细节如下图所示:5.新建完毕后,重启控制器6.重启完毕后,选择仿真-配置-事件管理器-添加事件,细节如下图所示:7.事件添加完成后,开始创建路径啊,依次示教,机器人到达指定位置时,右击插入逻辑指令,如图所示:8.路径创建完成后,同步到VC,仿真设定,然后进行仿真录像项目三:叉车搬运1.打开软件,新建空工作站,导入机器人模型IRB4600,选择最大承重能力,然后选择基本--导入几何体--浏览几何体--选择本地几何体--打开,如下图所示:2.利用平移和旋转指令,将不同几何体按下图位置摆放整齐:3.创建一个300*300*70的方体分别作为tool,将其创建为工具,具体操作如下图所示:4.设定tool的本地原点为它的中心点,如下图所示:5.选中tool,点击创建工具,将tool创建为工具,具体操作如下:6.创建完成后将其安装在机器人法兰盘上,右击机器人选择显示机器人工作范围,可看到机器人最大到达距离,再次选择取消显示:4.创建四个200*200*200的方体分别作为Box1~Box4,设定为不同颜色,将Box2~Box4设为不可见5.布局结束,如下图所示:,6.根据布局创建机器人系统,待系统启动完毕后,选择控制器--配置编辑器-新建Unit --新建signal,包括do1~do 15,如下图所示:7.设置完成后,重启控制器,打开事件管理器,添加所需事件,包括显示对象,附加对象,提取对象,移动对象四类事件,具体如下:显示对象具体设置如下:附加对象具体设置如下提取对象设置如下:移动对象设置如下:8.事件添加完成后,创建路径,分别将Box1,Box2,Box3,Box4移动到垛板上,并排列整齐,路径如下图所示9.路径创建完成后,同步到VC :10.同步完成后进行仿真设定,按下图顺序添加路径,之后进行仿真录像:。

ABB机器人RobotStudio创建机械装置方法

ABB机器人RobotStudio创建机械装置方法

v1.0可编写可改正RobotStudio 创立机械装置方法1.翻开 RobotStudio 软件,创立一个新工作站。

(此处省略)2. 导入几何体(导入需要创立成机械装置的几何体,此处使用 2 个简单的几何体为例创立机械装置)3.创立机械装置。

1. 点击建模-- 创立2. 改正机械装置名机械装置 -- 跳出对3. 创立装置种类--此处以创立外轴为4. 链接,接点,框架,校准的设置v1.0可编写可改正4.链接的设置。

1. 双击链接-- 跳出对话2.链接名3.选择部4.点击按5:勾选基链接(把此中一固定零件作5. 依据上一步把其余零件都增添到链接里去。

(此处省略)v1.0可编写可改正6.接点的设置。

1. 点击接点 -- 跳出对话2. 关节名称注: A:若一个机械装置上3. 选择关节种类有多个运动关节,则增添相应的关节(注意父链接和子4. 选择子链链接要选择对)。

5. 设置关节轴B:关节轴第一个地点:选中旋转轴心的点,第二格位6.能够经过操控轴来设定关7.设定限制种类7.框架和校准的设置(相同点击框架和校准,跳出对话框)1.框架名称1. 选择校准2.属于链接3.框架地点2. 校准地点4.或直接选择5.选择能否设置8.编译机械装置。

1.点击下拉按钮 -- 选择浮动2.浮动后下拉框架 --出现编译机械装置3.点击编译4.点击增添姿态按钮-- 跳出创立姿态对话框。

(按要求可5.姿态名称6.关节值(可经过滑块调理各个姿态的地点)9.点击封闭,跳出对话框,点击“是”10. 保留为库文件,以便调用----达成。

2.ABB机器人RobotStudio创建机械装置方法

2.ABB机器人RobotStudio创建机械装置方法

WORD格式可以任意编辑RobotStudio创建机械装置方法1.打开RobotStudio软件,创建一个新工作站。

(此处省略)2.导入几何体(导入需要创建成机械装置的几何体,此处使用2个简单的几何体为例创建机械装置)3.创建机械装置。

1.点击建模--创建机械装置--跳出对2.更改机械装置名称话框3.创建装置类型--此处以创建外轴为例4.链接,接点,框架,校准的设置4.链接的设置。

1.双击链接--跳出对话框2.链接名称3.选择部件4.点击按钮添加部件5:勾选基链接(把其中一固定部件作为基链接)5.按照上一步把其他部件都添加到链接里去。

(此处省略)6.接点的设置。

1.点击接点--跳出对话框2.关节名称注:A:若一个机械装置上有多个运动关节,则添加相3.选择关节类型应的关节(注意父链接和子链接要选择对)。

4.选择子链接B:关节轴第一个位置:选中旋转轴心的点,第二格位置同样选中旋转轴心的点5.设置关节轴(注意看轴方向往哪个坐的运动的方向标,即把那个坐标值改小或改大)。

6.可以通过操纵轴来设定关节限值7.设定限制类型7.框架和校准的设置(同样点击框架和校准,跳出对话框)1.框架名称1.选择校准2.属于链接的关节。

3.框架位置2.校准位置坐标及方向4.或直接选择做好的框架5.选择是否设置为基框架8.编译机械装置。

1.点击下拉按钮--选择浮动2.浮动后下拉框架--出现编译机械装置3.点击编译机械装置4.点击添加姿态按钮--跳出创建姿态对话框。

(按要求可添加多个姿态)5.姿态名称6.关节值(可通过滑块调节各个姿态的位置)9.点击关闭,跳出对话框,点击“是”10.保存为库文件,以便调用----完成。

ABB机器人使用robotstudio系统安装步骤

ABB机器人使用robotstudio系统安装步骤

ABB机器人系统安装步骤
在工业机器人维护与保养中,若出现机器人系统崩溃或者无法解决的错误,常常需要重新安装系统,介绍用robotstudio制作系统,方法如下:
1、机器人做”X”启动BOOT Application,进入系统引导界面
2、打开RobotStudio
3、点击安装管理器
4、点击打开
5、点击新建
6、编辑新系统的名称,选择系统备份路径,单击“下一步”
7、点击“下一步”
8、点击“添加”
9、选择系统秘钥,确定,下一步
10、核对系统选项,点击“下一步”,系统选项要与原系统选项一致,否则会出错。

11、点击“应用”
12、选择“是”机器人重启,自动进入新系统
系统安装过程中,请不要随意更改步骤,否则会安装失败,失败后,则无法重新安装,只能请ABB工程技术人员进行安装(代价不是一般的大)。

ABB-robotstudio使用详细步骤

ABB-robotstudio使用详细步骤

搬运码垛工作站建模1、创建机器人系统2、创建动态输送链3、创建动态夹具4、工作站逻辑连接5、添加 IO(设置好需重启)6、示教目标点(同步到RAPID )7、RAPID 编程一、创建机器人系统1、创建空工作站2、导入 IRB 260 机器人模型二、创建动态输送链1、添加输送链并修改位置2、创建 600*400*200 的物料并修改位置3、添加一个 smart 组件4、添加 source 组件5、设置物料本地原点6、添加LINEMOVER 和 QUEUE 组件8、添加面传感器组件10、设置 SC_输送链的属性连接11、设置信号连接12、添加信号处理组件,用于检测传感器下降沿14、传感器与 SC 输送链的输出联系16、添加置位复位组件,对仿真开始结束信号进行保持17、18、进行仿真设定选择SC——输送链进行验证三、创建动态夹具1、先制作一个吸盘模型,然后设置成工具,并安装到机器人法拉盘2、添加SMART 组件3、添加ATTACHER 和DETACHER 组件5、添加一个线传感器组件7、设置吸盘工具不能被传感器检测9、设置属性连接11、添加信号处理取非和锁定组件13、添加一个示教物料四、工作站逻辑连接五、参考代码MODULE MainMoudlePERS tooldatatGrip:=[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.7071 07256,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 ,放置后为FALSEPERS num nCount1:=1;PERS num nCount2:=1;!输送链计数PROC Main()rInitAll;WHILE TRUE DOIF diBoxInPos1=1 AND diPalletInPos1=1 AND bPalletFull1=FALSE THENrPick1;rPlace1;ENDIFIF diBoxInPos2=1 AND diPalletInPos2=1 AND bPalletFull2=FALSE THENrPick2;rPlace2;ENDIFWaitTime 0.1;ENDWHILEENDPROCPROC 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;ENDPROCPROC 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; ENDPROCPROC 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; ENDPROCPROC 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 THENbPalletFull1:=TRUE;ENDIFENDPROCPROC 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 THENbPalletFull2:=TRUE;ENDIFENDPROCPROC rPosition1()TEST nCount1CASE 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);pPlace1:=Offs(pBase1_90,0,0,600);CASE19:pPlace1:=Offs(pBase1_90,400+10,0,600);CASE20:pPlace1:=Offs(pBase1_90,800+20,0,600);DEFAULT:TPErase;TPWrite"the Counter of line1is error,please check it!";Stop;ENDTESTENDPROCPROC rPosition2()TEST nCount2CASE1:pPlace2:=Offs(pBase2_0,0,0,0);CASE2:pPlace2:=Offs(pBase2_0,600+10,0,0);CASE3:pPlace2:=Offs(pBase2_90,0,400+10,0);CASE4:pPlace2:=Offs(pBase2_90,400+10,400+10,0);CASE5:pPlace2:=Offs(pBase2_90,800+20,400+10,0);CASE6:pPlace2:=Offs(pBase2_0,0,600+10,200);pPlace2:=Offs(pBase2_0,600+10,600+10,200); CASE8:pPlace2:=Offs(pBase2_90,0,0,200);CASE9:pPlace2:=Offs(pBase2_90,400+10,0,200);CASE10:pPlace2:=Offs(pBase2_90,800+20,0,200);CASE11:pPlace2:=Offs(pBase2_0,0,0,400);CASE12:pPlace2:=Offs(pBase2_0,600+10,0,400);CASE13:pPlace2:=Offs(pBase2_90,0,400+10,400);CASE14:pPlace2:=Offs(pBase2_90,400+10,400+10,400);CASE15:pPlace2:=Offs(pBase2_90,800+20,400+10,400);CASE16:pPlace2:=Offs(pBase2_0,0,600+10,600);CASE17:pPlace2:=Offs(pBase2_0,600+10,600+10,600);CASE18:pPlace2:=Offs(pBase2_90,0,0,600);CASE19:pPlace2:=Offs(pBase2_90,400+10,0,600);CASE20:pPlace2:=Offs(pBase2_90,800+20,0,600);DEFAULT:TPErase;TPWrite"the Counter of line1is error,please check it!";Stop;ENDTESTENDPROCPROC 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;ENDPROCENDMODULE。

ABBRobotstudio仿真软件项目式使用说明

ABBRobotstudio仿真软件项目式使用说明

项目一:焊接机器人1.打开Robot studio软件,单击创建新建空工作站,同时保存一下,如下图所示;2.选择ABB机器人模型IRB1600,单击添加,选择承重能力和到达距离,选择确定,如下图所示:3.导入设备-tools-Binzel air 22,并拖动安装在机器人法兰盘上:4.选择建模-固体-矩形体,设定长宽高,点击创建:5.选择基本-机器人系统-从布局创建系统-下一步-下一步-完成;6.控制器启动完成后,选择路径-创建一个空路径,创建成功后,修改下方参数:moveJ , V1000,Z1008.激活当前路径,选择机器人起点,单击示教指令9.开启捕捉末端或角点,同时将机器人的移动模式设为手动线性,将机器人工具移到矩形体的一个角点上,单击示教指令,形成第一条路径,依次示教四个角点,形成路径,右击路径,选择查看机器人目标,可将机器人移动到当前位置10.路径制作完成后,选择基本-同步到VC,在弹出的对话框中全部勾选,并点击确定,同步完成后选择仿真-仿真设定-将路径添加到主队列,选择应用--确定;11.选择仿真录像,点击播放,开始仿真录像。

项目二:搬运机器人1.新建空工作站--导入机器人IRB4600--选择最大承重能力,选择建模-固体-圆柱体,添加两个圆柱体,半径为200mm,高度分别为60mm和500mm,把其中一个作为工具添加到法兰盘上,同时导入两个设备Euro pallet如下图所示:2.右击物体或在左侧布局窗口中右击物体名称,在下拉菜单中选择设定颜色来更改颜色:3.根据布局创建机器人系统,细节与项目一相同,系统完全启动后,选择控制器-配置编辑器,在下拉菜单中选择I/O,在弹出窗口中新建Unit,细节如下图所示;4.Unit新建完毕后,右击新建signal,新建do1和do2,细节如下图所示:5.新建完毕后,重启控制器6.重启完毕后,选择仿真-配置-事件管理器-添加事件,细节如下图所示:7.事件添加完成后,开始创建路径啊,依次示教,机器人到达指定位置时,右击插入逻辑指令,如图所示:8.路径创建完成后,同步到VC,仿真设定,然后进行仿真录像项目三:叉车搬运1.打开软件,新建空工作站,导入机器人模型IRB4600,选择最大承重能力,然后选择基本--导入几何体--浏览几何体--选择本地几何体--打开,如下图所示:2.利用平移和旋转指令,将不同几何体按下图位置摆放整齐:3.创建一个300*300*70的方体分别作为tool,将其创建为工具,具体操作如下图所示:4.设定tool的本地原点为它的中心点,如下图所示:5.选中tool,点击创建工具,将tool创建为工具,具体操作如下:6.创建完成后将其安装在机器人法兰盘上,右击机器人选择显示机器人工作范围,可看到机器人最大到达距离,再次选择取消显示:4.创建四个200*200*200的方体分别作为Box1~Box4,设定为不同颜色,将Box2~Box4设为不可见5.布局结束,如下图所示:,6.根据布局创建机器人系统,待系统启动完毕后,选择控制器--配置编辑器-新建Unit --新建signal,包括do1~do 15,如下图所示:7.设置完成后,重启控制器,打开事件管理器,添加所需事件,包括显示对象,附加对象,提取对象,移动对象四类事件,具体如下:显示对象具体设置如下:附加对象具体设置如下提取对象设置如下:移动对象设置如下:8.事件添加完成后,创建路径,分别将Box1,Box2,Box3,Box4移动到垛板上,并排列整齐,路径如下图所示9.路径创建完成后,同步到VC :10.同步完成后进行仿真设定,按下图顺序添加路径,之后进行仿真录像:。

2.ABB机器人RobotStudio创建机械装置方法(最新整理)

2.ABB机器人RobotStudio创建机械装置方法(最新整理)
RobotStudio 创建机械装置方法
1.打开 RobotS入几何体(导入需要创建成机械装置的几何体,此处使用 2 个简 单的几何体为例创建机械装置) 3.创建机械装置。
1.点 击 建 模 --创 建 机 械 装 置 --跳 出 对 话框
2.更改机械装置名称
7.框架和校准的设置(同样点击框架和校准,跳出对话框)
1.框架名称 2.属于链接
1.选 择 校 准 的关节。
3.框架位置
4.或 直 接 选 择 做好的框架
2.校 准 位 置 坐标及方向
5.选择是否设置 为基框架
8.编译机械装置。
1.点 击 下 拉 按 钮--选择浮动 2.浮 动 后 下 拉 框 架 -出现编译机械装置 3.点 击 编 译 机械装置 4.点 击 添 加 姿 态 按 钮 --跳 出 创 建 姿 态 对话框。(按要求可 添加多个姿态)
5.姿态名称 6.关节值(可通过滑块调 节各个姿态的位置)
9.点击关闭,跳出对话框,点击“是”
10.保存为库文件,以便调用----完成。
3.创建装置类型--此 处以创建外轴为例
4.链接,接点,框架, 校准的设置
4. 链接的设置。
2.链接名称 3.选择部件 4.点击按钮 添加部件 5:勾选基链接(把 其中一固定部件作 为基链接)
1.双击链接--跳出对话框
5. 按照上一步把其他部件都添加到链接里去。(此处省略)
6. 接点的设置。
2.关节名称
3.选择关节类型
4.选择子链接
5.设 置 关 节 轴 的运动的方向
6.可 以 通 过 操 纵轴来设定关 节限值
7.设定限制类型
1.点击接点--跳出对话框
注:A:若一个机械装置上 有多个运动关节,则添加相 应的关节(注意父链接和子 链接要选择对)。 B:关节轴第一个位置:选 中旋转轴心的点,第二格位 置同样选中旋转轴心的点 (注意看轴方向往哪个坐 标,即把那个坐标值改小或 改大)。

ABB robotstudio使用详细顺序

ABB robotstudio使用详细顺序

搬运码垛工作站建模1、创建机器人系统2、创建动态输送链3、创建动态夹具4、添加source组件5、设置物料本地原点6、添加LINEMOVER和QUEUE组件7设置LINEMOVER属性8、添加面传感器组件9、设置输送链不能被传感器检测10、设置SC_输送链的属性连接11、设置信号连接12、添加信号处理组件,用于检测传感器下降沿13、传感器下降沿触发source进行copy17、11、添加信号处理取非和锁定组件12、继续信号连接13、添加一个示教物料14、应用手动线性验证SC_工具四、工作站逻辑连接五、参考代码MODULEMainMoudlePERStooldatatGrip:=[TRUE,[[0,0,200],[1,0,0,0]],[25,[0,0.00109327, 116.889],[1,0,0,0],0,0,0]];!1路放置0度姿态!1路放置90度姿态PERSrobtargetpPlace2:=[[-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]];PERSspeeddataMinSpeed:=[1000,300,5000,1000];PERSspeeddataMidSpeed:=[2500,400,5000,1000];PERSspeeddataMaxSpeed:=[4000,500,5000,1000];!搬运速度定义PERSboolbPalletFull1:=FALSE;PERSboolbPalletFull2:=FALSE;!逻辑布尔量,拾取后为UE,放置后为FALSE PERSnumnCount1:=1;ENDPROCPROCrInitAll()ResetdoGrip;pActualPos:=CRobT(\tool:=tGrip); MoveLpActualPos,MinSpeed,fine,tGrip\WObj:=wobj0; MoveJpHome,MidSpeed,fine,tGrip\WObj:=wobj0;bPalletFull1:=FALSE;nCount1:=1;bPalletFull2:=FALSE;nCount2:=1;ENDPROCPROCrPick1()PROCrPlace1()rPosition1;MoveJOffs(pPlace1,0,0,400),MidSpeed,z50,tGrip\WObj:=wobj0; MoveLpPlace1,MinSpeed,fine,tGrip\WObj:=wobj0; ResetdoGrip;WaitTime0.3;GripLoadLoadEmpty;MoveLOffs(pPlace1,0,0,400),MidSpeed,z50,tGrip\WObj:=wobj0; MoveJOffs(pPick1,0,0,400),MaxSpeed,z50,tGrip\WObj:=wobj0; nCount1:=nCount1+1;IFnCount1>20THENbPalletFull1:=TRUE;ENDPROCPROCrPosition1()TESTnCount1CASE1:pPlace1:=Offs(pBase1_0,0,0,0);CASE2:pPlace1:=Offs(pBase1_0,600+10,0,0);CASE3:pPlace1:=Offs(pBase1_90,0,400+10,0);CASE4:pPlace1:=Offs(pBase1_90,400+10,400+10,0); CASE5:CASE13:pPlace1:=Offs(pBase1_90,0,400+10,400); CASE14:pPlace1:=Offs(pBase1_90,400+10,400+10,400); CASE15:pPlace1:=Offs(pBase1_90,800+20,400+10,400);CASE16:pPlace1:=Offs(pBase1_0,0,600+10,600); CASE17:pPlace1:=Offs(pBase1_0,600+10,600+10,600); CASE18:pPlace1:=Offs(pBase1_90,0,0,600);pPlace2:=Offs(pBase2_0,600+10,0,0);CASE3:pPlace2:=Offs(pBase2_90,0,400+10,0);CASE4:pPlace2:=Offs(pBase2_90,400+10,400+10,0); CASE5:pPlace2:=Offs(pBase2_90,800+20,400+10,0); CASE6:pPlace2:=Offs(pBase2_0,0,600+10,200); CASE7:pPlace2:=Offs(pBase2_0,600+10,600+10,200); CASE8:CASE16:pPlace2:=Offs(pBase2_0,0,600+10,600); CASE17:pPlace2:=Offs(pBase2_0,600+10,600+10,600); CASE18:pPlace2:=Offs(pBase2_90,0,0,600);精心整理CASE19:pPlace2:=Offs(pBase2_90,400+10,0,600); CASE20:pPlace2:=Offs(pBase2_90,800+20,0,600); DEFAULT:TPErase;。

ABB机器人RobotStudio创建机械装置方法

ABB机器人RobotStudio创建机械装置方法

RobotStudio创建机械装置方法1.打开RobotStudio软件,创建一个新工作站。

(此处省略)2.导入几何体(导入需要创建成机械装置的几何体,此处使用2个简单的几何体为例创建机械装置)3.创建机械装置。

1.点击建模--创建2.更改机械装置名机械装置--跳出对3.创建装置类型--此处以创建外轴为4.链接,接点,框架,校准的设置1.双击链接--跳出对话2.链接名3.选择部4.点击按5:勾选基链接(把其中一固定部件作5.按照上一步把其他部件都添加到链接里去。

(此处省略)7.框架和校准的设置(同样点击框架和校准,跳出对话框)8.编译机械装置。

1.点击接点--跳出对话2.关节名称3.选择关节类型4.选择子链5.设置关节轴6.可以通过操纵轴来设定关7.设定限制类型1.框架名称2.属于链接3.框架位置4.或直接选择5.选择是否设置1.选择校准2.校准位置注:A :若一个机械装置上有多个运动关节,则添加相应的关节(注意父链接和子链接要选择对)。

B :关节轴第一个位置:选中旋转轴心的点,第二格位1.点击下拉按钮--选择浮动2.浮动后下拉框架--出现编译机械装置3.点击编译4.点击添加姿态按钮--跳出创建姿态对话框。

(按要求可5.姿态名称6.关节值(可通过滑块调节各个姿态的位置)9.点击关闭,跳出对话框,点击“是”10.保存为库文件,以便调用----完成。

ABB01基本操作与robotstudio

ABB01基本操作与robotstudio

基本操作篇创建系统:基本-机器人系统-从布局-设置系统名与存放位置-下一步-选项-勾选“644-5 Chinese”、“709-x DeviceNet”、“840-2 Profibus”,其他的根据需要勾选-确定-完成导入自带几何体:建模-导入几何体-安装目录下——ABB Industrial IT——Robotics IT——RobotStudio 5.15——ABB Library——Training Objects电气参数静电手环的使用开机:将控制柜上的旋钮打到on关机:ABB-重新启动-高级-关机。

关机需要一定时间,关机完成后将控制柜上的旋钮打到off重启:I启动:恢复出厂设置;P启动:删除全部rapid 程序一台机器人的系统备份不可到别的机器人上恢复自定义增量大小:第4步直接点击数字修改第3步中该百分数表示摇杆幅度控制的机器人速度重定位:TCP不变,机器人做姿态调整。

使用重定位模式时,“坐标系”选择“工具坐标”控制面板中表示诊断系统并生成一个报告,供工程师分析错误校准转数计数器:6轴回原点(先回456,再回123)。

也可只校准某一轴。

1ABB-校准-rob1校准-校准参数-编辑电机校准偏移-是-核对该数据,若与机器人上贴的标准值相差很大则手动修改为标准值,相差不大则无需修改。

2再次点击ABB-校准-rob1校准-转数计数器-更新转数计数器-是-确定-勾选需要更新的轴或点击“全选”-更新Robotstudio篇创建新系统:控制器-系统生成器-创建新系统-下一步-起个名字-勾选“虚拟序列号”-下一步-点击“右箭头”导入序列号-提示输入密码,不用管它,直接点下一步-后面的与创建工作站一样。

选择好后点击“完成”系统备份与恢复:从备份创建系统:使用真实的机器人备份可以创建一个和真是的机器人完全一样的工作站。

操作步骤:1用“系统生成器”从备份创建一个系统a-2新建工作站并启动虚拟控制器导入该系统a-3打开虚拟示教器,恢复系统。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

搬运码垛工作站建模1、创建机器人系统2、创建动态输送链3、创建动态夹具4、工作站逻辑连接5、添加 IO(设置好需重启)6、示教目标点(同步到 RAPID)7、RAPID编程、创建机器人系统1、创建空工作站2、导入IRB 260机器人模型3、从布局创建机器人系统,勾选 Chinese和709-1网络、创建动态输送链1、添加输送链并修改位置-<X>■*=-丿 =If e»wT Q ;b2L*a f^fsandWr任詩 5TJP1匚聲jj wf-i監lAM 帼1融M菲E9^ 烷■tl ・i |■厂 iRJlHP JuMJhri PRTBFh\^i ir*fite.,展』||\-」|||』(1咀1_补口B <I 「;工虫』.1)了曲|2、创建600*400*200的物料并修改位置3、添加一个smart组件屯日哼…乙? ”刁沫保存工作站]-ABB RobotStudio 6—4、添加source 组件@11: 5u 託电£marffil4P ^rentP Q si ti cn Ijnip)O.QQ1▲ D 00 區11亍0 00J K I TIQr i 曲 at i m Gee)C0.00T□. DOJL,| |y0 00 |T|_/ Tr insi ent田舐陌島城口茫已岂窿范复制对爲誉厅乐记・朗止冈存背屛龙发生. EKtCUte旋用5、设置物料本地原点建植控劃器gRAPID Add-Ins修改g 细'4蟲G 导入几呵燼>至都件 &桓架〒Smarty 伴Q 标记・孕虱*・宅]掏呻辿界 费表匡” £1表面边界 曰燥-闿从註盛边界GD --工卞壬宜 O 感去幌控亡m 戎U >苗合 客尿竣生成直践 它一建CAD*届性5C_箱送疽|____________ X 应胃关闭|筋|建模閩 牙味保存工作站1*声物料-2彳理1 SQ 義送睚X 励sc_输送链 I 融组________________________ 子对龜组井盪tn 细件编错父74芟Source物料属性璽SG_输送链组咸|属性与连结[信号和连捱丽 子对象鉅件麻恤纟冃件 g處呈Siurcft创建一个图盼组件的拷瓜已證垦二q 可it可见设走內竺设罟本地愛敷勒料应用 黄闭6、添力口 LINEMOVE 和 QUEU 组件返[未保存工作站1*fflft-4 sc.ffiisSiLin* ^rMov^r 丿二Qn 已"虫 S*ur 寸物H护物料_2Ctrl*X 复刮Ctrl-匚ct 「i 亠s墓考__| sc_«^S x L厢sc_输送链组成 禹性与逹结I 信号和连播I 设计7设置LINEMOVE 属性届性:Lin earM ever▼ X属性Object 日W 输送 ▼Direct ion Gnm) -i.ao ' o.oo " □.«): F(m/i)200Rtf&rsuciGlobal ♦信号BExecute1应用1灵闪]&添加面传感器组件Ori gin 亦 loao.oo**1 T 1-220. 00T73. 00~v1信号关闭9、设置输送链不能被传感器检测属■性:P Ilan eSensc rJE 性三]Axi si Q MH ) 450.000. 00 Axi E 2 ^nm)i0.00:0. 00E 色 iiHwdP art0. 00应用Ctrl-XCtfl-C帖芒 Ctrl+V已理几何愫检杳-^- W®^*ucs*&盘oX Srh ^-4 MSJ>叛丑>k惨顶M她雜SD 几词体应、外睚坏10、设置SC_输送链的属性连接11、设置信号连接12、添加信号处理组件,用于检测传感器下降沿届性! LogicGate[NOT|属性Op eratorBUTDelay (fi)□. 0信号关闭J |观匡丄| £C輕踊X [I尿sc_输送链组成国性与连结倍号亚按设计却毀组件SmartiS.^1 Source'创遂一个图形组件的拷贝Line aHM over移动一个対象剽一条结上”血Q ULEU电表示拘耐象的PA5'J*可作拘组进行撫纵Lo进缠Op布届連嘆I嚴I 匹味保存工怖占]*机械蕉詈jj Plu^«Stni:orJ事监测对象与平面相交Locic<?ate [HOT] 进帶悼信号的卷揖运箕13、传感器下降沿触发source进行copy I TL 输Ou14、传感器与SC 输送链的输出联系I士hHrfl 「n 心协产开孑耳十宙苗启涓垢 IfiBiSftriCW Swet驾 HUT E4tZ»«[*kL4Q>lEii4iL«av TlaieStJiscr 5eii5(rDLl 訓真IEli和 IIL-UELog. cGitf [HTT] Etatpicil Lofi [WT1Iipul KLoig : eGite [NTT]Qvlpijl?niriztJCMZICl O'-L (SCJflfett三扪匚“上・皿”"1_!"| 堀皆 总用 I/-」wTi i • )]||r15、添加仿真开始结束组件,用于激活传感器SC 更世楚X I sc 输送键召寻尊uFf cH ti' _i: - -i:-Ji 0 t ■C.Tnjut尙sc_输送链属性与14结|值号和谨接丨设计子对余组件3] Soiirce■创建一亍圉形组件的拷囚- LizLearFlcverV移动一介耐象到一杀线上Queue恚示脚对蔬的乩列,可作汁组遴讦操孤I J Fl uieS £tisorH事苗测对象与平面相交■I—、_ Lo^i[WT]A磁器勘宇信号的逻辑运算|/— SinulatiimEveiits,厶J一仿車畔冶和偉[:时片出『1瞬冲信2rrr16、添加置位复位组件,对仿真开始结束信号进行保持裁sc_输送琏组我匡性5连结荷号和连掩设计子对證殂件■ _ Linavrklayar叱移动-亍对象到—杀线上Q卫曽口聲表示为时象的认列,可作为组进行操纵[j, PlaneSens ore■监圳対象与平面相交-TA Ldgi eGate [HOT] 丄占逬荐敎宇信當的邊辑运算I/- R S irfiul ali oziE^eiits仿亘幵始和恒止时芨尤的脉冲信号洱1 cSHLfiteh昴设备谊傥锁定rrrSr^KW ihCl T^IniDfi dffil*ffl'Ifi蔚曲冃扁?fitL・GB^&t・ [ET]jull Ji L M□虫•■MTJ IificrUL■牛i・[IDT]JhjLjral S-7EE-Z3.Bx-t=i.t<il«M^4M4T泊他啦Xjmi tlllJlt ■附ShAalF'd arf! tnl ■,£dnl.*U«Ed I HT-I-I J Lhpa2>Li.C.-di dik、l-T«il>h"lBl<rMM刘沁吐l. T • tjj-fct B IWI.L呵崩・那廿TX ■il^474hl4*'Ii t|**別拯fc*§目网B3#?d»^rirc«EJMlt4pJ a>」*4EJVJ4K-F'l hTr«J4«j|M EiMirDldL tAjaoa-g.wM乩“町gi.U|i^<4 iRrTl T屮■■Lqf ■£|RT|.IH警初^4"电B EfietUI-*01」Fl U>fi::fMI知冋盯g实用祗気・ijli - FrZTan' i£iH・ i ,rE、■* *:■( T L?|L喧IL#.品5k*Hll*i;l aru: Ef^Jrl LAfL^SlLbLCh LaC-kkLl£JC^l^-l.t=SL llir^uaEjm fiEUn[iLnjli^j iflMU SdlFCE Exeort.«L"山啊吐鼻i 11 ■:■皿环MJ磴•hlTM「•:■»>< ■:卜:,•" J£f£.迂•:・:血"r^TT * i ti- 1 H^ 卜坯18、进行仿真设定选择SC ------- 输送链进行验证三、创建动态夹具1、先制作一个吸盘模型,然后设置成工具,并安装到机器人法拉盘2、添加SMAR组件3、添力口 ATTACHE和 DETACHE组件组薦属性与连结I信号和连接丽Atte.cher 安装-V 对象 D«t«.?L»r*拆瞧一个已安装的对象B单SniSSWf 何对象与两点之间的线段相交6、线传感器设置属性5、添加一个线传感器组件 子対隶组甘阖10组性LineSensorLineSen&or | G XJitt ~~aSt art (mm)[no^|^■o ao:1356.00Ji.亍1End Grwn)1505.00j ao^1256.00Ji. M 1R^diu瓦(rm)4. 00SeJisadFartiRiieo_n(j_2aa_oi/Ba£^ ■Seits&iFoiiLt (jnm)0.00 Q ao 14.00"信号日应用关闭7、设置吸盘工具不能被传感器检测8、把线传感器安装到吸盘(不更新位置,保持当前位置)丿廟囂二具曲勺吐t acker 商De lackerLiiLeSens丿七itsiCtrl-X口「1-匚Hrl-V 绘存为氧X. rr™可见送运为皿9、设置属性连接卜k届性body 1Body 11RB46O_11&_24G_Q1H”揃•鋅xipan电史K 1;11«利酒$世L'tT.DlTrt :t!D 庖活 H 许U 崛tfr WlT10、添加信号及连接励SC:_工具B J±生京t-.+(x> 肯E.:-•一'n =・k<! - =;F 门•命=三皿UK_________________:-ttlOO *™r.ectim 扌嚴Q 世型L'O "■inr.tirtE^s ND;11、添加信号处理取非和锁定组件子曲漿组件滋协细件Etflichftr:拆柠-亍已安装的对象LinaS aits or检测是否有任何对象与两点之i蒯绒段相交H f \ LogiuG札怙D1OT]占丿进行数宇信号的逻辑运算12、继续信号连接•Attaeher安装一个对象归L _! 凯,m SC_XA 坐WltlTF冃•eT* 愿刁三列旨佶己<Bi H[;13、添加一个示教物料14、应用手动线性验证 SC工具信号:]VarvOEoL 的一期1 tK 穹:左誠” M沾】”J富 I U Ko_] ]□申q*甘吨■iWtt Ad 用Iflff£❻血JE 具 II副让凸KT四、工作站逻辑连接忙;H弄y : f iP^fc ^dd-tvk H -■=壬書*j 7 G前mgweiwistB rH 皿曲•]>l3t«S X忑sc P alletp J •=呻辰北忌二片51-XW 3=- ■- =Ga.-亍 =二"teliEAS “盘切」1 ■口:医壬严口 S ■耳 精 H1T4t 3 ■神□HIM! ITdr ;j«5 出■鼻幣氏"**4sMx XT Jh jr/“片 AC Pad^BT JlllkSC "'Jir___________五、参考代码MODULE MainMoudlePERS tooldatatGrip:=[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 robtargetpPick1:=[[1488.007792464,376.826660408,476.964684195],[0,0.707106307,0.7071 07256,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放置后为FALSEPERS num nCount1:=1;PERS num nCount2:=1;!输送链计数PROC Main()rInitAll;WHILE TRUE DOIF diBoxInPos1=1 AND diPalletInPos1=1 AND bPalletFull1=FALSE THEN rPick1;rPlace1;ENDIFIF diBoxInPos2=1 AND diPalletInPos2=1 AND bPalletFull2=FALSE THEN rPick2;rPlace2;ENDIFWaitTime 0.1;ENDWHILEENDPROCPROC 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;ENDPROCPROC 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; ENDPROCPROC 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; ENDPROCPROC 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 THENbPalletFull1:=TRUE;ENDIFENDPROCPROC 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 THENbPalletFull2:=TRUE;ENDIFENDPROCPROC rPosition1()TEST nCount1CASE 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;ENDTESTENDPROCPROC rPosition2()TEST nCount2CASE 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;ENDTESTENDPROCPROC 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;ENDPROCENDMODULE欢迎您的下载,资料仅供参考!致力为企业和个人提供合同协议,策划案计划书,学习资料等打造全网一站式需求。

相关文档
最新文档