在本篇文章中我们提出了6个与数据类型有关的问题,在这我们将揭晓前三个问题的答案,并详细介绍与之相关的数据类型。

(1)为什么两条MoveL指令语句,使用相同的速度数据,走同样距离的轨迹,所花的时间却不相同呢?

abb机器人程序数据共多少个(探索ABB机器人数据类型的秘密)(1)


在以上指令语句中决定了机器人运动速度的是“v1000”,它是机器人控制系统预定义的一个速度数据(speeddata)。speeddata数据类型,含有4个组件成分,它们分别是:
1)v_tcp(工具中心点的运动速率,单位为mm/s);
2)v_ori(工具姿态变化的速度,单位为°/s);
3)v_leax(线性运动外轴的速度mm/s);
4)v_reax(旋转运动外轴的速度,单位为°/s);
当机器人从当前位置运动到运动指令目标点位置的时候,可能同时包含TCP位置的变化、工具姿态的变化、线性外轴位置的变化、旋转外轴角度的变化中的一种或多种,当涉及多种变化时,哪一种变化所需的时间最长,它就决定了执行运动指令语句最终所需花费的时间。
“v1000”是一个speeddata型数据,它规定了4个速度,那“v1000”中的“1000”指的是哪一个速度呢?其它三个速度又是多少呢?

“1000”指的是v_tcp,ABB机器人控制系统中预定义的speeddata数据都是以“v v_tcp组件的值"来命名的。ABB机器人控制系统的预定义数据可以在程序数据页面进行查看,将数据查看范围改为【仅限内置数据】,然后选择需要查看的数据类型即可查看到内置数据的值。

abb机器人程序数据共多少个(探索ABB机器人数据类型的秘密)(2)


abb机器人程序数据共多少个(探索ABB机器人数据类型的秘密)(3)


(2)为什么在MoveL指令语句之的setdo指令在手动单步调试运行时能够在准确的时机输出DO信号,而在自动模式运行时却不能在准确的时机执行呢?

abb机器人程序数据共多少个(探索ABB机器人数据类型的秘密)(4)


ABB工业机器人的初学者基本上都碰到过这个问题,它是由于在在I/O指令之前的一条运动指令语句中没有使用区域数据(zonedata)fine,导致I/O指令被提前预读所导致的。
zonedata数据类型适用于规定TCP在朝下条运动指令目标点移动前应当如何逼近当前一条运动指令的目标点。在有的品牌的工业机器人控制系统中,它被称作逼近等级数据。zonedata数据由7个组件组成,它们分别是:
1)finep 是否是停止点,该组件是一个bool型数据,值仅能为:True或者false。当值为True时,表示运动指令语句的目标点为停止点,此时TCP会精确逼近运动指令的目标点位,同时还能阻止随后的指令语句被预读。该组件值为fales时,则需根据后续6个组件的值来确定TCP对于运动指令目标点的逼近程度。

abb机器人程序数据共多少个(探索ABB机器人数据类型的秘密)(5)


2)pzone_tcp TCP区域的半径,单位为mm,该组件值决定了机器人运动轨迹圆角拐点的位置。对于系统预定义的zonedata数据,就是以“z pzone_tcp组件的值"来命名的。
3)pzone_ori工具重新调整姿态区域的半径,单位为mm,该组件值决定了机器人该在运动轨迹中的什么位置开始向下一个目标点位的姿态进行调整。
4)pzone_eax 外轴区域半径,单位为mm,该组件值决定了机器人该在运动轨迹中的什么位置开始向下一个目标点位的外轴位置移动,如果机器人系统没有外轴,则该组件值无效。
5)zone_ori 工具重新定位区域,单位为度,在TCP姿态无变化或存在大幅度变化时,pzone_ori组件值无效,该组件值生效。
6)zone_leax 线性外轴区域半径,单位为mm,在TCP姿态无变化或存在大幅度变化时,pzone_eax组件值无效,该组件值生效。
7)zone_reax 旋转外轴区域角度,单位为度,在TCP姿态无变化或存在大幅度变化时,pzone_eax组件值无效,该组件值生效。

技术参考手册《RAPID指令、函数和数据类型》中给出了一个很好的说明示例:

abb机器人程序数据共多少个(探索ABB机器人数据类型的秘密)(6)



区域数据在Robotstudio中是可以直观显示的,首先将示教器中运动轨迹程序同步到Robotstudio虚拟工作站中,然后在Robotstudio软件的【路径和目标点】树状栏中选中同步过来的轨迹,右击弹出快捷菜单,依次选择【查看】-【显示各区域】即可直观显示出zonedata数据的pzone_tcp组件所描述的TCP转弯半径区域。

abb机器人程序数据共多少个(探索ABB机器人数据类型的秘密)(7)


abb机器人程序数据共多少个(探索ABB机器人数据类型的秘密)(8)



(3)为什么有的时候执行MoveL指令,会提示“轴配置错误”,轴配置是什么意思呢?

abb机器人程序数据共多少个(探索ABB机器人数据类型的秘密)(9)


轴配置错误是指机器人TCP不能以指定的轴配置方案到达运动指令的目标点,或者轴配置监督被触发。这里提到的轴配置方案和目标点等信息,都是存储在位置数据(robtarget)中的。robotarget数据类型由trans、rot、robconf、extax四个组件构成的。其中trans组件记录的是机器人TCP运动到目标点位时在参考坐标系中的坐标值,rot组件记录的是机器人运动到目标点位时工具所具有的姿态,robconf组件记录的是机器人的轴配置方案,extax组件记录的是机器人运动到目标点位时外轴的数据。

第3个问题中提及的“轴配置错误”主要是与robtarget数据的robconf组件有关。robtarget属于复合数据,它的每个组件又是一个数据类型,其中robconf组件的数据类型是confdata(轴配置数据)。想要了解解什么是“轴配置”,就要了解confdata数据类型。

confdata数据类型是用于描述机器人轴配置的数据类型,它由4个组件构成,它们分别是cf1、cf4、cf6、cfx。下面我们以六轴串联无平行杆型机器人为例,介绍各个组件的作用:

cf1 用于描述机器人轴1所处的象限。象限0为从零位开始正向旋转的第一个四分之一圈,即0° 到90°;象限1为第二个四分之一圈,即90°到180°,以此类推。象限-1 为0°到(-90°)的四分之一圈,以此类推。

abb机器人程序数据共多少个(探索ABB机器人数据类型的秘密)(10)


2)cf4 用于描述机器人轴4所处的象限。3)cf6 用于描述机器人轴6所处的象限。

4)cfx 用于描述机器人腕中心相对于轴1的轴线位置关系、腕中心相对于下臂轴线的位置关系以及轴5的关节角度。换而言之cfx组件描述了机器人姿态与腕奇异点、臂奇异点、附加奇异点的相对位置关系,它的取值范围是0-7

abb机器人程序数据共多少个(探索ABB机器人数据类型的秘密)(11)


腕中心是指,轴4、轴5、轴6三个轴线的交汇点。下臂轴线是指轴2、轴3旋转中心点的连线。对于6轴串联机器人配置监督将检查第1、4和6轴是否不会移动180度以上,且该有序移动无需更改cfx。当机器人往目标点移动的过程中,如果触犯轴配置监督条件,机器人控制系统将发出轴配置错误的报警。

abb机器人程序数据共多少个(探索ABB机器人数据类型的秘密)(12)


在文章的最后,给大家留一道思考题。对于下图中机器人所示姿态,cfx的值应该是多少?


abb机器人程序数据共多少个(探索ABB机器人数据类型的秘密)(13)


欢迎大家写下该道思考题的答案,以便让作者了解到是否有给大家讲清楚什么叫做轴配置。您的答案,决定了本专题下一篇文章的内容!


欢迎大家在公众号留言,写下该道思考题的答案,以便让作者了解到是否有给大家讲清楚什么叫做轴配置。您的答案,决定了本专题下一篇文章的内容!

,