ABBRobotstudio仿真软件项目式使用说明
RobotStudio软件入门(1)
弹出 不能含中文!!!
GWM-PPT V2012.2
16
汇报人:高兴照
GWM-PPT V2012.2
17
汇报人:高兴照
至此,一个机器人的系统便创建完 成了。
GWM-PPT V2012.2
18
汇报人:高兴照
三、工具的建立
GWM-PPT V2012.2
19
汇报人:高兴照
1、添加一个工具(如焊枪、切割工具等) 到工作站中。
GWM-PPT V2012.2
24
汇报人:高兴照
接下来要设置本地原点的方向与大地坐标一 致:右击工具选择设定本地原点调整各轴 方向使之与大地坐标对应
至此,本地原点便设定好了。
GWM-PPT V2012.2
25
汇报人:高兴照
3、创建工具坐标系TCP 首先建立一个框架,框架位置为焊帽中心点:
位置为焊帽中心点
缩放工作站 使用窗口缩放
使用窗口选择
使用键盘/ 鼠标组合
说明
只需单击要选择的项目即可。
CTRL + SHIFT + CTRL +
CTRL + SHIFT +
SHIFT +
按 CTRL + SHIFT 及鼠标左键的同时, 拖动鼠标对工作站进行旋转。
按 CTRL 键和鼠标左键的同时,拖动 鼠标对工作站进行平移。
3
1、软件界面
汇报人:高兴照
菜单栏
子菜单
用户界面
GWM-PPT V2012.2
4
1、软件界面
汇报人:高兴照
菜单栏
GWM-PPT V2012.2
子菜单 用户界面
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。
ABB RobotStudio Machining PowerPac软件说明书
For your business and technology editorsPage 1 of 1 Software from ABB solves machining problemsThe new RobotStudio Machining PowerPac optimizes automated machining.Västerås, Sweden, September 19 2008, ABB, the leading power and automation technology group, today announced the launch of the software RobotStudio Machining PowerPac. Designed to ensure easy robot programming, the RobotStudio Machining PowerPac is key to optimizing the potential of automated machining.RobotStudio uses an exact copy of the real software that runs robots in production, so realistic simulations can be performed, using real robot programs and configuration files identical to those used on the shopfloor. Time and risks are reduced by programming robots offline, in addition to more accurate paths being created.Using the Fluent user interface from Microsoft Office 2007, the RobotStudio Machining PowerPac features an intuitive wizard to guide users in creating targets and paths from surfaces and edges quickly, easily and accurately. Pre-defined path generation patterns are provided to support all possible machining types.All process settings such as tool width, overlap rate, machining angles, etc., can be defined in different pages of the wizard and used to generate the targets and paths. In the last wizard page, a preview is provided to show how the paths look like before they can be finally created.The Power Pac includes three machining templates as default: NormalProcess, FC (Force Control) PressureProcess and FC SpeedChangeProcess. All of the parameters in the templates can be customized and re-used among different cases.Because the Machining PowerPac supports force controlled processes, it works seamlessly with ABB’s software for force controlled machining, RobotWare Machining FC, and the program generated in Machining PowerPac can be imported into and recognized by RobotWare Machining FC.About ABB: ABB () is a leader in power and automation technologies that enable utility and industry customers to improve their performance while lowering environmental impact. The ABB Group of companies operates in around 100 countries and employs about 115,000 people.About ABB Robotics Division:ABB is a leading supplier of industrial robots - also providing robot software, peripheral equipment, modular manufacturing cells and service for tasks such as welding, handling, assembly, painting and finishing, picking, packing, palletizing and machine tending. Key markets include automotive, plastics, metal fabrication, foundry, electronics, machine tools, pharmaceutical and food and beverage industries. A strong solutions focus helps manufacturers improve productivity, product quality and worker safety. ABB has installed more than 160,000 robots worldwide.For more information please contact:ABB Robotics:Sofie KällgrenTel: +46 70 5281381*********************.com。
工业机器人仿真与离线编程项目 2 ABB RobotStudio 软件的在线编程功能
上一页
返回
图 2 -1 “添加控制器” 按钮
返回
图 2 -2 “备份” 按钮
返回
图 2 -3 “请求写权限” 按钮
返回
图 2 -4 “配置编辑器” 按钮
返回
图 2 -5 “文件传送” 按钮
返回
图 2 -6 “在线监视器” 按钮
返回
图 2 -7 “用户管理” 按钮
返回
表 2 -1 IP 地址
项目 2 ABB RobotStud io 软件的在线编程功能
• 2.1 项目描述 • 2.2 学习目的 • 2.3 知识准备 • 2.4 任务实现
返回
2.1 项目描述
• 本项目主要学习 RobotStudio 的在线功能的 ABB 机器 人与 RobotStudio 的连接、 RobotStu ̄dio 软件中的系统备份及恢复、 在线编辑 RAPID 程序、 在线编辑 I/ O、 在线监视机器人、 设定用户操作系统等知识点。
上一页 下一页 返回
2.3 知 识 准 备
• ②工厂网络端口。 工厂网络端口用于将控制器连接到网络。 • 网络设置可以使用任何 IP 地址配置, 这通常是由网络管理员提供
的。 • (2) 当连接到控制器服务端口时, 可以选择自动获取 IP 地址或指
定固定 IP 地址。 • ①自动生成 IP 地址。 控制器服务端口的 DHCP 服务器会自动
项目 2 任务 1 中的详细说明。 • 修改指令的操作, 如图 2 -29 、图 2 -30 、图 2 -31 所示。
上一页 下一页 返回
2.4 任 务 实 现
• 2. 添加延时指令并将时间设置为 2ms • 添加延时函数指令操作, 如图 2 -32 所示。 • 3. 检查、 保存程序 • 检查、 保存程序操作, 如图 2 -33 、图 2 -34、图 2 -35
RobotStudio 5.13 说明书
© C o p y r i g h t 2008-2010 A B B . 保留所有权利。
操作手册RobotStudio5.13文档编号 3HAC032104-010修订: C© C o p y r i g h t 2008-2010 A B B . 保留所有权利。
本手册中包含的信息如有变更,恕不另行通知,且不应视为ABB 的承诺。
ABB 对本手册中可能出现的错误概不负责。
除非本手册中有明确规定,否则不应将其中的任何内容解释为ABB 对个人损失、财产损坏或具体适用性等做出任何担保或保证。
ABB 对因使用本手册及其中所述产品而引起的意外或间接伤害概不负责。
未经ABB 书面许可,严禁复制或翻印本手册及其中的任何部分,不得将任何内容透露给第三方,亦不得用于任何未经授权的用途。
违反本条款将会受到起诉。
本手册的副本可按时价向ABB 购买。
版权所有 2008-2010 ABB,保留所有权利。
ABB ABRobotics Products 721 68 V äster ås瑞典目表© C o p y r i g h t 2008-2010 A B B . 保留所有权利。
概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9产品文档, M2004. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12安全 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 简介151.1 概念和术语. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.1.1 硬件概念 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.1.2 RobotWare 概念 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.1.3 RAPID 概念. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171.1.4 编程的概念 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181.1.5 目标点与路径 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191.1.6 坐标系 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201.1.7 机器人轴的配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221.1.8 关于程序库、几何体和 CAD 文件. . . . . . . . . . . . . . . . . . . . . . . 241.1.9 关于将 VSTA 用作IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261.2 安装并许可RobotStudio . . . . . . . . . . . . . . . . . . . . . . . . . . . . .271.3 图形化界面. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301.3.1 图形化界面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301.3.2 “开始”窗口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311.3.3 “布局”浏览器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321.3.4 “路径和目标点”浏览器 . . . . . . . . . . . . . . . . . . . . . . . . . . 331.3.5 “建模”浏览器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351.3.6 “在线”浏览器和“离线”浏览器. . . . . . . . . . . . . . . . . . . . . . 361.3.7 输出窗口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381.3.8 操作员窗口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401.3.9 文档管理器窗口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411.3.10 使用鼠标. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461.3.11 选择项目. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471.3.12 安装与拆除对象. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481.3.13 键盘快捷键. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .492 如何构建工作站532.1 构建新工作站的工作流程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532.2 创建传送带跟踪工作站(两个机器人在同一个传送带上工作). . . . . . . . . . . . . . . . . . 552.2.1 两个机器人共享同一任务框架位置. . . . . . . . . . . . . . . . . . . . . . 552.2.2 两个机器人系统使用不同的任务框架位置. . . . . . . . . . . . . . . . . . . 572.3 自动创建带外轴的系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592.4 手动创建带导轨运动的系统. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612.4.1 手动创建带RTT 或IRBTx003导轨的系统 . . . . . . . . . . . . . . . . . . . 612.4.2 手动创建带IRBTx004的系统 . . . . . . . . . . . . . . . . . . . . . . . . 622.5 虚拟控制器(VC). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 632.5.1 启动虚拟控制器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 632.5.2 重启VC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652.6 工作站组件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 672.6.1 导入工作站组件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 672.6.2 转换CAD 格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 692.6.3 故障排除和优化几何体 . . . . . . . . . . . . . . . . . . . . . . . . . . . 702.7 建模. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722.7.1 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722.7.2 机械装置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 742.7.3 工具和工具数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 752.7.4 设置对象的本地原点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76目表© C o p y r i g h t 2008-2010 A B B . 保留所有权利。
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使用详细步骤
搬运码垛工作站建模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。
RobotStudio软件入门
缩放工作站 使用窗口缩放
CTRL + SHIFT +
按 CTRL 键和鼠标右键的同时,将鼠 标拖至左侧(右侧)可以缩小(放 大)。
按 SHIFT 键及鼠标右键的同时,将 鼠标拖过要放大的区域。 按 SHIFT 并鼠标左键的同时,将鼠 标拖过该区域,以便选择与当前选 择层级匹配的所有项目。
使用窗口选择
创建机器人系统 工具的建立
运动路径的仿真
GWM-PPT V2012.2
1
汇报人:高兴照
GWM-PPT V2012.2
36
至此,本地原点便设定好了。
GWM-PPT V2012.2
25
汇报人:高兴照
3、创建工具坐标系TCP 首先建立一个框架,框架位置为焊帽中心点:
位置为焊帽中心点
GWM-PPT V2012.2
26
汇报人:高兴照
设定工具表面法线方向:右击所创建的框 架设定为表面的法线方向,选中焊帽的表面点 击应用
GWM-PPT V2012.2
32
汇报人:高兴照
4、创建路径:基本路 径空路径,将创建的目标点 拖入创建的路径中。
拖至
GWM-PPT V2012.2
33
汇报人:高兴照
5、配置参数:右击路径配置参数自动 配置,在弹出的窗口中选择一个参数点击应用。
GWM-PPT V2012.2
34
汇报人:高兴照
课程回顾
1 2 3 4
软件界面及基本操作
设定 长方 体的 长宽 和高
30
GWM-PPT V2012.2
汇报人工件 坐标,用三点法确定坐标系后点接受。
GWM-PPT V2012.2
31
汇报人:高兴照
(项目管理)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产品说明说明书
Virtual Robot browsertargets can be modified. virtual robot.IO SimulatorRobotStudio Automatic generation of targets along a curveRobotStudioThe Program EditorWith RobotStudio, the Program editor Program-Maker is included. Some of the main features of ProgramMaker includes:•Ability to check for syntactic and semantic errors, as robot programs are created or edited • Program data is displayed in a familiar“spreadsheet” format that is Microsoft Excel compatible•TCP Adjust, FrameAdjust and Mirror wizard • Automatic declaration of referenced data • The Tree View allows the user to view and navigate robot program structure in a simple, logical manner • Syntax colorization• Multiple routines can be viewed and edited at the same timeSimulation AutoReachWith AutoReach you can optimise the locations of the work piece and the robot. If the positions are reachable or not are clearly indicated in the graphics area.Collision DetectionCollisions between any objects in the station can be detected and visualised during robot simulation.You can select between detecting collisions for the whole station, or for a selected list of objects.Events- and I/O-SimulationBy using the Event table in RobotStudio you can respond to signals set in your robot program (so called IO events). This can be used in simulation of search-sequences or simulation of material handling when parts are gripped/released. For advanced simulation you can also connect the IO events to Visual Basic macros. This enables simulation of a complete station including equipment.Simulation MonitoringYou can monitor the results of the robot motion in your simulation. Simulation data such as robot-joint values and speed can be logged and stored.Your can follow the movement of the robot TCP by using the trace function that draws a line in the graphics area where the TCP is moved.Visual Basic for ApplicationsMicrosoft’s ®Visual Basic for Applications (VBA 6.3) is distributed with RobotStudio. VBA is an object based programming environment designed to provide rich development capabilities.Implemented in RobotStudio, these capabilities shorten the development times of custom solutions for customers and applications. VBA has full Visual Basic language syntax, the new forms package, and support for ActiveX Controls.By using VBA customised macros and applications can easily be developed to suit the special needs for a particular customer or to automate repetitive daily tasks. Most functionality available in the RobotStudio user interface is also available from VBA. In addition user defined menus and dia-logues can be added.ProgramMaker, the Program EditorRobotStudioRobotStudio Plus+ PacThe Plus+ Pac for RobotStudio adds extra usefulfeatures to the base of RobotStudio. The features ofthe RobotStudio Plus+ Pac are the following:Kinematics ModelerThe kinematics modeler is an essential module forthose who need to create their own mechanismssuch as tools, external axes and other movingdevices in a station.New Station WizardCreate a new station fast and easy by using theNew Station Wizard. The user is guided troughthe necessary steps to include a robot, tool,external axes and other parts in station.Pack and GoThe Pack and Go module stores a station with all its libraries into one single folder. Ready to compress, e.g. by using WinZip.Path ConfigurationIn order to get an accurate robot motion along a path, the robot configuration must be stored in each target. The Path Configuration module defines automatically the robot configurations along a path in order to obtain a smooth motion.Quaternion ConverterConverts between quaternion angles (used in the RAPID programming) and Euler angles (used in RobotStudio).Show/Blank BrowserAdds a new browser to the browser window. From this browser you can easily display and hide objects in your station. This is especially useful for users who work with large stations with many objects.Texture SupportAllow you to add textures (i.e. bitmaps) on object surfaces in your station, all to make the visual model even more realistic.ArcWeld PowerPacArcWeld PowerPac is a dedicated programming tool for generating arc weld programs. ArcWeld and RobotStudio utilize the CAD geometry as the basis for all robotics programming.The programmer defines weld locations on the CAD geometry and creates robot positions in relation to the geometry. ArcWeld automatically generates the weld path based on the input, and creates approach and depart paths that will move the robot in and out of the weld location. The semi-automatic optimization tool defines arm configurations along the weld path, and avoids joint-limit and singularity errors. ArcWeld automatically checks for reachability and notifies the user if any reachability problems occur. The result is an arc weld program ready for download.Figure 9 Show and Blank BrowserRobotStudioBendWizard PowerPacBendWizard improves the interface for program-ming the robot and press brake operation.The cell is shown in the 3D format with all peripheral components defined and the operator can program the different phases of the operation which include:•Loading the sheet from the feeding system •Double-thickness control•Centering the Part•Bending sequence•Overturning and palletizingThe system automatically verifies every phase of the program cycle including reachability of robot targets, the robots working envelope, potential interference and collision problems:When a problem is detected the operator has several tools available to make the necessary modifications. Once it’s done the program is converted to the robots operating language and downloaded. A first part program check is recommended. All of BendWizard’s processed data can be converted into reports for documen-tation and used for setting up future production runs or successive batches.Software and hardware requirements •Microsoft Windows NT 4.0 with Service Pack 6 or higher and Internet Explorer 4.0 SP2 or higher •Microsoft Windows 2000 Professional with Service Pack 1 or higher•Microsoft Windows XP ProfessionalRecommended hardwareCPU:Pentium III or higherMemory:256 MB RAM or moreFree disc-space:50 MB on the system disk900+ MB on the installation diskGraphics card:A high performance graphics card with OpenGL supportExamples for stationary PCs: 3Dlabs Wildcat III 6110, NVIDIA Quadro4 900 XGL, ATI FireGL 8800Examples for laptops: NVIDIA GeForce4 Go (available e.g. in Toshiba Satellite 5005-S507), ATI Mobility Radeon 7500 (available e.g. in Dell Inspiron 8100), ATI Mobility FireGL 7800 (available e.g. in IBM A31p)Screen resolution:1280 x 1024 pixelsThree button mouse。
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。
ABB-robotstudio使用详细步骤
搬运码垛工作站建模1、创建机器人系统2、创建动态输送链3、创建动态夹具4、工作站逻辑连接5、添加IO( 设置好需重启6、示教目标点(同步到7、RAPID 编程) RAPID)、创建机器人系统1、创建空工作站机器人模型IRB 2602、导入网络709-1和Chinese、从布局创建机器人系统,勾选3.二、创建动态输送链1、添加输送链并修改位置勺H - -. 7 -r PM?打T 玮J * - JU*虫壮farll tBp|"■ 1 1—■cm•幣审MB a & 鼻«-K IMbac;:XQ 3* ^4 虫*■L—十37 * Hu-l — V*「—' ・,LB'U■ —-AAKA k -K3并修改位置600*400*2002 、创建的物料3、添加一个smart组件气特+1住乩斗 -- J…m "Lj r—TJi■>source、添加组件4o设置物料本地原点5 亦件子曲4itr1'>F 虫*1I 未保<7工tf 站 J ・ AfiiB iRabc>l^Tu<lia bSfJT 匚d卩 ^RD Add-JniSour?*Y 理IS _£ L+怪仲丄徉詁”£&H..±S 处鉉匚X ]«.£i H wD 0000■ I 0 ooi u« GI E 氐 GOkrO OD和QUEUE 组件LINEM0VER6、添加属性LINEMOVER设置8、添加面传感器组件9.、设置输送链不能被传感器检测9.■性 Lttiw 覘Ee,* MIxildbj^-1丨 gffl ir^a厨圧叫*1 口"址ijrj. rjn 6IH 11001.00 - -£20.01 : "Ti 」L :faLil &|o.n ~宁删 00 mT山;讶g; |a?M -~評宝 E 养-■fiin.E*ri?,'»r ,l输送链的属性连接、设置10SC_11、设置信号连接站呂=t i 丁典 m'-LED ?D.CD p[] JO■«」/:£〕h 豌Ctrl-XE*. cifl-c■■岂5UClrl-°ii ,¥ a己哋二忖焊kh7 £■^i*JLX5WSM1*9"J -- ">*、添加信号处理组件,用于检测传感器下降沿12p :q g T -i >j_ ■J+.35^TKKASJTJ O KE LI►TTT―1SC端讣粧呼I ■樹]E哇匚二M t聞”copy进行source、传感器下降沿触发13.円■号£・川£仙4 口=工勺烂L :Ffl H£□hr»口G I・%JE送騎ksrF r^iir ■*片iFwil^l Mafia*llQIi-b ftF:pur« A Q I^亠hr^ 留申「皿f r iilU iA TK SC、传感器与输送链的输出联系14、添加仿真开始结束组件,用于激活传感器纽比ft]林泄如・真_15 .虫SC_・迖髄俱—I 耳Qli I 虹HZi _^兰 __________________________________________________________________________________仲I#、添加置位复位组件,对仿真开始结束信号进行保持16 A<ft bh-SS比E炖1;■甘崛胃■ e怙^8 4 * ■%•■*-即■•■Sawr Soi«ra<7vl Gw±3ta l|MU«1.诂|■帝-|WT|E LTa^iF mr『E詰1-. rirHu - IjEHj A. .11 ■!& lu| 亡Pj "U Jfc_ !」-:■::ffiJU-」-「亠4 ll'f-上d h>g =¥_S・3?S 玄包SC ■逸醉知住工 g主*騙二壬总I?更.•K»匚辱F,nr R^e-m.ri^PiHrw■"■TV 9 i-la«T«皿,Qw1 ' I-!>1 a T JI1QiiH i-Tn hr IFL \g rSw* -凶E 1A Rt l'lfl l T(^亀17、輕sc输送谍了对显栩ftJT d…亠[-上■ 如如丄___ ________ ___ _ _ ______ ____ -进行验证选择SC 输送链、进行仿真设定18三、创建动态夹具1、先制作一个吸盘模型,然后设置成工具,并安装到机器人法拉盘心6C组件SMART、添力廿2 .DETACHER 组件和、添加 3ATTACHER.、设置属性4 .津5\ S_ 丁只X 刪sc_rM阿二臥丛箱抽比耳幡站谢-TH ■變轉 矗M 明违*BXK1«L屈<ir 广且3 JHU 与淫曲借号相辻扩斛 干 /mrtA.1 tnclHiF石丈■个丽 叭纽40尸抵总一"己ST 粧丈金、添加一个线传感器组件 5.、线传感器设置属性jfliifffttt ^nffa应列 HTl(UHD AddJni亡—亏律左."J [挥宫工示站卜 in-Mja7、设置吸盘工具不能被传感器检测r ESI?i LWWEJIEV •"Idld礼|口_ M__L« X ___________________________翩SC 工具工甘鼻炀址、把线传感器安装到吸盘(不更新位置,保持当前位置)苫1161jk Ttfj ttr*«9、设置属性连接、添加信号及连接10 .耳存TnSfc-ri-,豎伍・15■■:-兰添加信号处理取非和锁定组件11I'.l *■ BCOJLBad|f 1«R lUBJfeO.H 兀2器_出.1化眈栄WIT jdpan—继续信号连接押SC__L具J■霍H E豈二丸Ma慎巧______________________________________________________________________________________________________________________________________________________________________VFIEP 虫二且:■比世囂珂羊0 Ft二鼻K HI.1SF-S HU7iFa■亠■raa Jud!:#; tf du ;u.a&tir^«Hi klluho-Fk m« ■“矯3CJCB丄:站TocLtr甘It -^cktr£L1*U J<1I L,£trl*X:lil Y12M Ki1:!** laroaft I 叶 ____________________________________________________________________________________w______________________________________________________________________________-( i_^JL*ICT>n--»-■■•■-«p-a Lit "ilz r- 怦、添加一个示教物料13工具SC、应用手动线性验证ff>fu uMsidu 常gK>詐¥ffiwc ■1 j:r-pitSi3id.=F" f W HklbCQB皿准■ FfL UW1V UWLa. MMBr*E ■»・■&■!liH 1 fa:-w Ii d.Xu i i n_*.r ^nE]~i^Lh1如 3.3I?™ d.i 四、工作站逻辑连接■lAp-ruMMrv xrl>* 5>lr«fMSTF M "klj!- !7L:H-flL I*"*'lUMriBLilM LilfM: 3d」■Z li. 1 ■.rrh. 乙崔WE. 1J1 L»—.. 1 . »n.B |!<11五、参考代码MODULE MainMoudlePERS 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 robtargetpHome:=[[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 robtargetpActualPos:=[[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,9E+09,9E+09]];! 1 路放置基准点PERS robtargetpBase1_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 he 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 he 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; ENDPROC ENDMODULE。
RobotStudio教程ABB(中国)(2024)
案例三:多机器人协同作业系统构建
系统架构设计
设计多机器人协同作业系 统的整体架构,包括通信 协议、任务分配机制等。
2024/1/27
机器人协同控制
实现多个机器人之间的协 同控制,确保它们能够共 同完成复杂任务。
任务分配与优化
采用合适的任务分配算法 ,将任务分配给各个机器 人,并根据实际情况进行 优化调整。
通过传感器采集环境信息,并进行数据处 理和分析,提取有用特征。
环境感知
智能决策
利用处理后的传感器数据,实现机器人对 环境的感知能力,如识别物体、检测距离 等。
2024/1/27
基于环境感知结果,机器人可以进行智能决 策,如自适应调整路径、避障等。
26
05
实际案例分析与解决方案分享
2024/1/27
RobotStudio教程ABB( 中国)
2024/1/27
1
目录
contents
2024/1/27
• 机器人技术概述 • RobotStudio软件介绍 • 基本操作与仿真环境搭建 • 高级功能应用与拓展 • 实际案例分析与解决方案分享 • 总结回顾与未来展望
2
01
机器人技术概述
2024/1/27
2024/1/27
用于控制机器人的运动 ;
用于模拟机器人的实际 工作环境;
用于编写和调试机器人 程序。
13
常用工具栏与快捷键使用技巧
文件操作工具栏
包含新建、打开、保存等文件操作按 钮;
编辑工具栏
包含撤销、重做、复制、粘贴等编辑 操作按钮;
2024/1/27
14
常用工具栏与快捷验交流
学习心得与感悟
学员们纷纷表示,通过学习 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;。
工业机器人仿真与离线编程项目 4 ABB RobotStudio 软件离线轨迹编程
4.2 教 学 目 的
• 通过本项目的学习可以了解机器离线编程的应用行业, 了解 ABB RobotStudio 离线轨迹编程的关键知识点, 并学会利用 离线编程对模型进行加工。返回4.3 知 识 准 备
• 4.3.1 ABB RobotStudio 软 件离线轨迹编程介绍
• RobotStudio 根据三维模型曲线特征, 利用自动路径功 能自动生成机器人的运行轨迹路径。 减少了逐个示教目标点位, 从 而缩短了生成机器人轨迹的时间, 并且还能保证机器人运
返回
图 4 -60 单击 “播放” 图标按钮
返回
返回
图 4 -30 沿着路径运动
返回
图 4 -31 复制 “Target_ 10”
返回
图 4 -32 粘贴到 “Workob ject_Table_of”
返回
图 4 -33 将 “Target_1 0_1” 重命名为 pExcess
返回
图 4 -34 选择 “偏移位置” 命令
返回
图 4 -35 输入位置数据
• 下面进一步完善路径, 如图 4 -31 、图 4 -32 、图 4 -33 、 图 4 -34 、图 4 -35 、图 4 -36 、图 4 -37 、图 4 -3 8 、图 4 -39、图 4 -40 、图 4 -41 、图 4 -42 、图 4 - 43 、图 4 -44 、图 4 -45 、图 4 -46 、图 4 -47 、图 4 - 48 、图 4 -49 、图 4 -50 所示。
• 通过碰撞检测功能就可以在模拟仿真时验证轨迹的可行性, 验证机 器人在运行过程中是否与周边设备发生碰撞。
• 接近丢失: 选择的两组对象之间的距离小于该值时, 则用颜色提醒 (见图 4 -4)。
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.同步完成后进行仿真设定,按下列图顺序添加路径,之后进行仿真录像:。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
项目一:焊接机器人
1.打开Robot studio软件,单击创建新建空工作站,同时保存一下,如下图所示;
2.选择ABB机器人模型IRB1600,单击添加,选择承重能力和到达距离,选择确定,如下图所示:
3.导入设备-tools-Binzel air 22,并拖动安装在机器人法兰盘上:
4.选择建模-固体-矩形体,设定长宽高,点击创建:
5.选择基本-机器人系统-从布局创建系统-下一步-下一步-完成;
6.控制器启动完成后,选择路径-创建一个空路径,
创建成功后,修改下方参数:moveJ , V1000,Z100
8.激活当前路径,选择机器人起点,单击示教指令
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.同步完成后进行仿真设定,按下图顺序添加路径,之后进行仿真录像:。