所公开的实施例涉及一种用于复杂的多轴非线性机器的控制系统,特别涉及一种用于以性能、灵活性和可伸缩性的期望组合对精密机器人(precision robot)进行精确并且同步的控制的系统。
作为电子学和通信领域内的技术进步的结果,用于复杂运动系统的控制技术已经明显朝向联网体系结构发展。联网解决方案利用多个简单控制器(其被称作遥控器),所述控制器被定位成靠近经受控制的组件(比如电动机和其他致动器),并且由主控制器通过通信网络来协调。
所述联网体系结构在以下领域提出了许多挑战:主控制器与遥控器之间控制智能的划分;高级控制算法的实施;通信网络利用;由不同遥控器驱动的组件的同步;对与多个遥控器上的输入相关联的事件的处理,比如捕获多个运动轴的位置,允许工作空间中的人类存在,以及处理功率损失情况。
在主控制器与遥控器之间控制智能的划分可以从完全集中式体系结构变化到分布式解决方案,在完全集中式体系结构中,所有的控制算法或者大部分控制算法都在主控制器上运行,而在分布式解决方案中,控制算法被实施在基本上自主的遥控器上。
高度集中式体系结构的益处包括提供高级控制算法的能力,这常常需要来自多个轴的实时信息(比如多输入多输出(MIMO)控制),并且可以被方便地实施在主控制器上。这种体系结构中的遥控器需要比较低的计算能力和少量板上存储器,从而允许相对简单且廉价的设计。
这些优点可以以对通信网络的相对较高的利用的代价来实现,这是由于在遥控器与主控制器之间的密集的时间关键的数据交换而造成的,因为主控制器正在闭合控制回路。这些系统通常具有有限的可伸缩性,这是因为轴的最大数目受到主控制器的计算能力以及通信网络的带宽的约束。另外,由于遥控器可能没有足够的智能来自主地支持故障相关的操作(比如在通信网络发生故障的情况下执行相应的运动轴的受控停止),因此在故障的情况下实现令人满意的控制可能是成问题的。
相比之下,具有分布式控制算法的控制系统闭合遥控器上的控制回路并且根据从主控制器接收的轨迹信息执行,其利用比较低的网络通信量以及少得多的时间关键的数据,其中可以在遥控器处方便地缓冲所述数据,以便改进通信系统的总体容量余量。由于对于附加轴增加遥控器的数目会自动提高可用于执行控制回路的总体计算能力,因此上述方法可以提供所期望的控制系统的可伸缩性。此外,所述遥控器能够生成简单的轨迹并且运行控制算法,其在通信网络发生故障的情况下具有足够的智能来支持故障相关的操作(比如受控停止)。
然而,在分布式体系结构中遥控器的附加智能要求更多的计算能力和存储器,这通常使得遥控器更加昂贵。此外,由于在一个遥控器上运行的控制算法通常无法实时访问由其他遥控器驱动的轴的状态,因此实施完全MIMO控制算法是成问题的。
通常通过使用具有适当能力的通信网络来促进联网控制系统的实施。也被称作FireWire的IEEE 1394通信网络基于一种高速串行总线,其被开发来以低得多的成本提供与现代并行总线相同的服务。IEEE1394b-2002修改件所定义的特征和机制按照后向兼容的方式提供了吉比特速度扩展,并且可以通过选择性地禁用物理层(PHY)端口来检测总线拓扑中的物理回路及其后续解析。轻量级IEEE 1394协议是由1394同业公会针对到电子仪器和工业控制设备的高效异步通信而开发的。被称作仪器和工业控制协议(IICP)的该协议使用二重双工(dual-duplex)插头结构以便按照流控制的方式传送数据和命令/控制序列。
用于对精密机器人进行精确同步控制的控制系统通常要求某种级别的系统完整性,也就是,所述控制系统可能需要互锁、故障保险机制、用于保持最少100%正常运行时间的机制、用于避免所生产的产品受到损坏的机制和技术、以及允许该控制系统的工作空间内人类存在的机制和技术。
实施具有指定级别的完整性的可编程系统的现有技术电子装置和计算机往往在市场上被定位为高端工业机器和工艺。这些类型的系统通常适用于更为严格的类别(例如EN954类别4或者IEC61508 SIL3),并且使用高端处理器或嵌入式CPU。这些类型的系统通常昂贵,并且具有比低端机器或系统所需要的更多的能力,所述低端机器或系统只要求较低的完整性级别,比如类别2或3。
希望实施一种针对可编程完整性的替换解决方案以避免专门的高端电子装置的附加成本的机器设计者面临着一个极为复杂的任务,即使得控制系统的电子装置、网络和软件满足完整性要求,并且获得管理机构或审计员批准。实施指定级别的完整性的现有技术的另一个问题是尺寸和形状因数,其不适用于具有严格空间约束的完整性应用。
需要这样一种控制系统:其同时具有集中式和分布式体系结构的优点,其是灵活并且可伸缩的,其使组件操作同步,其允许功率损失以及经受控制的组件的工作空间内的人类存在,并且其提供所要求的系统完整性级别。
所公开的实施例是针对一种控制系统,该控制系统包括:具有主控制器的群集体系结构;包括处在该主控制器的直接控制下的一个或多个第一遥控器的中央控制部分;以及包括由该主控制器控制的群集控制器的分布式控制部分,其中该群集控制器控制一个或多个第二遥控器的活动。所述各第一和第二遥控器当中的每一个被利用来驱动一个或多个轴。
所公开的实施例还针对一种操作控制系统的轴的方法,该方法包括:生成该轴的轨迹,这是按照该轨迹上的多个点当中的每一点的位置、速度和加速度实现的;以及计算该轴的逆动态模型,以便确定每一点的增益值和前馈项。
所公开的实施例还针对一种同步网络上的各节点的方法,该方法包括:发出起始消息,该起始消息包括指示该消息被发送的时间的时间标记;使用该时间标记更新高分辨率时钟;以及补偿由该时间标记指示的时间与该高分辨率时钟被更新的时间之间的差。
所公开的实施例还针对一种用于在控制系统的各节点之间传送的消息集,该消息集包括:动作消息,用于交换命令和命令响应;事件消息,用于向主控制器报告与预定事件相关的数据;串消息,用于在遥控器与该主控制器之间提供一条串行消息通道;以及数据端口消息,用于向网络节点发送数据。
所公开的实施例还包括一种在事件发生时获得轴数据的方法,该方法包括:缓冲一个或多个轴节点处的数据;记录在所述一个或多个轴节点当中的触发事件节点处发生的触发事件的时间信息;以及对所缓冲的数据进行处理,以便确定在由所记录的时间信息所指示的时间段处的一组值。
所公开的实施例还包括一种用于对控制系统的轴进行控制的方法,该方法包括:计算对应于该轴的末端执行器的操作参数值;以及生成对应于该轴的单独接合点(joint)的运动简档,从而使得对应于该末端执行器的运动简档不超出该操作参数值。
还公开了一种用于控制轴的方法,该方法包括:计算对应于该轴的一个位置的速度和扭矩;预先确定第一最大时间段,在该第一最大时间段期间,轴速度可能超出所计算的速度;预先确定第二最大时间段,在该第二最大时间段期间,轴扭矩可能超出所计算的扭矩;以及如果超出了该第一或第二最大时间段,则禁用该轴。
这里公开的另一个实施例包括一种验证通过控制系统网络传输的数据的完整性的方法。该方法包括:在该网络上的一个节点处存储操作参数;以及验证通过该网络接收的命令不会导致该节点的操作超出所述操作参数。
作为所公开的实施例的一部分的一种验证控制系统网络的完整性的方法包括:发出周期性消息;以及如果没有在一定时间段内接收到该消息,则禁用该控制系统网络的一个或多个节点。
所公开的实施例还包括一种保持控制系统网络的完整性的方法,该方法包括:把该网络的各节点分配到各区域中,从而把第一区域内的运动与第一区域之外的各区域内的运动隔离开;以及控制所述各区域,从而使得第一区域的事件不会招致第一区域之外的各区域的操作。
当前的实施例还针对一种把轴带到受控停止的方法,该方法包括:确定包括该轴的系统是否损失了功率;向该轴应用轨迹,该轨迹在预定时间段内把该轴带到零速度;以及在该预定时间段的末尾从该轴去除功率。
这里描述的实施例还包括一种用于补偿控制系统中的同步延迟的方法,该方法包括:确定发出消息的网络节点与接收到该消息的网络节点之间的延迟;以及使用所确定的延迟来调节对应于该接收节点的轨迹数据。
公开了一种操作机器人的方法,该方法包括:记录该机器人的空闲时间;在超出空闲时间阈值时确定该机器人的性能特性;以及如果所确定的性能特性不满足规格,则指导该机器人执行热身练习(warm upexercise)。
在所公开的实施例中还包括一种用于运动控制系统的应用程序接口,并且该应用程序接口包括:标准化接口规范集,用于在该运动控制系统的各组件之间交换信息;以及一般化命令集,其提供用来执行操作的通用命令以及用来标识特定组件和用来执行所述操作的动作的特定自变量。
优选实施例的详细描述
图1示出适于实行这里公开的实施例的系统100的方框图。虽然将参考附图中示出的实施例来描述所公开的实施例,但是应当理解,可以在许多替换形式的实施例中具体实现所公开的实施例。另外,可以使用任何合适的尺寸、形状或类型的元件或材料。
所公开的实施例的控制系统100结合了控制智能在联网控制系统中的集中式和分布式分配的益处。这种组合式体系结构在这里被称作群集体系结构。
所述群集体系结构控制系统100包括通过通信网络120连接在一起的主控制器105、一个或多个群集控制器110、一个或多个遥控器115以及一个或多个自主遥控器150。所述主控制器105、群集控制器110、遥控器115和自主遥控器150可以被称作网络节点。
如在图1中所图示的那样,主控制器105监督控制系统100的总体操作,每一个所述群集控制器110监督一个或多个遥控器115的操作,并且每一个所述遥控器被利用来驱动一个或多个轴125。所述轴可以是一个或多个复杂多轴非线性机器(例如精密机器人系统)的一部分。所述遥控器115可以由群集控制器110控制,并且自主遥控器150可以由主控制器105直接操作。遥控器115通常可以在各群集130中被分组在一起。
所述群集体系结构控制系统100还可以包括至少一个桥节点135,其允许所述主控制器与另一个通信网络(比如控制器区域网络(CAN))上的各节点通信。该控制系统随后能够控制基于CAN的模块和组件,例如CAN轴控制器、夹钳、门、致动器、传感器等等。
所述群集体系结构在网络拓扑内提供集中式控制网络的特征并且在需要的地方提供分布式控制网络的特征。这里公开的体系结构是有利的,因为各群集130在网络内所需要的地方可以是分布式的,并且每个群集控制器110能够在其所管理的群集内提供高度集中式控制。与高度集中式控制相关联的网络通信量通常被限制在每个群集130内,并且遥控器115和自主遥控器150可以被定位成接近它们控制的轴,从而减轻与功率和信号线缆连接相关联的问题。另外,所述体系结构允许在需要时由主控制器105对自主遥控器150进行直接控制。此外,由于密集的网络通信量通常被限制在各群集130内,并且各群集130能够进行高级别控制,所述体系结构可以允许大量群集。因此,所述体系结构提供高级别可伸缩性,并且允许高效的控制器分布。
作为集中式控制的例子,所述主控制器105可以直接控制自主遥控器150,其中所述主控制器可以生成轨迹、运行控制算法以及提供扭矩命令,以便由自主遥控器150实施。该自主遥控器150可以使用所述扭矩命令来产生控制动作,比如向轴致动器140(例如电动机)施加电压。该自主遥控器150还可以读取反馈信号,比如来自反馈设备145(例如编码器)的位置信息以及来自轴125的电流消耗,并且把所述反馈信号传送到主控制器105。在本例中,在实现高性能的同时,网络利用率也可以很高,这是因为在通信网络120上闭合了控制和反馈回路。
作为分布式控制的例子,所述主控制器105可以协调一个或多个自主遥控器150之间的活动,并且生成轨迹数据,以便由一个或多个自主遥控器150实施。所述自主遥控器150可以在实时控制算法中使用所述轨迹数据以便产生控制动作(比如向轴致动器140施加功率),并且还可以向主控制器105传送状态信息。在本例中,网络利用率可以较低,这是因为在遥控器上闭合了反馈控制回路。然而,动态耦合的轴的控制性能可能受到限制,这是因为反馈控制回路通常无法实时访问在其他遥控器上驻留的信息。
作为组合式群集控制的例子,所述主控制器105可以执行高级别监督控制功能并且协调一个或多个群集控制器110之间的活动。群集控制器110可以运行实时控制算法,其中包括对处在其控制下的轴进行局部动态建模并且向其相应的遥控器115提供扭矩命令。由所述群集控制器110管理的各遥控器例如可以响应于所述扭矩命令而向轴致动器140施加功率,并且还可以把轴信息(比如实际位置)传送到群集控制器110。因此,大多数控制和反馈通信通常可以局部地发生在其群集控制器110与其相应的遥控器115之间,从而在所述群集外部的各节点之间节省网络利用率。
所述群集体系结构通常在必要的情况下提供对组件子集的高性能控制,而无需令整个通信网络120负担繁重的时间关键的通信量。
现在转向图2,将更详细地描述主控制器105。如上所述,主控制器105控制所述群集体系结构控制系统100的操作。主控制器105通常可以包括处理器205、只读存储器210、随机存取存储器215、程序存储装置220、用户接口225以及网络接口230。
处理器205可以包括板上高速缓存235,并且通常可操作用于从例如计算机可用介质的计算机程序产品读取信息和程序,所述计算机可用介质例如是板上高速缓存235、只读存储器210、随机存取存储器215以及程序存储装置220。
在加电之后,处理器205可以开始操作在只读存储器210中找到的程序,并且在初始化之后可以把指令从程序存储装置220中加载到随机存取存储器215,并且在这些程序的控制下进行操作。频繁使用的指令可以被暂时存储在板上高速缓存235中。只读存储器210和随机存取存储器215都可以利用半导体技术或者任何其他适当的材料和技术。程序存储装置220可以包括磁盘、计算机硬盘驱动器、紧致盘(CD)、数字通用盘(DVD)、光盘、芯片、半导体或者能够以计算机可读代码的形式存储程序的任何其他设备。
板上高速缓存235、只读存储器210、随机存取存储器215和程序存储装置220可以单独地或者以任何组合包括操作系统程序。可以用可选的实时操作系统来补充操作系统程序,以便改进由所述主控制器105提供的数据的质量。所述可选的实时操作系统还可以允许主控制器105为从各群集控制器110和各自主遥控器150接收的数据和消息提供有保证的响应时间。
特别地,板上高速缓存235、只读存储器210、随机存取存储器215和程序存储装置220可以单独地或者以任何组合包括用于轴轨迹生成、动态建模、错误处理、数据收集的程序以及消息传送设施。所述消息传送设施可以包括用于构造以及在各网络节点之间交换消息的程序、用于构造以及交换帧的程序,并且可以包括用于提供应用程序接口的程序,正如下面所公开的那样。另外,可以利用新的或升级后的程序来加载板上高速缓存235、只读存储器210、随机存取存储器215以及程序存储装置220,这例如是由处理器205通过网络接口230实现的。
网络接口230通常可以被适配成提供主控制器105与通信网络120之间的接口。通信网络120可以包括公共交换电话网(PSTN)、因特网、无线网络、有线网络、局域网(LAN)、广域网(WAN)、虚拟专用网络(VPN)等等,并且还可以包括其他类型的网络,其中包括X.25、TCP/IP、ATM等等。在一个实施例中,通信网络120可以是IEEE 1349网络,其还被称作“Firewire”网络。
主控制器105可以包括用户接口225,其具有显示器240和输入设备,所述输入设备例如是键盘255或鼠标245。该用户接口可以由用户接口控制器250在处理器205的控制下操作。该用户接口控制器还可以提供到外部网络、另一个控制系统或主计算机的连接或接口255。
所述主控制器105通常可以执行用于所述群集体系结构控制系统100的高级别监督和控制功能。这些功能可以包括提供与操作员和/或更高级别主计算机的通信接口、配置数据管理、群集控制器和遥控器的协调、运动定序和轨迹生成、动态建模(如果需要的话)、错误处理和数据记录。
现在转向图3,将描述群集控制器110的结构和操作。虽然将描述单个群集控制器110,但是应当理解,所述群集体系结构控制系统100可以包括任何数目的群集控制器。
如前所述,群集控制器110可以从主控制器105接收信息,并且可以利用该信息来控制一个或多个轴125。群集控制器110通常可以包括处理器305、只读存储器310、随机存取存储器315、程序存储装置320以及到通信网络120的网络接口330。处理器305还可以包括板上可编程存储器335。
处理器305通常可操作用于从例如计算机可用介质的计算机程序产品读取信息和程序,所述计算机可用介质例如是板上可编程存储器335、只读存储器310、随机存取存储器315以及程序存储装置320。
板上可编程存储器335、只读存储器310、随机存取存储器315和程序存储装置320可以包括用于构造以及在各网络节点之间交换消息的程序,并且可以包括支持各网络节点之间的应用程序接口的程序。板上可编程存储器335、只读存储器310、随机存取存储器315和程序存储装置320还可以包括允许群集控制器110从主控制器105接收运动命令的程序,所述运动命令通常具有帧的形式,所述帧至少具有位置、速度和时间标记(PVT帧)。所述帧可以包括其他数据,例如前馈项、增益项或者二者,正如下面将描述的那样。随机存取存储器315和程序存储装置320还可以单独地操作或者一起操作,以便在接收到帧时缓冲所述帧。
在程序控制下,所述群集控制器110可以利用实时控制算法对在帧中包括的数据进行操作,其中包括其所控制的轴的动态模型,以便计算对应于作为其特定群集的一部分的遥控器115的扭矩命令。所述群集控制器110可以从遥控器115采集数据,比如实际轴位置、错误指示等等,并且可以向主控制器105报告数据。
下面将参考图4描述遥控器115和自主遥控器150的结构和操作。虽然将描述单个遥控器115、150,但是应当理解,所述群集体系结构控制系统100可以包括多个遥控器115和自主遥控器150。出于讨论的目的,下面将把遥控器115和自主遥控器150称作遥控器115、150。在一些实施例中,遥控器115可以具有作为自主遥控器150操作的能力,并且自主遥控器150可以具有作为遥控器115操作的能力。
遥控器115、150通常操作来驱动一个或多个轴并且从一个或多个轴接收位置信息。特别地,所述遥控器可能能够进行单轴或多轴控制、驱动一个或多个电流回路例如以便给电动机绕组供电、通常实施运动控制回路以及实时收集数据。所述遥控器115、150可以从主控制器105或群集控制器110接收命令并且向其提供信息。
所述遥控器115、150可以包括处理器405、半导体存储器设备410、非半导体存储器415以及网络接口420。所述遥控器115、150还可以包括用于向一个或多个轴125施加功率的电路425和驱动器430(图1)。所述遥控器115、150还可以包括用于从所述一个或多个轴125当中的每一个接收轴位置信息440的电路435。所述位置信息可以是来自一个或多个编码器145的输出,所述编码器可以是轴125的一部分。
处理器405通常在存储于例如计算机可用介质的计算机程序产品上的程序的控制下进行操作,所述计算机可用介质例如是半导体存储器410和非半导体存储器415。非半导体存储器415可以包括磁盘、计算机硬盘驱动器、紧致盘(CD)、数字通用盘(DVD)、光盘、或者能够以计算机可读代码的形式存储程序的任何其他设备。
半导体存储器410和非半导体存储器415可以单独地或者以任何组合包括遥控器操作系统程序。半导体存储器410和非半导体存储器415还可以单独地或者以任何组合包括用于构造以及在各网络节点之间交换消息的程序,并且可以包括支持各网络节点之间的应用程序接口的程序。特别地,半导体存储器410和非半导体存储器415可以单独地或者以任何组合包括对应于遥控器115、150的以下操作的至少其中之一的程序:扭矩模式操作、设定点模式操作以及点对点模式操作。另外,半导体存储器410和非半导体存储器415可以单独地或者以任何组合操作来在接收到帧时缓冲所述帧,正如下面将描述的那样。
当受到群集控制器110控制时,所述遥控器115可以操作在扭矩模式下。如上所述,所述群集控制器110通常从主控制器接收数据帧,并且利用它们来计算用于其群集中的遥控器的扭矩命令。每个遥控器115可以执行对于执行其相应的扭矩命令所必须的控制功能。
例如,可以利用遥控器115控制的一个或多个轴的特性对所述遥控器115进行预编程,所述特性比如是电动机的数目、每个电动机的相、相电阻、反EMF常数等等。群集控制器110可以向遥控器115发出命令,其指示致动器140(例如电动机)所应当施加的扭矩。遥控器115可以利用使得致动器140施加所期望的扭矩的所述预编程的特性来计算将在特定时间段内被施加到致动器140的电压、电流或功率。
所述遥控器115还可以把信息提供回到所述群集控制器110,以便确定所述扭矩命令,例如由该遥控器115控制的轴的实际位置。编码器145可以向遥控器115提供原始位置信息,比如多个编码器计数或步骤、角度测量等等,所述遥控器115可以从所述原始位置信息计算出实际的位置信息。因此,群集控制器110和遥控器115的组合可以从主控制器105接收具有帧的形式的更少数目的相对较高级别的命令,并且随后在二者本身之间交换相对较高数目的命令和反馈,以便执行由所述各帧指导的运动。
当在所述主控制器105的控制下进行操作时,所述遥控器可以被称作如上所述的自主遥控器150。所述自主遥控器150可以操作在设定点模式下。在设定点模式下,主控制器105可以把轨迹数据发送到所述自主遥控器150。例如,所述轨迹数据可以具有PVT帧的形式,所述PVT帧通常包括对应于特定轴的位置、速度和时间标记的数字表示。
所述自主遥控器150可以执行实时算法,以便确定对应于所述轴125的相关联的一组扭矩命令,其使得该轴根据所期望的轨迹移动。该自主遥控器150随后可以使用所述扭矩命令来计算将被相应地施加给致动器140的功率。在设定点模式下,该自主遥控器150通常可以执行群集控制器的一些功能,并且可以操作来闭合其本身与其所控制的轴之间的控制回路,从而节省所述通信网络120的带宽。
可选择地,在主控制器105的控制下,自主遥控器150可以操作在点对点模式下。在该模式下,该自主遥控器150可以从该主控制器105接收运动命令,并且执行对于执行所述运动命令所必须的操作。一个示例性运动命令可以包括轴工作空间内的三维点。对于执行运动命令所必须的操作可以包括以下各项当中的一项或多项:计算轨迹,计算扭矩命令,以及计算将被施加到由所述自主遥控器150控制的轴的电动机的必要功率;从而使得所述轴到达所述三维点。
响应于所述点对点运动命令,所述自主遥控器150可以发送应答,该应答报告所述命令的结果。所述主控制器105随后可以发送具有下一个三维点的另一个点对点命令。这种交换可以继续,直到该自主遥控器150执行所期望的运动命令序列。所述点对点操作模式允许该主控制器105把被传输到该自主遥控器150的数据限制到每个运动命令一个端点,这与多个数据帧相反,从而节省了网络带宽。然而,在点对点操作模式下,所述主控制器105放松了对由多个自主遥控器150执行的轨迹进行精确同步的能力。
在图5a中示出所述群集体系结构控制系统的一个示例性应用。结合了所述控制系统的工作单元505包括两个机器人510、520以及两个基板对准器515、520。群集控制器540和三个遥控器550、555、560被用来控制机器人510。类似地,另一个群集控制器545和三个遥控器565、570、575被用来控制机器人520。主控制器580控制所述两个群集控制器540、545以及用于所述基板对准器515、525的自主遥控器585、590。所述主控制器580、群集控制器540、545、遥控器550、555、560、565、570、575以及自主遥控器585、590通过通信网络595相连。
所述机器人510、520可以是具有复杂的非线性动力学的五轴机器,而所述对准器515、525可以是两轴机器。在本例中,所述机器人510、520从指定位置拾取基板530、535,并且分别将其放在对准器525、515上。所述对准器525、515可以扫描所述基板530、535,以便得到偏心率和对准特征。在扫描之后,所述机器人510、520可以拾取所述基板530、535并且将其放置在别处。在一个实施例中,所述工作单元505可以是所述群集体系结构控制系统100(图1)的一部分。
为了最大化所述工作单元的吞吐量并且保证无碰撞操作,所述机器(也就是所述机器人510、520和基板对准器515、525)的运动应当被精确地同步。在任一个所述机器人510、520与基板对准器515、525之间可以没有动态耦合。其中的每一个可以使用独立的控制算法,而无需实时数据共享。然而,所述机器人510、520的机械配置在每一个机器人机械手(manipulator)内的各单独轴之间引入强的动态耦合。可以由群集控制器540与遥控器550、555、560相组合地管理机器人510的各单独轴之间的协调。可以由群集控制器545与遥控器565、570、575相组合地管理机器人520的各单独轴之间的协调。因此,群集控制器540与遥控器550、555、560形成一个群集,并且群集控制器545与遥控器565、570、575形成另一个群集。
在图5a中示出的工作单元505中,所述主控制器580通常可以提供监督功能,比如运动定序、数据收集、事件记录和错误处理。另外,它可以计算对应于该工作单元505内的所有运动轴的轨迹。在本例中,所述主控制器580把所述计算结果组合到特定于每一个单独运动轴的帧中,并且通过网络595在周期性基础上发送所述帧。所述群集控制器540、545和所述自主遥控器585、590识别出对应于它们控制并且相应地操作的轴的帧和命令。
例如,所述群集控制器540、545可以对于高级多输入多输出控制利用机器人510、520的动态模型,计算扭矩命令,并且把所述扭矩命令周期性地发送到其相应群集中的遥控器。
所述自主遥控器585、590可以操作在设定点模式下,并且可以执行实时算法以便确定分别对应于所述对准器515、525的相关联的扭矩命令。所述自主遥控器585、590随后可以使用所述扭矩命令来计算将被相应地施加到每个对准器515、525内的电动机的功率。
重要的是注意到,与闭合网络595上的控制回路相关联的时间关键的通信量被包含在所述两个群集当中的每一个之内,而不会给该网络595的剩余部分造成负担,特别是与主控制器580的连接,否则其将具有与集中式控制算法相关联的繁重实时通信量。
应当注意到,所述体系结构允许所述主控制器580在需要时直接控制所述自主遥控器585、590。在图5b中示出一个示例应用。在许多应用中,可以通过下面描述的分布式的基于模型的控制方法来增强性能。
这里公开的所述群集体系结构控制系统是有益的,这是因为每个群集控制器能够在其所管理的群集内提供高度集中式控制。高度集中式控制通常所需的高网络通信量通常被限制到每个群集。在需要时可以在所述通信网络120内分布各群集,并且可以把各遥控器放置得紧邻其所控制的轴,从而减少线缆连接要求并且减轻与在任何可感知的长度上运行控制信号相关联的问题。
另外,由于实时数据通信存在于所述各群集内,并且由于密集网络通信量通常被限制在所述各群集内,因此所述群集能够进行高性能控制,并且所述体系结构允许主控制器监督大量群集。结果,所述体系结构在需要时提供高性能控制、高级别的可伸缩性以及控制器的高效分配。
上面描述的一种用于控制诸如机器人510或对准器585之类的方法是要计算对应于每个轴的轨迹。如上所述,这种轨迹可以方便地由被分组成帧的一系列位置、速度和时间值定义,其被称作PVT帧。
图6示出一个示例性PVT帧605。该PVT帧605包括位置数据610、速度数据615和时间数据620。在一个实施例中,所述数据具有在一个或多个字节中被分组在一起的二进制格式。在另一个实施例中,所述位置数据610、速度数据615和时间数据620当中的每一项占用四个字节。PVT帧605可以可选地包括报头信息625和报尾信息630,二者都可以包括同步、标识、奇偶校验、纠错或其他类型的数据。PVT帧605在所述报头、位置、速度、时间和报尾数据之间或当中可以包括不同长度或数量的附加数据。应当注意到,虽然图6在所述帧的特定位置或区域内示出各种信息或数据,但是不同类型的信息和数据可以位于所述PVT帧605内的任何位置处。还应当注意到,所述PVT帧605不限于任何特定长度。
所公开的实施例的一个特征是使用这些值系列作为用于所述受控机器的动态模型的输入,以便计算将被施加给每个轴的理论扭矩,从而使得每个轴遵循所期望的轨迹。所公开的实施例的另一个特征是使用所述动态模型的各元素来缩放由所述遥控器对于每个轴所使用的反馈控制信号。
所述扭矩和缩放项可以有利地解决非线性以及各单独机器轴之间的动态交叉耦合。所述扭矩项在这里被称作前馈项,这是因为它可以不依赖于轴的实际状态,比如位置或速度。所述缩放项被称作增益项。
使用图5a的工作单元作为例子,主控制器580可以按照所命令的位置、速度和加速度来生成对应于机器人510的每个轴的轨迹。通过使用该机器人510的逆动态模型,该主控制器可以利用所述轨迹信息来生成相应的前馈项和增益项。可以在特定于每个轴的帧中把这些项与所述轨迹信息分组在一起,所述帧被称作PVT-FG帧。图7示出一个示例性PVT-FG帧705。PVT-FG帧705包括可选的报头710、位置715、速度720、时间725以及可选的报尾信息730,这与PVT帧605类似。另外,PVT-FG帧705包括至少一个前馈项735和至少一个增益项740。所述数据可以具有在一个或多个字节中被分组在一起的二进制格式。在PVT-FG帧705的一个实施例中,位置715、速度720、时间725、前馈735和增益740各占用四个字节。与PVT帧605类似,PVT-FG帧705可以包括分布在所述各个项当中或者之间的不同长度或数量的其他数据。
随后可以在网络595上分发所述PVT-FG帧。所述群集控制器540接收所述数据,其可以在两个连续帧之间进行插值以便获得瞬时的位置、速度、前馈项和增益值,并且可以利用该信息来控制所述机器人510。类似地,所述群集控制器545和自主遥控器585、590可以从所述主控制器580接收相应的数据,并且可以利用它们来分别控制机器人520和对准器515、525。
现在将详细解释一种用于产生所述前馈项和增益项的示例性技术。可以使用下面的动态模型:
其中,τi表示被施加到轴i的扭矩,θacti和θcmdi分别是轴i的实际位置和所命令的位置,{θact}和{θcmd}代表被定义为{θact}={θact1,θact2,...,θactn}T和{θcmd}={θcmd1,θcmd2,...,θcmdn}T的位置矢量,Mij是表示轴i与j之间的惯性交叉耦合的惯性矩阵元素,hi是包括对应于轴i的其他与位置和速度相关的动态效应(比如离心项、科里奥利项和重力项)的函数,ui代表对应于轴i的单位惯性系统的控制规律输出,i从1变化到n,n是轴的总数或自由度的总数,以及点和双点分别表示一阶和二阶时间导数。
假定位置和速度跟踪误差小,则可以利用所命令的量来近似实际的位置和速度。此外,通过对于i≠j忽略Mijuj项,可以用下面的逆动态模型来重写及近似等式(1)的动力学:
其中
Gi=Mii({θcmd})
上面对应于Gi和Fi的表达式分别定义了所述增益项和前馈项。下标i表示所述前馈项和增益项将被施加到哪个轴。为了进一步改进性能,可以对于每个轴利用干扰观测器来补偿所做出的简化。
在该示例机器人510中,对应于所述受控机器的轨迹和逆动态模型计算可以由主控制器580来执行。当已经确定了Gi和Fi的值时,主控制器580可以组合对应于每个轴的PVT-FG帧,并且通过网络595将其分发到该机器人510的群集控制器540。
机器人510的群集控制器540可以在其存储器内存储有指令和算法,以便例如通过在其自身与遥控器550、555、560之间发送扭矩命令并且接收反馈信号来操作该机器人510。利用来自主控制器580的PVT-FG帧,所述群集控制器540计算对应于由遥控器550、555、560控制的每个轴的增强扭矩命令。所述扭矩命令之所以被说成是增强的是因为等式2的逆动态模型以及分别来自等式3和4的所得到的Gi项和Fi项至少包括表示各轴之间的惯性交叉耦合(例如Mij)以及与位置和速度相关的效应(例如hi)的元素和函数。因此,所述群集控制器540利用所述Gi项和Fi项来计算所述扭矩命令,从而得到更为精确地控制与其相关联的轴的运动的扭矩命令。
一旦计算出所述增强扭矩命令,所述群集控制器540随后可以将它们分发到适当的遥控器550、555、560。通常可以利用所述遥控器550、555、560所控制的轴的特性对所述遥控器进行预编程,所述特性例如是电动机的数目、每个电动机的相、相电阻、反EMF常数等等。响应于所述增强扭矩命令,遥控器550、555、560可以计算将被施加到其所控制的电动机的正确电压、电流或功率。
对类似于机器人510的五轴机器人应用各种算法,其中包括使用等式2、等式1的那些算法以及常规的单输入单输出(SISO)反馈算法,以便比较跟踪误差并且检验用于分别产生所述增益项Gi和前馈项Fi的所述示例性技术的功效。所述五轴机器人是一种通常在半导体制造应用中被用于自动捡放操作的类型。该五轴机器人包括一条关节臂,其具有两个操作在平行水平面内的末端执行器并且由一个垂直提升驱动器补充。这一特定应用表示一种富有挑战性的试验台,因为其动力学是高度非线性的,其中在各轴之间具有强的交叉耦合。除了其他操作之外,所述五轴机器人特别被命令执行第一末端执行器在径向上的直线延伸移动。
图8示出对应于每一种所应用的算法的第一末端执行器的所测量的跟踪误差,特别是其法向分量,所述法向分量表示该第一末端执行器与所期望的直线路径的偏差。可以观察到,使用等式2的算法(810)的跟踪性能与使用等式1的算法(820)的性能接近,并且其性能明显优于所述常规的单输入单输出反馈算法(830)。
如前面关于所述群集体系结构控制系统100所提到的那样,重要的是精确地同步该系统的各轴,以便最大化吞吐量并且保证无碰撞的操作。
所公开的实施例的一个特征是对由所述群集体系结构控制系统100控制的操作进行同步,这是通过在每一个所述网络节点上保持公共的精确时间参考并且对所有时间相关的网络通信量加时间标记而实现的。特别地,利用由PVT和PVT-FG帧所描述的动作应当发生的时间来给所述帧加标记,从而在所述通信网络120上确保轴运动的同步。
参考图2,主控制器105包括计时电路260,其可以具有高分辨率寄存器265和低分辨率寄存器270。该主控制器还可以包括定时控制电路,其用于执行与在各网络节点之间保持公共时间参考相关联的其他操作。参考图3,每个群集控制器110也可以包括计时电路340,其具有高分辨率寄存器345和低分辨率寄存器350。还参考图4,每个遥控器115和自主遥控器150也可以具有计时电路450,其包括高分辨率寄存器455和低分辨率寄存器460。
为了保持公共时间参考,所述主控制器可以在每个总线循环的开始在通信网络120上发出“循环开始”消息。一个示例性总线循环可以占用大约125微秒,并且可以从“循环开始”消息开始,其后是用于等时通信量和异步通信量的间隔,正如图9a中所示出的那样。图9b示出一个示例性循环开始消息,以及图9c示出示例性高分辨率寄存器265、345、455。
回来参考图2,所述网络接口230通常可以提供一种用于基于每个循环开始消息来自动更新所述高分辨率寄存器265、345、455的机制。
每个网络节点还可以包括一种在新的等时循环已经开始时提供中断的机制,也就是在所述高分辨率寄存器的低位比特发生翻转并且在已经过去了64秒时提供中断,从而表明该高分辨率寄存器的第7比特已经改变。当所述通信网络120是IEEE1394网络时,可以根据IEEE1394标准来提供一些或者全部上述特征。在IEEE1394网络中,所述高分辨率寄存器可以被称作循环时间(CYCLE_TIME)寄存器,并且所述低分辨率寄存器可以被称作总线时间(BUS_TIME)寄存器。
网络同步可以如下实现。在通信网络120已经被初始化或者重置之后,主控制器105可以取得对该通信网络120的控制,并且可以利用计时电路260和定时控制电路275来保持所述低分辨率寄存器270。在初始化或重置时,每个群集控制器110、遥控器115和自主遥控器150可以将其自身的低分辨率寄存器350、460与该主控制器105上的低分辨率寄存器270同步。每个群集控制器110、遥控器115和自主遥控器150随后基于其高分辨率寄存器345、455来保持及更新其低分辨率寄存器350、460。所述通信网络120本身通常可以提供用于自动同步该通信网络120上的各高分辨率寄存器265、345、455的设施。所述主控制器105向各群集控制器130或自主遥控器150发送PVT或PVT-FG帧。
在这里公开的同步的系统中,所述PVT或PVT-FG帧包括时间标记,该时间标记指示将来应当何时执行所述PVT或PVT-FG帧。在到达所指示的时间后,所述群集控制器130和自主遥控器150根据在所述帧中接收到的信息来操作其相应的轴。
总之,在所述主控制器105、各群集控制器110、各遥控器115以及各自主遥控器150之间保持公共时间参考。通过保持该公共时间参考以及利用由PVT和PVT-FG帧所描述的动作应当发生的时间来给所述帧加时间标记,可以精确地维持所述通信网络120上的轴运动的同步。
如上所述,已经针对工业控制设备开发了轻量级IEEE 1394协议,其被称作仪器和工业控制协议(1394TA IICP,被称为“IICP”)。
所述IICP和其他类似协议可以从主控制器提供流控制、用于创建以及闭合系统组件之间的通信连接的框架、用于在总线重置之后重新激活连接的机制以及用于解析到通信连接的物理地址的机制,从而从遥控器上免除了列举所述网络的负担。另外,在使用这些类型的协议时,通信连接可以在总线重置事件期间持续存在。
所公开的实施例的一个特征是提供对所使用的协议的扩展,其包括使用方案以及用于在所述主控制器105、群集控制器110和自主遥控器115之间交换信息的消息格式。所述使用方案和消息格式被统称为协议扩展。
这里描述的网络协议扩展的有利之处在于,它们提供了用于网络通信消息的特定消息框架。所述消息的内容对所采用的传输协议来说可以是透明的。
在图10中示出在所述控制系统100中所使用的协议类型的一种示例性结构。该协议可以包括应用层1105、连接层1110和事务层1115。应用层1105使用连接层1110的设施,并且假定在主设备(比如主控制器105(图1))与远程设备(比如遥控器150(图1))之间建立了点对点连接,其被称作“插头(plug)”。
图11示出如何能够实施这些插头的一个例子。所述主设备可以打开到每个所述远程设备的一个或多个插头1020。插头1020提供一个或多个端口1025、1030。每个端口1025、1030提供用于发送帧的装置,比如PVT或PVT-FG帧,其中从所述端口的观点来看,所述帧是不透明的数据。端口1025、1030通常以双工模式操作,即可以同时在两个方向上发送数据。应用层1105可以把所述端口用作控制端口1030或数据端口1025。在控制端口1030上的消息通常具有被结合在该消息的报头中的元数据,其描述该消息的内容。通常通过编程、预定表、定义或者通过其他措施使得所述遥控器150和主控制器105知道所述数据端口消息结构。在控制端口1030上的消息可以定义一个或多个数据端口1025上的消息的内容或者以其他方式标识一个或多个数据端口1025上的消息。在一些实施例中,这可以允许在没有报头信息或任何消息定义的情况下发送数据端口消息,从而降低了与发送这种消息相关联的开销。所述控制端口与数据端口之间的交互可以被隔离到特定插头,或者特定控制端口上的消息可以提供对于向相同的或不同的远程设备打开的其他插头的数据端口的控制。
应当理解,在所公开的实施例中描述的所述协议扩展在使用中不限于特定协议,而是可以用于支持插头的任何协议。
这里描述的应用层扩展利用了分层方法,其可以包括相对较简单的控制端口消息类型。所述扩展还可以提供用于特定于销售商的扩展的框架,也就是可以为特定设备制造商的组件专门定制的消息。这便于使用被包在多种控制端口消息类型中的特定于销售商的应用层命令集。数据端口消息格式也可以是特定于销售商的。
控制端口1030通常可以在各系统组件之间交换命令和响应。数据端口1025可以传送被寻址到遥控器或主控制器上的特定对象的数据帧。通常可以从端口指定当中暗示所述寻址,并且所述寻址可以不是所述消息的一部分。所述数据端口消息结构通常可以是特定于销售商的。
在图17中给出一个示例性控制消息结构1700。四字节1705可以表示32比特宽的数据。D字段1710可以表示方向,其表明所述消息例如是从主控制器105发送到遥控器150还是从遥控器150发送到主控制器105。消息类型1715可以表示下面解释的已定义消息。可以定义多达2^15个消息类型。消息ID字段1720可以被用于匹配对应于事务类消息的命令和响应,例如动作(ACTION)类型消息。对于流类消息,例如串(STRING)类型消息,消息ID字段1720可以被用来提供附加的排序信息。下面将解释动作类型消息和串类型消息。在一些实施例中,消息ID字段1720可以是可选的。保留字段1725可以提供特定于销售商的扩展在消息报头内的占位符。一些特定控制端口消息可以包括动作、事件(EVENT)和串类型消息。在插头的控制端口上发送的消息可以都具有类似的结构。所公开的实施例的一个特征在于,所述消息类型可以相对较少,从而在特定命令的实施方式中允许遥控器级别上的高度灵活性。例如,所有用于设置及获得参数的命令都可以是动作命令,其中将被设置/获得的实际参数以及所述数据的格式可以由遥控器制造商进一步定义。因此,为了与所述控制系统兼容,遥控器制造商只需要实施非常有限的命令集。
在图18中示出一个示例性动作消息1800。动作消息1800可以被用来向遥控器发送命令,以及由遥控器发送针对先前从主控制器发送的命令的响应。针对先前发送的动作命令的响应通常可以拷贝该命令的报头(D字段1810除外)。对于动作命令,可能需要消息ID字段1820。所述消息体的格式可以特定于特定的远程设备销售商。
动作消息可以被用于在诸如遥控器之类的远程设备上设置、获得或存储配置参数,配置一个或多个数据端口以用于追踪、事件、状态、PVT或其他特定于应用的操作,操作远程设备上的I/O,当在远程设备上生成轨迹时发送对应于离散移动的运动命令,以及发送所述远程设备所支持的任何其他不同命令,以便例如进行配置、诊断或者把该设备转变到另一个操作状态。动作消息可以是特定于销售商的。
在从远程设备到主控制器的动作响应消息中,保留字段1825可以包括一个8比特的特定于销售商的结果码。通过这样的规定,可以通过仅仅发送报头作为响应来实施仅包括结果码的针对动作命令的响应。用于设置远程设备中的参数值的命令是这种操作模式的一个例子。
特定于销售商的报头1830可以指示设置、获得或存储特定设备参数的其中一项。轴ID字段1835为特定设备的特定设备参数提供多达256个轴(或实例)的进一步分派。销售商命令ID1840可以指示特定于销售商的设备参数或命令。销售商命令ID1840可以支持多达2^16个单独的命令或参数。特定于销售商的命令参数1...n 1845可以在命令或响应中提供一个或多个可选参数。
在图19中示出一个示例性事件消息结构1900。事件消息1900被用来从遥控器向主控制器发送事件数据。所述事件消息还可以提供使用控制端口消息而不是对于给定的特定于应用的数据传输打开单独插头的机制。可以通过事件消息发送事件数据,以替代打开特定于事件的插头。
消息报头中的消息ID字段1920被用来表示虚拟事件连接号。该字段中的值可以是特定于销售商的“添加参数到事件”控制消息中的参数。
在图20中给出特定于销售商的事件消息2000的一个例子。在该例中,可以建立多达6个虚拟事件连接。在该例中,事件参数字段的数目“事件参数1...6(2045)”取决于对于事件捕获所建立的特定驱动参数。这些字段表示在所述事件发生时的参数值。如果对于事件捕获没有设置给定参数,则所述事件参数字段包含0。对于该特定设备制造商,可以配置多达6个参数以作为事件参数。
所述串消息类型被用来通过发送未格式化的文本数据来创建从主控制器到遥控器以及从遥控器到主控制器的虚拟串行通道。在图21中描绘了串消息结构2100的一个例子。
消息ID 2120可以随着从远程设备或主控制器发送的每一个消息而顺序地增大(这些计数器独立地增大),并且在所述消息被无序接收的情况下提供对通信量进行定序的附加措施。
在图22中给出一个示例性的特定于销售商的串命令2200。在该例中,所述消息体系列2245可以各包括四个字符。该例的远程设备可以支持多达6个四字节的消息体信息,并且可以使用明文ASCII编码来对字符进行编码。
数据端口消息结构通常可以表示纯数据并且可以没有报头。它们还可以是特定于远程设备销售商的,并且应当在该情境中被解释。在该例中,远程设备制造商使用PVT状态和迹线(TRACE)消息类型。还可以使用其他消息类型。
在图23中示出一个示例性的PVT或PVT-FG消息结构2300。该PVT消息通常可以表示沿着运动路径的一个轨迹设置点。如前所述,通常从主控制器105向一个或多个群集控制器110或自主遥控器150发送PVT或PVT-FG消息。所述PVT或PVT-FG消息被用来发送加了时间标记的轨迹设置点数据。可选地,所述PVT或PVT-FG消息还可以包括扭矩极限项。所述PVT或PVT-FG消息还可以被用来在接收群集控制器110或自主遥控器150处在操作前状态下时发送周期性时间标记。所述PVT或PVT-FG消息可以在周期性速率下被发送,比如100Hz。在一个实施例中,所述PVT消息包括所命令的位置2305、所命令的速度2310以及网络时间2315。所述PVT或PVT-FG消息可以可选地包括以下各项当中的一项或多项:前馈项2320、增益项2325以及扭矩极限项2330。
所述状态(STATUS)消息通常可以在该状态消息被生成时给出远程设备状态。在图24中描绘了状态消息2400的一个例子。
所述状态消息通常从一个或多个群集控制器110或自主遥控器150被发送到主控制器105。所述状态消息可以被用来从一个或多个群集控制器110或自主遥控器150向主控制器105发送加了时间标记的状态、实际位置和速度数据。
可选地,所述状态消息可以被用来发送加了时间标记的I/O数据。所述状态消息可以在周期性(例如100Hz)速率下被发送,或者可以在非周期性速率下被发送,以用于低等待时间I/O事件捕获。在一个实施例中,所述状态消息可以包括实际位置2405、各个数字I/O设备2410的状态、时间标记2415、所命令的位置2420、实际速度2425。
所述状态字2430包含关于驱动器误差/故障/警告状态的信息。它还包含关于远程设备PVT缓冲器的状态的信息(流控制信息)。
在图32中给出一个示例性迹线消息3200。迹线消息可以包含多达n个采样记录,每个记录可以具有多达m个样本。所述帧还应当遵循下面的特定于设备的约束:
n*m<=128
m<=6
迹线消息3200通常从一个或多个群集控制器110或遥控器115、150被发送到主控制器。迹线消息3200被用来向主控制器105发送加了时间标记的、周期性采样的诊断数据。迹线消息3200可以在高达例如16kHz的周期性或可变速率下被发送,并且可以通过动作命令来设置。还可以通过动作命令来设置迹线的数据结构和其他参数(触发、延迟、采样率等等)。另外,与一些其他消息一样,迹线消息3200可以通过专门被打开来支持高分辨率数据传输的插头而被发送。在一个实施例中,迹线消息包括多个迹线变量3205。
所公开的实施例的协议扩展可以包括所述迹线消息的特定实施方式,其中可以包括诸如PVTFG、HIRES_POS以及HIRES_VEL消息之类的消息类型。上面描述的状态消息也可以被构造为迹线消息的特定实施方式。
如前所述,PVT或PVT-FG消息通常从主控制器105被发送到一个或多个群集控制器110或自主遥控器150。所述PVT或PVT-FG消息被用来发送加了时间标记的轨迹设置点数据。可选地,所述PVT或PVT-FG消息还可以包括扭矩极限项以便支持教导模式,正如下面将详细描述的那样。所述PVT或PVT-FG消息还可以被用来在接收群集控制器110或自主遥控器150处在操作前状态下时发送周期性时间标记。所述PVT或PVT-FG消息可以在周期性(例如100Hz)速率下被发送。在一个实施例中,所述PVT消息包括4字节的时间标记、4字节的所命令位置以及4字节的所命令速度。所述PVT-FG消息可以可选地包括以下各项当中的一项或多项:4字节的前馈项、4字节的增益项以及4字节的扭矩极限项。
HIRES_POS消息通常从一个或多个群集控制器110或自主遥控器150被发送到主控制器105。所述HIRES_POS消息被用来把加了时间标记的周期性采样的实际位置从一个或多个节点发送到主控制器。所述HIRES_POS消息可以在高达例如16kHz的周期性或可变速率下被发送,并且可以通过下面讨论的动作命令来设置。另外,所述HIRES_POS消息可以通过专门为高分辨率数据传输而打开的插头来发送。在一个实施例中,所述消息包括一个具有4字节的时间标记和4字节的实际位置的块。所述块可以被重复多达16次,其在62.5采样率下表示1ms的数据,从而总长度达到128字节。
在一种替换格式中,所述HIRES_POS消息可以包括4字节的时间标记和4字节的重复实际位置字段,该字段可以被重复多达16次,其表示1ms的16kHz采样的数据。假设利用所述采样率使得样本具有相等间隔,并且假设在所述时间标记中指定的时间处对第一位置字段进行采样,则可以利用每帧一个时间标记来构造所述消息。
HIRES_VEL消息通常从所述一个或多个群集控制器110或自主遥控器150被发送到主控制器105。所述HIRES_VEL消息被用来把加了时间标记的状态以及周期性采样的实际速度数据发送到主控制器105。所述HIRES_VEL消息可以在高达例如16kHz的周期性或可变速率下被发送,并且可以通过下面讨论的动作命令来设置。另外,所述HIRES_VEL消息可以通过专门为支持高分辨率数据传输而打开的插头来发送。在一个实施例中,所述HIRES_VEL消息可以包括4字节的时间标记和4字节的实际速度。
除了从群集控制器110和自主遥控器150把信息运送到主控制器105之外,根据上面的描述,可以把状态、HIRES_POS消息以及HIRES_VEL消息从一个或多个遥控器115发送到其中一个群集控制器110或发送到主控制器105。
因此,所公开的实施例包括协议扩展,也就是一个用于在主控制器105、群集控制器110、遥控器115以及自主遥控器150之间交换信息的唯一消息集。该唯一消息集的有利之处在于,其除由标准网络协议(例如所述1349TA IICP)提供的服务之外还为所述群集体系结构控制系统100提供了附加的功能。
在诸如所述群集体系结构控制系统100之类的控制系统中,可能有利的是在发生特定事件时从一个或多个所述群集控制器110或遥控器115、150捕获瞬时轴或其他特性。图12示出工作单元1200,其中这种特征可能是有益的。工作单元1200包括机器人1210,其具有群集控制器1215和三个遥控器1230、1235、1240。群集控制器1215通过通信网络1250与主控制器1245通信。在一个实施例中,工作单元1200可以是所述群集体系结构控制系统100(图1)的一部分。
作为一个例子,对于由所述机器人1210所承载的圆形有效载荷(比如半导体基板)的偏心或未对准的“操作中(on the fly)”识别和校正,可能需要瞬时数据捕获。在这种情况下,该机器人1210可以移动通过一组固定传感器1216,所述传感器检测该有效载荷1205的前沿和后沿。遥控器1230、1235、1240可以捕获某些特性,比如所述机器人1210的每个轴的位置和速度,并且将所述数据提供给主控制器1245。该主控制器1245随后可以在检测到所述有效载荷边沿时确定所述机器人的末端执行器1220的位置,并且随后确定该有效载荷1205的中心的实际位置。一旦确定了所述有效载荷中心,主控制器1245就可以改变该机器人1210的轨迹,从而以居中的方式递送所述有效载荷1205,而不管初始偏心的数量和方向。
在另一个例子中,所述机器人1210可以包括耦合到群集控制器1215的一个或多个互锁1225。如果一个互锁1225出于某种原因被解扣(trip),则可能重要的是确定在该互锁1225被解扣时该机器人的各轴的位置以及该机器人1210可能与其相互作用的其他设备的位置。
所公开的实施例的一个特征是在发生触发事件时或者与触发事件相关联地从所述群集体系结构控制系统100的一组轴捕获瞬时数据。虽然下面描述的程序通常包括主控制器1245,但是应当理解,具有适当处理能力和存储器的群集控制器或遥控器也可以执行由主控制器1245提供的功能。
参考图12并且参考图13的流程图,一个瞬时数据捕获序列可以如下进行。如块1305和1306中所示,可以指示遥控器1230、1235、1245把某些事件识别为触发事件,例如一个或多个传感器1216的改变的输出状态。如块1310中所示,还可以指示遥控器1230、1235、1240在发生特定事件时与所指定的一组节点进行通信。如块1315和1316中所示,还可以指示遥控器1230、1235、1240以所指定的采样率缓冲一个或多个特定感兴趣的量,比如轴位置或速度,其中所述指定的采样率通常低于被用来控制特定轴的伺服回路的采样率。因此,至少在一个实施例中,可以不必采样感兴趣的量的每一个数据点。所述指令可以是每个遥控器的操作系统的一部分,或者可以从群集控制器1215或主控制器1245提供指令。所述感兴趣的量、触发事件以及所指定的一组节点对于每一个遥控器可以是不同的。
一旦得到指示,遥控器1230、1235、1240就开始缓冲数据(块1320)并且观察触发事件(块1325)。在发生触发事件之后,识别出该事件的遥控器记录该事件的时间(如块1330中所示),并且如块1335中所示,把具有事件时间的消息发送到对于该特定事件所述指定的该组节点。如块1340中所示,所述指定的节点对其缓冲的感兴趣的量进行插值,以便确定在所述事件时间处的所述量的值。如块1345中所示,所述指定的节点把所述感兴趣的量的插值后的值发送到主控制器。如块1350中所示,该主控制器随后可以使用所述数据来改变所述系统内的轨迹或操作。
在一些情况下,例如由于需要大量插头,因此在各遥控器之间的直接通信可能是不合期望的。在这种情况下,主控制器可以把所述事件时间分发到所指定的节点。
被修改成允许由主控制器进行事件时间分发的瞬时数据捕获数据程序可以如下进行。现在参考图12和图14,如块1405和1410中所示,可以指示遥控器1230、1235、1240把某些事件识别为触发事件,比如一个或多个传感器1216的改变的输出状态。如块1411和1415中所示,可以指示遥控器1230、1235、1240以所指定的采样率缓冲一个或多个特定感兴趣的量,比如轴位置或速度,其中所述指定的采样率通常低于被用来控制特定轴的伺服回路的采样率。一旦得到指示,遥控器1230、1235、1240就开始缓冲数据(块1420)并且观察触发事件(块1425)。
在发生了触发事件之后,识别出该事件的遥控器记录该事件的时间(如块1430中所示),并且如块1435中所示,把具有所述事件时间信息的消息发送到主控制器1245。如块1440中所示,该主控制器1245随后把所述事件时间发送到对于该特定事件所指定的该组节点。在块1445中,所述指定的节点对其缓冲的感兴趣的量进行插值,以便确定在所述事件时间处的所述量的值。如块1450中所示,所述指定的节点把所述感兴趣的量的插值后的值发送到主控制器1245。如块1455中所示,该主控制器1245随后可以使用所述数据来改变所述系统1200内的轨迹或操作。
作为另一种替换方案,如果一个或多个遥控器例如由于有限的存储器或计算能力而不具有足够的资源来进行数据缓冲和插值,则也可以由主控制器执行这些操作。然而,这种方法可能导致通信网络的通信量的增加。
参考图12和图15,被修改成允许由主控制器进行数据缓冲和插值的瞬时数据捕获程序可以如下进行。如块1505和1506中所示,可以指示遥控器1230、1235、1240把某些事件识别为触发事件,比如一个或多个传感器1216的改变的输出状态。如块1510和1511中所示,还可以指示遥控器1230、1235、1240以所指定的采样率来监视一个或多个特定感兴趣的量,比如轴位置或速度,其中所述指定的采样率通常低于被用来控制特定轴的伺服回路的采样率。一旦得到指示,遥控器1230、1235、1240就开始周期性地把所监视的感兴趣的量发送到主控制器1245(块1515),如块1520中所示,该主控制器例如使用循环缓冲器在指定时间段内存储所述量。同时,如块1525中所示,遥控器1230、1235、1240还开始监视触发事件。如块1530中所示,在触发事件发生之后,识别出该事件的遥控器记录该事件的时间,并且如块1535中所示,把具有所述事件时间信息的消息发送到主控制器1245。如块1540中所示,主控制器1245随后对所缓冲的感兴趣的量进行插值,以便确定在所述事件时间处的所述量的值。如块1545中所示,主控制器1245随后可以使用所述数据来改变所述系统1200内的轨迹或操作。
虽然在上面描述的程序中假设由所述遥控器识别触发事件、观察触发事件并且记录它们发生的时间,但是应当理解,自主遥控器、群集控制器或主控制器也可以执行上面参考所述遥控器描述的这些功能。
在许多事件捕获应用中,特别出于瞬时位置捕获的目的,所得到的数据包括由于触发所述事件的传感器的过渡延迟所导致的误差。这些误差在高速/高精度应用中变得特别显著,其中,从事件物理地发生的时间开始到用信号向控制系统通知该事件的时间点为止,所述受控机器的轴可能行进了不希望有的长距离。
在上面对圆形有效载荷1205的偏心或未对准进行“操作中”识别和校正的例子中,从该有效载荷的边沿穿过传感器1216的位置开始到识别出所述触发事件并且记录所述时间的位置为止,机器人1210的末端执行器1220可能行进了不希望有的长距离。假设所述信号过渡延迟是确定性的,则可以通过下面描述的简单的延迟补偿机制来最小化这些误差。
为了估计从事件发生的位置开始到该事件实际被所述控制系统识别出的位置为止的运动长度,除了位置数据之外还需要捕获速度信息。假设感兴趣的轴的速度在所述两个位置之间保持基本上恒定,并且假定所经过的时间等于已知的时间延迟,则可以重建所述感兴趣的轴在所述两个位置之间的运动,以便利用下面的表达式获得对每个轴在所述事件物理地发生的时刻处的实际位置的估计:
其中,θacti表示轴i在位置捕获事件发生时的实际位置,θi和分别表示由所述控制系统捕获的轴i的位置和速度,τ是传感器过渡延迟,以及m表示感兴趣的轴的数目。
虽然传感器的过渡延迟通常被包括在规格中,但是实际的等待时间常常取决于使用所述传感器的特定条件。因此,可能需要通过校准过程获得所述过渡延迟的更为精确的值。参考图12和图16,将解释涉及单个运动轴的一个例子。图12的工作单元1200还可以包括至少一个对准器1250,其具有由自主遥控器1255控制的轴1270。该自主遥控器1255又由主控制器1245控制。有凹口的基板1260可能已被放置在所述对准器1250上,并且该对准器还可以具有电路1265,该电路包括用于检测所述凹口在所述基板1260中的位置的传感器。如块1605中所示,自主遥控器1255可以移动轴1270以便触发位置捕获事件,其在本例中是所述电路1265感测到所述基板1260中的凹口。自主遥控器1255以规则操作速度移动轴1270,并且如块1610中所示,记录当所述电路1265检测到所述事件时轴1270的瞬时位置和速度。如块1615中所示,自主遥控器1255随后在相同的方向上移动轴1270,以便以低得多的速度重复所述事件,该速度被选择成使得轴1270在对应于所述电路1265的过渡延迟的时间间隔内所行进的距离小于所要求的位置捕获精度。结果,可以忽略由于任何过渡延迟所导致的位置误差。再次,如块1620中所示,在所述电路1265检测到所述事件时捕获轴1270的瞬时位置。如块1625中所示,可以使用所得到的数据通过对等式(5)求解τ来估计所述电路过渡延迟,其中用在低速下的位置捕获结果来近似θ
acti,并且θ
i和
是在规则操作速度下的事件捕获结果。
如果在所述位置捕获事件中涉及到多个轴的组合运动,则所述校准程序需要考虑到所述系统的(多个)传感器和(多个)移动组件的几何配置。可以在共同转让的美国专利申请No.10/739,375中找到对应于这种情况的示例校准程序,该申请被结合以作参考,其中利用位置捕获机制来对有效载荷的偏心进行操作中识别。
如果所述位置捕获事件由受控机器(例如对准器1250)的运动触发,则可以由所述控制系统使得所述校准过程完全自动化。
因此,所公开的实施例提供了多种用于捕获关于所述群集体系结构控制系统中的特定感兴趣的量的数据的方法。所述方法的有利之处在于,所述方法不要求具有极低等待时间的通信网络,而这对于在各网络节点之间传播触发事件可能是必要的。当触发事件发生时,识别出所述事件的控制器记录所述事件时间。可以对来自一个或多个轴的所述事件时间附近的数据进行插值,以便产生对应于所述事件时间的所计算出的数据值。所述计算出的数据值可以被用来改变所述系统1200内的轨迹或操作。此外还提供一种校准程序来解决在事件发生的时间与由所述控制系统识别出该事件的时间之间的差异。
需要不受限制的旋转的机器人可以使用滑环或者电感性/电容性馈通,以便通过可旋转的连接来连接信号或功率。随着频率和带宽的增大,这些类型的连接变得越来越难于实施及维持。在真空机器人的情况下,滑环可能会给出污染源。对于安装在汽车上或转车台(traverser)上的机器人,提供通信和功率通常需要具有服务回路的电缆。另外,到各系统组件的服务连接通常需要连接器和相关联的电缆。
所公开的实施例的一个特征是利用无线连接来提供各系统组件之间的通信,以便消除由于线缆连接、滑环、馈通和各种机械连接的物理属性所造成的问题,从而与有线连接相比降低维护需求并且提高可靠性。
参考图1,通信网络120可以包括一个或多个无线部分,其提供主控制器105、群集控制器110、遥控器115与自主遥控器150中的一个或多个之间的通信路径。
图25示出所述群集体系结构控制系统100的一部分,其中实施了无线连接。机器人2505可以包括多个轴,并且可以由群集控制器2510和三个遥控器2515、2520、2525控制。主控制器105(图1,这里再次示出)通过通信网络120控制群集控制器2510。在该实施例中,群集控制器2510和通信网络120具有相应的无线接口2530、2535,所述无线接口提供二者之间的无线连接2540。无线接口2530、2535可以提供任何合适的无线通信协议或者信令技术或标准,比如TDMA、CDMA、IEEE802.xx、CIP协议、蓝牙、近距离RF、光学等等。所选择的无线协议可以包括诸如加密传输之类的安全性特征,以便防止篡改。
另外,例如在各控制器、轴、末端执行器和服务连接之间的其他通信路径也可以是无线的。更进一步,在机器人自动化系统中,负载端口、风扇系统、过滤器单元等等也可以利用无线连接。所述无线连接的有利之处在于,它们允许在无需用电缆侵占组件的周围环境的情况下进行通信。例如,现场服务技师可以在不必进入组件的工作空间的情况下连接到该组件。利用无线连接和协议通常会简化组件连接,并且在一些情况下只有电源连接才需要线缆连接。
可能需要所公开的控制系统100允许在每一个所述组件的工作空间内的人类存在,并且可以包括确保系统完整性的功能。
诸如门开关之类的硬件互锁通常在操作员处在经受控制的机器(比如机器人)的工作空间内时防止对电动机供电。然而,当教导系统组件时,也就是当所述组件处在教导模式下时,可以绕过正常的硬件互锁,以便允许操作员进入所述机器人的工作空间。在许多实例中,被用来指导该机器人的示教盒(teach pendant)具有一个“活人”开关,在不对该开关施加压力的情况下,该开关移除到该机器人的功率。根据所公开的实施例,主控制器105或群集控制器110还可以提供用来确保把所述机器人的速度和力保持在可接受的极限内的命令,所述极限被规定成允许所述工作空间内的人类存在。
所述控制系统100可以结合几个特征以便允许人类存在。参考图1,在一般系统操作期间,主控制器105可以生成对应于各单独轴125的运动简档。在图12的例子中,几个轴可以被分组在一起以作为机器人1210的一部分,并且主控制器1245可以为由遥控器1230、1235、1240控制的每个轴生成一系列PVT帧,从而使得末端执行器1220执行特定轨迹。应当注意到,虽然所述末端执行器可以在恒定速度下移动,但是构成该机器人1210的不同轴的速度可能会随着位置和时间而改变。因此,所述PVT帧的速度参数可能会由于机器人运动学而关于位置和时间发生改变。当操作员处在工作单元1200内时,所述系统可以使用速度限制技术来保护操作员。实际上,所述系统可以生成轨迹,从而使得所得到的末端执行器运动简档处在所要求的速度极限内。这可以通过如下措施实现:对于所述机器人如上所述地计算所述轨迹,同时把对应于由遥控器1230、1235、1240控制的轴的PVT帧的速度参数设置为与位置和时间相关的不可超出的极限。
同样,虽然所述末端执行器可能会在特定方向上展现出恒定的力,但是构成所述机器人1210的不同轴的扭矩可能随着位置和时间而改变。还可以在操作员处在工作单元1200内时施加与位置和时间相关的扭矩极限,从而通过向被发送到群集控制器1215的各帧添加一项而使得所述末端执行器的所得到的力保持低于特定极限,其中该群集控制器1215管理遥控器1230、1235、1240。在所述机器人1210的特定位置下,在由所述电动机在轴水平下施加的扭矩与由所述末端执行器产生的力之间存在唯一关系。因此,有可能使用该机器人的模型来计算最大电动机扭矩,从而使得由末端执行器1220产生的相应的力无法超出最大允许值。可以在每次生成对应于由遥控器1230、1235、1240控制的各轴的新的一组PVT或PVT-FG帧并将其发送到群集控制器1215时计算所述最大扭矩。
当前实施例的一个特征在于,在教导操作模式下利用被称作PVT极限(LIMIT)帧的独特消息帧。所述PVT极限帧可以类似于在上面的图6和图7中示出的帧,然而,其速度项被计算成不超出特定极限并且它们包括可选的扭矩极限项。
图26示出一个具有扭矩极限项的示例性PVT极限帧2600。该PVT极限帧2600包括位置数据2610、速度数据2615和时间数据2620。在一个实施例中,所述数据具有在一个或多个字节内被分组在一起的二进制格式。在另一个实施例中,所述位置数据2610、速度数据2615和时间数据2620当中的每一项占用四个字节。PVT极限帧2600可以可选地包括报头信息2625和报尾信息2630,二者都可以包括同步、标识、奇偶校验、纠错或其他类型的数据。
作为所公开的实施例的一个特征,PVT极限帧2600包括扭矩极限项2635,其指定一个不可超出的扭矩极限。PVT极限帧2600还可以包括处在所述报头、位置、速度、时间和报尾数据之间或当中的不同长度或数量的附加数据。PVT极限帧2600可以可选地包括用于任何其他合适数据的另一个数据字段2640。应当注意到,虽然图26示出处在所述帧的特定位置或区域内的各种信息或数据,但是不同类型的信息和数据可以位于所述PVT极限帧2600内的任何位置处。还应当注意到,所述PVT极限帧2600不限于任何特定长度。
图27示出一个具有可选的扭矩极限项的示例性PVT-FG极限帧2700。该PVT-FG极限帧2700包括可选的报头信息2710、位置信息2715、速度信息2720、时间信息2725和可选的报尾信息2730。
另外,PVT-FG极限帧705包括至少一个前馈项2735和至少一个增益项2740。所述数据可以具有在一个或多个字节内被分组在一起的二进制格式。在PVT-FG极限帧705的一个实施例中,所述位置2715、速度2720、时间2725、前馈2735和增益2740项各占用四个字节。与PVT极限帧2600类似,PVT(FG)极限帧2700可以包括分布在各项当中或之间的不同长度或数量的其他数据。
与PVT帧2600类似,所公开的实施例包括作为PVT-FG极限帧2700的一部分的扭矩极限项2745,其指定一个不可超出的扭矩极限。PVT极限帧2700还可以包括处在所述报头、位置、速度、时间和报尾数据之间或当中的不同长度或数量的附加数据。可以包括用于任何其他合适数据的另一个数据字段2750。应当注意到,虽然图27示出处在所述帧的特定位置或区域内的各种信息或数据,但是不同类型的信息和数据可以位于PVT-FG极限帧2700内的任何位置处。还应当注意到,所述PVT-FG极限帧2700不限于任何特定长度。
如上所述,可以计算所述速度和扭矩极限项,以便对于所述末端执行器1220的速度和力施加总体极限(图12)。对于所述末端执行器计算轨迹,从而使其速度不会超出所指定的极限。随后使用上面描述的所述机器人的逆运动学等式把所得到的位置、速度和加速度简档转换成各单独轴的位置、速度和加速度。把所述轨迹信息转换成PVT极限帧或PVT-FG极限帧,并且将其发送到管理遥控器1230、1235、1240的群集控制器1215。
应当理解,例如如果一些或者所有机器人轴由自主遥控器控制而不是由从属于群集控制器的遥控器控制,则主控制器还可以把PVT极限或PVT-FG极限帧发送到自主遥控器。
作为所公开的实施例的一个方面,在教导操作模式期间,管理遥控器1230、1235、1240的群集控制器或者通常是控制一些或所有机器人轴的自主遥控器可以操作来交叉检查由主控制器1245发送的轨迹数据。因此,当所述控制器接收到PVT极限帧时,该控制器可以操作来检验该消息及其数据的适用性,这是通过执行多次交叉检查而实现的,其中包括检查最大速度、速度跟踪窗口、速度反跳时间、最大扭矩以及最大扭矩反跳时间。
为了检查最大速度,所述控制器可以识别出所述轴处在教导模式下,并且还识别出对应于该轴的最大速度极限。在接收到一帧时,该控制器验证所述速度项低于在教导模式下对于该轴所指定的最大速度。如果超出了所述最大速度,则该遥控器可以向主控制器发送告警。
所述控制器还可以确定速度跟踪窗口,也就是对应于来自帧消息的所命令的速度与实际测量的速度(比如由所述轴的编码器所测量的)之间的差的最大值。如果超出了该速度跟踪窗口,则该遥控器可以如上所述地发送告警。在一些瞬态条件下,可以在很短的时间段内超出所述速度跟踪窗口而不发出告警。然而,必须指定并且监视该时间段,并且如果对于该指定的时间超出了所述速度跟踪窗口,所述控制器也可以发出告警。
如上所述,可以在轨迹执行期间(特别在教导模式下)确定对于一个轴所允许的最大扭矩。所述控制器可以对照由所接收的PVT极限帧或PVT-FG极限帧的极限项所指定的最大扭矩来检查由所述控制回路所命令的扭矩,并且如果超出了由所述帧指定的最大扭矩,则该控制器可以生成告警。与所述最大速度的情况一样,可以在很短的时间段内超出所述最大扭矩而不发出告警。然而,也可以指定并且监视该时间段,并且如果对于该指定时间超出了所述最大扭矩,该控制器也可以发出告警。该控制器还可以识别出所述轴处在教导模式下,并且还识别出其在所述帧中预期接收的不可超出的扭矩极限的相关全局最大值。如果超出了该全局最大值,则该控制器也可以发出告警。
除了告警之外,任何所述参数的故障也可以使得所述控制器禁用电动机驱动器输出级,以便停止任何运动。可以对主控制器进行告警,并且还可以在所有其他相关联的轴上停止所有运动。
再次参考图12,被用来允许工作空间内的人类存在的所公开的实施例的另一方面可以包括周期性地验证所述通信网络、群集控制器和主控制器正在运转。遥控器1230、1235、1240可以被编程来监视通信,从而如果没有周期性地接收到消息,则遥控器可以停止其轴的运动。
例如,遥控器1230、1235、1240可以被编程来监视消息传输(比如接收扭矩命令)之间的时间段。作为另一个例子,自主遥控器可以监视各PVT帧之间的时间段。如果扭矩命令或PVT帧没有在所预期的时间段内到达,则所述遥控器或自主遥控器可以把所述通信网络1250、群集控制器1215或主控制器视为不在运转,并且可以继续停止在其控制下的一个或多个轴上的运动。由所述遥控器或自主遥控器监视的周期性消息也可以是被用来同步这些控制器的时钟的循环开始消息。
主控制器1245还可以通过监视对周期性状态消息的接收来监视网络通信。在没有从群集控制器1215或任何遥控器1230、1235、1240接收到状态消息时,主控制器1245可以尝试停止在与群集控制器1215相关联并且由遥控器1230、1235、1240控制的任何轴上的所有运动。
对于轨迹数据进行交叉检查以及检验所述通信网络、主控制器和遥控器的各方面可以由每个网络节点处的专用于该目的的硬件来实现。例如,群集控制器1215、遥控器1230、1235、1240或者自主遥控器可以包括专用电路,所述专用电路独立操作来对于由主控制器1245发送的轨迹数据执行上面描述的任何交叉检查功能。作为另一个例子,主控制器1245、群集控制器1215、遥控器1230、1235、1240或者自主遥控器当中的一个或多个可以各包括专用电路以用于监视各消息之间的时间或者监视对周期性消息的接收。
图28示出一个示例性完整性监视器2800的方框图,其包括专门用于监视系统完整性的专用电路。该完整性监视器2800可以包括处理器2810、半导体存储器设备2815、非半导体存储器2820以及到通信网络120的接口2825。该完整性监视器2800还可以包括用于接收轴位置信息信号2835的轴编码器感测电路2830以及用于接收表明轴电动机电流消耗2845的信号的轴电动机电流感测电路2840。另外,所述完整性监视器还可以包括定时器2850、用于感测正在采用教导模式(教导2855)和任何立即停止要求(I-Stop 2860)的输入端、以及用来控制对应于所述轴的功率的开关接口2865。
一般来说,处理器2810在存储于存储器2815内的程序的控制下进行操作,以便交叉检查轨迹速度和扭矩数据、检验通信网络120的操作、识别特定轴何时超出其操作参数、以及在需要时从所述轴去除功率。
处理器2810可以感测出所述轴处在教导模式下,并且可以利用所接收的PVT帧中的速度项来识别出该轴的最大速度极限。处理器2810随后可以操作来验证所接收的帧中的实际轴速度项没有超出在教导模式极限内对于该轴所指定的该最大速度。处理器2810还可以确定所述速度跟踪窗口、是否超出了该速度跟踪窗口以及超出了多长时间。处理器2810还可以确定所允许的最大扭矩、是否超出了该最大扭矩以及超出了多长时间。如果任一个参数没有得到满足,则处理器2880可以控制所述轴的停工,并且可以与可能也正在将其轴带到受控停止的其他控制器协调。
处理器2810还可以监视消息传输(比如接收PVT帧)之间的时间段,并且可以在PVT帧没有在预期时间段内到达的情况下发出告警或者开始受控停工。可选地,完整性监视器2800可以通过专用网络2870与其他完整性监视器通信。
欧洲机械指令(EN 60204-1)定义了两类立即停止。第一类(即类别0)被定义为“不受控停工”,其中简单地去除功率。第二类(即类别1)被定义为“受控停工”,其中把功率保持足够长的时间,以便在去除功率之前把运动带到停止。控制系统的各组件遵循类别1停止是高度合乎期望的,以便允许人类存在并且防止产品损坏。
如果有功率损失,可能重要的是控制所述系统的各轴的运动,从而在不对设备和材料造成损坏或者给操作员带来危险的情况下令各轴停止。通常使用的一种方法是在发生功率损失时通过电阻器来短接轴电动机的绕组。然而,这需要小心调谐电阻值以匹配电动机绕组参数从而获得所期望的减速度,并且对于执行协调运动的机器人来说可能是不可接受的,这是因为如果不对各单独轴的停工进行协调,则可能会出现显著的跟踪误差并且可能对设备或材料造成后续损坏。
另一种常见的实践做法是包括不间断电源(UPS)。虽然这种解决方案提供了按照协调方式把各轴带到停止所必需的功率,但是其可能会大大增加成本、尺寸和重量,并且可能需要定期服务。
另一种方法包括为所述各电源的输出提供电容或电池备用,以便提供足够的功率从而允许遥控器或自主遥控器将其相关联的轴带到受控停止。然而,这可能需要很大的电容或电池容量,这是因为在整个减速事件期间功率应当保持相对稳定。
在本控制系统中利用的一种方法可以基于通过功率因数校正(PFC)电路对输入AC电压(在示例性情况下是220V)进行整流,其中在该PFC电路的DC输出端处提供电容。可以把所得到的DC电压馈送到宽输入范围的DC电源(在示例性情况下是48V)中。当功率损失时,尽管输入电压有显著衰减,但是所述电容器仍保持DC电源继续运行。
由所述电容存储的能量应当足以允许电动机控制器计划并执行以预定义的减速速率把机器人的末端执行器从其当前速度带到零速度的轨迹,所述预定义的减速速率被指定来保护设备和材料,从而把该机器人带到受控停止,同时沿着所指定的轨迹保持协调的运动,而不会造成损坏并且不会丢失轴位置信息。
如图33中所示,另一个实施例可以包括电容性存储模块3300。该示例性电容性存储模块可以提供必要的功率,以便即使在停电以及电力管制(brownout)期间仍然允许类别1的操作。由于其独特的设计,所述模块还可以方便使用商用现货(COTS)PFC电源,而所述商用现货PFC电源可能不符合某些电力管制要求,比如欧盟或Semi F-47电压跌落测试。
电容性存储模块3300的各组件可以被安装在单个印刷电路板上。可以通过桥接器3305对AC电压3335进行整流,并且整流后的电压输出3307可以被直接传递到所述经过功率因数校正的电源。与该整流后的电压输出3307并行地,充电电路3310可以在电容性存储库上充电并保持高电压。电源监督器电路3320可以与该电容性存储库3315并联连接。
电源监督器电路3320可以包括处理器、存储器、程序存储装置以及各种传感器和监视电路。该程序存储装置可以包括由该处理器访问的程序,该处理器指导该电源监督器的操作,其中包括监视输出电压3307、操作开关3325、监视电容性存储库3315的存储容量和电压、以及监视输入电压3335。
所述电源监督器3320可以通过直接连接或通过其他机制来监视整流后的电压输出3307。当电源监督器电路3320确定整流后的电压输出3307不满足预定标准时(例如作为功率损失的结果),电源监督器电路3320把电容性存储库3315通过开关3325连接到整流后的电压输出3307。
通过上述设计可以获得几个优点。首先,所述电容性存储库中的电容器的尺寸可以被确定成仅仅提供比所述减速事件所需的总功率多一个小的百分比。其次,在所述电容器释放其所存储的能量的近似85%的同时可以精确地保持输出电压,这是因为COTS PFC电源通常可以操作在宽的输入电压范围内。第三,更高电压下的能量存储使得该解决方案更为紧凑并且不大昂贵,这是因为存储在电容器中的能量与电容和电压平方的乘积成比例,并且电容器的物理尺寸与电容和电压的乘积近似成比例。
在另一种实施方式中,电源监督器3320可以向外部电路提供警告信号3330,所述外部电路例如是用于监视系统完整性的电路、功率控制功能或者主控制器105。所述警告信号可以被用来针对可能的功率问题向其他网络组件进行告警以及用于其他目的,比如允许如EN 60204-1所定义的类别1停止。所述控制系统还可以使用该警告信号3330来证实在初始化运动之前电容性存储库3315被完全充电。警告信号3330和电容性存储库3315通常可以被同时使能,从而允许控制系统100利用存储在电容器存储库3315中的能量来把任何移动轴带到静止。所存储的能量通常等于或者大于不管所述系统的状态如何都将其带到静止所需的能量。例如,所存储的能量可以包括足以在所有轴都以最大速度运动时把所述系统带到静止的能量。
可选择地,可以相对于电容性存储库3315的接合来偏移警告信号3330的定时,从而使得暂时的输入功率异常不会导致不必要的服务中断。这是一种特别具有吸引力的实施方法,因为它允许使用可能不满足电力管制要求的电源。
所述警告信号还可以提供关于可被用于预测性自动故障检测的能量存储容量、输入电压、电容器组电压以及输入功率质量的信息。
当前实施例的另一个特征是利用受监视的冗余固态逻辑来检测要求去除轴功率的输入并且对其做出反应。这提供了支持这样一种体系结构的灵活性,其中可以在多个区域之间共享立即停止信息,正如下面将描述的那样。
在图40中示出用于实施该特征的功率控制功能4000。该功率控制功能包括用于检测立即停止输入的电路4005、一个或多个定时器4010以及用于实施所述功率控制功能的各个处理器、存储器和支持电路。该功率控制功能提供表明其已经启动了功率去除的信号(停止,4035)、用于一个或多个机器人逻辑电源4055的控制信号、以及用于控制机器人电动机电源4065的一个或多个继电器4060的控制信号4045。该立即停止检测电路4005接收来自各个互锁4015的信号、立即停止信号4020、活人信号4025以及来自各个控制系统组件的教导模式信号4030,并且还接收来自主控制器105的电动机功率使能信号4070和来自继电器4060的监视信号4050。所述活人信号4025表明在控制系统100的至少一个机器人工作空间内有人类存在。所述教导模式信号4030表明正在向该系统的至少一个组件教导操作。
虽然所描述的功率控制功能包括各种硬件组件,但是应当理解,该功率控制功能可以用硬件、软件或者硬件和软件的任何组合来实施。
当主控制器105请求使能电动机功率时,功率控制功能4000首先检验全部的立即停止4020、活人4025、互锁4015和教导模式4030信号的状态。该功率控制功能4000还证实继电器4060的接触器处在适当状态下并且未被焊接,并且该功率控制功能还可以验证与该继电器相关联的任何固态开关都不导通。如果所述立即停止、活人、互锁、教导模式信号、接触器以及开关当中的每一项的状态都满足所有必需的要求,则继电器4060被使能。应当理解,继电器4060也可以被实施为一个或多个固态开关设备。
当所述立即停止、活人、互锁或者教导模式信号当中的任一项达到要求去除电动机功率的状态时,所述功率控制功能对主控制器105进行告警并且启动定时器4010。定时器4010被编程为允许生成所述要求功率去除的信号的系统组件有充足的时间到达受控停止。定时器4010的持续时间可以由系统组件操作模式来决定。例如,对于在不同速度下行进或者处在教导模式下的机器人,可以把该定时器设置在不同的间隔。
在定时器4010期满之后,所述功率控制功能4000通过继电器控制信号4045禁用电动机电源。只有当所述立即停止、活人、互锁或教导模式信号都返回到允许恢复电动机功率的状态并且电动机功率使能信号4070被重新声明时,才可以重新施加电动机功率。
功率控制功能4000通常可以驻留在功率分配单元中。如下所述,例如当该功率控制功能被结合到所述控制系统的各单独区域的功率分配单元中时,该功率控制功能可以为各组遥控器和自主遥控器服务。该功率控制功能4000还可以被实施为可插的子卡,或者可以被实施为可以在为特定应用设计的不同功率分配单元中重新使用的模块。
图41示出功率控制功能4100的另一个实施例,其中,立即停止检测电路包括用于感测来自上面讨论的电容性存储模块3300的电源监督器3320的警告信号3330的电路。该警告信号3330可以按照类似于所述立即停止、活人、互锁或教导模式信号的方式被使用,以便触发从一个或多个网络组件去除功率。
在其中任何故障和后续的停工时间都可能意味着数万美元的受损材料以及生产力损失的生产环境中,运动控制系统的可靠性是一个关键要求。所公开的实施例的控制系统100(图1)的体系结构通常可以实现更好的可靠性,这是通过定位遥控器接近经受控制的组件,从而减小运送反馈和动作信号的连线和线束的长度和复杂性。然而,在一些实例中,通信网络120本身可能容易出现故障,这是因为它可能跨越相对较长的距离,并且在许多情况下可能只有在所有节点以及它们之间的连接都运转的情况下才保持完全可操作。换句话说,在许多拓扑结构中,单个连接或单个节点的故障可能导致一段或整个通信网络120发生故障。因此,期望提供这样一种通信网络解决方案,其将在通信网络连接故障(比如电缆断开)或者一个或多个网络节点发生故障的情况下仍然在最大可能程度下令控制系统100保持运转。
IEEE 1394b标准以及其他网络标准和实施方式可以允许非激活分段的存在,所述非激活分段以另外的树型网络拓扑结构形成物理环路。所述非激活分段可以被用来提供通信网络120的各节点之间的冗余连接。例如可以通过选择性地禁用PHY端口来使得所述网络能够自动禁用所述冗余连接。在发生故障时,该网络可以具有选择性启用所述冗余连接以便形成到达被所述故障所隔离的节点的路径的能力。这例如可以通过使用IEEE1394b标准中所固有的设施来实现。其他网络实施方式也可以具有检测并禁用冗余连接以及随后在发生故障时选择性启用所述冗余连接的能力。
可以利用所述特征来提供一种独特的自愈的容错性,如果在通信网络120上发生电缆断开或者节点的完全故障,所述容错性将保证控制系统100的操作。特别地,如果网络节点或激活的网络连接发生故障,则通信网络120可以将其自身重新配置成通过在所述故障前非激活的冗余连接来路由通信。两个网络节点之间的连接将被称作分段。
重要的是注意到,虽然在描述所公开的实施例时把IEEE 1394标准用作例子,但是所公开的实施例不限于基于IEEE 1394的网络。也可以利用其他网络实施方式,只要它们包括适于实行所公开的实施例的特征即可。
如果网络120上的节点发生故障,则该网络可以将其自身重新配置成通过替换分段来路由通信,并且可以利用所述新的通信路由来执行所有的或所选的运动轴的立即停止。因此,总线拓扑结构中的物理环路可以在整个网络上提供冗余通信路径,所述冗余通信路径可以在发生故障时被用作次要数据信道。
图34a示出一个提供冗余连接的网络120的示例性拓扑结构3400。拓扑结构3400包括主环路2305和多个外围环路3410、3415、3420。主环路3405包括主控制器3425,并且主环路3405以及外围环路3410、3415、3420当中的每一个都包括遥控器3430。注意,拓扑结构3400的激活分段3470形成树型拓扑结构,而非激活分段3475提供各节点之间的冗余环路连接。
图34b示出在主环路3405的分段3440中发生了故障3435的拓扑结构3400。如上所述,网络120禁用了处在故障节点3435处的该现在未使用的分段3440,并且将其自身重新配置成通过先前未使用的分段3445来路由通信。图34c示出在主环路3405中具有故障节点3450(例如故障遥控器)的拓扑结构3400。在该例中,网络120禁用了分段3455、3460,并且现在通过先前未使用的分段3465来路由通信。图34d和34e在外围环路3420中示出类似的示例性故障和重新配置技术。
在简单的环形拓扑结构中,识别故障并且切换到冗余连接可能是相对容易的。然而,在具有多个物理环路的一般系统中实现这种自我组织并且自愈的功能可能要难得多。当前的实施例提供这样一种机制,其利用了能够使用冗余连接来补偿故障的任何网络实施方式的框架,从而允许在通信网络120中具有多个物理环路的控制系统在其配置由于分段或节点的故障而随着时间改变时还能继续运转。
根据当前实施例的所述机制还可以包括一种用于高效地缓冲轨迹帧的方法、以及一种用于补偿通信网络中的同步延迟的方法。
可以通过对所有网络节点上的时钟进行同步来保持所述群集体系结构控制系统100中的运动同步,所述网络节点包括主控制器105、群集控制器110、以及遥控器和自主遥控器115。在一种实施方式中,可以由被称为循环主导的节点发送同步消息,所述同步消息也被称作循环开始消息,所述循环主导通常是主控制器105。
在由网络节点从主控制器105接收同步消息的过程中的延迟导致各网络节点中的时钟之间的差异。该延迟的最大分量与所述同步消息的传输过程中的转发器延迟相关联。转发器延迟指的是在接收所述消息并且将该消息继续发送到下一个节点直到该消息到达其目的地的过程中由每个节点所引入的延迟。对应于给定节点的总传播延迟可以被假设为沿着从主控制器到目的地节点的路径的所有转发器延迟的累积总和。
可以对于来自所述网络拓扑结构的每一个节点确定循环开始消息的路径。可以基于所述消息路径来估计传播延迟。可以通过调节对应于每个节点的PVT帧中的轨迹数据来补偿对应于该节点的所估计的传播延迟。
在一种用于估计传播延迟的方法中,基于假定网络拓扑结构被设计成使得最大传播延迟不超过144ns,主控制器105可以简单地使用144ns的标称值。在另一种方法中,可以确定对应于每个节点的转发器延迟,并且将其存储在例如该节点内的存储器位置中。主控制器可以从所述存储器位置处读取对应于该特定节点的转发器延迟。在一个例子中,可以在节点寄存器(例如基本PHY寄存器)中的延迟字段中存储所述转发器延迟并且从中读取该转发器延迟。
主控制器105随后可以利用所述转发器延迟来计算对应于每个节点的延迟补偿。在一个实施例中,主控制器105可以对于报告EUI-64的节点用扩展唯一标识符(EUI-64)来索引所述转发器延迟,并且可以对于不报告EUI-64的节点使用所估计的值。
用于估计从主控制器105到通信网络120上的任一个节点的总传播延迟的另一种方法是令主控制器105对每个节点进行试通操作(ping),并且记录对于该试通操作的响应时间。可选择地,主控制器可以记录对于PHY寄存器请求分组的响应。对应于所述试通操作或请求与响应的往返时间中的差可以被用作从主控制器到通信网络120上的不同节点的累积传播延迟。
可以在每次通信网络重新配置其自身时由主控制器重新计算对应于每个节点的延迟补偿。
图38示出典型的IEEE1394b自我标识过程的结果。重要的是注意到,其他网络实施方式也能够进行这种自我标识,并且所公开的实施例不限于IEEE 1394b型网络。
假设对应于节点M0到所述主导(根)的路径由节点M0,M1,M2,...,Mn定义,其中Mi是PHY id,Mn是根(M0<M1<M2<...<Mn),并且用p(Mi)表示Mi的亲代,把对应于Mi的转发器延迟表示为t(Mi),对应于节点M0的总传播延迟是∑t(p(Mi)),其中i=0,1,2,...,n-2。
可以令主控制器105通过观察出现在通信网络120上的总线重置和自我标识完成消息而知晓重新配置事件。所述自我标识完成分组可以提供足够的信息,从而使得主控制器105可以确定新的网络拓扑结构以及从主控制器到每个节点的路径。从每个节点到主控制器105的路径可以由从任何节点到其父节点的路径的串联而唯一地定义,直到到达所述根。可以从沿着该路径的转发器延迟的总和来确定从每一个节点的总传播延迟。一旦确定了对应于一个节点的总传播延迟,该节点就可以使用所述传播延迟信息来补偿轨迹数据(PVT帧)。
参考图35,当通信网络120作为分段或节点故障的结构而重新配置时,下面的程序在重新计算传播延迟时将是有利的。
如块3505中所示,主控制器105通常可以获得通信网络120中的循环主导角色,并且如块3510中所示,该主控制器可以如上所述地估计对应于通信网络120上的每个节点的转发器延迟。如块3515中所示,主控制器把相应的延迟估计发送到通信网络120上的每一个节点。如块3520中所示,通信网络120上的每个远程节点在执行PVT帧时把从主控制器105接收的估计用作时间偏移量。例如,用于执行给定PVT帧的时间可以被计算为由该PVT帧的时间字段减去所述传播延迟的估计。
在另一个实施例中,由主控制器105发送的PVT或PVT-FG帧可以包括被称作时间偏移量(TIME_OFFSET)的附加字段,其携带传播延迟信息。
每个网络节点随后可以在执行PVT帧时应用来自该时间偏移量字段的传播延迟信息。例如,用于执行给定PVT帧的时间可以被计算为用该PVT帧的时间字段减去时间偏移量。
在伴有总线重置事件的拓扑结构改变的情况下,所述远程节点可以丢弃在所述总线重置之前被缓冲并且将在所述总线重置之后利用重新同步的时钟执行的PVT帧中的时间偏移量字段,并且可以用来自在所述总线重置之后接收的第一个PVT帧的时间偏移量信息来替换该字段。
图36示出一个具有附加的时间偏移量字段的示例性PVT帧3605。该PVT帧3605包括位置数据3610、速度数据3615和时间数据3620。PVT帧3605可以可选地包括报头信息3625和报尾信息3630,二者都可以包括同步、标识、奇偶校验、纠错或者其他类型的数据。另外,PVT帧3605可以包括时间偏移量字段3635,其包括对应于该帧所被寻址到的节点的传播延迟信息。
应当注意到,虽然图36示出处在所述帧的特定位置或区域内的各种信息或数据,但是不同类型的信息和数据可以位于所述PVT帧3605内的任何位置处。还应当注意到,PVT帧3605不限于任何特定长度。
图37示出一个具有附加的时间偏移量字段的PVT-FG帧3705。PVT-FG帧3705包括可选的报头3710、位置3715、速度3720、时间3725以及可选的报尾信息3730,这与PVT帧3605类似。另外,PVT帧3705可以包括时间偏移量字段3735,其包括对应于该帧所被寻址到的节点的传播延迟信息。
与PVT帧3605类似,PVT-FG帧3705可以包括分布在各个项当中或之间的不同长度或数量的其他数据。
作为又一种方法,可以直接在所述网络节点上估计所述传播延迟。每个网络节点可以基于在总线重置之后的自我标识分组内的信息来确定来自主控制器105的路径。每个节点随后可以计算基本上等于所述传播延迟的估计延迟,并且在执行PVT帧时应用相应的偏移量。
在控制系统100中,可能会发生要求一个或多个组件立即停止或者调用上面描述的一些速度限制或力限制特征的事件。这些情况可能会对与所影响的组件相互作用的其他组件造成不利影响,并且在一些情况下可能会对整个控制系统造成不利影响。
所公开的实施例的一个特征在于,把控制系统100划分成各区域,从而使得发生在一个区域内的要求组件停止、速度限制或力限制的事件不会影响其他区域的操作。把所述系统分成各区域的另一个优点在于,例如可以在教导模式下为控制系统100的组件或节点服务,或者可以通过去除功率而使其停工,同时其他组件或节点继续运转。
具有多个工作区域的控制系统可以提供在所有区域上的全局立即停止功能,并且可以局部地处理每个区域内的互锁,以便提供对所选区域的访问并且同时保持其他区域内的操作。还可以在每个区域的基础上支持示教盒和活人功能。每个区域还可以具有其自身的功率分配单元,其具有集成的安全支持。
在图39中示出根据所公开的实施例的具有多个区域的控制系统的一个示例应用。
图39示出控制系统100的一部分,其具有大气区域3905和真空区域3910。大气区域3905包括两个机器人3906、3907和两个对准器3909、3908。真空区域3910包括机器人3911。每个区域可以具有相关联的智能功率分配单元3915、3920,其可以包括上面描述的功率控制功能4000。局部系统完整性信号3930被用来把立即停止、互锁或活人事件传送到主控制器105,以便全局地或者在单个区域内启动受控停止。在该特定例子中,局部系统完整性信号3030被馈送到每个区域内的其中一个遥控器3940、3945,并且被传送到主控制器105。该主控制器通过通信网络120与每个区域内的组件通信。
另外,通用通信网络3950(例如以太网)通常可以允许所述控制系统与其他从属的或独立的自动化组件(比如半导体基板处理应用中的负载端口)通信,其中包括与一个或多个示教盒3955、3960通信。示教盒接口提供与通用通信网络3950的通信,并且还可以包括立即停止、活人和示教盒存在信号。
每个区域3905、3910共享区域到区域完整性信号3925,其中包括对应于互锁、立即停止指示以及系统AC功率的状态的信号。可以包括前一区域与下一区域信号,其表明相邻区域的存在。
主控制器操作来隔离区域3905、3910中的运动,从而使得发生在大气区域3905中的事件不会影响真空区域3910中的动作的操作。例如,如果在大气区域3905中发生了故障,则可以禁用该大气区域并且将其带到受控停止。虽然所述实施例用来把一个区域内的动作与另一个区域内的动作隔离,但是它们还提供在各区域之间以及向主控制器传送事件的能力,从而可以确保多于一个区域的协调受控停工。
例如,主控制器可以把一个区域到区域立即停止信号识别为要求大气区域3905的停工。主控制器105还可以令真空区域3910停工,这是因为它从大气区域3905接收材料。可选择地,该主控制器可以把最初对于大气区域3905所安排的工作转移到控制系统100中的另一个区域。
因此,所公开的实施例提供一种通过把各网络节点分配到各区域中来保持控制系统网络的完整性的方法,从而把第一区域内的运动与不同于第一区域的其他区域内的运动隔离。
已经看出,如果一些机器人在一定时间段内是静止的,则它们在重新启动时可能会有位置误差。例如,在空闲之后启动时,机器人可能无法在可接受的操作容限内前进到正确位置或者把基板放置在正确位置处。这些误差可能是由于各个组件的温度和相对位置、润滑剂粘性或者任何数目的其他因素造成的。这些误差通常在多次移动之后被消除。
所公开的实施例的一个特征在于,记录机器人处于空闲的时间量。如果超出了特定空闲时间,则可以确定机器人的性能特性。如果所述性能特性不满足规格,则可以指导机器人执行热身练习。所述热身练习可以包括一个或多个运动,所述运动提供足够的移动以便消除作为机器人空闲的结果而出现的位置精度误差。
在所公开的实施例的另一方面中,如果超出了所述空闲时间,则可以指导机器人执行所述热身练习而不用确定所述性能特性。
图29示出一个工作单元2900,其中可以实施该实施例。工作单元2900包括机器人2910,其具有一个群集控制器2915和三个遥控器2930、2935、2940。群集控制器2915通过通信网络2950与主控制器2945通信。工作单元2900还可以包括对准器2955,其可以由遥控器2960控制。遥控器2960可以由主控制器2945控制。工作单元2900还可以可选地包括一个或多个传感器2960、2965、2970,其感测机器人的位置。在一个实施例中,传感器2960、2965、2970可以被安装在机器人2910上,或者以其他方式被结合到机器人2910中。在一个示例性实施例中,工作单元2900可以是所述群集体系结构控制系统100(图1)的一部分。
参考图3,群集控制器2915通常包括处理器305、只读存储器310、随机存取存储器315、程序存储装置320以及到网络120的网络接口330。处理器305通常可操作用于从例如计算机可用介质的计算机程序产品读取信息和程序,所述计算机可用介质例如是板上可编程存储器335、只读存储器310、随机存取存储器315以及程序存储装置320。
板上可编程存储器335、只读存储器310、随机存取存储器315以及程序存储装置320可以包括用于确定机器人2910的性能特性并且为机器人2910指导所述热身练习的运动的程序。
现在将参考图29和图30描述所公开的实施例的示例性操作。
虽然与确定机器人空闲时间、机器人性能特性以及实施机器人热身练习相关联的功能被描述为主要由群集控制器2915执行,但是应当理解,所述功能可以由主控制器2945、遥控器2930、2935、2940以及工作单元2900的任何合适的组件来执行,或者当工作单元2900是所述群集体系结构控制系统100(图1)的一部分时可以由这种系统的任何合适的组件来执行。
此外,虽然所述空闲时间、性能特性以及热身练习通常与机器人2910相关联,但是还可以对于机器人的各单独轴或接合点、工作单元2900的其他组件或者对于所述群集体系结构控制系统的其他组件实施与确定所述功能和特性相关联的功能。
群集控制器2915可以配备有识别机器人2910何时处于空闲状态的电路或程序。例如,机器人2910可以接收明确命令以便进入备用模式、停工,或者简单地在特定时间内不能接收任何运动命令。如块3010中所示,群集控制器2915确定机器人2910空闲,并且如块3015中所示,保存一个时间标记以作为确定所述空闲状态的时间的指示。
如块3020中所示,群集控制器2915监视被发送到机器人2910的命令。如块3025中所示,如果接收到运动命令,则群集控制器2915检索所述时间标记并且确定机器人空闲了多长时间。如块3030中所示,如果超出了空闲时间阈值,则如块3035中所示,该群集控制器可以按照例如一个或多个运动命令的形式向机器人2910发出热身练习,所述运动命令通常提供足够的移动以便消除由于机器人空闲而导致的位置精度误差。如块3045中所示,在执行了所述热身练习之后,机器人随后可以执行所述运动命令。
图31示出对应于图30的块3035的一个替换程序。如块3110中所示,如果超出了空闲时间阈值,则群集控制器2915可以检查机器人2910的性能特性。例如,群集控制器2915可以向该机器人发出测试运动命令,并且随后可以检查传感器2960、2965、2970以确保该机器人在规格内执行该命令。作为另一个例子,该群集控制器可以通过指示机器人2910把基板2975放置在对准器2955上并且随后检查所放置的基板的对准来检查性能特性。
如图31的块3045中所示,如果所述性能特性处于规格之内,则群集控制器2915可以允许机器人执行所述运动命令。如块3115中所示,如果不满足所述规格,则群集控制器2915可以例如通过用户接口225(图2)向操作员发出告警或者请求帮助,以便请求覆盖(override)。作为另一种替换方案,群集控制器2915可以停止机器人2910的操作,直到用户干预为止。如图31的块3045中所示,一旦提供了覆盖,机器人随后就可以执行所述运动命令。
可以看出,所公开的实施例提供一种通过执行热身练习来补偿机器人放置误差的机制。在所述实施例的一个方面中,如果机器人已经空闲了特定时间段,则可以执行所述热身程序。作为进一步的细化,如果不满足特定规格,则可以确定机器人的性能特性并且可以执行所述热身练习。所述热身练习可以包括一个或多个运动,其提供足够的移动以便消除作为机器人空闲的结果而出现的位置精度误差。
在一个复杂的控制系统中,可能有利的是利用标准的接口规范集来访问各系统组件。这可以由应用程序接口(API)来提供,所述应用程序接口可以包括一组命令、参数、变量等等,其为用户提供与各个系统组件通信的公共形式。
所公开的实施例的一个特征在于,提供一种包括一般化的命令集的API,该命令集允许使用通用命令来执行操作以及使用特定自变量来标识特定组件、位置以及用于执行该操作的其他参数。
所公开的实施例的另一个特征在于,通过所述API,用来实现所述操作的实际运动可以根据所述自变量而改变。例如,使用把机器人和对准器指定为位置的“PickFrom”命令可能导致与把机器人和负载端口指定为位置的情况完全不同的一组移动。
参考图42,所述API可以包括多个对象,其中包括资源协调器4305、序列处方4310以及序列管理器4315。来自资源协调器4305的命令被填充到序列处方4310中。序列处方4310随后向序列管理器4315给出一个命令序列,序列管理器4315分配资源并且致使执行该命令序列。所述API可以包括如下所述的命令集。每个命令通常包括命令名称以及其后的命令自变量。在所公开的实施例的命令中,术语“行动者”、“资源”和“机器人”指代能够执行操作的任何设备。
利用指定的机器人位置从指定的材料源位置捡起材料的命令可以被称作PickFrom命令,并且可以具有下面的格式。
PickFrom(IRobot robot,int robotLocation,IMaterialHoldermaterialSource,int sourceLocation)
其中,robot指定该捡起操作的主要行动者;
robotLocation指定行动者索引,通常是将被用于所述捡起操作的尖端;
materialSource指定当前持有所述材料的设备;以及
sourceLocation指定到所述材料驻留在其中的设备中的索引。
利用指定的机器人位置把材料放置到指定的材料目的地位置处的命令可以被称作PlaceTo命令,并且可以具有以下格式。
PlaceTo(IRobot robot,int robotLocation,IMaterialHoldermaterialDestination,int destinationLocation)
其中,robot指定该放置操作的主要行动者(机器人);
robotLocation指定行动者索引,通常是所述材料驻留在其中的尖端;
materialDestination指定目的地对象;以及
destinationLocation指定到所述目的地对象中的索引。
把PickFrom操作的一部分执行到所配置点的命令可以被称作PickPrep命令。PickPrep命令通常可以被用来把机器人移动到接近指定的材料源,以便增加工具吞吐量。所述操作可以在所配置点停止,除非在机器人减速之前发送了PickFrom命令。
所述PickPrep命令可以具有以下形式。
PickPrep(IRobot robot,int robotLocation,IMaterialHoldermaterialSource,int sourceLocation)
其中,robot指定该捡起操作的主要行动者;
robotLocation指定行动者索引,通常是将被用于所述捡起操作的尖端;
materialSource指定当前持有所述材料的设备;以及
sourceLocation指定到所述材料驻留在其中的设备中的索引。
把PlaceTo操作的一部分执行到所配置点的命令可以被称作PlacePrep命令。PlacePrep命令通常可以被用来把机器人移动到接近指定的材料源,以便增加工具吞吐量。所述操作可以在所配置点处停止,除非在机器人减速之前发送了PlaceTo命令。
所述PlacePrep命令可以具有以下形式。
PlacePrep(IRobot robot,int robotLocation,IMaterialHoldermaterialDestination,int destinationLocation)
其中,robot指定该放置操作的主要行动者(机器人);
robotLocation指定行动者索引,通常是所述材料驻留在其中的尖端;
materialDestination指定目的地对象;以及
destinationLocation指定到所述目的地对象中的索引。
利用指定机器人位置把基板从材料源位置移动到目的地位置的命令可以被称作MoveFromTo命令,并且可以具有以下形式。
MoveFromTo(IRobot robot,int robotLocation,IMaterialHoldermaterialSource,int sourceLocation,IMaterialHolder materialDestination,int destinationLocation)
其中,robot指定用于所述操作的主要行动者;
robotLocation指定行动者索引,通常是将被用于所述操作的尖端;
materialSource指定当前持有所述材料的对象;
sourceLocation指定到所述材料驻留在其中的对象中的索引;
materialDestination指定目的地对象;以及
destinationLocation指定到所述目的地对象中的索引。
利用指定映射设备来映射指定资源的命令可以被称作MapResource命令。映射资源可以包括确定该资源是否正持有或支持任何项目,并且还可以包括确定所持有或支持的项目的位置。所述MapResource命令还可以把指定资源中的位置状态的记录更新到适当值,例如“已占用”、“未占用”等等。
所述MapResource命令可以具有以下形式。
MapResource(IMapper mapper,IMaterialHolder resource)
其中,mapper标识能够映射所述指定资源的设备;以及
resource标识要求映射的设备。
把指定资源初始化到就绪条件的命令可以被称作InitializeResource命令。例如,如果所述资源是机器人,则该InitializeResource命令将导致机器人移动到已知位置或出发点并且随后移动到安全位置。如果已经启用了所述资源的锁定机制,则该命令还可以复位该锁定机制。
所述InitializeResource命令可以具有以下形式。
InitializeResource(IWorkcellObject resource)
其中,resource指定要初始化的资源。
基于策略或处方初始化资源的命令也可以被称作InitializeResources命令。如果没有指定策略或处方,则标准或默认处方可以是首先初始化机器人并且随后初始化所附着的模块。
利用策略的InitializeResources命令可以具有以下形式:
InitializeResources(recipe)
其中,recipe指定初始化策略。
可以看出,所公开的实施例提供一种API,其允许使用通用命令来执行操作,其中用特定自变量来标识特定组件、位置以及用于执行所述操作的其他参数。因此,所公开的实施例描述一种联网控制系统,其同时具有集中式和分布式控制的优点,也就是灵活且可伸缩的,其提供基于模型的控制,同步各组件操作,并且专门为这种体系结构的系统提供协议扩展。所述控制系统还提供分布式事件捕获和应用程序接口。另外,所述系统包括无线通信能力,允许组件工作空间内的人类存在,提供高级别的系统完整性,规定了功率损失以及要求立即停止的情况,并且还提供热身能力以便消除由于机器人空闲而导致的位置误差。