用于在软件定义自动化系统中分配工作负载的方法与流程

文档序号:16049906发布日期:2018-11-24 11:11阅读:265来源:国知局

本申请要求以下临时专利申请的优先权并受益:(1)2015年10月13日提交的标题为“软件定义的自动化”、申请号为62/241,028的美国临时申请,(2)2015年10月13日提交的标题为“用于连接工业物联网中的物体的体系结构”、申请号为62/240,742的美国临时申请,(3)2016年6月10日提交的标题为“软件定义的自动化”、申请号为62/348,770的美国临时申请,(4)2016年6月24日提交的标题为“软件定义的自动化架构”、申请号为62/354,683的美国临时申请,(5)2016年6月26日提交的标题为“软件定义的自动化架构”、申请号为62/354,799的美国临时申请和(6)2016年10月11日提交的标题为“软件定义的自动化系统和架构”、申请号为62/406,932的美国临时申请。前述专利申请的全部内容明确地通过引用并入本文。

背景技术

自动化是使用自动控制装置和各种技术来使监控、操作和控制过程和安装自动化,而无需显着的人为干预来实现优于手动控制的表现。用于监视、控制过程和安装(例如,在工厂,建筑物等中)的已知自动化系统通常包括各种自动化设备,诸如控制器(例如可编程逻辑控制器(plc),可编程自动化控制器(pac)),输入/输出设备(i/o设备),现场设备(例如传感器和致动器),个人计算机(pc),人机界面(hmi)等。控制器执行用户定义的程序来控制自动化过程。通常,在控制系统中,控制器从现场设备(如传感器和测量设备)读取输入数据,并使用输入数据根据用户定义的程序生成控制输出。

附图说明

图1是根据一些实施例,示出的软件定义的自动化(“sda”)技术的各方面的框图。

图2a是示出在一些行业中实施的传统自动化系统架构的示例的框图。

图2b是根据一些实施例,示出的简化且灵活的自动化系统架构示例的框图。

图3是根据一些实施例,示出的企业的更平坦和灵活的操作技术体系结构的示例的框图。

图4是根据一些实施例,示出的一个sda系统的简化架构的框图。

图5是根据一些实施例,示出的sda的功能架构的框图。

图6a是根据一些实施例,示出的sda系统的子系统的框图。

图6b是根据一些实施例,示出的每个sda子系统的控制范围的框图。

图7a是根据一些实施例,示出的在传统自动化系统中解决方案软件和自动化设备之间进行交互,以及在sda环境中系统软件和自动化设备之间进行交互的框图。

图7b是根据一些实施例,示出的sda系统的系统软件的示例组件的框图。

图7c-7f是根据一些实施例,示出的系统软件的示例用户界面的截图。

图8a是根据第一实施例,示出的示例雾服务器组件的框图。

图8b是根据第二实施例,示出的示例雾服务器组件的框图。

图9a是根据一些实施例,示出的雾服务器控制器的示例组件的框图。

图9b是根据一些实施例,示出的托管虚拟机的计算节点的示例组件的框图。

图9c是根据第一实施例,示出的容纳容器的计算节点的示例组件的框图。

图9d是根据第二实施例,示出的容纳容器的计算节点的示例组件的框图。

图9e是示出托管裸机映像的计算节点的示例组件的框图。

图10a是根据一些实施例,示出的sda系统的组件视图的示例的框图。

图10b是根据一些实施例,示出的sda系统的控制视图和系统视图的示例的框图。

图11是根据一些实施例,示出的在计算节点上提供功能单元的sda子系统的编排的示例的框图。

图12是根据一些实施例,示出的创建自动化系统的示例方法的逻辑流程图。

图13a是根据一些实施例,图示的经由系统软件将功能单元添加到自动化系统的示例方法的逻辑流程图。

图13b根据一些实施例,描绘了传送机系统的拓扑图的示例。

图14是根据一些实施例,示出的在sda系统中供应功能单元的示例方法的逻辑流程图。

图15是根据一些实施例,示出的配置sda系统中的功能单元的示例方法的逻辑流程图。

图16a是根据一些实施例,图示的经由软件定义自动化系统的示例方法的逻辑流程图。

图16b是根据一些实施例,示出的调试或供应sda系统中的功能单元的示例方法的逻辑流程图。

图17a是根据第一实施例,示出的自动化系统中可以配置自动化功能的框图。

图17b是根据第二实施例,示出的自动化系统中可以配置自动化功能的另一示例性框图。

图17c是根据第三实施例,示出的自动化系统中可以配置自动化功能的另一示例性框图。

图18是根据第一实施例,示出的方法逻辑流程图。

图19是根据第二实施例,示出的方法逻辑流程图。

图20是更详细地描绘了图18及图19所示的方法中的一部分的逻辑流程图。

图21是更详细地描绘了图18及图19所示的方法中的一部分的逻辑流程图。

图22是更详细地描绘了图18及图19所示的方法中的一部分的逻辑流程图。

图23是更详细地描绘了图18及图19所示的方法中的一部分的逻辑流程图。

图24示出了以计算机系统的示例形式的机器的图形表示,在该计算机系统中可以执行用于使机器执行这里讨论的任何一个或多个方法的一组指令。

详细说明

1.概述

本公开描述了提供用于设计,管理和维护高度可用,可扩展且灵活的自动化系统的参考架构的软件定义自动化(下文中称为“sda”)技术和系统(以下称为“sda系统”)。

本公开还描述了sda系统中安排工作负载的方法。

在一些实施例中,sda技术使控制系统和相关软件能够在雾平台或私有云内运行。在传统的制造设施,炼油厂,潜艇,车辆,隧道,行李处理系统,能源管理系统,楼宇管理系统,洪水控制系统,电网控制系统等中可以找到各种不同复杂程度的控制系统。通过将整个控制系统或其至少一部分移动到雾平台或私有云,以及向控制系统元件提供软件接口,sda技术允许在自动化工程的整个生命周期中进行的工程任务,例如设计,编程,配置,安装,运行,维护,升级和关闭将以更简单,更高效和更具成本效益的方式进行。

如图1所示,sda系统100的体系结构包括三个方面:(1)智能分布式系统105,(2)通信骨干110和(3)智能连接设备115。智能分布式系统105采用基于软件的方法在整个生命周期内管理企业自动化系统的各个方面。这种基于软件的方法意味着sda系统易于设置、调整和适应任何不断变化的要求以适应不断变化的业务环境。在智能分布式系统中,自动化服务器可以托管应用程序,数据库等,并且具有高度的弹性。在一些实施例中,系统通过使访客(例如,控制/自动化应用)在逻辑上被定义并分布和重新分配以在一个或多个主机(例如,虚拟机,容器,裸机)、服务器、物理自动化控制器、嵌入式系统等上运行而展现分布式智能。该分发可以由于各种原因而被启动,例如为了优化性能,升级硬件等。例如,具有大量计算需求的应用可以被部署在能够提供必要的计算资源的计算资源上以使得其被执行。同样,具有关键时序约束的应用程序可以部署在与其控制的现场设备非常接近的计算资源上,以减少通过网络时的延迟和/或其他延迟的影响,并提高系统的性能。

通信骨干网110提供贯穿自动化架构的从控制层到现场总线、从控制器的底板到智能连接设备115等设备的连接。这种通过以太网实现的连接性极大地提高了自动化设备和数据的可访问性,并有助于在正确的时间向正确的实体提供正确的信息。在一些实施例中,sda系统的通信骨干110可以使用诸如软件定义网络(sdn),时间敏感网络(tsn)等一个或多个联网技术。sdn使网络元素(包括交换机和路由器)以及承担类似角色的任何节点能够以更简单的方式进行配置和重新配置,而无需访问每个物理设备。例如,每个网络设备可以由逻辑集中式sdn控制器使用一组协议来访问。tsn支持实时以太网联网,实现整个网络的实时控制。

智能连接设备(或智能连接产品)115是可以连接到网络,生成数据并执行功能的复杂系统。智能互联设备意识到它们的操作环境,因此可以做出明智的决策并相应地调整它们的行为。例如,考虑具有感测电网络的基本功能的诸如功率计的传感器。除基本功能之外的一个或多个功能可以部署到功率计中,以将功率计转换为智能连接设备。这种智能连接的功率计可以利用其操作环境来例如检查特定条件,生成和发送警报等。智能连接设备115可以包括硬件,软件,传感器,存储器,微处理器,连通性等。智能连接设备的一些非限制性示例包括:控制器(例如,可编程逻辑控制器或plc,可编程自动化控制器或pac),驱动器,i/o集中器,传感器,致动器等。

在一些实施例中,sda系统可被描述为服务的集合。在一些实施例中,它可以是提供虚拟基础架构的基础架构即服务(iaas),客户可以在其上托管他们自己的应用。它也可以作为网络即服务(naas),因为它可以根据客户需求以简单的方式配置和重新配置或修改网络。sda系统也可以是软件即服务(saas),因为它可以在一台或多台服务器上托管软件(例如somachine,unity),并使用户能够使用智能手机,笔记本电脑,个人电脑,平板电脑和/或其他客户端设备以客户端/服务器方式访问软件。它也可以是数据/信息即服务,定义解决方案/系统级别的数据管理,以避免双重定义和不一致,并允许大数据和分析。它可以是一个平台即服务(paas),提供一个包括有一组服务器的平台,该组服务器提供主机用来执行按需应用程序,无论是否嵌入。

图2a描绘了在许多行业中广泛实施的传统自动化系统架构。在传统的自动化系统体系结构中,级别2的自动化设备(例如,plc230a-c)通过设备网络235a-c连接以使得级别1的自动化设备(例如,现场设备225a-c)由plc230a-c分别控制。类似地,控制室中的级别2的plcs230a-c和工程工作站240以及级别3的过程和历史服务器245连接到相同的控制网络250。这使得工程师能够访问和/或编程plc230a-c和访问存储在历史存储器服务器245中的直接来自工程工作站240的过程数据。在级别4处,在自动化系统架构的顶部,企业室可以包括在控制室级别210通过企业网络255连接到工程工作站240和历史记录服务器245的系统/企业服务器260。最后,在最高级别5处,跨越所有四个级别的工业设备,机器,控制器,传感器和执行器(“操作技术”或ot265)的全域与办公网络(即信息技术(it)270)整合在一起。

传统的自动化系统架构(例如,图2a中描绘的传统ot架构265)具有若干缺点。一个缺点就是锁定的架构。换句话说,传统自动化系统架构对应用程序,设备或网络端的配置进行动态更改时缺乏灵活性。此外,传统的自动化系统架构的特点是功能孤岛,这带来复杂性并使控制系统不灵活。复杂性和缺乏灵活性限制了架构的运营效率,是客户受挫的源头,并且需要昂贵且不灵活的配置。例如,在图2a中,每个功能单元275a-c被描绘为分别具有其自己的设备网络235a-c,这阻碍了不同功能单元中的不同plc彼此交互。如果需要将在功能单元275a中的plc230a中运行的应用程序切换到功能单元275b中的plc230b(例如,因为plc230a发生故障)并使该应用程序控制功能单元275a中的i/o设备,这样一个变化可能需要大量的重新设计和工业操作的中断,这可能是昂贵的。

传统自动化系统体系结构的另一个问题是在不同应用和设备的管理以及网络基础设施方面的复杂性。一个典型的自动化系统可以由数百个自动化设备和由多个应用程序管理的过程组成。例如,使用编程软件(例如由施耐德电气公司制造的施耐德电气的用于plc的unity软件)对plc进行编程,并将plc配置存储在plc软件项目(例如unity项目)中。同样,监控和数据采集(scada)配置存储在scada项目中。通常还通过不同的软件应用来管理设备配置(例如,ip寻址,i/o配置,访问控制列表,本地子组件和支持库,事件触发,密码等)。同样,自动化设备互联网协议(ip)配置不是从单一点进行管理,而是在每个点进行管理。单独地管理这些应用程序和设备以实现兼容性,版本控制,维护,ip连接等非常复杂,需要大量专业知识和努力。而且,由于这些应用程序和设备没有集中管理,因此在发生灾难时无法恢复整个系统。因此,传统的自动化系统体系结构易受安全风险(例如未经授权的设备配置改变)和灾难(例如火灾,洪水)的影响。

缺乏对应用和设备的集中管理的另一个缺点是难以访问由系统的不同部分生成的数据。将由不同应用程序和设备生成的大量不同类型和数据集合到一个地方成为一项过于复杂和耗时的任务。如果没有相关数据的访问权,就难以获得整个系统的视图来进行性能优化。例如,考虑一种场景,其中工厂车间上的少数设备可能具有可用于执行应用程序的资源。除非工厂工程师专门访问每台设备并确定哪些资源可用,否则有关这些设备资源可用性的信息将不会被了解,这些信息也不会在当决定在哪里部署应用时或者是否需要增加一个新的自动设备时被考虑。因此,可能会做出低效和次优的决策。作为另一个例子,考虑病毒感染工业控制器的情况。在传统的自动化系统中,检测到这样的事件可能会导致大多数工厂(如果不是整个工厂)停机,因为工程师可能不得不实际更换新控制器并再次对其进行配置和编程。

本文描述的sda技术通过将刚性锁定的传统架构变换成灵活的“更平坦”软件定义架构来克服传统自动化系统架构的这些和其他缺点。通过使用虚拟化(例如,服务,应用程序)技术,可配置设备和/或联网技术,变换的ot架构使系统级上的网络配置和自动化功能/应用程序部署成为可能。

图2a中描绘的传统自动化架构是刚性的且具有至少四级控制的分层结构,但由图2b中描绘的sda技术定义的示例ot架构相当简单,具有三级控制(因此“更平坦”的描述)。这三个控制级别包括企业机房级别205(级别4),功能单位,plc,现场过程设备级别280(级别1)和综合级别212(级别3/4)。转换后的ot架构还包括企业网络255和替换传统ot架构的分段设备网络的单个设备网络235。例如,如图2b所示,诸如plc285,i/o,hmi290a,290b和工程师站240之类的所有自动化设备都连接到单个设备网络235。在该体系结构中,可以将运行于功能单元275b中的plc上的应用移动到服务器285(例如,通过创建作为诸如虚拟机或容器的主机上的plc的软件实现的虚拟plc)并且网络可以被自动地配置,以确保来自服务器285中的虚拟plc(“vplc”)的流量以及时的方式流入功能单元275b中的i/o设备以监视和/或控制输入/输出设备或现场设备。输入设备的一些非限制性示例包括:传感器,计量设备,压力开关,液位开关等。类似地,输出设备的一些非限制性示例包括:致动器,马达,继电器或螺线管,模拟设备等。以这种方式,sda技术可以简化自动化功能和/或应用的部署和配置。

所公开的sda体系结构的优点之一是智能企业控制。智能企业控制包括将现有的自动化系统与其他系统(例如企业,生命周期和价值链系统)相连接,以优化整个制造企业,并更好地实现更大业务控制的实际收益。智能企业控制有助于打破企业孤岛,并允许将生产系统与企业资源规划(erp)系统,产品生命周期管理(plm)系统,供应链管理(scm)和客户关系管理(crm)系统紧密集成。这些不同的企业系统在历史上被相互独立地管理,这阻碍了企业的全局视角。所披露的sda架构的整体方法可以促进企业获得巨大的效率收益。

例如,智能连接设备可以与更广泛的企业紧密集成以促进更灵活和高效的制造。智能企业控制的实施相当复杂,sda架构和标准使信息技术(it)和操作转换(ot)系统的融合成为可能。更紧密的整合使企业不仅能够更高效,而且还能够对波动的市场环境提供更大的灵活性和响应能力。控制的概念可以从物理参数的实时控制扩展到整个业务的正确时间控制,包括物理参数和非物理参数。为企业带来的好处包括提高防范网络威胁的能力,更具创新性,并能更好地管理安全,性能和环境影响。

智能企业控制的一些示例应用包括定制和批量大小,减小产品召回的大小,在制造过程的早期检测缺陷产品,并修改产品设计以消除根本原因,基于天气预报修改生产计划,根据原材料的现货价格修改生产计划/配方,等等。

图3是根据一些实施例图示的用于企业的更平坦和灵活的操作技术(“ot”)架构的示例的框图。如所描绘的,根据sda技术的更平坦的ot架构具有两层:用于实时确定性控制的“时间敏感”基于ip的云层330和企业云层325。时间敏感层330包含传感器和致动器级别320(l1)和离散,混合或连续控制级别315(l2),并且通过针对实时确定性通信而优化的云计算技术实现。换句话说,时间敏感层330确保来自l1和l2层的时间敏感的控制/数据业务被管理以满足延迟和/或可靠性要求。如本文所使用的,“云”是指所使用的技术,而不是基础设施的物理位置。例如,在自动化行业中,可以使用具有一个或多个“内部”云的体系结构。

在一些实施例中,包括时间敏感层(例如,l1和l2中的传感器,致动器和控制器)的ot设备是云就绪的并且能够透明地与企业云层的it系统对接。在一些实施例中,这些设备也可以具有高度的智能或逻辑。例如,控制阀可以嵌入温度,压力和/或声学传感器,这些传感器能够使用从企业云层接收到的设定点自主操作,例如以确定他们自己的预防性维护需求,和/或通知及时维修部门。

云企业层335包括层级的制造和操作管理(mom)级别310(l3)和企业资源计划(erp)级别305(l4)。企业云层325中的erp335a,mom335b,产品生命周期管理(plm)335c和其他功能(例如资产管理335d,能源管理335e等))彼此互操作并且与时间敏感的工业自动化和控制系统提供协调的整体观点和企业制度管理。在一些实施例中,使用语义和发现机制(例如,基于行业标准)跨两层的信息流完全透明。

更扁平的架构可以为最终用户提供许多益处。例如,较扁平的架构与较低的实施成本和较高的灵活性相关联。它还可以支持到任何端点的连接340,这通过标准化的语义信息模型来实现。语义信息模型和相关服务有助于将现场数据优化推送到云,并基于云中执行的分析来调整现场设备行为。

其他益处包括附加递增功能的实施,批量大小1,透明和成本有效的连接到实现信息驱动的制造的企业系统。

根据sda技术的ot架构的另一个益处是其应用于大规模控制网络体系结构。大规模控制网络架构是整个生命周期中的工程挑战,因为它通常包括通过网络连接的大量设备(例如,以太网/tcp-ip)。大量的连接设备意味着前所未有的复杂程度。例如,这种架构可以包含多达2800个plc,并且可以在30个网络环路上连接5400个驱动器。按照sda技术的ot架构可以简化这种大规模架构的设计,管理和维护。例如,在这里公开的ot架构中,可以以有组织和有效的方式来实现数据处理,这又优化了操作性能。例如,数据存储和检索的响应时间可以通过sda系统进行监控,并且可以进行调整以优化操作性能。同样,组件的健康状况可以通过集中管理组件持续监控,任何可能影响系统性能的事件都可以及时发现,并通过多个方面的协调响应进行补救,包括虚拟化,网络安全和网络。类似地,通过考虑用于访问设备和应用信息的各种协议来分配处理和设计网络,ot架构可以提供改进的控制性能。此外,通过启用故障诊断和冗余,可以提高系统可用性和可持续性。

现在将详细讨论包括各种组件,特征,优点和应用的sda系统的这些和各种其他方面。

2.sda架构

a.简化的架构

图4是示出根据一些实施例的sda系统的简化架构的图。该体系结构描绘了链接到系统软件440的雾服务器405以及经由通信骨干网410通信地耦合到雾服务器405和系统软件的智能连接设备415a,415b。该体系结构还描绘了至少一些智能连接设备415b和雾服务器405可以通信地耦合到云450。

雾服务器405由控制资源和计算资源的集合组成,这些资源和计算资源被互连以创建用于托管企业的自动化系统的逻辑上集中的但可能物理分布的系统。这里使用的“雾服务器”或“雾平台”是已经被本地化为一个或多个计算和/或控制节点的云管理系统(或本地化子系统或本地化系统)。换句话说,雾服务器405是以一个或多个计算和/或控制节点的形式被带到本地地面或设施(因此术语“雾”)的云技术,以管理整个自动化系统或其一部分。雾服务器405通过提供其上可以运行和/或管理自动化系统的虚拟化基础架构来实现虚拟化。虚拟化基础架构包括执行虚拟机,容器和裸机(或裸机映像)等主机的计算节点。主机本身可以执行包括物理组件或功能单元和自动化门户或系统软件440的应用程序和/或软件实现的访客。如本文所使用的,虚拟化是创建某物的虚拟版本。例如,虚拟组件或虚拟化组件(例如,虚拟plc,虚拟交换机,网络功能虚拟化(nfv))表示运行在计算节点上的主机上所执行的功能。它本身并没有物理存在。雾服务器405不需要集中在集中控制室中;靠近传感器和致动器(例如io设备,嵌入式设备)的控制器,设备和/或服务器435也可以在雾服务器405的管理下被考虑。在一些实施例中,雾服务器405还可以聚集、存储和/或分析数据,和/或将数据或分析报告给云450。云450可以是企业云(即,私有云),公共云或混合云。系统软件440为最终用户提供单一入口点以定义(例如,设计,提供,配置等)自动化系统。定义自动化系统的一种方法是管理用户希望执行的应用程序/应用程序功能的分发。

智能连接设备415a,415b(也是智能连接产品)通过执行应用/应用功能来监视和/或控制设备,传感器和/或靠近设备/原材料/环境的致动器。在各种实施例中,智能连接设备具有以下特征:(1)物理和电气组件,(2)固件或“智能”嵌入部件,以及(3)连接性和互操作性。在一些实施例中,智能连接设备还可以具有可以远程运行或者在船上运行的网络安全组件。

一些智能连接设备415a可以本地运行应用或应用功能(“应用”)(例如,速度驱动器的速度/转矩调节环路),因为它们具有这样的处理能力。这意味着不需要在其他地方(例如,在连接的pc,服务器或其他计算设备上)执行那些应用程序以获取数据来执行其功能。这具有更快的响应时间(即更短的延迟)和节省网络带宽的优点。板载或本地执行应用程序的另一个优点是它可以提高数据的一致性和架构的稳健性,因为即使网络出现故障,设备仍可继续生成信息(例如警报)或记录数据。

在一些实施例中,智能连接设备415b可以全部或部分地在一个或多个服务器(例如,服务器435,雾服务器405)中执行。例如,智能连接设备415b可以响应远程信号(例如,远程方法调用,应用程序编程接口或api调用),就好像应用程序在本地运行一样,而实际上应用程序是远程运行的,例如在雾中服务器405。在一些实施例中,智能连接设备可以捕获关于其自身状态和其环境状态(例如,它正在监控的设备)的实时数据并将这些数据发送到雾服务器405和/或远程云450。在一些实施例中,智能连接装置415a,415b可将所捕获的实时数据转换成信息(例如,警报),存储它们并对它们执行操作分析。然后,智能连接设备415a,415b可以组合上面描述的监视和控制功能来优化自己的行为和状态。

通信骨干网410便于雾服务器405、系统软件440和智能连接设备415a,415b之间的交互。通信骨干网(或物联网(iot)/工业物联网(iiot)骨干网)包含一组网络体系结构和网络砖,其能够实现智能连接设备415a,415b,雾服务器405以及作为sda体系结构一部分的任何其他组件之间的物理及逻辑连接。例如,工厂中的各种设备可以使用基于诸如以太网,tcp/ip,网络和/或软件技术的各种标准的技术彼此连接并与企业系统(例如mes或erp)连接。全球统一的工业以太网主干形式的通信骨干网可以提供:从工厂(ot)到企业应用程序(it)的轻松访问数据,灵活的方式来定义不同类型的网络体系结构(例如,星星,菊花链,戒指)满足客户需求,坚固的架构以满足可用性,安全性和恶劣环境支持等要求,并在适当的时间通过一条电缆向合适的人员提供正确的信息。

通信骨干网410包括提供交换机,路由器和/或有线系统的全部工业以太网基础设施以满足所有拓扑的需要。通信骨干网410还基于一个基于各种标准(例如,modbus/tcp-ip,以太网ip,opcua,dhcp,ftp,soap,rest等)的标准来支持一组连接协议。通信骨干网410还可以支持一组网络功能,这些网络功能提供诸如使用标准网页的诊断,监视和配置以及定义模式的设备集成参考体系结构的功能,将设备组集成到应用级别和网络级别的控制器以进行配置,调整和诊断。在一些实施例中,网络安全元件可以内置到该架构中。通信骨干网410还遵循一组体系结构规则,该体系结构规则以性能(服务质量或qos),稳健性(用于冗余的rstp和prphsr)和安全级别(iec61508)来构建体系结构。在一些实施例中,通信骨干网410还支持集成一组网关以连接到网络的传统(即,非以太网)设备。

通信骨干网410可以使用多种协议来提供多种服务以满足多种需求。表1列出了一些通信需求和适用协议的例子。

现有系统中的网络被非常细分以允许有保证的或可靠的通信。sda架构中的通信骨干网410可以通过软件定义网络(sdn)和时间敏感网络(tsn)技术克服现有系统的问题。sdn技术能够将网络控制逻辑从底层网络硬件或设备(例如交换机,路由器)中分离出来,并实现网络控制的逻辑集中。sdn技术可以给这些网络带来简单性和灵活性,允许通过网络策略驱动的不同层间的通信。tsn技术为标准以太网增加了一系列功能,以在区域或整个架构中提供实时功能和有时间保证的交换。此外,网络安全解决方案也可以集成并适应sda架构。

b.功能架构

在一些实施例中,sda体系结构能够通过提供资源的系统范围管理的一组控制器来管理自动化系统。这些控制器构成了雾服务器的控制资源,并提供了一个统一的方法来管理整个系统。系统管理员可以与这些控制器节点进行交互,以进行初始设置,系统扩展,诊断,维护等。类似地,在系统内外执行的应用程序可以与这些控制器节点交互以管理系统中的特定方面或功能(例如ics工具,网络工具,电气系统工具),管理计算资源(例如监视,管理其他应用程序和/或资源)等。图5中描绘了sda架构的这个功能视图。

图5中描绘的sda系统的示例功能视图包括应用平面575,控制平面580和资源平面582。应用平面575包含系统软件540和在系统中被执行的软件组件或应用535,并且它们都使用和管理系统的一组资源。控制平面580包括一组控制器,包括雾服务器控制器510,sdn控制器590a/tsn控制器590b(或网络控制器)和cs控制器555。这些控制器向应用平面中的应用提供标准化的一组接口575来访问和/或管理系统的资源平面582中的资源。在一些实施例中,控制器还提供诊断,可用性管理等。sdn控制器590a/tsn控制器590b在系统级管理和分配网络策略。类似地,cs控制器555在系统级执行安全策略565。

在一些实施例中,这些控制器可以具有彼此的分层关系。例如,sda系统可以包括顶层控制器(未示出)和一组中央控制器(例如雾服务器控制器510,网络控制器590a,590b和cs控制器555),每个控制器用于控制建筑物或场地。顶层控制器可以将策略分发给中央控制器,以使这些控制器能够控制其自己的建筑物或场地。虚拟化环境支持控制器的分层分布。

资源平面582可以包括网络资源560,由计算节点515表示的计算资源,存储资源525和安全资源595。系统软件540和应用程序535在由雾服务器控制器510管理的计算节点515中执行。向系统提供计算资源的计算节点515可以由雾服务器控制器510物理分布和管理。例如,服务器形式的一些计算节点位于雾服务器或私有云中,而其他计算节点例如智能连接设备在边缘运行。网络资源560可以是雾服务器中的虚拟网络资源,交换/路由硬件中的物理基础设施资源或位于智能连接设备中的基础设施资源。存储资源525可以是用于存储虚拟映像,卷,应用,过程数据,状态数据等的数据库和/或其他设备。安全资源595可以包括驻留在计算节点515,存储节点525和/或提供诸如安全策略的实施,入侵检测和保护等的安全服务的独立组件上的安全组件。

控制器编排和监视系统的一些或全部资源。管理系统的应用(例如,系统软件540或自动门户,网络管理工具等)向系统发送请求以应用特定策略。例如,系统软件可用于部署连接到具有特定实时网络要求,安全要求和可用性/弹性要求的一组设备的新plc。在一些实施例中,应用对应于组件的软件/固件实现。这些应用程序可以部署在计算资源上,并可以使用存储资源和网络资源进行通信。

3.sda系统

sda系统包括各种子系统,这些子系统一起工作以提供用于创建,管理和操作自动化系统的完全集成的解决方案。图6a是示出根据一些实施例的sda系统的子系统的框图。在一些实施例中,sda系统600包括具有雾控制器或冗余雾控制器610,一个或多个计算节点615和存储器625的雾服务器子系统605(“雾服务器”)。sda系统600还包括软件组件子系统630。在其他实施例中,sda系统可以进一步包括具有安全控制器或冗余安全控制器655,物理和/或虚拟化安全组件660以及安全策略储存库665的网络安全(“cs”)子系统650。在其他实施例中,sda系统还可以包括具有网络控制器或冗余网络控制器690,物理网络680,物理网络组件682,虚拟网络620,虚拟网络组件622和网络策略储存库685的网络子系统670。

雾服务器605提供可在其上运行和/或管理自动化系统的虚拟化环境。雾服务器605包括计算节点615,其提供逻辑处理能力并且可以以高水平的弹性来托管应用程序,数据库等等。计算节点的非限制性示例包括:服务器,个人计算机,包括智能连接设备等的自动化设备。

雾服务器控制器610利用雾服务器管理软件来执行其功能。雾服务器管理软件可以基于openstack等云管理软件。诸如openstack等标准/现成形式的云管理软件通常用于信息技术(it)领域,用于数据中心管理。然而,自动化系统管理涉及不同的挑战。例如,一些自动化系统可以运行时间关键和/或安全关键的应用,这些应用需要关于延迟,可靠性和/或其他因素的确定性保证。考虑一种自动化奶酪切片系统,其中刀片切片通过奶酪块和奶酪块运动之间的高速同步运动对于产生均匀厚度的奶酪切片是关键的。如果有任何加工或网络延迟,可能会导致不同厚度的奶酪片,进而导致浪费和生产力损失。

雾服务器控制器610管理虚拟化环境的所有方面以及计算节点615的完整生命周期。例如,雾服务器605可以对计算机节点上的主机(例如虚拟机,容器或裸机)进行开关机,以及创建和销毁虚拟化组件645和虚拟网络620。如本文所使用的,虚拟化组件/元件/实例645是其所代表的物理设备或其物理设备的一部分的逻辑等同物,被实现为软件实体在雾服务器605内部运行。虚拟化组件645还可以包括主机(例如,配置有应用程序的虚拟机是虚拟化组件/元件/实例)的应用程序和/或应用程序功能等软件组件。

雾服务器控制器610可以通过控制器的冗余和计算节点故障的管理来提供高可用性(ha)。控制器还可以管理各个计算节点的启动,关闭和修补。在一些实施例中,雾服务器平台可以提供对虚拟化组件的高可用性的支持。在一些实施例中,雾服务器605可以包括存储节点或数据存储装置625。存储装置625可以存储虚拟图像,卷(即,实例化图像的硬盘驱动器),应用和过程数据等。

软件组件子系统630可以包括由雾服务器605的虚拟化生态系统托管的虚拟化组件645。软件组件子系统630还可以包括在虚拟化环境内运行的软件635的虚拟化实例(例如,软件编程,配置和/或管理(例如,unity,somachine,scada),其用于编程,配置,管理或以其他方式与自动化设备交互,也称为自动化门户),它提供单一接口来管理自动化设备和/或整个自动化系统的拓扑,库存,配置,编程,控制和/或诊断。

通过系统软件640,用户可以访问各种应用程序以在所有生命周期阶段进行系统定义和系统管理。例如,系统软件640可用于在设计阶段期间配置和参数化设备,并在维护阶段期间调整,编程和/或诊断设备。系统软件640的一些好处包括对最终用户的简单性和便利性以及成本降低,因为自动化系统中的任何设备的所有方面都可以从单个门户进行管理。除了为整个系统提供单一入口点之外,系统软件640还提供一致的用户界面和用户体验,这有助于减少不一致性并提高效率和生产率。参考图7b的系统软件740详细描述系统软件640及其组件。

cs子系统650包括相关联的cs控制器或冗余cs控制器655以及虚拟化和/或物理安全组件660。安全子系统650通过安全策略和安全组件提供整体网络安全解决方案,例如入侵检测/保护系统,虚拟化的下一代防火墙,认证机构和识别系统等。cs控制器655向虚拟化和/或物理组件传播安全策略,以确保必要的安全保护就位。在一些实施例中,cs子系统还可以向其他组件和子系统提供安全策略和认证服务。在一些实施例中,cs系统650的安全策略可以存储在安全策略存储库665中。

网络子系统670包括用于整个sda系统解决方案的以太网网络基础设施。在一些实施例中,网络子系统670是具有作为网络控制器690的sdn控制器或冗余sdn控制器的sdn网络子系统。sdn网络将网络的控制逻辑与底层网络硬件(例如路由器,交换机)相分离,且通过sdn控制器提供网络控制的集中逻辑。这意味着sdn控制器可以在整个网络基础设施(即,物理网络680和物理网络组件682以及虚拟网络620和虚拟网络组件622)中传播网络策略以控制连接性,带宽和等待时间,服务水平协议(sla)(例如,re:确定性响应时间/转移时间),交通流量控制等,并且网络硬件可以实施这些策略。在一些实施例中,网络子系统670的网络策略可以存储在网络策略储存库685中。

在一些实施例中,网络子系统670可以包括网状无线电网络。在网状无线网络中,每个节点可以连接到至少两个其他节点,数据在一个称为跳跃的过程中从节点传递到节点。由于节点本身充当路由器,因此无线网状网络通常不需要指定的路由器。然而,一些网状无线电网络包括一个或多个网状路由器以及网状节点以代表其他网状路由器和/或网状节点来中继流量。在一些实施例中,网络子系统670可以包括高速射频(rf)网状网络或混合网络上的虚拟电路,其中仅通过节点的无线电收发器促进通信,而无需任何外部设备。因此,在一些实施例中,网络子系统或网络基础设施的网络元件的配置可以包括网状无线电网络中的网状节点和/或网状路由器(例如,启用流动的网状路由器)的配置。

在一些实施例中,网络子系统670可以是具有作为网络控制器690和tsn基础设施的tsn控制器的时间敏感网络(tsn)子系统。tsn网络子系统确保按照预定义的最大确定性传输时间和高可靠性传输/共享关键任务和时间敏感数据。通常,tsn基础设施包括支持tsn的网络组件。应该注意的是,在一些实施例中,网络子系统670可以包括sdn和tsn网络(并且因此包括sdn和tsn控制器以及sdn和tsn组件)。在各种实施例中,网络控制器690可以是本机雾服务器虚拟网络控制器,传统网络管理系统控制器,sdn控制器,tsn控制器和/或其任何组合。

sda解决方案中的子系统的作用相互补充以提供完全集成的解决方案。具体而言,雾服务器605可以通过托管子系统的虚拟化元件和/或通过子系统的控制功能与这些子系统中的每一个进行交互。虽然雾服务器605与每个sda子系统具有整体关系,但它们不被视为在雾服务器605的范围内。图6b是示出根据一些实施例的每个sda子系统的控制范围的图。

雾服务器605的核心是雾服务器控制器610,计算节点615以及雾服务器605内的虚拟化组件645的管理。虚拟化组件645和软件635(例如历史记录器,scada,somachine,unity)不在雾服务器605的控制范围内,而是在软件组件子系统630的控制范围内。然而,软件组件630通过系统软件640与雾服务器控制器610和计算节点615进行交互以向雾服务器605和/或其他子系统提供配置和控制输入以驱动它们的操作。

为了提供系统范围的解决方案,网络控制的连续性扩展到包括网络的虚拟和物理组件。因此,网络子系统670的领域不仅包括物理网络组件682和物理网络680,还包括创建并存在于雾服务器605内的虚拟网络620和虚拟网络组件622。这需要完全集成网络子系统670和雾服务器605来提供执行该控制的机制。例如,雾服务器控制器610可以在雾服务器605中创建虚拟网络620,并且控制托管在计算节点615和虚拟网络620上的虚拟机/容器之间的连通性,而网络控制器690可以配置虚拟网络根据一个或多个网络策略的虚拟网络620的组件622。该级别的集成需要实例化和删除序列的编排,因为显然,虚拟网络620必须存在才能连接虚拟机和容器。

cs子系统650对诸如入侵检测系统(ids)696a,入侵防护系统(ips)696b(例如,虚拟化的下一代防火墙)等安全组件进行控制,且还对传播安全政策给不同实体的cs控制器655进行控制。在一些实施例中,cs子系统650可以与sda系统解决方案的所有方面集成。例如,网络控制器690可以利用由cs子系统650提供的安全服务向其范围内的网络组件(例如物理或虚拟)提供安全配置信息。在一些实施例中,雾服务器605可以利用该服务来认证登录,为主机(虚拟机,容器,裸机)配置提供安全策略,在实例化之前验证主机映像等。

在一些实施例中,某些子系统可以被认为是在sda系统解决方案的外部。这些外部子系统包括非sdnot网络和非sda边缘设备699(例如传统设备)以及it网络和后台设备698。在一些实施例中,工业物联网(iiot)697或其他基于云的服务可以被视为sda系统解决方案的外部或一部分。

4.系统软件或自动化门户

图7a是根据一些实施例示出的传统自动化系统中以及sda环境中,解决方案软件与自动化设备之间的交互的框图。

通常,每种类型的设备具有其自己的特定软件(也称为工具或软件工具),利用该软件可以对设备进行配置,参数化和/或编程。例如,在机器/制造自动化系统706中,诸如somachine的解决方案软件735a被用于配置,参数化和/或编程机器设备701。类似地,在过程自动化系统708中,另一个解决方案软件735b诸如plantstruxurepes(处理专家系统)被用于配置,参数化和/或编程过程。在自动化设备连接更紧密且集成度更高的系统级别,用户单独管理这些软件解决方案效率极低。除了诸如跟踪软件解决方案版本,升级等管理问题之外,单独的软件解决方案还意味着用户无法获得所有设备的系统视图,即机器设备和过程设备。

在sda系统中,系统软件740通过公共框架742和其他组件协调系统视图中的各个视图。换句话说,考虑到全自动化范围,系统软件740提供所有自动化设备/设备的系统级视图。在上述工业自动化系统的例子中,这意味着通过系统软件740,用户可以看到整个机器701和处理设备702,并且可以配置,参数化和/或编程那些机器和处理设备701,702,而不必单独启动或调用设备类型特定的软件。通用框架742特别提供了一致的用户界面,编程规则和基础设施,以简化与控制器(例如机器控制器712,设备控制器714),hmi790,设备701,702等的通信,而不管它们是机器或流程相关。以这种方式,系统软件740便于整个自动化系统的设计,开发和管理。

图7b是根据一些实施例示出的sda系统的系统软件的示例组件的框图。

系统软件740可以是可从客户端设备访问的基于web的门户或软件应用程序。如这里所使用的,客户端设备可以包括但不限于:工程站,平板电脑740a,移动设备740b,膝上型计算机740c,台式计算机740d,人机界面(hmi)/移动hmi790等。如前所述,系统软件提供一个入口点,通过该入口点,可以配置,参数化和编程各种sda系统管理的自动化设备或设备,无论它们在雾服务器还是工厂车间。取决于实施例,系统软件740可以包括更多或更少的组件。应该注意的是,为了简洁起见,仅仅描述了系统软件740的选择部件。

在一些实施例中,系统软件740包括如上所述的公共框架742。公共框架742可以提供应用接口752,控制器/设备接口754和用户接口756,通过系统软件用户接口可以使得诸如编程,配置,调整,诊断等任务变得可行且更高效。

在一些实施例中,系统软件740包括拓扑视图生成组件726,其可以收集来自自动化系统的各个部分的拓扑信息并呈现所有自动化设备的系统级可视化以及它们之间的连接,无论它们是物理的还是虚拟化的。在一些实施例中,可以生成自动化系统的一部分的拓扑图。拓扑视图可以是表格视图(例如,在系统软件740的导航面板中示出)或者图表视图(例如,在系统软件740的设计面板中示出)。拓扑信息可以通过查询系统软件740的组件,雾控制器(例如,图4a-4b中的雾服务器控制器410,图6a中的雾服务器控制器610),网络控制器(例如图6a中的控制器690,组件之间的流的连接和存在)和/或sda系统的其他子系统而被采集得到。

在一些实施例中,系统软件740还可以包括功能单元模板库724。功能单元的模板是功能单元的软件模型,可以在雾服务器中进行参数化和实例化。这里使用的功能单元是具有能够执行指定的目的或功能的硬件和软件部分的硬件实体,软件实体或混合实体。应该指出,功能单元可以由其他功能单元组成。例如,一个plc,一个驱动器,一个电机和一个i/o模块都可以被认为是一个功能单元,输送带系统也可以由三个plc,两个io模块,一个驱动器和一个电机组成。

在一些实施例中,系统软件740可以包括实现领域特定逻辑或应用的一组组件。例如,参数化组件728可以执行上述设备和功能单元模板的参数化(例如,hmi参数化)。如这里所使用的,参数化包括设置或定义属性。例如,用户可以从拓扑视图中选择一个设备进行参数化。参数化组件728可以自动启动与设备相关联的参数化软件的参数化界面(例如,菜单)。类似地,配置组件732可以执行设备的配置(例如,运动驱动配置)。与参数化的情况一样,用户可以从拓扑视图中选择一个设备进行配置。作为响应,配置组件732可以显示与所选设备相关联的配置软件的配置界面。类似地,编程组件734可以启动与所选设备相关联的编程软件的编程接口。用户可以直接从系统软件中显示的编程接口编写或编辑程序代码,而无需启动编程软件。如果用户想要改变使用不同编程软件的另一设备(例如,相同类型但不同设备的设备或完全不同设备类型的设备(例如,驱动器而不是plc))的程序代码,则编程组件734自动识别设备并启动适用于该设备的编程接口以及与该设备关联或当前部署的任何程序代码。在一些实施例中,设备/设备类型和应用之间的关联可以是用户定义的并且存储在存储节点中。

在一些实施例中,系统软件740还可以包括支持网络安全管理,网络管理,数据管理和/或自动化系统的其他方面的一组组件。例如,网络管理组件716可以监视连接到设备和/或管理网络的自动化设备(例如,当它们连接到网络时发现新设备,以发现脱机的设备)。在一些实施例中,网络管理组件716还可以监视作为物理网络的一部分的网络组件,例如交换和路由硬件。

在一些实施例中,网络安全管理组件718可以管理自动化系统的网络安全方面。例如,cs管理组件718可以创建和维护可以与自动化系统中的任何新功能单元或自动化设备相关联的安全配置文件。在一些实施例中,数据管理组件722可以管理在自动化系统中的不同组件和设备之间如何共享数据。通常,系统的不同部分会生成大量不同的数据。将大量数据集中到一个地方,以及管理,组织和显示这些数据变成一项复杂而艰巨的任务。系统软件740通过数据管理组件722在一个地方聚集来自系统的不同部分的数据来解决该问题,使数据的组织和分析更有效。在一些实施例中,数据管理组件722可以提供各种过滤器,其可以应用于查看与特定设备或设备子集相关联的选择数据,而不必访问与不同设备相关联的不同软件。在一些实施例中,数据管理组件722还可以在系统软件环境中管理和显示包括系统中的不同设备和数据的发布者之间共享的数据的系统变量。

图7c-7f是根据一些实施例的系统软件的示例用户界面的截屏图。图7c描绘了在示例自动化系统中提供设备的图形视图的系统软件740的用户界面750的示例屏幕截图。通过系统软件,用户可以从设计752,配置754和编程756开始管理系统的整个生命周期。如图所示,示例自动化系统包括plc758,plc760和驱动器240等等。

在一些实施例中,系统软件使得能够从系统软件界面(或设计视图)直接访问与图形视图中所示的设备相关联的不同软件应用。例如,如图7d的屏幕截图751所示,用户可以选择plc760并从菜单764点击“配置”。图7e的屏幕截图753描绘了plc配置应用766的plc配置接口768是响应配置请求而启动的。类似地,如图7f中的屏幕截图755所示,可以直接从系统软件访问与图7c中描绘的驱动器762相关联的示例配置屏幕770。在一些实施例中,编程到设备中的代码也可以直接从系统软件访问,编辑和重新部署到设备。

5.雾服务器

图8a是根据第一实施例的雾服务器组件的框图。雾服务器由称为控制器节点810-1,810-2以及关联的计算节点820-1,820-2,820-3,...,820-n的控制和管理基础设施组成。计算节点820-1,820-2,820-3,...,820-n中的每一个可以执行多个主机802-1,...,802-n和相关联的虚拟网络820。这些主机可以是虚拟机,容器或裸机。每个主机又可以执行访客804。访客804可以包括应用程序,应用程序功能(即,对应于或执行功能的应用程序的一部分或一部分)或任何物理设备,组件或功能单元。在一些实施例中,主机802-1可以执行另一个主机802-a,主机802-a又可以运行访客。例如,计算节点820-3的主机802-1可以是实例化容器802-a以运行访客804的虚拟机。虚拟网络820从计算节点(例如,820-1,820-2,...)通过外部接口(例如,以太网端口)连接到外部物理网络(例如,数据/ot网络865)。虚拟网络820驻留在计算节点(例如,820-1,820-2......)内并提供虚拟化实体和物理世界之间的连接。在一些实施例中,计算节点可以是智能连接设备,其可以具有物理部分和虚拟部分。例如,计算节点820-n可以是智能连接设备815,其可以执行运行访客804的主机802-b。同一智能连接设备815还可以具有物理传感器/致动器814。计算节点820-n作为其他计算节点可以连接到数据/ot网络865。

访客804不被视为雾服务器的一部分;然而,在雾服务器的领域内对这些实体进行管理。一些管理操作包括主机的分配和重新分配,主机实例化,资源计划和管理(例如,分配ram,网络接口和其他资源),存储分配,销毁等。

虽然通过雾服务器提供的服务来配置虚拟网络820,但是这些网络的协调的责任属于网络子系统。这允许物理和虚拟网络之间的内聚网络管理。

雾服务器控制器节点810-1,810-2经由管理网络链路812互连到计算节点820-1,820-2,...,820n。这些链路可以是具有专用布线的物理链接或者可以是基础物理网络上的逻辑链接。例如,链路812可以在物理网络806或865上。作为另一个例子,链路806,812和865可以共享相同的物理网络,但是不同的逻辑网络。使用诸如vlan,vxlans,vtn等技术来提供物理网络的逻辑分离使得单个网络能够被同时用于多个目的。在一些实施例中,雾服务器控制器810-2可以是提供高可用性(ha)能力的冗余控制器。

存储节点825-1/冗余存储节点825-2可以提供针对运行自动化系统所需的访问类型和数据以及等待时间要求而优化的大容量存储解决方案。在一些实施例中,该节点可以是可选的。(一个或多个)存储节点可以作为直接连接到管理网络812和/或oam网络806的存储节点被并入系统中。如果未提供存储节点,则该角色可以由控制器节点810-1,810-2和/或计算节点820-1,...,820-n假定。在一些实施例中,存储节点可以使用冗余来提供ha。应该注意的是,在一些实施例中,存储节点825-1,825-2可以是包括可能被分发的其他存储节点的逻辑上集中的节点。

图8b是根据第二实施例的雾服务器组件的框图。这种替代部署方案优化了用于实现雾服务器的硬件。这种被称为客户端设备(cpe)模型的部署方案将控制器,存储和计算功能折叠成单个服务器设备,即cpe节点822-1。在一些实施例中,cpe服务器节点也可以被复制(即,cpe节点822-2)以提供ha部署。在该实施例中,cpe服务器节点可以通过管理网络812进行通信。存储节点825可以作为直接连接到管理网络812和/或oam网络806和/或数据网络855的存储节点。如果没有提供存储节点,则该角色可以由cpe节点822-1和822-2来承担。此场景提供了一个低成本的解决方案,可用于小型部署目标,该部署目标接受没有分布式计算节点的约束。

图9a是一些实施例中的雾服务器控制器的示例组件的框图。如所描绘的,雾服务器控制器910可以包括雾编排组件902和主机管理组件916等等。雾编排组件902与sda系统的其他子系统的编配组件交互以供应,配置,管理等。在图10b和11中详细讨论了雾编排组件902的作用。

在一些实施例中,主机管理组件916可以利用一个或多个主机虚拟化技术来提供可在其上运行和/或管理自动化系统的虚拟化基础设施。例如,主机管理组件916可以利用主机虚拟化技术来创建设备的虚拟化实例(例如,虚拟机上的设备的软件实现),自动化系统中的应用或功能。虚拟化设备在向虚拟设备呈现与主机系统隔离的物理硬件的抽象的环境中仅作为软件实例运行。除了设备之外,在一些实施例中,自动化系统的各种其他方面,例如网络和安全元件也可以被虚拟化。下面详细描述主机管理组件916可以使用的一些主机虚拟化技术。

a.经典虚拟机

图9b示出了托管虚拟机的计算节点的示例组件。在一些实施例中,具有虚拟化支持的计算节点915可以使用虚拟机(vm)(主机)902-1,...,902-n来提供高度灵活的沙盒应用912(访客)。计算节点915托管包括应用912的业务逻辑及其自己的os/库926的一个或多个虚拟机902-1,...,902-n。该机制提供灵活的应用,因为访客vm可以基于任何操作系统916并且甚至可以使用仿真来释放对硬件体系结构的限制。因此,虚拟机可以拥有自己的虚拟硬件。实际上,因为通过管理程序向vm提供对cpu的直接访问,并且每个经典vm具有其自己的虚拟硬件924,内核922,初始化系统918和os916,所以可以运行完全不同的os(例如windows,linux)同时在同一个计算节点,而不管计算节点的本机操作系统。与其他解决方案(下面描述)相比,不足可能体现在性能和确定性方面。另一个缺点可能是应用程序的规模可能大得多,因为它必须包括完整的内核922,初始化系统918,操作系统916和相关的库91。典型地,通过管理程序928提供对物理硬件932的访问增加了一个额外的层和相关的延迟。可以使用某些供应商特定的加速度来缓解这种影响。

虚拟机902-1,...,902-n可以实时迁移,即运行中的vm可以从一个计算节点迁移到另一个,而对运行的vm和关联的应用程序进程的影响非常小。这使主机管理组件916和/或雾编排组件902能够通过优化多个计算节点915之间的vm分配并关闭不需要的计算节点来提供一定程度的负载平衡,高可用性和能量管理。

b.容器

图9c和图9d示出了托管容器的计算节点的示例组件。容器为应用程序提供了性能,灵活性和尺寸的改进,但却带有自己的限制。容器使用主机硬件支持的内存沙箱来提供安全和隔离的环境来运行应用程序。使用容器可以在虚拟机上提供一些性能和大小改进,因为它直接使用没有虚拟机管理程序层的主机驱动程序。但是,对于容器,应用程序与主机的硬件体系结构和内核密不可分。容器的一个示例应用是在需求响应场景中。

参考图9c,为了实现更好的性能,一些容器904-1,...,904-n可以仅包括应用912,同时依赖于内核934,初始化系统918,操作系统916和原生于计算节点的库914。从库/应用程序开发的角度来看,这些容器有更多的限制,但重量更轻,体积更小,孵化更快,并且性能更好。

参考图9d,一些容器907-1,...,907-n可以包括用于访客应用912,初始化系统918和库914的完整操作系统916(减去内核),其运行在主机的沙盒的空间内。由于容器依赖于主机的内核934及其相关联的物理硬件932,所以它们还必须与主机915的硬件体系结构和内核沿袭相匹配。

与vm一样,容器也可以从一个计算节点实时迁移到另一个计算节点。

c.裸机

图9d示出裸机计算节点的示例组件。在一些实施例中,计算节点915可以充当裸机主机以使得嵌入式系统能够由雾服务器主机管理组件916管理。裸机主机运行紧密耦合到主机硬件932的专用构建二进制映像-多像传统的嵌入式设备。这个二进制映像可以充分利用对硬件932的直接访问,就像该映像在工厂安装一样。在一些实施例中,类似于如何在雾服务器内管理vm,裸机计算节点可以通过图9a中的供应组件906和配置主机管理系统916的组件908来供应和配置。

在一些实施例中,裸机映像可以是完整的内核934和os916以将裸机节点变成具有对vm和/或容器自己的支持的vm和/或容器的完整计算节点。

参考图9a,配置组件906可以创建提供者和/或租户虚拟网络和虚拟化实例并将它们连接在一起。配置组件908可以便于在雾服务器的管理下配置虚拟化实例和/或物理设备。在一些实施例中,可以从系统软件接收用于配置的数据。

6.sda系统中的业务流程

图10a是根据一些实施例示出的sda系统的组件视图的示例的框图。在雾服务器(或雾平台)1005中,一个或多个虚拟设备1036和应用程序1-n的实例可以在被描绘为智能连接设备1015的一个或多个计算节点(未示出)和/或边缘设备上运行。在一些实施例中,分析应用程序或引擎1006可以在雾服务器1005或两者中描绘的远程云1050(例如,图4中的云450)上运行。在工业自动化系统中,涉及企业系统1035(例如,企业资源规划(erp),制造执行系统(mes))和资产管理1014的应用程序可以在企业房间级别(例如,级别4,图2b中企业房间级别205)或雾服务器1005上,而一些室内软件1008(例如,scada)可以在雾服务器1005中运行。在建筑物自动化系统中,运行在企业级和雾服务器1005级的应用可以是建筑物管理系统(未示出)。

在一些实施例中,物理设备1034可能不具有连接到网络以变成雾服务器管理的设备的能力。这样的设备仍然可以通过由雾服务器1005管理的网络设备1032来管理和控制。该网络设备1032可以是一个或多个物理设备的虚拟表示。网络设备1032可以在雾服务器1005中公布/订阅实时数据,或者可以使用点对点通信来访问由雾服务器1005管理的应用/设备的数据。网络设备1032可以与物理设备1034通过ot协议进行通信。雾管理的网络设备1032因此可以经由ot协议通信地耦合到物理设备1034以形成软件定义的机器1046。

图10b是根据一些实施例图示的sda系统的控制视图和系统视图的示例的框图。sda控制视图1002包括系统软件1040和多个协调组件,其确保每个sda子系统彼此协同工作以定义或委托和管理自动化系统。编排组件包括雾服务器编排组件1024,网络编排组件1022,网络安全编排组件1018和存储编排组件1016。

在一些实施例中,sda系统视图1012包括具有雾服务器控制器1010,一个或多个计算节点1015和存储器1025的雾服务器1005。在一些实施例中,存储可以在所描绘的雾服务器1005的外部。在一些实施例中(即,雾服务器编排1024和存储编排1026可以被组合),雾服务器1005中的计算节点1015和存储器1025可以由雾服务器编排组件1024编排在一起。当编排组件中的每一个被单独编排时,顶级编排组件-系统编排组件1016-将它们编排在一起以在雾服务器1005中的计算节点1015上(通过雾服务器编排1024)虚拟化设备和应用程序,管理与存储1025/1026(经由存储编排1026)中的那些虚拟化设备和应用程序相关联的数据,定义和传播网络安全策略到sda系统的所有组件(经由网络安全协调1018),并且定义和传播网络流和通信(经由网络协调1022)。系统软件1040与系统协调组件1016进行接口以经由雾服务器协调1024,网络协调1022,网络安全协调1018和/或存储协调1026将命令/指令/信号(例如,来自用户或另一系统)变换成自动化系统的变化。此外,系统软件1040可以在雾服务器1005上运行并且具有自动化系统的完整视图。

在一些实施例中,网络协调包括sdn协调(例如,经由sdn控制器),tsn协调(例如,经由tsn控制器)或sdn-tsn协调,sdn-tsn协调是sdn和tsn协调的组合(经由sdn和tsn控制器)。

在一些实施例中,在雾服务器1005中或在边缘设备1004上运行的应用实例可以使用诸如数据分发服务(dds)或开放平台通信统一体系结构(opc-ua)之类的通信协议来共享数据。dds使得连接到网络1042的任何设备能够订阅由雾服务器管理的设备(例如,设备1004,计算节点1015中的虚拟设备/组件)产生的任何数据。在一些实施例中,当这些值改变时,设备可以通过发布数据值来实时更新订户。

在其他实施例中,数据可以通过点到点通信共享。不管使用的是什么共享或点到点的通信协议,在计算节点1015的虚拟设备/组件上所执行的应用程序实例的数据传输都是在虚拟网络1020上进行的,该网络映射到物理网络1042。类似地,物理设备上执行的应用程序的数据传输由物理网络1042进行。

图11是对应于某些实施例的用于说明sda子系统的编排示例的框图,该sda子系统用于在计算节点上提供一个功能单元。

在某些实施例中,系统软件1140运行工程工具链实例以使得用户能够实例化和管理sda系统。工程工具链可以针对特定的自动化系统。例如,针对工业自动化系统的工具链与一个针对建筑自动化系统的工具链有所不同,这是因为这些自动化系统可以有不同类型的自动化设备(因此具有不同的设备/功能单元模板)以及一个或多个参数化的应用软件、配置、编程等。工程工具链通过一个应用程序编程接口(api)与一个系统(sda)编排组件1116集成。因此,当工具链用户发出命令时,工具链将驱动系统编排组件1116,从而使sda系统作为一个整体协同工作,以执行该命令。

考虑如下的这样一个场景,通过添加一个新的传送带来增加机场的行李处理吞吐能力。用户可以访问系统软件1140(加载了一个合适的工具链),从一个挑选列表中选择一个功能单元模板,例如一个输送带系统的模板,并将其添加到控制系统设计面板中。用户可以通过参数化该模板以向该新的功能单元提供实例信息。例如,输送带模板可由三个虚拟pacs、若干ios、若干物理和虚拟交换机组成。用户可以提供如下的实例信息例如但不限于:实例标识(如组件/设备名,ip地址,等等),i/o连接(例如,如何连接功能单元的元素,功能单元可以读/写的i/o设备),时间限制(例如,最大确定性响应时间或功能单元与另一个实体之间的传输时间,另一个实体可以例如是,其控制的设备),安全性配置文件(例如,读/写访问数据的能力,功能单元的编程能力),等等。功能单元描述1142,即,用于描述实例化的功能单元模板的信息由系统软件1140传输到sda编排组件1116。在某些实施例中,功能单元描述1142可以包含与功能单元虚拟化描述、通信流、网络流、安全性配置文件和/或类似的信息相关的信息。举例来说,功能单元虚拟化描述可以包括实例信息,该实例信息包括要实例化或提供的组件的类型和数量(例如,3个plcs,2个分布式i/o模块,1个传输带示例中的虚拟交换机),冗余需求等等。对于某些组件而言,功能单元虚拟化描述还可以包括相关的应用、应用的版本号、相关的编程包或者类似的其他,这些信息将用于促使对功能单元或组件的使用或配置。

通信流描述可以包括与i/o连接或链接有关的信息,i/o优先级类型(例如,高优先级、低优先级),定时约束,带有连接信息(如数据、速率)的i/o列表,对等数据交换,scada数据交换,其他流声明(snmp,web,电子邮件等)等等。安全性配置文件可以包括访问控制列表、端口和协议列表、授权带宽限制、站点/地址的黑/白名单和/或类似的内容。在某些实施例中,功能单元描述1142还可以包括访客(如虚拟机)的配置,例如但不限于:处理器类型、内存、亲和、虚拟机映像验证等。网络流描述可以包括诸如带宽和端口列表、流路径限制(例如,没有高优先级i/o链接的视频或高带宽数据)、端口连接、接口速度等信息。

sda编排组件1116将功能单元描述解析为子描述,并相应地开始驱动各个子系统的协调器。例如,sda编排组件1116传递了从功能单元描述1142中提取的请求的通信流的描述1142到cs控制器1155的网络安全编排组件1118。基于请求的通信流1144的网络安全编排组件1118驱动各种安全策略包括:对于主机/访客的访问,网络流量分割,防火墙配置,acl的配置(例如,连接实体的ip地址/名称,tcp/udp端口等目的连接的性质,允许访问类型,阻止未经授权的协议和端口,等),用于监控的授权登录,配置,等等。流量控制的类型包括了允许端点,配置安全通道,控制分组数据长度和寻址,等等。在某些实施例中,各种安全策略可以由安全策略管理器1126管理。在某些实施例中,身份验证服务1128可以为其他子系统提供身份验证服务。例如,它可以对虚拟化一个功能单元的请求进行验证。

在某些实施例中,网络安全编排组件1118为sda编排组件1115提供了用于雾服务器控制器1110和网络控制器1190(如sdn、tsn和/或其他网络控制器)的必要的安全策略。在其他实施例中,网络安全编排组件1118可以使得安全策略直接分发给相关的控制器。例如,与雾控制器1110的虚拟化功能有关的安全策略,与网络控制器1190的网络功能相关的安全策略。在一些实施例中,网络安全控制器1155可以向安全保护系统传播设备和切换策略规则,安全保护系统可以在设备级别上管理这些策略的部署和执行。

sda编排组件1116从cs控制器1155收到安全策略1148之后,将从功能单元描述1142提取的功能单元的虚拟化元素的描述和相关安全策略1152传输到雾编排组件1124。在一些实施例中,雾编排组件1124可以从cs控制器1155请求相关的安全策略。雾编排组件1124驱动雾服务器控制器1110(例如,图9a中的主机管理组件916)在一个或多个计算节点中创建必要的提供者和/或租户虚拟网络1120。可以包括实例化虚拟交换机或虚拟路由器。雾编排组件1124创建了功能单元1134的一个虚拟化实例,其中包括在功能单元中创建每个组件的虚拟实例(即:在此示例中,3个vpacs和1个虚拟交换机)并将虚拟实例连接到关联的虚拟网络1120。在某些实施例中,基于冗余需求(例如,预定义或指定的请求),可以提供功能单元1134的多个实例。

sda编排组件1116将与功能单元相关的网络流1154的描述,以及任何需要的安全策略1154传输到网络编排组件1122。从这个描述中,网络编排组件1122可以识别所需的网络路径、分割以及类似信息,并驱动网络控制器1190在物理网络中配置网络元素1136,以及类似地针对虚拟网络1120中的网络元素。在某些实施例中,所有设备(例如物理和虚拟基础设施和终端设备)可以从策略服务器1138请求相关的安全策略。通过这种方式,sda系统不仅可以在计算节点上提供一个功能单元,而且还可以提供功能单元需要的网络资源以便进行操作。

在创建或提供了功能单元,并相应地配置了网络基础设施之后,系统软件就可以用来配置和编程功能单元的组件。例如,可以通过系统软件门户对功能单元的vpacs进行配置和编程,从而控制输送带系统的运行。在一些实施例中,配置功能单元还可以包括配置功能单元的相关物理组件。例如,雾服务器控制器1110可以通过更新其acl来重新配置i/o模块,从而允许vpacs进行连接。在某些实施例中,i/o模块可以是一个可由雾服务器控制器1110对相关逻辑(例如,用于处理基于安全性的功能的逻辑)编程的智能连接设备。

7.在sda系统中实现的示例方法

图12是对应于某些实施例的用于表明创建自动化系统的一个示例方法的逻辑流程图。

在步骤1202中,包含一个雾服务器控制器和多个计算节点的雾服务器子系统在一个或多个计算节点上创建或实例化自动化系统的虚拟组件(例如,通过图9a中的供应组件906)。自动化系统的元素可以通过虚拟化技术(如虚拟机、容器和裸机)进行虚拟化。此外,在某些实施例中执行虚拟组件的计算节点可以进行物理分布。例如,一个计算节点可以在工厂的车间上,而另一个计算节点可以在控制室中。无论计算节点位于何处,雾服务器控制器和计算节点之间的通信都是在一个独立于物理网络的管理网络之上,或在同一个物理网络之上。

在第1204步骤,雾服务器子系统(例如,图9a中的配置组件906)在计算节点中创建关联的虚拟网络。在第1206步骤,雾服务器子系统(如图9a中的配置组件906)将虚拟组件连接到虚拟网络。然后,虚拟网络连接到一个物理网络。在第1208步骤,包括网络控制器在内的网络子系统配置物理网络的物理网络组件和/或虚拟网络的虚拟网络组件。在某些实施例中,网络子系统通过部署网络策略来配置物理和/或虚拟网络组件。网络策略可以包括控制连接、带宽、延迟和/或流量的策略。网络控制器可以是sdn控制器、tsn控制器或其组合。

在第1210步骤中,包含一个安全控制器的cs子系统将安全策略分发给雾服务器子系统和网络子系统,用于部署到计算节点上执行的虚拟组件和物理和/或虚拟网络组件。在步骤1212中,雾服务器子系统利用物理和/或虚拟网络组件与自动化系统的物理组件(例如,现场设备)进行通信,以控制自动化系统的操作和管理。

图13a是对应于某些实施例的逻辑流程图,用于说明通过系统软件将功能单元添加到自动化系统的示例方法。

从1302步骤开始,用户可以启动系统软件。在第1304步骤,系统软件可以呈现由自动化系统所管理的包括物理的和虚拟的所有设备的拓扑视图。图13b描述了一个传送系统的拓扑视图的示例,该系统包括一个位于层次结构顶部的pac1330,一个虚拟的plc1332和相关的i/o模块1334、驱动器1336、电机1338和一个输送机(即执行机构)1340。在第1306步骤,系统软件可以接收到一个功能单元模板(例如,传送系统模板)的选择,以添加到自动化系统中。在一些实施例中可以从模板库中选择功能单元模板。在步骤1308中系统软件可以更新拓扑视图,将新的功能单元包含进来。在第1310步骤,系统软件可以启动第一个应用程序来配置功能单元。在一些实施例中,配置功能单元可以包括但不限于:ip寻址、i/o配置、访问控制列表、本地子组件和支持库、事件触发、密码等等。在第1312步骤,系统软件可以接收功能单元的配置数据。在1314步骤,系统软件可以启动第二个应用程序以进行系统数据管理。在第1316步骤,系统软件可以配置新的功能单元来接收/发送数据(例如,通过点到点通信或通过共享实时数据总线)。在某些实施例中,可以通过相同的应用程序执行配置和数据管理。在这种情况下,系统软件可以在1318步骤启动一个应用程序以用于功能单元的配置和数据管理。系统软件可以在1320步骤接收数据管理的配置数据和/或指令。然后在第1322步骤中系统软件可以配置功能单元来接收和/或发送数据。

图14是对应于某些实施例的逻辑流程图,其说明了在sda系统中提供一个功能单元的示例方法。在第1402步骤,sda系统可以接收到创建或向自动化系统添加新功能单元的请求。在一些实施例中,接收请求可以包括在步骤1404中从功能单元模板库接收一个功能单元模板的选择。在一些实施例中用户可以通过系统软件用户界面进行选择。在其他实施例中,可以从与系统软件(例如,通过api)通信耦合的实体接收到需要添加到自动化系统的新功能单元的定义。在步骤1406中,接收请求还可以包括接收用于参数化功能单元模板信息。在第1410步骤,sda系统可以根据至少一个安全策略对请求进行身份验证。在某些实施例中,通过使用来自网络安全子系统的至少一个安全策略,可以由雾服务器子系统执行身份验证。在第1412决策步骤中,如果身份验证不成功,则可以在1416步骤中由sda系统拒绝请求。身份验证步骤确保不会由sda系统对自动化系统执行未经授权的更改。

如果请求成功地通过身份验证,那么在1418步骤中sda系统可以在一个或多个计算节点中创建至少一个虚拟网络,如果目标虚拟网络不存在的话。在1420步骤中sda系统还可以创建一个功能单元的虚拟实例。创建功能单元的虚拟实例包括创建功能单元的每个元素的虚拟实例。例如,如果一个功能单元包含三个pacs,那么功能单元的虚拟化意味着创建三个虚拟pacs(vpacs)。在1422步骤,sda系统可以在计算节点上部署功能单元的虚拟实例。在1424步骤,sda系统可以将计算节点上的功能单元的虚拟实例连接到虚拟网络,以提供或委托计算节点上的功能单元。

图15是对应于某些实施例的逻辑流程图,其说明了在sda系统中配置一个功能单元的示例方法。

一旦创建或供应了一个功能单元(例如,在图9a中通过供应组件906),可以使用系统软件配置功能单元。在第1502步骤,sda系统(如图6a中的sda系统600)可以从系统软件接收新功能单元的配置信息。在第1504步骤,sda系统(通过网络控制器,例如图6a中的网络控制器690)可以确定至少一个通过了虚拟和物理网络的网络路径。在1506步骤中,sda系统可以在至少一个网络路径中配置一个或多个网络组件。配置网络组件可以包括提供和/或执行一个或多个网络策略,这些策略指定网络组件如何引导不同类型的通信流。例如,虚拟/物理交换机可以与指定了只允许http流量的网络策略相关联。因此,操作中的交换机将允许http流量通过,但是其他的流量,如modbus流量将被阻塞。在步骤1508中,sda系统可以使用配置数据配置功能单元的虚拟实例(例如,通过图9a中的配置组件908)。在第1510步骤,sda系统可以通过至少一个网络路径将数据流量从功能单元流到设备(例如,字段设备),以控制自动流程。

图16a是对应于某些实施例的逻辑流程图,其说明了在sda系统中进行调试或提供一个功能单元的示例方法。

在步骤1602中,示例方法包括由一个局部子系统(例如,雾服务器子系统)的系统控制器(例如,图9a中的雾服务器控制器910)在由系统控制器管理的一个或多个计算节点中创建一个自动化系统的功能单元的虚拟化实例。这些计算节点可以包括自动化系统控制器、服务器、个人计算机和/或智能连接设备。在某些实施例中,创建一个功能单元的虚拟化实例可以包括创建功能单元的完全虚拟化实例或功能单元的部分虚拟化实例。例如,如果一个功能单元包含两个组件(例如,plc1和plc2),那么这个功能单元的完全虚拟化实例将包括两个组件的虚拟化(即vplc1和vplc2)。类似地,功能单元的部分虚拟化实例可以包括一个组件的虚拟化(即:一个虚拟组件,例如vplc1),另一个组件是物理组件(例如,plc2)。在一些实施例中,物理组件也可以在sda系统中进行委托(即:由雾服务器管理)。参考图16b,其描述了一个具有物理组件的功能部件的调试方法。

功能单元的虚拟化实例可以基于从功能单元模板库中选择的功能单元模板来创建。系统软件为用户提供了访问功能单元模板库以选择功能单元模板和参数化功能单元模板的接口。在某些实施例中参数化功能单元模板包括为功能单元定义实例标识、输入/输出连接性和安全性配置文件。

在1604步骤系统控制器可以在一个或多个计算节点上创建一个虚拟网络,然后在步骤1606中将功能单元的虚拟化实例连接到虚拟网络。将虚拟网络映射到物理网络,以使功能单元的虚拟化实例与自动化系统的一个域设备交互,以控制自动化过程。

在第1608步骤,系统控制器可以通过在一个网络安全子系统中应用一个或多个安全策略来配置功能单元的虚拟化实例的安全性。在一些实施例中,这可以包括在基于安全策略的一个或多个计算节点上创建一个安全保护系统的虚拟化实例(例如,虚拟的下一代防火墙)。在某些实施例中,功能单元的虚拟化实例包括运行了一个或多个功能单元的软件的主机。因此,配置功能单元的虚拟化实例的安全性可以包括配置如下实体的安全性:功能单元的软件实现、一个或多个主机,以及/或一个或多个正在运行主机的一个或多个计算节点。在某些实施例中,来自一个或多个主机的主机包括一个虚拟机、一个容器或一个裸机。在某些实施例中,在响应创建自动化系统功能单元的虚拟化实例的请求时,系统控制器可以在创建功能单元的虚拟化实例之前应用至少一个安全策略来对请求进行身份验证。安全控制器还可以应用至少一个安全策略来验证与功能单元的虚拟实例相关联的每个主机的映像。

在第1610步骤,网络子系统的网络控制器可以确定至少一个穿过了虚拟和物理网络的从功能单元的虚拟化实例到域设备的网络路径。然后在第1612步骤,网络控制器可以在至少一个网络路径中配置一个或多个网络元素,以便在功能单元的虚拟化实例和域设备之间实现数据流量的传输。在第1614步骤,网络控制器可以通过应用网络安全子系统提供的一个或多个安全策略,以在至少一个网络路径中配置一个或多个网络元素的安全性。

图16b是对应于某些实施例的逻辑流程图,其说明了在sda系统中进行调试或提供一个功能单元的示例方法。

在1616步骤中,示例方法包括由系统控制器(例如,图9a中的雾服务器控制器910,图6a中的雾服务器控制器610)接收一个用于调试功能单元的调试请求。在步骤1618中,为了响应调试请求,一个网络控制器(例如,图6a中的网络控制器690)响应系统控制器接收调试请求,以及至少一个连接到物理网络的功能单元的网络路径。在第1620步骤,网络控制器在至少一个网络路径中配置一个或多个网络元素,以委托自动化系统中的功能单元,使功能单元和自动化系统中的域设备之间的数据流量流动。

8.sda系统的工作负载安排

自动化功能包括各种功能和任务,这些功能和任务需要以协调的方式排列,以满足特定的需求。设备的功能是预先确定的,并分配给自动化设备。作为一个例子,一个处理水泥粉的系统执行高级功能“制造水泥粉”。该功能可分为粉碎机、输送带和包装机的设备功能。这些功能可能要求底层的支持任务,如测量温度、速度、体积和产品组成/混合物。这些测量依次被用于控制吞吐量、过程连续性、过程稳定性和产品质量的功能。有些任务可能对安全至关重要,有些任务可能很耗时,而有些可能资源消耗较大。

在一些实施例中,sda系统可以实现一个或多个方法来安排工作负载,以优化控制系统(例如,工业控制系统)的性能。

作为能够配置自动化功能的自动化系统的一个例子,图17a展示了一个用于配置工作站的工程站1701,一个由plc1702控制的运输站,一个由plc1703控制的组装站和一个由plc1704控制的包装站。站旁是各自的人机接口的本地操作界面(hmis)1705-1707,其通过以太网总线1708连接到高层级hmi1709。工程系统1701允许设计自动化功能作为一个分布式和事件驱动的应用程序,它被部署到scada和制造执行系统1710。本地工程站1711允许为工作站的plcs分配连接。采用一个用于安排功能对象之间通信的iec61499标准,将带来如下的优点:将自动化功能划分为功能块和地图,并将它们分配到工作站点1702-1704的plcs中。这可以在从工程站1701下载到各自的工作站1702-1704上的元素t1-3、a1-5和p1-4中看到。

另一个配置了自动化功能的自动化系统的例子如图17b所示。这再次显示了工程站1701配置工作站的情况。自动化系统有一个由plc1702控制的运输站,一个由plc1703控制的组装站和一个虚拟元素1712。虚拟元素1712可以实现为计算节点、智能设备、服务器或其他处理单元。在本例中,与图17a不同的是工程站1701分发了元素t1的多个实例,元素a1-5和元素p1-4。虚拟元素1712可能是一个独立的设备,它为plcs1702和1703所控制的工作站提供支持功能。或者虚拟元素1712可以直接控制工作站。

图17c展示了另一个自动化系统的例子,该系统中图17a的所有plc设备都被类似于图17b中的虚拟元素1712的虚拟元素1712、1713和1714所取代。虚拟元素1712、1713、1714可以实现为计算节点、智能设备、服务器或其他处理单元。

为了允许这些元素或功能处理任务的不同分布,需要保证硬件需求与可用硬件的功能相匹配。应用程序的功能(例如p1)特性,例如os软件环境、时间灵敏度、网络带宽,确定最佳客户参数的需求,例如位置。主机类型参数,例如虚拟机、容器或裸金属,决定了可能承载的客户机上的约束类型。反过来,节点的硬件平台类型表征计算节点的参数特性,这决定了对主机的约束类型。硬件平台的类型是由arm或x86处理器类型、内存大小、存储容量、或类似参数所决定的。

9.用于安排工作负载的示例方法。

参照图18,其说明了在sda系统(如图6a中的sda系统600)中安排工作负载的方法。由1801提供的sda系统是通过自动化门户或系统软件(如图6a中的系统软件640,图7b中的系统软件740)配置的,用于执行预期的自动化功能,其中包括分配给各种自动化设备的预定设备功能。

如上所述,不同领域的设备的自动化功能包括不同的设备功能。这些设备功能包括根据编程软件对象可能被分割的各种任务。因此,该方法需要确定预定设备功能的任务。在确定或识别任务时,对设备功能的每个任务评估工业操作参数。在评估时,设备功能的任务可以基于自动化系统的操作参数进行排序。随着工业操作参数的评估和排序,可以根据工业运行参数选择任务分配到自动化设备上。在自动化设备上的任务分配可能包括重新部署任务到至少一个自动化设备和基于工业操作参数对一个计算节点卸载任务。此外,自动化设备可能是一个智能连接设备,能够承载一个计算节点本身,从而允许将由自动化设备承载的计算节点上的任务卸载。

工业操作参数的评估提供了一个指示,用于说明哪些任务与更高级别的功能相关,如安全、电力消耗或其他总体过程性能参数。工业操作参数的排名允许评估哪些任务可以重新部署到域设备上,并且可以卸载到计算节点,同时确保满足流程性能要求。计算节点可能是雾服务器的一部分。

工业操作参数包括几个可能与整个过程性能有关的参数。第一个工业操作参数是一个过程临界级别,它可以表示可用性和/或至少需要的级别,因此可用的函数的可用性例如使用的正常时间或可扩展性需要表示出来。它还可以表示函数所需的冗余级别,因为冗余是可用性需求可以实现的一种方式。它可以进一步表达安全要求的水平,保证故障检测的水平和/或后退选项。例如,一个工业钢铁厂可以在一个钢铁厂中操作一个任何情况下都不会冷却的熔炉。此外,工业操作参数过程临界水平也可以编组成为一组参数,该组参数包括冗余度、功能的可用性、安全性要求和回退选项。

另一个工业操作参数是时间敏感级别。这可以表示执行时间所需的精度级别。它也可以表示一个量化的时间期限,例如,在一个指定的时间范围内,水泥必须保持在混合器中。

此外,还可以将工业操作参数时间敏感级别作为一组参数进行编组,该组参数包括执行时间的精度和量化的时间长度。

进一步的工业操作参数是执行成本。这个工业操作参数可以表示处理时间限制,例如处理时间的数量,它可以表示资源消耗的水平,以及/或在特定自动化设备上执行特定任务所需的处理能力需求。这可以用存储信息所需的内存数量来表示。它也可以表示为处理能力的数量,例如每秒数百万条指令(mips)或每秒浮点运算(flops)。

此外,还可以将执行的工业操作参数成本作为一组参数进行编组,该组参数包括处理时间、资源消耗和处理能力需求。

另一个工业操作参数是接近临界水平。该参数表示任务与该任务所对应的主要执行器的预期接近性关系和/或所执行的任务之间的相互依赖关联性,例如,次要任务与次要任务之间的相互依赖关系。

例如,两个经常交互的任务,或者至少是相互依赖于中间结果的任务,可能需要在自动化设备或者相近距离的节点上进行计算,以便有效地执行该函数。在物理空间或时间的意义上,近距离可能意味着彼此之间的距离较近。然而,它也可能表明第三个任务需要接近两个独立的任务,或一个任务链。特别是,这可能适用于诸如传感器和执行器等领域设备的接近。例如,对于矿井的通风控制,应在通风系统附近执行任务。这是为了防止由于洪水或其他自然灾害而造成的网络问题的操作上的干扰或障碍。

此外,还可以将工业操作参数接近临界级别作为一组参数进行编组,其包括一个任务对多个其他任务的相互依赖性。例如,第一个任务与第二个任务的相互依赖,第一个任务与第三个任务的相互依赖,第一个任务与第四个任务的相互依赖,等等。

另一个可能的工业操作参数是成本效益。这可以表示资本支出,例如资源成本。它还可以表示业务支出,例如整个过程的可靠性。对于业务支出来说,一个例子是在难以接近的地区修复一个功能的费用要比在控制室附近的要高。对于资本支出,一个例子是在高端计算机中运行一个函数的成本可能比在一个小的目标平台上运行时要高。

此外,还可以将工业操作参数成本性能作为一组参数进行编组,其包括资本支出和业务支出在内的一系列参数。

图19是一个在sda系统(例如,图4的sda系统)中安排工作负载的方法的另一个例子。同样地,对于图19所述的方法,可以通过系统软件(如图6a中的系统软件640)来配置所提供的sda系统,以用于执行自动化功能。类似地,这个例子的方法包括确定预定设备功能的任务,对设备功能的每个任务评估工业操作参数,并将设备功能的任务按工业操作参数排序。sda系统可以根据排名的工业操作参数进行配置,其中可能包括在自动化设备上重新部署任务和将任务卸载到计算节点。

然后,该方法继续通过对每个任务的工业运行参数重新评估,并再次对这些参数进行排名。当工业操作参数被重新评估和排序时,任务可能被重新部署到自动化设备和任务可能被从自动化系统的计算节点卸载。

上面描述的第二个示例显示了根据该实施例的方法的进一步优势,因为它允许在sda系统中重新安排工作负载,即使它已经配置为执行一个特定的自动化功能。在这种方式下,当流程环境或过程性能需求被重新定义时,自动化功能的工作量可能会以新的配置而被安排,用以满足修改后的需求规格。因此,该方法允许更灵活地管理和处理工业控制系统中的性能需求。作为自动化功能变化的一个例子,当分析算法需要更好的性能时控制函数可能需要更新。然后,功能可以被分割,一些任务可以转移到另一个计算节点或设备上。另一个例子是扩展硬件以扩展容量,当系统以最大容量或超出容量运行时,自动化功能需要重新平衡,以防止额外的资源不被使用。

在该方法中,参照图20,评估每个任务2001的工业操作参数,包括确定每个任务的几个或全部参数。因此,该方法包括确定至少一个过程临界水平2002,时间敏感水平2003,执行成本2004,接近临界水平2005以及性价比2006。并非所有的参数都需要确定。但是,对于每个任务来说,会确定相同的参数以允许进行比较和排序。可以同时或连续地确定参数。一些参数可以由工业控制系统的操作员来设定,而另一些参数则可以由预先确定的设备功能的任务的组织或编程方式来决定。此外,参数的评估可能包括加权因素,以便在评估参数时允许一定程度的灵活性。

类似的考虑也适用于工业操作参数2101的排序任务。因此,根据图21所示,任务的排序包括通过过程临界水平2102,通过时间敏感水平2103,通过执行成本2104,通过接近临界水平2105,和/或通过性价比2106而进行排名。

从图22中可以看出,基于工业操作参数2201对任务的排序也可能包括取消选择任务,表明这些任务不适合重新分配。这意味着这些任务不会被评估,也不会考虑被重新分配。因此,基于参数2201的任务排序可能包括取消选择过程临界的任务2202,取消对时间敏感的任务2203,按执行成本2204排序,取消接近临界的任务2205,和/或按性价比2206排名。这可能特别适用于图19所示的例子。

每个工业操作参数的级别量化的方式可能均有所不同。一个可以是从1到100,从0到10,或者从0到1,包括小数。而对于另一个,它可能仅仅是“是/否”的重新部署,或者它可能包括一系列的颜色。对于另一个,它可能是{低,中,高}的集合字符串。在一个例子中,参数可以由操作符来设置。在另一个示例中,它们可能由系统提供者设置。在另一个例子中,它们可以根据处理能力、物理连接的时间限制或其他可以确定的物理特性来计算,即使系统是可操作的。

当对可适用的参数进行评估并根据这些参数对任务进行排序后,可根据工业操作参数进行任务的重新部署和卸载。这将允许将任务需求和约束直接匹配到设备的硬件功能和计算节点。例如,设备的安全性能必须高于安全要求,例如提供sil3当sil2被接受时。或者一个计算资源的可用性可能是6,当需求指示5时它被接受。在匹配任务和硬件的同时,可以对不同的参数应用权重因子。例如,指定为20毫秒的定时精度可能包括允许偏差的百分比。

参考图23,将任务部署到现场设备,并将任务卸载到计算节点,可能包括基于排序选择任务2301以进行分配,并将选择的任务2302指定到雾服务器控制器节点(例如,图6a中的雾服务器控制器610)。根据评估的工业操作参数,雾服务器控制器节点将把选定的任务2303分发给自动化设备,例如plcs、pacs、i/o设备或其他现场设备。反过来,网络控制器节点(如图6a中的网络控制器690)将在计算节点之间设置网络通信2305,以促进分布式任务的执行。例如,通过配置虚拟网络或控制物理网络的网络元素。

除了上述方法,该方法还可以进一步包括根据工业操作参数选择任务2301从计算节点卸载。在这种情况下,为卸载而选择的这些任务也将在雾服务器控制器节点上显示。然后,雾服务器控制器节点基于评估的工业操作参数将选择的卸载任务分配给计算节点。网络控制器在计算节点之间设置网络通信2305,便于分布式任务的执行。

由雾服务器控制器节点所选择的任务的分布也可能有利地包括评估的工业操作参数。因为这些可能会包括一组约束或最小的要求,这些要求可以在将选定任务与可用硬件的容量匹配时被考虑到。此外,除了为分布式任务分配计算节点外,雾服务器控制器还可以提供新的计算节点。

10.计算机系统化

图25是可以执行各种操作的典型机器/计算机/设备的框图,并根据一些实施例存储这些操作生成和/或使用的各种信息。计算机2500的目的是为了说明一个硬件设备,其中图1-7b、8a-11、13b、17-20描述的任何实体、组件或服务(以及本规范中描述的任何其他组件)和图12-13a,14-16b和2124中描述的方法均可以实现,例如服务器、客户端设备、计算节点、控制器节点(例如,雾服务器控制器(组件610,810–x,610,810,1110,1910,2010)、网络安全控制器(如组件655,655,1155,2055),网络控制器(例如,组件690,590,590,1190,1990,2090)),存储设备/节点,数据库,plc,pac等。计算机2500包括一个或多个处理器2505和内存2510耦合到内部互联。内部互联可以表示任何一个或多个单独的物理总线,点到点连接,或通过适当的桥梁、适配器或控制器连接。

处理器2505是计算机的中央处理器(cpu(s)),从而控制计算机的整体运行。在某些实施例中,处理器通过执行存储在内存中的软件或固件来实现这一点。处理器可能是一个或多个可编程的通用或专用微处理器、数字信号处理器、可编程控制器、应用程序特定集成电路(asics)、可编程逻辑器件(plds)、可信平台模块(tpms),或类似设备的组合。

内存2510是或包含计算机的主要内存。内存代表任何形式的随机存取存储器(ram)、只读存储器(rom)、三元内容可寻址存储器(tcam)、闪存,或类似设备的组合。在使用中,内存可能包含代码。在一个实施例中,该代码包括一个通用编程模块,该模块被配置为识别通过计算机总线接口接收的通用程序,并为在处理器上执行的通用程序做准备。在另一个实施例中,通用编程模块可以使用硬件电路实现,如asics、plds或现场可编程门阵列(fpga)。

通过内部互联连接到处理器的是一个网络适配器2525,一个存储设备2515和i/o设备2520。网络适配器为计算机提供了通过网络与远程设备进行通信的能力,例如,以太网适配器或光纤通道适配器或无线广播。网络适配器还可以为计算机提供与集群内其他计算机通信的能力。在某些实施例中,计算机可以使用多个网络适配器分别处理集群内部和外部的通信。

i/o设备可以包括键盘、鼠标或其他指向设备、磁盘驱动器、打印机、扫描仪和其他输入和/或输出设备,包括一个显示设备。该显示装置可以包括,例如,阴极射线管(crt),液晶显示(lcd),或其他一些已知或方便的显示装置。

存储在内存中的代码可以实现为软件和/或固件,以编程处理器来执行上述操作。在某些实施例中,这种软件或固件最初可以通过计算机(例如通过网络适配器)从远程系统下载到计算机。在一些实施例中,内存2510和存储设备2515可以是一个单独的实体。

本文介绍的组件可以通过编程电路(例如,一个或多个微处理器)来实现,它的程序包括软件和/或固件,或者完全在专用的硬连线(非可编程)电路中,或者是这种形式的组合。特殊用途的硬连线电路可能以一种或多种asics、plds、fpga等形式存在。

在sda系统中使用的软件或固件可以存储在机器可读的存储介质上,可以由一个或多个通用或专用的可编程微处理器执行。在这里使用的术语是“可加工的存储介质”,包括任何能够以机器可访问的形式存储信息的机制。

电脑也可以是服务器电脑,客户端电脑,个人电脑(pc),一个平板电脑,一台笔记本电脑,一个机顶盒(stb),个人数字助理(pda),移动电话,智能手机,平板电脑,phablet,一个处理器,一个电话,网络设备,网络路由器,交换机或桥,一个控制器(如plc,pac),或任何可执行指定要采取行动的指令集(顺序或其他)的机器。

机器可访问的存储介质或存储设备包括可记录/不可记录介质(例如,rom,内存,磁盘存储介质,光学存储介质,闪存设备,等等,或任何组合。存储介质通常可能是非暂时的,也可能包括非暂时的设备。在这种情况下,非暂时性存储介质可能包括一个可触摸的设备,这意味着该设备具有具体的物理形式,尽管设备可能会改变其物理状态。因此,例如,非暂时性指的是在状态发生变化的情况下,设备仍然是有形的。

术语“逻辑”,如本文所述,可以包括,例如,具有特定软件和/或固件、专用硬件电路或其组合的可编程电路。

11.结论

除非上下文清楚地要求,否则,在整个描述和声明中,“构成”、“包含”等词都应被理解为具有包容性的意义,而不是专属或穷尽的感觉;也就是说,在“包括但不限于”的意义上。在本协议中,“连接”、“耦合”或任何变体的术语,指两个或多个元素之间的任何直接或间接的连接或耦合;元素之间的连接的耦合可以是物理的、逻辑的或组合的。此外,在此应用程序中使用的“此处”、“上面”、“下”和“类似”的词语,应指整个应用程序,而不是该应用程序的任何特定部分。在上下文允许的情况下,使用单数或复数的上述详细描述中的单词也可以分别包含复数或单数。“或”指的是两个或多个项目的列表,包括下列所有的解释:列表中的任何项,列表中的所有项,以及列表中项目的任何组合。

上述具体实施例的详细描述并不是详尽无遗的,也不是为了将教义限制在上面所披露的精确形式。虽然上述披露的具体实施例和例子是为了说明的,但在披露的范围内可能会有各种等价的修改,因为相关技术的熟练者将会认识到,例如,当进程或块在给定的顺序中呈现时,替代实施例可以执行有步骤的例程,或者使用具有不同顺序的系统,并且可以删除、移动、添加、细分、组合和/或修改某些进程或块,以提供替代或子组合。每个进程或块都可以以各种不同的方式实现。同时,当进程或块有时显示为在系列中执行时,这些进程或块可能会并行执行,或者在不同的时间执行。此外,本文所提到的任何具体数字都只是示例,替代实现可能使用不同的值或范围。

本文所提供的信息披露可以应用于其他系统,而不是上述系统。上面描述的各种实施例的元素和行为可以结合起来提供进一步的实施例。

以上所述的任何专利、申请及其他参考资料,包括在附档文件中所列的任何资料,均可参考。如果有必要,可以修改披露的各个方面,以利用上面描述的各种引用的系统、功能和概念,从而提供进一步的披露实施例。

这些和其他的变化可以根据上面的详细说明进行披露。虽然上述描述描述了披露的某些实施例,并描述了所考虑的最佳模式,但无论上述内容在文本中有多详细,都可以在许多方面进行实践。系统的详细信息可能在其实现细节上有很大的差异,但仍被本协议中所披露的主题所包围。如上所述,在描述信息披露的某些特性或方面时使用的特定术语不应该被认为意味着术语正在被重新定义,以限制其与术语相关的任何特定特征、特性或方面。一般而言,以下声明中使用的术语不应被解释为将披露限制在规范中披露的具体实施例中,除非上述详细描述部分明确定义了这些术语。因此,披露的实际范围不仅包括披露的实施例,而且包括在索赔要求下实施或实施披露的所有等效方式。

从上述开始,我们将会理解到本协议中所述的公开系统/技术的具体实施例已经被描述为说明的目的,但可以在不偏离实施例的精神和范围的情况下进行各种修改。因此,实施例不受限制,除非附加声明。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1