ABB机器人的程序数据
abb机器人程序结构总结
abb机器人程序结构总结ABB 机器人程序结构ABB机器人程序由以下部分组成:头部:包含程序名称、作者、日期和版本等元数据。
变量声明:声明用于存储数据的变量。
变量类型包括:原始数据类型:布尔、整数、浮点数结构化数据类型:记录、数组、联合常量声明:声明程序中使用的常量值,这些值在运行期间不会改变。
函数/过程:定义可重用的代码块,可通过名称调用。
主程序:程序的入口点,包含机器人执行的操作序列。
它由以下部分组成:任务选择器:选择机器人要执行的特定任务。
循环结构:使用循环语句(如 FOR、WHILE 和 UNTIL)重复执行代码块。
条件语句:使用条件语句(如 IF、THEN、ELSE 和 ENDIF)根据条件执行不同的代码路径。
移动指令:控制机器人的运动,包括线性移动、旋转移动和路径规划。
I/O 操作:与外部设备交换数据,例如传感器、执行器和PLC。
异常处理:用于处理运行时错误和故障。
注释:为程序添加注释以增强可读性和理解。
RAPID 编程语言ABB 机器人程序使用 RAPID 编程语言编写。
RAPID 的特点包括:结构化编程:支持模块化和分层编程风格。
面向对象:允许创建和使用对象和类。
实时能力:支持中断和多任务,适用于机器人控制应用程序。
高级运动控制:提供路径规划、碰撞检测和轨迹生成等运动控制功能。
集成开发环境(IDE):提供代码编辑、调试和仿真工具。
机器人控制系统ABB 机器人由以下组件组成:机器人控制器:运行机器人程序并控制机器人的运动。
示教器:用于编程、配置和操作机器人。
机器人本体:由机械臂、关节、执行器和传感器组成。
I/O 设备:用于与外部设备通信,例如传感器、执行器和 PLC。
程序执行ABB 机器人程序在机器人控制器上执行以下步骤:1. 解释:机器人控制器将 RAPID 程序解释为机器代码。
2. 执行:解释的机器代码执行,控制机器人的运动和操作。
3. 中断:如果发生异常或事件(例如外部中断),程序执行可以中断。
ABB机器人
1、示教器右侧上面四个按键功能定义:ABB菜单-控制面板-可以看到‘配置可编程按键’-可看到按键1到按键4设置,选择类型为输入、输出或者系统,然后设置按下状态,再选择右边的地址。
(检验如下,打开ABB菜单,选择输入输出,打开师徒,选择IO 单元,然后选择所连接的站里面的地址)2、数据类型定义:VAR num length :=0;表示名称为length的数据变量;PER可变变量,改变量在程序中可改变;CONST常量;3、创建程序数据:打开ABB菜单-程序数据—根据要新建的数据类型,如数据型num-点击显示数据-点击新建-名称、数据范围、存储类型、哪个任务的、哪个模块里面、放在哪个程序里面、初始值(每次初始化时都为多少)4、工具坐标Tool0 (确定好工具TCP点的位置)工具数据TOOLDATE(如第六轴不带夹具时分位置为默认的TCP点,如果加了焊枪在第六轴上面时,TCP为焊枪枪尖的位置)TCP设定原理:找一个固定点作为参考点;通过手动操控,以最少四种不同姿态尽可能与参考点碰上,描点修改点1…点4的位置步骤:打开ABB菜单-手动操纵-选择工具坐标-点击新建TOOL1-点击初始值(设置工具的重量重心)-找到mass(代表工具重量)比如设置焊枪重量为2Kg(mass改为2)-X/Y/Z 表示工具相对于TOOL0法兰盘的坐标值,即中心偏移值,设置好坐标确定-再点击确定-选择刚刚新建的TOOL1-点击编辑、定义-方法那里选择TAP和Z、X(一共有6个点,包含延伸2个点)-然后使用示教器手动操作,把焊枪的头慢慢靠近参考点,焊枪头靠到参考点时选择‘点1’-修改位置然后可以看到点1的状态已更改好;换另一个不同的姿态,然后把焊枪用手动靠到参考点-选择‘点2’-修改位置;继续更换机器人的姿态,继续把焊枪靠近参考点-选择‘点3’-修改位置;继续换机器人姿态,修改点4的位置;延伸器点X位置修改(即定义X轴方向,食指指向为机器人向前的X方向),机器人在参考点位置,用手动操纵使TCP点向X轴方向移动,然后定义‘延伸器点X’-修改位置;然后TCP移动回参考点,使机器人往Z轴方向移动,然后定义‘延伸器点Z’-修改位置;6个点位置更改好之后点击确定-,然后可以看到设定好的设定误差,然后点击确定,验证工具设定准确度:ABB菜单-手动操纵-工具坐标-电机刚刚创建的重定位的工具(如too1)-示教器选择重定位功能,分别转动操纵杆,查看TCP点的情况误差是否很小。
ABB_ROBOT_Program(抓手机器人配伺服焊钳)
ABB抓手机器人点焊程序MODULE ProgramStart 模块ProgramStartPROC main ( )VelSet 100, 5000; 定义速度100%,最大5000mm/s;AccSet 100, 100; 定义加速度100%,最大100mm/s2;CheckWorldZone; 调用子程序CheckWorldZone;InitSystem; 调用子程序InitSystem;初始化系统WaitTime 0.2; 等待0.2秒;!TD_1_OFF;WHILE TRUE DO 进入循环;WaitUntil di10_Initiate_Style=1; 待到信号di10_Initiate_Style=1时执行下一步;ProcessStyle; 调用子程序ProcessStyle;TEST gi_Style 根据组信号gi_Style的值,执行不同的子程序;CASE 1: 当gi_Style=1时调用程序Style1;Style1;CASE 2: 当gi_Style=2时调用程序Style2;! Style2;CASE 20: 当gi_Style=20时调用程序Style20;! Style20;CASE 24: 当gi_Style=24时调用程序Style24;换帽! Change Tip;Style24;CASE 27: 当gi_Style=27时调用程序Style27;步增! Reset Step;Style27;CASE 29: 当gi_Style=29时调用程序Style29;修磨! TipDress;Style 29;CASE 31: 当gi_Style=31时调用程序Style31;维修! Maitain;Style 31;DEFAULT: 如果gi_Style不等于以上任何一个值就执行以下程序;SetDO do47_Process1Fault,1; 将输出信号do47_Process1Fault置为1;UiMsgBox\Header:="Program Number Out Of Range","Program Number InCorrect"\MsgLine2:="IRC5 Received Number: "+ValToStr(n_gi_Style)\MsgLine3:="Please Select OK For Retry"\Buttons:= btnOK\Icon:=iconWarning\result:=nPressedKey;标题显示"Program Number Out Of Range"(程序号gi_Style输入超出范围),第一行提示信息“Program Number InCorrect”(程序号gi_Styl错误的),第二行提示信息"IRC5 Received Number:"+ValToStr(n_gi_Style)(机器人收到数据即n_gi_Style的值),第三行显示信息"Please Select OK For Retry"(请选择ok键以重试),屏幕会出现Ok按钮,按OK键解除报警;SetDo do47_Process1Fault,0; 将输出信号do47_Process1Fault复位为0;ENDTEST 结束TEST指令;Gun1TipJob;调用子程序Gun1TipJob;InitSignal; 调用子程序InitSignal;初始化信号ENDWHILE 结束WHILE循环语句;ENDPROC 程序结束;ENDMODULEMODULE PgnoControl(SYSMODULE) 模块PgnoControl(系统模块)VAR bool bTimeFLag; 变量布尔型bTimeFLagVAR num nPgno:=0; 变量数字型nPgno:=0VAR num nPressedKey:=0; 变量数字型nPressedKey:=0PERS num n_gi_Style:=0; 变量数字型n_gi_Style:=0VAR errnum err_var_s5; 变量故障代码型err_var_s5PROC InitSystem() 程序初始化系统InitSignal; 调用程序InitSignal(信号初始化);VerifyAtHome; 调用程序VerifyAtHome(判定是否在home位置); ENDPROCPROC InitSignal() 程序初始化信号InitZone; 调用子程序InitZone(初始化干涉区域信号);n_gi_Style:=0; 可变量n_gi_Style赋值为0;SetGO go_ManualStyle,0; 将组输出信号go_ManualStyle置为0;Reset do19_PathSegReqToCont; 复位信号do19_PathSegReqToCont;Reset do40_TaskOK; 复位信号do40_TaskOKReset do47_Process1Fault;复位信号do47_Process1FaultReset do10_InCycle; 复位信号do10_InCycleSetGo go_PathSegment,0; 将组输出信号go_PathSegment置为0;SetGo go_ManDecCode, 0; 将组输出信号go_ManDecCode置为0;SetGO go_ HandShake, 0; 将组输出信号go_ HandShake置为0;ENDPROCPROC InitZone() 程序干涉区信号初始化Set do26_ClearOfZone1; 将输出信号do26_ClearOfZone1置为1;Set do27_ClearOfZone2; 将输出信号do27_ClearOfZone2置为1;Set do28_ClearOfZone3; 将输出信号do28_ClearOfZone3置为1;Set do29_ClearOfZone4; 将输出信号do29_ClearOfZone4置为1;Set do30_ClearOfZone5; 将输出信号do30_ClearOfZone5置为1;Set do31_ClearOfZone6; 将输出信号do31_ClearOfZone6置为1;Set do86_ClearOfZone7; 将输出信号do86_ClearOfZone7置为1;Set do87_ClearOfZone8; 将输出信号do87_ClearOfZone8置为1;Set do88_ClearOfZone9; 将输出信号do88_ClearOfZone9置为1;Set do89_ClearOfZone10; 将输出信号do89_ClearOfZone10置为1;Set do90_ClearOfZone11; 将输出信号do90_ClearOfZone11置为1;Set do91_ClearOfZone12; 将输出信号do91_ClearOfZone12置为1;ENDPROCPROC VerifyAtHome() 程序判定在home位置WHILE DOutput(do08_AtHome)=0 DO 当信号do08_AtHome为0时进入循环TPErase; 清屏;WHILE OpMode()<>OP_MAN_PROG THEN如果OpMode()[操作模式]不为手动模式执行以下程序UiMsgBox\Header:="Wrong Running Mode ","Robot Not At Teach Mode "UiMsgBox :用户信息基本类型对话框\MsgLine2:= " Please Switch IRC5 To Teach Mode!"\Buttons:=btnOK\Icon:=iconWarning\Result:=nPressedKey;报错标题显示"Wrong Running Mode ","Robot Not At Teach Mode "运行模式错误机器人不在示教模式,第二行显示" Please Switch IRC5 To Teach Mode!",屏幕会出现Ok按钮,拨到手动示教模式后按OK键解除报警。
ABB机器人程序指令详解
[\Off]: 默认轴配置数据。
( switch )
直线运动时,机器人移动至 ModPos 点,
轴配置数据默认为当前最接近值。
2020/3/
运动控制指令-ConfL
应用: 对机器人运行姿态进行限制与调整,程序运 行时,使机器人运行姿态得到控制。系统默 认值为 ConfL\On; 。
实例:
ConfL\On; … ConfL\Off;
p10,外轴不动。
p20,外轴联动 track_motion。
p30,外轴联动 orbit_a。
限制: 不能在指令 StorePath …RestoPath 内使用。 不能在预置程序 RESTART 内使用。
2020/3/
计数指令
Add Incr
Clear Decr
2020/3/
计数指令-Add
2020/3/
运动控制指令-SoftAct
SoftAct [\MechUnit,] Axis, Softness [\Ramp];
[\MechUnit]: Axis: Softness: [\Ramp]:
软化外轴名称。 ( mecunit )
软化转轴号码。 ( num )
软化值 %。
( num )
2020/3/
运动控制指令-PathResol
限制: 机器人必须在完全停止后才能更改路径控制
值,否则,机器人将默认一个停止点,并且 显示错误信息 50146。 机器人正在更改路径控制值时,机器人被强 制停止运行,机器人将不能立刻恢复正常运 行 ( Restart )。 以下情况机器人将自动恢复默认值 100%。 机器人冷启动。 系统载入新的程序。 程序重置 ( Start From Beginning )。
(完整版)ABB机器人的程序编程
ABB[a]-J-6ABB 机器人的程序编程6.1 任务目标➢掌握常用的PAPID 程序指令。
➢掌握基本RAPID程序编写、调试、自动运行和保存模块。
6.2 任务描述◆建立程序模块test12.24,模块test12.24 下建立例行程序main 和Routine1,在main 程序下进行运动指令的基本操作练习。
◆掌握常用的RAPID 指令的使用方法。
◆建立一个可运行的基本RAPID程序,内容包括程序编写、调试、自动运行和保存模块。
6.3 知识储备6.3.1 程序模块与例行程序RAPID 程序中包含了一连串控制机器人的指令,执行这些指令可以实现对机器人的控制操作。
应用程序是使用称为RAPID 编程语言的特定词汇和语法编写而成的。
RAPID 是一种英文编程语言,所包含的指令可以移动机器人、设置输出、读取输入,还能实现决策、重复其他指令、构造程序、与系统操作员交流等功能。
RAPID 程序的基本架构如图所示:RAPID 程序的架构说明:1)RAPID 程序是由程序模块与系统模块组成。
一般地,只通过新建程序模块来构建机器人的程序,而系统模块多用于系统方面的控制。
2)可以根据不同的用途创建多个程序模块,如专门用于主控制的程序模块,用于位置计算的程序模块,用于存放数据的程序模块,这样便于归类管理不同用途的例行程序与数据。
3)每一个程序模块包含了程序数据、例行程序、中断程序和功能四种对象,但不一定在一个模块中都有这四种对象,程序模块之间的数据、例行程序、中断程序和功能是可以互相调用的。
4)在RAPID 程序中,只有一个主程序main,并且存在于任意一个程序模块中,并且是作为整个RAPID 程序执行的起点。
操作步骤:6.3.2 在示教器上进行指令编程的基本操作ABB 机器人的RAPID 编程提供了丰富的指令来完成各种简单与复杂的应用。
下面就从最常用的指令开始学习RAPID 编程,领略RAPID 丰富的指令集提供的编程便利性。
abb工业机器人离线程序的导出方法
abb工业机器人离线程序的导出方法
ABB工业机器人离线程序的导出方法如下:
1. 首先,在RobotStudio中打开需要导出的离线程序。
2. 在菜单栏中选择“文件” -> “另存为”。
3. 在弹出的窗口中选择要保存的文件路径和文件名。
4. 在文件格式中选择“RAPID 文件(机器人程序数据)”。
5. 点击“保存”按钮,将离线程序导出为RAPID文件。
6. 导出的RAPID文件可以在其他RobotStudio项目中打开,或者通过RobotStudio的在线功能上传到实际的机器人控制器中。
请注意,以上步骤可能会因RobotStudio版本的不同而有所差异。
如有问题,建议咨询ABB官方技术人员或在ABB的官网论坛上查询。
4-4 ABB机器人程序数据和系统备份恢复
4.4.4任务实施—三个关键的程序数据的设定
2.工件坐标wobjdata
对机器人进行编程时就是在工件坐标中创建目标和路径。这带 来很多优点: (1)重新定位工作站中的工件时,只需要更改工件坐标的位 置,所有路径将即刻随之更新。 (2)允许操作以外轴或传送导轨移动的工件,因为整个工件 可连同其路径一起移动。
*注意:TCP取点数量的区别: 4点法,不改变tool0的坐标方向 5点法,改变tool0的Z方向 6点法,改变tool0的X和Z方向(在焊接应用最为常用)。
4.4.4任务实施—三个关键的程序数据的设定
1.工具数据tooldata
参考压缩包4.4.1.rspag
为了获得更准确的TCP,在以下例子中使用六点法进行操作: 前三个点的姿态相差尽量大些,这样有利于TCP精度的提高;
机器人运动速度数据
z50
zonedata
机器人运动转弯数据
tool0
tooldata
机器人工作数据TCP
4.4.3知识储备—程序数据的类型与分类
1.程序数据的类型分类
ABB机器人的程序数据共有76个,并且可以根据实际情况进行程序数据的创建,为ABB机器人的程序 设计带来了无限可能性。 在示教器的“程序数据”窗口可查看和创建所需要的程序数据。
4.4.3知识储备—程序数据
程序数据是在程序模块或系统模块中设定的值和定义的一些环境数据。创建的程序数据由同 一个模块或其他模块中的指令进行引用。下面是一条常用的机器人关节运动的指令MoveJ, 调用了四个程序数据。
ABB机器人的程序数据
ABB机器人的程序数据5.1任务目标➢掌握程序数据的建立方法。
➢掌握三个关键程序数据的设定。
➢熟悉机器人工具自动识别功能。
5.2任务描述◆以bool为例,建立程序数据,练习建立num、robtarget程序数据。
◆设定机器人的工具数据tooldata、工件坐标wobjdata、负荷数据loaddata。
◆使用LoadIdentify工具自动识别安装在六轴法兰盘上的工具(tooldata)与载荷(loaddata)的重量,与重心。
5.3知识储备5.3.1程序数据程序数据是在程序模块或者系统模块中设定的值与定义的一些环境数据。
创建的程序数据由同一个模块或者其他模块中的指令进行引用。
图中是一条常用的机器人关节运动的指令MoveJ,调用了四个程序数据。
图中所使用的程序数据的说明见表:程序数据数据类型说明p10 robtarget 机器人运动目标位置数据v1000 speeddata 机器人运动速度数据z50 zonedata 机器人运动转弯数据tool0 tooldata 机器人工作数据TCP5.3.2程序数据的类型与分类1.程序数据的类型分类ABB机器人的程序数据共有76个,同时能够根据实际情况进行程序数据的创建,为ABB机器人的程序设计带来了无限可能性。
在示教器的“程序数据”窗口可查看与创建所需要的程序数据。
2.程序数据的存储类型(1)变量VAR变量型数据在程序执行的过程中与停止时,会保持当前的值。
但假如程序指针被移到主程序后,数值会丢失。
举例说明:VAR num length:=0;名称之length的数字数据VAR string name:=”John”;名称之name的字符数据VAR bool finish:=FALSE;名称之finish的布尔量数据在程序编辑窗口中的显示如图:在机器人执行的RAPID程序中也能够对变量存储类型程序数据进行赋值的操作,如图:*注意:VAR表示存储类型为变量num表示程序数据类型*提示:在定义数据时,能够定义变量数据的初始值。
ABB机器人常用标准数据类型
ABB机器人标准数据类型一、标准数据类型1、BOOLBOOL类型变量可取值TRUE和FALSE。
保留8位内存空间。
2、整型数据类型所有的整型数据类型为:BYTE 字节WORD 字DWORD 双字SINT 短整型USINT 无符号短整型INT 整型UINT 无符号整型DINT 双精度整型UDINT 无符号双精度整型各个不同的数据类型有不同的值范围。
下表为整型数据的值范围和占用的内存空间类型下限上限内存空间BYTE 0 255 8位WORD 0 65535 16位DWORD 0 4294967295 32位SINT -128 127 8位USINT 0 255 8位INT -32768 32767 16位UINT 0 65535 16位DINT -2147483648 2147483647 32位UDINT 0 4294967295 32位当用大类型转换为小类型时,将导致丢失信息。
3、REAL/LREALREAL和LREAL被称为浮点数类型。
用于有理数表示。
REAL占用32位内存空间,LREAL占用64位。
4、STRINGTRING类型变量可以是包含任何字符的字符串。
其容量大小在声明变量时说明,如果不对容量大小进行说明,其缺省值为80个字符。
字符串变量声明示例:tr:STRING(35):=‘ThisisaString’;5、时间、日期类型TIME、TIME_OF_DAY(缩写TOD)、DATE和DATE_AND_TIME(缩写DT)数据类型在内部作为DWORD处理。
TIME和TOD中的时间用毫秒表示,TOD中的时间从12:00AM开始。
DATE和DT中的时间用秒表示,并从1970年1月1日12:00AM 开始。
时间数据的格式在常数一节中说明。
6、常数(1)BOOL–常数BOOL–常数为逻辑值TRUE和FALSE。
(2)TIME–常数TIME常数可以在TwinCATPLC控制中声明。
主要用于标准库中定时器的操作,格式如下:T#xxdxxhxxmxxsxxms其中:T表示时间常数起始,#数值符号,d天,h小时,m分,s秒,ms毫秒。
工业机器人实操与应用技巧第5章
6.单击此按钮进行名称的设定。 7.单击下拉菜单选择对应的参数。
8.单击“确定”完成设定。
Octobe
第五章 ABB机器人程序数据
任务5-2 建立程序数据的操作
5.2.1. 建立bool类型程序数据的操作
数据设定参数及说明见表
Octobe
数据设定参数 名称 范围
在程序编辑窗口中的显示如图所示:
Octobe
第五章 ABB机器人程序数据
任务5-4 常用程序数据说明
5.4.1. 数值数据num
num 用于存储数值数据;例如,计数器。 num 数据类型的值可以为: 整数;例如,-5 小数;例如,3.45 也可以指数的形式写入: 例如,2E3(=2*10^3=2000),2.5E-2(= 0.025)。 整数数值,始终将-8388607与+8388608之间的 整数作为准确的整数储存。小数数值仅为近似 数字,因此,不得用于等于或不等于对比。若 为使用小数的除法和运算,则结果亦将为小数。
Octobe
第五章 ABB机器人程序数据
1.认识程序数据 2.建立程序数据的操作 3.程序数据类型与分类 4.常用程序数据说明 5.三个关键程序数据的设定
Octobe
第五章 ABB机器人程序数据
任务5.1 认识程序数据
工作任务: ➢ 了解常用运动指令中所调用的
程序数据
程序数据是在程序模块或系统模块 中设定值和定义一些环境数据。创 建的程序数据由同一个模块或其它 模块中 的指令进行引用。如图所 示, 虚线框中是一条常用的机器 人关节运动的指令(MoveJ),并
《工业机器人实操与应用技巧》
RobotWare 6.0版本
ABB机器人程序指令汇总
11ABB机器人程序指令汇总。
一指令格式[此处图片未下载成功]二指令及其参数Data := ValueAccSet Acc RampActUnit MecUnitAdd Name A ddValueBreakCallBy Var Name Number Clear NameClkReset ClockClkStart ClockClkStop ClockClose IODevice! CommentConfJ [] | []ConfL [] | []CONNECT Interrupt WITH Trap routineCorrCon DescrCorrDiscon DescrCorrWrite Descr DataCorrClearDeactUnit MecUnitDecr NameEOffsSet EaxOffs ErrWrite [ ] Header Reason [ ] [ ] [ ]ExitExitCycleFOR Loop counter FROM S tart value TO End value [STEP Step value] DO ... ENDFORGOTO L abelGripLoad LoadIDelete InterruptIF Condition ...IF Condition THEN ...ELSEIF Condition THEN ...[ELSE ...]Incr NameIndAMove MecUnit Axis [ ] | [ ]Speed[ ]IndCMove MecUnit Axis Speed [ ]IndDMove MecUnit Axis Delta Speed [ ]IndReset MecUnit Axis [ ] | [ ] | [ ] | [ ] |[ ] | [ ] IndRMove MecUnit Axis [ ] | [ ] | [ ] |[ ] | [ ] Speed [ ] InvertDO SignalIODisable UnitName MaxTimeIOEnable UnitName MaxTimeISignalDI [ ] Signal TriggValueInterruptISignalDO [ ] Signal TriggValueInterruptISleep Interrupt ITimer [ ] Time InterruptIVarValue VarNo Value, InterruptIWatch InterruptLabe l:MoveAbsJ [ ] ToJointPos Speed [ ] | [ ] Zone[ ]Tool[ ]MoveC [ ] CirPoint ToPoint Speed [ ] | [ ] Zone [ ]Tool [ ]MoveJ [ ] ToPoint Speed [ ] | [ ] Zone [ ] Tool[ ]MoveL [ ] ToPoint Speed [ ] | [ ] Zone [ ] Tool[ ]Open Object [] IODevice [] | [] | [] | [] PathResol ValuePDispOn [ ] [ ] ProgPoint Tool [ ]PDispSet DispFramePulseDO [ ] SignalRAISE [ Error no ]Reset SignalRETURN [ Return value ]Rewind IODeviceSearchC [ ] | [ ] | [ ] Signal SearchPoint CirPoint ToPoint Speed [ ] | [ ] Tool [ ]SearchL [ ] | [ ] | [ ] Signal SearchPoint ToPoint Speed [ ] | [ ] Tool [ ]Set SignalSetAO Signal Value SetDO [ ] SignaxxValueSetGO Signal ValueSingArea [ ] | [ ] | [ ]SoftAct Axis Softness []Stop [ ]TEST Test data CASE Test value , Test valu e : ... [ DEFAULT: ...] ENDTEST TPReadFK Answer String FK1 FK2 FK3 FK4 FK5 [] [] []TPReadNum Answer String [] [] []TPShow WindowTPWrite String [] | [] | [] | []TriggC CirPoint ToPoint Speed [ ] Trigg_1 [ ][ ][ ]Zone Tool [ ]TriggInt TriggData Distance [ ] | [ ] InterruptTriggIO TriggData Distance [ ] | [ ] [ ] | [ ]|[] SetValue [ ] | [ ]TriggJ ToPoint Speed [ ] Trigg_1 [ ] [ ] [ ]Zone Tool [ ] TriggL ToPoint Speed [ ] Trigg_1 [ ] [ ] [ ]Zone Tool[ ] TuneServo MecUnit Axis TuneValueTuneServo MecUnit Axis TuneValue []UnLoad FilePath []VelSet Override MaxWaitDI Signal Value [] []WaitDO Signal Value [] []WaitTime [] Time WaitUntil [] Cond [] []WHILE Condition DO ... ENDWHILEWrite IODevice String [] | [] | [] |[][]WriteBin IODevice Buffer NCharWriteStrBin IODevice StrWZBoxDef [] | [] Shape LowPoint HighPointWZCylDef [] | [] Shape CentrePoint RadiusWZDisable WorldZoneWZDOSet [] | [] WorldZone [] | [] Signal SetValueWZEnable WorldZoneWZFree WorldZoneWZLimSup [] | [] WorldZone ShapeWZSphDef [] | [] Shape CentrePoint Radius 三函数及其参数Abs (Input)ACos (Value)AOutput (Signal)ArgName (Parameter)ASin (Value)ATan (Value)ATan2 (Y X)ByteToStr (ByteData [] | [] | [] | []) ClkRead (Clock) CorrRead Cos (Angle)CPos ([Tool] [])CRobT ([Tool] [])DefDFrame (OldP1 OldP2 OldP3 NewP1 NewP2 NewP3) DefFrame (NewP1 NewP2 NewP3 []) Dim (ArrPar DimNo)DOutput (Signal)EulerZYX ([] | [] | [] Rotation)Exp (Exponent)GOutput (Signal)GetTime ( [] | [] | [] | [] ) IndInpos MecUnit AxisIndSpeed MecUnit Axis [] | [] IsPers (DatObj)IsVar (DatObj)MirPos (Point MirPlane [] []) NumToStr (Val Dec [])Offs (Point XOffset YOffset ZOffset)OrientZYX (ZAngle YAngle XAngle)ORobT (OrgPoint [] | []) PoseInv (Pose)PoseMult (Pose1 Pose2)PoseVect (Pose Pos)Pow (Base Exponent) Present (OptPar) ReadBin (IODevice [])ReadMotor []AxisReadNum (IODevice [])ReadStr (IODevice [])RelTool (Point Dx Dy Dz [] [] []) Round ( Val [])Sin (An gl e )Sqrt (Value)StrFind (Str ChPos Set [])StrLen (Str)StrMap ( Str FromMap ToMap) StrMatch (Str ChPos Pattern) StrMemb (Str ChPos Set)11 StrOrder ( Str1 Str2 Order)StrPart (Str ChPos Len)StrToByte (ConStr [] | [] | [] | []) StrToVal ( Str Val )Tan (Angle)TestDI (Signal)Trunc ( Val [] )ValToStr ( Val )1。
工业机器人基础应用复习题及答案
2022学年第一学期期末考试工业机器人基础应用综合练习题一、单选题1.ABB工业机器人的编程语言是A、C语言B、pythonC、RAPIDD、java正确答案:C2、运动学主要是研究机器人的()。
A、动力源是什么B、运动和时间的关系C、动力的传递与转换D、运动的应用正确答案:B3.位置等级是指机器人经过示教的位置时的接近程度, 设定了合适的位置等级时,可使机器人运行出与周围状况和工件相适应的轨迹,其中位置等()。
A、PL 值越小, 运行轨迹越精准B、PL 值大小, 与运行轨迹关系不大C、PL 值越大, 运行轨迹越精准正确答案:A4.工业机器人机座有固定式和()两种。
A、移动式B、行走式C、旋转式D、电动式正确答案:C5.工业机器人由主体、()和控制系统三个基本部分组成。
A、机柜B、驱动系统C、计算机D、气动系统正确答案:B6.对机器人进行示教时, 作为示教人员必须事先接受过专门的培训才行. 与示教作业人员一起进行作业的监护人员, 处在机器人可动范围外时,()可进行共同作业。
A、不需要事先接受过专门的培训B、必须事先接受过专门的培训C、没有事先接受过专门的培训也可以D、无所谓正确答案:B7.机器人三原则是由()提出的。
A、森政弘B、约瑟夫·英格伯格C、托莫维奇D、阿西莫夫正确答案:D8.传感器的输出信号达到稳定时,输出信号变化与输入信号变化的比值代表传感器的()参数。
A、抗干扰能力B、精度C、线性度D、灵敏度正确答案:D9.当代机器人主要源于以下两个分支()。
A、计算机与数控机床B、遥操作机与计算机C、遥操作机与数控机床D、计算机与人工智能正确答案:C10.通常对机器人进行示教编程时, 要求最初程序点与最终程序点的位置(), 可提高工作效率。
A、相同B、不同C、分离越大越好D、分离越小越好正确答案:A11.当代机器人大军中最主要的机器人为()。
A、工业机器人B、军用机器人C、服务机器人D、特种机器人正确答案:A12.手部的位姿是由()构成的。
ABB机器人程序样板
程序样板%%%VERSION:1LANGUAGE:ENGLISH%%%MODULE mainprg 程序模块名“存放数据”CONST robtarget pHome:=[[517.87,-0.01,708.53],[0.506292,-0.4935,0.509881,-0.490049],[-1,0,-1,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];PROC main() 主程序!*************************************! Main program for!*************************************Initall; 调用Initall子程序WHILE TRUE DO 程序循环执行IF DI_StartBotton1=1 THEN 如果DI_StartBotton1=1则执行rP1子程序rP1;ELSEIF DI_StartBotton2=1 THEN 如果DI_StartBotton2=1则执行rP2子程序rP2;ENDIFWaitTime 0.3; 时间等待指令ENDWHILEENDPROCPROC Initall() 子程序,用于初始化所有数据和状态AccSet 100,100; 加速度设定指令V elSet 100, 2000; 速度设定指令rCheckHOMEPos; 调用rCheckHOMEPos子程序ENDPROCPROC rCheckHOMEPos() 子程序,用于判断机器人是否在等待位置IF NOT CurrentPos(pHome,tool0) THENTPErase;TPWrite "Robot is not in the Wait-Position";TPWrite "Please jog the robot around the Wait position in manual";TPWrite "And execute the aHome routine.";WaitTime 0.5;EXIT;ENDIFENDPROCFUNC bool CurrentPos(robtarget ComparePos,INOUT tooldata TCP) 功能,用于检测机器人是否在某个位置上V AR num Counter:=0; 数据,只用于本功能的局部变量V AR robtarget ActualPos;!!---------------------------------------------------------------------------------!Abstract : Function to compare current manipulator position with a given position!---------------------------------------------------------------------------------!ActualPos:=CRobT(\Tool:=tool0\WObj:=wobj0);IF ActualPos.trans.x>ComparePos.trans.x-25 AND ActualPos.trans.x<ComparePos.trans.x+25 Counter:=Counter+1;IF ActualPos.trans.y>ComparePos.trans.y-25 AND ActualPos.trans.y<ComparePos.trans.y+25 Counter:=Counter+1;IF ActualPos.trans.z>ComparePos.trans.z-25 AND ActualPos.trans.z<ComparePos.trans.z+25 Counter:=Counter+1;IF ActualPos.rot.q1>ComparePos.rot.q1-0.1 AND ActualPos.rot.q1<ComparePos.rot.q1+0.1 Counter:=Counter+1;IF ActualPos.rot.q2>ComparePos.rot.q2-0.1 AND ActualPos.rot.q2<ComparePos.rot.q2+0.1 Counter:=Counter+1;IF ActualPos.rot.q3>ComparePos.rot.q3-0.1 AND ActualPos.rot.q3<ComparePos.rot.q3+0.1 Counter:=Counter+1;IF ActualPos.rot.q4>ComparePos.rot.q4-0.1 AND ActualPos.rot.q4<ComparePos.rot.q4+0.1 Counter:=Counter+1;RETURN Counter=7;ENDFUNCPROC aHome() 子程序,机器人回等待位置用MoveJ pHome, v30, fine, tool0;ENDPROCPROC rP1() 子程序,存放工作轨迹指令!Insert the moving routine to hereENDPROCPROC rP2() 子程序,存放工作轨迹指令!Insert the moving routine to hereENDPROCENDMODULE。
ABB机器人的程序数据要点
ABB机器人的程序数据要点1.程序指令:-ABB机器人的程序通常由基本指令组成,如移动、旋转、控制等。
- 移动指令包括直线移动(MoveL)、圆弧移动(MoveC)等,用于机器人的路径规划。
- 旋转指令包括旋转(Rotate)和朝向(Orient)等,控制机器人的朝向和姿态。
- 控制指令用于控制机器人的操作流程,如条件判断(If)、循环(Loop)等。
2.坐标系:- ABB机器人使用基于DH(Denavit-Hartenberg)参数的坐标系来描述机器人的位置和姿态。
- 坐标系由基点(Base)、工具(Tool)和用户定义的坐标系(Wobj)组成。
-基点是机器人的基准位置,工具是机器人的末端执行器,用户定义的坐标系用于特定任务或对象。
3.速度:-ABB机器人的速度指定机器人的运动速度,包括关节速度和末端速度。
- 关节速度(Speed)指定机器人各个关节的运动速度,单位为°/s或rad/s。
- 末端速度(Tool Speed)指定机器人末端执行器的运动速度,单位为mm/s。
4.路径规划:-路径规划是指机器人在执行任务时如何规划运动路径,以达到最佳效果。
-ABB机器人的路径规划通常使用直线插值和圆弧插值。
- 直线插值(Linear Interpolation)用于在直线路径上进行均匀的插值运动。
- 圆弧插值(Circular Interpolation)用于在圆弧路径上进行均匀的插值运动。
5.传感器数据:-ABB机器人可以与各种传感器进行连接,包括视觉传感器、力传感器等。
-视觉传感器可以用于机器人的视觉定位、目标检测等任务。
-力传感器可以用于机器人的力控制、物体抓取等任务。
-传感器数据可以通过机器人的IO接口进行读取和控制。
6.通信接口:-ABB机器人通常可以通过以太网、RS232等接口与外部设备进行通信。
-以太网接口用于机器人与上位控制系统、其他设备之间的数据交换。
-RS232接口用于机器人与外部设备之间的串行通信。
abb机器人程序结构总结
abb机器人程序结构总结ABB 机器人程序结构ABB 机器人编程采用 RAPID 语言,是一种基于任务的编程语言,具有模块化结构和直观语法。
其程序结构可概括为以下几个方面:程序模块RAPID 程序由以下模块组成:主模块(Main): 程序的入口点,定义了程序执行的顺序和流程。
任务模块(Task): 执行特定任务的独立线程。
它们可以并行执行,提高程序效率。
函数模块(Function): 执行特定操作的独立块,可以被多次调用。
指令RAPID 指令用于控制机器人的动作、传感器输入和输出设备。
指令分为以下类别:运动指令: 控制机器人的运动,如 Move、JointMove、CircMove。
信号指令: 处理来自传感器和其他 I/O 设备的输入,如WaitDI、WaitDO。
流程控制指令: 控制程序流程,如 If-Then-Else、Loop、Break。
数据处理指令: 执行数学运算、数据类型转换和变量操作。
数据类型RAPID 支持各种数据类型,包括:基本类型: 整数、浮点数、布尔值、字符串。
数组: 存储相同数据类型的元素集合。
结构体: 存储不同数据类型元素的集合。
联合: 存储不同数据类型的元素,但在任何给定时间只能存储一个元素。
变量变量用于存储数据。
它们通过声明来创建,并具有特定的数据类型。
变量可以是局部变量(仅在函数或任务中使用)或全局变量(可在整个程序中使用)。
输入和输出RAPID 提供 I/O 功能,用于与传感器、执行器和其他设备进行通信。
I/O 功能包括:数字输入(DI): 从传感器接收数字信号,表示开关状态或接近传感器。
数字输出(DO): 发送数字信号到执行器或其他设备,控制其状态。
模拟输入(AI): 从传感器接收模拟信号,表示压力、温度或其他连续值。
模拟输出(AO): 发送模拟信号到执行器或其他设备,控制其动作或值。
错误处理RAPID 提供错误处理机制,以处理在程序执行过程中发生的错误。
错误处理涉及:异常 (Trap): 异常表示程序执行过程中发生的异常情况,如运动错误或 I/O 错误。
ABB程序介绍
1、 Cut:剪切,可能会丢失指令或数据。
2 、Copy :复制。
3 、Paste :粘贴,将剪切或复制的指令或数据粘贴到相应位置。
4、 GotoTop:将光标移至顶端。
5、 GotoBottom :将光标移至底端。
6 、Mark :定义一块,涂黑部分。
·zone指机器人TCP不达到目标点,连续运行时,机器人动作圆滑、流畅。
·Base模块中已经定义的转弯区尺寸最小为z1,最大为z200。
·尽量使用较大的转弯区尺寸。
(3)参变量:
光标指在当前指令时,按功能键OptArg,可选择参变量。
·[\Conc](switch)
协作运动。机器人未移动至目标点,已经开始执行下一个指令。
二、编程窗口:
1、菜单键File:
1、 Open:打开一个现有文件。(程序.prg或模块.mod)
2、 New:新建一个程序。
3 、Saveprogram :存储更改后的现有程序。
4 、Saveprogramas:存储一个新程序。
5 、Print: 打印程序,现已经不使用。
一、程序储存器(Programmemory)的组成:
应用程序(Program)
系统模块(Systemmodules)
机器人程序储存器中,只允许存在一个主程序;所有例行程序与数据无论存在于哪个模块,全部被系统共享;所有例行程序与数据除特殊定义外,名称必须是唯一的。
1、应用程序(Program)的组成:
FK5:功能键5显示的字符串。(string)
在示教器显示屏上显示字符串数据,在功能键上显示相应字符串,选择按相应的功能键,机器人自动给数字变量赋于相应数值1-5。
ABB机器人常见的几大数据类型
ABB机器人常见的几大数据类型ABB机器人数据存储描述了机器人控制器内部的各项属性,ABB机器人控制器数据类型多达100余种,其中常见的数据类型包括基本数据、i/o数据、运动相关数据。
1、基本数据基本数据:bool 逻辑值:逻辑状态下赋予的真或者假。
逻辑值有两种情况:成立和不成立则逻辑值为真使用true 或1表示不成立则逻辑值为假使用false或0表示byte 字节值:用于计量存储容量的一种计量单位,取值范围为(0-255)num 数值:变量、可存储整数或小数整数取值范围(-8388607~8388608)dnum 双数值:可存储整数和小数,整数取值范围(-4503599627370495~+4503599627370496)string 字符串:字符串是由数字、字母、下划线组成的一串字符。
他在编程语言中表示文本的数据类型。
stringdig 只含数字的字符串:可处理不大于4294967295的正整数2、i/o 数据dionum 数字值:取值为0或1用于处理数字i/o信号,数字i/o信号中0作为低电平0~0.7v,1作为高电平3.4~5.0vsignaldi/do 数字输入/输出信号:二进制值输入、输出如开关接通是1,断开是0signalgi/go 数字量输入/输出信号组:多个数字量输入或输出组合配合使用。
signalai 模拟量输入:例通过温度采样器采集到一个温度值,就要经过变送器转换,转换成PLC能够识别的二进制数signalao 模拟量输出:数据-变送器-执行机构3、运动相关数据robtarget 位置数据:定义机械臂和附加轴的位置robjoint 关节数据:定义机械臂各关节位置speeddate 速度数据:定义机械臂和轴移动速率,包含四个参数:v_tcp 表示工具中心点速率,单位mm/s;v_ori 表示TCP重定位速率,单位(°)/s;v_leax 表示线性外轴的速率,单位mm/s;v_reax 表示旋转外轴速率,单位(°)/szonedata 区域数据:一般也称为转弯半径,用于定义机器人轴在朝向下一个移动位置前如何接近编程位置tooldata 工具数据:用于定义工具的特征,包含工具中心点(TCP)的位置和方向,以及工具的负载wobjdata 工件数据:用于定义工件的位置及状态loaddata 负载数据:用于定义机械臂安装界面的负载4、数据存储类型ABB机器人数据存储类型分为三种CONST 常量:数据在定义时已赋予了数值,不能在程序中进行修改,除非手动修改VAR 变量:数据在程序执行过程中停止时,会保持当前的值。
ABB机器人用户定义的数据类型(精品)
ABB机器人用户定义的数据类型1、数组支持一维、二维和三维数组的成员数据类型。
数组可在POU的声明部分和全局变量表中定义。
语法:lt;数组名>:ARRAY[..,..]OFll1,ll2为数组维数的下限标识,ul1和ul2为数组维数的上限标识。
数值范围必须为整数。
示例:Card_game:ARRAY[1..13,1..4]OFINT;数组的初始化:可以对数组中的所有元素进行初始化,或不进行初始化。
数组初始化示例:arr1:ARRAY[1..5]OFINT:=1,2,3,4,5;arr2:ARRAY[1..2,3..4]OFINT:=1,3(7);(*等同1,7,7,7*)arr3:ARRAY[1..2,2..3,3..4]OFINT:=2(0),4(4),2,3;(*等同0,0,4,4,4,4,2,3*)结构化中的数组初始化示例:TYPESTRUCT1TRUCT1:int;2:int;3:dword;END_STRUCTARRAY[1..3]OFSTRUCT1:=(p1:=1;p2:=10;p3:=4723),(p1:=2;p2:=0;p3:=299),1:=14;p2:=5;p3:=112);数组部分元素初始化示例:arr1:ARRAY[1..10]OFINT:=1,2;数组中的元素如果没有初始化值,则用基本类型的缺省值初始化其值。
在上例中,元素arr1[3]到元素arr1[10]均被初始化为0。
二维数组的元素存取,使用下列语法:lt;数组名>[Index1,Index2]示例Card_game[9,2]注:如果你在项目中定义了一个名为CheckBounds的功能,则可以自动检查数组的上下限超限错误!下图中给出了如何实现该功能的示例。
2、指针当程序运行时,变量或功能块地址保存在指针中。
指针声明为如下句法形式:<指针名>:POINTERTO<数据类型/功能块>;指针可指向任何数据类型、功能块和用户定义的数据类型。
ABB机器人程序注释
ABB机器人程序注释在工业自动化领域,ABB机器人凭借其高效、精准和可靠的特点,得到了广泛的应用。
为了更好地使用和管理ABB机器人,需要对机器人的程序进行注释。
本文将详细介绍ABB机器人程序注释的作用和方法。
一、ABB机器人程序注释的作用1、提高程序可读性:通过注释,使程序更易于理解,便于后续的维护和调试。
2、记录程序修改历史:注释可以记录程序的修改原因、修改时间和修改者等信息,方便跟踪程序的修改历史。
3、提高工作效率:通过注释,可以快速找到需要修改的代码段,减少查找和调试的时间。
4、防止错误:通过注释,可以提醒程序员注意某些容易出错的地方,从而减少错误的发生。
二、ABB机器人程序注释的方法1、单行注释:使用“//”对单行代码进行注释,例如:/这是一个单行注释int i = 0; //定义整型变量i并初始化为02、多行注释:使用“/”和“/”对多行代码进行注释,例如:c*这是一个多行注释下面是一个if语句/if (i < j) {//如果i小于j,则执行下面的代码i = j; //将i赋值为jelse {//如果i不小于j,则执行下面的代码i = i + 1; //将i加13、函数注释:在函数定义之前添加注释,说明函数的作用、输入参数和返回值等信息,例如:c***这是一个求和函数,输入两个整数作为参数,返回它们的和。
* @param a第一个整数参数* @param b第二个整数参数* @return它们的和*/int sum(int a, int b) {return a + b; //返回a和b的和以上是ABB机器人程序注释的作用和方法,通过对程序的注释可以提高程序的可读性、可维护性和可重用性。
同时也可以减少错误的发生和提高工作效率。
因此在进行ABB机器人程序编写时一定要重视程序的注释工作。
ABB机器人程序实例随着工业自动化的不断发展,机器人技术已经成为现代制造业中不可或缺的一部分。
ABB公司作为全球领先的机器人制造商之一,其机器人程序实例具有广泛的应用和借鉴价值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ABB[a]-J-5ABB机器人的程序数据任务目标掌握程序数据的建立方法。
掌握三个关键程序数据的设定。
了解机器人工具自动识别功能。
任务描述以bool为例,建立程序数据,练习建立num、robtarget程序数据。
设定机器人的工具数据tooldata、工件坐标wobjdata、负荷数据loaddata。
使用LoadIdentify工具自动识别安装在六轴法兰盘上的工具(tooldata)和载荷(loaddata)的重量,以及重心。
知识储备程序数据程序数据是在程序模块或系统模块中设定的值和定义的一些环境数据。
创建的程序数据由同一个模块或其他模块中的指令进行引用。
图中是一条常用的机器人关节运动的指令MoveJ,调用了四个程序数据。
程序数据数据类型说明p10 robtarget 机器人运动目标位置数据v1000 speeddata 机器人运动速度数据z50 zonedata 机器人运动转弯数据tool0 tooldata 机器人工作数据TCP程序数据的类型与分类1.程序数据的类型分类ABB机器人的程序数据共有76个,并且可以根据实际情况进行程序数据的创建,为ABB机器人的程序设计带来了无限可能性。
在示教器的“程序数据”窗口可查看和创建所需要的程序数据。
2.程序数据的存储类型(1)变量VAR变量型数据在程序执行的过程中和停止时,会保持当前的值。
但如果程序指针被移到主程序后,数值会丢失。
举例说明:VAR num length:=0;名称为length的数字数据VAR string name:=”John”;名称为name的字符数据VAR bool finish:=FALSE;名称为finish的布尔量数据在程序编辑窗口中的显示如图:在机器人执行的RAPID程序中也可以对变量存储类型程序数据进行赋值的操作,如图:*注意:VAR表示存储类型为变量num表示程序数据类型*提示:在定义数据时,可以定义变量数据的初始值。
如length的初始值为0,name的初始值为John,finish 的初始值为FALSE。
*注意:在程序中执行变量型数据的赋值,在指针复位后将恢复为初始值。
(2)可变量PERS可变量最大的特点是,无论程序的指针如何,都会保持最后赋予的值。
举例说明:PERS num nbr:=1;名称为nbr的数字数据PERS string test:=”Hello”;名称为test的字符数据在机器人执行的RAPID程序中也可以对可变量存储类型程序数据进行赋值的操作。
在程序执行以后,赋值的结果会一直保持,直到对其进行重新赋值。
*注意:PERS表示存储类型为可变量(3)常量CONST常量的特点是在定义时已赋予了数值,并不能在程序中进行修改,除非手动修改。
举例说明:CONST num gravity:=;名称为gravity的数字数据CONST string greating:=”Hello”;名称为greating的字符数据*注意:存储类型为常量的程序数据,不允许在程序中进行赋值的操作。
三种数据的存储类型在编辑界面的显示如下:3.常用的程序数据根据不同的数据用途,定义了不同的程序数据,下表是机器人系统中常用的程序数据:程序数据说明bool 布尔量byte 整数数据0~255clock 计时数据dionum 数字输入/输出信号extjoint 外轴位置数据intnum 中断标志符jointtarget 关节位置数据loaddata 负荷数据mecunit 机械装置数据num 数值数据orient 姿态数据pos 位置数据(只有X、Y和Z)pose 坐标转换robjoint 机器人轴角度数据robtarget 机器人与外轴的位置数据speeddata 机器人与外轴的速度数据string 字符串tooldata 工具数据trapdata 中断数据wobjdata 工件数据zonedata TCP转弯半径数据*提示:系统中还有针对一些特殊功能的程序数据,在对应的功能说明书中会有相应的详细介绍,请查看随机光盘电子版说明书。
也可以根据需要新建程序数据类型。
任务实施建立程序数据程序数据的建立一般可以分为两种形式,一种是直接在示教器中的程序数据画面中建立程序数据;另一种是在建立程序指令时,同时自动生成对应的程序数据。
本节将介绍直接在示教器的程序数据画面中建立程序数据的方法。
下面以建立布尔数据为例子进行说明,练习时建立num和robtarget程序数据。
ABB菜单中,选择“程序数据”。
选择数据类型“bool”,单击“显示数据”。
单击“新建…”。
进行名称的设定、单击下拉菜单选择对应的参数,设定完成后单击“确定”完成设定。
数据设定参数及说明见表:设定参数说明名称设定数据的名称范围设定数据可使用的范围存储类型设定数据的可存储类型任务设定数据所在的任务模块设定数据所在的模块例行程序设定数据所在的例行程序维数设定数据的维数初始值设定数据的初始值在进行正式的编程之前,就需要构建起必要的编程环境,其中有三个必须的程序数据(工具数据tooldata、工件坐标wobjdata、负荷数据loaddata)就需要在编程前进行定义。
1.工具数据tooldata工具数据tooldata用于描述安装在机器人第六轴上的工具的TCP、质量、重心等参数数据。
一般不同的机器人应用配置不同的工具,比如说弧焊的机器人就使用弧焊枪作为工具,而用于搬运板材的机器人就会使用吸盘式的夹具作为工具。
默认工具(tool0)的工具中心点(Tool Center Point)位于机器人安装法兰盘的中心。
图中A点就是原始的TCP点。
TCP的设定原理如下:首先在机器人工作范围内找一个非常精确的固定点作为参考点。
然后在工具上确定一个参考点(最好是工具的中心点)。
用之前介绍的手动操纵机器人的方法,去移动工具上的参考点,以四种以上不同的机器人姿态尽可能与固定点刚好碰上。
为了获得更准确的TCP,在以下例子中使用六点法进行操作,第四点是用工具的参考点垂直于固定点,第五点是工具参考点从固定点向将要设定为TCP的X方向移动,第六点是工具参考点从固定点向将要设定为TCP的Z方向移动。
机器人通过这四个位置点的位置数据计算求得TCP的数据,然后TCP的数据就保存在tooldata这个程序数据中被程序进行调用。
*提示:执行程序时,机器人将TCP移至编程位置。
这意味着,如果要更改工具以及工具坐标系,机器人的移动将随之更改,以便新的TCP到达目标。
所有机器人在手腕处都有一个预定义工具坐标系,该坐标系被称为tool0。
这样就能将一个或多个新工具坐标系定义为tool0的偏移值。
*注意:TCP取点数量的区别:4点法,不改变tool0的坐标方向5点法,改变tool0的Z方向6点法,改变tool0的X和Z方向(在焊接应用最为常用)。
前三个点的姿态相差尽量大些,这样有利于TCP精度的提高。
操作步骤:ABB菜单中,选择“手动操纵”。
选择“工具坐标”。
单击“新建”。
对工具数据属性进行设定后,单击“确定”。
选中tool1后,单击“编辑”菜单中的“定义”选项。
选择“TCP和Z,X”,使用6点法设定TCP。
选择合适的手动操纵模式。
按下使能键,使用摇杆使工具参考点靠上固定点,作为第一个点。
单击“修改位置”,将点1位置记录下来。
工具参考点变换姿态靠上固定点。
单击“修改位置”,将点2位置记录下来。
工具参考点变换姿态靠上固定点。
单击“修改位置”,将点3位置记录下来。
工具参考点变换姿态靠上固定点。
这是第4个点,工具参考点垂直于固定点。
单击“修改位置”,将点4位置记录下来。
工具参考点以点4的姿态从固定点移动到工具TCP的+X方向。
单击“修改位置”,将延伸器点X 位置记录下来。
工具参考点以此姿态从固定点移动到工具TCP的Z方向。
单击“修改位置”,将延伸器点Z 位置记录下来。
单击“确定”完成设定。
对误差进行确认,越小越好,但也要以实际验证效果为准。
选中tool1,然后打开编辑菜单选择“更改值”。
在此页面中,根据实际情况设定工具的质量mass(单位kg)和重心位置数据(此中心是基于tool0的偏移值,单位mm),然后单击“确定”。
*提示:此页显示的内容就是TCP定义时生成的数据。
选中tool1,单击“确定”。
动作模式选定为“重定位”。
坐标系统选定为“工具”。
工具坐标选定为“tool1”。
使用摇杆将工具参考点靠上固定点,然后在重定位模式下手动操纵机器人,如果TCP设定精确的话,可以看到工具参考点与固定点始终保持接触,而机器人会根据重定位操作改变姿态。
图中,搬运薄板的真空吸盘夹具为例,质量是25kg,重心在默认tool0的Z的正方向偏移250mm,TCP点设定在吸盘的接触面上,从默认tool0上的Z方向偏移了300mm。
在示教器上设定如下:在“手动操纵”界面,选择“工具坐标”。
单击“新建”。
根据需要设定数据的属性,一般不用修改。
单击“初始值”。
TCP点设定在吸盘的接触面上,从默认tool0上的Z正方向偏移了300mm,在此画面中设定对应的数值。
此工具质量是25kg,重心在默认tool0的Z的正方向偏移250mm,在画面中设定对应的数值,然后单击“确定”,设定完成。
2.工件坐标wobjdata工件坐标对应工件,它定义工件相对于大地坐标(或其他坐标)的位置。
机器人可以拥有若干工件坐标系,或者表示不同工件,或者表示同一工件在不同位置的若干副本。
对机器人进行编程时就是在工件坐标中创建目标和路径。
这带来很多优点:重新定位工作站中的工件时,只需要更改工件坐标的位置,所有路径将即刻随之更新。
允许操作以外轴或传送导轨移动的工件,因为整个工件可连同其路径一起移动。
*提示:A是机器人的大地坐标,为了方便编程,给第一个工件建立了一个工件坐标B,并在这个工件坐标B中进行轨迹编程。
如果台子上还有一个一样的工件需要走一样的轨迹,那只需建立一个工件坐标C,将工件坐标B中的轨迹复制一份,然后将工件坐标从B更新为C,则无需对一样的工件进行重复轨迹编程了。
*提示:如果在工件坐标B中对A对象进行了轨迹编程,当工件坐标的位置变化成工件坐标D后,只需在机器人系统重新定义工件坐标D,则机器人的轨迹就自动更新到C了,不需要再次轨迹编程了。
因A相对于B,C相对于D的关系是一样,并没有因为整体偏移而发生变化。
*注意:在对象的平面上,只需要定义三个点,就可以建立一个工件坐标。
X1点确定工件坐标的原点。
X1、X2点确定工件坐标X正方向Y1确定工件坐标Y正方向。
工件坐标等符合右手定则。
建立工件坐标的操作步骤:在手动操纵画面中,选择“工件坐标”。
单击“新建”。
对工件坐标数据属性进行设定后,单击“确定”。
打开编辑菜单,选择“定义”。
将用户方法设定为“3点”。
手动操纵机器人的工具参考点靠近定义工件坐标的X1点。