首页> 中国专利> 用于协作开发工业应用的系统、方法和计算机介质

用于协作开发工业应用的系统、方法和计算机介质

摘要

提供了用于协作开发工业应用的系统、用于协作开发工业控制应用的方法和非暂态计算机可读介质。工业集成开发环境(IDE)支持协作工具,所述协作工具使得多个设计者和程序员能够并行地将设计输入远程提交至同一自动化系统项目,同时保持项目的一致性。这些协作特征可以包括例如:在针对系统项目的相同部分的不同设计输入集之间进行协调;在系统项目的一部分被修改时生成至远程设计者的通知;共享开发接口或环境;有助于外部技术支持专家参与以协助解决设计问题以及其他协作特征。

著录项

说明书

技术领域

本发明涉及工业自动化系统,更具体地涉及协作开发工具。

背景技术

本文公开的主题总体上涉及工业自动化系统,并且例如涉及工业编程开发平台。

发明内容

下面呈现了简化的概述,以提供对本文描述的一些方面的基本理解。该概述不是广泛的综述,也不旨在标识关键/重要元素或者描绘本文描述的各个方面的范围。其唯一的目的是以简化的形式呈现一些概念,作为稍后呈现的更详细描述的序言。

在一个或更多个实施方式中,提供了一种用于协作开发工业应用的系统,该系统包括:用户接口组件,其被配置成在相应客户端设备上呈现集成开发环境(IDE)接口,并且经由与IDE接口的交互来接收对工业自动化控制项目的方面进行定义的工业设计输入;项目生成组件,其被配置成基于工业设计输入来生成系统项目数据;以及协作管理组件,其被配置成在经由客户端设备中的不同客户端设备提交的多个工业设计输入集之间进行协调以包括在系统项目数据中。

此外,一个或更多个实施方式提供了一种用于协作开发工业控制应用的方法,该方法包括:由包括处理器的系统在相应客户端设备上呈现集成开发环境(IDE)接口;由系统经由与IDE接口的交互来接收从客户端设备接收的对工业控制和监视项目的方面进行定义的工业设计输入;由系统基于工业设计输入来生成系统项目数据;以及由系统从经由相应客户端设备提交的多个工业设计输入集中进行选择以包括在系统项目数据中。

此外,根据一个或更多个实施方式,提供了一种非暂态计算机可读介质,其存储有指令,所述指令响应于被执行来使系统执行包括如下操作的操作:在相应客户端设备上呈现集成开发环境(IDE)接口;经由与IDE 接口的交互来接收从客户端设备接收的对工业自动化项目的方面进行定义的工业设计输入;基于工业设计输入生成系统项目数据;以及在经由相应客户端设备提交的多个工业设计输入集之间进行协调以集成到系统项目数据中。

为了实现前述目的和相关目的,本文结合下面的描述和附图来描述某些说明性方面。这些方面指示可以实践的各种方式,所有这些方式都旨在被涵盖在本文中。当结合附图考虑时,其他优点和新颖特征将根据以下详细描述变得明显。

附图说明

图1是示例工业控制环境的框图。

图2是示例集成开发环境(IDE)系统的框图。

图3是示出工业IDE系统的通用架构的图。

图4是示出可以由IDE系统结合构建、部署和执行系统项目来利用的若干示例自动化对象属性的图。

图5是示出与使用工业IDE系统创建用于正被设计的自动化系统的系统项目相关联的示例数据流的图。

图6是示出将自动化对象结合到项目模型中的示例系统项目的图。

图7是示出对系统项目进行调试的图。

图8是示出基于云的IDE服务用于开发工业应用并将工业应用部署至工厂环境的示例架构的图。

图9是示出基于云的工业IDE服务的多租户的图,其中,不同的远程客户端设备利用集中式工业IDE服务单独提交针对公共系统项目的设计输入。

图10是示出基于云的工业IDE服务的多租户的图,其中,相应客户端设备被允许分别定制其自己的开发环境接口。

图11是示出针对系统项目的相同方面的不同设计输入集之间的调解(mediation)或协调(broker)的图。

图12是示出正被测试的版本的控制代码与自动化系统模型之间的交互的图。

图13是示出响应于从另一开发者接收到提议的设计修改而将更新通知分发至选定开发者的图。

图14是示出将IDE服务用作基于工厂的项目开发者与远程技术支持人员之间的代理的示意图。

图15是示出与基于用户与工厂的VR演示的交互来创建用于自动化系统的系统项目相关联的示例数据流的图。

图16a是描绘可以由工业IDE系统的虚拟呈现组件生成的工业区域的第一人称视角的示例虚拟现实演示的部分再现。

图16b是描绘也可以由虚拟呈现组件生成的工业区域的外部视角的另一示例虚拟现实演示的再现。

图17是用于管理工业自动化系统项目的来自多个开发者的设计贡献的示例方法的流程图。

图18向开发者通知对协作开发环境内的自动化系统项目的修改。

图19是示例计算环境。

图20是示例联网环境。

具体实施方式

现在参照附图描述本公开内容,在附图中相似的附图标记始终用于指代相似的元素。在以下描述中,出于说明的目的,阐述了许多具体细节以提供对本公开内容的透彻理解。然而显然,可以在没有这些具体细节的情况下实践本公开内容。在其他实例中,以框图形式示出了公知的结构和设备以便于对其进行描述。

如本申请中所使用的,术语“组件”、“系统”、“平台”、“层”、“控制器”、“终端”、“站”、“节点”、“接口”旨在指代计算机相关的实体或者与具有一个或更多个特定功能的操作装置相关的实体或者作为该操作装置的一部分的实体,其中这样的实体可以是硬件、硬件与软件的组合、软件或者执行中的软件。例如,组件可以是但不限于是在处理器上运行的进程、处理器、硬盘驱动器、包括固定的(例如,用螺钉或螺栓固定的)或可移除的固定固态存储驱动器的(光学存储介质或磁存储介质的)多个存储驱动器;对象;可执行文件;执行的线程;计算机可执行程序和/或计算机。作为说明,服务器和在服务器上运行的应用都可以是组件。一个或更多个组件可以驻留在执行的进程和/或线程内,并且组件可以位于一个计算机上和/或分布在两个或更多个计算机之间。此外,本文所描述的组件可以从存储有各种数据结构的各种计算机可读存储介质执行。这些组件可以例如根据具有一个或更多个数据包的信号(例如,来自与本地系统、分布式系统中的另一组件进行交互和/或通过诸如因特网的网络经由信号与其他系统进行交互的一个组件的数据)经由本地和/或远程进程进行通信。作为另一示例,组件可以是具有由被电气或电子电路操作的机械部件提供的特定功能的装置,该电气或电子电路由处理器执行的软件或固件应用来操作,其中处理器可以在该装置的内部或外部并且执行软件或固件应用的至少一部分。作为另一示例,组件可以是通过电子组件而不是机械部件来提供特定功能的装置,电子组件可以包括处理器以执行至少部分地提供电子组件的功能的软件或固件。作为又一示例,接口可以包括输入/输出(I/O) 组件以及相关联的处理器、应用或应用编程接口(API)组件。虽然前述示例针对组件的方面,但是所例示的方面或特征也可以应用于系统、平台、接口、层、控制器、终端等。

如本文所使用的,术语“推断(infer)”和“推断(inference)”通常涉及根据经由事件和/或数据捕获的观察结果的集合来推理或推断系统、环境和/或用户的状态的过程。例如,推断可以被应用于识别特定的情境或动作,或者可以生成状态的概率分布。推断可以是概率性的,即,基于对数据和事件的考虑来计算感兴趣的状态的概率分布。推断也可以涉及用于根据事件和/或数据的集合来编制(compose)更高级别事件的技术。这样的推断致使根据观察到的事件和/或存储的事件数据的集合构造新的事件或动作,而不管事件是否在时间接近度上紧密相关,以及事件和数据是否来自一个或若干个事件和数据源。

此外,术语“或”旨在意指包含性的“或”而不是排他性的“或”。也就是说,除非另有说明,或者根据上下文清楚得知,否则短语“X使用 A或B”旨在意指任何自然的包含性排列。也就是说,以下任何情况都满足短语“X使用A或B”:X使用A;X使用B;或者X使用A和B两者。此外,在本申请和所附权利要求中使用的冠词“一(a)”和“一个(an)”通常应当被解释为意指“一个或更多个”,除非另有说明或根据环境而清楚,该冠词针对单数形式。

此外,如本文所使用的术语“集合”排除空集,例如其中没有元素的集合。因此,本公开内容中的“集合”包括一个或更多个元素或实体。作为说明,控制器的集合包括一个或更多个控制器;数据资源的集合包括一个或更多个数据资源;等。同样,如本文所用的术语“组”是指一个或更多个实体的集合,例如,一组节点是指一个或更多个节点。

将根据可以包括多个设备、组件、模块等的系统来呈现各个方面或特征。应当理解并且意识到,各种系统可以包括附加的设备、组件、模块等,并且/或者可以不包括结合附图讨论的所有设备、组件、模块等。也可以使用这些方法的组合。

图1是示例工业控制环境100的框图。在该示例中,在整个工业工厂环境中部署多个工业控制器118以监视和控制相应的工业系统或者与产品制造、加工、运动控制、批处理、材料处理或其他这样的工业功能有关的过程。工业控制器118通常执行相应的控制程序以便于对构成受控工业资产或系统的工业设备120(例如,工业机器)进行监视和控制。一个或更多个工业控制器118还可以包括在个人计算机或其他硬件平台上或者在云平台上执行的软控制器。一些混合设备还可以将控制器功能与其他功能 (例如,可视化)组合。由工业控制器118执行的控制程序可以包括能够处理从工业设备120读取的输入信号并且控制由工业控制器118生成的输出信号的基本上任何类型的代码,所述任何类型的代码包括但不限于梯形逻辑、顺序功能图、功能框图或结构化文本。

工业设备120可以包括向工业控制器118提供与受控的工业系统有关的数据的输入设备以及对由工业控制器118生成的用于控制工业系统的方面的控制信号做出响应的输出设备两者。示例输入设备可以包括遥测设备 (例如,温度传感器、流量计、水平传感器、压力传感器等)、手动操作者控制设备(例如,按钮、选择器开关等)、安全监视设备(例如,安全垫、安全拉绳、光幕等)以及其他这样的设备。输出设备可以包括马达驱动器、气动致动器、信号设备、机器人控制输入、阀、泵等。

工业控制器118可以通过硬连线连接或联网连接与工业设备120通信地接口连接。例如,工业控制器118可以配备有与工业设备120进行通信以实现对这些设备的控制的本机硬连线输入和输出。本地控制器I/O可以包括向现场设备发送离散电压信号以及从现场设备接收离散电压信号的数字I/O或者向设备发送模拟电压或电流信号以及从设备接收模拟电压或电流信号的模拟I/O。控制器I/O可以通过背板与控制器的处理器进行通信,以使得数字信号和模拟信号可以被读入控制程序并由控制程序控制。工业控制器118还可以使用例如通信模块或集成联网端口通过网络与工业设备120通信。示例性网络可以包括因特网、内联网、以太网、设备网 (DeviceNet)、控制网(ControlNet)、数据高速公路和数据高速公路加 (DH/DH+)、远程I/O、现场总线、Modbus、过程现场总线(Profibus)、无线网络、串行协议等。工业控制器118还可以存储可以被其相关联的控制程序参考并且用于控制决策的持久数据值,所述持久数据值包括但不限于表示受控机器或过程的操作状态(例如,罐水平、位置、警报等)的测量值或计算值,或者在自动化系统的操作期间收集的被捕获的时间序列数据(例如,多个时间点的状态信息、诊断发生等)。类似地,一些智能设备——包括但不限于马达驱动器、仪器或状态监视模块——可以存储用于控制和/或使操作状态可视化的数据值。这样的设备还可以将时间序列数据或事件捕获在日志上以供稍后检索和查看。

工业自动化系统通常包括一个或更多个人机接口(HMI)114,所述一个或更多个人机接口(HMI)114使得工厂人员能够查看与自动化系统相关联的遥测数据和状态数据并且能够对系统操作的一些方面进行控制。 HMI 114可以通过工厂网络116与工业控制器118中的一个或更多个进行通信,并且与工业控制器交换数据以便于在一个或更多个预先开发的操作者接口屏幕上对与受控工业过程有关的信息进行可视化。HMI 114还可以被配置成使得操作者能够将数据提交至工业控制器118的指定数据标签或存储器地址,从而提供了供操作者向受控系统发出命令(例如,循环启动命令、设备致动命令等)、修改设定点值等的手段。HMI 114可以生成一个或更多个显示画面,操作者通过所述显示画面与工业控制器118进行交互,从而与受控过程和/或系统进行交互。示例显示画面可以使用显示计量值或计算值的过程的图形化表示来可视化工业系统或其相关联的设备的当前状态,采用基于状态的颜色或位置动画,呈现警报通知,或者采用其他这样的技术以向操作者展现相关数据。以这种方式展现的数据由HMI 114从工业控制器118读取,并且根据HMI开发者选择的显示格式在显示画面中的一个或更多个上展现所述数据。HMI可以包括具有用户安装的或预先安装的操作系统以及用户安装的或预先安装的图形应用软件的固定位置设备或移动设备。

一些工业环境还可以包括与受控工业系统的特定方面有关的其他系统或设备。这些系统或设备可以包括例如聚合并存储从工业控制器118或其他数据源收集的生产信息的数据历史记录装置(data historian)110、包含构成受控工业系统的各种工业设备的电子文档的设备文档存储库、库存跟踪系统、工作订单管理系统、机器或过程图纸和文档的储存库、供应商产品文档存储库、供应商知识库、内部知识库、工作调度应用或者其他这样的系统,它们中的一些或全部可以驻留在工业环境的办公网络108上。

较高级别系统126可以执行与工厂现场的工业自动化系统的控制不太直接相关并且替代地针对长期规划、高级监督控制、分析、报告或其他这样的高级功能的功能。这些系统126可以驻留在相对于工厂设施的外部位置处的办公网络108上,或者驻留在可以访问办公网络和/或工厂网络的云平台上。较高级别系统126可以包括但不限于云存储和分析系统、大数据分析系统、制造执行系统、数据湖、报告系统等。在一些场景中,在企业的这些较高级别处运行的应用可以被配置成分析控制系统操作数据,并且该分析的结果可以被反馈至控制系统处的操作者或者直接反馈至控制系统中的控制器118或设备120。

构成工业环境的各种控制、监视和分析设备必须使用特定于每个设备的相应配置应用来编程或配置。例如,工业控制器118通常使用(例如,在客户端设备124上执行的)的控制编程开发应用诸如梯形逻辑编辑器来配置和编程。使用这样的开发平台,设计者可以编写用于实现期望的工业顺序或过程的控制程序(例如,梯形逻辑、结构化文本、功能框图等)并且将得到的程序文件下载至控制器118。单独地,开发者使用(例如,在客户端设备122上执行的)HMI开发平台为HMI 114设计可视化画面和相关联的导航结构并且将得到的可视化文件下载至HMI 114。一些工业设备120——例如马达驱动器、遥测设备、安全输入设备等——也可能需要使用特定于正被配置的设备的(例如,在客户端设备128上执行的)单独的设备配置工具来进行配置。这样的设备配置工具可以用于设置设备参数或操作模式(例如,高/低限制、输出信号格式、比例因子、能耗模式等)。

使用单独的配置工具对工业自动化系统的不同方面进行编程和配置的需要导致了碎片化的设计方法,由此在不同的开发环境上对自动化系统的不同但相关或交叠的方面进行单独地设计、配置和编程。例如,运动控制系统可能需要使用控制逻辑编程平台对工业控制器进行编程并且对控制回路进行调谐,使用另一配置平台对马达驱动器进行配置,以及使用可视化开发平台对相关联的HMI进行编程。相关的外围系统——例如视觉系统、安全系统等——可能也需要使用单独的编程或开发应用进行配置。

这种分离的开发方法也可能需要相当多的测试和调试努力以确保单独配置的系统方面的适当集成。在这点上,由于未能适当地协调不同的编程努力,因此不同的系统方面之间的预期数据接口或协调动作可能需要大量调试。

工业开发平台在支持协作开发环境的能力方面也受到限制,该协作开发环境使得多个开发者能够并行处理给定的自动化系统项目。

为了解决这些或其他问题中的至少一些,本文描述的一个或更多个实施方式提供了用于使用通用设计环境和数据模型来设计、编程和配置工业自动化系统的多个方面的集成开发环境(IDE)。工业IDE的实施方式可以用于以通用的方式配置和管理自动化系统设备,从而促进控制系统的控制、可视化和其他方面的集成的、多学科编程。

通常,工业IDE支持跨越整个自动化生命周期的特征,包括设计(例如,设备选择及尺寸确定、控制器编程、可视化开发、设备配置、测试等);安装、配置和调试;操作、改进和管理;以及故障排除、扩展和升级。

工业IDE的实施方式可以包括特定于工业纵向市场(vertical)及这些纵向市场内的通用工业应用的模块化代码和可视化的库。这些代码和可视化模块可以简化开发并缩短开发周期,同时还支持跨工业企业的一致性和重复使用。

工业IDE的基于云的实施方式还可以支持协作工具,该协作工具使得多个设计者和程序员能够并行地将设计输入远程提交至相同的自动化系统项目,同时保持项目的一致性。这些协作特征可以包括例如:在针对系统项目的相同部分的不同设计输入集之间进行协调,在系统项目的一部分被修改时生成至远程设计者的通知,共享开发接口或环境,有助于外部技术支持专家参与以协助解决设计问题,或者其他这样的特征。

图2是根据本公开内容的一个或更多个实施方式的示例集成开发环境(IDE)系统202的框图。本公开内容中说明的系统、装置或过程的方面可以构成包含在机器内的机器可执行组件,例如包含在与一个或更多个机器相关联的一个或更多个计算机可读介质中的机器可执行组件。这样的组件在由一个或更多个机器例如计算机、计算设备、自动化设备、虚拟机等执行时可以使机器执行所描述的操作。

IDE系统202可以包括:包含IDE编辑器224的用户接口组件204、项目生成组件206、项目部署组件208、协作管理组件210、模拟组件212、代理组件214、虚拟呈现组件216、一个或更多个处理器218以及存储器220。在各种实施方式中,用户接口组件204、项目生成组件206、项目部署组件208、协作管理组件210、模拟组件212、代理组件214、虚拟呈现组件216、一个或更多个处理器218以及存储器220中的一个或更多个可以彼此电和/或通信地耦接以执行IDE系统202的功能中的一个或更多个。在一些实施方式中,组件204、206、208、210、212、214和216可以包括存储在存储器220上并由处理器218执行的软件指令。IDE系统202还可以与图2中未示出的其他硬件和/或软件组件交互。例如,处理器218 可以与一个或更多个外部用户接口设备诸如键盘、鼠标、显示监视器、触摸屏或其他这样的接口设备交互。

用户接口组件204可以被配置成接收用户输入并以任何合适的格式 (例如,视觉、音频、触觉等)将输出呈现给用户。在一些实施方式中,用户接口组件204可以被配置成与在客户端设备(例如,膝上型计算机、平板计算机、智能电话等)上执行的IDE客户端通信地交互,该客户端设备(例如,经由硬连线连接或无线连接)通信地连接至IDE系统202。然后,用户接口组件204可以经由IDE客户端接收用户输入数据并呈现输出数据。在其他实施方式中,用户接口组件204可以被配置成生成合适的接口画面(例如,程序开发画面)并将其提供给客户端设备,并且经由这些接口画面来交换数据。可以经由用户接口组件204的各种实施方式接收的输入数据可以包括但不限于编程代码、工业设计说明或目标、工程制图、 AR/VR输入、DSL定义、视频或图像数据或者其他这样的输入。由用户接口组件204的各种实施方式呈现的输出数据可以包括程序代码、编程反馈(例如,错误和突出显示、编码建议等)、编程和可视化开发画面等。

项目生成组件206可以被配置成基于经由用户接口组件204接收的设计输入以及由IDE系统202保持的工业知识、预定义代码模块和可视化以及自动化对象(AO)222来创建包括一个或更多个项目文件的系统项目。项目部署组件208可以被配置成将由项目生成组件206创建的系统项目委派给适当的工业设备(例如,控制器、HMI终端、马达驱动器、AR/VR系统等)以供执行。为此,项目部署组件208可以识别应向其发送系统项目的相应部分以供执行的适当目标设备,将这些相应部分转换成目标设备可理解的格式,并且将所转换的项目组件部署至其对应设备。

协作管理组件210可以被配置成以确保项目一致性和开发者之间的协调的方式来管理和调整由多个开发者提交的设计输入。模拟组件212可以被配置成对针对系统项目的公共方面的不同版本的设计输入执行测试模拟并将结果提交给协作管理组件210,以用于在不同的设计理念之间进行选择以包括在系统项目中的目的。代理组件214可以被配置成管理开发者与远程技术支持之间的连接和项目信息的共享。

虚拟呈现组件210可以配置成经由用户接口组件204在用户可佩戴装置上呈现工业设施或安装区域的虚拟现实(VR)演示,并对用户与VR 演示的交互进行转换。VR演示可以基于存储在IDE系统202上的数字工厂模型来生成。用户与VR演示的交互可以被解释为新自动化系统的设计规范或者用于修改现有自动化系统的设计或操作的规范,并且可以由项目生成组件206转换成满足设计规范的项目数据。该项目数据可以包括例如控制器代码;可视化对象、仪表板或混搭(mashup);设备配置;物料清单;装备推荐;工程制图;或者其他这样的项目组件。

一个或更多个处理器218可以执行本文中参照所公开的系统和/或方法描述的功能中的一个或更多个。存储器220可以是存储用于执行本文参照所公开的系统和/或方法描述的功能的计算机可执行指令和/或信息的计算机可读存储介质。

图3是示出根据一个或更多个实施方式的工业IDE系统202的通用架构的图。工业IDE系统202可以实现不仅跨设计而且跨调试、操作和维护的服务和工作流的通用集合。在设计方面,IDE系统202不仅可以支持工业控制器编程和HMI开发,而且可以支持系统部件的尺寸确定和选择、设备/系统配置、AR/VR可视化以及其他特征。IDE系统202还可以包括简化所得到的项目的调试并使所得到的项目的调试自动化并且在运行时间期间协助已部署系统的后续管理的工具。

在云平台上实现的IDE系统202的实施方式还有助于协作项目开发,由此多个开发者304向公共自动化系统项目302贡献设计和编程输入。IDE 系统支持的协作工具可以管理来自多个贡献者的设计贡献并且执行聚合系统项目302的版本控制以确保项目一致性。本文更详细地描述了工业 IDE系统支持的协作特征。

基于来自一个或更多个开发者304的设计和编程输入,IDE系统202 生成包括一个或更多个项目文件的系统项目302。系统项目302对以下中的一个或更多个进行编码:控制程序;HMI、AR和/或VR可视化;设备或子系统配置数据(例如,驱动参数、视觉系统配置、遥测设备参数、安全区域定义等)或者正被设计的工业自动化系统的其他这样的方面。IDE 系统202可以识别系统项目302的相应方面应当被执行的适当的目标设备306(例如,工业控制器、HMI终端、变频驱动器、安全设备等),将系统项目302转换成可以在相应目标设备上执行的可执行文件,并且将可执行文件部署至其对应的目标设备306以供执行,从而将系统项目302委派至工厂现场以实现自动化项目。

为了支持增强的开发能力,IDE系统202的一些实施方式可以构建在基于对象的数据模型上而不是基于标签的架构上。自动化对象222用作该基于对象的开发架构的构建块。图4是示出可以由IDE系统202结合构建、部署和执行系统项目302来利用的若干示例自动化对象属性的图。自动化对象222可以在设计期间被创建和扩充、可以被集成到较大数据模型中并且在运行时间期间使用。这些自动化对象222提供了跨IDE系统202的通用数据结构并且可以存储在对象库(例如,存储器220的一部分)中以供重复使用。对象库可以存储表示真实世界工业资产402的各种分类的预定义自动化对象222,所述工业资产402包括但不限于泵、罐、阀、马达、马达驱动器(例如,变频驱动器)、工业机器人、致动器(例如,气动或液压致动器)或其他这样的资产。自动化对象222可以表示工业企业的基本上任何级别的元素,包括单独的设备、由许多工业设备和部件(其中的一些可以与它们自己的自动化对象222相关联)组成的机器以及整个生产线或过程控制系统。

对应于给定类型的工业资产的自动化对象222可以对诸如2D或3D 可视化、警报、控制编码(例如,逻辑或其他类型的控制程序)、分析、启动程序、测试协议、验证报告、模拟、图表、安全协议以及与由对象 222表示的工业资产402相关联的其他这样的属性的方面进行编码。还可以用对相关联资产的位置进行标识的位置信息来对自动化对象222进行地理标记。在系统项目302的运行时间期间,对应于给定真实世界资产 402的自动化对象222也可以记录针对资产的状态或操作历史数据。通常,自动化对象222用作其对应工业资产402的编程表示,并且可以作为控制代码、2D或3D可视化、针对工业资产的知识库或维护指导系统或其他这样的方面的元素合并至系统项目302中。

图5是示出与使用根据一个或更多个实施方式的IDE系统202创建用于正被设计的自动化系统的系统项目302相关联的示例数据流的图。执行 IDE客户端应用514的客户端设备504(例如,膝上型计算机、平板计算机、台式计算机、移动设备、可佩戴AR/VR器械等)可以访问IDE系统的项目开发工具并利用这些工具创建用于正被开发的自动化系统的综合系统项目302。通过与系统的用户接口组件204的交互,开发者可以以各种支持的格式向IDE系统202提交设计输入512,包括特定于工业的控制程序(例如,控制逻辑、结构化文本、顺序功能图等)和HMI屏幕配置输入。基于该设计输入512和存储在工业知识库中的信息(预定义代码模块508和可视化510、护栏模板506、基于物理学的规则516等),用户接口组件204呈现设计反馈518,该设计反馈518被设计成协助开发者结合开发系统项目302对工业自动化系统进行配置、控制和可视化。

除了控制程序和可视化定义以外,IDE系统202的一些实施方式可以被配置成接收数字工程制图(例如,计算机辅助设计(CAD)文件)作为设计输入512。在这样的实施方式中,项目生成组件206可以基于对现有设计制图的分析例如通过自动生成控制和/或可视化代码来生成系统项目 302的一些部分。可以作为设计输入512提交的制图可以包括但不限于P&ID制图、机械制图、流程图或其他这样的文档。例如,P&ID制图可以被导入到IDE系统202中,并且项目生成组件206可以识别通过制图传达的元素(例如,罐、泵等)以及它们之间的关系。项目生成组件206可以将在制图中识别的元素与对应于这些元素(例如,罐、泵等)的适当的自动化对象222相关联或映射,并且将这些自动化对象222添加至系统项目302。特定于设备和特定于资产的自动化对象222包括要与在制图中识别的元素相关联的合适的代码和可视化。通常,IDE系统202可以检查一个或更多个不同类型的(机械的、电的、管道等的)制图以确定设备、机器和/或资产之间的关系(包括识别跨不同制图的公共元素),并且将这些元素与适当的自动化对象222、代码模块508和/或可视化510智能地关联。 IDE系统202可以结合生成用于系统项目302的代码或项目数据、根据需要利用基于物理学的规则516以及预定义代码模块508和可视化510。

IDE系统202还可以确定预定义可视化内容是否可用于在制图中发现的任何对象并且基于这些预定义可视化生成针对所发现的对象的适当 HMI画面或AR/VR内容。为此,IDE系统202可以存储可由项目生成组件206按需访问的特定于工业、特定于资产的和/或特定于应用的可视化 510。这些可视化510可以根据工业或工业纵向市场(例如,汽车、食品和药品、石油和天然气、药物等)、工业资产的类型(例如,机器或工业设备的类型)、工业应用的类型(例如,批处理、流量控制、幅面张力控制(web tension control)、金属板冲压、水处理等)或其他这样的类别而分类。预定义可视化510可以包括各种格式的可视化,包括但不限于HMI 画面或窗口、聚合来自多个预先指定的源的数据的混搭(mashup)、AR 叠加、表示相关联的工业资产的3D虚拟化的VR对象或其他这样的可视化格式。IDE系统202可以基于对象类型与可视化内容之间的预定义关联来选择针对给定对象的合适的可视化。

在另一示例中,由用户应用于工程制图的标记可以通过项目生成组件 206的一些实施方式理解以传达特定的设计意图或参数。例如,红色笔的标记可以被理解为指示安全区域,通过虚线连接的两个圆可以被解释为齿轮关系,以及粗线可以指示凸轮关系。以这种方式,设计者可以以IDE系统202可以理解并利用的方式在现有的制图上草拟设计目标以生成代码和可视化。在另一示例中,项目生成组件206可以基于对用户的CAD制图的分析来学习充当用于启动机器的必要前提条件的许可和互锁(例如,阀及其相关联的状态)。项目生成组件206可以基于对这些制图和标记的分析来生成任何合适的代码(梯形逻辑、功能块等)、设备配置和可视化以合并到系统项目302中。在一些实施方式中,用户接口组件204可以包括用于在IDE平台本身内开发工程制图的设计工具,并且项目生成组件 206可以在用户为新项目创建制图时生成该代码作为后台进程。在一些实施方式中,项目生成组件206还可以将状态机制图转换成对应的编程序列,从而至少产生可由开发者根据需要用附加的编程细节来增强的骨架代码。

此外,或者另外,IDE系统202的一些实施方式可以支持基于目标的自动化编程。例如,用户接口组件204可以允许用户指定正被设计的自动化系统的生产目标(例如,指定正被设计的装瓶工厂必须能够在正常操作期间每秒生产至少5000个瓶子)和应用于该设计项目的任何其他相关设计约束(例如,预算限制、可用现场空间、可用控制柜空间等)。基于此信息,项目生成组件206将生成系统项目302的一些部分以满足指定的设计目标和约束。可以以这种方式生成的系统项目302的一些部分可以包括但不限于设备和装备选择(例如,将需要定义多少泵、控制器、站、传送机、驱动器或其他资产以满足所指定的目标)、相关联的设备配置(例如,调谐参数、网络设置、驱动器参数等)、控制编码或者适于使正被设计的自动化系统可视化的HMI画面。

项目生成组件206的一些实施方式还可以基于已经为正被开发的项目订购的零件的知识来生成系统项目302的至少一些项目代码。这可以涉及:访问由装备供应商维护的客户的账户信息以识别已经为项目购买的设备。基于此信息,项目生成组件206可以添加与所购买的资产相对应的适当的自动化对象222及相关联的代码模块508,由此提供项目开发的起点。

项目生成组件206的一些实施方式还可以监视针对共同编程的功能 (例如,泵送应用、批处理、托盘包装(palletizing)操作等)的特定于客户的设计方法,并基于对设计者的目标的推断和为了实现该目标而学习的方法来生成针对用户可能希望合并到当前设计项目中的设计模块(例如,代码模块508、可视化510等)的推荐。为此,项目生成组件206的一些实施方式可以被配置成随着时间流逝监视设计输入512,并且基于该监视,获知某些设计动作(例如,向设计项目添加某些代码模块或代码段、选择某些可视化等)与正在设计的工业资产的类型、工业顺序或工业过程之间的相关性。项目生成组件206可以记录这些获知的相关性并且在后续项目开发环节期间基于这些相关性生成推荐。例如,如果项目生成组件206基于对设计输入512的分析确定:设计者当前正在以重复可预测的方式开发涉及一种在过去已经被编程和/或可视化的工业装备的控制项目,则项目生成组件206可以基于该装备在过去是如何被配置和/或编程的来指示用户接口组件204呈现推荐的开发步骤或者设计者可能希望合并到系统项目302中的代码模块508。

在一些实施方式中,IDE系统202还可以存储和实现护栏模板506,护栏模板506定义旨在确保项目符合内部或外部设计标准的设计护栏。基于由一个或更多个选择的护栏模板506定义的设计参数,用户接口组件 204可以提供动态推荐或其他类型的反馈作为设计反馈518的子集,所述动态推荐或其他类型的反馈被设计成以确保系统项目302符合内部或外部要求或标准(例如,诸如TUV认证的认证、内部设计标准、特定于工业或特定于纵向市场的设计标准等)的方式来指导开发者。该反馈518可以采取基于文本的推荐(例如,重写控制代码的指示部分以符合所定义的编程标准的推荐)、语法突出显示、错误突出显示、代码段的自动完成或其他这样的格式的形式。以这种方式,IDE系统202可以根据正被开发的工业系统的类型和任何适用的内部设计标准来定制设计反馈518,设计反馈518包括编程推荐、预定义代码模块508或可视化510的推荐、错误突出显示和语法突出显示等。

护栏模板506还可以被设计成保持与适用于控制程序或项目开发的其他方面的全局最佳实践相符合。例如,如果开发者的控制程序被认为太复杂(如由一个或更多个护栏模板506指定的标准所定义),则用户接口组件204可以生成并呈现警报。由于不同的纵向市场(例如,汽车、药物、石油和天然气、食品和药品、船舶等)必须遵守不同的标准和认证,因此IDE系统202可以维护针对不同的内部和外部标准和认证的护栏模板506 的库,包括定制的特定于用户的护栏模板506。这些护栏模板506可以根据工业纵向市场、工业应用的类型、工厂设施(在定制的内部护栏模板 506的情况下)或其他这样的类别而分类。在开发期间,项目生成组件206 可以基于诸如与项目相关的工业纵向市场、正被编程的工业应用的类型(例如,流量控制、幅面张力控制、特定批处理等)或其他这样的方面的方面的确定来选择并应用被确定为与当前正被开发的项目相关的护栏模板506的子集。项目生成组件206可以利用护栏模板506来实现基于规则的编程,由此基于编码的工业专业知识和最佳实践(例如,识别正被开发的代码中的低效部分并且推荐适当的校正)来呈现诸如动态智能自动校正、输入提示(type-ahead)或编码建议的编程反馈(设计反馈518的子集)。

用户还可以针对由外部供应商(例如OEM)提供的代码来运行他们自己的内部护栏模板506以确保该代码符合内部编程标准。在这样的场景中,供应商提供的代码可以被提交至IDE系统202,并且项目生成组件206 可以鉴于由一个或更多个定制护栏模板506指定的内部编码标准来对该代码进行分析。基于该分析的结果,用户接口组件204可以(例如,使用突出显示、覆盖文本等)指示供应商提供的代码中不符合护栏模板506所阐述的编程标准的部分,并且显示用于修改代码的建议以使代码符合标准。作为推荐这些修改的替选方案或者除了推荐这些修改之外,项目生成组件206的一些实施方式可以被配置成根据推荐来自动修改代码以使代码符合标准。

在提出编码建议作为设计反馈518的一部分时,项目生成组件206可以调用存储在代码模块数据库中(例如,存储器220上)的选定代码模块 508。这些代码模块508包括用于控制常见工业任务或应用(例如,托盘包装(palletizing)、流量控制、幅面张力控制、拾取和放置应用、传送机控制等)的标准化编码段。在一些实施方式中,代码模块508可以根据工业纵向市场(例如,汽车、食品和药品、石油和天然气、纺织品、船舶、药物等)、工业应用、或代码模块508适用的机器或设备的类型中的一个或更多个而分类。在一些实施方式中,项目生成组件206可以基于由程序员提供的程序输入(作为设计输入512的子集)来推断程序员的当前编程任务或设计目标,并且基于该任务或目标确定是否可以将预定义代码模块 508之一适当地添加至正被开发的控制程序以实现所推断的任务或目标。例如,项目生成组件206可以基于对设计输入512的分析推断出程序员当前正在开发用于将材料从第一罐转移至另一罐的控制代码,并且作为响应,推荐包括包含用于控制实现材料转移所需的阀、泵或其他资产的标准化或频繁利用的代码的预定义代码模块508。

定制的护栏模板506还可以被定义为捕获在项目设计中应当考虑的客户站点的细微差别。例如,护栏模板506可以记录正被设计的自动化系统将被安装在停电很常见的区域中的事实,并且将在生成设计反馈518时考虑这一因素,例如通过推荐实施备用不间断电源并建议应该如何将这些电源合并以及推荐考虑这些断电的相关联的编程或控制策略。

IDE系统202还可以例如基于以下使用护栏模板506来指导用户针对给定设计目标选择装备或设备:工业纵向市场、控制应用(例如金属板冲压、模铸、托盘包装、传送机控制、幅面张力控制、批处理等)的类型、项目的预算约束、安装地点的物理约束(例如可用楼层、墙壁或柜空间;安装空间的尺寸等)、该地点已经存在的装备等。这些参数和约束中的一些或全部可以被提供作为设计输入512,并且用户接口组件204可以将装备推荐作为设计反馈518的子集呈现。在一些实施方式中,项目生成组件 206还可以确定是否可以将一些或全部现有装备重新调整以用于正被设计的新控制系统。例如,如果要将新的装瓶线添加至生产区域,由于一些装瓶线已经存在,因此可能存在利用现有装备的机会。关于哪些设备和装备可以被重复使用的决定将影响新控制系统的设计。因此,提供至IDE系统 202的设计输入512中的一些设计输入可以包括安装地点内或安装地点附近的客户现有系统的细节。在一些实施方式中,项目生成组件206可以将人工智能(AI)或传统的分析方法应用于该信息以确定是否可以重新调整或利用在设计输入512中指定的现有装备。基于该分析的结果,项目生成组件206可以基于这些决定生成可能需要购买的任何新装备的列表作为设计反馈518。

在一些实施方式中,IDE系统202可以基于对正被设计的自动化系统将安装于的物理环境的理解来提供设计推荐。为此,关于物理环境的信息可以以工厂环境的2D或3D图像或视频的形式提交给IDE系统202(作为设计输入512的一部分)。在一些实施方式中,该环境信息还可以从工厂的现有数字化映射(digital twin)获得,或者通过对由可佩戴AR器械获得的扫描环境数据的分析来获得。项目生成组件206可以对该图像、视频或数字化映射数据进行分析以识别安装区域内的物理元素(例如,墙、梁、安全围栏、现有机器和设备等)以及这些元素之间的物理关系。这可以包括查明机器之间的距离、管道铺设的长度、线束或线缆桥架的位置和距离等。基于该分析的结果,项目生成组件206可以将该环境添加至生成的示意图作为系统项目302的一部分,生成关于设备或机器的最佳位置的推荐(例如,推荐电力线缆与数据线缆之间的最小间隔),或者对系统项目302进行其他改进。这些设计数据中的至少一些可以根据基于物理学的规则516来生成,基于物理学的规则516可以由项目生成组件206参考以确定这样的物理设计规范:例如距离危险装备的最小安全距离(在给定由基于物理学的规则516定义的预期的人或车辆反应时间的情况下,这也可以在确定安全设备相对于该装备的安装的合适位置时作为因素考虑)、能够承受预期负荷的材料选择、管道配置和针对指定流量控制应用的调谐、适合于预期电负荷的布线规格、信号布线与电磁场(EMF)源之间的确保对数据信号的可忽略的电干扰的最小距离或者依赖于物理规则的其他这样的设计特征。

在示例用例中,由提交至IDE系统202的物理环境信息指定的机器与设备的相对位置可以由项目生成组件206使用以生成工业安全系统的设计数据。例如,项目生成组件206可以分析安全装备与危险机器之间的距离测量结果,并且基于这些测量结果来确定安全设备和相关联的安全控制器的合适的放置和配置,所述相关联的安全控制器(例如,在人穿过光幕的情况下)确保机器将在足够的安全反应时间内关闭以防止受损。

在一些实施方式中,项目生成组件206还可以分析现有机器的照片数据或视频数据以确定诸如齿轮或凸轮的内联机械特性并且将该信息作为因素纳入到一个或更多个护栏模板506或设计推荐中。

如上所述,由IDE系统202针对正被设计的给定自动系统生成的系统项目302可以在使用自动化对象222作为构建块的基于对象的架构上构建。图6是示出将自动化对象222合并到项目模型中的示例系统项目302 的图。在该示例中,表示类似工业设备、系统或自动化系统的资产(例如,过程、罐、阀、泵等)的各种自动化对象222已经作为较大项目数据模型602的元素合并到系统项目302中。项目数据模型602还定义这些自动化对象222之间的层次关系。根据示例关系,表示批处理的过程自动化对象可以被定义为表示执行该过程的设备和装备例如罐、泵和阀的多个子对象的父对象。每个自动化对象222具有与其相关联的特定于其对应工业资产的对象属性或特性(例如,以上结合图4讨论的那些),包括用于控制资产(或用于协调资产与其他工业资产的动作)的可执行控制程序以及可以用于在运行时间期间呈现关于资产的相关信息的可视化。

每个自动化对象222的至少一些属性是由IDE系统202基于与由对象表示的资产有关的编码工业专业知识而定义的默认属性。开发者可以根据需要(经由设计输入512)修改或添加其他属性以针对系统项目302正被开发用于的特定资产和/或工业应用来定制对象222。这可以包括例如对定制的控制代码、HMI画面、AR演示、或与所选择的自动化对象222相关联的帮助文件进行关联。以这种方式,可以在设计期间根据需要来创建和扩充自动化对象222以供目标控制设备在运行时间期间使用或执行。

一旦完成了对系统项目302的开发,则IDE系统202支持的调试工具可以简化在现场调试项目的过程。在用于给定自动化系统的系统项目302 已经完成的情况下,系统项目302可以被部署至一个或更多个目标控制设备以供执行。图7是示出对系统项目302进行调试的图。项目部署组件 208可以将完成的系统项目302编译或以其他方式转换成可以在自动化系统的相应目标工业设备(例如,工业控制器118、HMI终端114或其他类型的可视化系统、马达驱动器710、遥测设备、视觉系统、安全继电器等) 上存储和执行的一个或更多个可执行文件或配置文件。

常规的控制程序开发平台要求开发者在开发之前指定将运行控制程序的工业控制器的类型(例如,控制器的型号),从而将控制程序绑定至指定的控制器。然后在程序开发期间强加特定于控制器的护栏,所述特定于控制器的护栏限制了在给定所选择的控制器的能力的情况下开发程序的方式。相比之下,IDE系统202的一些实施方式可以根据特定控制器类型抽象项目开发,从而使得设计者能够以对系统项目302的各个控制方面将在何处运行以及如何运行不可知的方式将系统项目302开发为自动化系统的逻辑表示。一旦项目开发完成并且系统项目302准备好调试,用户就可以(经由用户接口组件204)指定要执行系统项目302的相应方面的目标设备。作为响应,项目部署组件208的分配引擎将系统项目302的方面转换成被格式化以供在其相应目标设备上存储和执行的相应可执行文件。

例如,除了其他项目方面以外,系统项目302还可以包括控制代码、可视化画面定义和马达驱动器参数定义。在完成项目开发之后,用户可以识别哪些目标设备——包括工业控制器118、HMI终端114和马达驱动器 710——将执行或接收系统项目302的这些相应方面。然后,项目部署组件208可以将由系统项目302定义的控制器代码转换成被格式化以供在指定的工业控制器118上执行的控制程序文件702并且(例如,经由工厂网络116)将该控制程序文件702发送至控制器118。类似地,项目部署组件208可以将可视化定义和马达驱动器参数定义分别转换成可视化应用 704和设备配置文件708,并且将这些文件部署至它们相应的目标设备以供执行和/或设备配置。

通常,项目部署组件208执行使得系统项目302的方面能够在指定设备上执行所必需的任何转换。无论系统项目302的各个元素如何分布,都将维护在系统项目302中定义的任何固有关系、握手或数据共享。以这种方式,IDE系统202的实施方式可以将项目与该项目将如何运行以及在哪里运行分离。这还使得相同的系统项目302能够在具有不同控制装备集合的不同工厂设施处进行调试。也就是说,IDE系统202的一些实施方式可以根据现场找到的特定设备将项目代码分配至不同的目标设备。IDE系统 202还可以使得项目文件的一些部分能够作为仿真器进行调试或在基于云的控制器上进行调试。

作为让用户指定系统项目302要被部署至的目标控制设备的替选方案,IDE系统202的一些实施方式可以主动地连接至工厂网络116并发现可用的设备,查明工厂现场存在的控制硬件架构,推断针对系统项目302 的相应可执行方面的适当目标设备,并且将系统项目302部署至这些所选择的目标设备。作为该调试过程的一部分,IDE系统202还可以连接至远程知识库(例如,基于web的知识库或基于云的知识库)以确定哪些已发现的设备是过时的或需要固件升级以正确地执行系统项目302。以这种方式,IDE系统202可以用作设备供应商与客户的工厂生态系统之间经由云中的可信连接的链接。

可以使用智能传播将系统项目302的副本传播至具有不同装备配置的多个工厂设施,从而即使现场装备没有完美地匹配所定义的目标(例如,如果在不同地点处发现不同的泵类型),项目部署组件208也智能地将项目组件与正确的工业资产或控制设备相关联。对于未与预期资产完美匹配的目标设备,项目部署组件208可以计算运行系统项目302对非最优目标装备的估计影响并且生成用于减轻与最优项目执行的预期偏差的警告或推荐。

如上所述,IDE系统202的一些实施方式可以在云平台上实施。图8 是示出基于云的IDE服务802用于开发工业应用并将工业应用部署至工厂环境的示例架构的图。在该示例中,工业环境包括一个或更多个工业控制器118、HMI终端114、马达驱动器710、运行更高级别应用(例如,ERP、 MES等)的服务器801以及其他这样的工业资产。这些工业资产连接至工厂网络116(例如,通用工业协议网络、以太网/IP网络等),这有助于工厂现场的工业设备之间的数据交换。工厂网络116可以是有线或无线网络。在示出的示例中,高级服务器810驻留在(例如,通过路由器808或其他网络基础设施设备)连接至工厂网络116的单独的办公网络108上。

在该示例中,IDE系统202驻留在云平台806上并且作为可由经授权的远程客户端设备504访问的基于云的IDE服务802的集合来执行。云平台806可以是使得共享的计算服务(例如IDE服务802)能够被能够连接云的设备访问和利用的任何基础设施。云平台806可以是可以由具有因特网连接和利用IDE服务802的适当授权的设备504经由因特网访问的公共云。在一些场景中,云平台806可以由云提供商提供为平台即服务(PaaS),并且IDE服务802可以作为基于云的服务驻留在云平台806上并且在云平台806上执行。在一些这样的配置中,IDE服务802的所有者可以将对云平台806和相关联的IDE服务802的访问作为订阅服务提供给客户。可替选地,云平台806可以是由工业企业(工厂设施的所有者)内部操作的私有云。示例私有云平台可以包括托管IDE服务802并且驻留在由防火墙保护的公司网络上的服务器的集合。

IDE系统202的基于云的实现可以促进被授权访问IDE服务802的多个远程开发者的协作开发。当系统项目302准备好部署时,可以经由办公网络108或工厂网络116与云平台806之间的安全连接将项目302委派至工厂设施。如上面所讨论的,工业IDE服务802可以将系统项目302转换成一个或更多个适当的可执行文件——控制程序文件702、可视化应用704、设备配置文件708、系统配置文件812——并将这些文件部署至工厂设施中的适当设备以促进自动化项目的实现。

如以上结合图8所述,IDE系统202的一些实施方式可以驻留在云平台806上并且作为可由经授权的远程客户端设备504访问的基于云的IDE 服务802的集合来执行。这使得多个最终用户能够访问和利用工业IDE服务802以开发工业系统项目302。图9是示出基于云的工业IDE服务802 的多租户的图,其中不同的远程客户端设备504a至504c利用集中式工业IDE服务802来单独提交针对公共系统项目302的设计输入512。使用该架构,多个远程开发者可以将设计输入512提交至公共工业自动化系统项目302,从而促进多个远程设计者的并行开发。工业IDE系统202可以支持协作设计工具,所述协作设计工具可以管理和调整这些不同的设计输入 512集,以确保系统项目302的一致性和优化。

在该示例中,工业IDE服务802可以被(与相应客户端设备504a至 504c相关联的)多个授权客户端以安全的方式进行访问。使用由IDE服务802提供至客户端设备504a至504c的相应设计接口,每个客户端设备处的开发者可以与IDE服务802进行交互,以提交针对公共工业系统项目的设计输入512a至512c。如上所述,随着每个用户进行其项目开发工作流程,IDE服务802将生成各个设计反馈518a至518c并将其呈现给每个用户的客户端设备504a至504c。在开发期间系统项目302安全地存储在云平台806上,并且一经完成则可以将系统项目302从云平台806部署至构成来自云平台的自动化系统的自动化系统设备(如图8中描绘的),或者可以将系统项目302下载到客户端设备以本地化从客户端设备到一个或更多个工业设备的部署。由于IDE服务802驻留在可访问基于互联网的资源的云平台上,因此IDE服务802的一些实施方式还可以使得用户能够访问远程基于网络的知识库、供应商装备目录或者可以有助于开发他们的工业控制项目的其他信息源。

基于云的IDE服务802可以跨认证授权、逻辑级别的数据隔离以及逻辑级别的网络隔离的层支持真正的多租户。最终用户可以访问云平台806 上的工业IDE服务802,并且每个最终用户的开发数据(包括设计输入512) 设计反馈518和系统项目302都被加密,以使得每个最终用户只能查看与他们自己的工业企业相关联的数据。在示例实现中,基于云的工业IDE服务802的管理员可以维护具有适当安全特征的主虚拟私有云(VPC),并且可以为每个工业企业分配该VPC的一部分以供他们自己的开发者访问 IDE服务802。在示例实施方式中,加密的多协议标记交换(MPLS)信道可以保护最终用户数据的整个全集(corpus),以使得该数据仅能由具有适当证书的特定计算机或域查看。

在一些实施方式中,IDE服务802可以允许致力于相同的系统项目302 的不同协作开发者根据需要独立地定制他们的开发平台接口版本,并利用他们自己的定制开发接口与系统项目302的主副本进行接口连接。图10 是示出基于云的工业IDE服务802的多租户的图,其中,允许每个客户端设备504分别定制他们自己的开发环境接口1004a至1004c。在该示例架构中,每个客户端设备504a至504c可以分别提交接口定义数据1002a至1002c,从而分别配置他们自己的定制开发平台接口1004a至1004c以及动态设计反馈的优选形式。

另外,在一些实施方式中,由开发平台接口1004的给定实例提供的外观和可用功能可以是访问IDE服务802的开发者的角色的函数,如由开发者提交的角色或用户身份信息1006所确定的。在这样的实施方式中,可以由存储在IDE系统202上的用户角色定义来定义给定开发者角色可用的可用IDE功能的子集。用户接口组件203和IDE编辑器224可以鉴于由开发者提交的角色和/或用户身份信息1006来访问这些用户角色定义,以确定应该如何定制该开发者的定制接口1004。在示例场景中,相对于具有协助角色的开发者,具有主导开发者角色的开发者可以被授予更广泛的开发特征集,例如,设计覆写(override)特权、跟踪各个开发者的设计贡献的能力等。在另一示例中,在给定用户的定制接口1004内应用的护栏模板506的集合可以是用户角色的函数,以使得通过适合于开发者的角色的预定义护栏模板506对允许由用户提交的设计修改进行调整。

由IDE系统202支持的协作工具可以管理来自多个协作开发者的设计贡献并且执行聚合系统项目302的版本控制以确保项目的一致性。在不同的个人或组对公共系统项目302执行并行开发的该协作设计环境的上下文中,可能存在如下场景:多个开发者提交针对系统项目302的相同部分的设计输入512(例如,控制程序、可视化应用开发、设备配置设置等)。图11是示出根据一些实施方式的针对系统项目302的相同方面的不同设计输入集之间的调解或协调的图。在该示例中,致力于工业自动化系统的系统项目302的开发的多个项目开发者已提交了要包括在系统项目302中的各自不同的互斥版本的控制代码1102a至1102c作为设计输入512的一部分。这些版本的控制代码1102可以是例如系统项目302的替选版本的特定控制例程、定制自动化对象或另一方面。

IDE系统的协作管理组件210可以对由多方提交的针对相同代码块的控制代码1102进行比较,并且选择控制代码1102的替选集合之一以集成到项目中。在这点上,协作管理组件210可以应用任何合适的标准来选择优选版本的控制代码1102。例如,在一些实施方式中,协作管理组件210 可以选择以最少行的代码执行相同控制功能的版本的控制代码1102。在另一示例中,协作管理组件210可以选择被估计为以最小的机械应力来控制其关联的机械资产的版本的代码。在这种情况下,鉴于关于相应控制序列将如何影响机械资产的内置工业专业知识,协作管理组件210可以基于对各个版本的控制代码1102的分析来确定施加至受控工业资产的应力量的估计。

例如,协作管理组件210可以对每个版本的控制代码1102进行分析,以确定将由于执行每个版本的控制代码1102而得到的估计机器循环频率。由于较高的频率与较快的机器磨损相关,因此协作管理组件210可以选择被估计为以最小的机器循环频率执行控制功能而不会导致产品产量降至所定义的最小值以下的版本的控制代码1102。在另一示例中,协作管理组件210可以对将由每个版本的控制代码1102实现的机械资产(例如,运动设备)的预期运动范围或者将由相应版本的控制代码1102实现以执行相同功能的个体机械运动的数量进行估计,并且选择预期使用最短运动或最少数量的运动来实现控制功能的版本的控制代码。其他类型的预测控制分析和对应的版本选择标准在一个或更多个实施方式的范围内。基于这样的分析的结果,协作管理组件210可以选择控制代码1102的版本之一作为最合适的版本,并且项目生成组件206会将所选择版本的代码1104集成到系统项目302中。

在一些实施方式中,协作管理组件210可以结合评估相应不同版本的控制代码1102来利用模拟组件212。模拟组件212可以被配置成模拟各个版本的控制代码1102对自动化系统(或其一部分)的控制,并且将模拟结果提供给协作管理组件210,协作管理组件210基于这些结果来选择优选版本的代码1104。可以使用由模拟组件212执行的控制模拟来执行上述示例类型的评估分析中的任一类型的评估分析。在一些实施方式中,模拟组件212可以结合模拟不同版本的控制代码1102来利用系统项目302被开发用于的自动化系统的数字模型。图12是示出正在测试的版本的控制代码1102与自动化系统模型1202之间的交互的图。在该示例中,IDE系统的模拟组件212用作工业控制器仿真器以针对自动化系统模型1202执行控制代码1102(或控制代码部分)。

自动化系统模型1202可以对要通过系统项目302监视和调整的物理工业自动化系统的各个方面进行模拟。模拟组件212可以将控制代码1102 与自动化系统模型1202虚拟地接口连接来交换虚拟I/O数据,以便模拟现实世界的控制。自动化系统模型1202通过生成数字I/O值和模拟I/O值对要调整的系统进行数学建模,所述数字I/O值和模拟I/O值表示例如与预期要由正被建模的物理系统生成的数据类似的传感器输出、计量输出或者其他工厂数据。可以通过模型1202针对每种工业资产来定义这些输入和输出。

模拟组件212将该模拟输出数据1208提供给控制代码1102,控制代码1102接收该数据作为一个或更多个虚拟物理输入。控制代码1102根据开发者的控制程序对这些输入进行处理并且基于该处理生成数字和/或模拟控制器输出数据1206。该输出数据1206表示将由执行控制代码1102 的控制器生成并被发送至包括自动化系统的硬连线现场设备的物理输出 (例如,PID回路控制输出、螺线管激励输出、马达控制输出等)。控制器输出数据1206被提供给自动化系统模型1202的适当的输入点,自动化系统模型1202相应地更新模拟输出数据1208。

模拟组件212可以被配置成执行和监视该模拟并且基于模拟的结果来量化一个或更多个性能标准,所述模拟的结果将被协作管理组件210用于选择要包括在系统项目302中的优选版本的控制代码1102。这些性能标准可以包括例如,受控机械装备的磨损量、作为使用控制代码1102控制自动化系统的结果而消耗的能量的量、作为使用控制代码1102控制自动化系统的结果的产品产量的量、所需的维护的量或者其他这样的标准。

在一些实施方式中,如果两个或更多个不同版本的控制代码1102不一定相互排斥而是在某些区域中交叠,则协作管理组件210可以对比较所述两个或更多个版本和将所述两个或更多个版本合并在系统项目302的主副本内进行管理。这可以包括,例如,识别并删除两个或更多个版本的冗余或相同代码部分,识别控制代码的相同部分的竞争版本并选择要包括在系统项目302中的优选版本,识别由两个或更多个版本定义的冲突控制操作,以及推荐进行修改以解决冲突或自动实施修改,或者执行其他这样的动作。

尽管图11和图12描绘了作为控制代码1102的替选设计输入,但是协作管理组件210(在有或没有模拟组件212的协助下)也可以在其他类型的项目元素之间进行调解或协调,所述其他类型的项目元素包括但不限于可视化方面(例如,HMI画面、AR/VR对象等)、设备参数设置、工程制图等。

此外,模拟组件212的一些实施方式可以被配置成对经由开发者的设计输入512提交的针对系统项目302的提议更新执行风险分析。例如,响应于接收到针对包括在系统项目302中的控制程序的一部分的更新或修订,模拟组件212可以发起对该提议更新的风险分析以确定该更新的可能结果。作为该风险评估的一部分,模拟组件212可以对整个系统项目302 执行回归分析,以确定系统项目的哪些其他方面可能会受到所提议的修改的影响,并且使用模拟技术或其他类型的分析来确定该更新将如何影响这些其他相关方面的性能。基于该分析的结果,用户接口组件204可以在开发者的接口1004上生成警告该修改可能对系统项目302的其他部分产生影响的消息,并提示用户在将更改实施至系统项目302之前确认该警告。

在不同开发者致力于系统项目302的相应不同部分的一些实施方式中,用户接口组件204还可以向系统项目302的部分被确定为受到发起的开发者的提议更新的影响的选定的其他开发者发送警告。图13是示出响应于从另一开发者(在所示示例中为与客户端设备504a相关联的开发者) 接收到提议的设计修改1304而将更新通知1302分发至选定开发者的图。如上所述,由开发者提交针对系统项目302的一部分的设计修改1304可以发起对系统项目302的回归分析,以识别可能受到修改1304影响的系统项目302的其他部分。在各种实施方式中,协作管理组件210可以基于获知的系统项目之间的相互依赖关系来识别系统项目302的受影响部分,所述相互依赖关系包括但不限于控制代码段或例程之间的编程关系或依赖关系、控制代码段与可视化元素之间的依赖关系、控制代码与工程制图 (例如,I/O图、电气图、板布局图等)之间的依赖关系,或者其他这样的关系。协作管理组件210还可以识别自动化对象和/或由项目数据模型 602定义的控制代码例程或模块之间的层次关系。

基于这些获知的相互依赖关系,协作管理组件210可以识别系统项目 302中设计修改1304所针对的部分,并且进一步识别系统项目302中的功能或响应可能受到设计修改影响的其他部分。在不同的开发者或开发者组已经被指派为致力于系统项目302的相应不同部分或方面的实施方式中,协作管理组件210还可以识别已经指派到系统项目302的受影响部分的开发者或组,并且用户接口组件204可以将更新通知1302发送至与这些受影响部分相关联的开发接口1004(例如,在所示示例中为与客户端设备504b和504c相关联的接口)。这些更新通知1302可以包括对提议的修改1304的描述,对项目302的接收者的部分的可能影响的指示或者其他这样的信息。在一些实施方式中,协作管理组件210可以被配置成:仅在所有通知接收者基于他们自己对提议的修改不会不利地影响系统项目 302中的他们的部分的确定而提交对设计修改的批准的情况下,才将提议的设计修改1304集成到系统项目302中。

在一些实施方式中,协作管理组件210也可以被配置成跟踪和记录每个开发者对系统项目302的设计贡献。该信息可以用于审计目的、跟踪开发者的生产率、识别特定设计贡献的发源者或者用于其他目的。

协作管理组件210也可以被配置成共享由多个开发者经由用户接口组件204提交的开发笔记。这些开发笔记可以作为设计输入512的一部分提交并附加到系统项目302的指定部分(例如控制代码段、设备配置参数设置、工程制图元素等),以使得当其他开发者查看系统项目302中另一开发者已经附上开发笔记的部分时,可以有选择地查看该开发笔记。在一些实施方式中,已经附有开发笔记的系统项目302中的元素可以被表示为位于相应项目元素上或附近的可选择图标,并且图标的选择可以呈现笔记以供查看。

在一些实施方式中,由工业IDE系统支持的协作编辑环境还可以包括在设计期间实时访问项目开发专家。图14是示出将IDE服务用作基于工厂的项目开发者与远程技术支持人员之间的代理的图。在该实施方式中,工业IDE服务802包括相关联的(由代理组件214实现的)代理服务1308,代理服务1308管理开发者的客户端设备504与远程技术支持之间的连接和数据交换。在基于云的实现中,每个最终用户的系统项目302(例如,当前正在运行的自动化系统的已完成系统项目302或者待调试的自动化系统的正在开发的未决系统项目302)都被安全地保持在云平台上。代理服务1308可以允许(与客户端设备1310相关联的)经授权的技术支持人员使用IDE服务802访问给定客户的系统项目数据中的一些或全部,以代理客户的数据。技术支持实体可以是例如IDE服务802的管理员、制造控制程序被开发的机器的OEM、系统集成商、装备供应商或者其他这样的实体。在一些实施方式中,最终用户可以选择性地允许技术支持人员访问其系统项目数据的选定子集,同时禁止技术支持人员访问其系统项目302 的其他部分,从而保护敏感或专有项目信息。

在示例场景中,项目生成组件206可以基于对设计输入512和整个系统项目302的分析来推断设计者的当前设计目标(例如,对特定的自动化功能进行编程,结合执行自动化功能来为特定类型的工业设备设置配置参数值等)。基于对用户设计意图的该推断,协作管理组件210可以经由代理组件214启动至能够协助设计目标的真人或自动化专家的通信通道。

在一些实施方式中,IDE系统202可以响应于推断出开发者在开发系统项目302中与设计目标有关的部分时遇到困难而自动地建立与专家的连接。替选地,IDE开发接口可以包括使得最终用户能够提交用于发起与专家协作的协助请求1402的控件。协助请求1402可以指定系统项目302 中需要协助的特定方面(例如,控制代码例程、可视化画面、设备选择或兼容性、指定工业设备的配置等)。在一些实施方式中,代理组件214可以在将协助请求发送至远程支持代表之前对该协助请求1402执行附加处理。代理组件214可以部分地基于先前捕获的最终用户的正在开发的自动化系统或客户的较大工厂设施的知识来执行该附加处理。例如,代理组件 214可以收集附加的特定于客户的上下文,所述特定于客户的上下文可以帮助解决正在请求协助的设计问题。这样的上下文可以包括关于构成要针对其开发系统项目302的自动化系统的设备和/或机器的附加信息(例如,这样的设备的标识以及它们在整个工业系统中的角色及其彼此的功能关系)、相对于正在设计的自动化系统(其操作可能对新的自动化系统的操作产生影响)的其他上游或下游过程等。响应于接收到协助请求1402,代理组件214可以选择被确定为有资格协助该请求的可用技术支持人员——例如,基于存储在相应技术支持人员的能力档案中的信息来选择可用技术支持人员,这些信息指示每个人的培训水平、专业知识领域、此人具有经验的装备等——并打开与所选技术支持人员的远程通信通道。

一旦建立了该通信通道,则技术支持人员就可以(经由客户支持客户端设备1410)访问、查看和修改从系统项目302获得的客户项目数据1404 的选定子集。在一些实施方式中,用户接口组件204可以向专家呈现设计者代码的可视化、可视化应用开发画面、设备配置参数或系统项目302的其他方面。技术支持人员可以以对最终用户的系统项目302的方面进行直接修改(例如,控制代码重写、设备配置的设置等)的形式提交设计协助 1306或者提交设计反馈1312,该设计反馈1312被提交至最终用户,推荐进行某些修改或以其他方式提供设计指导。在一些实施方式中,基于云的 IDE系统202还可以充当可信代理,技术支持人员可以通过该可信代理远程访问最终用户的工厂设施处的装备,例如,用于远程配置用户的设备、查看或修改工业控制器上的控制程序或HMI终端上的可视化画面等目的。

IDE系统202的一些实施方式可以支持经由虚拟化开发环境来提交设计输入512,该虚拟化开发环境通过用户接口组件204服务于可佩戴装置。该虚拟开发环境使得自动化系统设计者能够经由与工厂设施(例如,将安装自动化系统的安装位置)的虚拟现实演示的交互来提交设计输入512。使用这种方法,IDE系统202可以基于开发者与虚拟现实演示的手动交互生成系统项目302的部分,所述系统项目302的部分包括但不限于设备选择、工业控制编程、设备配置、可视化、工程制图等。这些交互可以包括例如模拟在虚拟环境中放置和移动机器或其他工业资产的手动手势、使用手动手势来定义运动设备或机器人的轨迹或者其他这样的交互式输入。项目生成组件可以将开发者的交互和手势解释为正被设计的自动化系统的设计规范,并且将这些交互转换为满足设计规范的控制代码、可视化、设备配置以及其他可执行系统组件。

图15是示出根据一个或更多个实施方式的与基于用户与工厂的VR 演示的交互来创建用于自动化系统的系统项目302相关联的示例数据流的图。在该示例中,可佩戴AR/VR装置1510可以经由用户接口组件204 与工业IDE系统202接口连接,该用户接口组件204可以包括适合于IDE 系统202被实现的特定平台的有线或无线网络接口、近场通信接口或者其他这样的设备接口。在一些实施方式中,用户接口组件204可以被配置成在允许将VR演示传递至可佩戴装置1510之前对可佩戴装置1510访问 IDE系统202的授权进行验证。用户接口组件204可以使用密码验证、生物识别(例如,由可佩戴装置1510从用户收集并被提交给用户接口组件 204的视网膜扫描信息)、可佩戴装置1510的标识符与已知的授权设备的集合的相互对照或其他这样的验证技术来对可佩戴装置1510或其所有者进行认证。

在该实施方式中,用户接口组件204具有相关联的虚拟呈现组件216,该虚拟呈现组件216被配置成生成用于由用户接口组件204递送的至可佩戴装置1510的虚拟现实演示数据1504。演示数据1504在被可佩戴装置 1510接收和执行时在可佩戴装置的显示器上呈现工业区域的交互式三维 (3D)虚拟现实演示。为了促进生成工业区域(例如,正被设计的自动化系统要被安装或修改的工业设施的一部分)的虚拟演示,IDE系统202可以保持一个或更多个对由VR演示数据1504表示的区域的物理布局的视觉表示进行定义的工厂模型1502。例如,给定工业区域(例如,生产区域、工作单元、装配线等)的工厂模型1502可以定义位于该区域内的工业资产——包括机器、传送机、控制柜和/或工业设备——以及这些工业资产之间的物理关系的图形表示。对于每种工业资产,工厂模型1502可以定义资产的物理尺寸和颜色以及图形表示所支持的任何动画(例如,变色动画、反映资产移动的位置动画等)。工厂模型1502还定义了工业资产之间的物理关系,包括工厂现场的资产、资产之间延伸的导管或管道的相对位置和定向以及其他物理定义。

在一些实施方式中,工厂模型1502可以是现有工厂的数字化映射,或者可以基于这样的数字化映射的一部分来生成。另外,在一些实施方式中,可以基于从视频或图像数据提取的安装区域的环境特性来生成工厂模型1502的至少一部分。在这样的实施方式中,与基于对视频或图像数据的分析而发现的工业资产、物理障碍、距离、位置或其他环境特征有关的信息可以被馈送至工厂模型1502,使得这些环境特征在模型1502中表示。

虚拟呈现组件216支持的呈现引擎被配置成基于工厂模型1502中指定的工业资产呈现定义来生成工业区域的交互式VR演示。用户接口组件 204将所得的VR演示作为VR演示数据1504传递至可佩戴装置1510。

图16a是描绘可以由虚拟呈现组件210生成的工业区域的第一人称视角的示例虚拟现实演示1602的部分再现。图16b是描绘也可由虚拟呈现组件210生成的工业区域的外部视角的另一示例虚拟现实演示1604的再现。应当理解,由于经由二维图呈现虚拟现实演示的固有限制,因此图 16a至图16b示出的示例VR演示无法完全描绘在合适的可佩戴装置上呈现的VR演示。通常,由可佩戴装置1510呈现的VR演示提供涵盖用户的整个视野的环绕的虚拟渲染,并随着用户位置和方向改变而转变其视线或视角。在此,局部再现和相关联的描述试图在给定二维图的限制的情况下尽可能地传达虚拟现实呈现和交互。

在一些实施方式中,虚拟呈现组件216可以支持从区域之外的人的角度来看的工业区域的外部VR视图(如示例演示1604中一样)以及该区域的第一人称视图,该第一人称视图通过渲染区域的完整视图来模拟用户在工业区域内的存在(如示例演示1602中一样)。用户可以在这两种视图之间选择性地切换并通过与两种视图中的任何一种进行手动交互来提供设计输入。虚拟呈现组件216可以将最新的VR演示数据1504流式传输至可佩戴装置1510以确保视图(包括用户的视角)保持最新。虚拟呈现组件216根据由工厂模型1502定义的呈现指令来呈现工业资产VR演示。可以在VR演示内被呈现为虚拟对象的工业资产可以包括但不限于罐 1606、传送机1608、机器1610、工业机器人、安全门、发电机、工业控制器或设备或者其他这样的资产。

由虚拟呈现组件216生成的VR演示的观看角度是基于IDE系统202 从可佩戴装置1510接收的位置和定向数据1508的。在这点上,可佩戴装置1510的位置和定向组件可以被配置成确定装置1510的当前地理位置、定向和视线。在一些实施方式中,装置1510可以利用全球定位系统(GPS) 技术来确定用户的绝对位置,或者装置1510可以被配置成与定位传感器交换数据以确定用户的相对位置。可佩戴装置1510还可以包括定向感测组件,该定向感测组件根据装置的视线方向、装置1510相对于水平面的角度等来测量可佩戴装置的当前定向。用于确定佩戴者当前位置和方向的可佩戴装置1510的实施方式可以支持其他类型的传感器或算法,包括但不限于惯性测量单位(IMU)或视觉惯性里程表(VIO)。可佩戴装置1510可以将位置和定向信息作为位置和定向数据1508报告给IDE系统202。

虚拟呈现组件216使用位置和定向数据1508来控制VR演示的视点。例如,用户可以经由用户的可佩戴装置1510观看工业区域的VR演示(例如,图16a中描绘的第一人称演示或图16b中描绘的外部演示)。虚拟呈现组件216接收由用户的可佩戴装置1510生成的位置和定向数据1508,并根据用户的当前的位置和方向来呈现演示。特别地,VR演示的观看视角的方向和角度是用户的位置和方向的函数。

与第一人称视角(例如,图16a的演示1602)相比,由IDE系统202 生成的外部视图(例如,图16b的演示1604)将工业区域呈现为该区域的虚拟缩小模型,并且使得用户能够四处移动并与该区域的缩放版本进行交互。当用户在虚拟缩放的工业区域中四处移动、朝向或远离虚拟缩放的工业区域时,可佩戴装置1510将更新的位置和定向数据1008流式传输至IDE系统202,IDE系统202基本上连续地更新VR演示数据1504以模拟在生产区域的缩放模型中四处移动的效果。

返回至图15,IDE系统202可以基于由可佩戴装置1510生成的表示用户与由虚拟呈现组件216生成的第一人称VR演示或外部VR演示中的一者或两者的手动交互的VR交互数据1506来生成系统项目302的至少一部分,所述系统项目302的至少一部分包括程序代码、可视化、设备配置、工程制图、物料清单等。例如,一旦将生产区域的VR演示呈现在可佩戴装置1510上,则装置1510的佩戴者(例如,系统的设计者)可以与所呈现的VR环境进行手动交互,以选择并在虚拟环境中放置新的工业设备、机器、装备或其他工业资产(例如,泵、阀、导管、安全防护装置等)。为此,用户接口组件204的一些实施方式可以将可以选择各种类型的工业资产(例如,控制器、马达驱动器、桶、泵、阀、工业机器人、传送机、加工站、模壳炉等)的菜单呈现为VR演示中的叠加。装置1510的佩戴者可以在VR演示内使用手势来与这些菜单手动地交互,以(例如,通过执行手动保持和放置动作)选择期望资产的数字表示并将资产放置在VR 环境内的选定位置处。可以使用有关虚拟资产的适当手势(例如,通过执行模拟在环境中手动地操纵虚拟资产的手势)来定向表示工业资产的虚拟图标、将表示工业资产的虚拟图标从一个位置移动至另一位置或者将其从虚拟环境移除。VR环境中的用户的交互由可佩戴装置1510监视并作为 VR交互数据1506发送至IDE系统202。

在IDE环境中,以这种方式添加或移动的工业资产可以由与那些资产相对应的自动化对象222(例如,罐自动化对象、阀自动化对象等)表示。当用户将新的工业资产添加至VR环境时,项目生成组件206可以识别该新添加的资产并将与该资产相对应的适当的自动化对象222添加至系统项目302。如上述其他示例一样,可以从由IDE系统202保持的标准自动化对象库502中选择自动化对象222。当将这些资产添加在虚拟设计环境中并将其链接在一起时,项目生成组件206还可以针对这些资产生成顺序控制代码,其中,该顺序代码可以部分地基于与资产相对应的相应预定义代码模块508或者与自动化对象222本身相关联的控制代码。

在其他示例交互中,用户可以以手势来执行新机器人或其他类型的运动设备要执行的运动。例如,用户可以执行手动地描绘要由机器人执行的轨迹或运动以便于将零件从第一位置拾取并移动至第二位置的手势,或者可以执行指示运动设备在工作周期期间要通过的运动路径的手势。在另一示例中,用户可以执行指示要将水从一个指定罐泵送至另一罐的手动手势。响应于设计者的这些动作(由可佩戴装置1510报告为VR交互数据 1506),项目生成组件206将通过生成支持这些设计目标和规范的合适代码、设备配置、图以及可视化来更新系统项目302。

与VR环境的设计交互可以在第一人称视角视图(例如,图16a)或外部视图(例如,图16b)内执行。通常,第一人称视图可以使得设计者能够例如通过添加传送机、机器、泵、阀等更容易地执行针对特定生产线或机器的设计交互。可以使用外部视图更容易地执行针对大规模设计方面的交互式输入。可以使用外部视图适当执行的设计交互可以包括,例如,将工业机器人或其他工业资产的重复实例添加至相应的多个生产区域(例如,如图16b所示,生产区域1614a至1614d中的重复机器1612a至1612d),在生产区域之间移动工业资产或者其他这样的设计动作。为了在生产区域之间添加或移动资产,装置1510的佩戴者可以针对生产区域的外部缩小视图执行手动手势以模拟在工厂设施的较小虚拟模型内抓取、移动和放置资产。

返回图14,在支持以上结合图15至图16b描述的虚拟开发环境的IDE 系统202的实施方式中,用户接口组件204经由代理组件214可以(经由技术专家佩戴的可佩戴AR/VR装置)与技术支持助手共享开发者的虚拟开发环境。以这种方式共享虚拟化设计环境模拟了虚拟环境中技术专家和开发者的同时存在,使得每个参与者将对方视为人的图标(例如,图标 1616)。这使得远程技术专家能够在虚拟化环境中示范用于设计自动化系统的部分的推荐方法(例如,工业控制设备的放置或配置、机器的放置等)。

类似地,工业IDE系统202还可以为基于用户的自动化项目开发者社区提供平台,自动化项目开发者可以进行交互以共享对开发问题的解决方案。在上述虚拟设计环境的情况下,设计者可以选择与其他用户分享他们对虚拟设计环境的看法以改善协作设计体验。例如,一个位置处的致力于系统项目302的开发者可以与另一位置处的另一用户共享他或她的安装环境的虚拟视图,从而使得其他用户能够查看提议的设计并提供补充设计推荐。在一些实施方式中,IDE系统202允许不仅可以与致力于同一项目 302的其他开发者共享开发者的虚拟视图,而且还可以与和其他工业企业相关联的可能对所设计的系统类型有经验的用户共享开发者的虚拟视图。 IDE系统可以实现适当的安全特征,以确保第一企业的用户不会与其他企业的用户共享敏感的专有系统信息,同时仍然允许受管理程度的信息共享以促进众包开发协助。

图17至图18示出了根据本申请的一个或更多个实施方式的各种方法学。尽管出于简化说明的目的,本文中示出的一个或更多个方法被示出和描述为一系列动作,但是应当理解和意识到,本发明不限于动作的顺序,因为根据本发明,一些动作可以以与本文示出和描述的顺序不同的顺序发生和/或与其他动作同时发生。例如,本领域技术人员将理解并意识到,方法学可以替选地表示为诸如状态图中的一系列相互关联的状态或事件。此外,并非所有示出的动作都是实现根据本发明的方法学所必须的。此外,当不同的实体制定方法的不同部分时,交互图可以表示根据本公开内容的方法学或方法。此外,所公开的示例方法中的两个或更多个可以彼此结合地实施以实现本文描述的一个或更多个特征或优点。

图17示出了用于管理来自工业自动化系统项目的多个开发者的设计贡献的示例方法1700。最初,在1702处,在与以协作方式开发自动化系统项目的不同系统开发者相关联的相应客户端设备上呈现工业IDE接口。在1704处,经由与IDE开发接口的交互接收针对自动化系统项目的工业设计数据。工业设计数据可以以以下中的一个或更多个的形式提交:工业控制器程序(例如,梯形逻辑、顺序功能图、脚本控制代码例如工业DSL 等)、HMI画面开发输入、工业设备或装备选择、工程制图输入等。在一些实施方式中,工业设计数据还可以包括完整的工程图(例如,P&ID图、电气图、机械图等),可以由工业IDE对所述完整的工程图进行解析和分析以识别工业自动化系统中正在设计的组件(例如,工业设备、机器、装备、导管、管道等)以及这些组件之间的功能及物理关系。

在1706处,做出关于是否接收到针对系统项目的相同方面的多个版本的设计数据的确定。这些多个版本可以是例如:针对相同工业资产的控制的工业控制代码的一部分的不同版本;用于自动化系统的可视化应用的不同版本、针对相同工业设备的不同配置参数设置集或者其他这样的设计数据集。

如果接收到针对相同方面的多个版本的设计数据(步骤1706处为“是”),则方法进行至步骤1708,在步骤1708处对在步骤1704处接收到的多个版本的设计数据执行比较分析,其中比较分析确定用于多个版本的相对适用性标准。例如,在多个版本的控制程序的情况下,该比较分析可以对以下进行估计:将由于执行每个版本的控制程序而得出的估计机器循环频率、将由每个版本的控制程序实现的机械资产的预期运动范围、将由相应版本的控制程序实现的单独机械运动的数量或者其他这样的性能估计。其他类型的相对性能标准也在一个或更多个实施方式的范围内。

在1710处,基于在步骤1708处获得的相对适用性标椎来选择设计数据的版本以包括在系统项目中。例如,在上述多个控制程序版本的情况下, IDE系统可以选择预期以使受控资产承受最少量的磨损的方式执行其控制功能同时仍然满足生产目标的控制程序的版本。其他选择标准也在一个或更多个实施方式的范围内。在1712处,将所选版本的设计数据集成到系统项目中。

图18示出了用于向开发者通知对协作开发环境内的自动化系统项目的修改的示例性方法1800。最初,在1802处,在与协作开发自动化系统项目的相应不同开发者相关联的相应客户端设备上呈现工业IDE开发接口。在1804处,经由与IDE开发接口的交互来接收针对自动化系统项目的工业设计数据。

在1806处,确定是否经由IDE开发接口之一从第一系统开发者接收到对系统项目的方面的修改。如果接收到这样的修改(步骤1806处为“是”),则该方法进行至步骤1808,在步骤1808处确定该修改是否被确定为会影响系统项目的其他方面。在一些实施方式中,该确定可以基于回归分析来进行,其中对整个系统项目执行回归分析,以确定系统项目的哪些其他方面可能受到所提议的修改的影响。

如果确定修改影响系统项目的其他方面(步骤1808处为“是”),则方法进行至步骤1810,在步骤1810处经由被指派为致力于系统项目的其他方面的一个或更多个第二系统开发者各自的开发接口向他们传递修改的通知。在1812处,确定是否从一个或更多个系统开发者接收到对修改的批准。在这点上,IDE系统可能需要协作协议,即一个开发者对系统项目的一部分进行的修改不会不利地影响其他开发者正在设计的系统项目的其他部分。如果从一个或更多个第二开发者中的所有开发者接收到了对修改的批准(步骤1812处为“是”),则将该修改集成到系统项目中。

本文描述的实施方式、系统和部件以及可以实现本说明书中阐述的各个方面的控制系统和自动化环境可以包括计算机或网络组件,例如能够跨网络进行交互的服务器、客户端、可编程逻辑控制器(PLC)、自动化控制器、通信模块、移动计算机、用于移动车辆的车载计算机、无线部件、控制部件等。计算机和服务器包括一个或更多个处理器(采用电信号执行逻辑运算的电子集成电路),所述一个或更多个处理器被配置成执行存储在诸如随机存取存储器(RAM)、只读存储器(ROM)、硬盘驱动器以及可移动存储器设备的介质中的指令,所述可移动存储器设备可以包括存储棒、存储卡、闪存驱动器、外部硬盘驱动器等。

类似地,本文使用的术语PLC或自动控制器可以包括可以跨多个部件、系统和/或网络共享的功能。作为示例,一个或更多个PLC或自动化控制器可以与跨网络的各种网络设备通信并协作。这可以包括经由网络进行通信的基本上任何类型的控制器、通信模块、计算机、输入/输出(I/O) 设备、传感器、致动器和人机接口(HMI),所述网络包括控制网络、自动化网络和/或公共网络。PLC或自动控制器还可以与各种其他设备通信并对其进行控制,所述各种其他设备通信例如是包括模拟模块、数字模块、编程/智能I/O模块的标准或安全额定I/O模块、其他可编程控制器、通信模块、传感器、致动器、输出设备等。

网络可以包括诸如因特网的公共网络例、内联网和诸如控制和信息协议(CIP)网络的自动化网络,所述控制和信息协议(CIP)网络包括 DeviceNet、ControlNet、安全网络和以太网/IP。其他网络包括以太网、 DH/DH+、远程I/O、现场总线、Modbus、Profibus、CAN、无线网络、串行协议等。此外,网络设备可以包括各种可能性(硬件部件和/或软件组件)。这些包括诸如具有虚拟局域网(VLAN)能力的交换机、LAN、WAN、代理、网关、路由器、防火墙、虚拟专用网(VPN)设备、服务器、客户端、计算机、配置工具、监视工具和/或其他设备的部件。

为了提供所公开的主题的各个方面的上下文,图19和图20以及以下讨论旨在提供对其中可以实现所公开的主题的各个方面的合适环境的简要、概括描述。尽管以上已经在可以在一个或更多个计算机上运行的计算机可执行指令的总体背景下描述了各个实施方式,但是本领域的技术人员将认识到,各个实施方式也可以结合其他程序模块来实现和/或被实现为硬件与软件的结合。

通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构等。此外,本领域的技术人员将理解,本发明的方法可以用其他计算机系统配置来实践,所述其他计算机系统配置包括单处理器或多处理器计算机系统、小型计算机、大型计算机、物联网(IoT) 设备、分布式计算系统、以及个人计算机、手持式计算设备、基于微处理器的或可编程消费电子产品等,其中每一个都可以可操作地耦接至一个或更多个相关联的设备。

本文所示出的实施方式也可以在分布式计算环境中实践,在分布式计算环境中某些任务由通过通信网络进行链接的远程处理设备执行。在分布式计算环境中,程序模块可以位于本地存储器存储设备和远程存储器存储设备两者中。

计算设备通常包括各种介质,其可以包括计算机可读存储介质、机器可读存储介质和/或通信介质,这两个术语在本文中如下彼此不同地使用。计算机可读存储介质或机器可读存储介质可以是可以由计算机访问的任何可用存储介质并且包括易失性介质和非易失性介质、可移动介质和不可移动介质两者。作为示例而非限制,计算机可读存储介质或机器可读存储介质可以结合用于存储诸如计算机可读或机器可读指令、程序模块、结构化数据或非结构化数据等信息的任何方法或技术来实现。

计算机可读存储介质可以包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存或其他存储器技术、光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、蓝光盘(BD)或其他光盘存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备、固态驱动器或其他固态存储设备、或者可以用于存储期望信息的其他有形和/或非暂态介质。在这点上,在本文中应将如应用于存储装置、存储器或计算机可读介质的术语“有形”或“非暂态”理解为仅排除传播暂态信号本身作为修饰语并且不放弃对不是仅传播暂态信号本身的所有标准存储装置、存储器或计算机可读介质的权利。

计算机可读存储介质可以由一个或更多个本地计算设备或远程计算设备例如经由访问请求、查询或其他数据检索协议来访问,以针对由介质存储的信息进行各种操作。

通信介质通常以数据信号例如经调制数据信号例如载波或其他传输机制来体现计算机可读指令、数据结构、程序模块或其他结构化或非结构化数据,并且包括任何信息传递或传输介质。术语“经调制数据信号”或信号指以在一个或更多个信号中对信息进行编码的方式设置或改变其特征中的一个或更多个特征的信号。作为示例而非限制,通信介质包括有线介质例如有线网络或直接连线连接和无线介质例如声学、RF、红外和其他无线介质。

再次参照图19,用于实现本文描述的各个方面的各个实施方式的示例环境1900包括计算机1902,计算机1902包括处理单元1904、系统存储器1906和系统总线1908。系统总线1908将包括但不限于系统存储器 1906的系统部件耦接至处理单元1904。处理单元1904可以是各种可商购的处理器中的任何一种。也可以采用双微处理器和其他多处理器架构作为处理单元1904。

系统总线1908可以是若干类型的总线结构中的任一种,所述总线结构还可以使用各种可商购的总线架构中的任一种来互连至存储器总线(带有存储器控制器或不带有存储器控制器)、外围总线和局部总线。系统存储器1906包括ROM 1910和RAM 1912。基本输入/输出系统(BIOS)可以被存储在诸如ROM、可擦除可编程只读存储器(EPROM)、EEPROM 的非易失性存储器中,其中该BIOS包含有助于例如在启动期间在计算机 1902内的元素之间传输信息的基本例程。RAM 1912还可以包括诸如用于缓存数据的静态RAM的高速RAM。

计算机1902还包括内部硬盘驱动器(HDD)1914(例如,EIDE、SATA)、一个或更多个外部存储设备1916(例如,磁软盘驱动器(FDD)1916、存储棒或闪存驱动器读取器、存储卡读取器等)以及光学驱动器1920(例如,其可以从CD-ROM盘、DVD、BD等读取或向其写入)。虽然内部 HDD 1914被示为位于计算机1902内,但是内部HDD 1914还可以被配置成在合适的机箱(未示出)中外部使用。另外,虽然在环境1900中未示出,但是除了HDD 1914以外还可以使用固态驱动器(SSD),或者用固态驱动器(SSD)代替HDD 1914。HDD 1914、(一个或多个)外部存储设备1916和光学驱动器1920可以分别通过HDD接口1924、外部存储接口1926和光学驱动器接口1928连接至系统总线1908。用于外部驱动器实现的接口1924可以包括通用串行总线(USB)和电气与电子工程师协会(IEEE)1394接口技术中的至少一个或两者。其他外部驱动器连接技术在本文描述的实施方式的考虑内。

驱动器及其相关联的计算机可读存储介质提供数据、数据结构、计算机可执行指令等的非易失性存储。对于计算机1902,驱动器和存储介质以合适的数字格式适应任何数据的存储。任何数据的存储。尽管以上对计算机可读存储介质的描述涉及相应类型的存储设备,但本领域的技术人员应当理解,也可以在示例操作环境中使用计算机可读的其他类型的存储介质,无论所述存储介质是当前存在的还是将来开发的,并且此外,任何这样的存储介质可以包含用于执行本文所描述的方法的计算机可执行指令。

多个程序模块可以被存储在驱动器和RAM 1912中,所述多个程序模块包括操作系统1930、一个或更多个应用程序1932、其他程序模块1934 和程序数据1936。操作系统、应用、模块和/或数据中的全部或部分也可以被缓存在RAM 1912中。本文描述的系统和方法可以利用各种可商购的操作系统或操作系统的组合来实现。

计算机1902可以可选地包括仿真技术。例如,管理程序(未示出) 或其他中介可以仿真用于操作系统1930的硬件环境,并且仿真的硬件可以可选地不同于图19中所示的硬件。在这样的实施方式中,操作系统1930 可以包括在计算机1902处托管的多个虚拟机(VM)中的一个VM。此外,操作系统1930可以为应用程序1932提供运行时环境,例如Java运行时环境或.NET框架。运行时环境是使得应用程序1932能够在包括该运行时环境的任何操作系统上运行的一致执行环境。类似地,操作系统1930可以支持容器,并且应用程序1932可以是容器的形式,所述容器是包括例如代码、运行时间、系统工具、系统库和应用的设置的轻量级、独立的、可执行的软件包。

此外,计算机1902可以用安全模块例如可信处理模块(TPM)来启用。例如,使用TPM,指导部件对时间上的下一指导部件进行哈希处理,并且在加载下一指导部件之前等待结果与安全值的匹配。该过程可以发生在计算机1902的代码执行栈中的任何层,例如,应用在应用执行级或操作系统(OS)内核级,从而使得能够在任何代码的执行级实现安全性。

用户可以通过一个或更多个有线/无线输入设备例如键盘1938、触摸屏1940和诸如鼠标1942的定点设备将命令和信息输入至计算机1902。其他输入设备(未示出)可以包括麦克风、红外(IR)遥控器、射频(RF) 遥控器、或其他遥控器、操纵杆、虚拟现实控制器和/或虚拟现实头戴式耳机、游戏垫、触摸笔、图像输入设备(例如,(一个或更多个)摄像机)、姿势传感器输入设备、视觉移动传感器输入设备、情绪或面部检测设备、生物测定输入设备(例如,指纹或虹膜扫描仪)等。这些输入设备和其他输入设备通常通过可以耦接至系统总线1908的输入设备接口1944连接至处理单元1904,但也可以通过其他接口例如并行端口、IEEE 1394串行端口、游戏端口、USB端口、IR接口、

监视器1944或其他类型的显示设备也可以经由诸如视频适配器1948 的接口连接至系统总线1908。除了监视器1944以外,计算机通常包括其他外围输出设备(未示出),例如扬声器、打印机等。

计算机1902可以使用经由至诸如(一个或多个)远程计算机1948的一个或更多个远程计算机的有线和/或无线通信的逻辑连接在联网环境中进行操作。(一个或多个)远程计算机1948可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐装置、对等设备或其他通用网络节点,并且通常包括相对于计算机1902所描述的许多或所有元件,尽管为了简明起见仅示出了存储器/存储设备1950。所描绘的逻辑连接包括至局域网(LAN)1952和/或更大的网络例如广域网(WAN) 1954的有线/无线连接。这样的LAN和WAN联网环境在办公室和公司中是常见的,并且促进了诸如内联网的企业范围的计算机网络,所有这些都可以连接至全球通信网络例如因特网。

当在LAN联网环境中使用时,计算机1902可以通过有线和/或无线通信网络接口或适配器1956连接至局域网1952。适配器1956可以促进至LAN 1952的有线或无线通信,LAN1952还可以包括布置在其上的无线接入点(AP),以用于在无线模式下与适配器1956进行通信。

当在WAN联网环境中使用时,计算机1902可以包括调制解调器1958,或者可以经由用于通过WAN 1954建立通信的其他手段例如通过因特网来连接至WAN 1954上的通信服务器。可以是内部的或外部的并且可以是有线设备或无线设备的调制解调器1958可以经由输入设备接口1942 连接至系统总线1908。在联网环境中,相对于计算机1902或其部分描述的程序模块可以被存储在远程存储器/存储设备1950中。将理解,所示的网络连接是示例并且可以使用在计算机之间建立通信链路的其他手段。

当在LAN或WAN联网环境中使用时,除了如上所述的外部存储设备1916之外,计算机1902还可以访问云存储系统或其他基于网络的存储系统,或者计算机1902可以代替如上所述的外部存储设备1916访问云存储系统或其他基于网络的存储系统。通常,可以例如分别通过适配器1956 或调制解调器1958通过LAN 1952或WAN 1954来建立计算机1902和云存储系统之间的连接。在将计算机1902连接至相关联的云存储系统时,外部存储接口1926可以在适配器1956和/或调制解调器1958的帮助下,如管理其他类型的外部存储一样管理由云存储系统提供的存储。例如,外部存储接口1926可以被配置成提供对云存储源的访问,就好像这些源被物理地连接至计算机1902一样。

计算机1902能够进行操作以与可操作地布置在无线通信中的任何无线设备或实体进行通信,所述无线设备或实体例如打印机、扫描仪、台式计算机和/或便携式计算机、便携式数据助理、通信卫星、与以无线方式可检测的标签相关联的任何装备或位置(例如,亭、报摊、商店货架等) 以及电话。这可以包括无线保真(Wi-Fi)和

图20是所公开的主题可以与之交互的样本计算环境2000的示意性框图。样本计算环境2000包括一个或更多个客户端2002。客户端2002可以是硬件和/或软件(例如,线程、进程、计算设备)。样本计算环境2000 还包括一个或更多个服务器2004。服务器2004也可以是硬件和/或软件(例如,线程、进程、计算设备)。服务器2004可以容纳线程以通过采用例如本文所述的一个或更多个实施方式来执行变换。客户端2002与服务器 2004之间的一种可能的通信可以是适于在两个或更多个计算机进程之间传输的数据包的形式。样本计算环境2000包括可以用于促进客户端2002 与服务器2004之间的通信的通信框架2006。客户端2002可操作地连接至可用于存储客户端2002的本地信息的一个或更多个客户端数据存储设备2008。类似地,服务器2004可操作地连接至可用于存储服务器2004 的本地信息的一个或更多个服务器数据存储器2010。

以上所描述的内容包括本发明的示例。当然,不可能为了描述所公开的主题而描述部件或方法学的每个可设想到的组合,但是本领域普通技术人员可以认识到,本发明的许多另外的组合和置换是可能的。因此,所公开的主题旨在涵盖落入所附权利要求书的精神和范围内的所有这样的改变、修改和变型。

尤其是关于由上面描述的部件、设备、电路、系统等执行的各种功能,除非另外指出,否则用于描述这样的部件的术语(包括对“手段”的引用) 旨在对应于执行所描述的部件的指定功能的任何部件(例如,功能上等效的任何部件),即使在结构上不等效于所公开的结构,该部件执行本文示出的所公开主题的示例性方面中的功能。在这点上,还将认识到,所公开的主题包括系统以及具有用于执行所公开的主题的各种方法的动作和/或事件的计算机可执行指令的计算机可读介质。

此外,虽然可能仅针对若干实现方式中的一个实现方式公开了所公开的主题的特定特征,但是这样的特征可以与其他实现方式的一个或更多个其他特征组合,这对于任何给定应用或特定应用来说可能是期望的且有利的。此外,就在说明书或权利要求书中使用术语“包括(includes)”和“包括(including)”及其变型来说,这些术语旨在以类似于术语“构成”的方式包括在内。

在本申请中,词语“示例性”用于表示用作示例、实例或说明。本文描述为“示例性”的任何方面或设计不一定被解释为比其他方面或设计优选或有利。更确切地,词语“示例性”的使用旨在以具体方式表现概念。

可以使用标准编程和/或工程技术将本文描述的各个方面或特征实现为方法、装置或制造物品。如本文所使用的术语“制造物品”旨在涵盖可从任何计算机可读设备、载体或介质访问的计算机程序。例如,计算机可读介质可以包括但不限于磁存储设备(例如,硬盘、软盘、磁条……)、光盘[例如,压缩盘(CD)、数字多功能盘(DVD)……)、智能卡和闪存设备(例如,卡、棒、钥匙驱动器……)。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号