用于数据处理的方法和可编程的控制装置与流程

文档序号:25085689发布日期:2021-05-18 17:58阅读:160来源:国知局
用于数据处理的方法和可编程的控制装置与流程

1.本发明涉及一种用于在可编程的控制装置(speicherprogrammierbaren steuerung,sps)上处理数据的方法。本发明还涉及可编程的控制装置,其尤其用于调节或控制机器或设备。


背景技术:

2.自动化系统的机器或设备通常借助可编程的控制装置(sps)控制。sps通过通信端口控制或调节机器或设备的执行器和传感器。通信端口例如可实现为现场总线系统,其中,机器或设备的执行器和传感器可经由现场总线系统互联。
3.通过读取与可编程的控制装置的输入端连接的传感器的测量数据和/或执行器的当前实际数据,sps获得关于机器或设备的状态的信息。执行器连接到可编程的控制装置的输出端并且能够控制机器或设备。为了动态地操控执行器,sps基于实际数据和/或基于传感器的测量数据生成用于执行器的输出数据,其中,所述数据可为单个的值或值组。也可根据规定、例如根据运动曲线操控执行器。为了能够提供机器或设备的期望运行方式,sps的控制任务确定,将哪些由sps根据相应的输入数据产生的输出数据输送给执行器。通过sps对数据的处理大多周期性地进行并且包括三个步骤:提供当前的输入数据(例如执行器的实际数据和/或传感器的测量数据),将输入数据处理成输出数据,和输出用于运动控制的输出数据(例如目标位置等)。
4.为了控制自动化系统必须的是,最迟在需要用于执行器的输出数据的时间点结束对输入数据的处理。该时间点称为最终期限并且通常相应于sps的程序周期的结束。对于可编程的控制装置通常需要严格的实时性,这意味着,最终期限顺序地遵循并且不允许超过。额外地,在最终期限的时间点存在用于执行器的有效结果。这尤其在超过最终期限将导致人员或物品损坏时、例如在机械手未及时制动时是重要的。
5.sps的程序执行例如在标准iec 61131

3中确定。sps具有控制任务并且其大多由一个或多个通常需要周期性执行的具有任务(所谓的“task”)的程序组成。在最简单的情况下可编程的控制装置具有仅单个的用于包括任务(task)的多个独立程序的处理器内核。因此,可用的计算时间必须被分配,使得具有相应任务的所有程序都可遵循其最终期限。sps中的不同程序周期时间例如可根据应用处于100μs至20ms的范围中或在复杂任务的情况下处于50ms至100ms的范围中。由于不同的程序周期时间可防止具有较长周期时间的任务的程序而延迟具有较短周期时间的任务的程序,从而其不再能够遵循其最终期限。通常这仅在中断这种较慢程序的执行并且稍后继续执行时实现。由此通常为具有相应任务的每个程序指派预设的优先级。该优先级可由最终期限和/或相应程序与其他程序的相关性中得出,如果该程序例如指示其他程序的结果。该优先级还可相应于整数值。
6.因为多个sps包括具有多个处理器内核的处理器和或多个处理器,sps可将具有相应任务的程序分配到多个处理器内核或处理器上,以便通过相应任务的至少部分并行执行降低具有相应任务的程序的总处理时间。在此,控制任务的所谓的计算量可由程序的中断
时间、程序中断次数或相应程序的计算时间中得出。此外,控制任务的处理器内核可与处理器内核的载荷量相关。如果将程序和任务分配到多个处理器内核上,由于对应的优先级会出现,在并行工作的处理器内核上,刚好并行执行的任务被与相应程序中的较高优先级关联的其他任务中断。任务的中断提高了所谓的管理事务并且在时间上可彼此变化。管理事务包括在程序中中断任务处理时所需的激活。该激活例如可为传递和存储中断任务的中间结果,否则必须重新处理该程序的任务。因此可降低在高管理事务时的计算量,因为在程序的中断持续期间通常不执行计算。程序的计算时间也可对计算量有影响,因为具有短的程序周期时间的程序必要时在没有并行化时可比在并行工作的处理器内核上更快地纯粹顺序地执行。因为在并行工作的处理器内核上的程序可能会通过更高优先权的其他程序被中断,由此可延长程序的总执行时间。如果没有完全地加载处理器内核,例如通过顺序地执行程序,而是与为此设置的处理器内核并行地执行,由此不能完全地利用为并行化设置的处理器内核。这也会降低控制任务的计算量。


技术实现要素:

7.本发明的目的是,提供用于优化数据处理的方法,该方法最佳地利用了现有资源。本发明的目的还在于,提供改进的可编程的控制装置。
8.该目的通过独立权利要求的特征实现。本发明的其他有利设计方式在从属权利要求中给出。
9.根据本发明提出用于在可编程的控制装置(sps)上优化数据处理的方法,其中,sps包括至少一个并行处理器内核。sps还具有控制任务,控制任务包括多个可执行的程序。控制任务的至少两个程序分别具有包括工作包的至少一个并行处理节段,并且工作包包括多个子任务。为相应程序中的并行处理节段指派具有预设优先级的优先权,其中,一旦程序在并行处理节段上执行相应优先级被加入数据结构中。至少一个并行处理器内核检查,在数据结构中是否存在条目并且如果存在条目,至少一个并行处理器内核处理程序的工作包中的优先级在数据结构中的条目的第一位置上的子任务。在程序周期期间连续地评估控制任务的预期的计算量并且动态地调节相应程序的并行处理节段的其中至少一个优先级,由此提高控制任务的计算量。
10.并行处理器内核称为sps的处理器内核,其用于并行地处理子任务。此外,sps可具有其他的处理器内核,所谓的主处理器内核。主处理器内核可分别执行控制任务的一个或多个程序。控制任务的多个程序可具有纯粹顺序执行的程序,其中,控制任务的至少两个程序包括至少两个并行处理节段。程序的并行处理节段可通过并行处理器内核的辅助来执行。
11.控制任务的计算量可经由程序的并行处理节段的中断时间和中断次数评估。因为在处理程序的并行处理节段的子任务中断期间没有进行计算,而是传输和存储中间结果,重新排列数据结构中的优先级条目,至少一个并行处理器内核必须在处理具有并行处理节段的另一程序的工作包的子任务之前询问用于处理的空闲子任务或在继续处理中断的子任务时首先访问中间结果存储器,以便可将已经计算的中间结构用作中断的子任务的继续处理的初始点。就此而言,具有并行处理节段的程序的中断时间以及中断次数对控制任务的计算量有影响,因为其延长了程序的总执行时间。因此在没有中断具有并行处理节段的
程序的情况下可实现控制任务的最大计算量。
12.借助动态地调节该程序的并行处理节段的至少一个优先级的值可降低具有并行处理节段的程序的中断次数,因为可使得至少一个优先级的值有针对性地匹配相应的情况,以便降低控制任务的管路事务。如果一个工作包的子任务刚好并行地执行并且通过相应程序的相应并行处理节段的具有较高优先级的另一工作包的其他子任务中断,则该子任务的至少一个优先级的值可直接在程序周期内改变,以避免继续中断相应并行处理节段的子任务并且避免额外的管理事务。至少一个优先级的值的调节也可针对新的程序周期来进行,其中,再次从开始执行相应程序。
13.为了不是为每个程序周期降低至少一个优先级的值,可经由额外的条件、例如以至少一个优先级的值针对新的程序周期必须至少相应于预设至少一个优选级的一半的值的形式确保,程序的至少一个优先级的值没有不期望地设置到最小的值。因为程序的并行处理节段的至少一个优先级的最小值意味着,相应程序顺序地在相应的主处理器内核上执行。以这种方式必要时可能不能完全地利用至少一个并行处理器内核的计算功率,其中,未被利用的计算功率降低了控制任务的计算量。因此可有利地经由用于调节程序的并行处理节段的至少一个优先级的值的所述下限额外条件考虑处理器内核的载荷。
14.此外,可借助并行处理节段的计算时间评估控制任务的计算量。具有短的程序周期时间、例如1ms的子任务的程序虽然可在至少一个并行处理器内核上的程序的并行处理节段中完全分配用于并行处理子任务。但是这可能会导致,通过具有更高优先级的另一并行处理节段的相应子任务中断该程序的并行处理节段。在所述示例中,具有短的程序周期时间的程序的并行化使得管理事务提高并且由此提高了用于并行处理节段的计算时间。总的程序执行时间可由于并行化而比程序纯粹顺序地且无间断地执行的情况更慢。因为具有短的程序周期时间的程序的顺序计算时间必要时可比并行处理节段的计算时间更短,因此有利的是,在评估计算量时(除了并行处理节段的中断的时间和次数以及处理器内核的载荷以外)同时考虑用于执行程序的相应所需的计算时间以便改进控制任务的计算量。
15.在程序运行期间动态地调节程序的并行处理节段的至少一个优先级的值,由此可提高控制任务的计算量。在相应程序中没有动态地调节并行处理节段的至少一个优先级的值的情况下会发生,相应程序的总执行时间由于中断时间和与此相关的额外管理事务而提高并且使得控制任务总体上比没有中断纯粹顺序地在对应的程序中处理程序任务的情况更慢。
16.除了在程序运行期间动态地调节程序的并行处理节段的至少一个优先级的值以外,还可想到的是,在sps的控制任务的程序开始之前借助模拟得出程序的并行处理节段的至少一个优先级的最佳值。以这种方式获得的程序的并行处理节段的至少一个优先级的最佳值可在sps的控制任务的多个程序分配给主处理器内核时以及在主处理器内核上分别仅执行一个程序的情况下用作程序执行的起始值。
17.在另一实施方式中,在中断对程序的子任务的处理时调节相应程序的并行处理节段的至少一个优先级。控制任务的计算量与中断处理子任务的时间相关,因为在该时间中没有处理程序的并行处理节段的子任务,而是必要时传输和存储子任务的计算的中间结果。此外,每次中断在时间上不同。因此中断时间可延长程序的总执行时间,因为除了程序的计算时间以外必须考虑中断时间。还可看出,频繁中断对并行处理节段的任务的处理导
致计算量的减小,因为随着中断计算的频率也提高了通过增加传输和存储计算子任务的中间结果的管理事务。因此应将中断次数和持续时间保持得尽可能低,以便以这种方式能够实现控制任务的高计算量。这可借助动态地调节程序的并行处理节段的至少一个优先级,在中断处理该程序的并行处理节段的子任务时实现。
18.另一实施方式为,在程序的子任务由于具有在至少一个并行处理器内核上的并行处理节段的较高优先级的另一程序的其他子任务被中断时调节相应程序的并行处理节段的至少一个优先级。如果在至少一个并行处理器内核上一个工作包的子任务由于与对应程序的并行处理节段的更高优先级值相关联的另一工作包的其他子任务被中断,则可直接在该程序周期内改变中断的子任务的至少一个优先级的值,以便为还等待的子任务产生尽可能少的管理事务。
19.此外可行的是,对于下一程序周期对应地、如上面所述地调节相应程序的并行处理节段的中断的子任务的至少一个优先级的值。借助上述用于下一程序周期的至少一个优先级的起始值的额外条件可确保,没有不期望地将至少一个优先级的值降低到下限以下。
20.控制任务的计算量由具有任务的、即管理事务的程序的中断时间和次数得出。通过降低管理事务、即程序中断次数可提高计算量。此外,可通过考虑相应程序的计算时间提高计算量。如果具有短的程序周期时间的子任务的程序纯粹顺序地、即以较短的顺序计算时间无间断地执行能够比在可能具有中断的程序的并行处理节段中更快,则通过考虑在程序中的相应计算时间也可提高控制任务的计算量。由于完全地利用了至少一个并行处理器内核的计算功率并且使得相应程序的并行处理节段的需要并行处理的子任务通过至少一个处理器内核进行处理,也可提高控制任务的计算量,其中,需要顺序执行的程序在相应的主处理器内核上执行。此外提高的计算量还有助于降低程序和子任务的总执行时间,因为控制任务以这种方式获得更多的计算时间。
21.在另一实施方式中,在调节相应程序的并行处理节段的至少一个优先级时考虑额外的条件,尤其控制任务的实时条件。在程序运行期间动态地调节相应程序的并行处理节段的至少一个优先级的值还可确保自动化系统的实时性。在任何情况下,该程序的最终期限可通过调节优先级的值来遵循。为了调节程序的并行处理节段的至少一个优先级,除了实时条件以外还可考虑用于至少一个优先级的下限的所述可能条件。
22.在另一实施方式中,在至少一个并行处理器内核上,程序的子任务由于具有并行处理节段的更高优先级的另一程序的其他子任务而被中断时,相应程序的并行处理节段的至少一个优先级降低一个因数。相应程序的并行处理节段的至少一个优先级的值降低一个因数可有助于降低管理事务。因为在与子任务关联的相应程序中的相应并行处理节段的至少一个优先级的值被中断,为了避免继续中断具有子任务的并行处理节段,直接在程序周期中降低。此外在中断程序的并行处理节段中的子任务的计算时会发生,必须传输当前的中间结果并且存储数据。因此,频繁地中断子任务可产生巨大的费用,该费用应该被最小化。始终在以下条件下调节相应程序的并行处理节段的至少一个优先级的值,使得可确保自动化的实时性,即,最迟必须在需要用于执行器的输出数据的时间点结束处理输入数据。因此必须能够确保,尽管降低了相应程序的并行处理节段的至少一个优先级的值,但是可进一步维持程序的最终期限。
23.另外,可紧接在中断处理子任务之后提高中断的子任务的程序的并行处理节段的
至少一个优先级的值。提高程序的并行处理节段的至少一个优先级的值可有助于对应的子任务不再被另一程序的另一并行处理节段中断。除了动态地调节程序的并行处理节段的中断的子任务的至少一个优先级的值还可想到的是,调节该程序的优先级的值,使得引起中断另一程序的并行处理节段的子任务的处理。因此避免了一个程序的并行处理节段的当前处理的子任务不会重新通过另一程序的另一并行处理节段中断。
24.代替通过调节并行处理节段的至少一个优先级的值降低相应程序中的并行处理节段的中断时间和中断次数还可想到的是,在评估计算量时同时考虑相应程序的并行处理节段的计算时间。即,可单独地决定,是否调节相应程序的并行处理节段的至少一个优先级的值和/或如果用于相应程序的子任务的顺序计算时间小于相应程序的并行处理节段的计算时间,是否应纯粹顺序处理程序的子任务。这相同地适用于以下实施方式,因此不再重复以下实施方式的替选方案。
25.另一实施方式是,在程序的子任务可顺序地在相应地程序中执行时,将相应程序的并行处理节段的至少一个优先级设置到最小值。在极端情况下可将控制任务的多个程序的并行处理节段的至少一个优先级的值设置成最小值。尤其可考虑这样的实施方式,子任务无需强制性地并行执行,而是也可顺序地在对应的程序中处理。
26.在另一实施方式中,在开始新的程序周期时将相应程序的并行处理节段的至少一个优先级重置到预设的值。在调节相应程序的并行处理节段的优先级的值中的优点是,可暂时地进行。可直接在程序运行时间内动态地调节至少一个优先级的值并且无需为程序的总运行时间相同地进行。例如可为新的程序周期将优先级的值再次重置到预设值并且可在程序周期期间和/或为下一程序周期重新改变。
27.另一实施方式是,在先前顺序地在对应的程序中执行子任务时在开始新的程序周期时提高相应的程序的并行处理节段的至少一个优先级。代替降低相应程序的并行处理节段的至少一个优先级的值也可提高至少一个优先级的值。例如可在开始新的程序周期时调节至少一个优先级的值。在具有相应的优先级的子任务在先前的程序周期中纯粹顺序地在对应的程序中被处理时可想到该设计方案。借助该设计方案可避免控制任务的过多程序某时具有程序的并行处理节段的至少一个优先级的最小值并且纯粹顺序地执行该程序。如果该程序纯粹顺序地在主处理器内核上执行,这必要时可造成不再完全地利用并行处理器内核的可用计算功率,这随后造成控制任务的总计算量降低。
28.根据本发明还提出一种可编程的控制装置(sps)。sps包括通信端口,其用于读入传感器数据和用于输出执行器数据。此外,sps包括数据处理机构以及控制机构,数据处理机构包括至少一个用于执行控制任务的并行处理器内核,以便由传感器数据生成执行器数据,控制机构具有用于存储具有优先级的数据结构的数据结构存储器和用于管理数据结构中的优先级的优先权管理器。控制机构包括中间结构存储器,在其上存储计算的中间结果。控制任务还包括多个可执行的程序,其中,控制任务的至少两个程序分别具有包括工作包的至少一个并行处理节段,并且工作包包括多个子任务。为相应程序中的并行处理节段指派具有预设优先级的优先权。优先权管理器构造成,一旦程序在并行处理节段上执行,相应的优先级被加入数据结构存储器中的数据结构中,并且同时将具有最高优先级的条目设置到数据结构的条目的第一位置。至少一个并行处理器内核构造成检查在数据结构存储器中的数据结构是否存在优先级的条目并且如果存在条目,处理相应程序的工作包中的子任
务,其优先级位于数据结构中的条目的第一位置。控制机构构造成,在程序周期期间连续地评估控制任务的预期的计算量。此外优先权管理器设计成,动态地调节相应程序的并行处理节段的其中至少一个优先级,由此提高控制任务的计算量。
29.可编程的控制装置通常形成自动化系统的基础并且目前具有复杂的计算和调节功能,其要求功率强大的硬件和高效的软件来实现。在此高的计算功率可基于同时使用多个处理器内核,以便高效地运行系统和最佳地加载现有资源。由此设计的sps能够遵循程序的最终期限并且还可确保实时数据处理。用于在sps上优化数据处理的方法可为用于sps的这种高效软件,以便最佳地利用现有的处理器内核,其中控制任务的程序可在多个处理器内核上分布地执行。如果程序并行化地在至少一个并行处理器内核上执行,则基于为程序的相应并行处理节段指派的优先级会产生,该程序通过具有并行处理节段的更高优先级的其他程序被中断。sps的控制任务的程序的中断通常是不期望的,因为其降低了控制任务的计算量。此外,其延长了程序的总执行时间,因为程序的中断时间以加法作用到程序的纯计算时间上。就此有利的是,在该程序周期期间在具有并行处理节段的程序中断时,可通过sps的控制机构的优先权管理器动态地调节该程序的并行处理节段的至少一个优先级的值。在此,sps的控制机构用于求得和评估控制任务的预期计算量。控制机构还可在以这种方式通过可能地调节程序的并行处理节段的至少一个优先级的值提高计算量时触发sps的优先权管理器来调节相应程序的并行处理节段的至少一个优先级的值。必要时,sps的控制机构在程序周期时间短时决定,程序的子任务是否应纯粹顺序地执行,而不是在程序的可能与中断子任务计算相关联的并行处理节段中执行。在其他情况下可通过并行化使得程序的总执行时间比程序的子任务在没有中断时顺序被处理的情况中更慢。
30.此外,在评估计算量时控制机构可同时考虑利用至少一个并行处理器内核的计算功率并且使得不应顺序地在相应的主处理器内核上执行的需并行执行的程序通过至少一个并行处理器内核执行。sps的控制机构通知优先权管理器,其应调节程序的并行处理节段的至少一个优先级的值,例如如果先前是最小的情况则提高程序的并行处理节段的至少一个优先级的值。
31.可编程的控制装置和用于优化数据处理的方法可灵活且通用于自动化系统的不同任务。例如sps可由传感器数据生成对于自动化系统的品质确保/控制重要的数据。如果传感器例如以摄像机的形式实现,则可借助该摄像机评估制造构件的品质。在这种情况下,sps没有生成执行器数据作为结果,而是评估构件质量例如作为有缺陷或良好。sps还可借助用于优化数据处理的方法转变成运输系统,其中要求,借助模块可在模块化导轨上操控并且定位运输组件。因为运输组件可分别定位,可并行化用于运输组件的计算并且分配到多个处理器内核上执行。sps以及上述方法在此可有助于高效地利用处理器内核的计算功率,借助计算提供运输组件的定位的高度可靠性并且通过sps的灵活使用性使得低成本地实现。
32.在另一实施方式中,优先权管理器构造成,在中断处理程序的子任务时调节相应程序的并行处理节段的至少一个优先级。优先权管理器可直接在中断处理该程序的子任务时在程序周期内调节至少一个优先级的值,以避免为还等待的子任务继续中断该程序。同样地,优先权管理器能够为下一程序周期调节程序的并行处理节段的至少一个优先级的值。
33.在另一实施方式中,优先权管理器设计成,在该子任务由于在至少一个并行处理器内核上的具有更高优先级的另一程序的其他子任务被中断时,调节相应程序的并行处理节段的至少一个优先级。优先权管理器可为在至少一个并行处理器内核上的中断的子任务调节相应程序的并行处理节段的至少一个优先级的值,以便防止继续中断在该至少一个并行处理器内核上的子任务并且在此实现用于还等待的子任务的尽可能低的管理事务。因为在每次中断子任务时,必须传输由至少一个并行处理器内核计算的中间结果并且存储在中间结果存储器上。在每次中断时,优先权管理器还重新排列数据结构中的优先级的条目。在每次继续中断的子任务时,至少一个并行处理器内核必须重新访问中间结果存储器并且将存储的中间结果作为继续处理子任务的起始点。由此应尽可能少地中断子任务,以便生成控制任务的较高的计算量并且以这种方式降低程序和子任务的总执行时间。
34.另一实施方式是,优先权管理器构造成,在调节相应程序的并行处理节段的至少一个优先级时考虑额外的条件,尤其控制任务的实时条件。优先权管理器使得数据结构中的优先级条目的值协调以及动态调节该值并且简单地与至少一个并行处理器内核通信。此外,借助优先权管理器可确保自动化系统的实时性,因为优先权管理器以如下方式调节相应程序的并行处理节段的至少一个优先级的值,使得在任何情况下都遵循该程序的最终期限。优先权管理器调节至少一个优先级的计算量,由此提高控制任务的计算量。控制机构在此可在一个程序周期期间连续地评估控制任务的计算量并且根据计算量的评估激活优先权管理器以调节相应程序中的并行处理节段的至少一个优先级的值。
35.另一实施方式是,优先权管理器构造成,该程序的子任务由于在至少一个并行处理器内核上具有更高优先级的另一程序的其他子任务而被中断时,相应程序的并行处理节段的至少一个优先级的值降低一个因数。优先权管理器可设计成,使得相应程序的并行处理节段的至少一个优先级的值降低一个因数。例如在每次中断相应程序的子任务时直接在该程序周期期间可将相应的程序的并行处理节段的至少一个优先级的值降低一半。替代地,也可想到以更小的因数调节相应的程序的并行处理节段的至少一个优先级的值。此外,可以不同的方式为每个程序周期调节相应程序的并行处理节段的至少一个优先级的值。例如无需将相应程序的并行处理节段的至少一个优先级的值为每个程序周期都保持不变。优先权管理器可在通过控制机构所进行的评估计算量之后调节相应程序的并行处理节段的至少一个优先级的值。因为控制机构在一个程序周期期间连续地评估计算量,优先权管理器可在每个程序周期内并且为每个新的程序周期动态地调节优先级的值。
36.在另一实施方式中,优先权管理器设计成,在相应的程序中可顺序地执行该程序的子任务时,将相应的程序的并行处理节段的至少一个优先级设置为最小的值。优先权管理器可将相应的程序的并行处理节段的至少一个优先级的值设置成最小的值。如果优先权管理器将相应的程序的并行处理节段的至少一个优先级的值设置成最小的可能的值,则在对应的程序中顺序地处理对应的子任务。因为优先级的最小值意味着,子任务无需强制性的并行处理就可遵循该程序的最终期限,这不是至少一个并行处理器内核刚好没有处理其他的子任务,而是子任务也可顺序地通过对应的程序处理。在并行处理节段中频繁地中断子任务的计算时也可想到该实施方式,因为优先权管理器可使得程序的并行处理节段的优先级的值相同地下降,使得在至少一个并行处理器内核上在中断计算之后然后在对应的程序中继续处理子任务。以这种方式还可降低管理事务。
37.在上面示出的实施方式中,通过优先权管理器可将程序的并行处理节段的至少一个优先级的值有针对性地设置到最小值,由此顺序地在对应的程序中处理该程序的子任务,因为其无需强制性的并行化。但是可直接地在中断处理该程序的并行处理节段的子任务之后在该程序周期期间通过优先权管理器减小该程序的并行处理节段的至少一个优先级的值。无论如何,在这种情况下,如果该程序的并行处理节段的子任务的处理在先前的程序周期中被中断,对于新的程序周期来说,进一步减小该程序的并行处理节段的至少一个优先级的值是有利的。但是为了不要对于每个程序周期都降低至少一个优先级的值,可经由额外的条件、例如可通过使得新的程序周期的至少一个优先级的值至少相应于预设的至少一个优先级的一半的值实现的额外条件确保,该程序的至少一个优先级的值没有不期望地设置到最小值。
38.另一实施方式是,优先权管理器构造成,在开始新的程序周期时将相应的程序的并行处理节段的至少一个优先级重置为预设的值。优先权管理器可如所述地,使得相应的程序的并行处理节段的至少一个优先级的值动态地与每个程序周期匹配。因此在本文中,优先权管理器能够为新的程序周期将相应的程序的并行处理节段的至少一个优先级的值再次重置到预设的优先级的值。通过优先权管理器调节相应的程序的并行处理节段的至少一个优先级的值具有的优点是,其暂时地进行并且可再次返回。
39.在另一实施方式中,优先权管理器设计成,如果程序的子任务先前顺序地在对应的程序中执行,在开始新的程序周期时提高相应程序的并行处理节段的至少一个优先级。优先权管理器也能够提高控制任务的相应的程序的并行处理节段的至少一个优先级的值,借此可在另一工作包的其他子任务之前处理对应的子任务并且可处理在至少一个并行处理器内核上的程序。在先前在对应的程序中顺序地处理子任务时可想到该实施方式。借助该实施方式可避免控制任务的过多程序某时具有程序的并行处理节段的至少一个优先级的最小值并且纯粹顺序地执行该程序。如果该程序纯粹顺序地在主处理器内核上执行,这必要时可造成不再完全地利用并行处理器内核的可用计算功率,这随后造成控制任务的总计算量降低。
40.另一实施方式是,优先权管理器构造成,根据进行的对至少一个优先级的调节改变在数据结构存储器中的数据结构中的优先级条目。此外,优先权管理器构造成,通知至少一个并行处理器内核关于在数据结构中的优先级条目的变化的信息。优先权管理器一方面承担动态地调节相应的程序的相应的并行处理节段的至少一个优先级的值并且另一方面还可通知至少一个并行处理器内核关于调节数据结构中的至少一个优先级的值的信息。
41.另一实施方式是,优先权管理器构造成,可在控制任务的多个程序上分布地执行。优先权管理器是控制机构的组成部分,优先权管理器例如可包括多个模块(例如软件模块),其中,优先权管理器的各个模块(例如软件模块)可在控制任务的多个程序中执行。还可想到的是,优先权管理器仅具有唯一的中央模块(例如软件模块),该中央模块在控制任务的多个程序中的其中一个中执行。还可想到的是,优先权管理器可实现为独立的程序或作为一个或多个外部的硬件模块。
42.前面所述的和/或在从属权利要求中呈现的本发明有利的构造方式和改进方案除了例如在唯一相关性或不可协调的替代方案的情况下之外可单独地应用以及彼此任意组合地应用。
附图说明
43.上面描述的本发明的特性、特征和优点以及如何实现其的方式与下面对结合示意图详细描述的实施例相结合来更好地且更明确地理解。其中示出:
44.图1示出了自动化系统的根据本发明的实施方式的示意图,自动化系统包括可编程的控制装置(sps);
45.图2示出了用于创建具有子任务的工作包以及在根据图1的sps内管理优先级的简图;
46.图3示出了用于在根据图1和图2的sps上优化数据处理的方法的简图;以及
47.图4示出了用于动态地匹配根据图3的程序的并行加工节段的优先级的流程图。
具体实施方式
48.根据以下附图描述用于在可编程的控制装置(sps)上优化数据处理的方法的实施例。需要指出的是,附图仅是示意性的并且不是按尺寸比例示出。在此为了更好的理解,在附图中示出的部件和构件可能经过放大或缩小示出。此外指出的是,在附图中的附图标记选择为,在涉及相同构造的构件和/或部件和/或变量时不变。
49.可编程的控制装置(sps)通常形成自动化系统的基础并且用于控制或调节设备或机器。在此经由传感器和执行器操控sps或设备或机器。传感器和执行器可经由通信端口与机器或设备互联,其中,sps使用通信端口,以与传感器和执行器相互作用。sps的数据处理大多是周期的并且通过sps、具体而言通过控制任务要求顺序地遵循最后期限。在本文中例如不允许在需要执行器的输出数据的时间点还未完成输入数据的处理。即控制任务必须能够确保自动化系统的实时性。
50.大多情况下,sps的控制任务由周期执行的具有任务“task”的一个或多个程序组成。因为多个sps包括具有例如可实现为主处理器内核和/或并行处理器内核的多个处理器内核的处理器和/或多个处理器,sps可将具有任务(task)的程序分配到多个处理器内核和/或多个处理器上,以便降低具有任务的程序的总处理时间并且可靠地遵循程序的最后期限。如果并行地处理多个处理器内核(主处理器内核和并行处理器内核)的程序的任务,则有利的是,可为处理预设的优先级对程序的任务进行分类。由此通常为具有相应任务的每个程序指派预设的优先级。该预设的优先级可由最后期限和/或在该程序例如指示到另一程序的结果时由相应程序与另一程序的相关性获得。
51.具有任务的相应程序的优先级在数据结构中通过优先权管理器来安排。优先权管理器将优先级的条目存储在数据结构中。如果在数据结构中没有优先级的其他条目,优先权管理器将所述优先级设置在数据结构中的第一位置处。此外,优先权管理器可构造成,在数据结构中优先级条目顺序改变时通知并行工作的处理器内核。例如在数据结构中加入优先级的新条目时,顺序可改变,其中,此时优先级可具有比至此为止条目的优先级更高的值。在这种情况下,并行处理器内核中断相应程序的当前任务的处理并且开始处理对应于相应程序的更高优先级的任务,以便遵循其最终期限。相应程序的任务可存储在具有子任务的多个工作包中。
52.在程序周期期间连续地评估控制任务的预期计算量。根据该评估可决定,当通过匹配并行处理节段的至少一个优先级的值而提高控制任务的计算量时,动态地匹配控制任
务的相应程序的并行处理节段的至少一个优先级。控制任务的预期计算量与程序的并行处理节段的中断次数相关,因为程序的并行处理节段的中断次数引起管理事务。管理事务表示在控制任务的程序中中断并行处理节段中的子任务的处理所需的活动,例如传输和保存中间结果。因此,并行处理节段的处理中断导致更多的管理事务。对于计算量来说,程序的中断持续时间是重要的,因为在该程序的并行处理节段的子任务的处理中断期间没有进行计算,而是执行上述活动。因此,中断持续时间延长了程序的执行时间,因为中断持续时间添加到程序的实际计算时间上并且其通常是预设的。此外,在程序计算中断时中断持续时间随并行处理节段的时间而变化。因此,目标是将管理事务保持为尽可能低并且动态地调节至少一个优先级的值,以便降低该程序计算中断的频率并且进而提高计算量。
53.此外控制任务的预期计算量与至少一个并行处理器内核的使用的计算功率相关。如果在相应的主处理器内核上纯粹按顺序执行程序,例如其中为程序指派程序的并行处理节段的至少一个优先级的最小值,则会发生至少一个并行处理器内核刚好没有执行主动计算或仅是有限主动的。这降低了控制任务的计算量,因为没有或没有完全地利用至少一个并行处理器内核的计算功率。在这种情况下,可调节、例如提高程序的并行处理节段的至少一个优先级的值,使得在至少一个并行处理器内核上并行地执行程序并且最好地利用现有处理器内核的计算功率。
54.此外,在评估控制任务的预期计算量时一并考虑程序的并行处理节段的计算时间。因为包括较短程序周期时间的子任务可能在没有并行化的情况下比相应的在程序中的并行处理节段更快地纯粹顺序执行。相应程序的并行处理节段可针对具有更高的对应优先级的另一程序的另一并行处理节段被中断。因为可任意频繁地通过具有并行处理节段的其他程序触发该并行处理节段的中断,可能会出现通过其他程序的其他并行处理节段中断的程序的总执行时间比没有并行化的情况更长。在这种情况下可想到的是,纯顺序地执行具有子任务的程序,以便以这种方式实现相应程序的更短的执行时间并且提高计算量。
55.本发明的核心在于,能够动态地调节控制任务的相应程序的并行处理节段的至少一个优先级的值。因为通过动态地调节相应程序的并行处理节段的至少一个优先级的值可灵活地决定,相应程序的子任务是否应该顺序地在对应的主处理器内核上或额外地在至少一个并行处理器内核上在程序的相应并行处理节段中处理。以这种方式可提供资源的最佳利用,即主处理器内核和并行处理器内核共同地完成相应程序的子任务。控制任务的实时性可通过调节控制任务的相应程序的并行处理节段的优先级的值来进一步确保,其中始终调节优先级的值,使得可遵循控制任务的实时性和程序的最终期限。
56.图1示出了用于控制机器或设备200的可编程的控制装置(sps)100。sps 100具有通信端口130以及数据处理机构110。sps 100可经由例如以基于硬件和/或软件构造的现场总线系统的形式实现的通信端口130控制自动化系统的机器或设备200的相应的执行器210和传感器220,其中,执行器210和传感器220可借助现场总线系统彼此互连。
57.为了能提供机器或设备200的期望运行方式,sps 100的控制任务确定,将哪些由sps100根据相应的输入数据产生的输出数据被输送给执行器210。sps 100获得关于机器或设备200的状态的信息,其中sps读取相应与sps 100的输入端连接的传感器220的测量数据和/或执行器210的实际数据。传感器220可产生用于检测测量变量的电信号或者测量变量本身以模拟或数字方式进行。执行器210连接在sps 100的输出端并且将sps 100的输出数
据的电信号转变为机械运动或其他的物理变量(例如温度、压力等)。
58.执行器210的动态操控首先基于读取执行器210的当前实际数据。基于执行器210的实际数据和传感器220的测量数据可由输入数据产生用于执行器210的输出数据。对此替代地,可基于规定、例如根据运动曲线来操控执行器210。
59.数据处理机构110可包括多个处理器内核,其中,在图1中示例性地示出了第一主处理器内核111和第二主处理器内核112以及第一并行处理器内核113和第二并行处理器内核114。也可想到数据处理机构110具有不同数量的主处理器内核和/或并行处理器内核的设计方案。具有第一主处理器内核111和第二主处理器内核112以及第一并行处理器内核113和第二并行处理器内核114的数据处理机构110的设计优点是,可根据下面的描述将sps 100的控制任务的相应程序的待处理的子任务分配到两个主处理器内核111、112和两个并行处理器内核113、114上。由此可降低计算时间并且额外地确保资源的最佳利用。
60.控制任务的多个可执行的程序的其中至少两个具有并行处理节段,控制任务的多个可执行的程序例如可在第一和第二主处理器内核111、112上执行,其中,第一并行处理器内核113和第二并行处理器内核114如上所述在处理控制任务的程序的相应并行节段中的子任务时可起辅助作用。控制任务例如可由在sps 100内执行的程序周期组成,其中,程序周期包括接收输入数据(传感器220的测量数据和执行器210的当前实际数据)、将输入数据处理成用于执行器210的输出数据以及输出用于执行器210的输出数据。在完成处理之后、即结束该程序周期之后,重新开始控制任务的程序周期。
61.与根据本发明的控制任务的程序周期不同,现场总线周期除了上述程序周期步骤以外,还包括经由现场总线将传感器220或执行器210的输入数据传输给sps 100。在程序周期中在sps 100内生成的输出数据在现场总线周期中还经由现场总线传递给执行器210,由此执行器210可根据接收的输出数据进行处理。
62.在程序中的需要并行化且通过多个处理器内核处理的子任务可分别配备给第一主处理器内核111的程序中或第二主处理器内核112的程序中的至少一个并行处理节段。可为在第一主处理器内核111和第二主处理器内核112的相应程序中的并行处理节段指派具有预设的第一优先级和预设的第二优先级的优先权,其中,第一优先级和第二优先级通过控制机构120的优先权管理器350来安排。优先权管理器350首先用于管理数据结构中的第一和第二优先级并且用于调节程序的对应的并行处理节段的相应优先级的值。数据结构还可具有能通过程序在两个主处理器内核111、112和两个并行处理器内核113、114上调取的方法。在第一主处理器内核111例如涉及程序中的并行处理节段时,其从优先权管理器350的数据结构调取“添加我的子任务”方法。在该方法中,可随后将子任务整理到数据结构中并且优先权管理器350可设计成,如果该方法的子任务与更高的优先级关联,告知第一和第二并行处理器内核113、114关于在数据结构中的更高的新条目或优先级条目顺序改变的信息,其中,在第一主处理器内核111上执行该方法。然后,两个并行处理器内核中断其对当前子任务的处理、整理中间结果并且然后从优先权管理器350的数据结构中调取“保存我的中间结果”方法。在该方法中,在需要时也可调节数据结构中的对应子任务的优先级。这意味着,分别在第一和第二并行处理器内核113、114上执行该方法。
63.通常不需要使得优先权管理器350告知第一和第二主处理器内核111、112或需要在两个主处理器内核111、112上执行的程序关于至少一个优先级的值改变的信息。因为第
一和第二主处理器内核111、112始终处理属于其的子任务,即使这些子任务没有处于数据结构中与该子任务关联的优先级条目的首位。这意味着,两个主处理器内核111、112与两个并行处理器内核113、114的辅助无关地处理属于其的子任务。而在第一和第二主处理器内核111、112上纯顺序地处理子任务体现出第一和第二并行处理器内核113、114的差异。因为在第一和第二并行处理器内核113、114从优先权管理器350的数据结构中调取“给我新的子任务”方法并且仅存在与该程序的并行处理节段的优先级的最小值关联的子任务,因此在第一和第二主处理器内核111、112上设置纯顺序处理,由此两个并行处理器内核113、114获得“没有子任务可用”作为答复。为了简单,下面取消了优先权管理器350的数据结构的各个方法的描述。因此,上述方法以及其他的用于实现根据本发明的方法的数据结构的方法都可应用在下面的附图中。
64.优先权管理器350可以多个模块的形式(例如软件模块)分配地在多个程序上执行。也可想到的是,将优先权管理器350实现为程序中的独立模块(例如作为软件模块),第一并行处理器内核113和第二并行处理器内核114都可访问该程序,以便在处理子任务时辅助第一主处理器内核111和第二主处理器内核112。此外,可想到的是,将优先权管理器350实现为独立的程序或一个或多个外部的硬件模块。
65.还在第一主处理器内核111和第二主处理器内核112的程序中的并行处理节段中创建第一工作包和第二工作包。第一工作包包括第一数量的子任务并且第二工作包包括第二数量的子任务。可根据所属的并行处理节段的第一和第二优先级通过第一主处理器内核111和第二主处理器内核112或第一并行处理器内核113和第二并行处理器内核114处理第一数量的子任务和第二数量的子任务。
66.可能的是,一个程序包括多个顺序处理节段以及多个并行处理节段,其中,该程序的顺序处理节段不同于并行处理节段不可分成具有子任务的工作包并且必须通过优先权管理器管路。因为该程序的具有无需并行化的顺序处理节段可在相应的主处理器内核111、112上在没有第一和第二并行处理器内核113、114辅助的情况下执行。一个程序的顺序的和并行处理节段可交替地出现。此外,可仅顺序地执行程序。顺序处理节段或需要顺序执行的程序可具有顺序的优先级,该优先级适用于顺序处理节段或控制任务的整个程序。此外,顺序的优先级与控制任务的程序是否具有并行处理节段无关。这些任务可纯粹顺序地在该程序的顺序处理节段中或相应主处理器内核111、112的需要顺序执行的程序中处理。
67.在本文中可想到的是,可在唯一的主处理器内核111、112上执行控制任务的多个程序,其中,在此顺序的优先级是重要的。程序的顺序的优先级可与为相应程序配备的并行处理节段的优先级不同。例如由此能够在并行处理器内核113、114上执行相应程序的并行处理节段的一个工作包的子任务并且同时可通过一个主处理器内核111、112顺序地处理无需并行化的任务。如果无需并行化通过更高优先权的需要顺序执行的程序(具有无并行化的任务)或一个程序的顺序处理节段(具有无并行化的任务)在主处理器内核111、112上中断任务的顺序处理,可在第一和第二并行处理器内核113、114上基本上无间断地进行相应工作包的子任务的并行处理,因为可为相应程序中的并行处理节段指派相对于顺序优先级单独的优先级。
68.因此不仅在并行处理器内核113、114上并行处理子任务的情况下,而且在一个主处理器内核111、112上无并行化地顺序处理任务的情况下可通过较高优先权的其他子任务
中断当前的子任务。在具有唯一的主处理器内核111、112的所述实施方式中在程序周期期间或对于新的程序周期可通过优先权管理器350调节控制任务的相应程序的并行处理节段的优先级的值。
69.图2示出了用于创建具有子任务的工作包和在根据图1的sps内用于管理优先级的简图600。sps的控制任务的多个可执行的程序例如可在第一和第二主处理器内核111、112上执行,其中,控制任务中的至少两个程序分别具有至少一个并行处理节段。具有附图标记500的箭头表示在第一主处理器内核111的并行处理节段开始时创建第一工作包305。第一工作包305包括第一数量的子任务320,其在示出的示例中由第一子任务321、第二子任务322、第三子任务323和第四子任务324组成。第一工作包305还包括对第一主处理器内核111的并行处理节段的第一优先级340的引用。借助具有附图标记505的箭头示出了将对第一主处理器内核111的并行处理节段的第一优先级340的引用传输给优先权管理器350。优先权管理器350将第一优先级340加入数据结构355中并且将数据结构355存储在控制机构的数据结构存储器中,在附图中未示出数据结构存储器。如果数据结构355没有条目,则优先权管理器350将对第一优先级340的引用加入到数据结构355的优先级条目的第一位置上。
70.具有附图标记510、515的箭头示出了第一和第二并行处理器内核113、114向优先权管理器350查询,哪个优先级条目在数据结构355中的条目第一位置处。例如数据结构355中的优先级的第一条目可为对第一主处理器内核111的第一优先级340的引用。因为第一优先级340涉及第一主处理器内核111的并行处理节段,第一并行处理器内核113和第二并行处理器内核114访问到与其对应的第一工作包305上。第一和第二并行处理器内核113、114对第一工作包305的访问通过具有附图标记520、525的箭头示出。
71.第一并行处理器内核113例如可向第一工作包305查询,是否有空闲的第一至第四子任务321

324,其还未另外分配。第一并行处理器内核113的查询借助具有附图标记520的箭头示出。例如,这可为第一子任务321,其被指派给第一并行处理器内核113以进行处理。第一子任务321目前还不可用于分配,以能够避免同一子任务的多次分配。可以这种方式为第二并行处理器内核114例如指派第二子任务322。第一和第二并行处理器内核113、114的第一和第二子任务321、322的并行执行借助附图标记360和围绕第一和第二并行处理器内核113、114的方框示出。第一主处理器内核111可在并行处理节段期间在程序中也顺序地处理子任务,因此其也向第一工作包305查询用于处理的空闲的第一至第四子任务321

324。第一主处理器内核111的查询经由具有附图标记530的箭头示出。例如可为其指派第三子任务323。
72.一旦第一主处理器内核111或两个并行处理器内核113、114中的其中一个完全处理完其第一至第三子任务321

323,留下的第四子任务324如上所述可被指派。有一个实施例用于第一至第四子任务321

324在第一主处理器内核111和第一和第二并行处理器内核113、114上的分配。也可想到的是,将第一至第四子任务321

324以其他方式分配到第一主处理器内核111和第一与第二并行处理器内核113、114上。
73.如果第二主处理器内核112到达其程序中的并行处理节段处,则其创建具有第二数量子任务330的第二工作包310,第二数量的子任务在实施例中由第五子任务331、第六子任务332和第七子任务333组成。创建第二主处理器内核112的第二工作包310借助具有附图标记535的箭头示出。第二工作包310还包括对第二主处理器内核112的程序中的并行处理
节段的第二优先级345的引用。第二主处理器内核112还将对第二优先级345的引用传输给优先权管理器350。对第二优先级的引用的传输用具有附图标记540的箭头示出。优先权管理器350将对第二优先级345的引用根据其数值分配到数据结构355中的优先级条目的第二位置或数据结构355中的优先级条目的第一位置处。如果在数据结构355中的优先级条目的第一位置处先前已经存在另一条目,则其对于第一优先级340低于新条目的第二优先级345的情况通过优先权管理器350设置数据结构355中的优先级条目的第二位置并且在数据结构存储器中存储数据结构355的条目。
74.如果在数据结构355中的优先级条目的顺序改变,则优先权管理器350通知第一和第二并行处理器内核113、114。该过程伴随有当前通过第一并行处理器内核113和/或第二并行处理器内核114处理的由第一数量子任务320组成的第一、第二以及可能的第四子任务321、322、324中断。计算的中间结果可传输给图1中示出的控制机构120并且存储在未示出的中间结果存储器中。如果中断的第一、第二以及可能的第四子任务321、322、324应在并行处理器内核113、114上继续处理,第一和第二主处理器内核111、112以及第一和第二并行处理器内核113、114可在中间结果存储器上访问。
75.在第一主处理器内核111继续顺序处理由第一工作包305的第一数量子任务320组成的第三子任务323期间,第一并行处理器内核113和第二并行处理器内核114以及第二主处理器内核112向第二工作包310查询第二数量子任务330组成的第五至第七子任务331

333。相应处理器内核的查询借助具有附图标记545、550、555的三个箭头示出。例如可将第五子任务331指派给第一并行处理器内核113并且将第七子任务333指派给并行处理器内核114。第七子任务332可在此期间通过第二主处理器内核112顺序处理。为了将第五至第七子任务331

333分配到第一和第二并行处理器内核113、114和第二主处理器内核112上,也可想到与示出示例不同的第五至第七子任务331

333的分配。
76.两个并行处理器内核113、114不是必须等待直到第二主处理器内核112的该程序的并行处理节段的较高优先权的第二工作包310中的第五至第七子任务331

333已经处理完成。如果第一并行处理器内核113例如已经完全处理了其第五子任务331,而第二并行处理器内核114还在处理第二工作包310的第七子任务333并且第二主处理器内核112在处理第六子任务332,由此第一并行处理器内核113可已经开始处理第一工作包305的先前中断的第一至第四子任务321

324中的其中之一,该子任务与较低的优先级关联。如果第一并行处理器内核113在处理其第五子任务331之后向第二工作包310查询空闲的子任务,但是刚好在第二工作包的第一位置不再有空闲的子任务,这是可能的,其中,两个工作包305、310也可为数据结构355的一部分。此时第一并行处理器内核113可以加工第一工作包305中的第一至第四子任务321

324中的其中之一开始,由此可最佳地利用第一并行处理器内核113的计算性能。这意味着,可避免开始加工两个并行处理器内核113、114的第一至第七子任务321

324、331

333的不必要的等待时间。
77.在通过第一和第二并行处理器内核113、114重新处理第一工作包305的第一和第二子任务321、322时,可将第一工作包305中的第一和第二子任务321、322分配到第一和第二并行处理器内核113、114上,例如类似于所述实施例进行,即第一并行处理器内核113获得第一工作包305的第一子任务321并且第二并行处理器内核114分配有第二子任务322。两个并行处理器内核113、114在中间结果存储器上访问,边能够将第一和第二子任务321、322
的中间结果用于继续加工所述子任务。
78.如果完全地完成了上述处理器内核的由第二数量子任务330构成的第五、第六和第七子任务331、332、333,则相应的第二工作包310将这通知给优先权管理器350,由此优先权管理器350从数据结构355中的优先级条目中移除对第二优先级345的相应引用。
79.因为第一主处理器内核111继续加工第一工作包305的第三子任务323,而第一并行处理器内核113处理第二工作包310中的第五子任务331并且第二并行处理器内核114处理第七子任务333,可使得第一主处理器内核111在并行处理器内核113、114完全处理其指派的第五和第七子任务331、333的时间中也完全结束对第三子任务323的处理。然后,第一主处理器内核111可向第一工作包305查询留下的第三子任务324并且对其进行处理,而并行处理器内核113、114重新处理第一和第二子任务321、322。第一主处理器内核111向第一工作包305的查询经由具有附图标记530的箭头示出。
80.如果第一、第二和第四子任务321、322、324已经完全通过第一和第二并行处理器内核113、114以及第一主处理器内核111处理完,此外第三子任务323已经通过第一主处理器内核111完成,则对应的第一工作包305将第一至第四子任务321

324完成报告给优先权管理器350,由此优先权管理器从数据结构355中的优先级条目中除去对第一优先级340的引用。还可想到的是,优先权管理器350本身向第一和第二工作包305、310查询,是否已经完成由第一和第二数量子任务320、330组成的第一至第七子任务321

324、331

333,然后必要时从数据结构存储器中的数据结构355中除去对第一和第二优先级340、345的相应引用。
81.一旦第一和第二主处理器内核111、112在并行处理节段中从其相应的工作包305、310要求另外的第一至第七子任务321

324、331

333,但是没有未经处理的第一至第七子任务321

324、331

333可用时,第一和第二主处理器内核111、112等待直至并行处理器内核113、114结束当前还执行的第一至第七子任务321

324、331

333的处理。然后离开第一和第二主处理器内核111、112的相应的并行处理节段并且删除第一和第二工作包305、310。然后第一和第二主处理器内核111、112可执行任意的其他(非并行化的)计算,例如基于先前并行处理节段的结果。
82.通过将单个的第一至第七子任务321

324、331

333分配到第一和第二主处理器内核111、112和第一和第二并行处理器内核113、114上,可降低第一至第七子任务321

324、331

333的总处理时间并且最佳地利用了计算容量。此外,遵循了程序的最终期限并且确保了控制任务的实时性,其中考虑到第一和第二主处理器内核111、112的程序的相应的并行处理节段的第一和第二优先级340、345。因为借助第一和第二优先级340、345,在另外的由第二数量子任务330组成的第五至第七子任务331

333被分配更高的第二优先级345时,为了另外的由第二数量子任务330组成的第五至第七子任务331

333中断由第一数量子任务320组成的第一至第四子任务321

324的处理。也可想到的是,由于第一数量子任务320的第一至第四子任务321

324具有更高优先权和第一优先级而中断由第二数量子任务组成的具有第二优先级345的第五至第七子任务331

333的处理。由第一和第二数量子任务320、330组成的中断的第一至第七子任务321

324、331

333可继续处理。因为对第一和第二优先级条目340、345的引用保留在数据结构存储器中的数据结构355中,只要第一和第二工作包305、310的由第一和第二数量子任务320、330组成的相应的第一至第七子任务321

324、331

333没有完全处理完成。
83.在一种实施方式中,具有第一和第二数量子任务320、330的第一和第二工作包305、310以及对第一和第二优先级340、345的引用在开始执行相应程序时就通过第一和第二主处理器内核111、112创建。也可想到的是,在另一并行处理节段开始时,在第一主处理器内核111和/或第二主处理器内核112的程序中分别创建新的工作包。
84.但是在相应程序的并行处理节段中中断第一至第七子任务321

324、331

333的处理时通常不可确定,哪些数据对于在中断之后继续相应程序中的所述子任务是重要的,因为在该程序的执行时间期间可在相应程序的任意位置处中断第一至第七子任务321

324、331

333。就此而言,在第一至第七子任务321

324、331

333中没有设置直至继续第一至第七子任务321

324、331

333的处理并且然后中断的相应中断点时,该实施方式要求存储在处理相应程序中的并行处理节段中的第一至第七子任务321

324、331

333时创建或处理的所有数据。因为借助例如可在控制结构中在第一至第七子任务321

324、331

333中设置的预设中断点可得知,在继续中断的第一至第七子任务321

324、331

333时需要哪些数据。在设置中断点的情况下,无需存储所有数据,而是存储当前的控制结构迭代以及可能存在的计算中间结果就足够,迭代可为闭环。
85.另一实施方式是,立即中断相应程序的并行处理节段中的第一至第七子任务321

324、331

333在第一和第二并行处理器内核113、114上的处理并且同时没有存储计算的中间结果。因此再次重新计算中断的第一至第七子任务321

324、331

333。在两个并行处理器内核113、114上在没有存储数据的情况下立即断开当前执行的第一至第七子任务321

324、331

333例如可在第一或第二主处理器内核111、112具有程序周期时间非常小的并行处理节段且需要并行化时使用,以便可遵循最终期限。在此有利的是,借助该设计可实现尽可能最小的等待时间,其中,该等待时间表示中断在并行处理器内核113、114上的当前第一至第四子任务321

324(第五至第七子任务331

333)的计算和开始在并行处理器内核113、114上的新的第五至第七子任务331

333(第一至第四子任务321

324)的计算之间的时间,新的第五至第七子任务与较高的优先级相关联。这种实施方式实现了尽可能低的等待时间,因此舍弃了具有低的优先级的第一至第七子任务321

324、331

333的中间结果。
86.代替中断当前执行的第一至第四子任务321

324,还可想到的是,将第一至第四子任务321

324处理直至结束并且将具有相应并行处理节段的较高优先级的新的第五至第七子任务331

333设置到优先权管理器350的数据结构355中,但是在此无需中断当前第一至第四子任务321

324的处理。如果新的第五至第七子任务331

333被分配比当前第一至第四子任务321

324更高优先级,并行处理器内核113、114以这种方式没有强制性地立即中断其计算或中断计算。因为一旦两个处理器内核113、114已经完成处理其当前的具有较低优先级的第一至第四子任务321

324,其在经由传统路径查询下一子任务时被指派新的较高优先权的第五至第七子任务331

333。例如该设计方案可在第一工作包305和第二工作包310中的第一至第七子任务321

324、331

333相对小并且因此可通过处理器内核立即处理时使用。该设计方案的优点是,无需中断或断开在两个并行处理器内核113、114上的第一至第七子任务321

324、331

333,计算量最大。
87.中断当前处理的第一至第七子任务321

324、331

333并且在中间结果存储器上存储其中间结果的实施方式可相应于在等待时间和计算量之间的良好折中。可使得上述不同的中断、立即断开或合适加入第一至第七子任务的设计方案彼此组合并且根据情况合适实
施。
88.在一种实施方式中,优先权管理器350可主动地通知第一和第二并行处理器内核113、114关于数据结构355中第一或第二优先级340、345的第一条目改变的信息。由此第一和第二并行处理器内核113、114可分别直接向相应的第一或第二工作包305、310查询空闲的第一至第七子任务321

324、331

333并且提前开始其处理。查询相应的并行处理器内核113、114借助附图标记520、525、545、550示出。也可将优先权管理器350设计成,使得第一和第二并行处理器内核113、114本身主动地向优先权管理器350查询第一和第二优先级340、345的条目顺序是否有变化。第一和第二并行处理器内核113、114的查询借助具有附图标记510、515的两个箭头示出。
89.还可想到的是,第一和第二主处理器内核111、112和第一和第二并行处理器内核113、114对第一或第二工作包305、310的查询通过中央机构来控制。相应处理器内核的查询借助具有附图标记520、525、530、545、550、555的箭头示出。中央机构还可控制由第一和第二工作包305、310的第一和第二数量子任务320、330组成的第一至第七子任务321

324、331

333的任务分配。此外,中央机构用于将完成了由第一和第二工作包305、310的第一和第二数量子任务320、330组成的所有第一至第七子任务321

324、331

333的消息传递给优先权管理器350。
90.如果在第一和第二主处理器内核111、112的程序中的相应的并行处理节段的第一和第二优先级340、345具有相同的值,则第一和第二主处理器内核111、112可告知第一和第二并行处理器内核113、114并行执行360第一至第七子任务321

324、331

333。
91.至此为止的描述涉及在程序周期期间相应的程序的并行处理节段的至少一个优先级的值没有改变,因此简化了对创建工作包和访问工作包以及对程序的并行处理节段的优先级的管理的描述。控制任务的程序的相应的并行处理节段的至少一个优先级的值可通过优先权管理器针对在图1和图2示出的实施方式来调节,如在下面附图中在中断程序的并行处理节段的情况下所描述地。为了提高控制任务的计算量,在评估图1和图2(以及下面附图)的计算量时还可同时考虑控制任务的程序的相应的并行处理节段的计算时间并且纯粹顺序地在对应的主处理器内核上处理相应程序的无需强制性并行运行的子任务。此外有利的是,在评估控制任务的计算量时同时考虑两个并行主处理器内核的计算功率,并且在未完全利用其计算功率的情况下为其指派并行处理的子任务。对此可必需的是,优先权管理器合适地调节程序的并行处理节段的至少一个优先级的值。
92.图3示出了用于在根据图1和图2的sps上处理数据的方法300的简图。同样如在图1和图2中所示,第一和第二主处理器内核111、112以及第一和第二并行处理器内核113、114作为起始点。而也可想到不同数量的主和并行处理器内核。但是对于控制任务的程序的相应的并行处理节段303、304的子任务的并行实施方式375、380、385、390需要至少一个并行处理器内核。如果使用与图1至图3中所示不同数量的主处理器内核,则因此工作包的数量和子任务的数量可不同。在图3示出的实施例中,第一主处理器内核111在程序中首先到达其并行处理节段303。并行处理节段借助最上的条纹水平横梁和具有附图标记303的花括号示出。第一主处理器内核111在开始其并行处理节段303时创建具有第一至第四子任务和对分配的并行处理节段303的第一优先级的引用的第一工作包,这如上面所述。在此取消了分配相应子任务的详细描述因为其以与在图2中所述相同的方式进行。
93.第一至第四子任务可第一主处理器内核111上在相应程序的并行处理节段303中顺序地执行,这借助附图标记365示出。在第一主处理器内核111的并行处理节段303中,第一至第四子任务除了顺序执行365以外,通过第一和第二并行处理器内核113、114也进行并行执行。对第一至第四子任务的并行执行经由具有附图标记375和380的两个下部的条纹横梁示出。首先仅第一主处理器内核111的并行处理节段303的第一工作包的第一至第四子任务可用,因此可无竞争且无先前中断地通过第一和第二并行处理器内核113、114处理。
94.但是如果在程序中第二主处理器内核112到达其并行处理节段304,则中断在第一和第二并行处理器内核113、114上的先前主动处理的第一至第四子任务。中断在第一主处理器内核111上执行的程序的并行处理节段303的第一至第四子任务的处理借助附图标记366示出。中断相应程序的并行处理节段303的第一至第四子任务的处理可根据结合图2所述的方案来进行。必要时可将得出的计算中间结果传递给中间结果存储器并且存储在此处。该管理事务使得第一和第二并行处理器内核113、114中断在第一主处理器内核111上执行的程序的并行处理节段303的第一至第四子任务的处理的时间点之后不能立即开始处理在第二主处理器内核112上执行的相应程序的并行处理节段304的子任务。基于管理事务可以相应的时间延迟执行在第二主处理器内核112上执行的程序的并行处理节段304的子任务的处理。
95.第二主处理器内核112在其在相应程序中的并行处理节段304开始时创建具有第五至第七子任务和对分配的并行处理节段304的优先级的引用的第二工作包310。第五至第七子任务可在第二主处理器内核112上的相应程序的并行处理节段304中顺序地执行,这借助附图标记370示出。在第二主处理器内核112的并行处理节段304中除了顺序地执行370第五至第七子任务以外也可通过第一和第二并行处理器内核113、114并行地执行。第五至第七子任务的并行执行经由具有附图标记385、390的两个下部的点状横梁示出。在图3中假设,在第二主处理器内核112上执行的相应程序的并行处理节段304的第二优先级的值高于在第一主处理器内核111上执行的另一程序的相应并行处理节段303的第一优先级的值。该假设使得中断在第一和第二并行处理器内核113、114上的相应程序的并行处理节段303的第一至第四子任务的处理。
96.如果将示出的图3中的实施例扩展到主和并行处理器内核,则可看出,处理在并行处理器内核上的程序的相应并行处理节段的相应子任务时的中断次数会增加。而如果该程序的相应并行处理节段303、304的子任务要求在第一和第二并行处理器内核113、114上非强制性地并行执行375、380、385、390,则分配给相应并行处理节段303、304的优先级值在程序周期期间动态地调节。在具体的示例中,通过优先权管理器使得第二优先级的值可降低一个因数或立即设置到最小值,由此通过第二主处理器内核112可直接地处理相应程序的并行处理节段304的第五至第七子任务,无需中断在两个并行处理器内核113、114上的第一至第四子任务321

324的处理。减小在第二主处理器内核112上执行的程序的并行处理节段304的优先级的值的优点是,可由此避免中断在第一主处理器内核111上执行的对应程序的并行处理节段303的第一至第四子任务的处理。因此可使得管理事务最小化,其中通过优先权管理器动态地调节了程序的并行处理节段的优先级的值,由此可提高控制任务的计算量。控制任务计算量的提高可尤其有利地影响了具有高的程序的并行处理节段303、304的优先级值的程序并且例如可实现更短的最终期限。以这种方式能够提高自动化系统的机器
或设备的工作速度。
97.此外可借助优先权管理器确保自动化系统的实时性,因为优先权管理器以如下方式调节相应程序的相应并行处理节段303的优先级的值,使得在任何情况下都遵循程序的最终期限。
98.至少一个优先级的值可任意地减小。例如使得在通过优先权管理器第一次中断程序的相应并行处理节段303、304时保持优先级的值不变。在第二次中断该程序的相应并行处理节段303、304之后(未示出),优先权管理器可将对应的并行处理节段303、304的优先级的值降低一个因数。在此例如程序的相应并行处理节段303、304的优先级的值降低程度越大,具有程序的包含的子任务的相应并行处理节段303、304就更频繁地中断。
99.优先权管理器可在这些子任务由于在两个并行处理器内核113、114上的具有更高优先级的另一程序的其他子任务而被中断时调节并行处理节段303、304的优先级的值。优先权管理器可调节在两个并行处理器内核113、114上的用于中断的子任务的相应程序的并行处理节段303、304的优先级的值,以便防止在两个并行处理器内核113、114上继续中断子任务并且在此为了尽可能低的管理事务而用于相应工作包中的还等待的子任务。
100.此外,优先权管理器也可调节程序的并行处理节段303、304的优先级的值,其用于中断该程序的并行处理节段的子任务的处理。对此替代地,该优先权管理器可在相应的优先级作为条目在数据结构存储器中的数据结构中时调节相应程序的并行处理节段303、304的优先级的值并且刚好没有主动地通过两个主和并行处理器内核111

114处理对应的并行处理节段303、304中的子任务。此外,优先权管理器在通过处理器内核主动地处理程序的相应并行处理节段303、304中的子任务并且在对应的工作包中存在空闲的未处理的子任务时调节相应程序的并行处理节段303、304的优先级的值。在这种情况下,调节并行处理节段303、304的优先级的值涉及工作包的空闲子任务。
101.在调节相应程序的并行处理节段303、304的优先级的值时的优点是,其可暂时地进行。对至少一个优先级的值的动态调节无需针对整个程序周期以相同的方式进行。优先级的值例如可针对新的程序周期再次重置到预设的值并且针对另一程序周期来重新改变。在该程序周期内,该程序的并行处理节段的至少一个优先级的值可通过优先权管理器任意频繁地调节。在本文中,如果在先前程序周期中的子任务纯粹顺序地在相应程序中处理,还可针对下一程序周期提高相应程序的并行处理节段303、304的至少一个优先级的值,由此可遵循程序的最终期限或对于相应下一程序周期使得程序的相应并行处理节段的第一至第七子任务并行地执行。同时可确保,最佳地利用了两个并行处理器内核113、114的计算功率。
102.也可想到以下的实施方式,即,必须暂时执行的(例如由于程序周期时间和最终期限短)的程序通过优先权管理器设置程序的并行处理节段的优先级的非常高的值,并且虽然可能中断具有相应优先级的并行处理节段303、304,对于下一程序周期通过优先权管理器使得优先级的该值尽可能保持不变。在中断相应的并行处理节段时,提高了具有相应第一至第七子任务的程序的相应并行处理节段303、304的优先级的值,由此使得该程序的具有相应第一至第七子任务的相应并行处理节段303、304在下一程序周期中不再被中断。
103.所述的调节该程序的并行处理节段303、304的优先级的值分别涉及通过次数少地中断该程序的并行处理节段303、304降低了管理事务并且实现了最大限度地利用处理器内
核的计算功率。在控制机构的预期计算量应被评估时,可由sps的控制机构得出并行处理节段303、304的中断次数和其中断时间间隔以及使用的处理器内核计算功率。同样也可根据控制任务的程序的并行处理节段303、304的计算时间得出预期的计算量。即,在顺序计算时间比具有可能中断并行处理节段303、304的并行处理节段303、304的子任务的计算时间更短时,无需强制性并行执行375、380、385、390的相应程序的子任务可纯粹顺序地在对应的主处理器内核上进行处理。对此,优先权管理器降低该程序的并行处理节段303、304的至少一个优先级的值或使其最小,由此如果子任务无需一定并行执行时,必要时顺序地执行并行处理节段303、304的子任务。此外在所述情况下为了评估计算量,控制任务必须检查,两个并行处理器内核113、114的计算功率是否通过顺序地处理并行处理节段303、304的子任务而基本上最佳地被利用。
104.图4示出了用于对根据图3的程序的并行处理节段的至少一个优先级进行动态调节的流程图,其中,通过图1和图2中的优先权管理器350调节控制任务的相应程序的并行处理节段的至少一个优先级的值。第一步骤401显示为开始动态地调节相应程序的并行处理节段的至少一个优先级的值。在第二步骤402中通过优先权管理器为相应的程序周期确定程序的并行处理节段的第一至k个优先级的起始值,其中k可为实际大于1的正整数。程序的相应并行处理节段的优先级的值可为整数值。
105.在下一第三步骤403中,在分支中检查,是否在程序的(具有对应的第一优先级的)相应的并行处理节段中的第一工作包的第一至第四子任务的处理由于在(具有对应的第k优先级的)相应并行处理节段中的第k工作包的子任务而被中断,其中,第k优先级的值高于第一优先级的值。在不是这种情况下,跳回到第二步骤402,即通过优先权管理器确定程序的并行处理节段的优先级的相应起始值。如果在第三步骤403中对子任务的处理中断的检查获得正的结果,则在第四步骤404中还检查,是否应该顺序地执行控制任务的相应程序的并行处理节段的第一工作包的中断的第一至第四子任务。
106.例如在程序周期时间非常短的程序中,优先权管理器可直接在第一次中断相应子任务时将该程序的并行处理节段的优先级的值设置到最小值,由此通过相应的主处理器内核顺序地处理子任务。而如果在第一次中断程序的并行处理节段的子任务时优先权管理器将该优先级的值设置到最小值,则必要时不再不再全负荷地加载并行处理器内核。即,在完成处理较高优先权的具有子任务的并行处理节段并且没有包括用于在并行处理器内核上处理的并行处理节段的另一程序的其他更高优先权任务时,有空闲的计算时间可用。该可用时间在正常情况下应通过两个并行处理器内核用于处理具有子任务的较低优先权的并行处理节段。只有在控制单元评估计算量时考虑,具有一个工作包的子任务的较低优先权的并行处理节段虽然多次降低优先级的值但是频繁地被中断,其可触发优先权管理器,使得为并行处理节段的中断的子任务设置该最小的优先级。
107.如果程序的并行处理节段的第一工作包的第一至第四子任务指示并行化,以遵循程序的最终期限,则优先权管理器在第五步骤406中相应地调节控制任务的相应程序的并行处理节段的第一优先级(和/或必要时第k优先级)的值。通过优先权管理器调节相应程序的并行处理节段的第一和/或第k优先级的值可为降低或提高优先级的值,类似于图3的说明那样以便防止程序的具有第一至第四子任务的并行处理节段的可能的继续中断或降低其数量以便使得管理事务最小化并且提高控制任务的计算量。
108.如果证实了在第四步骤404中的检查,则在第六步骤405中优先权管理器将程序的并行处理节段的第一优先级的值设置到最小值,由此可为当前的程序周期直接纯粹顺序地在相应的主处理器内核上执行程序的并行处理节段的子任务。在第四步骤404中的分支针对上述两个方案引至另一分支的第七步骤407。在第七步骤407中的分支中,优先权管理器检查,相应程序的并行处理节段是否结束。如果不是这种情况,即,还在进行程序的并行处理节段的第一至第四子任务的处理,则跳回到第三步骤403中,在其中检查,是否程序的并行处理节段的第一工作包的第一至第四子任务由于具有更高的第k优先级的值的第k工作包的子任务而被中断。然后如所述地进行第三步骤403的分支的后续步骤。
109.如果在第七步骤407中检查得出,并行处理节段已经结束,则分支直接行进到第八步骤408。在第八步骤408中,优先权管理器检查,程序的并行处理节段的调节的第一优先级的值对于下一程序周期是否应保持不变。如果优先权管理器在第八步骤408中的检查得出正的结果,则程序的并行处理节段的调节的第一优先级的值对于下一程序周期保持不变并且第八步骤408回到第三步骤403的分支。在第三步骤403中检查,是否程序的并行处理节段的第一工作包的第一至第四子任务的处理由于具有更高的第k优先级的相应并行处理节段的第k工作包的子任务被中断。以这种方式如所述那样进行后续检查步骤。
110.如果程序的并行处理节段的调节的第一优先级的值对于下一程序周期不应保持不变,则优先权管理器在第九步骤409中将第一优先级的值设置到预设值,即返回起始值。在第十步骤410中结束程序的并行处理节段的优先级的值的动态调节。例如这可在删除子任务的处理和从数据结构中移除并行处理节段的优先级的相应条目时为这种情况。
111.可通过优先权管理器以及必要时通过控制机构检查第一至第十的各个步骤401至410,因为控制机构持续地评估控制任务的预期计算量并且必要时激活优先权管理器以调节相应程序的并行处理节段的优先级的值。
112.本发明在细节方面通过优选实施例描述。但是其不是通过公开的示例受到限制,因为技术人员可从中推导出其他的变型方案,在此没有离开本发明的保护范围。
113.附图标记列表
114.100 可编程的控制装置
115.110 数据处理机构
116.111 第一主处理器内核
117.112 第二主处理器内核
118.113 第一并行处理器内核
119.114 第二并行处理器内核
120.120 控制机构
121.130 通信端口
122.200 机器/设备
123.210 执行器
124.220 传感器
125.300 用于在sps上处理数据的方法
126.303 第一主处理器内核的并行处理节段
127.304 第二主处理器内核的并行处理节段
128.310 第二工作包
129.320 第一数量子任务
130.330 第二数量子任务
131.321 第一子任务
132.322 第二子任务
133.323 第三子任务
134.324 第四子任务
135.331 第五子任务
136.332 第六子任务
137.333 第七子任务
138.340 第一优先级
139.345 第二优先级
140.350 优先权管理器
141.355 数据结构
142.360 并行执行
143.365 第一主处理器内核的顺序执行
144.366 中断
145.370 第二主处理器内核的顺序执行
146.375 第一并行处理器内核的第一并行执行
147.380 第二并行处理器内核的第一并行执行
148.385 第一并行处理器内核的第二并行执行
149.390 第二并行处理器内核的第二并行执行
150.400 用于动态调节优先级的流程图
151.401 开始
152.402 第一至第k优先级的起始值
153.403 第一工作包的子任务由于具有更高优先级的第k工作包的子任务而中断?
154.404 第一工作包的子任务也可顺序执行?
155.405 将相应的优先级设置到最小值
156.406 降低或提高第一和/或第k优先级的值
157.407 并行处理节段结束?
158.408 相应的调节的优先级的值为下一程序周期保持不变?
159.409 将相应的优先级的值设置到相应的起始值
160.410 结束
161.500 第一箭头
162.505 第二箭头
163.510 第三箭头
164.515 第四箭头
165.520 第五箭头
166.525 第六箭头
167.530 第七箭头
168.535 第八箭头
169.540 第九箭头
170.545 第十箭头
171.550 第十一箭头
172.555 第十二箭头
173.600 创建具有子任务的工作包和管理优先级
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1