软件定义运动控制的方法——PLCopen运动控制规范简介

2020-04-20 12:41
1000

(一)软件定义运动控制的基础

  梅宏院士在他的《步入软件定义的时代》一文中精辟地阐述了软件技术的基础支撑:“从使能技术的视角看,软件技术在信息技术中则始终处于‘灵魂’地位,所有新的信息技术应用、平台和服务模式,均离不开软件技术作为基础支撑;更为重要的是,在数字经济时代,软件技术已经成为企业的核心竞争力,不仅引领信息技术产业的变革,在很多传统领域(如汽车、能源、制造、零售等)中的存在比重和重要性也在不断加大,在支持这些传统领域产业结构升级换代甚至颠覆式创新的过程中起到核心关键作用,并进一步加速重构了全球分工体系和竞争格局。”

  当前,软件正在向“基础设施化”的趋势发展。也就是说,软件正在对传统物理世界基础设施进行重塑和重构,通过软件定义的方式赋予其新的能力(尤其是灵活性),成为促进生产方式升级、产业升级、新兴产业和价值链的诞生与发展的重要引擎。软件“赋能、赋值、赋智”的作用正在被加速和加倍放大,对制造过程的数字化转型起到重要支撑作用。

  实现软件定义一切(SDX)的技术途径,就是把过去的一体化硬件设施打破,实现硬件资源的虚拟化和管理任务的可编程,也就是将传统的一体式的硬件设施分解为基础硬件虚拟化及其API和管控软件两部分。

  软件定义运动控制,不是宣扬软件无所不能,而是告诉大家,我们可以运用软件作为工具和载体,高效、准确地将运动控制多年来积累的工程原理、经验和实践,通过模块化、结构化的软件工程方法表达出来,为运动控制应用赋能、赋值和赋智,提供更多的新的能力,包括灵活性、复用性。毫无疑问,软件定义运动控制,需要遵循一定的可行方法,结合其应用场景(如通用的运动控制、机器人、数控机床CNC等)进行合理的抽象和概括。PLCopen制定的运动控制规范是软件定义运动控制的成功典范,获得广泛支持和实践检验。尽管在启动开发运动控制规范的当初,软件定义一切的概念还没有形成,但这并不妨碍规范沿着软件技术和软件工程的正确方向发展。

  可是一篇在业界流传很广的微博指出:“PLCopen国际组织通过软件定义运动控制规范在中国推广,进展缓慢,许多中国用户似乎听不懂,反应不积极,其实很重要的一个原因是许多概念都是软件工程的概念。听众往往是来自机电行业,不熟悉软件工程,所以很难理解。但在欧洲就没有问题。”其实懂软件工程的人也未必弄得懂运动控制规范,只有懂得机械的基本知识又受过软件工程训练的人,才会理解运动控制规范。问题的症结在于我们的知识需要更新,让搞机械的人具有软件和软件工程的基础。


(二)运动控制是智能制造装备控制的重要基础

  运动控制技术是装备领域和制造行业的核心技术。这是因为机械装备的制造加工功能一般是通过其相关部件的运动来实现。尽管制造加工的原理常常有很大的差异,但是都离不开机械部件的运动。从这个意义上说,运动是机械装备的本质特征。

  运动控制泛指通过某种驱动部件(诸如液压泵、直线驱动器,或电动机,通常是伺服电机)对机械设备或其部件的力或力矩、位置、速度、加速度和加速度变化率进行控制,从而达到预设的结果。由此可见,运动控制系统是确保数控机床、机器人及各种先进装备高效运行的关键环节。而机器人和数控机床的运动控制要求更高,其运动轨迹和运动形态不同于其他行业专用的机械装置(如包装机械、印刷机械、纺织机械、装配线、半导体生产设备)。而定位的精度、在确保运动轨迹的同时合理地选择运动的速度和加速度以及过渡参数,不同机械部件运动的同步或配合,都使得运动控制的过程相当的复杂。

                     图1 运动控制各基本要素间的关系

  运动控制的基本要素之间的关系如图1所示。不过由于运动部件都有一定质量,运动要素显然会受到一定约束,加之满足机械装置的功能要求要考虑其运动学和动力学的限制,因此运动控制就不可能是仅仅满足各种基本要素及其关系那么简单,还要考虑许多复杂的边界条件和约束,例如坐标系的变换和逆变换、运动的混成和缓冲等等。

  长期以来,用户可在很大范围内选择实现运动控制的硬件。不过,每种硬件都要求独自而无法兼容的开发软件。即使所要求的功能完全相同,在更换另一种硬件时,也需要重新编写软件。这一困扰运动控制用户的问题,其实质就是如何实现运动控制软件的标准化问题。PLCopen组织考虑到用户存在运动控制软件标准化的需求,从1996年就建立了运动控制规范工作组,历时十多年完成了这一具有挑战性的工作。

     PLCopen开发运动控制规范目的在于: 在IEC 61131-3为基础的编程环境下, 在开发、安装和维护运动控制软件的各个阶段,协调不同的编程开发平台,使它们都能满足运动控制功能块的标准化要求。换句话说, PLCopen在运动控制标准化方面所采取的技术路线是,在IEC 61131-3为基础的编程环境下,建立标准的运动控制应用功能块库。这样较容易让运动控制软件做到:开发平台独立于运动控制的硬件,具有良好的可复用性,以及在开发、安装和维护等各个阶段都能满足运动控制功能块的标准化要求。总而言之,IEC 61131-3为机械部件的运动控制提供一种良好的架构。

      PLCopen为运动控制提供功能块库,最显著的特点是:极大增强了运动控制应用软件的可复用性,从而减少了开发、培训和技术支持的成本;只要采用不同的控制解决方案,就可按照实际要求实现运动控制应用的可扩可缩;功能块库的方式保证了数据的封装和隐藏,进而使之能适应不同的系统架构,譬如说集中的运动控制架构、分布式的运动控制架构,或者既有集中又有分散的集成运动控制架构;更值得注意的是,它不但服务于当前的运动控制技术,而且也能适应正在开发的或今后的运动控制技术。

  所以我们说,IEC 61131-3与 PLCopen运动控制规范的紧密结合,提供了理想的机电一体化的解决方案。


(三)PLCopen运动控制规范概述

      PLCopen国际组织制定的运动控制规范,现已成为国际公认的事实上的运动控制标准。表1给出规范的组成,经过历次的修订,现在第1和第2部分已合并。

  基本上,每个规范都包含了3个内容:定义状态机,定义单轴和多轴运动控制功能块的基本集合,规定符合规则和语句。


(1)运动控制规范的核心技术及其诠释

  从技术上讲,我们可以按其协调控制的结构把运动控制划分为两类:①主轴/从轴运动控制。即根据主轴的定位生成一个或多个从轴的定位命令。②多轴运动控制协调结构,其中没有主轴从轴之分,只有由多个轴构成的集合,称之为轴组(或轴集合)。只有这样才可能进行更好的轨迹和路径规划,解决CNC、机器人等的复杂运动控制问题。

      PLCopen运动控制规范针对形式各异的运动控制形态进行抽象,分别制定单轴和轴组的状态图,并阐明了他们之间的关系(见图2和图3)。该规范制定了一系列的基本功能块,便于按运动控制的要求在各个状态之间转移。通过定义一组具有相关协调运动功能性的功能块,以及定义一个高层级的状态图来链接该轴组内的多个单轴的状态图,达到多轴协调运动控制。图4给出在主/从结构下单轴和轴组的协调运动控制示意图。

                      图2   主轴/从轴结构的运动控制规范的状态图

      图3   多轴(轴组)协调运动控制状态图与单轴状态图的关系

                    图4   主/从结构下单轴和轴组的协调运动控制 

  运动控制最重要的是控制运动的轨迹,而轨迹控制的本质在于协调两个或多个轴的运动,以指定的速度从某个起点沿着所规定的路径到达某个目标点。所谓路径可以是直线运动、圆周运动,或者是三维仿形运动。在三维空间中要规定一种路径(或者任意位置信息)需要一种坐标系。

  在PLCopen运动控制规范的第四部分,将坐标系定义为:轴坐标系ACS、机械坐标系MCS、和产品(或工件)坐标系PCS,详见图5。轴坐标系ACS是指相对于单电机和单驱动器构成的单轴系统所形成的坐标系。机械坐标系MCS是指相对于机械装置的坐标系,这是一个原点为固定位置的直角坐标系,而原点则在机械装置启动时予以定义。通过前向和后向的运动学变换,可将多个单轴坐标系ACS与机械坐标系MCS连接起来。产品坐标系PCS在CNC中常称为程序坐标系(或程序员坐标系)。通常情况下,PCS建立在MCS的基础上,即通过MCS移位(也可旋转)来建立PCS。PCS的零点与产品相关,在运行期间可用程序来改变零点。通过在PCS中指定一个轨迹就能准确描述该轨迹,而与机械装置无关。通常进行直角或柱面变换,就可以将PCS映射为MCS,或者将MCS映射为PCS。

                     

                                                                      图5 运动控制中的三个坐标系

  为了解决数控机床和机器人实际应用中必须妥善处理的一些关键技术问题, PLCopen的运动控制规范第四部分给出了以下关键技术的描述,以及实施这些技术的功能块和相应规则。它们是:坐标系变换和逆变换、运动学变换和逆变换、运动轨迹规划、运动混成(blending)、速度和加速度平滑(buffering)。

  以五轴联动数控机床为例来说明为什么需要样条路径插补和加速度平滑。五轴线性刀具路径由一系列的指令定义,每一个离散指令包含位置和方向信息,其中位置矢量描述刀尖点(TCP,Tool Central Point)的轨迹,方向矢量描述刀轴的方向。对这些离散指令进行线性插值,就获得了刀具的连续运动。将数控指令发给数控系统后,数控系统将在机床动力学特性的约束下,实时规划出每一个轴的位置、速度和加速度。可以看出刀具路径将影响机床进给的动态特性,如果刀具路径是线性的,刀具运动被定义为相邻轨迹之间的直线段运动。而在线段连接点处,刀具估计的切向和曲率都是不连续的。考虑数控机床的最大加速度和加速度变化率(跃度)都是有限值,这种不连续往往导致进给速度产生波动,而这种波动将造成机床的真实进给速度要低于数控代码中指定的进给速度。因此,用光滑的参数样条曲线来取代线性刀具路径,显然是提高加工效率和加工表面质量的重要方法。由上分析可见,五轴样条轨迹插补和加速度平滑是五轴联动高速高精度轨迹跟踪的关键技术。

  插补型运动控制的基本部分是对轴组实施一连串连续、且具有缓冲的运动命令的混成。如果没有混成,轴组的TCP会向前运动至命令所要求的位置附近,减速并精准地停在该位置不动,接下去的缓冲减速运动命令不会被激活。显然,要运动到下一个点轴组必须再加速。在许多应用中,会要求TCP具有不同的行为特性,比如不停顿的连续运动,这样可以减少加工处理的循环时间(例如抓取和放置);或者是为了减少机械应力,要生成平滑的运动;另外,有些应用要求TCP进行恒速运动(如喷涂、焊接、胶合等)。诸如此类的这些要求都可以用不同类型的运动混成加以满足,其共同点是通过修正原始的路径,从而得到平滑而没有拐角的轨迹。

  在多轴协调运动控制中对插补运动命令的混成不同于单轴运动中的混成。对单轴而言,命令所指定的位置总是可以达到的。在多轴协调运动中,到达(或经过)命令所指定位置的时刻,可以按照缓冲模式(BufferMode)的输入参数来改变。插补运动控制中的运动混成类型与应用和过程相关,因此必须在插补运动控制中导入多种新的运动混成类型。不同的插补方法会使用不同的混成输入参数,所以要按所采用的插补方法改变混成输入参数。当然,运动控制器产品供应商可根据自己的诀窍和经验来规定混成功能块的输入参数。


(2)管理类功能块和运动类功能块

      PLCopen运动控制规范的第1部分和第4部分都把功能块划分为管理和运动两大类。所谓管理类功能块只对运动控制的程序执行一定的管理功能,便于实现管理任务的可编程,但不会引起轴的运动。例如上电功能块MC_Power专门管理供电电源的状态,读取轴状态信息的功能块MC_ReadStatus专门读取轴的状态信息等等。所谓运动类功能块顾名思义都是能引发轴运动的功能块,是对运动控制硬件资源进行虚拟化的表达,如回原点功能块MC_Home、停止功能块MC_Stop、绝对运动功能块MC_MoveAbsolute、相对运动功能块MC_MoveRelative等等。尽管PLCopen运动控制规范是在十几年前开发的,但这样的分类完全符合近年来正在发展的软件定义一切的原则,将传统的一体式硬件设施分解为基础硬件虚拟化和管控软件两个部分。

      PLCopen运动控制规范所定义的功能块,使用户能迅速地识别其功能性,并且能清晰了解在它被激活时,或者在一序列运动命令中它与其它功能块相连接时会发生些什么,或者说会做些什么。尽管存在着其他一些编程方法,如面向轨迹运动的编程,专门面向机器人的编程,或者常用在CNC中的G代码编程,他们都可以在相当宽泛的应用中很好地描述机械运动;不过,使用这些编程方法的用户过于专业,也许不能随着智能制造的普及而得到广泛推广。总之,PLCopen运动控制规范的第四部分,就是为了把在CNC和机器人控制中运用的功能性,变换为在PLC中也能方便运用的功能性,使得对涉及到运动控制的自动化编程的培训更为容易,用户掌握得更显快捷。


(3)坐标系及其变换

  为了在空间规定一个点或一个方向,其所在位置总应该参照一个坐标系。通过变换,可将此坐标系变换为另外的坐标系。在PLCopen运动控制规范中,通过将这些对于编程员来说较复杂的变换封装为功能块,使他们在日常工作中进行这些变换时得心应手。

                    图6   ACS、MCS和PCS坐标系变换举例

  给出一个坐标系变换的举例。为表述处于一个2维工件(图6中红色的梯形)上的P点,可以等效的用PCS坐标系(蓝色)、MCS坐标系(黑色)和ACS坐标系(绿色)予以定义。在PCS中,PPCS=(XPCS,YPCS);在MCS中, PMCS=(XMCS,YMCS);在ACS中,如果是一个具有两个旋转轴的SCARA机器人,则PACS=(f1,f2)。

  如何简单理解运动学变换问题呢?轴通过机械连接,使处在空间中的刀具中心点(即刀尖,或TCP)产生运动。TCP是机械装置中一个很独特的点,有时也称它为操纵点(effector)。通过运动学变换将ACS与MCS之间建立对应关系,可把ACS中的一个位置变换为MCS中的一个位置,这叫做正向变换;反过来也可运用逆变换,把MCS中的一个位置转换为ACS中的一个位置。图7的左半边是一个简单的直角型机械结构,其轴正好对应MCS的3个坐标轴X、Y和Z,我们可以用X、Y和Z的坐标来直接定义其上的TCP,进行运动学变换很方便。在这种最简单的情形下ACS等同于MCS。但在工业实际中,有许多非直角的结构,如SCARA机器人和三脚架,这时运动学变换就变得复杂了。


                      图7   简单直角机械结构的运动学变换举例

   在TCP必须跟随一个运动目标时,完成这种运动就要进行动态坐标变换,使PCS相对于MCS运动。先要激活坐标系变换功能块MC_SetDynCoordTransform,这样该轴会跟随该动态变换,或者停在静态的ACS(或MCS)内。下面举例:工件随传送带运动过程中,用机器人从一个固定位置抓取一个螺钉,然后把螺钉固定在工件上,并拧紧。为了完成这个任务,我们可以将整个过程拆分为9步。列出每一步的运动命令以及轴(传送带)和轴组(机器人)的行为。图8示出这9步动作及相应的说明。接着选择合适的功能块,定义输入和输出参数,便可完成可以执行的编程。

         

图8 坐标系动态变换应用举例


(四)PLC运动控制技术、机器人技术和CNC技术的融合发展

  智能制造和智慧工厂正在全球蓬勃发展,一个首当其冲的关键就是CNC和机器人这些制造单元的开放架构问题。MES、ERP、CAM等管理和设计软件都要求制造设备层能提供基于IT技术的软硬件接口,而且智能制造技术的实现也要求CNC、机器人和其它制造单元和设备之间建立开放性的网络和软件接口。与此同时,由于驱动技术和机器人技术的发展,使得用机器人来控制CNC加工单元成为可能。以上这些都说明了智能制造最前沿的一个值得关注的动向,这就是PLC及运动控制技术、机器人技术和CNC技术正在呈现融合发展的趋势。

  不过,对于传统的CNC和机器人厂商来说,至今为止对于开放架构并没有非常方便和高效率的方案,他们要迅速适应变化也非驾轻就熟,因为这些传统厂商的硬件绝大多数是基于RISC芯片。显而易见,要实现更为开放的IT集成,采用Intel的CISC芯片会轻而易举得多。

  沿用传统的概念,PLC承担逻辑控制和顺序控制的任务(完成通用运动控制任务的能力也在不断加强),机器人控制器完成机器人运动规划的任务,而CNC控制器负责数控机床的控制,要将这三个系统集成在一起,将面临较高成本、难以达到同步运行、开发时间长等一系列的问题。为此,突破传统思维,充分发挥PLCopen运动控制规范的作用,让PLC及运动控制、机器人、CNC技术融合在一个系统中成为现实可用的解决方案,其范例就是由斯图加特大学的ISG研究所开发的ISG Kernel。ISG-Kernel是一种涵盖几乎所有的CNC、机器人和运动控制的机械装置控制软件解决方案,它可以嵌入到基于IEC 61131-3的PLC编程平台中,也可以作为一种独立的具有高端功能性的控制软件包。


(五)结束语

  在PLCopen运动控制规范的语境中,软件定义运动控制就是运用一系列预先定义好的功能块对运动控制任务进行编程。然后在具有运动控制功能的PLC系统执行控制任务的过程中,按PLC运行的规则串行地调用运动控制功能块的命令。由于PLC的编程符合IEC 61131-3编程语言国际标准,熟练掌握PLC编程的技术人员较多,特别是机械工程及其自动化专业的人由于有较好的机械工程基础和专业知识,他们更容易理解PLCopen运动控制规范中所定义的功能块的特性和行为,更容易接受软件定义机器这一概念。

  综上所述,自动化领域十余年前就完成开发的PLCopen运动控制规范,就是对当今如日中天的软件定义一切(SDX)概念在机械装备运动控制领域的完美诠释。对该规范的推广,必将极大促进自动化技术和先进IT技术的融合,促进智能制造的落地实现。


者简介



彭瑜:1960年毕业于清华大学动力系。上海工业自动化仪表研究院教授级高级工程师、PLC open中国组织名誉主席、中国智能制造综合标准化工作组专家、工信部智能制造标准化体系建设工作组专家、中国科技自动化联盟首席专家顾问。长期从事工业过程控制系统的研究开发工作。自1996年后,研究领域集中在PC控制、现场总线、工业以太网、MES,以及现场设备的无线通信;近些年主要研究智能制造相关的自动化技术。凭借在发展我国工程技术事业方面做出的特殊贡献,1993年起获国务院特殊津贴。