ABB工业机器人程序编写与实战
任务:实现物件从一个位置移动到另一个位置1补充的知识点:1.1ABB工业机器人编程语言PAPID任务
程序模块、系统模块
例行程序
PP指针
机器人运动指令:
MoveJToPoint,Speed,Zone,Tool[Wobj];
MoveLToPoint,Speed,Zone,Tool[Wobj];
ToPoint:目标点,默认为*。(robtarget)Speed:运行速度数据。(speeddata)Zone:运行转角数据(转弯半径)。(zonedata)Tool:工具中心点(TCP)。(tooldata)[Wobj]:工件座标系。(wobjdata)
MoveJ(曲线运动)机器人以最快捷的方式运动至目标点,机器人运动轨迹不完全可控,但运动路径保持唯一,常用于机器人在空间大范围移动。MoveL(直线运动)机器人以线性移动方式运动至目标点,当前点与目标点两点决定一条直线,机器人运动状态可控,运动路径保持唯一,可能出现死点,常用于机器人在工作状态移动。固定坐标系,很完美的位置:
仿真软件显示画面:
程序使用C#写的,代码也是很简单。像C语言一样,C#也有主函数部分。
程序解读:
第一个MoveJ:初始位置
第二个MoveJ:取物件正上方
第三个Movej:取物件位置
Set:夹住
第四个Movej:取物件正上方
第五个Movej:放物件正上方
第六个Movej:放物件位置
Reset:放开
第七个Movej:放物件正上方
第八个Movej:初始位置
问题:为什么单步运行夹货物能改放到正确的位置,而连续运行下,夹货物会出现位置没放到对应位置的问题?
MoveJ的转角半径要越大越好,但不能超过下端路径的一半。需要将z50改成Fine模式,调整转角半径。因为在取物件或者放物件的时候,要将区域位置改成Fine模式。
科普:
机器人运动指令:
MoveJToPoint,Speed,Zone,Tool[Wobj];MoveLToPoint,Speed,Zone,Tool[Wobj];
解释:
ToPoint:目标点,默认为*。(robtarget)Speed:运行速度数据。(speeddata)Zone:运行转角数据。(zonedata)Tool:工具中心点(TCP)。(tooldata)[Wobj]:工件座标系。(wobjdata)
应用:
MoveJ(曲线运动)机器人以最快捷的方式运动至目标点,机器人运动轨迹不完全可控,但运动路径保持唯一,常用于机器人在空间大范围移动。MoveL(直线运动)机器人以线性移动方式运动至目标点,当前点与目标点两点决定一条直线,机器人运动状态可控,运动路径保持唯一,可能出现死点,常用于机器人在工作状态移动。例子:
MoveJ:
MoveJ p20,v1000,z50,tool0;
MoveJ:曲线运动
MoveL:
MoveLp20,v1000,z50,tool0;
p20目标点v1000速度1000mm/s(TCP速度?)z50转弯半径50mm作用:有效提高运行效率;设置原则:
1、越大越好;
2、不超过下段路径长度的一半
全Fine和区域位置用Fine的用时对比:
全Fine:3.5s
区域位置用Fine:3s
22.1创建机器人目标点robtarget数据MoveJToPoint,Speed,Zone,Tool[Wobj];
ToPoint:更改名字,对程序更好理解(初始位置命名为pHome)
对以上各个指令ToPoint的更改:
2.2路径规划以及MoveL,MoveJ指令使用
2.2.1指令使用
MoveL:直线运动(转弯半径)
MoveJ:曲线运动(转弯半径)
例子:工件的上下摆放必须走直线(MoveL),防止出现问题
2.2.2TCP的跟踪:
abb机器人编程指令写字
原标题:最全的ABB机器人编程指令与函数
1指令
AccSet-降低加速度
ActEventBuffer-事件缓冲启用
ActUnit-启用机械单元
Add-增加数值
AliasIO-确定I/O信号以及别名
AliasIOReset-重置I/O信号以及别名
":="-分配一个数值
BitClear-在一个字节或双数值数据中清除一个特定位
BitSet-在一个字节或者双数值数据中设置一个特定位
BookErrNo-登记RAPID系统错误编号
Break-中断程序执行
CallByVar-通过变量,调用无返回值程序
CamFlush-从摄像头删除集合数据
CamGetParameter-获取不同名称的摄像头参数
CamGetResult-从集合获取摄像头目标
CamLoadJob-加载摄像头任务到摄像头
CamReqImage-命令摄像头采集图像
CamSetExposure-设置具体摄像头的数据
CamSetParameter-设置不同名称的摄像头参数
CamSetProgramMode-命令摄像头进入编程模式
CamSetRunMode-命令摄像头进入运行模式
CamStartLoadJob-开始加载摄像头任务到摄像头
CamWaitLoadJob–等待摄像头任务加载完毕
CancelLoad-取消模块加载
CheckProgRef-检查程序参考
CirPathMode-圆周路径期间的工具方位调整
Clear-清除数值
C
ABB机器人编程基本知识汇总
3、Saveprogram:存储更改后的现有程序。
4、Saveprogramas:存储一个新程序。
5、Print:打印程序,现已经不使用。
6、Preferences:定义用户化指令集。
7、Checkprogram:检验程序,光标会提示错误。
8、Close:在程序储存器中关闭程序。
9、Savemodule:存储更改后的现有模块。(只在Module窗口中存在)
10、Savemoduleas:存储一个新模块。(只在Module窗口中存在)
2、菜单键Edit:
1、Cut:剪切,可能会丢失指令或数据。
2、Copy:复制。
3、Paste:粘贴,将剪切或复制的指令或数据粘贴到相应位置。
4、GotoTop:将光标移至顶端。
5、GotoBottom:将光标移至底端。
6、Mark:定义一块,涂黑部分。
7、ChangeSelected:修改指令中数据,可直接将光标移至相应位置按回车键。
8、Showvalue:输入数据,可直接将光标移至相应数据按回车键。
9、Modpos:修改机器人位置,功能键上有。
10、Search:寻找指令,程序复杂时很有用。
11、功能键:Copy、Paste、Modpos在菜单键Edit中可以找到。
三、指令:
1、基本运动指令:
MoveL:线性运动(Linear)
MoveJ:关节轴运动(Joint)
MoveC:圆周运动(Circular)
p1:目标位置。(robtarget)
v100:运行速度mm/s。(speeddata)
z10:转弯区尺寸mm。(zonedata)
tool1:工具中心点TCP。(tooldata)
(1)速度选择:mm/s
·将光标移至速度数据处,按回车键,进入选择窗口,选择所需速度。
·机器人运行速度属于数据类型speeddata。
·常用运行速度在Base模块中已经定义。
·特殊速度可自行定义。
·max速度为v5000,Base模块中定义最大速度为v7000,最大速度机器人未必能达到。
(2)转弯区尺寸选择:mm
·将光标移至转弯区尺寸数据处,按回车键,进入选择窗口,选择所需转弯区尺寸。
·机器人转弯区尺寸属于数据类型zonedata。
·常用转弯区尺寸在Base模块中已经定义。
·特殊转弯区尺寸可自行定义。
·fine指机器人TCP达到目标点,并在目标点速度降为零,连续运行时,机器人动作有停顿。
·zone指机器人TCP不达到目标点,连续运行时,机器人动作圆滑、流畅。
·Base模块中已经定义的转弯区尺寸最小为z1,最大为z200。
·尽量使用较大的转弯区尺寸。
(3)参变量:
光标指在当前指令时,按功能键OptArg,可选择参变量。
·[Conc](switch)协作运动。机器人未移动至目标点,已经开始执行下一个指令。
·[ToPoint](robtarget)在采用新指令时,目标点自动生成*。·[V](num)定义速度mm/s。
·[T](num)定义时间s。通过时间决定速度。
·[Z](num)定义转弯区尺寸mm。
·[Wobj](wobjdata)采用工件系座标系统。
(4)函数Offs:
MoveLp1,v100,…
MoveLp2v100,…
MoveLp3,v100,…
MoveLp4,v100,…
MoveLp1,v100,…
·为了精确确定p1、p2、p3、p4点,可以使用函数Offs。
·Offs(p1,x,y,z)代表一个离p1点X轴偏差量为x,Y轴偏差量为y,Z轴量为z的点。
·将光标移至目标点,按回车键,进入目标点选择窗口,在功能键上选择Func,采用切换选择所用函数Offs。
MoveLp1,v100,…
MoveLOffs(p1,100,0,0),v100,…
MoveLOffs(p1,100,-50,0),v100,…
MoveLOffs(p1,0,-50,0),,v100,…
MoveLp1,v100,…
2、输入输出群指令:
·do指机器人输出信号。
·di指输入机器人信号。
·输入输出信号必须在系统参数中定义。
·输入输出信号有两种状态,1(High)为接通,0(Low)为断开。
(1)输出信号指令:
A、输出输出信号指令:setdoldo1:输出信号名。(signaldo)将一个输出信号赋值为1。
B、复位输出信号指令:Resetdo1do1:输出信号名。(signaldo)将一个输出信号赋值为0。
C、输出脉冲信号指令:PulseDOPLength:=0.2,do1do1:输出信号名。(signaldo)输出一个脉冲信号,脉冲长度为0.2s。
参变量:
·[PLength](num)脉冲长度,0.1s-32s。
(2)输入信号指令:
WaitDIdi1,1
di1:输入信号名。(signaldi)
3、参变量:
·[MaxTime](num)等待输入信号最长时间s。
·[TimeFlag](bool)逻辑量,TRUE或FALSE。
如果只选用参变量[MaxTime],等待超过最长时间后,机器人停止运行,并显示相应出错信息。如果同时选用参变量[MaxTime]与参变量[TimeFlag],等待超过最长时间后,无论是满足等待的状态,机器人将自动执行下一句指令。如果在最长等待时间内得到相应信号,将逻辑量置为FALSE,如果超过最长等待时间,逻辑量置为TRUE。
4、通信指令(人机对话):
(1)清屏指令:TPErase
(2)写屏指令:PWriteStringtring:显示的字符串。(string)在示教器显示屏上显示字符串数据,也可以用"……"形式直接定义字符串,每一个写屏指令最多显示80个字符。
(3)功能键读取指令:TPReadFK,Answer,Text,FK1,FK2.FK3,FK4,FK5Answer:赋值数字变量。(num)Text:显示屏显示的字符串。(string)FK1:功能键1显示的字符串。(string)FK2:功能键2显示的字符串。(string)FK3:功能键3显示的字符串。(string)FK4:功能键4显示的字符串。(string)FK5:功能键5显示的字符串。(string)
在示教器显示屏上显示字符串数据,在功能键上显示相应字符串,选择按相应的功能键,机器人自动给数字变量赋于相应数值1-5。
5、程序运行停止指令:
(1)停止指令Stop:机器人停止运行,软停止指令(SoftStop),直接在下一句指令启动机器人。
(2)停止指令Exit:机器人停止运行,并且复位整个运行程序,将程序运行指针移至主程序第一行。机器人程序必须从头运行。
(3)停止指令Break:机器人立刻停止运行,有冲击,直接在下一句指令启动机器人。
6、计时指令:
(1)时钟复位指令:ClKResetClockClock:机器人时钟名称。(clock)
(2)时钟启动指令:ClKStartClockClock:机器人时钟名称。(clock)
(3)时钟停止指令:ClKStopClockClock:机器人时钟名称。(clock)
7、速度控制指令:VelSet,Override,Max
Override:机器人运行速率%。(num)
Max:机器人最大速度mm/s。(num)
每个机器人运动指令均有一个运行速度,在执行速度控制指令后,机器人实际运行速度为运动指令规定运行速度乘以机器人运行速率(Override),并且不超过机器人最大运行速度(Max)。
8、等待指令:
WaitTime,Time
Time:机器人等待时间s。(num)
等待指令只是让机器人程序运行停顿片刻。
9、赋值指令:
Data:=Value
Data:被赋值的数据。(All)
Value:数据被赋予的值。
举例:
ABB:=FALSE;(bool)
ABB:=reg1+reg3;(num)
ABB:="WELCOME";(string)
Home:=p1;(robotarget)
tool1.tframe.trans.x:=tool1.tframe.trans.x+20;(tooldata)
10、负载定义指令:
GripLoadLoad
Load:机器人当前负载,数据类型为Loaddata。
免责声明:本文系网络转载,版权归原作者所有。但因转载众多,无法确认真正原始作者,故仅标明转载来源。本文所用视频、图片、文字如涉及作品版权问题,请第一时间告知,我们将根据您提供的证明材料确认版权并按国家标准支付稿酬或立即删除内容!本文内容为原作者观点,并不代表本公众号赞同其观点和对其真实性负责。返回搜狐,查看更多