越来越多的最终用户要求使用常用的PLC语言,来实现机器人、运动控制器和PLC的编程,这便于机器设备制造商的编程人员来理解,也便于最终用户的服务人员进行维护。为了降低复杂性,使三个独立的平台从外观、用户体验以及功能上更加协调。负责运动控制的PLCopen工作组已经提出了一系列的标准化工具,允许从类似于PLC的编程环境中直接运行协调运动。
传统上,工业机器人使用复杂的专用语言进行编写,除了机器人编程人员可以理解外,其它人根本弄不明白。运动控制器的范围要广一些,而且变化也比较多,一般使用PC库或其它专用语言进行编程,而PLC则一般使用梯形图逻辑进行编程。在当今的自动化环境中,PLC、运动控制器和机器人必须紧密的集成在一起。很多元素被集成到机器设计中,而每个元素的优势,都需要通过专用语言的编程体现出来。
PLC编程
1968年,通用公司需要开发一种能够替代硬接线继电器的设备,于是PLC就应运而生。自诞生以来,PLC一直使用梯形图逻辑进行编程。PLC可以轻松的控制使用数字和模拟量设备的过程,但是如果要去控制那些更复杂的、本质上是顺序控制的过程,使用PLC比使用BASIC、
C或
C#语言实现要困难的多。经过多年的演化,PLC已经可以使用BASIC或C语言进行编程,但是在大多数情况下,仍然依赖于梯形图(是IEC61131-3规定的编程语言的一种)。
很多低端PLC通过步进或直接输出来支持运动控制。利用价格更高的专用模块,则可以实现某些更高级的运动控制,但是必须将这些模块增加到基本系统中去。即使这样,大多数设备仍然使用梯形图逻辑进行编程,这需要对编程环境具有较深入的了解,而编程环境则随着生产厂家的不同而有所不同,更高级的功能通常由专用的功能块来实现。
运动控制器
在通用市场上,典型运动控制器一般包括插值运动(线性和圆形)、协调运动、齿轮、凸轮和事件触发运动(使用传感器和位置锁存器)等。更古老的运动控制器则在每个轴上使用专用的输入、输出设备。运动输入包括启用、过行程限位器和解码输入(每个轴一或两个);运动输出包括伺服指令(一般情况下为+/-
10
V的模拟量)和步进指令(步进或直接)。大多数控制器还包含一些具有基本功能的I/O。新控制器则依赖于诸如EtherCAT或Mechatrolink的网络来将控制信号传送给驱动器,并发送和接收数字I/O信号,这些I/O通过硬接线与驱动器直接连接。
在处理互联轴的运动时,典型的运动控制器无法与机器人控制器抗衡。在使用典型的运动控制器时,如果最终结果是要运动到某个特定点,则必须为每个轴计算出正确的位置。机器人和其它带有机械互联机制的机械设备,则需要逆向运动学。使用逆向运动学,需要使用公式,将现实空间的特定点转换为单个位置信息,机器人的每个关节(或轴)利用这些位置信息,将机械互联的机械设备移动到目的点。由于范围比较广,而且变化也比较多,因此应用这些系统时,需要对专门的编程环境有相当深度的了解。
PLCopen运动标准的第四部分,包含运动控制功能块,将PLC、机器人和运动控制集成到一种易于理解的、并在很多厂商比较常见的语言中。一般情况下,这些转变功能块由供应商提供,所以对大多数生产制造商而言,如果运动控制器不支持,则不能添加此功能。该标准支持SCARA
和DELTA,但除此之外,任何编程人员都可以编写自己的运动转换功能。
机器人控制器
机器人控制器已经被用于实现某些复杂机械设备的xx控制。大多数控制器都是为某个特定的设备定制生产,需要使用厂家自有的专门编程语言进行编程,这些编程语言因产品平台的不同而有很大的差异。如果机器人控制器用于控制其为之定制的对象,效率很高,但是在通讯性能、集成性能以及可编程能力方面则不是xx的。
过去,一般只有特定的机器人控制器,支持动力学和逆向动力学。现在,提供部分机器人类型指令的运动控制器更为常见,尤其是面向包装自动化的控制器。机器人控制器和运动控制器之间的界限正在变得模糊,但是仍需要编程人员在这些不同的系统之间进行协调,因为每个系统的编程都使用了为某个目的而专门设计的语言。
PLC和运动控制的结合
负责运动控制的PLCopen工作组,已经将运动控制程序的各个方面进行了标准化,并从逻辑上对其进行了定义。这是一种将PLC、机器人和运动控制集成到一种易于理解和常见的语言中去的xx尝试。
其中很多的功能块都是最基本的,比如:相对和xx运动,在很多运动控制系统中,都是非常简单、易懂的功能块。在所需运动的难度增加的时候,多个控制系统的标准化、统一的外观以及用户体验,就成为一种优势。
例如:当任何一个运动停止,下一个运动还没有开始的时候,将相对或xx运动串联起来,非常简单。但是设想一组更复杂的运动:在轴的速度没有变为零的时候,就需要转向下一个运动,这样在轴的整个运动路径中,将单个运动汇合成多个运动。PLCopen运动控制规范制定了标准的混合操作,这样编程人员利用生产制造商可以利用的、常见的混合和转变模式,实现混合运动。
在移动由数学模型控制的通过机械互联的多个轴系时,一个最基本的问题是,对于同步移动来讲,通常并不清楚哪一个轴是关键轴。所以当故障发生时,运动控制器一般不能判断其它哪些轴受到影响。通过定义运动组,PLCopen对此进行了处理,从而使得当其中一个轴组发生故障时,控制器能够产生一个适当的故障响应。成组的概念,使编程人员获得更大的自由度,集中精力处理机器所要求的特定任务,通过实施图中所示的组状态机器,由控制器来完成组功能。
PLCopen运动控制规范的第四部分包含了可以协调运动控制的功能块,对其第一和第二部分在三维空间多轴运动控制的协调功能进行了扩展,以满足在此领域中绝大部分的应用需求。它们定义了一套标准的功能块,可在三维空间内应用于复杂的运动控制,包括运动转变功能块。一般情况下,这些转变功能块由供应商提供,所以对大多数生产制造商而言,如果运动控制器不支持,则不能添加此功能。目前获得支持的主要是SCARA
和DELTA机器人。此外,任何编程人员都可以编程实现自己的运动转换功能。当需要将实际位置转换为关节空间,或者将关节空间转换为实际位置时,专用程序就可以调用这些运动程序。
该标准在原先一直相互独立的PLC、计算机数字控制、机器人控制以及运动控制领域之间架起了一座桥梁。目前,利用一台类似PLC的系统,就可以实现对一个完整的机械设备控制程序的编程。该标准使机器人控制器和运动控制器,不再是相互独立的系统,而是集成为控制系统的一部分。将运动控制和逻辑控制在一个软件包中实现,所带来的最重要的优势包括:在逻辑控制器和运动引擎之间无限制的数据交换,而且没有延迟,在传统的系统中,延迟会影响设备的性能。事实上,现在利用机械设备控制器就可以在机器人和外设的伺服轴之间实现xx的同步,这在以前,只能在机器人控制领域才可以实现。
独立编程
xx,PLCopen标准允许独立编程,xx摆脱对硬件或特定生产制造商的依赖。如果不同的硬件供应商支持同样的基础代码,具有同样的行为模式,编程人员就不必学习每个生产制造商的专有编程语言了。这样,就可以在更短的时间内,更快的开发出具有更高精度的复杂机械设备控制系统,并将其投入到市场。通过减少工程复杂性、降低对专门培训的需求,PLCopen使得这种开发成为可能,这样对众多的现有PLC编程人员来讲,整个系统就显得非常熟悉了。