黑子船长的机器人
认证:普通会员
作者动态
KUKA机器人与西门子S7-1200 PLC同时进行Profinet和Ethernet IP通讯(第一篇)
03-13 11:48
西门子PLC 与 KUKA 机器人通过西门子偶合器进行Profinet通讯配置
03-12 15:56
FANUC机器人与西门子S7-1200 Ethernet/IP通讯
03-11 13:52
KUKA机器人之俄罗斯方块——工作游戏两不误
03-01 14:13
KUKA机器人和COGNEX In-Sight IS8XXX系列相机Profinet的通讯
02-29 10:35

KUKA机器人自定义类似ABB机器人的Offs偏移函数

KUKA机器人相对于四大家族其他机器人来说,使用起来有点不太友好,自带的函数和功能比较少,往往使用起来比较麻烦,但是KUKA机器人也有他的优势,那就是开放,你想怎么搞就怎么搞。

首先我们来看看ABB机器人的Offs函数是怎么样的?

官方手册定义如下:

实际示教器中的编程:

那么KUKA机器人也可以自定义一个Offs功能函数,具体如下:1、新建功能程序,命名为Offs;

2、Offs功能程序;

DEFFCT E6POS Offs(TargetPos:IN,RefPos:IN,nX:IN,nY:IN,nZ:IN)

DECL REAL nX,nY,nZ

DECL E6POS RefPos

DECL E6POS TargetPos

TargetPos=RefPos

TargetPos.X=RefPos.X+nX

TargetPos.Y=RefPos.Y+nY

TargetPos.Z=RefPos.Z+nZ

RETURN(TargetPos)  ;必须要有返回值,返回值为TargetPos。

ENDFCT

概念认知:参数传递DEFFCT E6POS Offs(TargetPos:IN,RefPos:IN,nX:IN,nY:IN,nZ:IN)

我们在定义功能时,Offs为功能的名称,括号里面的参数(TargetPos、RefPos、nX、nY、nZ)可以理解为形参,实际使用时需要实参进行代入,当然这些形参必须要在功能内部进行数据类型的声明后才能使用。

在示教器中通过动作指令添加的位置点,数据类型都是E6POS,所以TargetPos为目标点,RefPos为参考点,数据类型均为E6POS。

上面的IN是参数传递的方式,有以下两种:1)可通过两种方法将参数传递给子程序。

  • 作为 IN 参数
  • 作为 OUT 参数

2)既可将参数传给局部的子程序,也可传给全局子程序。3)作为 IN 参数的参数传递(Call by value):变量值在主程序中保持不变,即变量以主程序原来的值继续工作,子程序只能读取变量值,但不能写入;4)作为 OUT 参数的参数传递(Call by reference):变量值会在主程序中同时更改,即变量应用子程序的值,子程序读取并更改该值,然后返回新的值。3、功能程序的使用:

XP2为目标点,XP1为参考点,nX、nY、nZ为XYZ方向的实际偏移值(实参),P2点在P1点的基础上XYZ偏移距离为100.0、-100.0、50.0。

4、运行结果如下:

声明:本内容为作者独立观点,不代表电子星球立场。未经允许不得转载。授权事宜与稿件投诉,请联系:editor@netbroad.com
觉得内容不错的朋友,别忘了一键三连哦!
赞 1
收藏 2
关注 13
成为作者 赚取收益
全部留言
0/200
成为第一个和作者交流的人吧