本公开涉及用于控制物理实体的计算机实现的方法。该方法由控制器节点并且由包括多个控制器节点的系统执行。本公开还涉及控制器节点、系统、以及计算机程序产品,该计算机程序产品配置为当在计算机上运行时执行用于控制物理实体的方法。
背景技术:
1、本公开涉及例如在诸如工厂机器人的控制之类的工业机器控制场景中的物理实体的控制。在许多这样的工业控制场景中,控制信息的计算和传输两者都是在云基础设施中执行的,并且控制元素可包括网络和计算冗余度两者,以用于超低延迟可靠性,即在主动故障处理体制下工作。通常,正在被控制的实体的致动器只能与单个控制器应用实例进行通信。可靠性是此类工业控制应用的重要方面,以确保操作安全且高效两者。
2、用于工业云控制用例的可靠性和弹性的一种自然方法是使用传统的单片控制器应用,但将其部署在具有冗余度的云基础设施中(即控制器的多个实例)。这确保了如果在云域中发生故障,至少有一个工作控制器实例仍然可以为设备服务,提供无缝、连续的通信。遵循此模式的应用包括执行周期性循环的复制的控制器,例如,伺服电机或其他移动机械部件的连续监测和控制,或安全检测和过程监测。应用实例还可以将其关键内部状态(包括表示物理现实的一部分的模型的一些数据)外部化到外部分布式数据库中。分布式数据库可以将存储的状态复制到多个位置。以这种方式,每当云域中(即应用实例、或vm、或节点)发生故障时,另一(潜在地是新启动的)实例可以读回丢失的状态的副本并继续操作。
3、然而,在工业控制场景中,如果物理设备由云域中复制的单片控制器实例控制,则在云中的故障事件期间,管理状态转变很快就会变得非常有挑战性。这是因为控制器实例的内部状态可随着时间而分化。由于内部状态的这种分化,从一个控制器实例到另一控制器实例的故障转移可导致信息物理系统中的不一致,潜在地导致效率下降,或者甚至违反安全。
4、例如,可以设想,移动机器人的控制器实例决定通过向左移动绕过障碍物来避开障碍物(如另一机器人、或人类),而副本控制器实例可能决定向右移动绕过障碍物。如果在旁路调动期间发生云故障,则移动机器人可接收不一致的控制消息,导致紧急停止,或甚至导致碰撞。此外,简单地复制云中的单片控制应用仍然会生成单片控制应用(monolith),否则这些单片控制应用不能受益于云的所有优势,例如独立开发和部署服务的能力,以及以细粒度对其进行缩放。由于这些原因,以弹性方式开发和操作单片应用的成本可能会更高。
5、随着工业云控制应用的演进,它们开始通过遵循更像云或云原生的设计来利用云基础设施的灵活性优势。云原生设计涉及将单片控制器应用分解为相互通信的多个较小的功能模块(即所谓的微服务)。这种架构风格可以解决上面提到的一些问题,大大提高开发速度、部署灵活性和弹性。存在用于在通用云系统中实现这样的类微服务应用的可靠性、可用性和弹性的众所周知的方法。广泛使用的方法是部署应用组件(微服务)的多个实例,并将那些实例分布到不同的位置(虚拟机、节点、数据中心)。
6、基于微服务的云控制的上述过程很适用于许多完全基于数字化的控制应用(web服务的提供等)。然而,当典型的微服务(或云功能)被扩展以实现可靠性或管理负载时,相同功能的实例是松散耦合的,其中它们之间的互相通信最少。这对于传统的云应用(如web应用)来说是有意为之且有益的,但对于工业控制功能而言,它面临着如上所述的相同挑战:面对实例故障,相同功能的其他实例可与故障实例不同步,潜在地对信息物理世界造成危害。
技术实现思路
1、本公开的目的在于提供至少部分解决上述挑战中的一个或多个挑战的方法、控制器节点、系统和计算机程序产品。本公开的另外目的在于提供方法、控制器节点、系统和计算机程序产品,它们协作以为工业云控制系统(包括微服务式控制应用)提供可靠性,根据其,在故障期间应用实例之间的切换不会导致物理设备控制中的不确定性。
2、根据本公开的第一方面,提供了一种用于控制物理实体的计算机实现的方法,其中,所述方法由运行逻辑控制功能的至少两个实例的控制器节点执行。所述方法包括通过输入机制接收与所述物理实体相关的节点输入数据;并且向所述控制功能的所述至少两个实例中的每个实例提供从所述节点输入数据生成的实例输入数据。所述方法还包括使所述实例中的至少一个实例处理所接收的实例输入数据并生成实例输出数据;并且通过输出机制提供来自所述控制功能的所述实例中的至少一个实例的实例输出数据,其中所述输出机制可操作地连接到所述物理实体。所述方法还包括同步所述控制功能的所述至少两个实例中的每个实例的内部状态。
3、根据本公开的另一方面,提供了一种用于根据控制应用来控制物理实体的计算机实现的方法,其中所述方法由包括多个控制器节点的系统执行,每个控制器节点实现包括在所述控制应用内的逻辑控制功能。所述方法包括:通过输入机制并在所述系统的输入控制器节点处接收与所述物理实体相关的系统输入数据;并且使所述系统输入数据被所述系统中的个别控制器节点的所述逻辑控制功能顺序地处理,以生成系统输出数据。所述方法还包括通过输出机制提供所述系统输出数据,其中所述输出机制可操作地连接到所述物理实体。根据所述方法,所述系统中的所述多个控制器节点中的至少一个控制器节点执行根据本公开的第一方面的方法。
4、根据本公开的另一方面,提供了一种计算机程序产品,包括计算机可读介质,所述计算机可读介质具有体现在其中的计算机可读代码,所述计算机可读代码被配置为使得在由合适的计算机或处理器执行时,使所述计算机或处理器执行根据本公开的任何一个或多个方面或示例的方法。
5、根据本公开的另一方面,提供了一种用于控制物理实体的控制器节点,其中所述控制器节点可操作以运行逻辑控制功能的至少两个实例。所述控制器节点包括处理电路,所述处理电路被配置为使所述控制器节点:通过输入机制接收与所述物理实体相关的节点输入数据;并且向所述控制功能的所述至少两个实例中的每个实例提供从所述节点输入数据生成的实例输入数据。所述处理电路进一步被配置为使所述实例中的至少一个实例处理所接收的实例输入数据并生成实例输出数据;并且通过输出机制提供来自所述控制功能的所述实例中的至少一个实例的实例输出数据,其中所述输出机制可操作地连接到所述物理实体。所述处理电路还被配置为使所述控制器节点同步所述控制功能的所述至少两个实例中的每个实例的内部状态。
6、根据本公开的另一方面,提供了一种用于控制物理实体的控制器节点,其中所述控制器节点可操作以运行逻辑控制功能的至少两个实例。所述控制器节点被配置为:通过输入机制接收与所述物理实体相关的节点输入数据;并且向所述控制功能的所述至少两个实例中的每个实例提供从所述节点输入数据生成的实例输入数据。所述控制器节点还被配置为使所述实例中的至少一个实例处理所接收的实例输入数据并生成实例输出数据;并且通过输出机制提供来自所述控制功能的所述实例中的至少一个实例的实例输出数据,其中所述输出机制可操作地连接到所述物理实体。所述控制器节点还被配置为同步所述控制功能的所述至少两个实例中的每个实例的内部状态。
7、根据本公开的另一方面,提供了一种用于根据控制应用来控制物理实体的系统,所述系统包括多个控制器节点,每个控制器节点实现包括在所述控制应用内的逻辑控制功能。所述系统被配置为:通过输入机制并在所述系统的输入控制器节点处接收与所述物理实体相关的系统输入数据;并且使所述系统输入数据被所述系统中的个别控制器节点的所述逻辑控制功能顺序地处理,以生成系统输出数据。所述系统还被配置为:通过输出机制提供所述系统输出数据,其中所述输出机制可操作地连接到所述物理实体。所述系统中的所述多个控制器节点中的至少一个控制器节点包括根据本公开的任何一个或多个方面或示例的控制器节点。
8、因此,本公开的方面提供了促进云执行环境中工业控制应用的可靠性的方法和节点,该云执行环境例如包括工厂机器和机器人控制。本公开的示例由于个别控制功能实例的同步,在复制的云功能实例之间使能切换控制,而不会引入设备控制本身的不一致性。因此,故障转移事件将对控制应用的安全性和效率特性具有更加有限的影响。本公开的示例提出了功能实例之间的双体制同步机制,以允许适应不同的延迟要求。本公开的示例可用于实现单片控制器应用,或者用一组其逻辑上不相交功能的组件化版本来取代单片软件开发方法。每个控制功能都可以独立于其他控制功能进行缩放,同时保持本文提出的解决方案的可靠性特性。
1.一种用于控制物理实体的计算机实现的方法,其中所述方法由运行逻辑控制功能的至少两个实例的控制器节点执行,所述方法包括:
2.根据权利要求1所述的方法,其中,如果组合的实例处理和实例状态同步时间满足操作定时条件,则所述方法包括:在与通过所述输出机制提供来自所述控制功能的所述实例中的至少一个实例的实例输出数据同步的过程中,同步所述控制功能的所述至少两个实例的内部状态。
3.根据权利要求1或2所述的方法,其中,如果组合的实例处理和实例状态同步时间不满足操作定时条件,则所述方法包括:在与通过所述输出机制提供来自所述控制功能的所述实例中的至少一个实例的实例输出数据不同步的过程中,同步所述控制功能的所述至少两个实例的内部状态。
4.根据权利要求2或3所述的方法,其中,在与通过所述输出机制提供来自所述控制功能的所述实例中的至少一个实例的实例输出数据同步的过程中,同步所述控制功能的所述至少两个实例的内部状态包括:
5.根据权利要求2至4中任一项所述的方法,其中,在与通过所述输出机制提供来自所述控制功能的所述实例中的至少一个实例的实例输出数据不同步的过程中,同步所述控制功能的所述至少两个实例的内部状态包括:
6.根据权利要求2至5中任一项所述的方法,还包括:
7.根据前述权利要求中任一项所述的方法,其中,所述控制功能的所述至少两个实例包括主实例和至少一个次实例,并且其中,通过输出机制提供来自所述控制功能的所述实例中的至少一个实例的实例输出数据包括:提供来自所述主实例的实例输出数据。
8.根据权利要求7所述的方法,其中,如果故障转移时间满足故障转移定时条件,则使所述实例中的至少一个实例处理所接收的实例输入数据并生成实例输出数据包括:仅使所述主实例处理所接收的实例输入数据并生成实例输出数据。
9.根据权利要求7或8所述的方法,其中,如果故障转移时间不满足故障转移定时条件,则使所述实例中的至少一个实例处理所接收的实例输入数据并生成实例输出数据包括:使所有实例处理所接收的实例输入数据并生成实例输出数据。
10.根据权利要求7或8所述的方法,其中,所述故障转移时间包括为以下事项所花费的时间:
11.根据权利要求7至10中任一项所述的方法,还包括确定所述控制功能的所述至少两个实例中的哪个实例包括所述主实例。
12.根据权利要求11所述的方法,其中,通过检测先前确定的主实例处的缺陷来触发所述确定所述至少两个实例中的哪个实例包括所述主实例。
13.根据权利要求11或12所述的方法,其中,确定所述控制功能的所述至少两个实例中的哪个实例包括所述主实例包括执行以下中的至少一个:
14.根据权利要求11至13中任一项所述的方法,还包括:
15.根据前述权利要求中任一项所述的方法,其中,向所述控制功能的所述至少两个实例中的每个实例提供从所述节点输入数据生成的实例输入数据包括以下中的至少一个:
16.根据权利要求15所述的方法,其中,向所述控制功能的所述至少两个实例中的每个实例提供从所述节点输入数据生成的实例输入数据包括:
17.根据前述权利要求中任一项所述的方法,其中,提供给所述控制功能的任一个实例的所述实例输入数据满足相对于提供给所述控制功能的所有其他实例的所述实例输入数据的功能相似性标准。
18.一种用于根据控制应用来控制物理实体的计算机实现的方法,其中所述方法由包括多个控制器节点的系统执行,每个控制器节点实现包括在所述控制应用内的逻辑控制功能,所述方法包括:
19.根据权利要求18所述的方法,其中,使所述系统输入数据被所述系统中的个别控制器节点的所述逻辑控制功能顺序地处理以生成系统输出数据包括:
20.根据权利要求19所述的方法,其中,所述输出机制连接到后续控制器节点或至少一个致动器中的至少一个,所述致动器可操作以在所述物理实体上执行由所述控制器节点确定的所述控制。
21.根据权利要求18至20中任一项所述的方法,其中,所述系统中的每个节点可操作以从所述系统中的多个其他控制器节点接收节点输入数据,并且可操作以向所述系统中的多个其它控制器节点提供节点输出数据。
22.根据权利要求21所述的方法,其中,所述系统中的每个控制器节点可操作以从所述物理实体接收节点输入数据。
23.根据权利要求18至22中任一项所述的方法,其中,每个控制器节点可操作以处理来自所述控制应用的应用域的不同抽象级别的数据。
24.根据权利要求23所述的方法,其中,所述系统的所述控制器节点包括从所述输入控制器节点到输出控制器节点的链,其中所述输入控制器节点可操作以处理来自所述控制应用的应用域的数据,并且其中所述链中的每个控制器节点可操作以从所述应用域以增加的抽象级别处理数据,并且其中所述输出控制器节点可操作以提供所述物理实体的所述物理域中的输出数据。
25.一种计算机程序产品,包括计算机可读介质,所述计算机可读介质具有体现在其中的计算机可读代码,所述计算机可读代码被配置为使得在由合适的计算机或处理器执行时,使所述计算机或处理器执行权利要求1至24中任一项所述的方法。
26.一种用于控制物理实体的控制器节点,其中,所述控制器节点可操作以运行逻辑控制功能的至少两个实例,所述控制器节点包括处理电路,所述处理电路被配置为使所述控制器节点:
27.根据权利要求26所述的控制器节点,其中,所述处理电路还被配置为使所述控制器节点执行根据权利要求2至17中任一项所述的方法。
28.一种用于控制物理实体的控制器节点,其中,所述控制器节点可操作以运行逻辑控制功能的至少两个实例,所述控制器节点被配置为:
29.根据权利要求28所述的控制器节点,其中,控制器节点还被配置为执行根据权利要求2至17中任一项所述的方法。
30.一种用于根据控制应用来控制物理实体的系统,所述系统包括多个控制器节点,每个控制器节点实现包括在所述控制应用内的逻辑控制功能,所述系统被配置为:
31.根据权利要求30所述的系统,其中,所述系统还被配置为执行根据权利要求19至24中任一项所述的方法。
