您现在的位置:首页  >  行业新闻  >  技术与应用

ABB机器人之高级编程:安全域WorldZone的使用!

2019/4/30 17:49:47 标签:中国传动网

微信图片_20190430111052.jpg

一、简介

WorldZones的作用是在机器人位于用户专门定义的区域内时,停止该机器人或设置一个输出信号。

有如下特性:

1、当TCP或者关节值进入某个区间或离开某个区间的时候,Set一个输入输出信号;

2、当机器人到达某个区间的边界时,停止机器人;

3、可以定义长方体、圆柱体、球体以及关节值区域;

4、可以通过启动自动激活,也可以使用程序进行激活与禁用;

5、手动、自动都有效;

6、如果是多机器人系统,每个机器人都有自己独立的WorldZone。

二、典型应用

1、当两台机器人的工作区域部分重叠时。可通过WorldZones监控来安全地消除这两台机器人相撞的可能性;

2、当该机器人的工作区域内有某种永久性障碍或某些临时外部设备时。可创建一个禁区来防止机器人与此类设备相撞;

3、指明相关机器人正处在一个“允许用可编程逻辑控制器(PLC)来开始执行程序”的位置;

4、出于安全考虑,不可使用此功能进行人员安全的保护。

三、数据类型

数据类型

描述

wztemporary

wztemporary的作用是识别临时全局区域,并可用在RAPID程序中的任何位置。

可通过RAPID指令来禁用、重新启用或擦除临时全局区域。当载入一段新程序时,或当从MAIN例程的起点处开始执行程序时,系统便会自动擦除临时全局区域。

wzstationary

wzstationary的作用是识别固定全局区域,并仅能用在与事件“通电”相关联的一则事件例程中。定义事件例程方面的信息请参见操作员手册-带FlexPendant的IRC5。

固定全局区域会始终处于激活状态,而重启(先关闭电源然后再打开电源,或更改系统参数)则会再次激活此类区域。无法通过RAPID指令来禁用、启用或擦除固定全局区域。

如果涉及到安全问题,则应使用固定全局区域。

shapedata

shapedata的作用是描述一个全局区域的几何形状。

可将全局区域定义为4种不同的几何形状:

•一个方盒,所有侧面都与全局坐标系平行

•一个圆柱体,与全局坐标系的z轴平行

•一个球体

•针对机器人轴和/或外轴的一个关节角区

VARshapedatavolume;

四、指令

1、WZBoxDef-定义一个箱形全局区域

WZBoxDef(WorldZoneBoxDefinition)用于定义拥有直线箱形状,且各侧均与世

界坐标系各轴平行的全局区域。

如:

VARshapedatavolume;

CONSTposcorner1:=[200,100,100];

CONSTposcorner2:=[600,400,400];

...

WZBoxDef\Inside,volume,corner1,corner2;

定义坐标与世界坐标系各轴平行,且由对角corner1和corner2所定义的直线箱。

用机器人定义,需要使用WobJ0.

变元WZBoxDef[\Inside]|[\Outside]ShapeLowPointHighPoint

2、WZCylDef(全局区域圆柱体定义)为,用于定义外形为圆柱形,且圆柱轴与世界坐标

系z轴平行的全局区域。

VARshapedatavolume;

CONSTposC2:=[300,200,200];

CONSTnumR2:=100;

CONSTnumH2:=200;

...

WZCylDef\Inside,volume,C2,R2,H2;

定义底圆中心C2、半径R2且高度H2的圆柱体。

变元WZCylDef[\Inside]|[\Outside]ShapeCentrePointRadiusHeight

3、WZSphDef-定义球形全局区域

VARshapedatavolume;

CONSTposC1:=[300,300,200];

CONSTnumR1:=200;

...

WZSphDef\Inside,volume,C1,R1;

根据其中心C1及其半径R1,定义命名为volume的球体。

变元WZSphDef[\Inside]|[\Outside]ShapeCentrePointRadius

4、WZHomeJointDef-定义内部接头的全局区域

WZHomeJointDef(WorldZoneHomeJointDefinition)用于定义接头坐标系中的

全局区域,以便将机械臂和外轴作为HOME或SERVICE位置。

VARwzstationaryhome;

...

PROCpower_on()

VARshapedatajoint_space;

CONSTjointtargethome_pos:=[[0,0,0,0,0,-45],[0,9E9,9E9,9E9,9E9,9E9]];

CONSTjointtargetdelta_pos:=[[2,2,2,2,2,2],[5,9E9,9E9,9E9,9E9,9E9]];

...

WZHomeJointDef\Inside,joint_space,home_pos,delta_pos;

WZDOSet\Stat,home\Inside,joint_space,do_home,1;

ENDPROC

变元WZHomeJointDef[\Inside]|[\Outside]ShapeMiddleJointValDeltaJointVal

有关某些轴的值9E9意味着不应该监控该轴。编程期间,

无效外轴亦得出9E9。

5、WZLimJointDef-定义有关接头内限制的全局区域

WZLimJointDef(WorldZoneLimitJointDefinition)用于定义接头坐标系中的全

局区域,以便将机械臂和外轴用于工作区域的限制。

VARwzstationarywork_limit;

...

PROCpower_on()

VARshapedatajoint_space;

CONSTjointtargetlow_pos:=[[-90,9E9,9E9,9E9,9E9,9E9],[-1000,9E9,9E9,9E9,9E9,9E9]];

CONSTjointtargethigh_pos:=[[90,9E9,9E9,9E9,9E9,9E9],[9E9,9E9,9E9,9E9,9E9,9E9]];

...

WZLimJointDef\Outside,joint_space,low_pos,high_pos;

WZLimSup\Stat,work_limit,joint_space;

ENDPROC

程序执行和点动期间,固定式全局区域work_limit的定义和启用,将机械臂轴1的工

作区域限制在-90到+90度,并将外轴extax.eax_a限制在-1000mm。

变元WZLimJointDef[\Inside]|[\Outside]ShapeLowJointValHighJointVal

五、启用及停用

1、WZEnable-启用临时全局区域监控

WZEnable(WorldZoneEnable)用于重新启用对临时全局区域的监控,其预先定

义,以便停止移动或设置输出。

VARwztemporarywzone;

...

PROC...

WZLimSup\Temp,wzone,volume;

MoveLp_pick,v500,z40,tool1;

WZDisablewzone;

MoveLp_place,v200,z30,tool1;

WZEnablewzone;

MoveLp_home,v200,z30,tool1;

ENDPROC

当向p_pick移动时,检查机械臂TCP的位置,以便其不会进入指定体积wzone。当转

到p_place时,不实施该监控,但是在转到p_home前,重新启用该监控。

2、WZDisable-停用临时全局区域监控

WZDisable(WorldZoneDisable)用于停用对临时全局区域的监控,其预先定义以

便停止移动或设置输出。

VARwztemporarywzone;

...

PROC...

WZLimSup\Temp,wzone,volume;

MoveLp_pick,v500,z40,tool1;

WZDisablewzone;

MoveLp_place,v200,z30,tool1;

ENDPROC

当向p_pick移动时,检查机械臂TCP的位置,以便其不会进入指定体积wzone。当转

到p_place时,不实施该监控。

3、WZFree-擦除临时全局区域监控

WZFree(WorldZoneFree)用于擦除临时全局区域的定义,其预先定义,以便停止

移动或设置输出。

VARwztemporarywzone;

...

PROC...

WZLimSup\Temp,wzone,volume;

MoveLp_pick,v500,z40,tool1;

WZDisablewzone;

MoveLp_place,v200,z30,tool1;

WZEnablewzone;

MoveLp_home,v200,z30,tool1;

WZFreewzone;

ENDPROC

当向p_pick移动时,检查机械臂TCP的位置,以便其不会进入指定体积wzone。当转

到p_place时,不实施该监控,但是在转到p_home前,重新启用该监控。当达到该

位置时,擦除全局区域定义。

4、WZDOSet-启用全局区域,设置数字信号输出

WZDOSet(WorldZoneDigitalOutputSet)用于定义行动,并启用全局区域,以监控机械臂移动。在执行该指令后,当机械臂TCP或机械臂/外轴(接头中的区域)位于指定全局区域内,或正在接近全局区域时,将数字信号输出信号设置为指定值。

VARwztemporaryservice;

PROCzone_output()

VARshapedatavolume;

CONSTposp_service:=[500,500,700];

...

WZSphDef\Inside,volume,p_service,50;

WZDOSet\Temp,service\Inside,volume,do_service,1;

ENDPROC

机械臂TCP在程序执行期间位于指定球体内时,或出现点动时,有关在设置信号

do_service的应用程序中的临时全局区域service的定义。

变元WZDOSet[\Temp]|[\Stat]WorldZone[\Inside]|[\Before]ShapeSignalSetValue

启用规定的全局区域。从此刻起,监控机械臂TCP位置(或机械臂/外接头位置),且

当机械臂TCP位置(或机械臂/外接头位置)位于体积(\Inside)内或接近体积

(\Before)边界时,将设置输出。

如果使用WZHomeJointDef或WZLimJointDef连同WZDOSet,则仅当所有有效轴以

及接头空间监控位于接头空间前或内部时,方才设置数字信号输出信号。

5、WZLimSup-启用全局区域限制监控

WZLimSup(WorldZoneLimitSupervision)用于定义行动,并启用全局区域,以监控机械臂或外轴的工作区域。

执行该指令后,在程序执行和点动期间,当机械臂TCP达到规定全局区域,或当机械

臂/外轴达到接头中的规定全局区域时,移动得以停止。

VARwzstationarymax_workarea;

...

PROCPOWER_ON()

VARshapedatavolume;

...

WZBoxDef\Outside,volume,corner1,corner2;

WZLimSup\Stat,max_workarea,volume;

ENDPROC

包含箱外区域(临时储存在volume中)以及行动工作区域监控的固定式全局区域

max_workarea的定义和启用。在进入箱外区域之前,机械臂在出现错误消息时停止。

 

声明:本文为转载类文章,如涉及版权问题,请及时联系我们删除(QQ: 2737591964),不便之处,敬请谅解!

 

供稿:PLC技术圈

本文链接:http://www.cmcia.cn/content.aspx?url=rew&id=1412

成员中心

《伺服与运动控制》

《伺服与运动控制》

创刊于2005年,秉承面向市场、面向科技、面向应用、面向行业,集实用性、信息性、...

《机器人与智能系统》

《机器人与智能系统》

是深圳市机器人协会、中国传动网共同主办的聚焦机器人、智能系统领域的高端产经...

《直驱与传动》

《直驱与传动》

聚焦直驱产业,整合资源,为直驱企业与用户搭建桥梁。