管理自动化系统中的分布式计算的方法和系统的制作方法

文档序号:6540924阅读:101来源:国知局
管理自动化系统中的分布式计算的方法和系统的制作方法
【专利摘要】提供了一种管理适合于在自动化系统中使用的分布式计算的方法和系统。在第一步骤处,将程序指令集合划分成多个单元块。每个单元块包括至少一个程序指令。随后,对于至少一个单元块,从多个单元块的其余单元块中识别与该至少一个单元块相对应的一个或更多个互补块。基于单元块与相应互补块中对全局变量的读写访问间的比较来识别互补块。在自动化系统内的多个处理器的集合上执行多个单元块,使得至少一个互补块与相对应的单元块并行执行。
【专利说明】管理自动化系统中的分布式计算的方法和系统

【技术领域】
[0001] 本发明总体上涉及自动化系统。更具体地,本发明涉及管理自动化系统中的分布 式计算。

【背景技术】
[0002] 工业自动化系统特别是分布式自动化系统具有被称作为可编程逻辑控制器的特 殊设备。这种可编程逻辑控制器实际上是用于与用来控制不同工业工厂的机械的传感器和 致动器的集合进行接口的数字计算机。与通用计算机不同,可编程逻辑控制器被设计用于 多个输入和输出装置,并且还被设计成承受工业工厂中普遍存在的苛刻的环境条件例如高 温、电噪声、振动和碰撞等。然而,对可编程逻辑控制器的最重要的约束是它应当是硬实时 系统,这是因为必须在限定时间内响应于输入条件来产生输出结果,否则可能进行不希望 的操作。
[0003] 由于上述硬实时约束,因此提出了通用的并行计算概念例如多线程和云计算,以 减少可编程逻辑控制器中的处理时间。
[0004] 当前IEC61131-3限定了下述五种用于可编程控制系统的编程语言:功能框图 (FBD)、梯形图(LD)、结构化文本(ST)、指令列表(IL)以及顺序功能图(SFC)。所有这些编程 语言强调操作的逻辑组织。因此,各个操作被分组在一起。在运行时间期间,这样的各个组 被形成为可以并行执行的各个线程。然而,在现有技术中,这样的各个组代表允许被独立执 行的最小的逻辑单元。


【发明内容】

[0005] 鉴于现有技术,有需要提供一种用于进一步提升可编程逻辑控制器中的分布式计 算能力的系统和方法,以进一步减少可编程逻辑控制器的响应时间。
[0006] 因此,本发明的一个目的是提供一种管理自动化系统中的分布式计算的系统和方 法,使得进一步减少各个可编程逻辑控制器的响应时间。
[0007] 本发明的目的分别由根据权利要求1和权利要求6所述的用于分布式计算的方法 和系统实现。在从属权利要求中陈述了本发明的另外的实施方式。
[0008] 本发明的基本构思是将自动化程序划分成各个单元块并且基于对全局变量集合 进行的相应的读写访问来识别各个单元块之间的互补对应关系。此后,基于各个处理器上 的计算负荷和单元块之间的互补对应关系,在多个处理器的集合上调度各个单元块。
[0009] 在本发明的第一方面中,提供了一种管理自动化系统中的分布式计算的方法。在 第一步骤处,将程序指令集合划分成多个单元块。每个单元块包括至少一个程序指令。随 后,针对至少一个单元块,从多个单元块中的其余单元块中识别与该至少一个单元块相对 应的一个或更多个互补块。基于单元块与对应的互补块中对全局变量的读写访问之间的比 较来识别互补块。在自动化系统内的多个处理器的集合上执行多个单元块,使得至少一个 互补块与相对应的单元块并行执行。
[0010] 在本发明的第二方面中,提供了一种管理自动化系统中的分布式计算的系统。该 系统包括划分模块、评估模块以及调度模块。划分模块被配置用于将程序指令集合划分成 多个单元块,其中每个单元块包括至少一个程序指令。评估模块被配置用于:针对至少一个 单元块,从多个单元块中的其余单元块中识别与该至少一个单元块相对应的一个或更多个 互补块,其中基于单元块与对应的互补块中对全局变量的读写访问之间的比较来识别互补 块。调度模块被配置用于在自动化系统内的多个处理器的集合上执行多个单元块,其中至 少一个互补块与相对应的单元块并行执行。
[0011] 因此,本发明提供了一种管理自动化系统中的分布式计算的系统和方法,使得进 一步减少各个可编程逻辑控制器的响应时间。

【专利附图】

【附图说明】
[0012] 在下文中参照在附图中示出的图解的实施方式进一步描述本发明,在附图中:
[0013] 图1示出了根据本发明的实施方式的自动化系统的示意图;
[0014] 图2示出了根据本发明的实施方式的管理自动化系统中的分布式计算的系统的 示意图;
[0015] 图3示出了根据本发明的实施方式的控制程序;
[0016] 图4示出了根据本发明的实施方式的变量信息表;
[0017] 图5示出了根据本发明的实施方式的单元块信息表;
[0018] 图6示出了根据本发明的实施方式的变量访问信息表;
[0019] 图7示出了根据本发明的实施方式的与用于为各个单元块识别互补块集合的示 例性算法相对应的伪代码;
[0020] 图8示出了根据本发明的实施方式的互补对应关系信息表;
[0021] 图9示出了根据本发明的实施方式的容器块;
[0022] 图10示出了根据本发明的实施方式的不同单元块在双核处理器上的简单示意性 调度;
[0023] 图11示出了根据本发明的实施方式的用于在多个处理器上调度单元块的伪代 码;以及
[0024] 图12示出了根据本发明的实施方式的管理适合于在自动化系统中使用的分布式 计算的方法的流程图。

【具体实施方式】
[0025] 参照附图描述各个实施方式,其中,在全文中相似的附图标记用于指代相似的元 件。在下面的说明中,出于说明的目的阐述了许多具体细节以便提供对一个或更多个实施 方式的透彻理解。明显的是,可以在没有这些具体细节的情况下实施这些实施方式。
[0026] 参照图1,示出了根据本发明的实施方式的自动化系统100的示意图。
[0027] 任何工业工厂可以使用自动化系统100来监视和控制希望的处理。自动化系统 100包括一组处理设备102a至102η、一组处理控制器104a至104m、一组人机接口设备106a 至1061以及工程站108。
[0028] 这种工业处理的各种示例包括但不限于食品工业、自动化工业等。因此,处理设备 102可以包括很多种操作部件,例如电动机、驱动器、阀门、致动器、温度/压力传感器等。
[0029] 处理控制器104被配置用于基于驻存在其中的控制逻辑来监视和控制处理设备 102。在通常的应用中,使用可编程逻辑控制器来实现处理控制器104。每个处理控制器104 包括处理器(未示出)。在本发明的各种实施方式中,处理器可以是多核处理器。贯穿本公 开所使用的术语"多个处理器"意在指代驻存在单个处理控制器104内的各个处理器核以 及包含在自动化系统100内的一个或更多个处理控制器104中的多个处理器。
[0030] 人机接口设备106向自动化系统100的用户提供接口。通常,人机接口设备106 包括下述程序代码,该程序代码用于向自动化系统100的用户显示一组图形用户界面。人 机接口设备106被配置成从处理控制器104的存储器(例如,内部寄存器)读取数据或者将 数据写到该存储器。在一些应用中,人机接口装置106可以仅进行存取数据和向自动化系 统100的用户显示数据的功能。
[0031] 工程站108提供开发环境,在该开发环境下开发一组控制程序。然后控制程序被 传递给相关的处理控制器104,并且在相关的处理控制器104中执行该控制程序。
[0032] 上面讨论的所有部件102至108通过通信网络110彼此通信耦合。在邻接图中所 描绘的选择的部件之间的互连仅是示例性的。一般而言,可以在通信网络110上使用如通 常在本领域中公知的合适的通信协议进行任何两个部件间的直接通信。
[0033] 如现在要描述的,根据本发明的各个示例性实施方式,在自动化系统100中设置 了分布式计算管理系统。
[0034] 图2示出了根据本发明的实施方式的管理自动化系统100中的分布式计算的系统 200的不意图。
[0035] 系统200包括划分模块202、评估模块204、代码变换模块206以及调度模块208。 需要指出的是各个模块202至208可以驻存在自动化系统100内的不同部件上。在一个示 例中,划分模块202、评估模块204以及代码变换模块206驻存在工程站108上,而各个调 度模块206驻存在各个处理控制器104上。然而,在本发明的各个实施方式中,模块202至 206可以以任何组合和任何多个数量位于自动化系统100内的任何组件上。
[0036] 划分模块202被配置用于将程序指令集合划分成多个单元块。每个单元块包括至 少一个程序指令。
[0037] 在本发明的示例性实施方式中,基于非顺序处理指令来划分该程序指令集合。如 通常在本领域中公知的,在单个控制程序内,在程序指令集合中被选择的指令被设置有表 示非顺序开始指针的各个"标记"。类似地,程序指令集合可以包括表示非顺序结束指针的 各个"跳转"程序指令。在本实施方式中,每个非顺序开始指针启动划分并且非顺序结束指 针终止划分。因此,在非顺序开始指针与非顺序结束指针之间的程序指令的子集被分组到 单个单元块中。
[0038] 在本发明的替代示例性实施方式中,程序指令集合被划分,使得每个语句形成单 个单元块。
[0039] 在各种其他示例性实施方式中,以组合的方式使用结合先前两个示例性实施方式 描述的两种技术。因此,解析程序指令集合并且将"标记"程序指令与"跳转"程序指令之 间的程序指令的每个子集划分成单元块。此外,将不在这样一对标记程序指令与跳转程序 指令之内的每个单个程序指令识别作为单个单元块。
[0040] 评估模块204被配置用于针对至少一个单元块,在多个单元块中其余的单元块中 识别与该至少一个单元块相对应的一个或更多个互补块。基于单元块中与对应的互补块中 对全局变量的读写访问之间的比较来识别每个互补块。
[0041] 在本发明的各种实施方式中,与单个单元块相对应的每个互补块是这样的互补 块:在单元块中被读访问的全局变量均不在互补块中被写访问。
[0042] 代码变换模块206被配置用于将每个单元块变换为二进制格式并且将单元块与 容器块相关联,使得多个单元块形成单个逻辑实体。
[0043] 在变换为二进制过程中,变量被变换为被单个处理控制器104内的多个核使用的 全局共享存储器中的偏移位置。在该情况下,预期在若干处理控制器104上执行容器块,变 量作为偏移位置存储在其中的全局共享存储器优选为可由每个处理控制器104访问的外 部存储器。
[0044] 调度模块208被配置用于在驻存在自动化系统100内的各个处理控制器104或其 组合上的多个处理器的集合上执行单元块,使得至少一个互补块与相对应的单元块并行执 行。
[0045] 在本发明的示例性实施方式中,基于各个处理器上的计算负荷以及与正被多个处 理器的集合执行的一个或更多个单元块的互补对应关系,将每个相继的单元块在多个处理 器的集合中的一个处理器上排队以进行处理。
[0046] 如本说明书中较早指出的,在调度模块208的上下文中,术语多个处理器意在指 代单个处理控制器104内的单个处理器中的各个核以及分布在自动化系统100内的多个处 理控制器104中的多个处理器。
[0047] 在本发明的示例性实施方式中,每个处理控制器104设置有单个调度模块208。调 度模块208被配置成对自动化系统100内的处理控制器104中的每个处理控制器上的计算 负荷进行追踪。调度模块208在多个处理控制器104上调度容器块内的一组单元块。在本 实施方式中,对自动化系统100内的每个处理控制器104上的计算负荷进行高效优化。
[0048] 在本发明的示例性实施方式中,设置了跨不同处理控制器104共享的外部存储器 (未示出)。容器块内的多个单元块将该外部存储器用于临时使用,使得跨多个处理控制器 104高效共享输入数据和输出数据。
[0049] 在本发明的各个替代实施方式中,可以实施用于跨多个处理控制器104交换数据 的任何适合的技术。例如,可以使用通信块对例如USEND/URCV、BSEND/BRCV等来实现希望 的数据交换。
[0050] 现在将结合图3至图11进一步说明系统200的操作。
[0051] 参照图3,示出了控制程序300。控制程序在程序语句302处开始。跟随在程序语 句302后的是变量声明块304和变量声明块306。变量声明块304、306声明若干个变量,例 如"I_RESISTANCE"、"I_INDUCTANCE"等。最后,提供程序指令块308。控制程序300在程 序语句310处结束。
[0052] 现在参照图4,示出了变量信息表400。划分模块202解析控制程序300以确定在 变量声明块304、306中声明的变量。变量列表以如图4所示的表格式存储在临时存储器位 置中。表400包括标注了"变量标识"402和"变量名称"404的列中的与变量有关的信息。
[0053] 现在参照图5,示出了单元块信息表500。划分模块202生成各个单元块。在邻接 图中示出的特定示例中,不包括"标记"非顺序处理指令和"跳转"非顺序处理指令。因此, 每个单个程序指令被识别为单元块。确定具有"块标识"的各个单元块和相对应的程序指 令集合。表500包括标注了 "单元块标识" 502和"程序指令集合" 504的列中的与单元块 和相对应的程序指令集合有关的信息。
[0054] 现在参照图6,示出了变量访问信息表600。评估模块204对使用划分模块202生 成的单元块进行处理。评估模块204识别与每个单元块相关联的一组读访问变量和一组写 访问变量。表600包括标注了"单元块标识"602、"读访问变量"604以及"写访问变量"606 的列中的与每个单元块中对变量的访问有关的信息。
[0055] 现在参照图7,示出了与用于为各个单元块识别一组互补块的示例性算法相对应 的伪代码700。评估模块204基于单元块与相对应的互补块中对全局变量的读写访问间的 比较来识别一组互补块,该组互补块与给定的单元块具有互补对应关系。如前所述,在本发 明的各种实施方式中,与单个单元块相对应的每个互补块使得在单元块中被读访问的全局 变量均不在互补块中被写访问。
[0056] 现在参照图8,示出了互补对应关系信息表800。通过前述明显的是,根据对全局 变量的读写访问,与单个单元块相对应的互补块可以与给定的单元块并行执行。表800为 各个单元块提供这种互补块列表。具体地,表800包括标注了 "单元块标识"802、"互补块 标识"804列中的与互补对应关系有关的信息。因此,例如单元块6和单元块7是单元块5 的互补块。
[0057] 参照图9,示出了容器块900。容器块900包括二进制格式的各个单元块902a、902b 等。容器块900形成单逻辑实体,因此可以从一个部件传递到另一部件。
[0058] 参照图10,按照当前示例,示出了不同单元块在双核处理器上的简单示意性调度。 应当注意,在本示例中,调度模块208仅基于不同单元块之间的互补对应关系在各个核上 调度不同单元块。
[0059] 现在参照图11,示出了用于在多个处理器上调度单元块的伪代码1100。按照邻接 图中描绘的示例性实施方式,基于各个处理器上的计算负荷以及与正被多个处理器的集合 执行的一个或更多个单元块的互补对应关系,将每个相继的单元块在多个处理器的集合中 的一个处理器上排队以进行处理。
[0060] 现在参照图12,示出了管理适于在自动化系统中使用的分布式计算的方法。
[0061] 在步骤1202处,将程序指令集合划分成多个单元块,使得每个单元块包括至少一 个程序指令。
[0062] 在本发明的示例性实施方式中,基于非顺序处理指令来划分程序指令集合。非顺 序开始指针启动划分并且非顺序结束指针终止划分,使得在非顺序开始指针与非顺序结束 指针之间的程序指令的子集被分组到单个单元块。
[0063] 在本发明的另一示例性实施方式中,程序指令集合被划分,使得每个语句形成单 个单元块。
[0064] 可以以组合的方式将上述实施方式用于自动化系统的单个实现。
[0065] 在步骤1204处,对于至少一个单元块,从多个单元块的其余单元块中识别与该至 少一个单元块相对应的一个或更多个互补块。基于单元块与相应互补块中对全局变量的读 写访问间的比较来识别互补块。
[0066] 在本发明的实施方式中,与单个单元块相对应的每个互补块使得在单元块中被读 访问的全局变量均不在互补块中被写访问。
[0067] 在步骤1206处,将每个单元块变换为二进制格式并且将每个单元块与容器块相 关联,使得多个单元块形成单逻辑实体。
[0068] 在本发明的实施方式中,在该步骤期间,在将容器块连同多个单元块传递给自动 化系统内的处理控制器中的一个处理控制器。
[0069] 在步骤1208处,在自动化系统内的多个处理器的集合上执行多个单元块,使得至 少一个互补块与相对应的单元块并行执行。
[0070] 在本发明的实施方式中,基于各个处理器上的计算负荷以及与正被多个处理器的 集合执行的一个或更多个单元块的互补对应关系,将每个相继的单元块在多个处理器的集 合中的一个处理器上排队以进行处理。
[0071] 本发明对于管理自动化系统中的分布式计算提供了若干优点。本发明的首要的优 点是基于多核处理器的处理控制器或可编程逻辑控制器中每个块的执行时间更快。同时, 若干工业自动化系统包括多于一个的处理控制器。在这种情况下,本发明有利地促进了控 制程序在多个处理控制器上的并行执行,从而导致最优化地利用工业工厂内的自动化系统 的组合计算能力。
[0072] 本发明中公开的技术非常有益于利用云计算来实现自动化系统。这是可能的,因 为物理上容器块可以驻存在任何单个处理控制器上;然而,任何其他处理控制器也能够访 问该容器块。
[〇〇73] 虽然参照某些实施方式详细描述了本发明,但是应当理解本发明不限于这些实施 方式。根据本公开,在不背离如本文所述的本发明的各个实施方式的范围的情况下,许多修 改和变型对于本领域的技术人员是明显的。因此,本发明的范围由所附权利要求书指示而 非由前述的说明书指示。权利要求的等价含义和范围内的所有变化、修改和变型被视为在 权利要求的范围内。
【权利要求】
1. 一种管理适合于在自动化系统(100)中使用的分布式计算的方法(1200),所述方法 (1200)包括: 将程序指令集合划分(1202)成多个单元块,其中每个单元块包括至少一个程序指令; 对于至少一个单元块,从所述多个单元块的其余单元块中识别(1204)与所述至少一个 单元块相对应的一个或更多个互补块,其中,基于所述单元块与相应互补块中对全局变量 的读写访问间的比较来识别所述互补块;以及 在所述自动化系统(100)内的多个处理器的集合上执行(1208)所述多个单元块,其 中,至少一个互补块与相对应的单元块并行执行。
2. 根据权利要求1所述的方法(1200),其中,基于非顺序处理指令来划分所述程序指 令集合,其中,非顺序开始指针启动划分并且非顺序结束指针终止所述划分,使得在所述非 顺序开始指针与所述非顺序结束指针之间的程序指令的子集被分组到单个单元块中。
3. 根据权利要求1所述的方法(1200),其中,所述程序指令集合被划分为每个语句形 成单个单元块。
4. 根据权利要求1至3中任一项所述的方法(1200),其中,与单个单元块相对应的每 个互补块使得在所述单元块中被读访问的所述全局变量均不在所述互补块中被写访问。
5. 根据权利要求1至4中任一项所述的方法(1200),还包括将每个单元块变换(1206) 为二进制格式,以及将所述单元块与容器块相关联,使得所述多个单元块形成单逻辑实体。
6. 根据权利要求1至5中任一项所述的方法(1200),其中,基于各个处理器上的计算 负荷以及与正被所述多个处理器的集合执行的一个或更多个单元块的互补对应关系,将每 个相继的单元块在所述多个处理器的集合中的一个处理器上排队以进行处理。
7. -种管理适合于在自动化系统(100)中使用的分布式计算的系统(200),所述系统 (200)包括: 划分模块(202),所述划分模块(202)被配置用于将程序指令集合划分成多个单元块, 其中每个单元块包括至少一个程序指令; 评估模块(204),所述评估模块(204)被配置用于:对于至少一个单元块,从所述多个 单元块的其余单元块中识别与所述至少一个单元块相对应的一个或更多个互补块,其中, 基于所述单元块与相应互补块中对全局变量的读写访问间的比较来识别所述互补块;以及 调度模块(208 ),所述调度模块(208 )被配置用于在所述自动化系统(100 )内的多个处 理器的集合上执行所述多个单元块,其中,至少一个互补块与对应的单元块并行执行。
8. 根据权利要求7所述的系统(200),其中,基于非顺序处理指令来划分所述程序指令 集合,其中,非顺序开始指针启动划分并且非顺序结束指针终止所述划分,使得在所述非顺 序开始指针与所述非顺序结束指针之间的程序指令的子集被分组到单个单元块中。
9. 根据权利要求7所述的系统(200),其中,所述程序指令集合被划分为每个语句形成 单个单元块。
10. 根据权利要求7至9中任一项所述的系统(200),其中,与单个单元块相对应的每 个互补块使得在所述单元块中被读访问的所述全局变量均不在所述互补块中被写访问。
11. 根据权利要求7至10中任一项所述的系统(200),还包括代码变换模块(206),所 述代码变换模块(206)被配置用于将每个单元块变换为二进制格式,以及将所述单元块与 容器块相关联,使得所述多个单元块形成单逻辑实体。
12.根据权利要求7至11中任一项所述的系统(200),其中,基于各个处理器上的计算 负荷以及与正被所述多个处理器的集合执行的一个或更多个单元块的互补对应关系,将每 个相继的单元块在所述多个处理器的集合中的一个处理器上排队以进行处理。
【文档编号】G06F9/44GK104063213SQ201410100294
【公开日】2014年9月24日 申请日期:2014年3月18日 优先权日:2013年3月20日
【发明者】埃尔维斯·安东尼, 格拉斯·利拉沃蒂 申请人:西门子公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1