首页> 中国专利> 管理自动化系统中的分布式计算的方法和系统

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

摘要

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

著录项

  • 公开/公告号CN104063213A

    专利类型发明专利

  • 公开/公告日2014-09-24

    原文格式PDF

  • 申请/专利权人 西门子公司;

    申请/专利号CN201410100294.5

  • 申请日2014-03-18

  • 分类号G06F9/44(20060101);

  • 代理机构11227 北京集佳知识产权代理有限公司;

  • 代理人杜诚;李春晖

  • 地址 德国慕尼黑

  • 入库时间 2023-12-17 01:24:36

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-12-15

    授权

    授权

  • 2014-10-22

    实质审查的生效 IPC(主分类):G06F9/44 申请日:20140318

    实质审查的生效

  • 2014-09-24

    公开

    公开

说明书

技术领域

本发明总体上涉及自动化系统。更具体地,本发明涉及管理自动化系 统中的分布式计算。

背景技术

工业自动化系统特别是分布式自动化系统具有被称作为可编程逻辑 控制器的特殊设备。这种可编程逻辑控制器实际上是用于与用来控制不同 工业工厂的机械的传感器和致动器的集合进行接口的数字计算机。与通用 计算机不同,可编程逻辑控制器被设计用于多个输入和输出装置,并且还 被设计成承受工业工厂中普遍存在的苛刻的环境条件例如高温、电噪声、 振动和碰撞等。然而,对可编程逻辑控制器的最重要的约束是它应当是硬 实时系统,这是因为必须在限定时间内响应于输入条件来产生输出结果, 否则可能进行不希望的操作。

由于上述硬实时约束,因此提出了通用的并行计算概念例如多线程和 云计算,以减少可编程逻辑控制器中的处理时间。

当前IEC61131-3限定了下述五种用于可编程控制系统的编程语言: 功能框图(FBD)、梯形图(LD)、结构化文本(ST)、指令列表(IL) 以及顺序功能图(SFC)。所有这些编程语言强调操作的逻辑组织。因此, 各个操作被分组在一起。在运行时间期间,这样的各个组被形成为可以并 行执行的各个线程。然而,在现有技术中,这样的各个组代表允许被独立 执行的最小的逻辑单元。

发明内容

鉴于现有技术,有需要提供一种用于进一步提升可编程逻辑控制器中 的分布式计算能力的系统和方法,以进一步减少可编程逻辑控制器的响应 时间。

因此,本发明的一个目的是提供一种管理自动化系统中的分布式计算 的系统和方法,使得进一步减少各个可编程逻辑控制器的响应时间。

本发明的目的分别由根据权利要求1和权利要求6所述的用于分布式 计算的方法和系统实现。在从属权利要求中陈述了本发明的另外的实施方 式。

本发明的基本构思是将自动化程序划分成各个单元块并且基于对全 局变量集合进行的相应的读写访问来识别各个单元块之间的互补对应关 系。此后,基于各个处理器上的计算负荷和单元块之间的互补对应关系, 在多个处理器的集合上调度各个单元块。

在本发明的第一方面中,提供了一种管理自动化系统中的分布式计算 的方法。在第一步骤处,将程序指令集合划分成多个单元块。每个单元块 包括至少一个程序指令。随后,针对至少一个单元块,从多个单元块中的 其余单元块中识别与该至少一个单元块相对应的一个或更多个互补块。基 于单元块与对应的互补块中对全局变量的读写访问之间的比较来识别互 补块。在自动化系统内的多个处理器的集合上执行多个单元块,使得至少 一个互补块与相对应的单元块并行执行。

在本发明的第二方面中,提供了一种管理自动化系统中的分布式计算 的系统。该系统包括划分模块、评估模块以及调度模块。划分模块被配置 用于将程序指令集合划分成多个单元块,其中每个单元块包括至少一个程 序指令。评估模块被配置用于:针对至少一个单元块,从多个单元块中的 其余单元块中识别与该至少一个单元块相对应的一个或更多个互补块,其 中基于单元块与对应的互补块中对全局变量的读写访问之间的比较来识 别互补块。调度模块被配置用于在自动化系统内的多个处理器的集合上执 行多个单元块,其中至少一个互补块与相对应的单元块并行执行。

因此,本发明提供了一种管理自动化系统中的分布式计算的系统和方 法,使得进一步减少各个可编程逻辑控制器的响应时间。

附图说明

在下文中参照在附图中示出的图解的实施方式进一步描述本发明,在 附图中:

图1示出了根据本发明的实施方式的自动化系统的示意图;

图2示出了根据本发明的实施方式的管理自动化系统中的分布式计算的 系统的示意图;

图3示出了根据本发明的实施方式的控制程序;

图4示出了根据本发明的实施方式的变量信息表;

图5示出了根据本发明的实施方式的单元块信息表;

图6示出了根据本发明的实施方式的变量访问信息表;

图7示出了根据本发明的实施方式的与用于为各个单元块识别互补块集 合的示例性算法相对应的伪代码;

图8示出了根据本发明的实施方式的互补对应关系信息表;

图9示出了根据本发明的实施方式的容器块;

图10示出了根据本发明的实施方式的不同单元块在双核处理器上的简单 示意性调度;

图11示出了根据本发明的实施方式的用于在多个处理器上调度单元块的 伪代码;以及

图12示出了根据本发明的实施方式的管理适合于在自动化系统中使用的 分布式计算的方法的流程图。

具体实施方式

参照附图描述各个实施方式,其中,在全文中相似的附图标记用于指 代相似的元件。在下面的说明中,出于说明的目的阐述了许多具体细节以 便提供对一个或更多个实施方式的透彻理解。明显的是,可以在没有这些 具体细节的情况下实施这些实施方式。

参照图1,示出了根据本发明的实施方式的自动化系统100的示意图。

任何工业工厂可以使用自动化系统100来监视和控制希望的处理。自 动化系统100包括一组处理设备102a至102n、一组处理控制器104a至 104m、一组人机接口设备106a至106l以及工程站108。

这种工业处理的各种示例包括但不限于食品工业、自动化工业等。因 此,处理设备102可以包括很多种操作部件,例如电动机、驱动器、阀门、 致动器、温度/压力传感器等。

处理控制器104被配置用于基于驻存在其中的控制逻辑来监视和控 制处理设备102。在通常的应用中,使用可编程逻辑控制器来实现处理控 制器104。每个处理控制器104包括处理器(未示出)。在本发明的各种 实施方式中,处理器可以是多核处理器。贯穿本公开所使用的术语“多个 处理器”意在指代驻存在单个处理控制器104内的各个处理器核以及包含 在自动化系统100内的一个或更多个处理控制器104中的多个处理器。

人机接口设备106向自动化系统100的用户提供接口。通常,人机接 口设备106包括下述程序代码,该程序代码用于向自动化系统100的用户 显示一组图形用户界面。人机接口设备106被配置成从处理控制器104 的存储器(例如,内部寄存器)读取数据或者将数据写到该存储器。在一 些应用中,人机接口装置106可以仅进行存取数据和向自动化系统100 的用户显示数据的功能。

工程站108提供开发环境,在该开发环境下开发一组控制程序。然后 控制程序被传递给相关的处理控制器104,并且在相关的处理控制器104 中执行该控制程序。

上面讨论的所有部件102至108通过通信网络110彼此通信耦合。在 邻接图中所描绘的选择的部件之间的互连仅是示例性的。一般而言,可以 在通信网络110上使用如通常在本领域中公知的合适的通信协议进行任 何两个部件间的直接通信。

如现在要描述的,根据本发明的各个示例性实施方式,在自动化系统 100中设置了分布式计算管理系统。

图2示出了根据本发明的实施方式的管理自动化系统100中的分布式 计算的系统200的示意图。

系统200包括划分模块202、评估模块204、代码变换模块206以及 调度模块208。需要指出的是各个模块202至208可以驻存在自动化系统 100内的不同部件上。在一个示例中,划分模块202、评估模块204以及 代码变换模块206驻存在工程站108上,而各个调度模块206驻存在各个 处理控制器104上。然而,在本发明的各个实施方式中,模块202至206 可以以任何组合和任何多个数量位于自动化系统100内的任何组件上。

划分模块202被配置用于将程序指令集合划分成多个单元块。每个单 元块包括至少一个程序指令。

在本发明的示例性实施方式中,基于非顺序处理指令来划分该程序指 令集合。如通常在本领域中公知的,在单个控制程序内,在程序指令集合 中被选择的指令被设置有表示非顺序开始指针的各个“标记”。类似地, 程序指令集合可以包括表示非顺序结束指针的各个“跳转”程序指令。在 本实施方式中,每个非顺序开始指针启动划分并且非顺序结束指针终止划 分。因此,在非顺序开始指针与非顺序结束指针之间的程序指令的子集被 分组到单个单元块中。

在本发明的替代示例性实施方式中,程序指令集合被划分,使得每个 语句形成单个单元块。

在各种其他示例性实施方式中,以组合的方式使用结合先前两个示例 性实施方式描述的两种技术。因此,解析程序指令集合并且将“标记”程 序指令与“跳转”程序指令之间的程序指令的每个子集划分成单元块。此 外,将不在这样一对标记程序指令与跳转程序指令之内的每个单个程序指 令识别作为单个单元块。

评估模块204被配置用于针对至少一个单元块,在多个单元块中其余 的单元块中识别与该至少一个单元块相对应的一个或更多个互补块。基于 单元块中与对应的互补块中对全局变量的读写访问之间的比较来识别每 个互补块。

在本发明的各种实施方式中,与单个单元块相对应的每个互补块是这 样的互补块:在单元块中被读访问的全局变量均不在互补块中被写访问。

代码变换模块206被配置用于将每个单元块变换为二进制格式并且 将单元块与容器块相关联,使得多个单元块形成单个逻辑实体。

在变换为二进制过程中,变量被变换为被单个处理控制器104内的多 个核使用的全局共享存储器中的偏移位置。在该情况下,预期在若干处理 控制器104上执行容器块,变量作为偏移位置存储在其中的全局共享存储 器优选为可由每个处理控制器104访问的外部存储器。

调度模块208被配置用于在驻存在自动化系统100内的各个处理控制 器104或其组合上的多个处理器的集合上执行单元块,使得至少一个互补 块与相对应的单元块并行执行。

在本发明的示例性实施方式中,基于各个处理器上的计算负荷以及与 正被多个处理器的集合执行的一个或更多个单元块的互补对应关系,将每 个相继的单元块在多个处理器的集合中的一个处理器上排队以进行处理。

如本说明书中较早指出的,在调度模块208的上下文中,术语多个处 理器意在指代单个处理控制器104内的单个处理器中的各个核以及分布 在自动化系统100内的多个处理控制器104中的多个处理器。

在本发明的示例性实施方式中,每个处理控制器104设置有单个调度 模块208。调度模块208被配置成对自动化系统100内的处理控制器104 中的每个处理控制器上的计算负荷进行追踪。调度模块208在多个处理控 制器104上调度容器块内的一组单元块。在本实施方式中,对自动化系统 100内的每个处理控制器104上的计算负荷进行高效优化。

在本发明的示例性实施方式中,设置了跨不同处理控制器104共享的 外部存储器(未示出)。容器块内的多个单元块将该外部存储器用于临时 使用,使得跨多个处理控制器104高效共享输入数据和输出数据。

在本发明的各个替代实施方式中,可以实施用于跨多个处理控制器 104交换数据的任何适合的技术。例如,可以使用通信块对例如 USEND/URCV、BSEND/BRCV等来实现希望的数据交换。

现在将结合图3至图11进一步说明系统200的操作。

参照图3,示出了控制程序300。控制程序在程序语句302处开始。 跟随在程序语句302后的是变量声明块304和变量声明块306。变量声明 块304、306声明若干个变量,例如“I_RESISTANCE”、“I_INDUCTANCE” 等。最后,提供程序指令块308。控制程序300在程序语句310处结束。

现在参照图4,示出了变量信息表400。划分模块202解析控制程序 300以确定在变量声明块304、306中声明的变量。变量列表以如图4所 示的表格式存储在临时存储器位置中。表400包括标注了“变量标识”402 和“变量名称”404的列中的与变量有关的信息。

现在参照图5,示出了单元块信息表500。划分模块202生成各个单 元块。在邻接图中示出的特定示例中,不包括“标记”非顺序处理指令和 “跳转”非顺序处理指令。因此,每个单个程序指令被识别为单元块。确 定具有“块标识”的各个单元块和相对应的程序指令集合。表500包括标 注了“单元块标识”502和“程序指令集合”504的列中的与单元块和相 对应的程序指令集合有关的信息。

现在参照图6,示出了变量访问信息表600。评估模块204对使用划 分模块202生成的单元块进行处理。评估模块204识别与每个单元块相关 联的一组读访问变量和一组写访问变量。表600包括标注了“单元块标识” 602、“读访问变量”604以及“写访问变量”606的列中的与每个单元块 中对变量的访问有关的信息。

现在参照图7,示出了与用于为各个单元块识别一组互补块的示例性 算法相对应的伪代码700。评估模块204基于单元块与相对应的互补块中 对全局变量的读写访问间的比较来识别一组互补块,该组互补块与给定的 单元块具有互补对应关系。如前所述,在本发明的各种实施方式中,与单 个单元块相对应的每个互补块使得在单元块中被读访问的全局变量均不 在互补块中被写访问。

现在参照图8,示出了互补对应关系信息表800。通过前述明显的是, 根据对全局变量的读写访问,与单个单元块相对应的互补块可以与给定的 单元块并行执行。表800为各个单元块提供这种互补块列表。具体地,表 800包括标注了“单元块标识”802、“互补块标识”804列中的与互补对 应关系有关的信息。因此,例如单元块6和单元块7是单元块5的互补块。

参照图9,示出了容器块900。容器块900包括二进制格式的各个单 元块902a、902b等。容器块900形成单逻辑实体,因此可以从一个部件 传递到另一部件。

参照图10,按照当前示例,示出了不同单元块在双核处理器上的简 单示意性调度。应当注意,在本示例中,调度模块208仅基于不同单元块 之间的互补对应关系在各个核上调度不同单元块。

现在参照图11,示出了用于在多个处理器上调度单元块的伪代码 1100。按照邻接图中描绘的示例性实施方式,基于各个处理器上的计算负 荷以及与正被多个处理器的集合执行的一个或更多个单元块的互补对应 关系,将每个相继的单元块在多个处理器的集合中的一个处理器上排队以 进行处理。

现在参照图12,示出了管理适于在自动化系统中使用的分布式计算 的方法。

在步骤1202处,将程序指令集合划分成多个单元块,使得每个单元 块包括至少一个程序指令。

在本发明的示例性实施方式中,基于非顺序处理指令来划分程序指令 集合。非顺序开始指针启动划分并且非顺序结束指针终止划分,使得在非 顺序开始指针与非顺序结束指针之间的程序指令的子集被分组到单个单 元块。

在本发明的另一示例性实施方式中,程序指令集合被划分,使得每个 语句形成单个单元块。

可以以组合的方式将上述实施方式用于自动化系统的单个实现。

在步骤1204处,对于至少一个单元块,从多个单元块的其余单元块 中识别与该至少一个单元块相对应的一个或更多个互补块。基于单元块与 相应互补块中对全局变量的读写访问间的比较来识别互补块。

在本发明的实施方式中,与单个单元块相对应的每个互补块使得在单 元块中被读访问的全局变量均不在互补块中被写访问。

在步骤1206处,将每个单元块变换为二进制格式并且将每个单元块 与容器块相关联,使得多个单元块形成单逻辑实体。

在本发明的实施方式中,在该步骤期间,在将容器块连同多个单元块 传递给自动化系统内的处理控制器中的一个处理控制器。

在步骤1208处,在自动化系统内的多个处理器的集合上执行多个单 元块,使得至少一个互补块与相对应的单元块并行执行。

在本发明的实施方式中,基于各个处理器上的计算负荷以及与正被多 个处理器的集合执行的一个或更多个单元块的互补对应关系,将每个相继 的单元块在多个处理器的集合中的一个处理器上排队以进行处理。

本发明对于管理自动化系统中的分布式计算提供了若干优点。本发明 的首要的优点是基于多核处理器的处理控制器或可编程逻辑控制器中每 个块的执行时间更快。同时,若干工业自动化系统包括多于一个的处理控 制器。在这种情况下,本发明有利地促进了控制程序在多个处理控制器上 的并行执行,从而导致最优化地利用工业工厂内的自动化系统的组合计算 能力。

本发明中公开的技术非常有益于利用云计算来实现自动化系统。这是 可能的,因为物理上容器块可以驻存在任何单个处理控制器上;然而,任 何其他处理控制器也能够访问该容器块。

虽然参照某些实施方式详细描述了本发明,但是应当理解本发明不限 于这些实施方式。根据本公开,在不背离如本文所述的本发明的各个实施 方式的范围的情况下,许多修改和变型对于本领域的技术人员是明显的。 因此,本发明的范围由所附权利要求书指示而非由前述的说明书指示。权 利要求的等价含义和范围内的所有变化、修改和变型被视为在权利要求的 范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号