掌桥专利:专业的专利平台
掌桥专利
首页

用于适应在自动化系统中使用的能重新配置的运行时系统的系统和方法

文献发布时间:2024-04-18 19:58:53


用于适应在自动化系统中使用的能重新配置的运行时系统的系统和方法

技术领域

本申请涉及在自动化系统中使用的运行时系统。更具体地,本申请涉及利用能重复使用的运行时功能来适应可重新配置的自动化运行时系统。

背景技术

运行时系统指的是使软件程序能够在计算机的操作系统上执行的软件、固件和/或硬件资源的集合。运行时系统是经设计提供程序执行服务的复合机制,而与所使用的编程语言无关。运行时经限定为软件或固件程序开发的生命周期阶段,从程序连同其框架、部件和库被加载到存储器时开始。编译器将程序加载到存储器,并且操作系统从运行时的开始到结束将所需的存储器、处理器资源、输入/输出资源分配给程序。

如今,用于自动化系统(例如,在生产或生产线中部署的机器人的工业系统)的运行时系统的软件/固件是单片的并且是出于特定目的而构建的。软件开发者为运行时系统配置的所有功能都是硬编码的,并且几乎不可能进行任何修改,从而迫使重写整个运行时程序。例如,如果期望将新驱动器添加到部署的运行时系统,诸如支持蓝牙的新驱动器或新网络驱动器,则这些驱动器在内核空间中并且是单片的,从而阻止了运行时系统的简单重新配置。作为另一个实施例,如果运行时系统经配置为实时可操作的,则它以后不能被容易地修改为非实时可操作的。或者如果运行时系统最初经设计具有抢占式调度,并且稍后期望尝试其它类型的调度,则对程序的这种改变实际上是不可能的。新特征的实现方式需要非常大的工程努力。使自动化运行时系统在非常短的时间内适应新的要求是当前实现方式中的一个挑战。

当前用于运行时系统开发的方法包括棕地开发和绿地开发。在棕地开发中,现有的运行时系统经修改或经改编适于新的要求。如果能够通过现有功能容易地解决新的要求,则这需要简单的配置。然而,大多数情况下,新要求需要对运行时系统进行大量重新设计,这导致花费数月到数年的较长的开发周期。此外,对最初运行时系统的这些修改经常引入修复成本高的错误。这方面的一个实施例是使用可编程逻辑控制器(PLC)来控制海军舰船中的水控制系统。PLC运行时系统必须习惯于海事环境的特定要求。这导致单独的系统开发分支并且引入软件工程开销。

在绿地开发中,运行时系统从零开始经开发为全新的运行时系统。这允许运行时系统开发者创建定制解决方案以准确地解决新的要求。然而,从零开始启动全新的运行时程序需要花费很多年时间的努力。此外,一旦运行时系统经释放并且出现新的要求,“全新的”运行时系统必须经改编和重新设计。开发全新的运行时系统是极其昂贵的,并且这产生了显著的组织开销,因为必须为孤立的开发维护单独的公司部门和组。无论何时出现新要求,棕地还是绿地开发方法都不允许简单的修改。

发明内容

本发明公开了一种系统和方法,用于通过将能重复使用的运行时功能组成为期望的功能的运行时特定语言,在非常短的时间内使自动化运行时系统适应新要求。这种适应摆脱了运行时系统的程序必须被硬编码(即,数据或参数经直接嵌入到源代码中,而不是从永恒源获取数据或参数或在运行时生成)的共同概念。诸如运行时系统的定时、并发性、可用性、安全性和其它特性的功能方面经组成和限定为根据运行时特定语言的配置,而不是以固定的单片格式编码的设计决策以用于部署。在自动化系统的领域中,功能配置的实施例包括实时/非实时和现场总线协议支持(例如,OPC-A),其通常需要在每当需要更新时(例如,在引入新协议时)构建要提供给客户的新固件。利用所公开的实施方式,运行时系统能够经改编-能够添加新的特征或者能够使用配置模块将特征更新到运行时系统,诸如用于对可重复使用的功能进行拼接、堆叠和专门化操作。这种运行时系统重新配置能够在不必像当前的单片设计那样关闭自动化系统以部署全新的运行时软件或固件的情况下发生。

在一方面,提供了一种系统,其用于使用能重复使用的运行时功能(RRF)来构建在自动化系统中使用的能重新配置的运行时系统。该系统具有存储器,其上存储有模块;以及处理器,其用于执行存储在存储器上的模块中的可执行指令。模块包括专门化模块,其配置用于执行专门化操作以配置或定制至少一个RRF以满足自动化系统的功能要求。拼接模块配置用于执行将至少一个RRF的输出端连接到一个或多个其它RRF的输入端的拼接操作。堆叠模块配置用于执行将RRF堆叠为层以创建新的抽象、功能和服务的堆叠操作。根据运行时规范语言,使用一个或多个关键字来执行专门化操作、拼接操作和堆叠操作。

附图说明

参考以下附图描述本实施方式的非限制性和非穷举性实施方式,其中,除非另有说明,否则在所有附图中相同的附图标记表示相同的元件。

图1示出了根据本公开的实施方式的用于创建和适应运行时系统的系统的实施例。

图2示出了根据本公开的实施方式的调节自现有运行时系统的运行时系统的实施例。

图3示出了根据本公开的实施方式的主机装置上的运行时系统开发和部署的实施例。

图4示出了根据本公开的实施方式的用于开发运行时系统的可视化显示的实施例。

具体实施方式

本发明公开了用于解决上述技术问题的方法和系统,通过使用配置编程语言来构建和适应特定使用的运行时系统以通过能重复使用的运行时功能(RRF)来实例化功能。配置编程语言构建功能,通过根据需要打开或关闭RRF来指定运行时行为。这些RRF可彼此相互操作,从而确保不同运行时间之间的兼容性。例如,即使当诸如“OPC UA通信”的RRF在运行时系统中用于不同的自动化使用情况(诸如建筑物自动化和工厂自动化)时,两个运行时系统的元件也能够无缝地共享,因为它们使用相同的可重复使用的功能,而不管其如何使用或如何配置。运行时功能的这种可重复使用性和可互换性是本公开的实施方式的基础,其能够极大地加速运行时系统的开发和适应。

下面的表1提供了能够根据本公开的实施方式实例化的RRF的这些各种实施例的描述。

表1

图1示出了根据本公开的实施方式的用于创建和适应运行时系统的系统的实施例。计算装置101包括处理器105,其执行存储在非暂时性存储器107中的模块化算法模块,包括RRF实例化模块110、专门化模块111、拼接模块112、堆叠模块113、编译器114、部署器115和用户接口模块116。用户能够通过诸如键盘、显示器、触摸屏等的用户接口125来操作计算装置101。在实施方式中,通过使用基于配置的语言对每个RRF进行专门化、对RRF进行拼接以及对RRF进行堆叠来限定和配置RRF。一旦开发并且编译了运行时系统,就能够经由网络连接120将其部署到主机装置或系统135。计算装置101能够经由网络120访问存储装置或网络130,其能够存储用作可用RRF、实例化RRF和在创建运行时系统期间生成的配置数据的储存库的数据的RRF数据库。可用RRF的RRF数据库能够由运行时系统提供者预先创建。能够经由网络120访问的远程人工智能(AI)模块140与存储器107接口,并且能够经训练以生成用于确定RRF的优化参数的模型。

对于新的运行时系统开发,RRF实例化模块110配置用于根据运行时规范语言执行每个RRF的实例化,从存储器130中的RRF数据库中提取关于可用RRF和参数范围的信息。要实例化的RRF的选择基于自动化系统的要求。在实施方式中,运行时系统改编能够通过以作为工作模板的现有运行时系统开始来实现,并且一个或多个附加功能能够由RRF实例化模块110附加到改编的运行时系统。

专门化模块111配置用于执行专门化操作以配置或定制每个RRF以满足自动化系统的功能和非功能要求。每个RRF可限定功能和子功能的可选选项。例如,调度RRF能够由用户通过用户接口从表1中列出的功能中选择来限定,诸如(a)软调度,或(b)硬调度(例如,静态硬调度、动态硬调度)。用于硬调度的子功能选项能够包括抢占式和非抢占式。更具体地,运行时系统能够包括调度RRF,该调度RRF经限定使得使用动态硬非抢占式调度来分配资源。在实施方式中,专门化模块111配置用于以如上所述的用于RRF实例化模块110的方式直接执行运行时系统的RRF的实例化,作为替代。

拼接模块112配置用于在RRS之间执行拼接操作,使得一个RRF的输出变为另一个RRF的输入。例如,在定时RRF的信息必须被传送到调度RRF以便调度RRF执行其功能的情况下,拼接模块112将定时RRF拼接到调度RRF。

堆叠模块113配置用于执行堆叠操作,使得RRF能够被聚合和分层以创建新的抽象、功能和服务。例如,日志记录RRF能够堆叠在经配置为硬实时的定时RRF或经配置为抢占式动态调度器的调度RRF之上。通过将日志记录RRF与其它RRF堆叠,日志记录RRF能够提供由底层RRF生成的数据的日志记录能力。在实施方式中,两个或多个RRF经堆叠以限定或适应运行时系统的一部分。

通常,计算机可访问介质能够包括耦合到计算装置101的任何有形的或非暂时的存储器介质或存储器介质,诸如电子、磁或光学介质,例如磁盘或CD/DVD-ROM。本文使用的术语“有形的”和“非暂时的”旨在描述排除传播电磁信号的计算机可读存储器介质(或“存储器”),但不旨在以其它方式限制短语计算机可读介质或存储器所包含的物理计算机可读存储器装置的类型。例如,术语“非暂时的计算机可读介质”或“有形的存储器”旨在涵盖不必永久存储信息的存储器装置类型,包括例如随机存取存储器(RAM)。以非暂时的形式存储在有形的计算机可访问存储器介质上的程序指令和数据还能够通过传输介质或信号(诸如,电信号、电磁信号或数字信号)来传输,传输介质或信号能够经由通信介质(诸如,网络和/或无线链路)来传送。

图2示出了根据本公开的实施方式的改编自现有运行时系统的运行时系统的实施例。在该实施例中,现有运行时系统Runtime_A经配置有基于云的运行时引擎220。这里配置有基于边缘的运行时引擎230的新的运行时系统Runtime_B能够从使用运行时信息共享203的运行时系统Runtime_A改编,然后执行专门化、拼接和堆叠操作以根据运行时系统数据流的新要求来重新配置RRF的汇编。如图所示,用于日志记录RRF 221的专门化操作211经定制为运行时系统Runtime_A的规范,而日志记录RRF 231经定制为运行时系统Runtime_B的唯一操作需要。用于各种RRF的拼接操作212,诸如定时RRF 224和调度RRF 225的拼接允许由定时RRF 224输出的定时信息被输入用于调度RRF。RRF的堆叠操作213,诸如调度RRF 222和安全RRF 223的堆叠,用于运行时系统Runtime_A,由此建立安全数据的调度。通常,能够通过将调度RRF 222堆叠在与要调度的特定功能相关联的相应RRF之上来实现任何功能的调度。为改编的运行时系统Runtime_B执行的堆叠、拼接和专门化操作生成RRF的配置,其对于运行时系统Runtime_A是唯一的。

图3示出了根据本公开的实施方式的作为运行时系统的到主机装置上的运行时系统开发和部署的实施例。在实施方式中,使用运行时规范语言(RSL)301来实例化RRF,并且为新的或改编的运行时系统专门化、拼接和堆叠RRF。根据RSL 301开发运行时程序302,其中,用户303使用可用的RRF限定运行时系统的规范。在实施方式中,用户接口116(图1)配置用于处理所接收的指令以限定RRF的参数和变量。例如,用户303能够根据RSL 301在命令行接口(CLI)上输入指令(例如,使用图1所示的用户接口125)。在实施方式中,AI模块140(图1)经训练以学习用于自动化系统的要求的优化RRF参数,并且组成运行时程序302的元素以限定运行时系统的规范。AI模块的贡献能够是组成运行时程序302的部分,以在用户接口上呈现给用户,用于帮助开发运行时程序302。

编译器304编译运行时程序302以生成运行时代码。在实施方式中,运行时系统包括具有可用RRF的RRF数据库310,每个RRF具有参数字段,该参数字段具有诸如表1中所示的可选选项。编译器304使用RRF数据库310来根据运行时程序302的规范将运行时程序302的变量映射到RRF和RRF参数,从而生成能够由RSL部署器305使用的经编译的运行时代码。

部署器305将经编译的运行时代码部署到主机系统306上,以使主机的操作系统能够进行运行时操作。部署器305配置用于部署到基于边缘的主机系统306或基于云的主机系统306。每个RRF具有其自己的最小/最大计算资源要求(例如,CPU功率、计算能力、RAM大小、内部存储器、外部存储器/闪存等)。它们一起构成运行时系统的可配置计算资源。部署器305获取这些资源要求并且在主机系统306中找到有效分配以正确地执行运行时操作。这能够被表述为优化问题。

通过引入如在所公开的实施方式中所呈现的根据RSL的软件限定的运行时,RFF集的每个功能在顶层向用户展示,以便于构建和布置运行时系统接口的配置,一旦经编译和部署,就在较低层应用该运行时系统接口。在实施方式中,根据RSL,实例化、专门化、拼接和堆叠RRF,如以下实施例所示。使用关键字在RSL中实例化RRF。例如,使用关键字“new”,以下RSL表达式将调度RRF对象实例化为MyScheduler变量,并且将定时RRF实例化为MyTiming变量。

MyScheduler=new RRF.Scheduler()

MyTiming=new RRF.Timing()

当RRF已经被实例化时,能够经由参数来执行对RRF的专门化操作,或者独立地使用RRF对象的功能来执行对RRF的专门化操作。例如,对于实例化的RRF,能够根据RSL如下限定创建动态非抢占式调度器:

MySchedulerl=new RRF.Scheduler({"scheduler_type":"dynamic",

"preemptiveness":"non-preemptive"})

可替代地,RRF专门化能够根据RSL通过如下独立地设置参数来限定:

MySchedulerl=new RRF.Scheduler()

MySchedulerl.setSchedulerType("dynamic")

MySchedulerl.setPreemptiveness("non-preemptive")

能够使用RSL中的关键字来执行对RRF的拼接操作。例如,调度RRF和定时RRF的拼接能够由变量MyBasicRuntimeBehavior使用关键字“compose”限定如下:

MyScheduler=new RRF.Scheduler({"scheduler_type":"dynamic",

"preemptiveness":"non-preemptive"})

MyTiming=new RRF.Timing({"timing_type":"hard-real-time",

"time_resolution":"100"})

MyBasicRuntimeBehavior=compose(MyScheduler,Mytiming)

RRF上的堆叠操作允许功能的重复使用。堆叠能力能够经创建为根据RSL的可重复使用的模块。例如,能够根据以下RSL表达式使用“compose”关键字将基本运行时行为变量MyBasicRuntimeBehavior封装在模块中:

Module SchedulingAndTiming{

MyScheduler=new RRF.Scheduler({"scheduler_type":"dynamic",

preemptiveness":"non-preemptive"})

MyTiming=new RRF.Timing({"timing_type":"hard-real-time",

time_resolution":"100"})

return MyBasicRuntimeBehavior=compose(MyScheduler,Mytiming)

}

在创建模块之后,能够使用关键字(例如,“compose”关键字)来完成堆叠操作。例如,将日志记录RRF堆叠在由上述模块提供的SchedulingAndTiming功能之上能够如下进行:

MyLogging=new RRF.Logging({"compression":true})

MyBasicRuntime=SchedulingAndTiming()

MyComplexRuntime=compose(MyLogging,MyBasicRuntime)

注意,该模式能够根据需要重复多次,从而提供无限的分层和堆叠功能。

在实施方式中,运行时系统能够由算法自动生成,并且用预期的应用进行测试。AI技术能够用于学习组成运行时系统的RRF的最佳方式,包括如上所述的拼接、堆叠和专门化操作。AI流水线能够经训练以产生适合于其特定用途(例如,用于切割机的软件仪表板或专门的音频诊断应用)的运行时系统的最佳RRF参数和RRF配置。使用AI流水线来优化运行时系统参数的优点是能够快速解决不同应用要求的参数。

图4示出了根据本公开的实施方式的用于开发运行时系统的可视化显示的实施例。在运行时系统的开发期间,用户接口410能够配置用于向用户显示信息,作为RRF配置状态的仪表板呈现,这能够加速运行时系统组成时间。例如,能够显示工作区模板411以示出可用的RRF集,诸如表1中所示的那些,并且存储在RRF数据库310中。能够显示实例化RRF的列表413以跟踪到目前为止已经限定的RRF。能够显示一个或多个特定的运行时系统仪表板421,诸如对于所示的Runtime_B。在实施方式中,当从现有运行时系统改编新的运行时系统时,能够显示两个这样的仪表板421,一个用于每个相应的运行时系统。专门化操作的跟踪能够显示为专门化RRF的列表422。类似地,拼接和堆叠操作的跟踪能够分别显示为拼接RRF的列表423和堆叠RRF的列表424。显示器425示出了如何显示拼接RRF的列表423的实施例。能够以类似的方式呈现用于堆叠和专门化操作的列表422、424。在实施方式中,用户在运行时系统的生命周期期间的任何时间,诸如在开发、测试期间和在部署之后,使用接口410访问运行时系统配置。这种访问允许对RRF的运行时系统配置进行修改,即使在自动化操作时也是如此。

总之,所公开的用于使用能重复使用的运行时功能来适应可重新配置运行时系统的实施方式包括优于现有技术的以下优点。

·通过仅生成满足系统要求所需的特征和消除不需要的休眠特征的膨胀,能够组成更安全和更有保障的运行时。

·根据配置指定运行时属性,从该配置能够自动生成工程接口(语法检查器、SDK)。

·运行时系统能够在不停机的情况下进行修改或增强。例如,如果新的运行时系统经开发为包括OPC-UA通信协议功能,但是过去三年的所有通信都在自动化系统部署中使用PROFINET协议,则运行时系统能够将OPC-UA功能模块置于睡眠模式以提高性能。

·在部署之后,能够容易地将新功能模块添加到运行时系统。例如,能够在运行中添加ModBus模块。

·服务容易地添加到运行时。例如,在最初部署PLC时没有HMI服务,但是随后需要这种服务的情况下,能够将其添加到配置中,并且启用新的HMI服务,并且能够将其部署在任何可用的硬件中。

·通过允许用户将部署时存在的最初RFF参数集扩展到自动化系统和软件版本更新时出现的扩展参数集,改进了运行时系统的可扩展性和可伸缩性。通过拼接和堆叠操作简化了这种扩展,而不必改变接口,使得运行时系统可随时间重复使用。

·通过以运行时规范语言的形式向用户展示RFF,使得用户的定制成为可能,这与需要来自供应商的定制订单的常规硬编码运行时系统不同,消除了延迟。

虽然已经描述了本公开的特定实施方式,但是本领域的普通技术人员将认识到,在本公开的范围存储器在许多其它修改和可替代的实施方式。例如,关于具体装置或部件描述的任何功能和/或处理能力能够由任何其它装置或部件来执行。此外,虽然已经根据本公开的实施方式描述了各种说明性实现方式和架构,但是本领域普通技术人员将理解,对本文描述的说明性实现方式和架构的许多其它修改也在本公开的范围内。另外,应当理解,本文中描述为基于另一操作、元件、部件、数据等的任何操作、元件、部件、数据等能够附加地基于一个或多个其它操作、元件、部件、数据等。因此,短语“基于”或其变体应被解释为“至少部分地基于”。

图中的框图示出了根据本公开的各种实施方式的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。在这方面,框图中的每个框能够表示指令的模块、段或部分,其包括用于实现指定逻辑功能的一个或多个可执行指令。在一些可替代的实现方式中,框中指出的功能能够不按附图中指出的顺序发生。例如,根据所涉及的功能性,连续示出的两个框实际上能够基本上同时执行,或者这些框有时能够以相反的顺序执行。还应当注意,框图说明中的每个框以及框图说明中的框的组合能够由执行指定功能或动作或执行专用硬件和计算机指令的组合的基于专用硬件的系统来实现。

技术分类

06120116513552