您好!欢迎光临工博士商城

发那科焊接机器人专营

产品:35    
联系我们
您当前的位置:首页 » 新闻中心 » FANUC工业机器人运行时程序设计
产品分类
新闻中心
FANUC工业机器人运行时程序设计
发布时间:2020-05-18        浏览次数:429        返回列表
 在本文中,运行时编程被理解为在外部控制器上为机器人控制器(以下简称机器人”)创建可执行程序的过程。在这种情况下,机器人通过向其发送*小的可执行命令或批处理命令来迭代执行程序。换句话说,在运行时编程中,可执行程序被部分发送给机器人,因此机器人没有预先拥有、存储或知道整个可执行程序。这种方法允许创建一个抽象的参数化可执行程序,该程序是由外部设备动态生成的,即在运行期间。

下面是运行时编程的描述和实际示例。

通常,机器人的程序是机器人机械手的一系列位置。每个位置的特点是TCP(Tool Center Point)位置,工具**的点安装在机械手上(默认情况下,TCP位于机器人法兰的中心,见下图,但其位置可以调整,通常是TCP与工具**安装在机器人的机械手上)。因此,在编程时,经常会指定TCP在空间中的位置,由机器人自行决定机械手关节的位置。在本文中,我们将使用术语“TCP位置,换句话说,机器人将到达的点。

发那科机器人

机器人的程序还可以包含控制逻辑(分支、循环)、简单的数学操作和控制外围设备的命令--模拟和数字输入/输出。在建议的运行时编程方法中,使用标准PC作为外部控制器,它可以使用强大的软件来确保必要的抽象级别(OOP和其他范例),以及确保开发复杂逻辑(高级编程语言)的速度和易用性的工具。机器人本身只需处理对响应率至关重要的逻辑,执行时需要工业控制器的可靠性,例如,对紧急情况作出迅速和充分的反应。与机器人连接的外围设备的控制只是由PC上的机器人代理,允许PC激活或关闭机器人上的相应信号;这类似于控制Arduino

发那科机器人

 

如前所述,运行时编程允许将程序分部分发送给机器人。通常,一组输出信号和几个点,甚至只有一个点被发送。因此,机器人所执行的TCP运动轨迹可以动态构建,其部分部件可能属于不同的工艺过程,甚至属于不同的机器人(连接到同一外部控制器),其中一组机器人工作。

例如,机器人移动到一个工作区域,执行所需的操作,然后--到下一个,再到另一个,然后返回到**个,等等。在不同的工作区域,机器人执行不同工艺过程所需的操作,在外部控制器上以并行线程执行程序,将机器人分配给不需要机器人经常出现的不同过程。这种机制类似于OS将处理器时间(执行资源)分配给不同线程的方式,同时,在整个程序执行期间,不同的执行器并不链接到线程。

再多一点理论,我们就开始实践。

描述现有的工业机器人编程方法。

不考虑本文介绍的运行时编程方法,工业机器人的编程方法通常有两种。离线和在线编程。

过程在线编程与程序员和机器人在使用位置的直接交互发生。使用遥控器,或通过物理运动,安装在机器人法兰上的工具(TCP)被移动到所需的点。

这种编程方法的优点是易于实现机器人编程。一个人不需要知道任何关于编程的知识,只需说明机器人位置的顺序就足够了。

这种方法的一个重要缺点是,当程序被增加到至少几十个点(更不用说数千点)时,或者当它(程序)随后被修改时,时间消耗会显著增加。此外,在这样的学习过程中,机器人不能用于工作。

过程离线编程顾名思义,发生在机器人及其控制器之外。可执行程序是在PC机上的任何编程环境中开发的,然后完全加载到机器人中。然而,用于这种开发的编程工具并不包括在机器人的基本交付集中,而是需要单独购买的额外选项,而且总体上是昂贵的。

离线编程的优点是机器人可以用于生产和工作,而该程序正在开发中。机器人只需要调试现成的程序。没有必要去自动化对象和程序的机器人亲自。

现有的离线编程环境的一个很大的缺点是它们的成本很高。另外,动态地将可执行程序分发给不同的机器人是不可能的。

例如,让我们考虑在运行时模式下创建一个机器人程序,它允许使用标记编写广告的过程。

为了让机器人写这篇文章,有必要向机器人发送1700多个点。

作为一个例子,扰流板包含了程序的屏幕截图,从机器人的遥控器中画出一个正方形。它只有5个点(4-8);实际上,每个点都是一个完整的表达式,并取了一行。机械手穿过这四个点中的每一个点,并在完成后返回到起点。

带有可执行程序的远程控制的屏幕截图:
那么,让我们继续讨论解决方案

我们有一个FANUC LR Mate 200 iD机器人,带有R-30iB系列机柜控制器。机器人的标志端有一个预先配置好的TCP和桌面坐标系,因此可以直接发送坐标,而不必担心将坐标从表的坐标系转换为机器人的坐标系。

为了实现将坐标发送给机器人的程序,该程序将计算每个点的**值,我们将使用支持该机器人的RCML编程语言,这一点很重要,任何人都可以自由使用。

让我们用点来描述每个字母,但是在框架内的相对坐标中,字母将被刻在其中,而不是在真实的空间坐标中。每个字母将由一个单独的函数绘制,接收字符的序号、行号和字母大小作为输入参数,并向机器人发送一组点,计算出每个点的**坐标。

要写一篇文章,我们必须调用一系列的函数,这些函数将按照字母(字母)在文本中出现的顺序绘制字母。RCML有一组用于处理字符串的工具,因此我们将编写一个外部Python脚本,它将在RCML中生成一个程序--本质上,只生成对应于字母序列的函数调用序列。

整个代码可在存储库中获得:RCT油漆字

让我们更详细地考虑输出文件,执行从函数main()开始:

 

剧透者:让我们考虑一下画一封信的代码,例如字母A

函数机器人_FANUC::SUP_A(x_celly_cell){

//将标记设置为点,字母框内点的坐标沿X方向为5%,沿Y方向为95%

机器人->设置点(x_celly_cell595)

//画一条线

机器人->移动点(x_celly_cell505)

//绘制第二行

机器人->移动点(x_celly_cell9595)

//我们得到屋顶”/\

 

//移动从表中抬起的标记以绘制交叉线

机器人->设置点(x_celly_cell3550)

//画十字线

机器人->移动点(x_celly_cell6550)

//将标记从表中移到下一个字母

机器人->标记_up()

}

扰流板末端

 

扰流板:移动标记的功能,无论是否解除,也非常简单:

//将提升的标记移动到点,或设置开始绘图的点

函数机器人_FANUC::SetPoint(x_celly_cellx_%y_preent){

//计算**坐标

x=计算_**值_协弦_x(x_单元,x_百分比)y=计算_**__y(y_单元,y_百分比)

 

机器人->mark_up()//从表中提升标记

机器人->标记移动(xy)//移动

机器人->mark_down()//将标记降到表中

 

//将标记移动到点而不提升,或实际绘制

函数机器人FANUC:移动点(x_celly_cellx_%y_preent){x=计算_**值_协弦_x(x_cellx_%)

//这里一切都很清楚,
机器人->标记移动(xy)

}

扰流板末端

 

扰流板:函数标记_up、标记_down、标记_MOVE只包含将更改后的TCP点坐标(ZXY)发送给机器人的代码。

函数机器人_FANUC::mark_up(){

机器人->SET_REARY_di(“z”Safe_Z)

ER=机器人->sendMoveSignal()

如果(er=0){

system.echo(“错误标记向上\n”)

掷呃;

}

}

 

函数机器人_FANUC::mark_down(){

机器人->SET_REARY_di(“z”Start_Z)

ER=机器人->sendMoveSignal()

如果(er=0){

system.echo(“错误标记向下\n”)

掷呃;

}

}

 

函数机器人_FANUC::MARMER_MOVE(xy){

机器人->SET_REARY_di(“x”x)

机器人->SET_REARY_di(“y”y)

ER=机器人->sendMoveSignal()

如果(er=0){

system.echo(“错误标记移动\n”)

掷呃;

}

}

扰流板末端

 

所有的配置常量,包括字母的大小,它们在行中的编号等等,都放在一个单独的文件中。

扰流板:配置文件

定义CHAR_HERH_MM 50//字符高度(以毫米为单位)

以高度百分比定义字符宽度60//字符宽度

 

定义安全Z-20//标记**沿z轴的安全位置

定义开始_z0//标记**沿z轴的工作位置

 

//工作区边界

定义边框Y 120

定义边框X_75

 

//开关信号

定义1

定义OFF 0

 

//暂停发送某些信号,毫秒

定义信号暂停MILISEC 50

定义_OFF_MILLISEC 200

 

初始标记位置的//欧拉角

定义Start_W-179.707//Rolle

定义Start_P-2.500/螺距

定义Start_R 103.269//

 

//欧拉转角

定义第二W-179.704

定义第二个P-2.514

定义第二R-14.699

 

定义字符之间的CHAR_偏移量_MM 4//间距

 

定义UFRAME 4//表号

定义UTOOL 2//工具号

定义有效载荷4//负载号

定义速度100//速度

定义CNT 0//运动平滑参数

依次定义转速//速度

定义HOME_PNS 4//家庭职位返回的PNS程序数

扰流板末端

总共,我们有大约300行高级代码,开发和编写不超过1小时。

如果问题是以直截了当的方式通过使用点数进行在线编程来解决的,那么就需要超过9个小时(每点大约20-25秒,因为有1700点以上)。在这种情况下,开发商所遭受的痛苦是无法想象的:)尤其是当他发现他忘记了字母被刻在的框架之间的凹痕,或者字母的高度不对,而且文字不合适的时候。

结论:

使用运行时编程是创建可执行软件的方法之一。这种方法的优点包括:

在不需要停止机器人的情况下编写和调试程序的可能性,从而*小化了切换的停机时间。

一个参数化的可执行程序,很容易编辑。

动态激活和失活机器人在主动技术任务中,以及各厂商机器人的合作。

因此,通过使用运行时编程,可以以一种方式描述可执行命令,以便使工作组内的任何机器人都能执行它,或者可以为特定的机器人编写可执行命令,该机器人将是**执行该命令的机器人。


更多请点击咨询:发那科机器人
 


分享到: 


 

联系热线:18621383608   联系人:陈诗洁 联系地址:上海市嘉定区南翔镇众仁路399号B栋20层2007-2012

技术和报价服务:星期一至星期六8:00-22:00 发那科焊接机器人专营