KeMotion控制系统及开发
KeMotionr系列控制器是一套完整的面向多轴运动控制系统软硬件模块化控制器。硬件包括KeMotion控制器,以及各种外围模块组成,它们通过以太网或总线的形式与控制器连接,实现面向各种应用的搭配。软件方面,有用户操作、诊断、开发工具等软件工具集。机器人控制系统的架构可以如下图所示:
系统架构一、KeMotion系统硬件结构KeMotion控制器是一套包含了完整软硬件的运动控制系统。
图1-1KeMotion控制器结构
焊接机器人所使用的几个主要的模块如下所述:
CPU:
CPU部分是系统的核心目前焊接机器人使用的是KeMotionr系列的CP/XCPU模块(使用的是定制的基于Intelx86嵌入式微处理器),其上运行的是VxWorks实时操作系统。控制器带有CF卡,OS和应用软件以及系统的数据都存在里面。系统中同时安装了RC机器人控制系统和软PLC控制系统两套软件。它们同时运行,通过共享内存块的方式进行通信。RC部分负责运动控制,软PLC部分负责电气逻辑和实时外部信号采样处理工作,通过与RC通信,还可以扩展成为系统的主控部分,对运动控制过程进行控制。
伺服驱动器:
通过SERCOSIII总线与控制器连接,系统采用的I/O模块是FX/ASERCOSIII接口模块。每个单元都可以独立控制伺服,包括位置、速度、加速度和电流的控制。
Ketop示教器:
手持终端(KeTop示教器),其上运行的是基于WinCE的嵌入式系统,通过以太网与控制器连接通信,在局域网内有自己的IP,相当于一个独立的终端,由于是基于OS的所以可以使用路由连接,提供对TCP等协议的支持。可以通过手持终端连接至控制器控制系统的运动,作为机器人操作手持设备,可以编写终端用户程序,对机器人示教操作、手动操作,监视运动状态。
系统扩展:
扩展I/O模块,由于KeMotion控制系统采用的是模块化的方式构建,所以可以方便的外扩I/O模块进行功能扩展,提供插槽式的K-BUS连接。其中可以扩展支持各种总线(CAN、Sercos、Profibus)的模块,以及模拟量或者数字量的输入输出模块。现在的Kemotionr控制系统的扩展I/O配置如下:CP/XCPUmodule;DM/ADigitalInput/OutputModule;DO/ADigitalOutputModule;FX/ASERCOSIIIInterfaceModule;AM/AAnalogInput/Output;
PC:通过以太网和控制器连接在同一局域网内,可以登录到控制器系统内部修改系统文件;可以模拟手持终端控制控制系统,但在同一时刻只有一个人具有修改终端用户程序的权限;通过编辑程序的应用程序连接正在运行的控制器,调试、仿真程序;通过PC机上编写的OPC客户端连接控制器提供的OPC服务器,读写数据,实现控制。可见,控制调试方法多样,满足各种需求,方便扩展。
KeMotion控制系统的硬件结构,如控制器,伺服驱动器,IO模块完全实现了模块化,各模块之间通过标准的网络或总线进行连接通信,同时提供了可扩展安全控制器的功能。以上设备的连接和调试没有参与,细节上的东西了解不多。
二、KeMotion系统软件结构
KeMotion控制系统软件结构,可以看成三个部分:控制器上运行的控制系统软件、手持终端上运行的监控、操作、诊断软件和PC上运行的编程开发工具软件和监控、操作、诊断程序。
KeMotion控制系统软件结构
1.控制器上的软件
控制系统软件的核心部分是运行在控制器硬件平台(x86嵌入式微处理器)上一整套软件。自底向上的看,首先底层的OS是VxWorks实时操作系统,这为系统的实时性和可靠性提供了一个基础,同时也为应用软件提供运行环境。VxWorks中运行了两套软件,分别是RobotControl和SoftPLC,它们组合在一起构成了控制系统软件的核心。其中RobotControl是负责机器人的运动控制,包括机器人的轨迹规划和插补操作,而SoftPLC则负责外围信号采样、逻辑控制等功能。RC和PLC两者可以通过共享内存的方式进行数据交换,所以PLC可以通过RC-Interface对机器人运动控制,这时可以把PLC看作是主控制器(软件意义上的),同时RC也可以通过与PLC的接口了解机器人各个轴的情况,也可以根据PLC计算的偏差进行坐标系的修正等。
RC和PLC关系
从软件开发的角度,可以把OS、RC和PLC软件看作是系统的固件,开发者只需要了解程序与固件的接口,以及各个控制软件之间的接口,这样就可以简化系统的软件结构。再向上看,就是具体的应用程序了,RobotProgram是运行在RC(RobotControl)中的程序,PLC应用程序是运行于SoftPLC中的程序。
其中RobotProgram是机器人运动控制的程序,在RobotControl中可以运行使用KAIRO编程语言编写的机器人运动控制程序。KAIRO语言是Keba公司专门为机器人操作者设计一种编程语言,是一种简单可靠的运动控制语言,利用KAIRO语言中的终端用户指令集,终端用户可以很容易的创建机器人运动控制程序。
KAIRO编程语言属于终端用户程序语言(enduserlevellanguage),所以程序的语法较简单,只要有一定的编程基础,基本上可以较快的熟悉。主要的指令包括了基本的运动指令、设置指令、系统功能、数学函数、流程控制和I/O设备读写等。除了流程控制指令外,其余部分的指令大多是一些基本的功能块。一般来说这些功能指令被称为“宏(Macro)”,相当于TeachTalk中的Routine,或者可以看成是一个功能块。所以可见这个指令集是开放的,随时可以通过TeachTalk编写相应的Macro来扩展。在PC上使用TeachTalk编程语言在Keba提供的开发工具teachedit中进行二次开发,就是所谓的专家编程,这里下节会仔细说明二次开发的方法。
综上所述,RC应用程序大体可以看成两层,上层是EndUser程序,是终端用户编写的程序;下层是Expert程序,可以是系统固件中的一些基本指令或者是自己开发的功能。
另一个PLCApplication程序,也就是PLC的应用程序,主要工作是对外部逻辑信号的采样、处理,并在PLC和RC之间交换数据。比如可以用来处理焊接电流信号,获取跟踪偏差参数给RC进行纠偏。此外PLC程序还可以通过特定的接口控制RC部分。PLC部分的工作主要是配置和逻辑控制,配置包括:配置任务、配置I/O、配置伺服、配置机器人轴参数;逻辑控制程序部分则负责数据的采样计算处理、机器人轴伺服驱动输入输出控制、I/O系统输入输出控制。PLC通过和RC的配合最终实现完整的自动焊接过程控制。
PLC通过RCInterface控制RC
RC接口中包括了一系列可用服务,这些服务可以通过RcInterface.lib和Rc.lib调用。以下是一些服务:
1)ControllingtheRC:●Loading/unloadingandstarting/stoppingmotionprograms●Jogging●Switchingtheroboton/off●Reading/writingpositions2)ExchangeofcyclicprocessdatabetweenRCandPLC:●LogicIOs(DI,DO,AI,AO,WI(Word),WO(Word)),32each●Axispositionetc.●CallofRCinterpolator●MainModeManager●Handheldterminal
Keba公司的IEC开发环境KeStudioU3是从通用的CoDeSys开发工具二次开发而来,可以使用IEC-3标准编程语言开发应用程序。
2.手持终端上运行的软件
手持终端是一个基于WinCE的嵌入式系统,其中运行的工具软件TeachView是一个监控、操作、诊断机器人运动的软件。操作者可以在手持终端中使用KAIRO语言编写Robot程序,这就是前面所述的运行在RC中的机器人控制程序。通过手持终端,不但可以运行程序,还可以随时修改程序、监控变量,或者手动操作机器人运动,也可以进行机器人的示教。
3.PC机上的软件
PC机上的工具软件Teachedit和KeStudio分别为RC程序和PLC程序的编程工具。Uos和Scope为控制系统监视诊断工具,Uos显示VxWorks的变量信息,Scope图形仿真控制系统的运动过程,并能读取在控制器中设定显示的变量,并将其图形图表化显示。Teachview为终端用户操作软件,它不但可以安装在手持终端上,还可以安装在PC上,它们发挥同样的作用,需要注意的是teachview与控制器的连接是互斥的,所以同时只能有一个终端与控制器连接通信。
以上对KeMotion控制系统的软件结构进行了简述,下面说明的是KeMotion控制系统的软件开发过程。
三、KeMotion系统软件开发
Keba公司为KeMotion控制系统提供了一套完整的开发工具,包括RC和PLC程序开发的编程环境teachedit和Kestudio,还有运行于手持设备和PC上的teachview以及运行于PC端的各种监控、诊断和仿真软件。
1.RobotControl软件开发
在RobotControl中运行的程序是机器人的运动控制程序,RobotControl系统具备了完整的机器人运动控制功能。RC和PLC之间有RC-Interface接口库联系,所以外部的PLC程序可以通过RC接口控制RC,从而拥有控制机器人的能力。
一般Robot程序开发可以分为两个层面,一层是终端用户级,另一层是专家级。终端用户程序是终端用户运用KAIRO编程语言编写的应用程序。终端用户程序可以在手持终端上编写,也可以在PC上使用开发工具TeachEdit编写或者PC上的TeachView也可以编写。基本macro的功能大致可以分成如下几种:
1)移动机器人到一定的位置,可以使用轴位置或者笛卡尔坐标位置;2)设置机器人运动动态参数,比如速度、加速度和跃度(jerk)等;3)路径重叠参数;4)设置位置和时间触发;5)基本数学函数指令;6)设置和读取数字IO;7)设置和读取模拟IO;
开发者可以使用TeachTalk编程语言在PC上使用TeachEdit开发工具进行专家编程,使用TeachTalk语言编写功能宏(macro)提供给终端用户使用。TeachTalk是一种专门为机器人控制发展的一种解释型编程语言,它是运行在teachcontrol运行系统上的语言,可以在teachtalk编程系统中创建、测试和启动TeachTalk程序,可以认为RC最终解释执行的就是TeachTalk语言。使用TeachTalk语言编写功能macro是二次开发的基本方法,一个macro在TeachTalk中可以看作是一个Routine。再进一步的具体的开发和程序的说明这里就不细说了,也正在熟悉了解中。只算是大体上的把握吧。
2.PLC应用软件开发
PLC程序的主要工作是逻辑控制、模式管理、轴控制数据的更新、I/O系统的控制等。此外还有机器人的配置,配置的内容包括任务配置和PLC配置,任务配置可以看成是系统的主要工作,因为任务可以看作PLC程序的主体结构,其他的功能块和函数都是因为任务中需要所以才存在。而PLC配置又包括I/O配置和机器人配置,这些配置主要是配置运动控制的对象和建立I/O对象,这些配置工作可以在KeStudio的中图形化的设置。
KeMoiton控制系统中的SoftPLC遵从IEC-3标准,所以可以使用IEC-3中规定几种标准编程语言编写PLC应用程序。Keba公司提供了PLC开发工具KeStudio,这是一款基于CoDeSys开发的PLC编程工具。同时Keba公司提供了一些标准的库文件,还有Rc.lib,Mc.lib,McAxis.lib等与机器人控制相关的库文件,其中Mc库中的功能块(functionblock)采用的是PLCopen组织提供的标准运动控制功能块,但是同时也根据应用对其进行了一定的扩展。所以整套系统的标准性和可移植性还是不错的。
Keba提供的IEC编程模板,通过模仿模板可以了解启动RobotControl所必须的函数,使得编程者通过PLC部分更加容易的启动RobotControl。因而可以看成是提供了一种编程框架,编程者可以在其中添加和扩展功能和函数。
PLC程序包含五个部分:
1)Initialization初始化2)Runtimecontrolandmeasurement运行系统控制和管理3)Axesupdate轴位置更新4)Userprograms用户程序5)UpdateofRobotControlRobotControl更新(共享变量)
经典回顾
工厂自动化改造的五大误区,千万不要碰!自动化杀鸡杀猪算什么,来看看自动化杀鱼!
机器人离线编程国内外发展现状与前景预测!
20台工业机器人的柔性化生产线,大开眼界!
点击,成为工业机器人应用工程师!
▼
工业机器人培训....
助推“中国智造”,我们共同的使命
指南车机器人学院∣机器人工匠摇蓝北京那有治疗白癜风医院北京皮肤病专科医院