CN111324094A - 用于自动系统的工作流的动态适配的方法 - Google Patents
用于自动系统的工作流的动态适配的方法 Download PDFInfo
- Publication number
- CN111324094A CN111324094A CN201911301151.XA CN201911301151A CN111324094A CN 111324094 A CN111324094 A CN 111324094A CN 201911301151 A CN201911301151 A CN 201911301151A CN 111324094 A CN111324094 A CN 111324094A
- Authority
- CN
- China
- Prior art keywords
- ahf
- workflow
- automated handling
- machine
- handling function
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
- G05B19/41815—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by the cooperation between machine tools, manipulators and conveyor or other workpiece supply system, workcell
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
- G05B19/41885—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by modeling, simulation of the manufacturing system
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0423—Input/output
- G05B19/0425—Safety, monitoring
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B23/00—Testing or monitoring of control systems or parts thereof
- G05B23/02—Electric testing or monitoring
- G05B23/0205—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
- G05B23/0218—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterised by the fault detection method dealing with either existing or incipient faults
- G05B23/0224—Process history based detection method, e.g. whereby history implies the availability of large amounts of data
- G05B23/0227—Qualitative history assessment, whereby the type of data acted upon, e.g. waveforms, images or patterns, is not relevant, e.g. rule based assessment; if-then decisions
- G05B23/0229—Qualitative history assessment, whereby the type of data acted upon, e.g. waveforms, images or patterns, is not relevant, e.g. rule based assessment; if-then decisions knowledge based, e.g. expert systems; genetic algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
- G06F9/3891—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/32—Operator till task planning
- G05B2219/32339—Object oriented modeling, design, analysis, implementation, simulation language
Abstract
一种用于动态适配自动化系统AS的工作流WF的方法,其中所述工作流WF包括对受自动化系统(AS)的机器(M)的工作流处理器WP所控制的生产过程的相关联的生产步骤进行实现的自动化处置功能AHF,以及至少一个自动化处置功能AHF壳,其被配置成在自动化系统(AS)的运行时期间将可插入的自动化处置功能pAHF插入到自动化系统(AS)的工作流WF中以用于适配所述工作流WF。
Description
本发明涉及用于控制由自动化系统的机器所执行的生产过程的方法和系统。自动化系统可以包括协作的机器。
自动化系统可以包括被适配成执行生产过程的生产步骤的机器。生产过程可以由单个机器和/或由协作的机器来执行,所述协作的机器并行地工作以执行生产过程的相应生产过程步骤。每个机器可以包括实体、尤其是致动器,其执行自动化的处置功能、AHF,诸如在生产过程期间移动、拾取或握持机械组件、特别是工件。自动化系统的机器被设计成执行不同种类的自动化处置功能或任务,直到最后完成生产要求。
在信息物理(cyber-physical)生产系统中,需要高级人机协作和/或机器-机器协作来实现部分地也由人类工人实施的复杂生产过程。然而,从工程观点来看,尤其是包括协作机器的自动化系统难以实现。在协作中的异构参与者、特别是异构机器之间的有效同步通信的支持确实增加自动化系统的复杂性并且增加其故障概率。经由可能的死锁以及由机器的协调所引起的其它过程间通信问题而增加自动化系统的故障概率。如与其中不同的软件系统通过交换消息而交互的纯基于软件的协作协议相对,信息物理生产系统中的协作需要在信息物理生产单元、生产机器和/或生产机器人之间的既基于消息而且也物理的交互。物理交互可以包括在协作的参与者、尤其是机器和/或人类之间的光学、声音和触觉交互。
此外,由机器人或自动化系统的其它机器所提供的大多数自动化处置功能需要被预编程。这与协作的人类工人的能力相比,这确实限制它们的协作能力。例如,机器或机器人缺乏在生产过程中协作的人类工人的直觉、同理心和灵活性。直到现在,对于为机器配备这样的人类学特质的尝试在现实生产环境中仅仅示出了有限的成功。
此外,在自动化系统的机器之间的协作协议需要某种水平的标准化,考虑到标准化的协议需要利用多种多样的硬件和软件来工作,这暗含地减小其通用性,所述某种水平的标准化限制机器的灵活性、能力和有效性。这造成了很大的挑战,尤其是在需要高水平的标准化的自动化系统的物理生产环境中。
因此,存在对于如下的需要:提供用于高效并且灵活地控制由自动化系统的协作机器所执行的生产过程的方法和系统。
该目的通过根据本发明的第一方面的用于控制由自动化系统的协作机器所执行的生产过程的方法来被实现。
所述目的还通过根据本发明的第二方面的包括用于执行共同生产过程的协作机器的自动化系统来被实现。
常规的自动化系统被设计成执行作为其设计的部分所确定的经预编程的自动化处置功能或任务的相对固定的集合。可以通过提供用于在运行时配置自动化系统的手段来实现某种程度的灵活性。在运行时改变自动化系统的功能性以超出其配置空间需要对自动化系统的重编程。因此,如果自动化系统的要求改变超出其原始意图的能力,则自动化系统、尤其是其软件必须被重编程。
存在对于在操作期间重编程以及改变自动化系统的功能性的固有困难。对自动化系统的任何部分的改变需要软件被重建并且重测试,即使执行了微小的改变。这继而需要消耗资源以及时间的测试和检验努力。在其中每个工厂或自动化系统在长时间段之上生产相同的产品并且改变不频繁的常规生产设置中,该常规途径仍是可能的。然而,在智能工厂上下文中常见的更加动态的生产场景中,常规的途径不再可行,因为过程清单和/或由自动化系统所生产的产品的材料的清单在系统的设计时不一定已知。此外,这样的自动化系统的批量可以很小或甚至是一。常规途径的另外的问题是开发和开发周期被延长,因为自动化系统设置中和/或自动化系统的现实硬件上的单独的实体和/或功能的甚至很小的改变都不能在现场被容易地测试。在常规开发过程、诸如Waterfall或Agile中,测试不能在操作软件上被执行,并且甚至很小的改变也能花费长时间来集成、部署和测试。
因此,本发明的另外的目的是提供自动化系统的动态适配性。
本发明根据另外的第三方面提供了一种用于动态适配自动化系统的工作流的方法。
本发明此外根据第四方面提供了一种自动化系统,所述自动化系统被适配(特别地:被设计和编程)以执行根据可以被动态地适配的工作流的生产过程。
根据本发明的方法和系统增加执行生产过程的自动化系统的灵活性、稳健性、安全性和效率。
本发明根据第一方面而提供了一种用于控制由自动化系统的协作机器所执行的生产过程的方法,
其中自动化系统的每个协作机器包括被存储在所述协作机器的本地存储器中的所述协作机器的相关联的工作流执行上下文,
其中每个协作机器的工作流执行上下文包括相应协作机器的工作流以及与所述工作流相关联的先决条件上下文,其包括取决于自动化系统的其它协作机器的工作流和自动化处置功能的、针对由相应的协作机器来执行自动化处置功能的先决条件,
其中自动化系统的每个协作机器包括协作工作流处理器,其能够访问自动化系统的共享数据库,用于确定协作机器的工作流状态,
其中所述共享数据库在自动化系统的操作期间存储与已经由协作机器执行的自动化处置功能,以及由协作工作流处理器传送到自动化系统的共享数据库的协作机器的工作流状态相关的元数据,
其中完整的自动化处置功能的共享序列和工作流状态由所述自动化系统的协作机器的协作工作流处理器处理,以在生产过程期间在协作机器之间协调自动化处置功能。
在根据本发明的第一方面的用于控制由自动化系统的协作机器所执行的生产过程的方法的可能的实施例中,工作流包括对所述生产过程的相关联的生产步骤进行实现的一个或多个自动化处置功能。
在根据本发明的第一方面的用于控制由自动化系统的协作机器所执行的生产过程的方法的另外的可能的实施例中,被存储在协作机器的本地存储器中的每个协作机器的工作流执行上下文包含在由相应的机器所执行的自动化处置功能之间共享的数据项。
在根据本发明的第一方面的用于控制由自动化系统的协作机器所执行的生产过程的方法的另外的可能的实施例中,在自动化系统的操作期间由协作工作流处理器将与已经被协作机器执行的自动化处置功能以及协作机器的工作流状态相关的元数据传送到的自动化系统的共享数据库实现(或:实施)分布式账户(ledger)(其还可以被标明为AHF账户),用以在自动化系统的协作机器之间协调所述自动化处置功能。
在根据本发明的第一方面的用于控制由自动化系统的协作机器所执行的生产过程的方法的另外的可能的实施例中,所执行的自动化处置功能实例的(即已经由协作机器执行的自动化处置功能实例的)序列以及自动化系统的协作机器的工作流状态以安全并且不变的方式被写入到自动化系统的共享数据库中。
在根据本发明的第一方面的用于控制由自动化系统的协作机器所执行的生产过程的方法的仍另外的可能的实施例中,被记录在共享数据库中并且用于协调自动化处置功能的工作流状态包括运行状态、等待状态、完成状态和/或错误状态。
在根据本发明的第一方面的用于控制由自动化系统的协作机器所执行的生产过程的方法的另外的可能的实施例中,自动化系统的共享数据库包括中央数据库和/或分布式数据库,其经由自动化系统的通信介质而对协作机器的协作工作流处理器而言可访问。
在根据本发明的第一方面的用于控制由自动化系统的协作机器所执行的生产过程的方法的仍另外的可能的实施例中,自动化系统的协作机器包括在自动化系统的固定位置处所提供的机器和/或在自动化系统内可移动的移动机器。
在根据本发明的第一方面的用于控制由自动化系统的协作机器所执行的生产过程的方法的仍另外的可能的实施例中,协作机器至少暂时位于同地以在共同的生产过程对象上执行自动化处置功能。
在根据本发明的第一方面的用于控制由自动化系统的协作机器所执行的生产过程的方法的仍另外的可能的实施例中,协作机器的工作流包括被加载到协作机器的本地存储器中的预定生产工作流,或
在示教过程中被生成并且被存储在协作机器的本地存储器中的工作流,或
在机器学习过程中被生成并且被存储在协作机器的本地存储器中的工作流,或
由软件组件递送流水线所提供的工作流。
在根据本发明的第一方面的用于控制由自动化系统的协作机器所执行的生产过程的方法的仍另外的可能的实施例中,协作机器的工作流的每个自动化处置功能包括:
自动化处置功能名称或标识符,
产品标识符,
过程标识符,
至少一个功能参数,以及
执行协作机器的机器标识符。
在根据本发明的第一方面的用于控制由自动化系统的协作机器所执行的生产过程的方法的仍另外的可能的实施例中,实现生产过程的相关联的生产步骤的工作流的自动化处置功能包括根据工作流而连续执行的无条件的自动化处置功能,以及
由自动化系统的协作机器、取决于通过自动化系统的其它协作机器的自动化处置功能的结果所执行的有条件的自动化处置功能。
在根据本发明的第一方面的用于控制由自动化系统的协作机器所执行的生产过程的方法的仍另外的可能的实施例中,由自动化系统的中央或分布式共享数据库所实现的分布式账户(或AHF账户)在自动化系统的操作期间记录自动化处置功能属性和/或过程属性,包括自动化处置功能的开始和停止时间点、当前由协作机器所执行的自动化处置功能、以及自动化处置功能品质指示。
在根据本发明的第一方面的用于控制由自动化系统的协作机器所执行的生产过程的方法的仍另外的可能的实施例中,所记录的自动化处置功能属性和/或过程属性被评估以用于执行生产过程的过程分析和/或过程优化。
本发明另外根据另外的第二方面而提供了一种自动化系统,其包括
被适配成执行共同生产过程的协作机器,其中每个协作机器包括:
本地存储器,其存储相应的协作机器的工作流执行上下文,其包括工作流,所述工作流包括对生产过程的相关联的生产步骤进行实现的自动化处置功能,以及与所述工作流相关联的、取决于所述自动化系统的其它协作机器的工作流和自动化处置功能的、针对由相应的协作机器来执行自动化处置功能的先决条件上下文;以及
协作工作流处理器,其能够访问自动化系统的共享数据库,用于确定协作机器的工作流状态,
其中自动化系统的共享数据库在自动化系统的操作期间存储与已经被自动化系统的协作机器执行的自动化处置功能以及自动化系统的协作机器的工作流状态相关的元数据,所述元数据由协作机器的协作工作流处理器传送到自动化系统的共享数据库,
其中被存储在自动化系统的共享数据库中的完整的自动化处置功能的序列和工作流状态由自动化系统的协作机器的协作工作流处理器来处理,以在生产过程期间在协作机器之间协调自动化处置功能。
本发明此外根据另外的第三方面提供了一种用于动态适配自动化系统的工作流的方法,
其中所述工作流包括对受自动化系统的协作机器的工作流处理器所控制的生产过程的相关联的生产步骤进行实现的自动化处置功能,以及至少一个自动化处置功能壳(shell),其被配置成在自动化系统的运行时期间将可插入的自动化处置功能插入到自动化系统的工作流中以用于适配所述工作流。
在根据本发明的第三方面的用于动态地适配自动化系统的工作流的方法的可能的实施例中,所述被插入的自动化处置功能实现由自动化系统的至少一个协作机器所执行的生产过程的至少一个相关联的生产步骤。
在根据本发明的第三方面的用于动态地适配自动化系统的工作流的方法的另外的可能的实施例中,受所述自动化系统的协作机器的工作流处理器所控制的工作流形成与协作机器相关联的并且被存储在所述协作机器的存储器中的工作流执行上下文的部分。
在根据本发明的第三方面的用于动态地适配自动化系统的工作流的方法的仍另外的可能的实施例中,协作机器的工作流执行上下文包含在由所述自动化系统的所述协作机器所执行的自动化处置功能之间共享的数据项。
在根据本发明的第三方面的用于动态地适配自动化系统的工作流的方法的仍另外的可能的实施例中,一旦可插入的自动化处置功能已经被插入到工作流的自动化处置功能壳中,一控制令牌就由自动化处置功能壳传递到可插入的自动化处置功能中,以执行所述可插入的自动化处置功能。
在根据本发明的第三方面的用于动态地适配自动化系统的工作流的方法的仍另外的可能的实施例中,可插入的自动化处置功能从被存储在所述自动化系统的数据库中的储库被加载,或从自动化系统的协作机器的本地存储器被读取,或从被连接到自动化系统的协作机器的便携式数据载体被读取,或由软件组件递送流水线或由自动化更新服务来提供。
在根据本发明的第三方面的用于动态地适配自动化系统的工作流的方法的仍另外的可能的实施例中,在被存储在所述自动化系统的协作机器的工作流执行上下文中的特定数据项中指示可插入的自动化处置功能。
在根据本发明的第三方面的用于动态地适配自动化系统的工作流的方法的仍另外的可能的实施例中,可插入的自动化处置功能被适配成执行特定的自动化处置功能和/或特定的错误处置功能。
在根据本发明的第三方面的用于动态地适配自动化系统的工作流的方法的仍另外的可能的实施例中,如果在所述数据项中所指示的所需要的可插入的自动化处置功能不可用,则自动化处置功能壳提供默认行为和/或指示所需要的可插入的自动化处置功能的不可用性。
在根据本发明的第三方面的用于动态地适配自动化系统的工作流的方法的仍另外的可能的实施例中,通过所述自动化系统的协作机器来执行自动化处置功能。
在根据本发明的第三方面的用于动态地适配自动化系统的工作流的方法的仍另外的可能的实施例中,由自动化系统的协作机器所执行的自动化处置功能借助于账户来被协调,所述账户由自动化系统的共享数据库来实现,所述共享数据库存储与已经被协作机器执行的自动化处置功能以及所述自动化系统的协作机器的工作流状态相关的元数据。
与已经被执行的自动化处置功能实例相关的这样的元数据可以包括以下中的任一个或全部:
-自动化处置功能的名称,
-自动化处置功能的状态,
-与已经执行了特定的自动化处置功能的协作机器的执行机器相关的信息,
-自动化处置功能的执行开始的时间,
-自动化处置功能的执行结束的时间,
-和/或类似物。
在根据本发明的第三方面的用于动态地适配自动化系统的工作流的方法的仍另外的可能的实施例中,工作流的每个自动化处置功能包括至少一个输入端口和至少一个输出端口,用于在自动化处置功能之间发送和接收控制令牌。
在根据本发明的第三方面的用于动态地适配自动化系统的工作流的方法的仍另外的可能的实施例中,自动化处置功能的执行响应于经由其输入端口之一对控制令牌的接收而自动地开始。
在根据本发明的第三方面的用于动态地适配自动化系统的工作流的方法的仍另外的可能的实施例中,在完成了自动化处置功能的执行之后,控制令牌经由自动化处置功能的输出端口而传递到待执行的工作流内的下一个自动化处置功能的输入端口。
在根据本发明的第三方面的用于动态地适配自动化系统的工作流的方法的仍另外的可能的实施例中,控制令牌用于控制工作流执行和/或用于如果在自动化处置功能的执行期间出现错误则控制错误处置策略的应用。
本发明此外根据第四方面提供了一种自动化系统,所述自动化系统包括如下机器:所述机器用于根据工作流来执行生产过程,所述工作流包括自动化处置功能,其实现生产过程的相关联的生产步骤并且由机器的工作流处理器执行,
其中所述工作流包括至少一个自动化处置功能壳,所述自动化处置功能壳被配置成在自动化系统的运行时期间将可插入的自动化处置功能插入到自动化系统的工作流中以用于动态地适配自动化系统的工作流。
在下文中,参考所附各图来更详细地描述本发明不同方面的可能的实施例。
图1示出了一示意图,其用于图示根据本发明的第一方面的用于控制由自动化系统的协作机器所执行的生产过程的方法和系统的可能的示例性实施例的操作;
图2图示了对生产过程的生产步骤进行实现的自动化处置功能AHF;
图3示出了一工作流,其由开始AHF和停止AHF所围封的若干自动化处置功能所组成;
图4图示了有条件的自动化处置功能AHF的规范的等效表示;
图5图示了图4中所指定的有条件的自动化处置功能AHF的不同的成功工作流;
图6示出了自动化处置功能的具体工作流历史的示例;
图7示出了通过AHF账户所协调的特定工作流的示例;
图8图示了被指定为状态机的协作工作流处理器的行为;
图9示出了在机器上执行工作流的示例性协作工作流处理器;
图10图示了由不同的AHF账户所记载的工作流变体;
图11图示了由两个协作机器所执行并且通过公共AHF账户被协调的成功工作流的结构;
图12图示了用于机器自动化处置功能AHF的工作流的模型;
图13图示了用于对可插入的软件组件进行插入的AHF壳;
图14图示了工作流上下文中的AHF壳;
图15图示了实现用于组织控制流和数据流的接口的AHF壳;
图16图示了AHF壳语义;
图17图示了在图16中被示出为流程图的AHF壳语义;并且
图18图示了对在从组件储库加载的组件中所封装的AHF进行插入的AHF壳。
如在图1的示意图中可见的,自动化系统AS可以包括一个或多个协作机器M。协作机器M可以例如包括被适配成执行生产过程的生产步骤的生产机器。在图1的所图示的实施例中,自动化系统AS的每个协作机器M包括相应的协作机器M的相关联的工作流执行上下文WEC,其可以被存储在协作机器M的本地存储器中。
每个协作机器M的工作流执行上下文WEC包括相应机器M的工作流WF并且包括与工作流WF相关联的先决条件上下文。所述先决条件上下文包括取决于自动化系统AS的其它协作机器的工作流WF和自动化处置功能AHF的、针对由相应的协作机器M来执行自动化处置功能AHF的先决条件。在所图示的实施例中,自动化系统AS包括两个协作机器M1、M2,其各自包括用于存储相关联的工作流执行上下文WEC1、WEC2的存储器。自动化系统AS的两个协作机器M1、M2被配置成在生产过程中协作。
如图1中所图示的,自动化系统AS的每个协作机器M包括协作工作流处理器CWP,其能够访问自动化系统AS的共享数据库SDB,以确定协作机器M的工作流状态s。自动化系统AS的共享数据库SDB在自动化系统AS的操作期间存储与已经被协作机器M执行的自动化处置功能和/或自动化处置功能AHF实例的序列以及协作机器的工作流状态s相关的元数据。
自动化处置功能AHF实例的序列和/或与已经被协作机器M执行的自动化处置功能以及协作机器M的工作流状态s相关的元数据由协作工作流处理器CWP经由通信介质传送到自动化系统AS的共享数据库SDB。
完整的自动化处置功能AHF实例的共享序列和工作流状态s可以由所述自动化系统AS的协作机器的协作工作流处理器CWP处理,以在生产过程期间在协作机器M之间协调自动化处置功能AHF。由自动化系统AS的协作机器M所执行的工作流WF可以包括对相应生产过程的相关联的生产步骤进行实现的一个或多个自动化处置功能AHF。这些自动化处置功能AHF可以包括例如在生产过程、诸如组装过程期间移动、拾取或握持工件。
自动化处置功能AHF可以包括由机器M的致动器所执行的工件和/或工具的任何种类的移动、诸如横向移动或旋转移动。自动化处置功能AHF还可以包括由协作机器M所执行的用于处理工件、特别是处理工件表面的功能。自动化处置功能可以例如由协作机器的致动器执行以移动材料或将材料添加到工件、或操纵其环境。
此外,自动化处置功能AHF还可以包括对工件的处理以改变其物理、化学和/或生物特性。自动化处置功能AHF可以包括在协作机器M的实体、特别是其致动器之间的不同种类的物理交互,包括在协作机器M与在生产过程期间所处理的工件或对象之间的光学、声音和触觉交互。
在图1所图示的示例性实施例中,每个协作机器M包括被存储在机器M的存储器中的相关联的工作流执行上下文WEC。工作流执行上下文WEC包括相应的协作机器M的工作流WF(参见图2)以及与相应工作流WF相关联的先决条件上下文。被存储在协作机器的本地存储器中的每个协作机器的工作流执行上下文WEC在可能的实施例中包含在由相应的协作机器的实体(例如致动器)物理地执行的自动化处置功能AHF之间共享的数据项。
在可能的实施例中,已经被协作机器M执行的自动化处置功能AHF实例的序列和/或与协作机器M的自动化处置功能和工作流状态s相关的元数据可以在自动化系统AS的操作期间由协作工作流处理器CWP传送到自动化系统AS的共享数据库SDB,所述共享数据库SDB实现分布式账户(或:AHF账户)以在自动化系统AS的协作机器M之间协调自动化处置功能AHF或促进其协调。
在优选实施例中,自动化系统AS的协作机器M的完整的自动化处置功能AHF实例的序列以及工作流状态s以安全和不变的方式被写入到自动化系统AS的共享数据库SDB中。如被记录在共享数据库SDB中并且用于协调自动化处置功能AHF的工作流状态s在可能的实施例中包括协作机器的运行状态、等待状态、完成状态和/或错误状态。
自动化系统AS的共享数据库SDB在可能的实施例中可以包括中央数据库。在另外的可能实施例中,自动化系统AS的共享数据库SDB还可以包括分布式数据库,所述分布式数据库经由自动化系统AS的通信介质而与协作机器M的协作工作流处理器CWP通信。
自动化系统AS的协作机器M可以包括在自动化系统AS的固定位置、诸如组装线处所提供的机器。自动化系统AS的协作机器M还可以包括在自动化系统AS中可移动的机器。例如,自动化系统AS可以包括在生产设施的工作场所上移动的机器人,用于在被移动的工件或中间产物上执行生产过程的其它机器M之间移动零件。如在图1的示例性实施例中所图示的自动化系统AS的协作机器M1、M2至少暂时位于同地以在诸如物理工件之类的共同生产过程对象上执行自动化处置功能。
协作机器M的工作流WF可以包括预定的生产工作流,其可以被加载到协作机器M的本地存储器中。在另外的可能实施例中,工作流WF还可以在被安装在协作机器M的本地存储器中的示教过程中被生成。在仍另外的可能实施例中,工作流WF还可以在被安装在协作机器M的本地存储器中的机器学习过程中被生成。在仍另外的可能实施例中,协作机器M的工作流WF可以由自动化系统AS的软件组件递送流水线来提供。
在可能的实施例中,协作机器M的工作流WF的每个自动化处置功能AHF可以包括自动化处置功能名称或标识符。工作流WF的自动化处置功能AHF可以此外包括产品和/或过程标识符,其可以用于标识生产过程对象和/或包括若干生产过程步骤的生产过程。在仍另外的可能实施例中,每个自动化处置功能AHF此外包括执行相应的自动化处置功能AHF的协作机器M的机器标识符。
实现生产过程的相关联的生产步骤的工作流WF的自动化处置功能AHF在可能的实施例中包括根据工作流WF而被连续执行的无条件的自动化处置功能AHF。工作流WF的自动化处置功能AHF还可以包括由自动化系统AS的协作机器M、取决于通过自动化系统AS的其它协作机器M的自动化处置功能AHF的结果所执行的有条件的自动化处置功能AHF。
在可能的实施例中,自动化系统AS的共享数据库SDB被配置成实现账户,所述账户用于协调自动化系统AS的协作机器M。由自动化系统AS的共享数据库SDB所实现的账户在自动化系统AS的操作期间记录自动化处置功能AHF属性和/或过程属性,包括自动化处置功能AHF的开始和停止时间点、当前由协作机器M所执行的自动化处置功能AHF、以及自动化处置功能AHF品质指示。所记录的自动化处置功能AHF属性和/或过程属性在可能的实施例中可以被评估以用于执行生产过程的过程分析和/或过程优化。
在图1所图示的示例性实施例中,自动化系统AS包括协作以执行生产过程的两个协作机器M1、M2。在自动化系统AS中所实现的协作机器M的数目可以取决于用例而变化。
在可能的实施例中,自动化系统AS可以包括协作以执行生产过程的生产过程步骤的多个不同的协作机器Mi。协作机器M可以包括位于固定定位处而且还被适配成在自动化系统区域中四处移动的机器。协作机器M可以部分地位于同地以在生产步骤期间在共同的生产过程对象上协作。
每个协作机器M可以包括多个实体和/或子系统。所述实体可以包括致动器、传感器和/或处理单元。协作机器的处理实体可以能够访问协作机器M的本地存储器,其中存储了相应的协作机器的工作流执行上下文WEC。
如还在图2中所图示的,每个协作机器M的工作流执行上下文WEC可以包含数据项,所述数据项能够在相应的协作机器所执行的自动化处置功能AHF之间被共享。协作机器M可以包括被适配成执行经软件控制的生产步骤的生产机器、机器人或任何其它类型的生产单元。
例如,协作机器M可以组装产品的各个零件,并且可以改变组件的性质,例如通过研磨、钻孔、模锻和/或切割。自动化系统AS的其它协作机器M可以例如将原始材料变换成粗加工的中间零件以用于进一步处理。工作流执行上下文WEC包括取决于相同自动化系统AS的其它协作机器M的工作流WF和自动化处置功能AHF、特别是取决于协作机器M的工作流状态s的、针对由相应的协作机器M来执行自动化处置功能AHF的先决条件。
自动化处置功能AHF或任务可以实现如也在图2中所图示的生产过程的生产步骤。当前执行的自动化处置功能AHF(其也可以被称为任务)可以在被存储在协作机器M的本地存储器中的工作流执行上下文WEC中读取并且写入数据项。在可能的实施例中,当前执行的任务或自动化处置功能AHF是暂时拥有控制令牌CTOK的自动化处置功能AHF,如也在图2中图示的。在任何特定的时间,仅一个自动化处置功能AHF能拥有控制令牌CTOK。在两个自动化处置功能AHF之间的每个改变期间,任务环境必须拥有控制令牌CTOK。
AHF(或:任务)接口可以例如是如在图15中所示出的那样被限定。
包括若干自动化处置功能AHF的工作流WF的执行需要控制流机制在适当位置。在该情况中,自动化处置功能AHF当它从先前的自动化处置功能AHF或从控制令牌CTOK源获得控制令牌的时候开始执行。
WF = 开始AHF >> AHF >> AHF …… {1}
(WF = start AHF >> AHF >> AHF …… {1})。
自动化处置功能AHF当它确实拥有控制令牌CTOK的时候由协作机器M的处理单元或处理器来执行。在执行期间,自动化处置功能AHF可以读取并且写入被包含在公共存储器区域中的数据项,其被称为工作流执行上下文WEC。自动化处置功能AHF可以使用工作流执行上下文WEC来用于存储由相同工作流WF的自动化处置功能AHF共享和/或在相同工作流WF的自动化处置功能AHF之间流动的工作流内部数据项。
另外,自动化处置功能AHF可以使用工作流执行上下文WEC来用于存储AHF内部数据项。具体地,自动化处置功能AHF可以在它拥有控制令牌CTOK的时候在工作流执行上下文WEC上执行针对AHF内部数据项的读取/写入操作。尽管工作流WF的所有自动化处置功能AHF能共享公共工作流执行上下文WEC,但仅有当前执行的自动化处置功能AHF能访问工作流执行上下文WEC。当前执行的自动化处置功能AHF是在任何特定时间确实拥有控制令牌CTOK的自动化处置功能AHF。
图3示出了一工作流WF,其由开始AHF和停止AHF所围封的自动化处置功能AHF所组成。在图3所图示的实施例中,当前执行的自动化处置功能AHF2能排他地访问被存储在协作机器M的存储器中的工作流执行上下文WEC。工作流执行上下文WEC存储能具有不同值V的不同数据项DI。工作流WF在所图示的示例中作为一系列自动化处置功能AHF而被组成。在图3中所图示的示例中,当协作机器M运作并且控制令牌CTOK流过自动化处置功能AHF的时候,所述自动化处置功能AHF在具体的工作流WF内接连地执行。例如,输送工作流的自动化处置功能AHF可以如下被定序:
输送 = 移动 >> 拾取 >> 移动 >> 安置 >> 释放 {2}
(transport = move >> pick >> move >> place >> release {2})。
在工作流WF中,协作机器M可以应用或执行技能,即在控制令牌CTOK流过工作流的自动化处置功能AHF的实例的时候。在可能的实施例中,特殊的开始AHF(源)确实每工作流WF地发射控制令牌CTOK,并且特殊的停止AHF(汇点)可以收集控制令牌CTOK,例如
开始AHF >> 输送 >> 停止AHF {3}
(start AHF >> transport >> stop AHF {3})。
开始和停止AHF可以绑定技能并且使得能够交换自动化处置功能AHF和技能。在复杂的、嵌套的描述中,开始和停止AHF可以表示嵌套技能中的任务或AHF,其绑定所嵌套(插入)的技能或自动化处置功能AHF。在图3中所图示的示例中,输送自动化处置功能AHF可以被视为是单片的,并且可以由如下的自动化处置功能AHF的序列来被取代:
开始 AHF >> 移动 >> 拾取 >> … >> 释放 >> 停止 AHF {4}
(start AHF >> move >> pick >> … >> release >> stop AHF {4})。
在可能的实施例中,诸如移动自动化处置功能AHF之类的每个自动化的处置功能AHF可以被实现为自包含的二进制功能组件。功能组件可以用于创建自动化处置功能AHF的实例。自动化处置功能AHF在协作机器M的确切一个执行工作流的工作流执行上下文WEC内运作。在可能的实施例中,以下的属性可以标识自动化处置功能AHF实例:
-自动化处置功能名称或标识符,
-产品标识符,
-过程标识符,
-至少一个功能参数,以及
-执行机器的机器标识符。
所标识的自动化处置功能AHF可以在形式上被描述如下:
AHFname.AHFidentifier<product_identifier, AHF_parameter, …>(machine_identifier) {5}。
完全被标识的AHF实例的示例是:
pick.8<screw-top jar, jar>(2) {6}。
在该示例中,应当组装螺旋盖型罐。此处可以假定产品“螺旋盖型罐”由其名称来被标识。自动化的处置功能AHF将拾取由其名称所标识的罐。所述AHF标识符在该示例中是8。AHF标识符区分相同自动化处置功能AHF的实例。在协作工作流WF的规范内,如果协作机器M通过区分相同类型的自动化处置功能AHF来协调其相应的作用,则有必要通过AHF标识符来标识自动化处置功能AHF。
通常,每个自动化处置功能AHF实例可以包括输入端口的实例,以及输出端口的实例,如也在图2中所图示的。例外是开始AHF和停止AHF的实例。顶级开始AHF发射控制令牌CTOK。顶级停止AHF在工作流执行之后、即在已经完成了工作流WF之后收集控制令牌CTOK。因此,顶级技能的开始AHF具有仅一个输出端口,并且顶级技能的停止AHF具有仅一个输入端口。
在以下,描述技能、AHF和端口,其中意指技能、AHF和端口的实例。
自动化处置功能AHF的端口能够实现不同的目的:
端口限定在自动化处置功能AHF之间的接口,并且可以用于在自动化处置功能AHF之间输送控制令牌CTOK。在自动化处置功能AHF的输入端口处所接收的控制令牌CTOK确实开始相应的自动化处置功能AHF的执行。在自动化处置功能AHF的输出端口处所输出的控制令牌CTOK确实用信号通知相应的自动化处置功能AHF的执行的结束。输出控制令牌CTOK确实传递到工作流WF内的下一个自动化处置功能AHF。
利用协作机器M的协作工作流,标示复杂的软件技术功能,其包括由位于同地的协作机器M或由协作机器实体所执行的若干自动化处置功能AHF。
协作机器M可以包括诸如传感器、致动器和/或数据处理单元之类的实体。协作机器M可以包括机器人,其具有作为致动器而运作的一个或多个机器人臂。机器M的不同的实体可以位于同地以在诸如工件之类的共同生产过程对象上工作。协作机器M的实体(例如传感器、致动器或其它组件)、特别是致动器可以由协作机器M的控制器或控制单元来控制。
在可能的实施例中,协作机器M具有协作工作流处理器CWP,所述协作工作流处理器CWP能够访问自动化系统AS的共享数据库SDB以确定当前工作流状态s。协作机器M的协作工作流处理器CWP可以在生产过程步骤期间控制一个或多个实体、特别是相应协作机器M的致动器。
在可能的实施例中,不同的协作机器和/或机器实体联合执行包括若干自动化处置功能AHF的生产步骤。如在图1的实施例中所图示的两个协作机器M可以使用协作工作流WF的相同定义。协作工作流WF可以被定义为如下自动化处置功能AHF的序列:
WF = AHF [前驱 AHF] >> AHF [前驱 AHF] >>…… {7}
(WF = AHF [predecessor AHF] >> AHF [predecessor AHF] >>…… {7})。
自动化处置功能AHF可以由处理器、特别是在协作机器M中所实现的协作工作流处理器CWP来执行。所述两个不同的协作机器M和N与彼此协作,在协作机器M上执行的AHF.1(M)可以取决于在另一协作机器N上执行的AHF(N)的结果。在协作机器M可以继续开始并且执行作为 AHF.2(M)的下一个AHF之前,必须完成了前驱AHF(N):
AHF.1(M) >> AHF.2(M) [AHF(N)] {8}
AHF.2(M)是有条件的AHF,并且AHF(N)是AHF条件。
图4图示了有条件的AHF的若干等效表示,并且可以导致如图5中所图示的不同工作流WF。
图5示出了针对AHF.1(M) >> AHF.2(M) [AHF(N)]的不同的成功执行的工作流WF。注意到,每个工作流WF可以为相同的工作流描述提供AHF实例的不同交错,条件是它还包含无条件的AHF。
在其中多于两个协作机器M与彼此协作的生产场景的情况中,协作机器M上的有条件的AHF可实际需要在其它协作机器Ni上完成一个或多个自动化处置功能AHF。在这样的情况中,AHF条件(由另一协作机器M所执行的前驱AHF)可以如在以下示例中所图示的那样被组合,其中协作机器M上的自动化处置功能AHF取决于协作机器N1和N2上的两个自动化处置功能AHF的完成:
AHF(M) [AHF(N1)与AHF(N2)] {9}
(AHF(M) [AHF(N1) and AHF(N2)] {9})。
通常,自动化处置功能AHF条件(前驱AHF)可以在如下逻辑表述中被指定:所述逻辑表述包括被应用到原子操作数或结构化操作数的逻辑操作符、诸如“与”或“与非”。
在下文中,给定针对与协作机器M2协作的协作机器M1的恰当指定的协作工作流WF的示例。对于自动化处置功能AHF的规范,可以使用机器标识符(1和2)作为AHF名称,因为它们足以消除歧义。
WF = 移动(1) >> 拾取(1) >> 移动(1) >> 握持(1) >>移动(2) >> 拾取(2) >> 移动(2)[握持(1)] >> 旋拧(2) >> 移动(2) >> 移动(1)[旋拧(2)] >> 安置(1) {10a}
(WF = move(1) >> pick(1) >> move(1) >> hold(1) >>move(2) >> pick(2) >>move(2)[hold(1)] >> screw(2) >> move(2) >> move(1)[screw(2)] >> place(1){10a})。
在初始化并且开始该协作工作流WF时,为协作机器M1所调度的AHF序列是:
WF(1) = 移动(1) >> 拾取(1) >> 移动(1) >> 握持(1) >> 移动(1) [旋拧(2)] >>安置(1) {10b}
(WF(1) = move(1) >> pick(1) >> move(1) >> hold(1) >> move(1) [screw(2)] >> place(1) {10b})。
为协作机器M2所调度的AHF序列是:
WF(2) = 移动(2) >> 拾取(2) >> 移动(2)[握持(1)] >> 旋拧(2)>> 移动(2){10c}
(WF(2) = move(2) >> pick(2) >> move(2)[hold(1)] >> screw(2)>> move(2){10c})。
注意到:特定于机器的生产工作流WF、即WF(1)和WF(2)可以相应地使用分离的工作流执行上下文WEC、即WEC1和WEC2,以用于执行特定于机器的自动化处置功能AHF。
机器M1和M2的自动化处置功能AHF序列的经组合的执行可导致AHF的不同的具体工作流WF,其取决于产品的生产环境和/或协作生产机器M的可能地变化的性质。
图6示出了由{10a}的执行、即由{10b}和{10c}的并行执行所产生的自动化处置功能AHF的具体工作流WF历史的示例。
图6图示了由工作流WF的执行所产生的两个协作机器M的成功协作。
如可见的,在协作机器M1上,“AHF移动(1)[旋拧(2)]”是有条件的自动化处置功能AHF。也就是说,在协作机器M1上可以执行“AHF移动(1)”之前,必须完成了在协作机器M2上所执行的“AHF旋拧(2)”。在协作机器M2上,“AHF移动(2)[握持(1)]”也是有条件的。也就是说,“AHF移动(2)”必须等待在协作机器M1上所执行的“AHF握持(1)”的完成。
协作工作流WF的执行可以由协作机器的单独的协作工作流处理器CWP来执行。在可能的实施例中,协作机器M1、M2二者可以包括分离的协作工作流处理器CWP实例。对于AHF协调,两个协作机器M1、M2的协作工作流处理器CWP实例可以使用历史数据的共享数据库SDB,其实现或可以被解释为分布式账户。
在操作期间的任何点,AHF账户可以记载自动化系统AS的协作机器M的完整的自动化处置功能AHF以及工作流状态s。对于在协作机器M之间协调自动化处置功能AHF的必要数据可以包括完整的自动化处置功能AHF,其包括开发中的产品或随后的过程。其它必要的数据包括已经执行了相应的自动化处置功能AHF的协作机器M。用于在协作的机器M之间协调AHF的另外的数据可以包括当协作的机器M、即其协作工作流处理器CWP尝试继续下一个自动化处置功能AHF的时候的工作流WF的状态。
在尝试执行从已完成的AHF实例到下一个AHF实例的转变时,工作流WF可以通过对于协调而言相关的以下工作流状态s之一或处于其中,并且因此还被记录在自动化AS的AHF账户中。
如被记录在账户中并且用于协调自动化处置功能AHF的工作流状态s在可能的实施例中可以包括运行状态、等待状态、完成状态和/或错误状态。
在运行状态中,工作流WF在无中断的情况下继续下一个AHF,其要么因为下一个AHF没有条件(默认AHF条件是真的)要么因为下一个有条件AHF的AHF条件已经被满足。
在等待状态中,工作流WF的下一个AHF是有条件的AHF,并且条件尚未被满足。协作机器M上的前驱AHF尚未开始或仍在运行。
在完成状态中,由工作流WF所包括的所有AHF已经被成功地执行并且已经达成其完成状态。
在错误状态中,工作流WF的AHF不能被完成并且在错误的情况下停止。
图7示出了可以从协作技能或工作流WF的规范中所产生的正确工作流WF的示例。在逻辑上,该工作流WF确切如以上所指定的那样运行。
在可能的实施例中,除了以上提及的数据之外,AHF账户可以记录更多的AHF/过程属性。这些属性可以包括AHF开始和停止执行的时间点。此外,它们可以包括当前运行的AHF及其操作模式,例如正常操作模式和/或维护(即错误处置)操作模式。所述属性还可以包括AHF品质指示符,诸如在收敛到参考输入或多个重试之前输出信号的过冲和振荡。
在AHF账户中所存储的这些附加数据或属性可以被处理以用于分析目的。被存储在账户中的数据可以由本地或远程处理器读取,所述本地或远程处理器执行评估算法以分析数据。例如,处理器可以执行品质分析并且甚至提供生产过程的优化。
利用附加的任务/过程属性,更复杂的过程流WF可以被指定并且被用作AHF条件(前驱AHF)的更强有力的规范。
AHF账户在可能的实施例中包括如下数据:所述数据使得自动化系统AS的协作机器M能够在必要的时候协调它们的自动化处置功能AHF。AHF实例的内部数据或特定于自动化系统AS的协作机器M之一上的自动化处置功能AHF的工作流WF内部的数据可以被保持在机器特定的工作流执行上下文WEC中。传感器引导的AHF当处理信号和事件以便控制实体、特别是协作机器M的致动器的时候可以在AHF执行期间生成并且使用内部数据。
在协作机器M上执行的有条件的自动化处置功能AHF、即AHF(M)[AHF(N)]包括在另一协作机器N上执行的至少一个前驱AHF(N)。在该情况中,在协作机器M上执行的协作工作流处理器CWP实例(CWP(M))确实检查被存储在共享数据库SDB中的公共AHF账户是否已经包含了针对确实报告了成功AHF完成的AHF(N)的记录。如果AHF账户包含这样的记录,即如果AHF条件满足,那么协作工作流处理器CWP(M)可以开始于有条件的AHF。否则,协作工作流处理器CWP(M)将等待下一个AHF的条件变成真。
在等待协作机器上的前驱AHF(N)的完成的时候,当前执行的AHF不再运行在正常操作模式中,而是运行在等待模式中。这使得当前执行的AHF能够继续控制系统和/或过程或协作机器M的部分,例如以便保持系统稳定,直到前驱AHF已经完成并且工作流WF可继续下一个自动化处置功能AHF为止。图8指定这样的协作工作流处理器CWP的操作行为。
在所图示的示例性实施例中,与另一协作机器M协作的协作机器M的协作工作流处理器CWP可以包括两个状态,即在其中执行自动化处置功能AHF的状态,以及针对工作流执行和协调的状态。在图8中所图示的实施例中,协作工作流处理器CWP的操作行为在统一建模语言(UML)记号中被指定为状态机。
AHF实例仅仅在它已经离开了图8中所示的CWP状态机中的正常操作模式(动作1.2)之后被视为完成。这使能够实现具有重叠的自动化处置功能AHF的协作场景。
利用图8中所图示的状态机,图6、7中的自动化处置功能AHF的工作流WF可以如还在图9中所图示的那样被解释。
图9图示了协作工作流处理器CWP(1)在协作机器M1上执行{10b}。
图9示出了在开始和停止以及相关联的AHF生命周期动作或AHF生命期和在系统的AHF账户内对自动化处置功能AHF的记录之间的协作工作流处理器CWP(1)的操作状态的序列。
在一个协作机器M上所执行的自动化处置功能AHF的序列完全是有序的。所述排序可以在工作流规范中被给出,所述工作流规范遭受具有部分平行的子过程的特定产品的生产过程所限定的约束和余地。AHF账户中的自动化处置功能AHF的序列通过执行这些自动化处置功能AHF的协作机器M来被部分地排序。因此,可以产生针对相同的协作工作流WF的不同工作流WF。
在相同的协作机器M上所执行的自动化处置功能AHF之间的排序不变,并且在不同的协作机器M上所执行的自动化处置功能AHF之间的排序由AHF条件(前驱AHF)给定。因此,例如,在图10中,工作流部分1到3形成对于彼此的可替换方案。
图10图示了在不同的AHF账户中所记载的工作流变体。变体1取自图6中所图示的工作流WF。变体4取自图7中所图示的工作流WF。因此,例如,在图10中,工作流部分1到3形成对于彼此的可替换方案。它们中的每一个可能地形成针对综合较大的、综合协作的技能的较大可替换的工作流WF的部分。
为了比较,也在图10中所图示的工作流变体4、5不是可替换方案。然而,关于更综合的协作技能,图10中所图示的全部五个工作流WF可以是对于彼此的可替换方案的部分。图10中所图示的所有工作流WF变体可以包括不同的性能特性。但是,协作工作流WF的相同的、 恰当的规范的所有工作流WF可以具有以下性质(工作流性质WFP)。
在任何时间点,当从AHF账户选择从协作机器M所执行的所有AHF实例的时候,工作流WH可以确切地如在针对相应的协作机器M的技能的规范中那样按时间来被排序。因此,在一个工作流WF(WFP1)内的自动化处置功能AHF之间存在一致的关系。
AHF账户可以在协作机器N上包含前驱AHF S,即AHF.S(N),其有时在协作机器M上条件有任务S的AHF T之前,即AHF.T(M)[AHF.S(N)] (WFP2)。
为了防止停滞(例如其由死锁引起),协作工作流的规范可以包括以下工作流性质。如果工作流WF(M)包含有条件的AHF.T(M)[AHF.S(N)],那么WF(N)不可包含有条件的自动化处置功能AHF.S(N)[AHF.T'(M)],其中S取决于T',其中T'等同于T或T'跟在T之后,也就是说,T'位于T的将来。否则,AHF S和AHF T不能完成并且两个工作流WF都停下来。协作机器M和协作机器N上的工作流WF将会死锁。
可违反该协作工作流性质WFP的协作工作流规范的示例是以下:
WF(M) = AHF.1(M) [AHF.1(N)] {11a]
WF(N) = AHF.1(N) [AHF.1(M)] {11b}。
可得到的是:特定用于协作机器M的、被称为工作流WF(M)的工作流具有性质WFP1。在协作场景中,在协作机器M上所执行的至少一个AHF.T(M)有如下条件:在协作机器N上所执行的AHF.S(N)。根据WFP2,必须在AHF.T(M)之前的某个时候执行AHF.S(N)。也就是说,AHF.S(N)可发生在公共AHF账户中、在AHF.T(M)之前一个AHF处,或者AHF.S(N)可发生在公共AHF账户中、在AHF.T(M)之前若干AHF处。
因此,可以延长所得到的工作流WF(M)并且可以插入必须在协作机器N上被执行的前驱AHF(s),以便协作机器M上的工作流WF取得进展。被插入在工作流WF(M)中的仅有的AHF.Si(N)的工作流WF也具有性质WFP1。因此,我们可以从工作流WF(M)的{11.a}中得到,并且利用一个前驱AHF来延长工作流WF(M),并且获得:
WF(M) = 开始(M) >> AHF.1(N) >> AHF.1(M) >> 停止(M)
{12a}
(WF(M) = start(M) >> AHF.1(N) >> AHF.1(M) >> stop(M)
{12a})。
如果从{11.b}中得到协作机器M的工作流WF,并且为协作机器M上的工作流WF应用所述内容,那么获得:
WF(N) = 开始(N) >> AHF.1(M) >> AHF.1(N) >> 停止(N) {12b}
(WF(N) = start(N) >> AHF.1(M) >> AHF.1(N) >> stop(N) {12b})。
注意到,工作流状态s已经从工作流{12.a}和{12.b}中被丢弃。这可以被完成,因为在协作工作流处理器CWP尝试执行从一个AHF实例到下一个AHF实例的转变的时刻的工作流WF的状态、即工作流是能在无暂停的情况下继续(状态运行,当AHF账户已经包含针对前驱AHF的记录的时候)还是必须等待条件AHF(状态等待,当AHF账户不包含前驱AHF的记录的时候)是不相关的。与协作工作流WF的分析相关,对于不想要的AHF,相关性循环仅仅是AHF相关性。
关于工作流{12.a},AHF.1(M)取决于AHF.1(N)的完成。关于工作流{12.b},AHF.1(N)取决于AHF.1(M)的完成。特定于机器的工作流{12.a}和{12.b}二者就其本身而言是恰当的。然而,两个特定于机器的工作流不能被组合到公共、恰当的AHF账户。如果被组合,则在a>>b和b>>a不能同时保持的范围内,这些工作流WF可与彼此抵触。这还产生自以上陈述的工作流性质WFP1和WFP2,其暗示了在相关的自动化处置功能AHF的实例之间的关系>>是不对称的,也就是说以下暗示(=>)必须保持:
对于一致的AHF账户的所有AHF实例S和T:
S >> T => not(T >> S) {13}。
换言之,如果AHF实例T在AHF实例S之后执行,那么AHF实例S不能在AHF实例T之后执行。
可以考虑以下示例:堆叠机器(此处的协作机器“1”)应当首先堆叠多个对象,并且封装机器(此处的协作机器“2”)应当在其后封装所堆叠的对象。此处的对象可以例如是工件或工具。针对封装机器的工作流WF(2)于是可以被描述如下:
WF(2) = ...>> 封装<对象>(2)[堆叠<对象>(1)] >> ...
{14.a}
(WF(2) = ... >> pack<object>(2)[stack<object>(1)] >> ...
{14.a})。
将会明显抵触的是另外要求封装机器首先封装对象,并且堆叠机器其后在堆叠机器的工作流WF(1)中堆叠对象。
WF(1) = ...>> 堆叠<对象>(1)[封装<对象>(2)] >> ...
{14.b}
(WF(1) = ... >> stack<object>(1)[pack<object>(2)] >> ...
{14.b})。
因此,匹配AHF模式{11.a}和{11.b}的协作工作流规范、例如{14.a}和{14.b}被不恰当地指定。对于该简单的用例而言这是相当显而易见的,在所述用例中相同的自动化处置功能AHF是有条件的自动化处置功能AHF并且包括针对彼此的前驱自动化处置功能AHF。更高的要求是协作工作流WF的规范,其中其它自动化处置功能AHF在循环相关的自动化处置功能AHF中间执行,如在以下示例中所图示的:
WF(M) = AHF.1(M) [ AHF.2(N) ] >> AHF.2(M) {15.a}
WF(N) = AHF.1(N) >> AHF.2(N) [ AHF.2(M) ] {15.b}。
利用协作工作流WF的该规范,可以获得以下特定于机器的工作流WF,其各自利用必要的前驱自动化处置功能AHF而被延长:
开始(M) >> AHF.2(N) >> AHF.1(M) >> AHF.2(M) >> 停止(M)
{16.a}
(start(M) >> AHF.2(N) >> AHF.1(M) >> AHF.2(M) >> stop(M)
{16.a})
开始(N) >> AHF.1(N) >> AHF.2(M) >> AHF.2(N) >> 停止(M)
{16.b}
(start(N) >> AHF.1(N) >> AHF.2(M) >> AHF.2(N) >> stop(M)
{16.b})。
根据{16.a},AHF.2(M)间接地取决于AHF.2(N),因为在中间执行AHF.1(M)。根据{16.b},AHF.2(N)直接地取决于AHF.2(M)。再次,具有在AHF实例之间的循环相关性。如以上那样,如果被组合,则在a >> … >> c和c >> … >>a不能同时保持的范围内,这些工作流WF与彼此抵触。
这也产生自工作流性质WFP1,其暗示了在工作流中的AHF实例之间的关系>>是传递的,也就是说,以下暗示(=>)必须保持:
对于一致的AHF账户的所有AHF实例a、b和c:
(a >> b)与(b>>c) => a >> c {17}。
在工作流WF上可以一次或多次地应用暗示{17},以消除在间接相关的自动化处置功能AHF a和c之间的中间AHF实例bi:
a >> b1 >> b2 >> … bn >> c ⇒ * a >> c
{17} {18}。
现在,对于感兴趣的AHF实例、即对于AHF实例a和c,暗示{13}必须保持。
不要将AHF相关性循环与AHF执行循环混淆。生产过程可能需要自动化处置功能AHF将被执行若干次。简单的示例是在不同的位置需要两个镗孔的工件。协作机器M1应对工件,并且协作机器M2应对机器工具(例如机器钻孔)。在该情况中,工作流规范可以区分相同的自动化处置功能AHF(钻孔)的实例。协作工作流的形式化的自动化处置功能AHF可以被描述如下:
WF(1) = … 握持(1) >> 安置(1) [钻孔.2(2) ] >> … {19.a}
(WF(1) = … hold(1) >> place(1) [drill.2(2) ] >> … {19.a})。
换言之,协作机器M1仅仅能够在协作机器M2已经钻孔了两个镗孔之后安置工件。
WF(2) = … 移动(2) [ 握持(1) ] >> 钻孔.1(2) >> 移动(2) [ 握持(1) ] >>钻孔.2(2) >> 移动(2)
>>… {19.b}
(WF(2) = … move(2) [ hold(1) ] >> drill.1(2) >> move(2) [ hold(1) ] >>drill.2(2) >> move(2)
>>… {19.b})。
协作机器M2预期协作机器M1将工件握持在不变的定位中以用于在不同的位置钻孔镗孔。在两个钻孔操作之间,协作机器M2将钻孔工具从一个位置移动到另一位置。
图11示出了从{19.a}和{19.b}产生的成功工作流WF的基础结构。图11图示了协作钻孔。协作机器M1在工件(例如木制块)上应用{19.a},并且协作机器M2在工具上应用{19.b}(例如钻孔)。
在可能的实施例中,根据本发明的系统在执行协作工作流的时候提供错误处置过程。
根据本发明的自动化系统AS可以包括一个或若干协作机器M。如果自动化系统AS包括仅一个机器,则机器可以执行自主工作流WF。自主工作流WF是如下工作流:其在没有任何人类干预的情况下在自动化系统AS的一个机器M上自主地执行。
相比之下,协作工作流是如下工作流WF:其同时在两个或更多协作机器M上被执行以使能实现在它们之间的交互。自动化系统AS的每个协作机器M可以包括相关联的工作流执行上下文WEC。工作流执行上下文WEC包括公共存储器区域,所述公共存储器区域包含数据项DI,所述数据项DI在相同的协作机器M上所执行的自动化处置功能AHF之间被共享。
仅仅当前执行的自动化处置功能AHF可以访问协作机器M的工作流执行上下文WEC。自动化处置功能AHF形成工作流WF的部分。自动化处置功能AHF可以实现遵照如例如在VDI2860中所定义的预定义功能的生产步骤。AHF实例包括自动化处置功能AHF在确切一个机器M上的执行。AHF实例形成工作流WF的部分。AHF账户可以包括数据库,所述数据库以不变的方式记录所执行的AHF实例,即一旦记录被录入到账户中,它就不再能被改变。工作流WF可以包括自动化处置功能在一个或多个协作机器M上的执行。控制令牌CTOK流过从属于这样的工作流WF的自动化处置功能AHF所创建的AHF实例。
根据本发明的第一和第二方面的用于控制由自动化系统AS的协作机器M所执行的生产过程的方法和系统提供若干优点。
协作机器工作流可以通过能够进行交互的协作机器M、诸如机器人来执行。因此,有可能实现并且执行单独的机器M不能执行的工作流WF。如与组装线相对,这在单个位置组装的上下文中是令人感兴趣的。
此外,根据本发明的方法和系统在单独的自动化处置功能AHF或过程的过程步骤的层级上提供两个或更多协作机器M的协作。所述方法和系统允许以灵活并且高效的方式指定机器协作。
根据本发明的方法和系统此外允许协调多个协作机器M。根据本发明的方法允许减少对于以最小的协调努力来促进协作机器M的协作而言需要的所需通信。因此,由根据本发明的方法和系统所提供的通信是简单、可靠、快速并且资源高效的。
开始于用于完整协作工作流的工作计划,针对自动化系统AS的协作机器M中每一个的单独的工作计划或工作流WF可以在必要的时候被提取以用于并行的执行和会和。每个协作机器M可以按其自己的观点来优化在最小约束集合的情况下被指派给它的自动化处置功能AHF。此外,根据本发明的方法和系统允许局部优化,所述局部优化可以在每个协作机器M上、关于在中央、总体工作计划生成器的层级上可能不是已知的过程特性和协作机器M来被执行。在针对所有协作机器M的总体工作计划的层级上,在工作流WF内所指定的条件确实允许不同的工作流WF。在该层级上,优化也是可能的,例如关于生产过程的性质、例如品质、成本和时间。
由根据本发明的方法和系统所提供的协作工作流WF允许必须被观察的条件的规范。自动化处置功能AHF可以在每个协作机器M上并且还在自动化系统AS的协作机器M之间的工作流内被排序。它还可以例如基于优先图来被生成。
协作工作流WF可以由聚焦在具有清晰接口的递归生产步骤上的细粒度、模块化的自动化处置功能AHF所组成。自动化处置功能AHF可以在不同技能的情况下被重用。细粒度的自动化处置功能AHF通过重用现有自动化处置功能AHF来允许新工作流WF的模块化组成。与此相比之下,常规的途径取决于针对每个单独问题的技能,其导致大量复杂技能而具有对于在新上下文中重用现有解决方案的很小可能性。
由以不变方式来对过程的历史进行记载的AHF账户所形成的协调层可以在协作机器M上被复制,并且因此以确切相同的方式被实现以便确保AHF账户的完整性。在可能的实施例中,可以实现AHF的高效全工厂区块链和工作流记录。
AHF账户可以是添加物并且可分布。例如,如果AHF账户由两个交互的协作机器所拥有,则记录在可能的实施例中可以被传递到中央、例如全工厂AHF账户,其中所有协作机器M的所有工作流WF被记载。
根据本发明的用于控制由自动化系统AS的协作机器M所执行的生产过程的方法和系统增加生产过程的效率,特别地生成过程可变得更快速并且更灵活。例如,可以在生产过程中、在一个轮班(shift)中、以小的批量来生产不同的产品。更快的生产导致在给定时间段内的更高的输出。
所述方法和系统此外提供对每个协作机器M上的给定工作计划或工作流WF的、关于给定品质属性的优化。在每个协作机器M上的给定工作计划或工作流WF的优化可以在具有最小化生产时间的目的的情况下被执行。此外,根据本发明的方法和系统允许重用自动化处置功能AHF,其可以由软件组件在不同的生产过程和/或机器应用场景中来被实现。
协作工作流处理器CWP提供在单个机器上的自动化处置功能AHF之间或在协作机器之间的稳健交互。由于经由AHF账户的耦合,自动化系统AS的协作机器M可以具有不同的设计和实现方式并且因此也来自不同的制造商。
在可能的实施例中,AHF账户可以基于区块链技术来被实现。AHF账户不仅记载工作进展,而且还促进在自动化系统AS的协作以生产产品的不同协作机器M上所执行的自动化处置功能AHF的协调。因此,在自动化系统AS的协作机器M之间的自动化处置功能AHF的协调在具有最小开销的情况下、快速、紧密实时地执行。
在可能的实施例中,系统不仅包括存储AHF记录和工作流记录的被动性AHF账户,而且还包括服务程序,所述服务程序自动地公布协作工作流处理器CWP已经订购的令人感兴趣的系统事件、即AHF账户中的条目。协作机器M上的协作工作流处理器CWP可以订购可在不同的协作机器M上被执行并且在协作机器M上的工作流WF可继续之前必须完成的自动化处置功能AHF。根据本发明的方法和系统可以被使用在任何种类的信息物理生产系统CPPS中。
本发明根据另外的第三方面提供了一种用于动态适配自动化系统AS上的工作流WF的方法。所述工作流WF包括对受自动化系统AS的协作机器M的工作流处理器WP所控制的生产过程的相关联的生产步骤进行实现的自动化处置功能AHF,以及至少一个自动化处置功能AHF壳,其被配置成在自动化系统AS的运行时期间将可插入的自动化处置功能pAHF插入到自动化系统AS的工作流WF中以用于适配相应的工作流WF。
根据本发明的第三方面的用于动态适配自动化系统的工作流WF的方法可以用于动态地适配自动化系统AS,其通过插入新的工作流和自动化处置功能AHF以执行在自动化系统AS的编程时没有被预见的功能。新的自动化处置功能AHF因此可以在自动化系统AS的系统启动时间被提供。此外,在系统运行时期间可以提供新的技能和自动化处置功能AHF。
现有自动化处置功能AHF的新版本可以被使用并且被插入到AHF壳中。自动化处置功能AHF的新版本可以拥有与已经可用的自动化处置功能AHF不同的特性,并且可以提供关于系统度量、诸如资源消耗、品质、效率或成本的其它操作行为。自动化处置功能AHF的新版本与那些已经现有的相比可以更好地适合并且由自动化系统AS来被执行。
如在图2情况下的上下文中已经描述的,自动化处置功能AHF可以标示能贡献于实施工作流WF的经限定的功能。自动化处置功能AHF当拥有如图2中所示的控制令牌CTOK的时候执行其功能。在执行期间,自动化处置功能AHF可以在工作流执行上下文WEC中读取并且写入数据项DI。工作流WF可以由如图3中所示的一系列自动化处置功能AHF所组成。工作流WF可以被指定为机器和人类可读的表述,其包括一系列自动化处置功能AHF。
WF(M) = AHF1 >> AHF2 >> … >> AHF n {20}。
工作流WF可以标示生产工作流,诸如从工件来组装产品。自动化系统AS的机器M标示执行工作流WF的机器。自动化处置功能AHF1、AHF2标示将由诸如协作机器M的致动器之类的实体所形成的用于实现所需要的生产过程的自动化处置功能AHF。典型的自动化处置功能AHF是例如:移动臂、拾取钻孔和/或对孔洞进行钻孔。符号“>>”表示对两个相继的自动化处置功能AHF进行连接的两个端口,凭此,第一箭头>指示先前AHF的输出端口,并且第二箭头>指示下一个自动化处置功能AHF的输入端口。
图12示出了包括若干具体自动化处置功能、AHF壳或子工作流的工作流WF的概览。工作流处理器WP可以实例化工作流WF。工作流处理器WP根据工作流规范来创建具体AHF或AHF壳的实例。工作流WF的自动化处置功能AHF可以共享被组织在如也在图3中所图示的公共工作流执行上下文WEC中的数据。工作流处理器WP执行工作流WF,并且可以包括一系列自动化处置功能AHF0到AHFn,如图3中所示。
工作流处理器WP使用控制令牌CTOK来协调AHF执行。工作流处理器WP通过连接相继的自动化处置功能AHF的端口来将控制令牌CTOK从一个自动化处置功能AHF(先前一个)转发到下一个自动化处置功能AHF。源AHF形成具有仅一个输出端口的特殊具体AHF。源AHF生成控制令牌CTOK、汇点AHF以及具有仅一个输入端口的特殊具体AHF,如图3中所示。汇点AHF可毁坏所接收的控制令牌CTOK。工作流WF可以在开始处包含确切一个源AHF并且在其结束处包含一个汇点AHF。AHF仅仅在通过将它连接到先前的AHF的输入端口接收到控制令牌CTOK时执行。在完成了执行之后,AHF通过连接AHF与下一个AHF的输出端口来转发控制令牌CTOK。
图13图示了用于对可插入的软件组件进行插入的AHF壳。组件能够以二进制形式来封装任务实现方式。实现AHF的组件被称为可插入的组件。AHF壳可以在运行时将可插入的组件、即被插入的自动化处置功能pAHF插入到动态可适配的工作流WF中。由于是AHF自动化处置功能,所以AHF壳可出现在工作流WF中、在其中提供了自动化处置功能AHF的任何地方。
例如,WF = 源 > … > AHFi-1 >> AHF 壳i >> AHF i+1 >> … > 汇点AHF
{21.a}
(WF = Source > … > AHFi-1 >> AHF Shell i >> AHF i+1 >> … > Sink AHF
{21.a})。
可替换的表示指示将被插入的组件/AHF,例如:
WF = 源 > … > AHF i-1 >> AHF i 插入:AHF j >> AHF i+1 > … > 汇点
{21.b}
(WF = Source > … > AHF i-1 >> AHF i plug: AHF j >> AHF i+1 > … > Sink
{21.b})。
图14图示了作为工作流WF的部分的自动化处置功能AHF壳。
自动化处置功能AHF壳可以实现AHF接口。接口表意是在由面向对象的编程语言所提供的接口程序构造的意义上。AHF接口可以包括两个部分,如图15中所图示的。AHF接口包括用于接收并且释放控制令牌CTOK的任务控件,以及用于在工作流执行上下文WEC中读取并且写入数据的任务数据。
任务控件用于:开始AHF执行,其中自动化处置功能AHF经由现实或虚拟输入端口来接收控制令牌CTOK;以及停止AHF执行,即AHF经由现实或虚拟输出端口来释放控制令牌CTOK。本质上,任务数据用于为自动化处置功能AHF提供对工作流执行上下文WEC的读取和写入访问,有关的工作流自动化处置功能AHF共享所述工作流执行上下文WEC。
可插入的自动化处置功能pAHF可以实现由自动化系统AS的至少一个协作机器M所执行的生产过程的至少一个相关联的生产步骤。受所述自动化系统AS的协作机器M的工作流处理器WP所控制的工作流WF形成与机器M相关联的并且被存储在协作机器M的本地存储器中的工作流执行上下文WEC的部分。工作流执行上下文WEC包含在由协作机器M的实体、特别是致动器所执行的自动化处置功能AHF之间共享的数据项DI,如也在图2、3中所图示的。
一旦可插入的自动化处置功能pAHF已经被插入到工作流WF的自动化处置功能AHF壳中,控制令牌CTOK就由自动化处置功能AHF壳传递到可插入的自动化处置功能pAHF中,以执行所述可插入的自动化处置功能pAHF,如也在图14中所图示的。
可插入的自动化处置功能pAHF在可能的实施例中可以从被存储在自动化系统AS的数据库中的储库被加载。在另外的可能实施例中,可插入的自动化处置功能pAHF可以从自动化系统AS的协作机器M的本地存储器被读取。在仍另外的可能实施例中,可插入的自动化处置功能pAHF可以从被连接到自动化系统AS的协作机器M的便携式数据载体被读取。在仍另外的可能实施例中,可插入的自动化处置功能pAHF可以由软件组件递送流水线或由系统的自动化更新服务来提供。
在可能的实施例中,可以在被存储在协作机器M的工作流执行上下文WEC中的特定数据项中指示可插入的自动化处置功能pAHF。可插入的自动化处置功能pAHF可以被适配成执行特定的自动化处置功能AHF和/或特定的错误处置功能。在所述数据项DI中所指示的所需要的可插入的自动化处置功能pAHF不可用的情况中,自动化处置功能AHF壳在可能的实施例中可以提供默认行为并且可以指示所需要的可插入的自动化处置功能pAHF的不可用性。
控制令牌CTOK可以用于控制工作流WF执行,并且还可以用于如果在自动化处置功能AHF的执行期间、特别是在可插入的自动化处置功能pAHF的执行期间发生错误的话则控制错误处置策略的应用。
图16描述了以伪代码中的编程语言的形式的自动化处置功能AHF壳的任务控件和任务数据的语义。
图17用流程图表示图16的伪代码。
图17作为流程图而示出了自动化处置功能AHF壳语义。可见如果控制令牌CTOK在自动化处置功能AHF壳的输入端口上可用(步骤S1),则开始自动化处置功能AHF执行(步骤S2)。在步骤S3中,检查是否存在可插入的自动化处置功能pAHF。如果是这种情况,则在步骤S4中对先前插入的软件组件解除插入。新的可插入的自动化处置功能pAHF在步骤S5中被插入到AHF壳中,例如如果它在系统的软件组件储库中可用的话。在步骤S6中,提供对工作流执行上下文WEC的新组件访问。在步骤S7中,检查软件组件是否已经被成功地插入到AHF壳中。如果是这种情况,则在步骤S8中将控制令牌CTOK传递到所插入的可插入自动化处置功能pAHF。在步骤S9中,接收来自所插入的软件组件、即可插入的自动化处置功能pAHF的控制令牌CTOK。这在步骤S10中停止AHF壳执行。在步骤S11中,控制令牌CTOK在AHF壳的输出端口上可用,并且可以被传递到工作流WF的下一个自动化处置功能AHF。
在对潜在已经插入的软件组件解除了插入之后,自动化处置功能AHF壳可以用于对可插入的软件组件、特别是可插入的自动化处置功能pAHF进行插入。AHF壳设置被插入的软件组件的工作流执行上下文WEC,并且可以指示软件组件、即可插入的自动化处置功能pAHF已经被插入到AHF壳中。AHF壳将控制令牌CTOK传递到所插入的软件组件,并且如果没有任何软件组件被插入的话则可以将控制令牌CTOK转发到下一个AHF。
AHF壳充当用于所插入的自动化处置功能pAHF的汇点AHF和充当源AHF。
AHF壳可以从用于所插入的自动化处置功能pAHF的工作流处理器WP实施自动化处置功能AHF。插入被封装在可插入的软件组件中的机器任务可以通过从库或储库动态地加载所插入的自动化处置功能pAHF来被实现。
图18图示了作为工作流WF的部分的AHF壳(臂移动)中的具体自动化处置功能(快速臂移动)的插入。作为示例,用于组件/任务的以下工作流(区段)被插入:
WF = … >> 夹具拾取 >> 臂移动插入: 快速臂移动 >> 夹具安置 >> …
{22.a}。
(WF = … >> gripper pick >> arm move plug: fast arm move >> gripperplace >> … {22.a})。
在组件或自动化处置功能AHF已经被插入到壳中之后的相同的示例性工作流:
WF = … >> 夹具拾取 >> 快速臂移动 >> 夹具安置 >> … {22.b}
(WF = … >> gripper pick >> fast arm move >> gripper place >> …
{22.b})。
在工作流执行上下文WEC中的AHF壳特定的条目可以指示AHF壳是否应当插入AHF/软件组件以及应当插入哪一个AHF/软件组件。取决于协作机器M的机器上下文以及生产计划,AHF壳可以插入不同的自动化处置功能pAHF,例如安全但是缓慢的臂移动。
在可能的实施例中,AHF壳可以在系统的软件组件储库中搜索待插入的软件组件、例如可插入的自动化处置功能pAHF。在可能的实施例中,协作机器M可以包括用于存储软件组件储库的本地存储器。可替换地或附加地,包括所述多个不同的可插入的自动化处置功能pAHF的软件组件储库可以被远程地提供,例如通过全工厂的组件储库,或在云中,作为机器自动化处置功能AHF的一种市场。
在可能的实施例中,工作流处理器WP可以从工作流执行上下文WEC读取工作流规范。工作流处理器WP实例化如在工作流规范中所描述的具体的自动化处置功能AHF和/或AHF壳。
然后,工作流处理器WP连接相应的自动化处置功能AHF和AHF壳的输入端口和输出端口,使得所有自动化处置功能AHF以及AHF壳被顺序地连接,其中在工作流WF的开始处具有控制令牌源AHF,并且在结束处具有控制令牌汇点AHF。
对于每个AHF壳,工作流处理器WP在工作流执行上下文WEC中的AHF壳特定的条目中写入待插入的自动化处置功能AHF/软件组件的名称。
在AHF壳执行期间,即当AHF壳拥有控制令牌CTOK的时候,在软件组件储库中查找可插入的软件组件、即与AHF的名称相对应的可插入的自动化处置功能pAHF。软件组件储库可以是例如执行工作流WF的机器M的文件目录或一种远程应用存贮器。AHF壳动态地加载自动化处置功能,即可插入的自动化处置功能pAHF,即它在工作流/AHF运行时插入自动化处置功能AHF或可插入的软件组件。
一旦被插入,软件组件、即可插入的自动化处置功能pAHF就能够提供任务功能性,每当自动化处置功能AHF壳在其输入端口上接收到控制令牌CTOK并且将控制令牌CTOK传递到所插入的自动化处置功能pAHF的时候执行所述任务功能性。
在执行期间的任何时候,被存储在工作流执行上下文WEC中的工作流规范可以被外部机器控制器MC动态地适配。外部机器控制器MC在可能的实现方式中可以包括软件组件流水线。外部机器控制器MC可以读取、写入和取代被包含在工作流执行上下文WEC中的工作流规范。在可能的实施例中,在执行期间,工作流处理器WP可以在每个工作流执行循环的开始、即刚好在源AHF产生控制令牌CTOK之前检查经更新的工作流规范。新的工作流规范可以改变在被实例化的自动化处置功能AHF和AHF壳的数目和/或AHF壳应当插入的可插入的软件组件的名称。
机器控制器MC还可以从组件储库来部署新的或可替换的、可插入的组件。切换到可插入的组件、即可插入的自动化处置功能pAHF的另一版本或变体可以通过重写工作流规范被实现使得例如需要可插入的组件或可插入的AHF的版本2,而不是相同可插入组件的版本1。需要“快速臂移动”的版本2的工作流WF的示例被给出如下:
WF = … >> 夹具拾取 >> 臂移动插入: 快速臂移动2 >> 夹具安置 >> …
{23}
(WF = … >> gripper pick >> arm move plug: fast arm move 2 >> gripperplace >> … {23})。
在“快速臂移动2”结尾处的名称后缀、比如2标示可插入的自动化处置功能pAHF的版本。
如果工作流规范需要可插入的自动化处置功能pAHF的版本2,但是软件组件储库仅包含该可插入的自动化处置功能pAHF的版本1,则负责的AHF壳插入可取决于一个或多个参数。这些参数可以包括组件/AHF兼容性策略、机器/生产状态或历史以及机器环境。
在可能的实施例中,可插入的自动化处置功能pAHF可以用于错误处置。流过自动化处置功能AHF之间的工作流WF的控制令牌CTOK可以指示:在特定的自动化处置功能AHF的执行期间可能发生的错误,和/或如果在特定的自动化处置功能AHF的执行期间发生错误则将应用的策略。
具有控制令牌CTOK的错误处置可以被指定如下:
控制令牌:{在错误时:AHF号} {24}
(Control token: {on error: AHF Number} {24})。
因而,AHF标示将在机器M上执行的自动化处置功能AHF,可选地包括版本号,例如“快速臂移动”或“快速臂移动3”。该号可选地以正或负版本号的形式被给出,其标示在错误处置期间、如果必要并且如果可能的话则负责的AHF壳应当尝试的负责版本的一系列可替换版本。
例如,假定“快速臂移动3”(版本3)已经出故障,则错误处置策略可以如下被解读:
在错误时:+1 {25}
(on error: +1 {25})。
在该情况中,AHF壳寻找插入“快速臂移动4”(从3+1产生版本4)并且通过使用“快速臂移动4”来重试AHF执行。如果组件储库不包含以版本4的组件,那么工作流执行中止。
对于另一示例,可以假定“快速臂移动3”(版本3)已经出故障,并且错误处置策略如下解读:
在错误时:+2 {26}
(on error: +2 {26})。
此外,可以假定组件储库包含软件组件或可插入的自动化处置功能pAHF“快速臂移动4”(从3+1产生版本4)以及“快速臂移动5”(从4+2产生版本5)二者。在该情况中,负责的自动化处置功能AHF壳插入并且尝试以版本4的可插入的自动化处置功能pAHF,并且然后如果可插入的自动化处置功能pAHF版本4也出故障,则插入并且尝试以版本5的可插入的自动化处置功能pAHF。
错误处置策略可能需要不同的自动化处置功能AHF:
在错误时:安全臂移动2+1 {27}
(on error: safe arm move 2+1 {27})。
在该情况中,在错误时,负责的AHF壳利用来自版本/变体2的“安全臂移动”来取代(即插入并且尝试)“快速臂移动”。如果这也出故障,则版本/变体3,AHF壳尝试“安全臂移动”的版本/变体3。
可以在工作流规范中指定错误处置策略,例如:
WF = … >> 夹具拾取 >> 臂移动插入: 在错误时的快速臂移动2: 安全臂移动 >>… {28}
(WF = … >> gripper pick >> arm move plug: fast arm move 2 on error: safearm move >> … {28})。
自动化系统AS的外部机器控制器MC可以更新工作流规范,以便利用另一具体的自动化处置功能AHF来取代具体的自动化处置功能AHF,例如为了改善自动化处置功能AHF的性能或为了优化工作流WF的性能。例如,可以提供机器人的自动化处置功能AHF“臂移动”。自动化处置功能AHF“灵活的臂移动”为用于机器M的机器人臂的自动化路径规划功能提供若干自由度。
自动化处置功能AHF“高效臂移动”可以改善路径规划功能性。自动化处置功能AHF“高效臂移动”可以减小路径分段的数目、可能地路径的长度,并且可以节省能量和/或机器磨损。由于路径规划算法可以被连续地改进,所以生产中的机器人可以在没有停机时间的情况下被无缝地更新,以受益于自动化路径规划算法的较新版本。
通过使用由可插入的软件组件“灵活臂移动”(FAM)所提供的自动化路径规划示例,错误处置策略可需要由软件组件“安全臂移动”(SAM)所实现的路径规划器。可发生的是:FAM计算一路径,其导致机器人臂与物理对象、即自新近以来造成阻碍的障碍物的碰撞。如果例如所计算的路径的路径点相距太远并且发现它们自身在沿着路径的两个路径点之间的窄对象被路径规划错误地忽略,则路径规划可导致碰撞。在该情况中,另一算法或者相同算法或自动化处置功能AHF的另一版本可以被定制,用于以较慢的规划为代价来产生具有更靠近于彼此的路径点的路径。对于这样的权衡的需要不能总是被编程者预见,因为工厂布局、生产机器M和产品可具有不同的物理性质或随实例而改变。通过使用根据本发明的第三方面的用于动态适配自动化系统AS中的工作流的方法,这样的情形得益于生产中自动化软件的动态运行时适配。
用于动态适配自动化系统AS中的工作流WF的方法还可以被使用在包括协作机器M的自动化系统AS中。
Claims (16)
1.一种用于动态适配自动化系统AS的工作流WF的方法,
其中所述工作流WF包括:自动化处置功能AHF,其实现受自动化系统(AS)的机器(M)的工作流处理器WP所控制的生产过程的相关联的生产步骤;以及至少一个自动化处置功能AHF壳,其被配置成在自动化系统(AS)的运行时期间将可插入的自动化处置功能pAHF插入到自动化系统(AS)的工作流WF中以用于适配所述工作流WF。
2.根据权利要求1所述的方法,其中所述被插入的自动化处置功能pAHF实现由自动化系统(AS)的所述至少一个机器(M)所执行的生产过程的至少一个相关联的生产步骤。
3.根据权利要求1或2所述的方法,其中受所述自动化系统AS的机器M的工作流处理器WP所控制的工作流WF形成与机器(M)相关联的并且被存储在所述机器(M)的存储器中的工作流执行上下文(WEC)的部分。
4.根据权利要求3所述的方法,其中机器(M)的工作流执行上下文(WEC)包含在由所述自动化系统(AS)的所述机器(M)所执行的自动化处置功能AHF之间共享的数据项。
5.根据前述权利要求2至4中任一项所述的方法,其中一旦可插入的自动化处置功能pAHF已经被插入到工作流WF的自动化处置功能AHF壳中,一控制令牌就由自动化处置功能AHF壳传递到所插入的自动化处置功能pAHF中,以执行所述插入的自动化处置功能pAHF。
6.根据前述权利要求1至5中任一项所述的方法,其中所插入的自动化处置功能pAHF从被存储在所述自动化系统(AS)的数据库中的储库被加载,或从自动化系统(AS)的机器(M)的本地存储器被读取,或从被连接到自动化系统(AS)的机器(M)的便携式数据载体被读取,或由软件组件递送流水线或由自动化更新服务来提供。
7.根据前述权利要求1至6中任一项所述的方法,其中在被存储在所述自动化系统(AS)的机器(M)的工作流执行上下文(WEC)中的特定数据项中指示所插入的自动化处置功能pAHF。
8.根据权利要求1至7中任一项所述的方法,其中所插入的自动化处置功能pAHF被适配成执行特定的自动化处置功能和/或特定的错误处置功能。
9.根据前述权利要求7至8中任一项所述的方法,其中如果在数据项中所指示的所需要的插入的自动化处置功能pAHF不可用,则自动化处置功能AHF壳提供默认行为和/或指示所需要的插入的自动化处置功能pAHF的不可用性。
10.根据前述权利要求1至9中任一项所述的方法,其中通过所述自动化系统(AS)的协作机器(M)来执行自动化处置功能AHF。
11.根据权利要求10所述的方法,其中由自动化系统(AS)的协作机器Mi所执行的自动化处置功能AHF借助于账户来被协调,所述账户由自动化系统(AS)的共享数据库来实现,所述共享数据库存储与已经被协作机器Mi执行的自动化处置功能AHF实例以及所述自动化系统(AS)的协作机器Mi的工作流状态S相关的元数据。
12.根据前述权利要求1至11中任一项所述的方法,其中工作流WF的每个自动化处置功能AHF包括至少一个输入端口和至少一个输出端口,用于在自动化处置功能AHF之间发送和接收控制令牌(CTOL)。
13.根据权利要求12所述的方法,其中自动化处置功能AHF的执行响应于经由其输入端口之一对控制令牌(CTOK)的接收而自动地开始。
14.根据权利要求12或13所述的方法,其中在完成了自动化处置功能AHF的执行之后,控制令牌(CTOK)经由自动化处置功能AHF的输出端口而传递到待执行的工作流WF内的下一个自动化处置功能AHF的输入端口。
15.根据前述权利要求12至14中任一项所述的方法,其中控制令牌(CTOK)用于控制工作流WF执行和/或用于如果在自动化处置功能AHF的执行期间出现错误则控制错误处置策略的应用。
16.一种自动化系统,其包括用于根据工作流WF来执行生产过程的机器M,所述工作流WF包括自动化处置功能AHF,其实现生产过程的相关联的生产步骤并且由机器(M)的工作流处理器WP执行,
其中所述工作流WF包括至少一个自动化处置功能AHF壳,其被配置成在自动化系统(AS)的运行时期间将可插入的自动化处置功能pAHF插入到自动化系统(AS)的工作流WF中以用于动态地适配自动化系统(AS)的工作流WF。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP18212975.9 | 2018-12-17 | ||
EP18212975.9A EP3671380A1 (en) | 2018-12-17 | 2018-12-17 | Method for dynamic adaptation of a workflow of an automatic system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111324094A true CN111324094A (zh) | 2020-06-23 |
Family
ID=65003089
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911301151.XA Pending CN111324094A (zh) | 2018-12-17 | 2019-12-17 | 用于自动系统的工作流的动态适配的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11221852B2 (zh) |
EP (1) | EP3671380A1 (zh) |
CN (1) | CN111324094A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220358437A1 (en) * | 2021-05-06 | 2022-11-10 | Target Brands, Inc. | Supply chain management sysem and platform with features for milestone and data calculations |
KR102443301B1 (ko) * | 2021-11-25 | 2022-09-16 | 주식회사 파트리지시스템즈 | 다양한 데이터 처리를 위한 적응형 데이터 처리 시스템 및 방법 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100138015A1 (en) * | 2007-05-04 | 2010-06-03 | Armando Walter Colombo | Collaborative automation system and nethod for the control thereof |
US20130131840A1 (en) * | 2011-11-11 | 2013-05-23 | Rockwell Automation Technologies, Inc. | Scalable automation system |
EP2821947A1 (en) * | 2013-07-02 | 2015-01-07 | ABB Technology AG | Method and system to support technical tasks in distributed control systems |
CN107003647A (zh) * | 2014-09-25 | 2017-08-01 | 西门子公司 | 用于执行自动化系统的配置的方法和系统 |
CN107407918A (zh) * | 2015-02-12 | 2017-11-28 | 西门子公司 | 利用app扩展可编程逻辑控制器 |
CN107787481A (zh) * | 2015-06-16 | 2018-03-09 | 西门子公司 | 用于自动化环境中的连接的软件应用的接口 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5841654A (en) * | 1995-10-16 | 1998-11-24 | Smar Research Corporation | Windows based network configuration and control method for a digital control system |
US7649854B2 (en) * | 2004-05-19 | 2010-01-19 | Bea Systems, Inc. | System and method for providing channels in application servers and transaction-based systems |
US20100082133A1 (en) * | 2008-09-30 | 2010-04-01 | Ics Triplex Isagraf Inc. | Application builder for industrial automation |
US20170039046A1 (en) * | 2015-08-04 | 2017-02-09 | Sap Se | Lock-free execution of workflow instances |
-
2018
- 2018-12-17 EP EP18212975.9A patent/EP3671380A1/en not_active Withdrawn
-
2019
- 2019-11-22 US US16/691,687 patent/US11221852B2/en active Active
- 2019-12-17 CN CN201911301151.XA patent/CN111324094A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100138015A1 (en) * | 2007-05-04 | 2010-06-03 | Armando Walter Colombo | Collaborative automation system and nethod for the control thereof |
US20130131840A1 (en) * | 2011-11-11 | 2013-05-23 | Rockwell Automation Technologies, Inc. | Scalable automation system |
EP2821947A1 (en) * | 2013-07-02 | 2015-01-07 | ABB Technology AG | Method and system to support technical tasks in distributed control systems |
CN107003647A (zh) * | 2014-09-25 | 2017-08-01 | 西门子公司 | 用于执行自动化系统的配置的方法和系统 |
CN107407918A (zh) * | 2015-02-12 | 2017-11-28 | 西门子公司 | 利用app扩展可编程逻辑控制器 |
CN107787481A (zh) * | 2015-06-16 | 2018-03-09 | 西门子公司 | 用于自动化环境中的连接的软件应用的接口 |
Also Published As
Publication number | Publication date |
---|---|
US11221852B2 (en) | 2022-01-11 |
EP3671380A1 (en) | 2020-06-24 |
US20200192664A1 (en) | 2020-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3214510B1 (en) | Controlling process of robots having a behavior tree architecture | |
US10365626B2 (en) | Extending the functionality of a programmable logic controller (PLC) with apps without changing the PLC programming | |
KR102257938B1 (ko) | 산업 애플리케이션들을 위한 스킬 인터페이스 | |
US11951631B2 (en) | Object marking to support tasks by autonomous machines | |
Nilsson et al. | Integrated architecture for industrial robot programming and control | |
Angerer et al. | Robotics API: Object-oriented software development for industrial robots | |
Crosby et al. | Integrating mission and task planning in an industrial robotics framework | |
CN111324094A (zh) | 用于自动系统的工作流的动态适配的方法 | |
WO2018176025A1 (en) | System and method for engineering autonomous systems | |
Kootbally et al. | Enabling robot agility in manufacturing kitting applications | |
Volkmann et al. | Integration of a feasibility and context check into an OPC UA skill | |
Chen et al. | A virtual environment for the management and development of cyber-physical manufacturing systems | |
Schuetz et al. | Highly reconfigurable production systems controlled by real-time agents | |
EP3671584A1 (en) | Method and system for controlling a production process | |
Hoffmann et al. | Developing self-organizing robotic cells using organic computing principles | |
Cheng et al. | Game solving for industrial automation and control | |
CosteManiere et al. | Reactive objects in a task level open controller | |
Hoffmann et al. | Service-oriented robotics manufacturing by reasoning about the scene graph of a robotics cell | |
EP4204910A1 (en) | Automation system engineering using virtual objects with embedded information | |
Bubeck et al. | Model driven engineering for the implementation of user roles in industrial service robot applications | |
Komenda et al. | Sustainable utilization of industrial robotic systems by facilitating programming through a human and process centred declarative approach | |
Kruger | The development and evaluation of an Erlang control system for reconfigurable manufacturing systems | |
Vistein | Embedding real-time critical robotics applications in an object-oriented language | |
Yasuda | Distributed coordination architecture for cooperative task planning and execution of intelligent multi-Robot systems | |
Liu et al. | An agent-based framework for STEP-NC controllers of CNC machine tools |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200623 |
|
WD01 | Invention patent application deemed withdrawn after publication |