KEBA机器人控制器简介

KEBA机器人控制器简介_第1张图片
   KEBA (中文名:科控)是一家提供自动控制产品和服务的公司,总部在奥地利(和贝加莱是老乡)。KEBA 成立于1968年,在中国设有分公司,其员工总数不到1000人,2015年营业收入达到1.89亿欧元。公司不大,产品却不俗,在工业、银行、能源等很多行业都有应用。

  看到工业机器人市场这块蛋糕,KEBA 也推出了面向机器人自动化应用的产品 —— KeMotion [ 1 ] ^{[1]} [1],号称是机器人与机械设备自动化的全套解决方案 。其实,KeMotion 就是一个机器人控制系统。KeMotion在中国应用非常广泛,很多机器人厂商均有使用KEBA的控制器,例如埃夫特、埃斯顿等,其它不太知名的小厂家就更多了。即便如此有名,笔者想在公网上找一些KEBA控制器的资料却几乎找不到,看来工业机器人控制这个小圈子太封闭了,笔者试图搅动这潭死水。让人意外的一点是, KEBA 虽然研发机器人控制器,但自己却并不制造机器人,这是否说明本体的利润远远比不上控制器呢?而且像控制器这样的核心被抓在别人手里,机器人厂家想必也是不甘心吧。
  本文我们就来看看KEBA的控制器有什么特色。KeMotion 既然是一个系统,它就包含一系列的软件、硬件、标准、语言等等,我总结了一下,如下表所示:

● KeSystems ● KeStudio
● KeControl ● KAIRO
● KeTop ● KAIROEdit
● KeConnect ● TeachView
● KeDrive ● TeachEdit
● KeSafe ● ViewEdit
● KeView ● TeachTalk

  看着一大堆没见过的英文,不知道国内英语不好的同志怎么想,反正我是是想死的心都有了。KEBA 的工程师为了把用户搞晕也是做出了不懈的努力,下面我逐个介绍。首先是看得见摸得着的硬件部分:

控制器 KeControl

  KeControl 是控制器,更准确的说是控制器的 CPU 模块,有CP、DU等几种型号。下图中我手里拿着的型号是 CP263/X(左图),它比 A4 纸瘦长一点,从正面看外表由一段段塑料片组成。你可以把 KeControl 看成是一个功能齐全的小电脑(PC —— Personal Computer),它内部有中央处理器、内存和硬盘(由CF卡充当),而且运行着 VxWorks 操作系统。KeControl 虽然是一个 PC,但是却采用了 PLC 的术语,把(我手中的)整个盒子称为 “ CPU 模块”。

KEBA机器人控制器简介_第2张图片 KEBA机器人控制器简介_第3张图片
   我们可以和贝加莱的机器人控制器产品 Automation PC 比较一下,如下图所示的 PC 2100 型号。贝加莱的控制器更小巧,而且外观采用了醒目的橘黄色。
KEBA机器人控制器简介_第4张图片  KEBA机器人控制器简介_第5张图片
   固高是我们国家有代表性的机器人控制器生产商,下图是其 GUC 系列。我们国家的工业设计和国外比还是逊色不少啊!
KEBA机器人控制器简介_第6张图片
   CPU 模块可以说是整个 KeMotion 系统的核心了,所有的控制程序都在它上面运行。这么重要的 CPU 模块到底采用了什么样的中央处理器呢?我展示的这款采用了 1.6 GHz 的 Intel ATOM,并搭配 1 GB DDR3 内存,这配置可能还比不上你的家用电脑(价格却可能贵几倍,要万把块钱。这额外的钞票是为可靠性付出的代价。你能想象机器人工作时突然因为控制器死机而歇菜或者失控吗?这给工厂带来的损失可不是几万块钱能弥补的)。

  CPU 模块所有的接口都在前面,我这款有:2个USB接口、3个以太网口(EtherNet)、一个CAN口、一个VGA口,还有一个24V的电源口用来给控制器供电。如果接口不够用怎么办?KEBA 提供扩展接口模块。右图所示的是 DM 272/A ,它是最常用的数字I/O扩展接口,有8个输入和8个输出接口。DM 272/A 可以直接插在 CPU 模块的右侧,如果还不够用可以继续添加其它模块。KeControl 的顶部开满散热孔,如下图。透过这些孔,还能隐约看到里面有个小风扇。

KEBA机器人控制器简介_第7张图片

  不同型号的 KeControl,其接口和功能都有微小差别,见下图(打对号的表示有该功能,叉号表示没有) [ 1 ] ^{[1]} [1]

KEBA机器人控制器简介_第8张图片
   KeMotion 系统都支持哪些类型的机器人呢,见下图。可见,KEBA支持的机器人类型是相当齐全。   
KEBA机器人控制器简介_第9张图片 KEBA机器人控制器简介_第10张图片

驱动器 KeDrive

  从机械角度看,机器人就是一堆电机加连杆。控制器不能直接控制电机,控制器要通过伺服驱动器才能驱动电机。聪明的 KEBA 不只卖控制器,它还打包连驱动器一起卖,提供全套解决方案。下图红框中的就是 KeDrive 驱动器。红框外的是和 KeDrive 配套使用的控制器(型号是DU,可选配 Intel Core i3 处理器 [ 2 ] ^{[2]} [2])。这样一体化的设计更节省空间。

KEBA机器人控制器简介_第11张图片
   当然,用户也可以选用其它厂家的驱动器,KeMotion 目前支持的驱动器厂家见下表,最多支持控制64个轴。如果你的驱动器不在支持列表中,需要联系 KEBA 的售后,店大欺客,这也是不方便的地方。
KEBA机器人控制器简介_第12张图片

示教器 KeTop

  KeTop 有 T10、T20、T55、T70 等多个型号。以常用的 T70 为例(如下图,设计的真漂亮,欧洲不愧是经历了文艺复兴的地方),它相当于一个平板电脑,采用了ARM Cortex A9 处理器,运行Windows CE 操作系统。用户可以在上面编写机器人的操作程序,设置机器人的示教参数。KeTop 如何与 CPU 模块相连呢?就是普通的网线,这时它们组成了一个局域网,各自有自己的 IP 地址。

KEBA机器人控制器简介_第13张图片

显示面板 KeView

  KeView 就不细说了,它就是用来监控显示机器人运行状况的各种液晶显示器 ,这个国内用的不是很多。
  
安全软件包 KeSafe

  KeSafe 是针对人机协作设计的安全防护软件。

KEBA机器人控制器简介_第14张图片

编程软件部分

  小气的 KEBA 不肯公开自己的软件,除非你购买它的产品。购买控制器后,在附送的光盘 Kemro Automation 中有开发软件安装程序(Installation)和帮助文档(Documentation),如下图。在安装界面,用户可以安装 KeStudio U3 和 ViewEdit 这两个软件,如果想进行专家级编程,也就是二次开发,可以点击 Expert Installation 安装其它软件。

KEBA机器人控制器简介_第15张图片 KEBA机器人控制器简介_第16张图片 KEBA机器人控制器简介_第17张图片

  KEBA 的帮助文档写的还是挺详细的。点击 Documentation 可以看它提供的各种帮助文档,见下图(先点击左侧的KeMotion,再点击右侧想看主题的 pdf 图标即可看到帮助文档。部分文档我上传到了网盘,点击此处下载)。

KEBA机器人控制器简介_第18张图片

KeStudio:PLC程序开发软件

  为了控制 KeControl 硬件,我们需要编写控制程序,而 KeStudio 就是用来写代码和调试的开发软件,其界面见下图。我打开了一个软件自带的模板,界面右侧显示的是程序代码。没有用过 PLC 的人可能会觉得陌生,这其实是 PLC 编程语言的风格(一堆大写的IF THEN语句)。用过 Visual Studio 编写 C++ 程序的同志会发现这开发环境的易用性比 VS 差远了。

KEBA机器人控制器简介_第19张图片
   KeStudio 是在 CoDeSys 的基础上设计的开发软件。  

  CoDeSys是什么?  CoDeSys 也是一款控制程序开发软件,它上面集成了运动控制、逻辑控制、总线通讯等功能,不过它更像是一只“母鸡”—— 是专门孵化“控制器软件”的软件,这从它的名字就能看出来:Controller Development System。CoDeSys 在 PLC 中的地位就像手机操作系统里的 Android 系统。假如你想做一个机器人控制系统,如果只是用来研究或者玩玩,那相对简单,可是如果做成可靠的产品,那就要考虑很多东西了:向上要考虑工人操作,所以得有人机交互界面;向下要控制伺服,现在的伺服都是总线通讯,所以要实现通讯协议,此外还要考虑实时操作系统,如果从零开始开发周期会很漫长。由于 CoDeSys 完善的功能、开放的设计,同时也为了节约时间和成本,好多厂家都选择在 CoDeSys 平台上搭建自己的开发平台,例如固高的 OtoStudio、倍福的 TwinCAT。CoDeSys 的缺点是付费 —— 你需要购买使用许可(10万元以上),真是一只下金蛋的母鸡啊!

  难怪 KeStudio 和 CoDeSys 长的那么像,而且使用习惯也类似。点击左侧栏中的 Resources 标签后可以看到 KEBA 为了实现机器人控制提供的一些功能资源,其中比较重要的是一些实现运动控制功能的库文件,我们点击 Library Manager 就能看到 KEBA 都提供了哪些库,点击库的名字可以看到库中包含了哪些具体的功能,比如我们点击 Rc.lib(Robot Control 机器人控制库)后可以看到它里面根据功能的不同进行了分类,进一步点击进去后可以看到以模块的形式表示的功能(这又是PLC的特征)。这些库文件存储在 C:\Kemro\KeStudio V2.3\Targets\KeMotion_CP24xCP25x_02.66\lib 目录下,如果用记事本打开后缀名为 lib 的库文件你会发现显示为乱码(只有 McCustomDrive.lib 例外)。这说明 KEBA 不想让别人知道它控制的实现细节,毕竟这可是吃饭的家伙。

KEBA机器人控制器简介_第20张图片
   KeStudio 支持哪些编程语言呢?国际标准 IEC61131-3 规定的几种 PLC 语言都可以使用,例如梯形图、ST语言。很遗憾,C++、Matlab 暂时不支持。

为了结束 PLC 厂商各自为战、代码移植性差、互不兼容的混乱局面,国际组织 PLCopen 制定了 IEC-61131 标准,而其中的第三部分IEC 61131-3规定了5种 PLC 编程语言的规范和标准术语。值得一提的是,IEC 61131-3 是世界上第一个,也是迄今为止唯一的工业控制系统的编程标准。

  人们设计PLC最初是用来替代繁琐死板的继电器电路的,它们主要用在针对开关量的逻辑控制上,例如打开、关闭阀门、按键互锁等等。为了让缺少编程训练(蠢笨)的现场工程师更容易地使用PLC ,PLC的编程语言故意被设计为简单形象、通俗易懂的图形或文本形式,而且不会涉及复杂的数据结构。排名最靠前的PLC语言——梯形图,连编程语言排行榜前30名都进不了。
  熟悉机器人开发的同志都知道,机器人控制中可能会用到很多复杂的数值/矩阵计算(比如高级的识别算法、运动控制算法、多轴插补、轨迹规划、逆运动学、甚至动力学),牵扯到复杂的流程和高级的数据结构。虽然PLC语言在工业控制领域很流行,但机器人控制器厂家为什么要舍弃强大的 C\C++ 等高级语言,而采用PLC语言这类面向逻辑控制、并不高端的语言编写机器人的控制程序呢?
  我个人认为有几个原因:
  1. 应用层面的编程不同于开发层面的编程,应用层编程相对简单。它的母亲 —— CoDeSys,使用了 PLC 语言,而且 CoDeSys 提供了 SoftMotion 运动控制软件包,为 KEBA 省去了从零开始编程的麻烦;
  2. 现在工业使用的机器人还很蠢,自己只能完成简单固定的工作,而且用于制造过程时通常需要搭配一些其它的机械,比如传送带。这些外部机械的协同控制就要靠 PLC 了。KeControl 控制器中并没有任何的硬件 PLC,而是用纯软件实现硬件 PLC的功能,这就是现在流行的“软PLC”技术;
  3. 虽然 KEBA 号称自己是开放的系统,但“开放”非“开源”。为了盈利,KEBA不可能将所有代码都开源给用户。用户只需要会配置和使用控制器的上层操作功能,至于底层的实现细节,对不起是不会开放给用户的。用户既然不能修改底层的程序,那么高级的编程语言自然也就用不到了。
  4. PLC 编程语言号称是“工业控制”的语言,经过这么多年的积累,已经形成了庞大的 PLC 代码资源。就像这篇文章 打破PLC、机器人和运动控制之间的界限 中说的——“机器人使用的编程语言往往过于复杂和专业,门槛太高,难以向大多数人群推广”。难怪很多的控制器都用PLC语言进行程序的编写,例如:倍福的 TwinCAT、3S的 CoDeSys、固高的 OtoStudio、贝加莱的 Automation Studio,其它的厂家例如菲尼克斯、博世力士乐、WAGO、EPEC、IFM也是如此,甚至就连大名鼎鼎的移动机器人的控制器厂家 NDC 也支持标准 PLC 编程语言。大家都选择与国际标准 IEC-611313 保持一致,这绝不是巧合,有兴趣的同志可以仔细研究研究这个标准。

KEBA机器人控制器简介_第21张图片
软 PLC 家族
   KeStudio 安装在哪里呢?既然 KeControl 控制器本身就是一个功能完备的计算机,那么我们是不是将 KeStudio 安装在控制器上呢?最好不要。KeControl 控制器上运行的 VxWorks 是一款实时操作系统,而之所以不采用 Windows XP/7、Linux 这样的操作系统是因为它们都不是实时操作系统。机器,尤其是精密运动机器(比如机器人、数控机床),对实时性的要求一般较高。而像 Windows 7 这样的系统是为人设计的,它们注重每个程序执行的公平性。人对实时性的要求并不高,电脑上的程序反应偶尔慢个几十毫秒又不会死人,你甚至根本感觉不到,可是机器如果慢个几毫秒性能可就大打折扣,例如精密机床实时性不好导致着加工精度达不到要求,加工出来的零件就是废品;或者危险情况下按下急停按钮,机器人却没有及时响应从而导致严重事故。实时性在某些领域是至关重要的,如工业控制、航空航天等。

  什么是“实时性”?接触机器人控制或者机床的同志会经常听到这个词,“实时性”就是在确定的时间范围内响应某个事件的特性。机器人为什么要实时性呢?控制机器人运动的程序一般是周期性的(例如插补、求逆解),也就是循环执行,每一次循环必须要在规定的时间内完成,否则会影响机器人的性能(例如精度);还有机器人必须对突发情况作出及时的响应,否则可能危机人身和设备安全。也就是说,控制器不仅要完成工作,还必须在规定的时间内完成。不能把实时性好简单理解为计算速度快,人们当然希望机器人控制处理速度越快越好,可是快也要建立在稳定的基础上,不能一会快一会慢。记住,实时性意味着确定性,即每次花的时间总是在一个确定的范围内。至于这个时间范围是多少则取决于具体的场景要求,例如有些场景要求1ms,有些要求10ms。

  像 KeStudio 开发环境这样给人使用、对实时性要求不高的程序没有必要放到实时操作系统上。因此,你需要一台额外的带网卡的计算机(台式机或笔记本),将KeStudio 安装到这台计算机上,计算机通过网线连接到 KeControl 控制器上。用户在 KeStudio 上完成程序的编写并且编译调试无误后即可下载到 KeControl 控制器中。用户编写的程序一旦下载到 KeControl 中,就会被当做一个应用程序,在 VxWorks 操作系统上自动运行。KeStudio相当于一个IDE,用来设计程序,程序设计编写好后就会转到一个叫做Runtime的系统中运行,这个Runtime一般你是接触不到的,它存在于控制器里。
  一个 KeMotion 控制系统可以实现 PLC 逻辑控制、多电机同步控制和机器人的运动控制。为了进一步搞晕用户,让用户更死心塌地的崇拜 KEBA 的工程师,KEBA又将系统分为 RC 和 PLC 两部分,如下图。你可以认为在 KeStudio 中编写的 PLC 程序是整个系统的主程序,机器人运动程序是作为子程序被调用的。PLC 系统中的 RC Interface 就是用来与机器人运动程序通信的。

KEBA机器人控制器简介_第22张图片 KEBA机器人控制器简介_第23张图片
KAIRO:机器人操作编程语言

  KEBA 可能嫌五花八门的机器人编程语言还不够丰富,于是又提出了 KAIRO 语言(机器人操作编程语言应该像 PLC 一样也出台一个国际标准,不然的话每个机器人厂家都可以不要脸地定义自己的编程语言,给客户增加学习的成本)。 KAIRO 是面向机器人操作用户(End User)的编程语言,类似于 ABB 的 RAPID 语言(说白了就是给现场的操作工人用的,而不是给工程师拿来开发高级算法的)。在帮助文档 [ 3 ] {[3]} [3]中是这样介绍 KAIRO 的:

KAIRO is a programming language designed for machine operators to implement user programs. The language has been kept simple deliberately to make programming machine sequences easy —— without the necessity of a fundamental software engineering education.

  KAIRO的部分指令如下表 [ 3 ] ^{[3]} [3]所示。定义一门机器人编程语言没有什么太难的,这属于上层的编程,一个硕士生就可以做到。因为KAIRO主要是用来控制机器人运动的,我们仔细看看运动控制指令就行了,其它的都是大同小异了。

KEBA机器人控制器简介_第24张图片

KAIRO语言编写软件 KAIROEdit

  利用 KAIRO 指令编写机器人的运动控制程序需要在 KAIROEdit 开发软件中完成,KAIROEdit 软件长这个样子:

KEBA机器人控制器简介_第25张图片

TeachTalk:二次开发语言

  如果你觉得 KAIRO 的指令集无法满足需求,你还可以自己定义指令集对 KAIRO 进行扩展,方法就是使用 TeachTalk 语言,它是制作 KAIRO 指令的语言。在开发工具 TeachEdit 中利用 TeachTalk 语言就可以编写自定义的指令了(这个过程叫二次开发 [ 4 ] ^{[4]} [4])。 TeachTalk 语言的命令可比 KAIRO 的指令集丰富多了,我就不一一列举了,可以参考文档 [ 5 ] {[5]} [5]
  使用 KeMotion 的困难之一是要浪费大量的脑细胞去区分各种雷同的软件工具和概念,反正我看到一堆 TeachEdit、TeachView、ViewEdit、TeachTalk 头都大了。另一款运动控制平台——TwinCAT 则聪明的多,所有功能都用一个软件实现,免去了用户记忆大量胡乱定义的名称和概念的麻烦 [ 6 ] ^{[6]} [6]
 
参考资料

[1] KeMotion Brochure CN.
[2] KeDrive for Motion catalog EN,p6.
[3] KAIRO Language Reference Programming manual V2.66,p13.
[4] 机器人控制器的二次开发,戴栋,重庆理工大学学报.
[5] TeachTalk Libraries Basic Functions Programming Manual V1.42.
[6] 倍福:打造一体式软件平台,宋慧欣,自动化博览.

你可能感兴趣的:(KEBA机器人控制器简介)