ABBrobotstudio使用详细步骤
ABB机器人操作手册(中文版)[5]
![ABB机器人操作手册(中文版)[5]](https://img.taocdn.com/s3/m/82e15674842458fb770bf78a6529647d27283421.png)
ABB机器人操作手册(中文版)ABB操作手册(中文版)概述采用模块化设计,可根据不同的需求和场合选择合适的机械臂、控制柜、控制器和软件。
采用IRC5控制系统,具有强大的计算能力、通信能力和扩展能力,支持多种编程语言和接口。
采用RobotStudio软件,可实现对的仿真、编程、调试和优化。
支持多种安全功能,如安全区域、安全速度、安全住手等,保障人员和设备的安全。
组成机械臂:是的执行部份,由多个关节和驱动器组成,可实现多自由度的运动。
控制柜:是的控制部份,包含了电源模块、CPU模块、I/O模块、驱动模块等,负责对进行控制和管理。
控制器:是的操作部份,是一种便携式的触摸屏设备,可通过有线或者无线方式与控制柜连接,用于对进行设置、操作和监控。
软件:是的程序部份,包括了运行在控制柜上的操作系统和应用程序,以及运行在PC上的仿真和编程软件。
操作本节介绍了如何对ABB进行基本的操作,包括了启动、住手、复位、手动操作、自动操作等。
启动机械臂处于空载状态,没有任何工具或者物品附着在末端执行器上。
机械臂周围没有任何障碍物或者危(wei)险物品。
控制柜已经连接好电源,并且电源开关处于关闭状态。
控制器已经连接好控制柜,并且电池电量充足。
PC已经连接好控制柜,并且安装好RobotStudio软件。
启动的步骤如下:1. 打开控制柜的电源开关,等待控制柜自检完成。
2. 打开控制器的电源开关,等待控制器启动完成。
3. 在控制器上选择“系统”菜单,并选择“启动”选项。
5. 等待系统提示“启动成功”,并显示主界面。
住手机械臂处于空载状态,没有任何工具或者物品附着在末端执行器上。
机械臂周围没有任何障碍物或者危(wei)险物品。
处于住手状态,没有任何运动或者动作。
住手的步骤如下:1. 在控制器上选择“系统”菜单,并选择“住手”选项。
3. 等待系统提示“住手成功”,并显示主界面。
4. 关闭控制器的电源开关。
5. 关闭控制柜的电源开关。
复位机械臂处于空载状态,没有任何工具或者物品附着在末端执行器上。
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 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()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;ENDIFENDPROCTEST 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: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: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机器人操作手册 中文版

ABB机器人操作手册中文版ABB机器人操作手册一、引言机器人操作手册是为了帮助操作员正确使用ABB机器人并充分发挥其功能而编写的。
本手册详细介绍了ABB机器人的基本操作流程、安全注意事项以及常见故障排查方法。
通过仔细阅读和理解本手册,您将能够熟练操作ABB机器人,确保工作的高效性和安全性。
二、机器人基本操作流程1. 启动机器人1.1 检查电源和电气连接是否正常1.2 打开机器人控制器电源开关1.3 按下启动按钮,等待机器人系统启动完成2. 安全操作2.1 穿戴正确的个人防护装备2.2 确保工作区域清洁整洁,无杂物和障碍物2.3 确保操作环境良好,并避免机器人在危险区域工作3. 机器人操作3.1 了解机器人的基本结构和组件3.2 使用机器人控制器进行精确的运动控制3.3 学习编程语言和指令,以实现各种自动化任务3.4 掌握机器人的手动操作和远程控制方法4. 故障排查和维护4.1 快速识别和解决常见的机器人故障问题4.2 定期检查机器人的机械结构和电气系统4.3 做好机器人的日常维护工作,保持其正常运行状态三、安全注意事项1. 操作员必须接受专业的培训和认证,熟悉机器人的工作原理和操作流程。
2. 操作员必须遵守机器人的操作规范和相关法律法规,确保自身安全和设备安全。
3. 在机器人工作期间,任何人员都不得进入工作区域,以免发生意外。
4. 在机器人操作过程中,严禁随意更改或调整机器人的参数和程序,以免引发故障或事故。
5. 在机器人运行前,必须对机器人及其周围的工作区域进行安全检查,确保无隐患。
四、常见故障排查方法1. 机器人无法启动1.1 检查机器人控制器的电源连接是否正常1.2 检查机器人控制器的开关和按钮是否正确设置和操作2. 机器人无法动作2.1 检查机器人的运动控制面板是否处于正确的模式和状态2.2 检查机器人周围是否有障碍物或阻碍其运动的物体3. 机器人运动异常3.1 检查机器人的传感器和执行器是否正常工作3.2 检查机器人的运动路径和轨迹是否正确五、结语本操作手册旨在帮助操作员更好地理解和使用ABB机器人,并在工作中提高效率和安全性。
ABB软件入门

CTRL +N
CTRL +J CTRL +G
GWM-PPT
9
二、创建机器人系统
GWM-PPT
10
GWM-PPT
11
创建机器人系统有多种方法:
一、通过离线系统生成器创建系统
GWM-PPT
12
二、通过建立工作站创从布局创建系统为例, 对创建系统的过程进行讲解:
李小龙robotstudio软件入门目录1软件界面及基本操作1创建机器人系统2工具的建立3运动路径的仿真4一软件界面及基本操作34菜单栏子菜单用户界面1软件界面5用户界面1软件界面菜单栏子菜单61软件界面建模仿真离线72基本操作目的使用键盘鼠标组合说明选择项目只需单击要选择的项目即可
ABB省培返岗课件 RobotStudio软件入门
GWM-PPT
31
3、创建目标点:基本 目标点创建目标,在运动轨 迹上选取相应的目标点,点击 创建。
GWM-PPT
32
4、创建路径:基本路 径空路径,将创建的目标点 拖入创建的路径中。
拖至
GWM-PPT
33
GWM-PPT V2012.2
课程回顾
1 2 3 4
软件界面及基本操作
创建机器人系统 工具的建立
2、为工具设定本地原点,如果将要设定成本 地原点的位置不可见,可以制作一个表面圆覆盖, 并保证表面圆的圆心为本地原点位置,在表面圆上 设定本地原点,然后将表面圆删除即可。以下详细 说明设定的过程。
GWM-PPT
20
为本地原点处覆盖一个表面圆:建模曲线 三点画圆,选中三个点后点击创建
GWM-PPT
一、首先建立一个空工作站
GWM-PPT
14
二、在ABB模型库中添加适当型号的机器人
Abb-robotstudio安装教程

Abb robotstudio安装教程
1、各个版本的robot安装方式是一样的。
2、解压安装包
3、
4、选择语言为中文
5、
6、选择安装产品
7、
8、首先安装
robotware
9、点击下一步
10、点击下一步
11、在选择安装路径时只需要把C改为D就可以了。
12、安装robot完毕后安装robotstudio回到初始界面
13、
14、安装robotstudio
15、点击下一步
16、下一步
17、将路径的C改为D,方法如上
18、64位windows系统会出现两个图标,
19、可以同时使用
20、32位系统只有一个图标,还是正常使用。
21、打开软件点击选项
22、点击授权
23、查看软件使用到期时间。
24、关闭软件,破解开始。
25、在开始下输入regedit回车
26、进入注册表编辑器
27、
28、在这里32位系统和64位系统注册表文件路径有所不
同,现在以64位系统为例
29、
30、
31、
32、
33、双击打开后进入编辑
34、
35、破解完毕打开robot
36、选项---》授权- 查看已安装许可证
37、时间变为2029年破解成功.
38、注意:32位系统没有此步骤直接跳到下
一步。
机器人仿真软件安装与使用

J2轴 J1轴
( 1 ) ABB 机器人 IRB120 机械原点刻度位置 注:各个型号的机器人机械原点刻度位置会有所不同
关节轴1
关节轴2
关节轴3
关节轴4
关节轴5
关节轴6
(2)电机偏移数据
位置偏移
小提示:如果机器人
由于安装位置的关系, 无法六个轴同时到达 机械原点刻度位置, 则可以逐一对关节轴 进行转数计数器更新。
机器人仿真软件安装与使用
一、RobotStudio软件的安装与使用 二、ABB机器人基础操作
一、RobotStudio软件的安装与使用
RobotStudio的安装
创建工作站
示教器使用
1.RobotStudio的安装
下载(拷贝)安装包 解压安装包 点击解压文件夹 找到 图标,并双击;
根据提示进行操作(安装方式选择完整安装,安装路径改 成D盘) 完成安装后,桌面出现 图标。
下拉菜单→备份与恢复
2.数据备份与恢复
3.关节运动
下拉菜单→手动操纵→动作模式→轴1-3(轴4-6)→确定
4.线性运动
下拉菜单→手动操纵→动作模式→线性→确定
4.线性运动
机器人的线性运动是指安装在机 器人第六轴法兰盘上的工具在空 间中作线性运动。
如果对使用操纵杆通过位移幅度来控制
机器人运动的速度不熟练的话。那么可 以使用“增量”模式,来控制机器人运 动。
在增量模式下,操纵杆每位移一次,机
器人就移动一步。如果操纵杆持续一秒 或数秒钟,机器人就会持续移动(速率 为每秒10步)。
3.重定位运动
操作过程:下拉菜单→手动操纵→动作模式→重定 位→确定 机器人的重定位运动是指机器人第六轴法
ABB机器人操作员使用手册

ABB机器人操作员使用手册关于本手册本手册供首次启动系统时使用。
它包含机器人系统出厂附带文档中的摘录信息。
手册用法本手册包含在完成物理安装后首次启动IRC5 机器人控制器时的指示说明。
本手册的阅读对象本手册面向:•调试人员操作前提读者应该熟悉的内容:•机器人硬件的机械安装。
•受过机器人操作方面的培训。
本手册内容假定所有硬件(操纵器、控制器等)均已正确安装并互相连接妥当。
本手册由以下各章组成:1操作步骤 设置和启动 IRC5 机器人系统的步骤。
2概述 介绍 IRC5 机器人系统中的部件。
一:安全1.1 安全术语安全信号简介:本节将明确说明执行此手册中描述的工作时,可能会出现的所有危险。
每种危险包括:• 标题,指明危险等级(危险、警告或小心)和危险类型。
• 简要描述,描述操作/维修人员未排除险情时会出现什么情况。
• 有关如何消除危险以简化工作执行的说明。
危险等级标志 名称含义危险 警告,如果不依照说明操作,就会发生事故,并导致严重或致命的人员伤害和/或严重的产品损坏。
该标志适用于以下险情:碰触高压电气装置、爆炸或火灾、有毒气体、压轧、撞击和从高处跌落等。
电击 针对可能会导致严重的人身伤害或死亡的电气危险的警告小心警告如果不依照说明操作,可能会发生能造成伤害和/或产品损坏的事故。
该标志适用于以下险情:灼伤、眼部伤害、皮肤伤害、听力损伤、挤压或滑倒、跌倒、撞击、高空坠落等。
此外,它还适用于某些涉及功能要求的警告消息,即在装配和移除设备过程中出现有可能损坏产品或引起产品故障的情况时,就会采用这一标志。
静电放电(ESD)针对可能会导致严重产品损坏的电气危险的警告注意 描述重要的事实和条件1.2 操纵器标签上的安全符号本节描述操纵器标签上使用的安全标志。
标志在标签上组合使用,描述每个具体的警告。
本节介绍的是常规内容,标签上可以包含附加信息(如,值)。
必须查看操纵器标签上的安全和健康标志,以及系统构建人员或集成人员提供的补充安全信息。
ABB手操器操作步骤

ABB手操器操作步骤1.打开手操器:首先,按下手操器上的电源按钮,等待一段时间,直到手操器的屏幕亮起来。
一旦屏幕亮起,手操器将进入启动界面。
2.登录:在启动界面上,输入您的用户名和密码,然后按下登录按钮来登录手操器控制系统。
如果您是第一次使用手操器,您可能需要先创建一个新用户。
3.选择机器人:一旦登录成功,手操器将显示一个机器人列表。
通过滚动屏幕或使用状态栏上的箭头按钮来选择您想要操作的机器人。
4.选择模式:在选择机器人后,手操器将显示可用的操作模式列表。
这些模式可能包括手动模式、自动模式和编程模式。
选择适当的模式,然后按下确认按钮。
5.手动模式:如果您选择手动模式,手操器将显示一个用于手动控制机器人的界面。
这个界面通常包括按钮、摇杆和轮廓盘等控制元素。
根据需要,使用这些控制元素来操作机器人的运动。
8.可选设置:除了上述基本操作模式外,手操器还提供了一些其他的可选设置。
例如,您可以调整屏幕亮度、声音和语言设置,配置通信和网络连接,以及更新和升级手操器的软件。
9.安全操作:在使用手操器时,务必遵循安全操作规程。
这包括正确使用手操器的控制元素,遵守机器人的工作空间限制,以及穿戴适当的个人保护装备。
10.关闭手操器:当您完成使用手操器时,按下手操器上的关机按钮,然后按照屏幕上的指示进行操作。
最后,手操器将关闭,并退回到启动界面。
以上是ABB手操器的操作步骤。
熟练掌握这些步骤可以帮助您有效地操作和编程ABB机器人。
由于ABB手操器的具体型号和软件版本可能有所不同,因此在实际应用中,还需要参考相关的操作手册和用户指南。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
搬运码垛工作站建模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.7 07107256,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+0 9,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); 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。