CN114625064A - 执行环境 - Google Patents
执行环境 Download PDFInfo
- Publication number
- CN114625064A CN114625064A CN202111509421.3A CN202111509421A CN114625064A CN 114625064 A CN114625064 A CN 114625064A CN 202111509421 A CN202111509421 A CN 202111509421A CN 114625064 A CN114625064 A CN 114625064A
- Authority
- CN
- China
- Prior art keywords
- event
- activation
- priority
- execution
- events
- 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
- 230000004913 activation Effects 0.000 claims abstract description 275
- 238000000034 method Methods 0.000 claims abstract description 66
- 230000001960 triggered effect Effects 0.000 claims abstract description 29
- 238000012545 processing Methods 0.000 claims description 54
- 238000004891 communication Methods 0.000 claims description 40
- 230000005540 biological transmission Effects 0.000 claims description 16
- 230000006870 function Effects 0.000 description 54
- 230000008569 process Effects 0.000 description 19
- 230000003213 activating effect Effects 0.000 description 12
- 238000006243 chemical reaction Methods 0.000 description 11
- 230000015654 memory Effects 0.000 description 8
- 230000004044 response Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000035484 reaction time Effects 0.000 description 4
- 230000006378 damage Effects 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000012913 prioritisation Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000003936 working memory Effects 0.000 description 2
- 208000027418 Wounds and injury Diseases 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 208000014674 injury Diseases 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
Images
Classifications
-
- 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/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
-
- 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/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/056—Programming the PLC
-
- 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/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/054—Input/output
-
- 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/10—Plc systems
- G05B2219/11—Plc I-O input output
- G05B2219/1144—Program, program I-O module
-
- 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/10—Plc systems
- G05B2219/13—Plc programming
- G05B2219/13004—Programming the plc
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
Abstract
本发明尤其涉及一种方法,该方法用于在自动化系统的可编程逻辑控制器上执行面向事件的控制程序,其中,控制程序包括多个功能模块,其中,在发生分别与各个功能模块相关联的激活事件时,以事件控制的方式触发各个功能模块的执行,并且其中,激活事件分别分配有优先级。该方法包括以下步骤:‑检测发生的激活事件;‑按照根据各个激活事件的优先级确定的执行顺序,来执行分别与所发生的激活事件相关联的功能模块。
Description
技术领域
本发明涉及一种用于在自动化系统的可编程逻辑控制器上执行面向事件的控制程序的方法,以及一种用于在自动化系统的可编程逻辑控制器上执行面向事件的控制程序的执行环境。
背景技术
具有可编程逻辑控制器的自动化系统在自动化技术中用于控制自动化过程和机器流程。为此,可编程逻辑控制器通常与自动化系统的传感器连接,传感器采集自动化过程的状态并且将代表过程状态的传感器信号传输给控制器。然后,控制器基于所读取的传感器信号的逻辑关联产生用于控制自动化系统的执行器的输出信号,其中执行器基于输出信号影响自动化过程的状态。传感器例如可以是位置传感器、旋转传感器、开关、光栅等,而执行器例如可以是驱动器、继电器或接触器。
用于处理读取的传感器信号和用于产生输出信号的逻辑关联通常是可编程逻辑控制器的控制程序的组成部分,该控制程序存储在控制器的存储器模块中。为了执行控制程序,可编程逻辑控制器通常包括执行环境,该执行环境以预先给定的顺序执行控制程序的控制指令。附加地,执行环境可以管理执行控制命令所需的工作存储器和/或协调传感器信号的读取以及输出信号的输出。
为了确保安全且可靠地控制自动化过程,执行环境必须被配置为,在读取传感器信号之后,在预定义的反应时间内提供输出信号。这种系统也被称为实时控制系统。在此,执行环境必须确保,与系统的负载和可能的编程错误无关地遵守预定义的反应时间。在超过反应时间的情况下,执行环境可以采取适当的安全措施。
为了确保自动化系统的可靠运行,可编程逻辑控制器必须能够尽可能及时地执行对过程的执行必不可少的并且因此时间关键的反应。为此可能需要的是,用于执行时间关键的反应的逻辑关联优选地在在控制装置上运行的其他逻辑关联之前执行。
通常,用于时间关键的应用的控制系统借助周期的执行环境来实现。在这种执行环境中,对于传感器信号的读取、输出信号的计算和输出信号的输出,在每个周期内定义固定的时间窗,其中,各个时间窗在多个周期上依次周期性地重复。然后,时间窗也定义了控制系统的最大反应时间。
除了周期控制程序和执行环境之外,在自动化技术中还使用事件控制的控制程序,例如在标准IEC 61499中定义的控制程序。这种控制程序包括多个功能模块,其中,传感器信号的读取,读取的传感器信号的逻辑关联或输出信号的输出分别通过各个功能模块和附加的用户定义的程序文本(代码)的组合来实现。在此,功能模块的执行以事件控制的方式在发生分别与各个功能模块相关联的激活事件时进行,其中,在执行前面的功能模块时产生后续要执行的功能模块的激活事件。
此外,事件控制的执行模型适用于分布式控制系统,但由于缺乏预定义的处理周期,因此几乎不能够确保控制程序的时间关键部分的优先执行。为了降低安全关键的反应超时的概率,在事件控制的控制器中的计算能力通常被大大地过渡设计,例如超过50%。然后,通常即使在高负载的情况下也有足够的计算能力用于及时执行功能模块。
发明内容
本发明要解决的技术问题是,提供一种用于在自动化系统的可编程逻辑控制器上执行面向事件的控制程序的方法,以及一种用于在自动化系统的可编程逻辑控制器上执行面向事件的控制程序的执行环境,使得确保控制程序的时间关键部分的及时执行。
上述技术问题通过根据本发明的用于在自动化系统的可编程逻辑控制器上执行控制程序的方法以及用于在自动化系统的可编程逻辑控制器上执行控制程序的执行环境来实现。本发明还给出了扩展方案。
提出了一种方法,该方法用于在自动化系统的可编程逻辑控制器上执行面向事件的控制程序,其中,控制程序包括多个功能模块,各个功能模块的执行在发生分别与各个功能模块相关联的激活事件时以事件控制的方式来触发,并且其中,为激活事件分别分配优先级。该方法包括以下步骤:
-检测发生的激活事件;
-以根据各个激活事件的优先级确定的执行顺序来执行分别与所发生的激活事件相关联的功能模块。
在本发明的范围内已经认识到,能够以特别简单和灵活的方式通过如下方式确保及时地执行控制程序的时间关键的部分,即首先将优先级分配给在控制程序的执行期间发生的各个激活事件,并且通过相应的激活事件的优先级确定各个功能模块在其关联的激活事件发生之后被执行的顺序。通过由激活事件的优先级来确定功能模块的执行顺序,尤其可行的是,能够通过多个激活事件触发的功能模块依据触发的激活事件以不同的优先级来执行。与例如在将优先级固定地分配给各个功能模块的情况下相比,这能够实现对时间关键的程序部分的执行的明显更灵活的优先级化。
控制程序的功能模块可以分别包括至少一个逻辑关联,其中,各个功能模块的逻辑关联的执行分别通过与各个功能模块相关联的激活事件触发。各个功能模块的逻辑关联例如可以是相关功能模块的算法的相应的组成部分。控制程序的各个功能模块的激活事件彼此间的关系可以分别通过将各个功能模块相互连接的事件连接来预先给定。控制程序例如可以满足标准IEC61499的规定,并且功能模块例如可以是在该标准中定义的功能块(function Block)。
控制程序的要依次执行的功能模块可以分别被设计为,在其执行时产生激活事件,激活事件触发控制程序的要分别直接随后执行的功能模块的执行。就此而言,功能模块例如可以通过事件连接连接到各个事件链,其中,在执行事件链的直接在前面执行的功能模块时产生事件链的每个后续功能模块的激活事件。
通常,事件链可以分别包括所有的激活事件,激活事件基于预先给定的开始事件产生,以便触发要依次执行的功能模块的执行,直至要作为事件链的最后一个功能模块执行的终止模块。开始事件例如可以是外部激活事件,外部激活事件在激活执行环境的外部输入接口时被提供。外部输入接口例如可以是与控制单元的对执行环境进行执行的执行资源的接口。特别地,外部输入接口可以是执行控制程序的设备的外部接口,例如传感器输入端。
例如,可以基于通过控制单元接收到的传感器信号来提供开始事件,例如在通过控制单元接收到传感器信号时或在通过控制单元接收到的传感器信号的状态变化时。通过开始事件作为第一功能模块激活的开始模块例如可以是根据IEC 61499配置为应答器功能块(responder functionblock)的服务接口功能块(service interface functionblock)。
终止模块通过事件链的最后一个功能模块来定义,在执行终止模块之后不再产生用于执行控制程序的其他功能模块的激活信号。终止模块例如可以是如下的功能模块,该功能模块被设计为,通过执行环境的外部输出接口输出用于执行器的输出信号。终止模块例如可以是根据IEC 61499配置为请求者功能块(requester function block)的服务接口功能块(service interface functionblock)。
事件链的开始模块的激活例如可以通过输入信号、例如传感器信号来触发。事件链例如可以包括所有的激活事件,激活事件以通过接收输入信号触发的方式依次产生,直至通过输出接口输出基于输入信号产生的输出信号。
对所发生的激活事件的检测和以通过优先级确定的执行顺序执行分别与所发生的激活事件相关联的功能模块例如可以分别通过在控制器上运行的执行环境来执行。为了通过执行环境来执行,控制程序可以存储在控制器的存储器模块中。
执行环境可以包括多个可彼此分开执行的子环境,其中,各个子环境被构造用于,在控制器的分开的执行资源上执行。执行资源例如可以是任务、处理器等。例如,执行资源可以是IEC 61499中定义的资源。
将优先级分配给各个激活事件例如可以在创建控制程序时进行,例如借助被构造用于创建控制程序的编程环境进行。优先级可以例如通过如下方式分配给各个激活事件,即优先级被分配给功能模块之间的各个事件连接。在此,事件连接分别将功能模块与之前执行的功能模块连接,所述功能模块与单个的激活事件相关联并且在激活事件发生时执行所述功能模块,在所述之前执行的功能模块的执行时产生激活事件。与各个激活事件相关联的优先级可以存储在控制程序中并且由执行环境在执行控制程序时使用。
通过根据各个激活事件的优先级确定的执行顺序确定,在同时存在多个激活事件时以哪个顺序执行各个功能模块。就此而言,优先级规定了,以何种顺序处理同时存在的激活事件。在此,新发生的激活事件例如可以在所有之前发生的较低优先级的激活事件之前以及在所有之前发生的较高优先级的激活事件之后被处理。
为了处理发生的激活事件,除了优先级之外还可以使用预先确定的处理策略。这种处理策略例如可以是FIFO(first-in-first-out,先进先出)、LIFO(last-in-first-out,后进先出)、深度优先(depth first)或宽度优先(breadth first)。处理策略例如可以确定,以何种顺序处理发生的、相同优先级的激活事件。
执行环境可以为了确定执行顺序而管理至少一个处理列表并且为此包括列表管理模块。这种处理列表也可以被称为事件队列。执行环境可以针对每个执行资源管理至少一个、例如恰好一个处理列表。
执行环境可以被构造用于执行事件控制的时间序列控制(eventtriggeredscheduling,事件触发的调度)。执行环境也可以被构造用于,将可编程逻辑控制器的可用的计算能力根据预先给定的标准例如均匀地分配到所述控制程序的各个功能模块上(fairscheduling,公平调度)。为此,执行环境可以实现周期的时序控制。例如,执行环境可以周期地查询功能模块的所有实例的未发生的激活事件(cyclic scan approach,周期扫描方法)并且根据预先给定的顺序处理未发生的激活事件。
控制程序可以包括时间关键的功能模块和时间非关键的功能模块。时间关键的功能模块可以通过时间关键的事件连接被连接成时间关键的事件链,并且时间非关键的功能模块可以通过时间非关键的事件连接被连接成时间非关键的事件链。时间关键的事件连接的激活事件于是可以分别比时间非关键的事件连接的激活事件分配更高的优先级。
借助时间关键的事件链例如可以在读取时间关键的输入信号之后产生时间关键的输出信号。时间关键的输入信号和/或时间关键的输出信号例如可以是过程重要的和/或机器关键的和/或安全相关的和/或安全定向的输入信号。在此,对于直接执行受控过程,例如持续的机器运动,过程重要的信号可能是必要的。机器关键的信号可以是机器的功能所需的信号。与安全相关的或安全定向的信号可以是避免机器损坏和/或人身伤害所需的信号。时间关键的事件链例如可以执行安全功能。然而,时间关键的事件链也可以执行对在执行控制程序时发生的异常事件的反应。异常事件例如可以是故障,反应可以是故障反应。异常事件也可以是告警,反应可以是告警反应。
所给出的方法尤其可以用于,对面向事件的控制程序的时间关键的程序部分进行优先的执行。在此,不需要通过执行环境的中央服务来管理控制程序的所有功能模块的执行顺序。这使得例如即使在分布在多个执行资源上的执行环境中也能够对控制程序的部分进行优先排序。在此,为了优先排序,尤其不需要所有执行资源彼此之间的通信。这尤其能够实现,在执行控制程序时放弃中央的错误处理程序(errorhandler)。
自动化系统例如可以自动化地控制机器或自动驾驶的车辆。自动化系统例如可以包括借助控制程序控制的驱动器。附加地或替换地,自动化系统也可以实现安全功能并且就此而言是安全定向的控制系统。
在所述方法的改进方案中,控制程序具有共同的功能模块,所述共同的功能模块的执行能够通过第一和第二激活事件触发,其中,为第一和第二激活事件分配不同的优先级。在此,共同的功能模块在通过第一激活事件触发时以第一激活事件的优先级执行,并且在通过第二激活事件触发时以第二激活事件的优先级执行。这实现了执行顺序与触发各个功能模块的事件的特别灵活的匹配。
例如,第一激活事件可以是时间关键的事件链的一部分,并且第二激活事件可以是时间非关键的事件链的一部分,其中,第一激活事件被分配比第二激活事件更高的优先级。可以为用于激活另外的功能模块的第三激活事件分配第三优先级,所述第三优先级低于第一激活事件的优先级并且高于第二激活事件的优先级。如果共同的功能模块现在通过第一激活事件触发,则在另外的功能模块之前执行该共同的功能模块,而如果该共同的功能模块通过第二激活事件触发,则在另外的功能模块之后才执行该共同的功能模块。
在一种改进方案中,所述方法包括在考虑各个激活事件的优先级的情况下将所发生的激活事件记录在至少一个处理列表中。这种处理列表能够实现特别简单地确定和监控处理顺序。
在此,各个激活事件的优先级可以确定,将新发生的激活事件记录到处理列表中的哪个位置处。例如可以将新发生的激活事件这样记录到处理列表中,使得在所有处于列表中的较低优先级的激活事件之前并且在所有处于列表中的较高优先级的激活事件之后执行所述激活事件。
处理列表可以借助预先确定的处理策略来处理。处理策略例如可以确定,新发生的激活事件相对于已经处于列表中的具有相同优先级的激活事件布置在哪个位置上。
为了确定如下位置,要将新发生的、具有预先给定的优先级的激活事件记录到处理列表中的该位置处,执行环境也可以管理多个指针,例如在指针列表中,其中,所述多个指针分别包括针对每个可能的优先级的指针。在此,各个优先级的指针分别表示在处理列表中的如下位置,在该位置处要记录新发生的、具有相应的优先级的激活事件。
在所述方法的一种扩展方案中,将不同优先级的激活事件记录到不同的处理列表中,并且各个处理列表分别仅包括相同优先级的激活事件。这能够实现对处理顺序的特别资源有效的确定,因为可以放弃在单个处理列表内的搜索,在所述搜索列表中确定用于登记新发生的预先给定的优先级的激活事件的位置。
如果针对每个可能的优先级管理自己的处理列表,则执行环境可以被构造用于通过如下方式确定接下来要处理的激活事件,即,对各个处理列表以最高优先级为开始以降序检查各个列表中存在的激活事件。
在所述方法的一种扩展方案中,由新检测到的激活事件触发的功能模块比由先前检测到的相同优先级的激活事件触发的功能模块更晚地执行。这对应于按照FIFO原理的相同优先级的激活事件的执行顺序。在此,可用的执行时间均匀地分布在所有发生的具有相同优先级的激活事件上,从而确保尽可能快速且均匀地处理具有相同优先级的激活事件。
在所述方法的一种扩展方案中,由新检测到的激活事件触发的功能模块比由先前检测到的相同优先级的激活事件触发的功能模块更早地执行。这对应于按照LIFO原理的相同优先级的激活事件的执行顺序。由此可以实现,在开始处理另外的事件链之前,首先完全处理处于处理中的事件链。由此可以特别快速地执行通过各个事件链执行的程序部分。此外,可编程逻辑控制器的工作存储器和/或缓存可以被特别高效地使用,因为在执行的事件链的功能模块的处理期间产生的中间结果被立即继续使用。
在所述方法的一种扩展方案中,可编程逻辑控制器具有第一执行资源和经由通信连接与第一执行资源连接的第二执行资源,并且控制程序包括在第一执行资源上执行的第一子程序和在第二执行资源上执行的第二子程序。在此,所述方法包括:将在第一执行资源上发生的激活事件从第一执行资源经由通信连接传输到第二执行资源,其中,所述传输以根据各个激活事件的优先级确定的传输优先级进行。
由此不仅可以在各个执行资源之内对控制程序的各个程序部分进行优先排序,而且可以跨多个分布地布置的执行资源地进行优先排序。传输优先级例如可以对应于各个激活事件的优先级。第二执行资源可以被构建为以通过各个激活事件的优先级确定的执行顺序来进一步处理经由通信连接接收的激活事件。
通信连接可以是可编程逻辑控制器的子设备内的内部通信连接,其中,内部通信连接连接了存在于子设备上的用于执行控制程序的多个执行资源。通信连接也可以是可编程逻辑控制器的多个子设备之间的外部通信连接,例如现场总线。各个激活事件例如可以借助现场总线协议在通信连接上传输。替换地或附加地,激活事件可以借助无连接的或面向连接的传输协议,例如借助UDP、TCP等来传输。各个激活事件可以在通信连接上以各个数据包来传输,其中,为各个数据包分配传输优先级以用于在通信连接上的转发。
在所述方法的一种扩展方案中,根据各个激活事件的优先级确定发送顺序,利用所述发送顺序由第一执行资源的发送单元经由通信连接发送各个激活事件。例如,执行环境可以被构建为用于将各个激活事件根据其优先级存储在发送单元的发送队列中。在此,激活事件可以以与结合处理列表描述的方式相同的方式记录到发送队列中。
发送单元例如可以建立可编程逻辑控制器的子设备到通信连接上的连接。发送单元例如可以是用于将子设备连接到现场总线上的现场总线模块的发送单元。
替换地或附加地,根据各个激活事件的优先级来确定用于在通信连接上转发各个激活事件的转发顺序。特别地,包含各个激活事件的数据包可以根据转发顺序经由通信连接、例如由布置在通信连接中的中间设备、例如路由器或交换机来转发。
替换地或附加地,根据各个激活事件的优先级确定输出顺序,利用该输出顺序各个激活事件在其通过通信连接被第二执行资源的接收单元接收之后被输出以用于进一步处理。例如,执行环境可以被构建为用于将各个激活事件根据其优先级在接收单元的接收队列中准备好通过第二子程序来进行进一步处理。在此,激活事件可以以与结合处理列表描述的方式相同的方式记录到接收队列中。
在所述方法的一种扩展方案中,各个激活事件的优先级仅在控制程序的执行时间时被分配,例如在考虑在执行时间时产生的参数值的情况下被分配。这实现了对各个激活事件的特别灵活的优先排序。各个激活事件例如可以在其通过控制程序的各个功能模块产生时被分配其优先级。
在所述方法的一种扩展方案中,随后执行的功能模块的激活事件是在先前执行的功能模块的执行过程中产生的,其中,随后执行的功能模块的激活事件在其产生过程中被分配到那些已经触发了各自先前执行的功能模块的执行的激活事件的优先级。由此,例如可以自动地将相同的优先级分配给控制程序的各个事件链的所有激活事件。特别地,仅需要将优先级分配给多个相继产生的激活事件中的单个激活事件并且例如将其存储在控制程序中。然后在控制程序的执行时间动态地生成所有另外的优先级。
对于相继处理的激活事件中的各个激活事件,也可以在控制程序中存储自身的优先级。执行环境于是可以被构建为用于代替用于执行产生相关的各个激活事件的功能模块的激活事件的优先级,将存储在控制程序中的优先级分配给各个激活事件。
在所述方法的一种扩展方案中,控制程序包括功能模块,所述功能模块的执行仅在发生第一激活事件和至少一个第二激活事件时才被触发,其中,由所述功能模块产生的激活事件被分配有优先级,所述优先级对应于触发所述功能模块的执行的激活事件的最低优先级。由此能够实现,也自动地将明确的优先级分配给如此产生的激活事件。同时避免激活事件获得不必要的高优先级。
在所述方法的一种扩展方案中,在执行控制程序时基于源事件产生多个后续的激活事件,并且用于创建控制程序的编程环境自动地将相同的优先级分配给多个后续的激活事件。由此可以特别简单地给各个激活事件分配其优先级。
例如,控制程序包括具有在执行控制程序时基于源事件相继产生的激活事件的事件链,并且用于创建控制程序的编程环境自动地将相同的优先级分配给事件链的多个激活事件。
后续的激活事件可以包括相继执行的功能模块的激活事件。替换地或附加地,后续的激活事件也可以包括功能模块的如下激活事件,所述激活事件近乎并行地执行,例如在执行单个功能模块时创建的多个激活事件。
源事件例如可以是事件链的开始事件。一般地,源事件也可以是外部激活事件。
编程环境可以被构造为用于自动地探测各个事件链。为此,编程环境可以识别例如响应于输入信号地执行的、直至产生可编程逻辑控制器的根据输入信号产生的输出信号的所有功能模块,或者识别直至依据输入信号实现的控制器的状态变化所执行的所有功能模块。在此,如果单个功能模块包括多个事件输入端和/或多个事件输出端,则编程环境可以针对事件输入端和事件输出端的每种可能的组合创建自身的事件链。
替换地,在具有多个事件输入端和/或事件输出端的功能模块中,也可以在功能模块内部确定在事件输入端和事件输出端之间的内部连接,并且仅针对如下事件输出端的每次激活创建自身的事件链,所述事件输出端在执行功能模块时响应于在各个事件输入端处接收到的激活事件地进行。为了确定事件输入端和事件输出端之间的连接,编程环境可以接收对连接进行预先给定的用户输入。编程环境也可以被构造为用于分析在激活功能模块时通过各个事件输入端分别执行的逻辑关联或算法,并且确定响应于施加在事件输入端处的各个激活信号而被激活的事件输出端,并且由此导出在事件输入端与事件输出端之间的连接。
编程环境例如可以被构造为,将被分配给事件链的单个激活事件的优先级自动地也分配给所有后续产生的和/或所有之前产生的激活事件。例如,编程环境可以被构造为用于在通过输入接口接收到用户的确认之后才执行自动分配。
在所述方法的一种扩展方案中,分配给多个激活事件的优先级可以通过编程环境的用户预先给定。这使得能够对事件链的优先级进行用户定义的匹配。
例如,在通过编程环境对事件链的单个激活事件的优先级进行用户定义的匹配时,可以给事件链的所有后续的激活事件分配相同的优先级。替换地或附加地,也可以给事件链的所有之前的激活事件分配相同的优先级。
编程环境也可以被构造为向用户显示所有已识别的事件链,并且针对各个事件链分别接收用户输入,所述用户输入确定事件链的优先级。然后可以针对事件链的各个激活事件采用所述优先级。由此,例如可以针对响应于施加的输入信号产生的各个输出信号分别确定自身的优先级。
在所述方法的一种扩展方案中,自动分配的优先级可以通过用户在编程环境内进行匹配。例如,编程环境可以被构造为通过用户界面向用户显示其优先级响应于用户输入而自动调整的所有激活事件,并且通过输入界面接收用于匹配自动分配的优先级的用户输入。
用户输入例如可以包括针对激活事件中的单个激活事件的优先级的匹配值。替换地,用户输入也可以包括取消选择各个激活事件,从而不自动地匹配各个被取消选择的激活事件的优先级。响应于用户输入地,编程环境又可以自动地取消选择事件链的激活事件的一部分,例如在接收了用户输入的激活事件之后和/或之前的所有激活事件,或者将匹配值作为优先级进行分配。
在所述方法的一种扩展方案中,为各个激活事件分配预先确定的优先级,其中,通过用于在创建控制程序时使用的程序模块的模板、例如用于在创建控制程序时使用的功能模块或接口模块的模板的事件输出端或事件输入端的预先定义的优先级来预先给定所述预先确定的优先级。由此可以给控制程序的各个程序模块、尤其功能模块提供由其产生或接收的激活事件的预先定义的值。
在从所述模板创建程序模块时,可以将预先确定的优先级分配给通过事件输出端或事件输入端传输的所有激活事件。用于程序模块的模板尤其可以是相关程序模块的类定义,在创建控制程序时从所述类定义中将各个程序模块导出为实例。
此外,说明了一种用于在自动化系统的可编程逻辑控制器上执行面向事件的控制程序的执行环境,其中,控制程序包括多个功能模块。执行环境被构造为,在发生分别与各个功能模块相关联的激活事件时以事件控制的方式触发各个功能模块的执行。在此,给激活事件分别分配优先级,并且执行环境被构造为,检测发生的激活事件并且以根据各个激活事件的优先级确定的执行顺序执行与发生的激活事件相关联的功能模块。
执行环境尤其被构造为,用于执行所说明的方法的在控制程序的运行时间期间执行的步骤。就此而言,结合所说明的方法描述的所有技术效果和扩展方案也涉及执行环境,反之亦然。
此外,说明了一种具有存储器模块的可编程逻辑控制器,其中,在存储器模块中存储有用于由控制器执行的所说明的执行环境。控制器可以提供多个执行资源。在此,执行资源可以至少部分地分布地布置在控制器的不同的子设备中。子设备可以通过通信连接、例如无线的和/或有线的连接彼此连接。通信连接例如可以是现场总线系统。子设备可以分别包括自身的、彼此分开地构造的存储器模块,并且在存储器模块中可以分别存储执行环境的要由相关子设备执行的子环境。
可编程逻辑控制器、尤其其子设备可以具有用于连接传感器的外部输入接口和用于连接执行器的外部输出接口,并且可以被构造为通过外部输入接口从自动化过程读取传感器信号,并且通过输出接口将输出信号输出到自动化过程中。
此外,说明了一种具有这种可编程逻辑控制器的自动化系统。自动化系统,例如自动化系统的可编程逻辑控制器和/或与可编程逻辑控制器连接的接口模块可以具有用于连接传感器的外部输入接口和用于连接执行器的外部输出接口,并且被构造为用于通过外部输入接口从自动化过程中读取传感器信号,并且通过输出接口将输出信号输出到自动化过程中。
此外,说明了一种非易失性的计算机可读介质,在所述介质上存储有用于执行所说明的方法的单个或所有步骤或用于实现所述执行环境的指令。计算机可读介质例如可以构造为物理介质,例如构造为CD或DVD,或者构造为通过数据连接、例如因特网可访问的数据存储位置。所述介质例如可以构造为在线软件存储库(Software-Repository)或云数据存储库。
附图说明
下面,根据附图说明本发明。在此,分别以示意图:
图1示出了具有用于执行事件驱动的控制程序的控制器的自动化系统;
图2示出了控制程序的功能模块;
图3示出了用于由控制器执行控制程序的执行环境;
图4示出了控制程序的第一和第二事件链;
图5示出了对第一和第二事件链的激活事件分配的优先级;
图6示出了为了执行控制程序而通过执行环境管理的第一时间点的处理列表;
图7示出了稍后的第二时间点的处理列表;
图8示出了更晚的第三时间点的处理列表;
图9示出了第三时间点的处理列表的替换形式;
图10示出了随后的第四时间点的处理列表的替换形式;
图11示出了随后的第五时间点的处理列表的替换形式;
图12示出了控制程序的另一事件链;
图13示出了经由通信连接连接的控制器的第一和第二子设备;以及
图14示出了控制程序的执行方法。
具体实施方式
图1示出了自动化系统,该自动化系统被示例性地构造为用于处理工件195的机器1。机器1包括输送机186和夹持器181,在输送机186上输送工件195,工件195借助夹持器181被输送机186接收并且随后被放置在其他位置。为了使夹持器181移动,机器1包括由第一执行器183驱动的横向运动机构182和由第二执行器185驱动的高度运动机构184。输送机186由第三执行器187驱动。执行器183、185、187在此分别被构造为电驱动装置。
除了执行器183、185、187之外,机器1还包括测量夹持器181与输送机186上的各个工件195的距离的时间关键的传感器188和另一非时间关键的传感器189,传感器189被构造为用户接口并且可以通过其预先给定工件195的特征数据。
机器1还包括可编程逻辑控制器5,可编程逻辑控制器5通过被构造为现场总线的外部通信连接60与执行器183、185、187和传感器188、189连接。可编程逻辑控制器5包括第一子设备310和第二子设备320,第一子设备310和第二子设备320彼此分开地连接到通信连接60上。通过通信连接60,将输入信号从传感器188、189传输到控制器5的子设备310、320,并且将输出信号从子设备310、320传输到执行器183、185、187。
控制器5具有面向事件的控制程序10,其中,控制程序10的第一子程序11存储在第一子设备310的存储器模块中,并且控制程序10的第二子程序12存储在第二子设备320的存储器模块中。控制程序10包括用于经由通信连接60读取传感器信号、用于借助所读取的传感器信号的逻辑关联产生输出信号以及用于经由通信连接60将输出信号输出的所有指令。
为了执行控制程序10,控制器5包括执行环境100,执行环境100具有在第一子设备310上执行的第一子环境101和在第二子设备320上执行的第二子环境102。执行环境100的子环境101、102分别包括用于执行控制程序10的执行模块120。
在执行控制程序10时,必须确保用于使夹持器181移动的执行器183、185以优先的方式在预先给定的持续时间内对经由时间关键的传感器188读取的输入信号作出反应,该输入信号用于指示夹持器181接近工件195。否则,存在夹持器181不受控制地与工件195碰撞并使工件195损坏的危险。就此而言,由时间关键的传感器188提供的输入信号是时间关键的输入信号,并且夹持器181对经由时间关键的传感器188读取的输入信号的反应是控制程序的时间关键的反应。
相反,通过传感器189读取的工件195的参数仅用于使夹持器181的移动最佳地匹配于工件195的惯性。为此,所读取的参数在执行控制程序10时用于产生用于执行器183、185的匹配的输出信号。匹配的输出信号的产生是控制程序10的非时间关键的反应,该反应不受时间要求的约束,因此以较低的优先级作为夹持器181对传感器188的传感器信号的反应来执行。
控制程序10根据标准IEC 61499的规定执行并且包括多个构造为根据IEC 61499的功能块的功能模块。在图2中示例性地示出了这些功能模块20中的两个。各个功能模块20分别通过事件连接80和数据连接82相互连接。在此,各个事件连接80分别将在前的功能模块84的事件输出86与在后的功能模块85的事件输入87连接。各个功能模块20通过事件输入87接收激活事件,激活事件触发各个功能模块20的执行。各个功能模块20在其一侧通过事件输出86提供激活事件,激活事件使得执行后续的功能模块85。在功能模块20之间经由数据连接82传输执行各个功能模块20所需的数据。
图3示出了执行环境100在可编程逻辑控制器5的子设备310、320上的实现。为了执行控制程序10,第一子设备310提供第一执行资源311和第二执行资源312。第二子设备320提供第三执行资源321和第四执行资源322。执行环境100的第一子环境101借助第一执行资源311来执行,并且第二子环境102借助第三执行资源321来执行。相应地借助第二和第四执行资源312、322来执行执行环境100的另外的子环境104。
控制程序10包括第一应用15,第二应用16和第三应用17。应用15、16、17分别包括通过事件连接和数据连接相互连接的功能模块20,其中,第一和第二应用15、16分别包括开始模块21以及分别与相关的应用15,16的开始模块21连接的第一和第二终止模块27、28。第三应用17仅包括一个与开始模块21连接的终止模块27。在此,各个终止模块27、28可以分别经由在图3中未示出的附加的功能模块20与其各自的开始模块21连接。此外,各个应用15、16、17可以分别具有多于一个的开始模块21。开始模块21分别是根据IEC 61499构造为应答器功能块的服务功能块。
在执行控制程序10时,从各个开始模块21出发,依次执行所有通过事件连接彼此连接的功能模块20,直至执行各个终止模块27、28。第一应用15以分布式的方式在第一子环境101中借助第一执行资源311执行并且在第二子环境102中借助第三执行资源321执行。在此,使得执行第一终止模块27的程序部分完全在第一子环境101中执行,并且使得执行第二终止模块28的程序部分一部分在第一子环境101中并且一部分在第二子环境102中执行。第二应用16完全在借助第二执行资源312执行的另外的子环境104中执行,第三应用17分布在第二子环境102和借助第四执行资源322执行的另外的子环境104中。
在所示出的控制程序10中,开始模块21的执行相应地通过外部起源事件45来触发,外部起源事件45包括通过传感器188、189检测到传感器信号132。传感器信号132经由通信连接60传输到控制器5的子设备310、320,并且经由与通信连接60连接的外部输入接口131由执行环境100的接口模块130读取。在执行终止模块27、28时,分别产生用于机器1的执行器183、185、187的输出信号134,输出信号134经由接口模块130的外部输出接口133和与输出接口133连接的通信连接60传输到执行器183、185、187。
如果借助不同的执行资源311、312、321、322来执行彼此相继的功能模块20,则相关的功能模块20之间的事件连接和数据连接,通过将执行资源311、312、321、322相互连接的通信连接来执行,例如在执行资源311、312、321、322在不同的子设备310、320上实现的情况下通过在图1中示出的现场总线60,或者在执行资源311、312、321、322在同一子设备310、320上实现的情况下通过各个子设备310、320的内部总线系统。
用于产生控制程序10的编程环境被构造用于分别识别各个事件链,其中,各个事件链分别检测如下功能模块20的所有激活事件,作为对输入信号132的反应而依次执行这些功能模块20,直至执行终止模块27、28中的一个为止。在此,针对输入信号132和基于相关的输入信号132执行的终止模块27、28中的一个的每个组合,形成一个自己的事件链。
图4示出了控制程序10的第一事件链31和第二事件链32。第一和第二事件链31、32以同一开始事件41开始,开始事件41在通过接口模块130读取传感器信号132时产生。开始事件41触发第一功能模块51的执行,第一功能模块51作为应答器功能块(responderfunctionblock)形成不仅第一、而且第二事件链31、32的开始模块21。
在执行第一事件链31时,随后依次产生用于执行第二功能模块52、第三功能模块53和第四功能模块54的激活事件40。第四功能模块54形成第一事件链31的终止模块28。其产生输出信号134,将输出信号134通过执行环境100的外部输出接口133输出。
在执行第二事件链32时,在执行第一功能模块51之后,产生用于执行第二功能模块52以及第五功能模块55的激活事件40。第五功能模块55形成第二事件链32的终止模块27,并且产生另一输出信号134,用于经由接口模块130的外部输出接口133输出。
在替换的实施方式中,例如除了输出信号134的输出之外或者作为输出信号134的输出的替换,终止模块27、28中的一个可以或者两个终止模块27、28都可以改变控制器5的内部状态。此外,另外的功能模块51、52、53中的一个可以或者另外的功能模块51、52、53中的多个或全部也可以产生输出信号134或改变控制器5的内部状态。
分别给第一和第二事件链31、32的各个激活事件40分配优先级,所述优先级在图5中示出。给由第一功能模块51产生的用于执行第二功能模块52的激活事件40分配第一优先级201,其也被分配给第一事件链31的所有另外的激活事件40、即由第二功能模块52产生的用于执行第三功能模块53的激活事件和由第三功能模块53产生的用于执行第四功能模块54的激活事件。给在执行第二功能模块52时同样产生的用于执行第五功能模块55的激活事件分配第二优先级202。
如图5所示的那样,控制程序10还包括另外的事件链33,其中,另外的事件链33中的一个包括第六和第七功能模块56、57,并且另外的事件链33中的另一个包括第八和第九功能模块58、59。第六功能模块56产生用于执行第七功能模块57的具有第三优先级203的激活事件,并且第八功能模块58产生用于执行第九功能模块59的具有第一优先级201的激活事件。
第一、第二和第三优先级201、202、203依次形成下降的优先级,从而使得第一优先级为最高的优先级,第三优先级为最低的优先级。在执行控制程序10时,通过第一、第六和第八功能模块51、56、58产生的激活事件在存在于相同的时间中,例如它们基本上同时地,即在与功能模块的执行持续时间相比较短的时间内依次被提供,并且通过执行环境100被检测,并且在稍后的时间点附加地存在两个通过第二功能模块52产生的激活事件。例如,同样基本上同时提供和检测通过第二功能模块52产生的激活事件。
图6示出了在检测到通过第一、第六和第八功能模块51、56、58产生的激活事件之后的第一时间点的处理列表140,用于执行控制程序10的执行环境100的未示出的列表管理模块管理所述处理列表。在处理列表140中,这些激活事件根据其优先级201、203以从最高优先级、即第一优先级201开始到最低优先级、即第三优先级203的下降的顺序布置。
图7示出了在执行第二功能模块52期间的稍后的第二时间点的处理列表140,第二功能模块根据通过处理列表140确定的执行顺序首先被执行。在执行第二功能模块52期间,处理列表140还包括具有第一优先级201的用于执行第九功能模块59的激活事件。
图8示出了在执行第二功能模块52之后的更稍后的第三时间点的处理列表140。在执行第二功能模块52时,产生了用于激活第三功能模块53的具有第一优先级201的激活事件和用于激活第五功能模块55的具有第二优先级202的激活事件。在其通过执行环境100检测之后,这两个激活事件基于其优先级201、202被插入到处理列表140中。
在此,将用于激活第五功能模块55的具有第二优先级202的激活事件插入到用于激活第九功能模块59的具有第一优先级201的激活事件与用于激活第七功能模块57的具有第三优先级203的激活事件之间。用于激活第三功能模块53的具有第一优先级201的激活事件的位置由执行环境100根据FIFO原理确定,从而在已经处于处理列表140中的同样具有第一优先级201的用于执行第九功能模块59的激活事件之后,并且在具有第二或第三优先级202、203的用于激活第五和第七功能模块55、57的激活事件之前插入相关的激活事件。
图9示出了在执行环境100的替换的设计方案中的在第三时间点的处理列表140,所述执行环境在确定用于激活第三功能模块53的激活事件的位置时应用LIFO原理,而不是FIFO原理。在此,相关的激活事件还在用于激活第九功能模块59的相同的优先级的激活事件之前被插入到处理列表140中。
图10示出了在第三功能模块53的执行期间、在接下来的第四时间点应用LIFO原理时的处理列表140。在执行第三功能模块53之后,执行环境100检测具有第一优先级201的用于执行第四功能模块54的激活事件。如在示出了在接下来的第五时间点的处理列表的图11中示出的那样,该激活事件随后在同样具有第一优先级201的用于执行第九功能模块59的激活事件之前被记录到处理列表140中。因此,在应用LIFO原理时,在开始处理所有另外的事件链32、33之前,尤其在开始处理同样具有第一优先级201的用于执行第九功能模块59的激活事件之前,首先执行第一事件链31的所有功能模块51、52、53、54。
图12示出了控制程序10的另外的事件链33。事件链33包括两个开始模块21,所述开始模块通过由接口模块130作为开始事件41提供的两个传感器信号132来激活。开始模块21分别产生第一激活事件46和第二激活事件47,所述第一激活事件和第二激活事件被输送给构造为合并模块23的功能模块20的两个事件输入端。
合并模块23被构造用于,仅在发生第一和第二激活事件46,47时执行。合并模块产生用于激活另外的功能模块20的随后的激活事件48,该另外的功能模块是事件链33的终止模块27。在创建控制程序10时使用的编程环境被构造用于,将基于用于激活合并模块23的第一和第二激活事件46、47的优先级确定的优先级自动分配给随后的激活事件48,。在此,给随后的激活事件48分配第一和第二激活事件46、47的优先级中的最低的优先级。如果例如第一激活事件46具有第二优先级202并且第二激活事件47具有第三优先级203,那么将第三优先级203自动分配给随后的激活事件48。
图13示出了机器1的可编程逻辑控制器5的第一子装置310和第二子装置320,它们借助通信连接60经由构造为路由器的中间设备307相互连接。执行环境100的在子装置310、320上执行的子环境101,102构造用于,通过通信连接60和中间连接的中间设备307传输在第一子装置310上产生的用于激活在第二子装置320上执行的功能模块的激活事件。
第一子装置310包括发送单元330,所述发送单元将存储在发送队列332中的激活事件以通过其在发送队列332中的位置确定的顺序、通过通信连接60发送给路由器307。执行环境100的在第一子装置310上执行的子环境101在此将各个激活事件存储在发送队列332中,使得各个激活事件的发送顺序通过其优先级确定,并且以下降的优先级依次发送激活事件。类似地,路由器307被构造用于,将各个激活事件以下降的优先级依次转发给第二子装置320。
第二子装置320具有接收单元335,所述接收单元将经由通信连接60接收到的激活事件存储在接收队列337中。在此,各个激活事件在接收队列337中的位置根据其优先级来确定,其中,各个激活事件依次以下降的优先级存储在接收队列337中。执行环境100的在第二子装置320上执行的子环境102被构造用于,根据激活事件在接收队列337中的位置以降低的优先级依次处理激活事件。
图14示出了通过用于执行控制程序10的执行环境100执行的方法400。该方法400包括:检测410发生的激活事件40,将检测到的激活事件40记录415到处理列表140中,以通过处理列表140预先给定的执行顺序执行420分别配属于发生的激活事件40的功能模块20,并且通过通信连接60传输425在执行420功能模块20时产生的激活事件40。
附图标记列表
1机器
5可编程逻辑控制器
10控制程序
11第一子程序
12第二子程序
15第一应用
16第二应用
17第三应用
20功能模块
21开始模块
23合并模块
27第一终止模块
28第二终止模块
31第一事件链
32第二事件链
33另外的事件链
40激活事件
41开始事件
46第一激活事件
47第二激活事件
48随后的激活事件
51第一功能模块
52第二功能模块
53第三功能模块
54第四功能模块
55第五功能模块
60外部通信连接
80事件连接
82数据连接
84前面的功能模块
85后续的功能模块
86事件输出端
87事件输入端
100执行环境
101第一子环境
102第二子环境
104另外的子环境
120执行模块
130接口模块
131外部输入接口
132输入信号
133外部输出接口
134输出信号
140处理列表
181夹持器
182横向运动机构
183第一执行器
184高度运动机构
185第二执行器
186输送机
187第三执行器
188时间关键的传感器
189传感器
195工件
201第一优先级
202第二优先级
203第三优先级
307中间设备
310第一子设备
311第一执行资源
312第二执行资源
320第二子设备
321第三执行资源
322第四执行资源
330发送单元
332发送队列
335接收单元
337接收队列
400方法
410检测发生的激活事件
415记录到处理列表中
420执行功能模块
425传输
Claims (15)
1.一种用于在自动化系统(1)的可编程逻辑控制器(5)上执行面向事件的控制程序(10)的方法(400),
其中,所述控制程序(10)包括多个功能模块(20),
其中,在发生分别与各个功能模块(20)相关联的激活事件(40,41,46,47,48)时,以事件控制的方式触发各个功能模块(20)的执行,
其中,所述激活事件(40,41,46,47,48)分别分配有优先级,
其中,所述方法(400)包括以下步骤:
-检测(410)发生的激活事件(40,41,46,47,48);
-按照根据各个激活事件(40,41,46,47,48)的优先级确定的执行顺序,来执行(420)分别与所发生的激活事件(40,41,46,47,48)相关联的功能模块(20)。
2.根据权利要求1所述的方法(400),
其中,所述控制程序(10)具有共同的功能模块(20),所述共同的功能模块的执行能够通过第一和第二激活事件(40,41,46,47,48)来触发,
其中,所述第一和第二激活事件(40,41,46,47,48)分配有不同的优先级,
其中,所述共同的功能模块(20)在通过第一激活事件(40,41,46,47,48)触发时以所述第一激活事件(40,41,46,47,48)的优先级来执行,并且在通过第二激活事件(40,41,46,47,48)触发时以所述第二激活事件(40,41,46,47,48)的优先级来执行。
3.根据前述权利要求中任一项所述的方法(400),所述方法包括:
在考虑各个激活事件(40,41,46,47,48)的优先级的情况下,将所发生的激活事件(40,41,46,47,48)记录(415)到至少一个处理列表(140)中。
4.根据权利要求3所述的方法(400),
其中,将不同优先级的激活事件(40,41,46,47,48)记录到不同的处理列表(140)中,并且各个处理列表(140)分别仅包括相同优先级的激活事件(40,41,46,47,48)。
5.根据前述权利要求中任一项所述的方法(400),
其中,与通过相同优先级的先前已经检测到的激活事件(40,41,46,47,48)触发的功能模块(20)相比,更晚地执行通过新检测到的激活事件(40,41,46,47,48)触发的功能模块(20)。
6.根据权利要求1至4中任一项所述的方法(400),
其中,与通过相同优先级的先前已经检测到的激活事件(40,41,46,47,48)触发的功能模块(20)相比,更早地执行通过新检测到的激活事件(40,41,46,47,48)触发的功能模块(20)。
7.根据前述权利要求中任一项所述的方法(400),
其中,所述可编程逻辑控制器(5)具有第一执行资源(311,312,321,322)以及经由通信连接(60)与所述第一执行资源(311,312,321,322)连接的第二执行资源(311,312,321,322),
其中,所述控制程序(10)包括在所述第一执行资源(311,312,321,322)上执行的第一子程序(11,12)和在所述第二执行资源(311,312,321,322)上执行的第二子程序(11,12),
其中,所述方法(400)包括:将在所述第一执行资源(311,312,321,322)上发生的激活事件(40,41,46,47,48),从所述第一执行资源(311,312,321,322)经由所述通信连接(60)传输(425)到所述第二执行资源(311,312,321,322),
其中,所述传输(425)以根据各个激活事件(40,41,46,47,48)的优先级确定的传输优先级来进行。
8.根据权利要求7所述的方法(400),
其中,根据各个激活事件(40,41,46,47,48)的优先级来确定发送顺序,所述第一执行资源(311,312,321,322)的发送单元(330)以所述发送顺序经由所述通信连接(60)发送各个激活事件(40,41,46,47,48),和/或
其中,根据各个激活事件(40,41,46,47,48)的优先级来确定转发顺序,以所述转发顺序借助所述通信连接(60)转发各个激活事件(40,41,46,47,48),和/或
其中,根据各个激活事件(40,41,46,47,48)的优先级来确定输出顺序,在所述第二执行资源(311,312,321,322)的接收单元(335)经由所述通信连接(60)接收到各个激活事件(40,41,46,47,48)之后,以所述输出顺序输出各个激活事件(40,41,46,47,48),以进行进一步处理。
9.根据前述权利要求中任一项所述的方法(400),
其中,例如在考虑在所述控制程序(10)的执行时间产生的参数值的情况下,在所述执行时间才对各个激活事件(40,41,46,47,48)分配其优先级。
10.根据权利要求9所述的方法(400),
其中,在执行先前执行的功能模块(20)时产生随后要执行的功能模块(20)的激活事件(40,41,46,47,48),
其中,在产生随后要执行的功能模块(20)的激活事件(40,41,46,47,48)时,对随后要执行的功能模块(20)的激活事件(40,41,46,47,48)分配如下激活事件(40,41,46,47,48)的优先级,这些激活事件触发了相应地先前执行的功能模块(20)的执行。
11.根据前述权利要求中任一项所述的方法(400),
其中,所述控制程序(10)包括功能模块(20,23),所述功能模块的执行在发生第一和至少一个第二激活事件(40,41,46,47,48)时才被触发,
其中,对由所述功能模块(20,23)产生的激活事件(40,41,46,47,48)分配如下优先级,该优先级对应于触发所述功能模块(20,23)的执行的激活事件(40,41,46,47,48)的最低优先级。
12.根据前述权利要求中任一项所述的方法(400),
其中,在执行所述控制程序(10)时,基于源事件(40,41,46,47,48)产生多个随后的激活事件(40,41,46,47,48),
其中,例如所述控制程序(10)包括事件链(31,32,33),所述事件链具有在执行所述控制程序(10)时基于所述源事件(40,41,46,47,48)相继产生的激活事件(40,41,46,47,48),
其中,用于创建所述控制程序(10)的编程环境自动对所述多个随后的激活事件(40,41,46,47,48)、例如所述事件链(31,32,33)的多个激活事件(40,41,46,47,48)分配相同的优先级。
13.根据权利要求12所述的方法(400),
其中,对所述多个激活事件(40,41,46,47,48)分配的优先级能够由所述编程环境的用户预先给定,和/或
其中,自动分配的优先级能够由所述用户在所述编程环境内进行调整。
14.根据前述权利要求中任一项所述的方法(400),
其中,对各个激活事件(40,41,46,47,48)分配预先确定的优先级,
其中,所述预先确定的优先级通过在创建所述控制程序(10)时使用的程序模块的模板、例如在创建所述控制程序(10)时使用的功能模块(20)的模板的事件输出端(86)或事件输入端(87)的预先定义的优先级来预先给定。
15.一种用于在自动化系统(1)的可编程逻辑控制器(5)上执行面向事件的控制程序(10)的执行环境(100),
其中,所述控制程序(10)包括多个功能模块(20),
其中,所述执行环境(100)被构造为,在发生分别与各个功能模块(20)相关联的激活事件(40,41,46,47,48)时,以事件控制的方式触发各个功能模块(20)的执行,
其中,所述激活事件(40,41,46,47,48)分别分配有优先级,
其中,所述执行环境(100)被构造为,检测发生的激活事件(40,41,46,47,48),并且按照根据各个激活事件(40,41,46,47,48)的优先级确定的执行顺序来执行与所发生的激活事件(40,41,46,47,48)相关联的功能模块(20)。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP20306536.2A EP4012516A1 (de) | 2020-12-10 | 2020-12-10 | Ausführungsumgebung für eine speicherprogrammierbare steuerung |
EP20306536.2 | 2020-12-10 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114625064A true CN114625064A (zh) | 2022-06-14 |
Family
ID=74129998
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111509421.3A Pending CN114625064A (zh) | 2020-12-10 | 2021-12-10 | 执行环境 |
Country Status (3)
Country | Link |
---|---|
US (1) | US12007739B2 (zh) |
EP (1) | EP4012516A1 (zh) |
CN (1) | CN114625064A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4293437A1 (de) * | 2022-06-15 | 2023-12-20 | Schneider Electric Industries SAS | Verfahren und vorrichtung zum steuern des ablaufs von programmteilen, programmierverfahren, programmiervorrichtung |
US12007739B2 (en) | 2020-12-10 | 2024-06-11 | Schneider Electric Industries Sas | Method and system for executing an event-oriented control program |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230042199A (ko) * | 2020-07-31 | 2023-03-28 | 지티이 코포레이션 | 리소스 시그널링 설계 및 구성을 위한 방법 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19500957A1 (de) | 1994-07-19 | 1996-01-25 | Bosch Gmbh Robert | Verfahren zur Steuerung von technischen Vorgängen oder Prozessen |
DE102009047025B3 (de) * | 2009-11-23 | 2011-05-26 | Beckhoff Automation Gmbh | Echtzeit-Laufzeitsystem und Funktionsmodul für ein solches Laufzeitsystem |
EP2541348B1 (de) * | 2011-06-28 | 2017-03-22 | Siemens Aktiengesellschaft | Verfahren und Programmiersystem zur Programmierung einer Automatisierungskomponente |
EP2728475A1 (en) | 2012-11-02 | 2014-05-07 | Rockwell Automation Technologies, Inc. | Event management |
CN103885376A (zh) * | 2012-12-19 | 2014-06-25 | 施耐德电器工业公司 | 可编程逻辑控制器及其事件驱动编程方法 |
EP2778915A1 (de) * | 2013-03-13 | 2014-09-17 | Siemens Aktiengesellschaft | Verfahren zum Betrieb einer Industriesteuerung und Industriesteuerung |
US9921890B2 (en) * | 2014-11-26 | 2018-03-20 | Rockwell Automation Technologies, Inc. | Event generation management for an industrial controller |
LU93299B1 (de) * | 2016-11-10 | 2018-06-13 | Phoenix Contact Gmbh & Co Kg Intellectual Property Licenses & Standards | Ablaufsteuerung von Programmmodulen |
CN109542069B (zh) | 2018-12-17 | 2021-03-09 | 上海交通大学 | 一种基于时间与事件混合驱动的分布式控制系统及方法 |
EP4012516A1 (de) | 2020-12-10 | 2022-06-15 | Schneider Electric Industries SAS | Ausführungsumgebung für eine speicherprogrammierbare steuerung |
CN112948097B (zh) | 2021-04-15 | 2022-10-14 | 哈工大机器人(合肥)国际创新研究院 | 一种iec61499的功能块执行调度方法及装置 |
-
2020
- 2020-12-10 EP EP20306536.2A patent/EP4012516A1/de active Pending
-
2021
- 2021-12-10 CN CN202111509421.3A patent/CN114625064A/zh active Pending
- 2021-12-10 US US17/643,618 patent/US12007739B2/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12007739B2 (en) | 2020-12-10 | 2024-06-11 | Schneider Electric Industries Sas | Method and system for executing an event-oriented control program |
EP4293437A1 (de) * | 2022-06-15 | 2023-12-20 | Schneider Electric Industries SAS | Verfahren und vorrichtung zum steuern des ablaufs von programmteilen, programmierverfahren, programmiervorrichtung |
Also Published As
Publication number | Publication date |
---|---|
EP4012516A1 (de) | 2022-06-15 |
US12007739B2 (en) | 2024-06-11 |
US20220187779A1 (en) | 2022-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114625064A (zh) | 执行环境 | |
Zuberi et al. | Non-preemptive scheduling of messages on controller area network for real-time control applications | |
US10698463B2 (en) | Controller, control method, and program for power cut state restoration | |
CA2558111A1 (en) | Communication system and slave and repeater units therefor | |
EP3557345B1 (en) | Control apparatus, system program, and control method | |
US20220147022A1 (en) | Control system | |
JP2012510194A (ja) | 安全ステップの判定方法および安全マネージャ | |
CN111988240B (zh) | 一种数据发送方法、装置、电子设备及存储介质 | |
US20190253497A1 (en) | Control device, control system, control method, and non-transitory computer-readable storage medium | |
US11811547B2 (en) | Control system in which a plurality of apparatuses in time synchronization with one another are connected to a network | |
CN109542069B (zh) | 一种基于时间与事件混合驱动的分布式控制系统及方法 | |
JP6460137B2 (ja) | 制御装置、制御方法、およびプログラム | |
US11947329B2 (en) | Execution environment for running an event-oriented control program | |
EP3012700B1 (en) | Programmable controller and control method for programmable controller | |
WO2018193571A1 (ja) | 機器管理システム、モデル学習方法およびモデル学習プログラム | |
CN102209960A (zh) | 用于控制在功能计算机和监控模块之间通信的方法和系统 | |
CN111752638A (zh) | 自动化控制平台及自动化平台控制方法 | |
Hace et al. | Control system for the waterjet cutting machine | |
JPWO2019117249A1 (ja) | 制御装置、制御方法及びプログラム | |
CN213634179U (zh) | 自动化装置 | |
US20230344782A1 (en) | Method for a configuration in a network | |
EP4060492A1 (en) | Method to generate safe control data for a local machine | |
US20230236558A1 (en) | Process Data Exchange with Guaranteed Minimum Transmission Intervals | |
EP3968572A1 (en) | A method for providing log entries | |
US20230370523A1 (en) | Method for providing an item of time information |
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 |