- 广州子锐机器人技术有限公司
- 服务热线:020-82000787(8:30-17:30)
- 联系手机:15889988091(非工作时间)
- 座机:020-82000787
- 传真:020-32887675
- 邮箱:gz@zr-robot.com
- 广州市番禺区东环街金山谷创意八街1号109
- 当前位置:首页 > 机器人保养 > ABB机器人安全区World Zone详解分享
ABB机器人安全区World Zone详解分享
1.WZBoxDef—定义一个箱体形状的World Zone
用途:
WZBoxDef(World Zone箱体定义)用来定义一个直立箱体形状的World Zone,该箱体的所有边都和World坐标系的坐标轴平行。
基本范例:
该指令的基本范例说明如下:
例1 VAR shapedata volume;
CONST pos corner1:=[200, 100, 100];
CONST pos corner2 :=[600, 400, 400];
WZBoxDef \Inside, volume, corner1, corner2;
定义一个直立的箱体,该箱体的所有边都和World坐标系的轴平行,机器人示教器维修,该箱体由两个对角点corner1和corner2定义。
项目:
WZBoxDef [\Inside] | [\Outside] Shape LowPoint HighPoint
[\Inside]:
数据类型:switch
定义箱体内部的体积
[\OutSide]:
数据类型:switch
定义箱体外部的体积(反体积)。
必须指定\Inside和\Outside两个项目中的一个。
Shape:
数据类型:shapedata
定义的体积的存储的变量(系统的私有(private)数据)。
LowPoint:
数据类型:pos
定义箱体的一个较低的角点的位置(x, y, z)以毫米为单位。
HighPoint:
数据类型:pos
定义箱体的另一个相对的角点的位置(x, y, z)以毫米为单位。
程序执行:
箱体的定义存储在shapedata类型(Shape项目)的变量中,用于将来在WZLimSup和WZDOSet指令中使用。
限制:
LowPoint和HighPoint的位置必须是有效的相对角点(x,y和z的坐标值都不相同)。如果用机器人来指出LowPoint和HighPoint,工作对象(wobj0)必须激活(在robtarget中使用trans组件,即p1.trans作为项目)。
语法:
WZBoxDef
[[‘\’Inside] | [‘\’Outside]’,’
[LowPoint’:=’]<pos类型的表达式(IN)>’,’
[Shape’:=’]<shapedata类型的变量(VAR)>’,’
[HighPoint’:=’]<pos类型的表达式(IN)>’;’
2.WZCylDef—定义一个圆柱形的World Zone
用途:
WZCylDef(World Zone圆柱定义)用来定义一个圆柱形状的World Zone,该圆柱的轴线平行于World坐标系的z轴。
基本范例:
该指令的基本范例说明如下:
例1
VAR shapedata volume;
CONST pos C2:= [300, 200, 200];
CONST num R2:= 100;
CONST num H2:=200;
…
WZCylDef \Inside, volume, C2, R2, H2;
定义一个圆柱,安川机器人维修,底面圆心为C2,半径R2,高度H2。
项目:
WZCylDef [\Inside] | [\Outside] Shape CenterPoint Radius Height
[\Inside]:
数据类型:switch
定义圆柱内部的体积。
[\Outside]:
数据类型:switch
定义圆柱外部的体积(反体积)。
必须指定两个项目\Inside和\Outside中的一个。
Shape:
数据类型:shapedata
用来存储定义的体积的变量(系统的私有(private)数据)。
CentrePoint:
数据类型:pos
定义圆柱的一个底面圆的圆心位置(x,y,z),单位是毫米。
Radius:(半径)
数据类型:num
圆柱的半径,单位是毫米。
Height:
数据类型:num
圆柱的高度,单位是毫米。如果是正的(+z方向),CentrePoint项目是圆柱较低底面的圆心(如以上例子)。Height如果是负的(-z方向),CentrePoint项目是圆柱上底面的圆心。
程序执行:
圆柱的定义存储在shapedata类型的变量中(项目Shape),将来在WZLimSup或者WZDOSet指令中使用。
限制:
如果用机器人指出CentrePoint,工作对象wobj0必须被激活(使用robtarget中的trans组件,即p1.trans作为项目。
语法:
WZCylDef
[‘\’Inside] | [‘\’Outside]’,’
[Shape’:=’]<shapedata类型的变量(VAR)>’,’
[CentrePoint’:=’]<pos类型的表达式(IN)>’,’
[Radius’:=’]<num类型的表达式(IN)>’,’
[Height’:=’]<num类型的表达式(IN)>’;’
1.1.WZDisable—解除临时World Zone监视
用途:
WZDisable(解除World Zone)用来解除对临时World Zone的监视,该监视原先用来停止运动或者设置一个输出。
基本范例:
该指令的基本范例说明如下:
例1VAR wztemporary wzone;
…
PROC …
WZLimSup \Temp, wzone, volume;
MoveL p_pick, v500, z40, tool1;
WZDisable wzone;
MoveL p_place, v200, z30, tool1;
ENDPROC
当移动到p_pick的时候,机器人TCP的位置被检测到,这样机器人将不能够进入指定的体积wzone内部。当移动到p_place的时候,该监视没有执行。
项目:
WZDisable WorldZone
WorldZone:
数据类型:wztemporary
Wztemporary类型的变量或者恒量,包含要解除的WorldZone的标识符。
程序执行:
临时WorldZone被解除。也就是说对机器人TCP在相应体积空间内的监视被临时停止。它可以通过WZEnable指令被再次激活。
限制:
只有临时WorldZone可以被解除。一个静态的WorldZone总是激活的。
语法:
WZDisable
[WorldZone’:=’]<wztemporaty类型的变量或者恒量(INOUT)>’;’
1.2.WZDOSet—激活WorldZone来设置数字输出
用途:
WZDOSet(WorldZone数字输出设置)用来定义动作并且激活一个WorldZone来监视机器人运动。
在该指令执行以后,当机器人的TCP或机器人/外部轴(关节中的区域)在定义的WorldZone内部或者接近WorldZone时,一个数字输出信号被设为一个特定的数值。
基本范例:
该指令的基本范例说明如下:
例1VAR wztemporary service;
PROC zone_output( )
VAR shapedata volume;
CONST pos p_service:= [500, 500, 700];
…
WZSphDef \Inside, volume, p_service, 50;
WZDOSet \Temp, service \Inside, volume, do_service, 1;
ENDPROC
在应用程序中定义临时WorldZone service,当机器人TCP在程序执行过程中或者点动过程中进入定义的球体时,设定信号do_service。
项目:
WZDOSet [\Temp] | [\Stat] WorldZone [\Inside] | [\Before] Shape Signal SetValue
[\Temp]:
临时的
数据类型:switch
要定义的WorldZone是一个临时的WorldZone。
[\Stat]:
静态的
数据类型:switch
要定义的WorldZone是一个静态的WorldZone。
必须指定[\Temp]和[\Stat]两个项目中的一个。
WorldZone:
数据类型:wztemporary或者wzstationary
可以根据WorldZone的特性(数字数值)进行更新的变量或者恒量。
如果使用可选项目\Temp,数据类型必须是wztemporary。如果使用了\Stat,数据类型必须是wzstationary。
[\Inside]:
数据类型:switch
当机器人的TCP或者某一个轴进入定义的体积空间内的时候,将设定数字输出信号。
[\Before]:
数据类型:switch
当机器人的TCP或者某一个轴进入定义的体积空间之前(马上就要进入空间),将设定数字输出信号。
两个项目[\Inside]和[\Before]必须选定一个。
Shape:
数据类型:shapedata
定义WorldZone空间的变量。
Signal:
数据类型:signaldo
将要改变的数字输出信号的名称。
如果使用了静态WorldZone,信号必须写保护,防止用户进入(RAPID,FP示教器)。在系统参数或者指定的轴上设定用户进入等级。
SetValue:
数据类型:dionum
当机器人TCP进入体积空间或者恰好在进入之前,期望的信号输出的数值(1或者0)。
在机器人TCP在外面或者正好在空间外面,信号输出为相反的数值。
程序执行:
定义的WorldZone被激活。从这时开始,机器人TCP位置(或者机器人/外部轴位置)将被监视,当机器人TCP位置(或者机器人/外部轴位置)在空间内(\Inside)或者接近空间的边界(\Before),ABB机器人保养,将被设置输出。
如果和WZDOSet同时使用了WZHomeJointDef或者WZLimJointDef指令,机器人示教器维修,只有在带空间监视的所有激活的轴即将进入或者已经进入关节空间时,才能够设置数字输出信号。
更多范例:
有关该指令如何使用的更多范例说明如下:
例1VAR wztemporary home;
VAR wztemporary service;
PERS wztemporary equip1:=[0];
PROC main( )
…
! 定义所有临时的WorldZone
Zone_output;
…
! equip1在机器人工作区域
WZEnable equip1;
…
! equip1在机器人工作区域之外
WZDisable equip1;
…
! 不再使用equip1
WZFree equip1;
…
ENDPROC
PROC zone_output( )
VAR shapedata volume;
CONST pos p_home:=[800, 0, 800];
CONST pos p_service:=[800, 800, 800];
CONST pos p_equip1:=[-800,-800, 0];
…
WZSphDef \Inside, volume, p_home, 50;
WZDOSet \Temp, home \Inside, volume, do_home, 1;
WZSphDef |Inside, volume, p_service, 50;
WZDOSet \Temp, service \Inside, volume, do_service, 1;
WZCylDef \Inside, volume, p_equip1, 300, 1000;
WZLimSup \Temp, equip1, volume;
! equip1不在机器人工作区域。
WZDisable equip1;
ENDPROC
在应用程序中定义临时WorldZone home和service, 当机器人在程序执行或者点动过程中分别进入球体home或者service时,这两个WorldZone用来设定信号do_home和do_service。