首页> 中国专利> 具有开放API的可扩展IDE平台

具有开放API的可扩展IDE平台

摘要

提供了一种具有开放API的可扩展IDE平台。工业集成开发环境(IDE)支持开放或可扩展的应用编程接口(API),其使得终端用户(例如,工厂资产所有者、原始装备制造商(OEM)、系统集成商等)能够构建IDE开发平台以创建定制视图或对定制功能进行编码。例如,这可以包括限定由工业IDE支持的控制编程语法、定制由IDE的界面提供的开发环境视图、修改或创建项目编辑功能、限定被设计成指导遵守内部编程标准的定制编程护栏或其他这样的IDE定制。

著录项

说明书

技术领域

本发明涉及一种用于开发工业应用的系统、方法以及非暂态计算机可读介质。

背景技术

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

发明内容

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

在一个或更多个实施方式中,提供了一种用于开发工业应用的系统,包括:用户接口部件,其被配置成渲染集成开发环境(IDE)界面,并经由与IDE界面的交互来接收限定工业自动化控制项目的各方面的工业设计输入,其中,IDE界面的功能由IDE编辑器控制;项目生成部件,其被配置成基于工业设计输入生成系统项目数据;以及编辑器限定部件,其被配置成经由与用户接口部件的交互来接收指定IDE界面中的IDE界面的定制的界面限定数据,并且重新配置IDE编辑器以在IDE界面上实现该定制。

此外,一个或更多个实施方式提供了一种用于开发工业应用的方法,该方法包括:通过包括处理器的系统在客户端设备上渲染集成开发环境(IDE)界面;通过系统经由与IDE界面的交互来接收限定工业控制和监测项目的各方面的工业设计输入,其中,IDE界面的功能由IDE编辑器控制;通过系统基于工业设计输入生成系统项目数据;通过系统经由与用户接口部件的交互来接收指定IDE界面中的IDE界面的定制的界面限定数据;以及通过系统基于界面限定数据在IDE界面上实现该定制。

此外,根据一个或更多个实施方式,提供了一种非暂态计算机可读介质,其上存储有指令,所述指令响应于执行使系统执行操作,所述操作包括:在客户端设备上渲染集成开发环境(IDE)界面;经由与IDE界面的交互来接收限定工业自动化项目的控制设计方面的工业设计输入,其中,IDE界面的工业自动化项目编辑功能由IDE编辑器控制;基于工业设计输入生成系统项目数据;经由与用户接口部件的交互来接收指定IDE界面中的IDE界面的定制的界面限定数据;以及基于界面限定数据在IDE界面上实现该定制。

为了实现上述及有关目的,在本文中结合以下描述和附图对某些说明性方面进行了描述。这些方面表示可以实践的各种方式,本文旨在涵盖所有这些方式。根据下面结合附图考虑时的具体实施方式,其他优点和新型特征可以变得明显。

附图说明

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

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

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

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

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

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

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

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

图9是示出工业IDE系统的开发界面的定制的图。

图10是示出示例编辑器限定部件的部件的框图。

图11是示出基于云的工业IDE服务的多租赁的图,其中各个客户端设备被允许分别定制其自己的开发环境界面。

图12是示出基于云的工业IDE服务的多租赁的图,其中各个客户端设备利用集中式工业IDE服务来开发其自己的工业系统项目。

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

图14是用于将工业IDE平台扩展到终端用户以允许创建定制的开发平台视图和功能以及使用这些定制的视图来开发工业控制代码、可视化和设备配置的示例方法的流程图。

图15是用于使用工业IDE平台来生成和部署工业控制软件的示例方法的流程图。

图16是用于在工业控制编程开发期间应用特定于工业垂直领域的编程护栏的示例方法的流程图。

图17是示例计算环境。

图18是示例联网环境。

具体实施方式

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

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

如本文中所使用的,术语“推断(infer)”和“推断(inference)”一般是指根据经由事件和/或数据捕获的一组观察结果来推理或推断系统、环境和/或用户的状态的过程。可以采用推断来识别特定的上下文或动作,或者可以例如生成状态的概率分布。推断可以是概率性的,也就是说,所关注的状态的概率分布的计算基于数据和事件的考虑。推断还可以指用于从一组事件和/或数据构成较高级别事件的技术。这样的推断导致从一组观察到的事件和/或存储的事件数据来构造新的事件或动作,而无论事件是否是时间接近地相关以及事件和数据是来自一个事件和数据源还是若干个事件和数据源。

另外,术语“或”旨在表示包含性的“或”而不是排他性的“或”。也就是说,除非另外指明或者在上下文中明确,否则短语“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通信。示例性网络可以包括因特网、内联网、以太网、设备网、控制网、数据高速公路和数据高速公路加(DH/DH+)、远程I/O、现场总线、Modbus、过程现场总线(Profibus)、无线网络、串行协议等。工业控制器118还可以存储可以由与永久数据值相关联的控制程序引用并且用于控制决策的永久数据值,包括但不限于:表示受控机器或过程的操作状态(例如,罐内物位、位置、警报等)的测量值或计算值或者在自动化系统的操作期间收集的捕获时间序列数据(例如,多个时间点的状态信息、诊断事件等)。类似地,一些智能设备——包括但不限于马达驱动器、仪器或状况监测模块——可以存储用于控制操作状态和/或使操作状态可视化的数据值。这样的设备还可以在日志上捕获时间序列数据或事件以供后续检索和查看。

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

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

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

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

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

这种分离式开发方法还可能需要进行大量的测试和调试工作,以确保单独配置的系统方面的正确集成。在这方面,由于未能正确地协调不同的编程工作,因此在不同系统方面之间的预期数据接口或协调动作可能需要大量的调试。

工业开发平台在提供给用户以促进编程和配置的开发界面方面也受到限制。这些界面通常提供要求用户使用供应商特定或工业特定的语言或一组固定的开发界面来开发控制代码、可视化或其他控制系统方面的固定的用户体验。

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

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

工业IDE的实施方式可以包括模块代码和可视化的库,模块代码和可视化特定于工业垂直领域和那些垂直领域内的常见工业应用。这些代码和可视化模块可以简化开发并缩短开发周期,同时还支持整个工业企业的一致性和可重用性。

工业IDE的一些实施方式还可以支持开放或可扩展的应用编程接口(API),应用编程接口使得终端用户(例如,工厂资产所有者、原始装备制造商(OEM)、系统集成商等)能够构建IDE开发平台以创建定制视图或对定制功能进行编码。例如,这可以包括限定要由工业IDE支持的控制编程语法,定制要由IDE界面提供的开发环境视图,修改或创建由IDE支持的项目编辑功能,限定被设计成指导遵守内部编程标准的定制编程护栏或其他这样的IDE定制。

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

IDE系统202可以包括用户接口部件204,该用户接口部件204包括IDE编辑器224、项目生成部件206、项目部署部件208、编辑器限定部件210、加密部件212、代理部件214、一个或更多个处理器218和存储器220。在各个实施方式中,用户接口部件204、项目生成部件206、项目部署部件208、编辑器限定部件210、加密部件212、代理部件214、一个或更多个处理器218和存储器220中的一个或更多个可以彼此电耦接和/或通信地耦接以执行IDE系统202的一个或更多个功能。在一些实施方式中,部件204、206、208、210、212和214可以包括存储在存储器220上并且由处理器218执行的软件指令。IDE系统202还可以与图2中未描绘的其他硬件和/或软件部件交互。例如,处理器218可以与一个或更多个外部用户接口设备诸如键盘、鼠标、显示监测器、触摸屏或者其他这样的接口设备进行交互。

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

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

编辑器限定部件210可以被配置成接收IDE界面限定数据,该数据定制工业IDE的视图、语法或编辑功能。对于被实施在云平台上作为基于云的工业设计服务的IDE系统202的实施方式,加密部件212可以被配置成对客户特定的项目或设计数据进行加密。在IDE系统202的基于云的实施方式中,代理部件214可以被配置成管理开发人员与远程技术支持之间的连接和项目信息的共享。

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

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

在云平台上实现的IDE系统202的实施方式还便于协作式项目开发,由此多个开发人员304将设计和编程输入贡献给公共自动化系统项目302。由IDE系统支持的协作工具可以管理来自多个贡献者的设计贡献,并对聚合系统项目302执行版本控制,以确保项目一致性。

基于来自一个或更多个开发人员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的程序化表示,并且可以合并到系统项目302中作为控制代码、2D或3D可视化、工业资产的知识库或维护指导系统或其他这样的方面的元素。

图5是示出根据一个或更多个实施方式的与使用IDE系统202创建正在设计的自动化系统的系统项目302相关联的示例数据流的图。执行IDE客户端应用514的客户端设备504(例如,膝上型计算机、平板计算机、台式计算机、移动设备、可穿戴AR/VR器具等)可以访问IDE系统的项目开发工具并利用这些工具来创建正在开发的自动化系统的综合系统项目302。通过与系统的用户接口部件204进行交互,开发人员可以以各种支持的格式将设计输入512提交给IDE系统202,各种支持的格式包括行业特定的控制编程(例如,控制逻辑、结构化文本、顺序功能图表等)和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可以根据工业或工业垂直领域(例如,机动车、食品和药品、石油和天然气、制药等)、工业资产的类型(例如,机器或工业设备的类型)、工业应用的类型(例如,批处理、流量控制、幅材张力控制、钣材冲压、水处理等)或其他这样的类别进行分类。预定义的可视化510可以包括多种格式的可视化,多种格式包括但不限于HMI画面或窗口、聚合来自多个预先指定源的数据的混搭、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的一些实施方式还可以针对通用编程功能(例如,泵送应用、批处理、码垛操作等)监测客户特定的设计方法,并基于对设计人员的目标的推论和用于实现目标的学习方法为用户可能希望结合到当前设计项目中的设计模块(例如代码模块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来实现基于规则的编程,从而基于编码行业的专业知识和最佳实践来渲染编程反馈(设计反馈518的子集)诸如动态智能自动校正、预先键入或编码建议(例如,识别正在开发的代码中的低效率并推荐适当的校正)。

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

在使编码建议作为设计反馈518的一部分时,项目生成部件206可以调用存储在代码模块数据库(例如,在存储器220上)中的选定代码模块508。这些代码模块508包括用于控制常见的工业任务或应用(例如,码垛、流量控制、幅材张力控制、拾取和放置应用、输送机控制等)的标准化编码段。在一些实施方式中,代码模块508可以根据代码模块508适用的工业垂直领域(例如,机动车、食品和药品、石油和天然气、纺织业、海运、制药等)、工业应用或者机器或设备的类型中的一个或更多个进行分类。在一些实施方式中,项目生成部件206可以基于由程序员提供的编程输入(作为设计输入512的子集)来推断程序员的当前编程任务或设计目标,并且基于该任务或目标来确定预定义代码模块508之一是否可以适当地添加到正在开发的控制程序以实现推断的任务或目标。例如,项目生成部件206可以基于对设计输入512的分析来推断程序员当前正在开发用于将物料从第一罐运输至另一罐的控制代码,并且作为响应,推荐包括预定义的代码模块508,预定义的代码模块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的一部分)。在一些实施方式中,该环境信息还可以从工厂的现有数字孪生获得,或者通过分析由可穿戴AR器具获得的扫描环境数据来获得。项目生成部件206可以分析该图像、视频或数字孪生数据,以识别安装区域内的物理元素(例如,壁、大梁、安全栅栏、现有机器和设备等)以及这些元素之间的物理关系。这可以包括确定机器之间的距离、管道延伸的长度、线束或线缆托架的位置和距离等。基于该分析的结果,项目生成部件206可以将背景添加到作为系统项目302的一部分生成的示意图中,生成关于设备或机器的最佳位置的推荐(例如,推荐电力与数据线缆之间的最小间隔),或对系统项目302进行其他改进。可以根据基于物理的规则516生成该设计数据的至少一些,项目生成部件206可以参考基于物理的规则516以确定物理设计规范诸如距危险装备的最小安全距离(在由基于物理规则516限定预期人或车辆反应时间的情况下,这也可能是确定相对于此装备安装安全设备的合适位置中的因素)、能够承受预期负载的物料选择、用于特定流量控制应用的管道配置和调整、适合于预期电气负载的线规、信号线与电磁场(EMF)源之间的确保对数据信号的电干扰可忽略的最小距离,或者取决于物理规则的其他这样的设计特征。

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

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

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

每个自动化对象222的至少一些特性是由IDE系统202基于与由对象表示的资产有关的编码行业专业知识而限定的默认属性。其他属性可以由开发人员根据需要(经由设计输入512)修改或添加,以为正在针对其开发系统项目302的特定资产和/或工业应用定制对象222。这可以包括例如将与选定的自动化对象222相关联的定制的控制代码、HMI画面、AR呈现或帮助文件相关联。以这种方式,可以在设计期间根据需要创建和增强自动化对象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,并将此控制程序文件702发送至控制器118(例如,经由工厂网络116)。类似地,项目部署部件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可以是可由设备504经由因特网访问的公共云,设备504具有因特网连接性和适当授权以利用IDE服务802。在一些情况下,云平台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——并将这些文件部署到工厂设施中的适当设备,以促进自动化项目的实现。

在一些实施方式中,IDE系统的IDE编辑器224和相关联的用户接口204可以包括开放的应用编程接口(API),该API使得第三方例如OEM、系统集成商、工业资产所有者或其他这样的用户能够通过创建开发环境的定制视图、定制编程语法、对定制IDE功能进行编码或以其他方式定制IDE界面来构建IDE的开发平台。图9是示出根据一个或更多个实施方式的对IDE系统的开发界面的定制的图。在此示例中,用户接口部件204和/或相关联的IDE编辑器224包括开放的API,API为授权用户提供对IDE系统的低级别服务和数据模型的所选择的子集的编程访问权限——这些子集否则将向IDE系统的提供者保留专有权——使得终端用户能够更改或定制IDE的开发环境。

为了促进IDE系统的开发界面的定制,用户接口部件240和IDE编辑器224可以与编辑器限定部件210相关联,该编辑器限定部件210可以基于用户提交的界面限定数据902来修改IDE编辑器的编程界面(例如,经由在通信连接至IDE系统202的客户端设备504上执行的IDE客户端514;参见图5)。编辑器限定部件210使得用户能够限定或修改由IDE编辑器224支持的源代码编程语法,修改现有开发环境界面或创建用于开发系统项目302的各方面的新界面,修改或创建IDE编辑功能,创建定制的护栏模板506,限定将由用户接口部件204生成的设计反馈518的类型,用于以鼓励遵守内部编程或设计标准的方式指导开发人员进行设计和对工作流进行编程,或者限定IDE系统的开发界面的其他这样的功能。编辑器限定部件210可以基于该界面限定数据902来重新配置IDE编辑器224和/或用户接口部件204,从而根据用户要求或偏好来定制IDE的开发界面。以这种方式,IDE系统的API可以将IDE平台扩展给第三方用户,从而使得用户能够限定其IDE系统开发界面版本的外观和功能。

基于用户提交的界面限定数据902,IDE编辑器224和相关联的用户接口部件204将根据用户的界面限定数据902渲染适当定制的应用开发界面904和相关联的设计反馈。例如,根据界面限定数据902,IDE编辑器224和用户接口部件204可以渲染被设计成实施控制编程的内部标准的控制代码语法突出显示或错误突出显示。该突出显示可以应用于某些编程语法并且在某些条件下由界面限定数据902(例如,通过由界面限定数据902限定的定制护栏模板)指定。

定制的开发界面904还可以促进根据由界面限定数据902指定的语法格式化的控制代码编程(例如,控制逻辑功能块、工业领域特定的语言语法等)的接收。例如,界面限定数据902可以指定将由IDE编辑器224支持的脚本化工业DSL编程语法。基于该DSL规范,IDE编辑器224和用户接口部件204将生成以下开发界面904:该开发界面904促进根据工业DSL规范格式化的脚本控制编程的接收。此外,IDE编辑器224将被配置成编译接收到的工业DSL脚本,以产生格式化为在工业控制设备上执行的可执行控制代码。例如,基于作为界面限定数据902的一部分提交的编程语法限定,编辑器限定部件210可以将用户限定的语法映射到由IDE编辑器224支持的本地语言,这可以在用户限定的语法与本地语言之间应用适当的翻译。

在另一示例中,工业IDE系统202可以支持工业编程语言例如梯形逻辑,并且编辑器限定部件210可以使得用户能够根据他们的偏好来定制梯形逻辑开发环境。这可以包括将梯形逻辑编辑器的本地术语更改为用户优选的优选术语。例如,用户提交的界面限定数据902可以包括术语映射限定,其将梯形逻辑编辑器的本地术语映射到用户指定的优选术语。在示例场景中,用于将数据值从源寄存器移动到目标寄存器的功能在编辑器的本地术语中可以称为MOV命令。要将此功能添加到控制程序,用户必须选择MOV功能块并将其添加到其梯形逻辑程序的梯级(rung)输出中。由于某些程序员可能认为此功能块的名称不明确,因此用户可能希望将此功能块的名称更改为MOVE,以更明确地传达与此命令相关联的功能。因此,编辑器限定部件210可以使得用户能够通过提交限定该术语映射的界面限定数据902来将该命令的名称从MOV更改为MOVE。限定了此映射后,MOV命令的所有实例在梯形逻辑编辑环境内都将被标记为MOVE。梯形逻辑编辑器的其他方面——包括但不限于文本或梯级颜色、功能块尺寸或大小、工具栏的位置和可见性、或其他这样的特征——也可以以此方式进行定制。

界面限定数据902还可以限定或修改由IDE编辑器224支持的编辑功能。可以由界面限定数据902限定的新编辑功能可以包括但不限于自动完成功能、定制的复制和粘贴功能、满足限定的不合规条件的不合规代码的自动删除或其他这样的功能,自动完成功能在关于程序的某些标准得到满足时,自动将指定的代码段或自动化对象添加到正在开发的控制程序。在要通过用户选择启用新的定制编辑功能的情况下,界面限定数据902可以在要由用户接口部件204显示的开发界面上指定编辑功能和界面控件(例如按钮、下拉菜单等)的位置两者。

界面限定数据902还可以在关于正在开发的控制项目的指定条件下指定要在定制开发界面904上渲染的设计建议。这些建议可以包括,例如,用于重写或重新组织控制代码以符合由界面限定数据902指定的内部编程标准的建议,基于对程序员意图的推断所建议的要添加至系统项目的自动化对象(例如,如果确定开发人员正在为流量控制应用编写脚本,则在控制程序中推荐在适当位置处添加泵自动化对象),或其他这样的自动化推荐。

在一些实施方式中,界面限定数据902还可以包括对将由IDE编辑器224和用户接口部件204支持的定制数据类型或定制自动化对象的限定。

界面限定数据902还可以指定定制开发界面904的总体布局和美学属性,包括但不限于编辑工具栏的位置和定向、颜色方案、由定制界面904生成的可听见的反馈、定制画面导航或其他这样的属性。

图10是示出根据一个或更多个实施方式的示例编辑器限定部件210的部件的框图。在示例实现中,可以对软件开发工具包(SDK)1002和/或相关联的库1004进行许可,以使得用户(例如OEM或系统集成商)能够构建其自己的IDE编辑器224、构建扩展、访问IDE系统的逻辑模型、以及添加至系统项目302。在一些实施方式中,开放的API 1006还可以使得用户能够创建其自己的语言脚本作为定制的工业DSL,然后可以由项目开发部件208对其进行解析并将其编译成可由工业控制设备理解和执行的可执行控制代码。API 1006与IDE开发平台之间的转换器1008可以公开系统项目302,并使得用户能够编写其自己的控制代码并定制IDE编辑器224。

如以上结合图8所述,IDE系统202的一些实施方式可以驻留在云平台806上并且作为授权的远程客户端设备504可访问的基于云的IDE服务802的集合来执行。这使得可以与不同的工业企业相关联的多个终端用户能够访问和利用工业IDE服务用于开发其自己的工业系统项目302。图11是示出基于云的工业IDE服务802的多租赁的图,其中每个客户端设备504被允许分别定制其自己的开发环境界面。在该示例中,使(与各个客户端设备504a至504c相关联的)多个授权客户端以安全的方式访问工业IDE服务802。(与编辑器限定部件210相关联的)编辑器限定服务可以使得每个客户端设备504a至504c能够分别提交界面限定数据902a至902c,从而分别配置其自己的定制的开发平台界面904和动态设计反馈的形式。

图12是示出基于云的工业IDE服务802的多租赁的图,其中每个客户端设备504a至504c利用集中式工业IDE服务802来开发其自己的工业系统项目302a至302c。使用其各自的定制设计界面904a至904c,每个终端用户可以与IDE服务802接口以提交设计输入512a至512c并开发工业系统项目302a至302c。IDE服务802将根据由每个用户提交的指定了设计反馈的类型和提供该反馈的条件的界面限定数据902a至902c生成定制的设计反馈518a至518c,并向每个用户的客户端设备504a至504c渲染定制的设计反馈518a至518c。系统项目302a至302c在开发期间安全地存储在云平台806上,并且可以从云平台部署到每个相应用户的自动化系统设备(如图8所示),或者可以下载到相应的客户端设备504a至504c用于将部署从客户端设备504本地化到一个或更多个工业设备。由于IDE服务802驻留在可访问基于因特网的资源的云平台上,因此IDE服务802的一些实施方式还可以使得用户能够访问基于远程web的知识库、供应商装备目录或其他可以协助开发其工业控制项目的信息源。

基于云的IDE服务802可以跨认证授权层、逻辑级别处的数据隔离层和逻辑级别处的网络隔离层支持真正的多租赁。终端用户可以访问云平台806上的工业IDE服务802,并且每个终端用户的开发数据——包括设计输入512、设计反馈518和系统项目302——都(例如,通过加密部件212)进行了加密,使得每个终端用户只能查看其自己的数据。在示例实现中,基于云的工业IDE服务802的管理员可以维护具有适当安全性特征的主虚拟私有云(VPC),并且可以向每个终端用户分配该VPC的一部分用于其自己对IDE服务802的访问。在示例实施方式中,加密的多协议标签交换(MPLS)通道可以保护终端用户数据的整个语料库,使得数据只能由具有适当证书的特定计算机或域查看。

工业IDE系统202的基于云的实现还可以使得与同一工业企业相关联的开发人员能够从分开的远程位置来针对公共系统项目302工作。尽管这些协作开发人员针对同一系统项目302工作,但是以上描述的编辑器限定部件210使得每个开发人员能够根据需要独立地定制其开发平台界面的版本,并使用其自己定制的开发界面与系统项目302的主副本进行交互。由IDE系统支持的协作工具可以管理来自多个协作开发人员的设计贡献,并对聚合系统项目302执行版本控制,以确保项目一致性。这些工具可以包括,例如,在从多个开发人员为同一项目方面提交的不同版本的代码之间进行中介或代理、跟踪每个开发人员对系统项目302的设计贡献、共享开发说明等。

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

在系统项目302的开发期间,开发人员可能希望请求来自远程技术支持实体的协助。因此,IDE开发界面可以包括使得终端用户能够提交协助请求1302的控件。协助请求1302可以指定系统项目302的需要协助的特定方面(例如,控制代码例程、可视化画面、设备选择或兼容性、指定工业设备的配置等)。在一些实施方式中,代理部件214可以在将请求发送至远程支持表示之前对辅助请求1302执行附加处理。代理部件214可以部分地基于先前捕获的对终端用户正在开发的自动化系统或客户的较大工厂设施的了解来执行该附加处理。例如,代理部件214可以收集附加的客户特定的背景,该背景可以协助解决正在请求协助的设计问题。这样的背景可以包括关于构成正在为其开发系统项目302的自动化系统的设备和/或机器的附加信息(例如,这样的设备的身份、以及它们在整个工业系统中的角色和它们彼此的功能关系)、相对于正在设计的其运行可以对新自动化系统的运行具有影响的自动化系统的其他上游或下游过程等。

响应于协助请求1302的接收,代理部件214可以例如基于存储在各个技术支持人员的资格简档中的指示每个人的培训水平、专业领域、该人员针对其具有经验的装备等的信息来选择被确定有资格协助该请求的可用的技术支持人员,并且向所选择的技术支持人员开放远程通信通道。

一旦建立了该通信通道,技术支持人员就可以(经由客户支持客户端设备1310)访问、查看和修改从系统项目302获得的客户项目数据1304的所选择的子集。技术支持人员可以以对终端用户的系统项目302的各方面进行直接修改(例如,控制代码重写、设备配置的设置等)的形式或提交给终端用户以推荐某些修改的设计反馈1312的形式或以其他方式提供设计指导的形式提交设计协助1306。在一些实施方式中,基于云的IDE系统202还可以用作可信代理,技术支持人员可以通过该可信代理来远程访问终端用户的工厂设施处的装备,例如,出于远程配置用户设备、查看或修改工业控制器上的控制编程或HMI终端上的可视化画面等目的。

图14至图16示出了根据本申请的一个或更多个实施方式的各种方法。虽然出于简化说明的目的而将本文中示出的一个或更多个方法示出和描述为一系列动作,但是应当理解和认识到,本发明不受这些动作的顺序的限制,因为一些动作可以据此按照与本文中示出和描述的顺序不同的顺序发生以及/或者与其他动作同时发生。例如,本领域技术人员将理解和认识到,方法可以可替选地例如以状态图表示为一系列相关的状态或事件。此外,实现根据本发明的方法并不需要示出的动作中的全部。此外,当不同实体实现方法的不同部分时,交互图可以表示根据本公开内容的方法或方法。此外,所公开的示例方法中的两种或更多种方法可以彼此组合地实现,以实现本文所描述的一个或更多个特征或优点。

图14示出了用于将工业IDE平台扩展到终端用户以允许创建定制的开发平台视图和功能以及使用这些定制的视图来开发工业控制代码、可视化和设备配置的示例方法1400。首先,在1402处,接收限定工业IDE的开发平台界面的界面限定数据。该界面限定数据可以从工业IDE平台的终端用户接收,这通过开放的API得到促进,开放的API将工业IDE的低级服务和数据模型的所选择的子集扩展到终端用户,允许用户可编程地访问这些服务以根据需要改变或定制IDE的开发环境。界面限定数据可以限定例如要用于开发工业控制代码的开发环境视图或画面、可视化(例如,HMI画面,AR/VR可视化、混搭等)、设备配置设置和工程图(例如电气图、机械图、管道和仪表图等)。界面限定数据还可以限定要用于开发工业控制编程的编程语法(例如,控制逻辑功能块、特定于工业领域的语言语法等)、由工业IDE支持的编辑功能、限定条件的编程护栏和要由工业IDE部件渲染的设计反馈的格式化、或其他这样的特征。

在1404处,根据在步骤1402处接收的界面限定数据定制工业IDE的开发界面。在1406处,在与在步骤1402处从其接收界面限定数据的用户或工业企业相关联的客户端设备上渲染定制的IDE开发界面。

在1408处,经由与在步骤1406处渲染的定制的IDE开发界面的交互接收工业设计数据。工业设计数据可以以以下一种或更多种形式提交:工业控制器编程(例如,梯形逻辑、顺序功能图表、脚本控制代码诸如工业DSL等)、HMI画面开发输入、工业设备或装备选择、工程图输入等。在一些实施方式中,工业设计数据还可以包括完整的工程图(例如,P&ID图、电气图、机械图等),该工程图可以由工业IDE进行解析和分析以识别正在设计的工业自动化系统的部件(例如,工业设备、机器、装备、导管、管道等)以及这些部件之间的功能和物理关系。

在一些实施方式中,设计数据还可以包括图像或视频。例如,可以将要安装正在设计的工业自动化系统的安装场所的图像或视频提交给工业IDE,该工业IDE可以分析图像或视频以识别安装区域内的物理元素(例如壁、大梁、安全围栏、现有机器和设备等)以及这些元素之间的物理关系(例如,机器或其他物理元素之间的距离、管道延伸的长度、线束或线缆托架的位置和距离等)。基于此图或图像/视频分析的结果,工业IDE可以将部件添加到工程示意图中,针对图或图像中识别的部件生成控制编程或可视化,生成合适的设备参数设置,生成关于设备或机器最佳位置的推荐等。

对于支持基于目标的编程的工业IDE的实施方式,设计数据还可以包括期望的设计目标和相关联的设计约束的指示;例如,依据所需产品或物料的输出速率、最大总能耗率、(如上所描述的,可以基于安装场所的图像或视频获得的)安装空间的约束或其他这样的参数。基于这些设计目标和约束,工业IDE可以生成自动化系统项目的至少一部分,包括能够根据指定约束条件满足指定设计目标的装备或设备选择、控制代码、图、可视化或设备参数中的一个或更多个。

在1410处,当接收到工业控制编程时渲染设计反馈,其中,设计反馈的至少一部分与在步骤1402处接收的界面限定数据一致。示例设计反馈可以包括,例如,被设计成实施内部或行业标准编码实践的控制代码语法突出显示或错误突出显示(其可以基于由界面限定数据限定的用户限定的编程护栏模板生成),用于重写或重新组织控制代码以符合由界面限定数据指定的内部编程标准的建议,基于对程序员的意图的推断所建议的要添加至设计项目的自动化对象,通过添加用于常规控制操作的预定义的特定于垂直领域或特定于应用的代码模块而自动完成的代码段,或其他这样的反馈。

在1412处,确定项目开发是否完成。例如,可以响应于来自开发人员的自动化系统项目已准备好进行解析和编译的指示来做出该确定。如果开发未完成(步骤1412处为否),则该方法返回到步骤1408。重复步骤1408和1410,直到开发完成(步骤1412处为是),此时该方法进行到步骤1414。

在1414处,将在步骤1408处接收到的(由在步骤1410处接收到的设计反馈指导的)工业设计数据编译到包括一个或更多个可执行文件的系统项目中,一个或更多个可执行文件可以在工业控制设备(例如,PLC或其他类型的工业控制设备)、人机接口终端或其他类型的工业设备的至少之一上部署和执行。

图15示出了用于使用工业IDE平台来生成和部署工业控制软件的示例方法1500。首先,在1502处,通过工业IDE接收以下中的至少之一:指定工业自动化系统的设计目标的用户输入、工业自动化系统的一个或更多个方面的工程图(例如,P&ID图、电气示意图、机械图、网络图等)或要在其中安装工业自动化系统的工厂设施的数字模型。

在1506处,从指定设计目标的用户输入、工程图或工厂设施的数字模型中的至少之一提取工业设计数据。例如,设计目标可以指定自动化系统所需的最小产品吞吐量、自动化系统预期的最大能耗、自动化系统预期的最小每日或每周运行时间、自动化系统预期的最大燃料成本或其他这样的设计目标。基于这些指定的设计目标,工业IDE可以生成设计数据,所述设计数据进行以下至少之一:指定能够满足设计目标的设备、机器或其他工业资产的类型和数量,限定以满足设计目标的方式控制一个或更多个工业资产的控制算法,指定用于以符合指定设计目标的方式配置一个或更多个工业资产(例如,工业控制器、马达驱动器、视觉系统、工业安全设备等)的设备配置参数设置等。

在1506处,基于在步骤1504处提取的设计数据生成工业自动化项目的系统项目数据,其中系统项目数据至少包括自动化对象、可在一个或更多个工业控制设备上执行的控制代码以及可以在可视化系统(例如,HMI终端、AR/VR系统等)上执行的可视化数据。在1508处,将在步骤1506处生成的系统项目数据部署到工业控制设备、工业可视化系统或其他类型的可配置工业设备中的一个或更多个以用于执行。

图16示出了用于在工业控制编程开发期间应用特定于工业垂直领域的编程护栏的示例方法1600。首先,在1602处,经由与工业IDE的交互来接收工业设计数据。工业设计数据可以包括例如格式化为梯形逻辑、基于脚本的编程(例如,工业DSL)、顺序功能图表、结构化文本或其他这样的格式的工业控制器编程。设计数据还可以包括工业可视化配置,例如用于设计HMI画面内容、属性和导航的HMI画面开发输入。

在1604处,基于对设计数据的分析来确定与在1602处接收的设计数据相关的工业垂直领域。示例垂直领域可以包括但不限于机动车、食品和药品、石油和天然气、船舶、纺织品、制药、采矿或其他这样的垂直领域。工业IDE可以基于对设计数据的任何适当特征的分析来确定相关的工业垂直领域,这些特征包括但不限于程序注释、包括作为某些工业垂直领域的特征的控制例程或编程序列、设计人员提交的相关垂直领域的明确指示或其他这样的特征。

在1608处,确定编程护栏模板是否可用于在步骤1604处确定的工业垂直领域。在这一点上,工业IDE可以维护特定于垂直领域的编程护栏模板的库,每个编程护栏模板限定适用于给定工业垂直领域的编程标准、准则或约束。在某些垂直领域的情况下,护栏模板可以限定必须遵循以用于认证或符合现行工业标准的编程标准。

如果没有可用于垂直领域的编程护栏模板(步骤1608处为否),则该方法返回到步骤1602,并重复步骤1602至1608。可替选地,如果编程护栏模板可用于垂直领域(步骤1608处为是),则该方法进行到步骤1610,在步骤1610处,在工业设计数据的接收期间,应用编程护栏模板以渲染特定于垂直领域的编程反馈。编程反馈可以包括,例如,不符合由护栏模板限定的标准的工业代码部分的突出显示、以使编程符合标准的方式重写或重新组织控制编程的推荐、包括与工业垂直领域相关的所选择的预定义代码模块、自动化对象或可视化画面的建议或其他这样的反馈。

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

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

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

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

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

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

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

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

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

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

再次参照图17,用于实现本文描述的各方面的各种实施方式的示例环境1700包括计算机1702,计算机1702包括处理单元1704、系统存储器1706和系统总线1708。系统总线1708将系统部件包括但不限于系统存储器1706耦接至处理单元1704。处理单元1704可以是各种商业可用处理器中的任一种。双微处理器以及其他多处理器架构也可以用作处理单元1904。

系统总线1708可以是以下若干类型总线结构中的任一种:还可以互连至存储器总线(具有或不具有存储器控制器)的总线结构、外围总线以及使用多种商业可用总线架构中的任一种的本地总线。系统存储器1706包括ROM 1710和RAM 1712。基本输入/输出系统(BIOS)可以存储在非易失性存储器诸如ROM、可擦除可编程只读存储器(EPROM)、EEPROM中,其中,BIOS包含有助于在例如启动期间在计算机1702内的元件之间传输信息的基本例程。RAM 1712还可以包括高速RAM例如用于缓存数据的静态RAM。

计算机1702还包括内部硬盘驱动器(HDD)1714(例如,EIDE、SATA)、一个或更多个外部存储设备1716(例如,磁盘驱动器(FDD)1716、存储棒或闪存驱动器读取器、存储卡读取器等)和光盘驱动器1720(例如,其可以从CD-ROM盘、DVD、BD等进行读写)。虽然内部HDD1714被示为位于计算机1702内,但是内部HDD 1714也可以被配置成在合适的机箱(未示出)中供外部使用。另外,虽然在环境1700中未示出,但是除了HDD 1714以外可以使用固态驱动器(SSD)或者使用固态驱动器(SSD)来代替HDD 1714。HDD 1714、外部存储设备1716和光盘驱动器1720可以分别通过HDD接口1724、外部存储接口1726和光盘驱动器接口1728连接至系统总线1708。用于外部驱动器实现方式的接口1724可以包括通用串行总线(USB)和电气与电子工程师协会(IEEE)1394接口技术中的至少一者或两者。其他外部驱动连接技术在本文描述的实施方式的构思之内。

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

在驱动器和RAM 1712中可以存储多个程序模块,包括操作系统1730、一个或更多个应用1732、其他程序模块1734以及程序数据1736。操作系统、应用、模块和/或数据的全部或部分也可以缓存在RAM 1712中。可以使用各种商业上可用的操作系统或操作系统的组合来实现本文描述的系统和方法。

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

此外,可以利用安全模块诸如可信处理模块(TPM)来启用计算机1702。例如,利用TPM,启动部件及时使下一启动部件散列,并且等待结果与安全值的匹配,然后再加载下一启动部件。该过程可以发生在计算机1702的代码执行栈中的任何层上,例如应用在应用执行级或操作系统(OS)内核级处,从而在任何代码执行级处实现安全性。

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

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

计算机1702可以使用逻辑连接经由与一个或更多个远程计算机诸如远程计算机1748的有线和/或无线通信在联网环境中操作。远程计算机1748可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐器具、对等设备或其他常见网络节点,并且通常包括关于计算机1702所描述的许多或所有元件,但是为了简洁起见,仅示出了存储器/存储设备1750。所描述的逻辑连接包括与局域网(LAN)1752和/或更大的网络例如广域网(WAN)1754的有线/无线连接。这样的LAN和WAN联网环境在办公室以及公司很常见,并且促进企业内计算机网络诸如内部网,所述网络均可以连接至全球通信网络例如因特网。

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

当在WAN联网环境中使用时,计算机1702可以包括调制解调器1758或可以经由用于通过WAN 1754建立通信的其他方式例如借助因特网连接至WAN 1754上的通信服务器。可以是内部或外部以及有线或无线设备的调制解调器1758经由输入设备接口1742连接至系统总线1708。在联网环境中,关于计算机1702描述的程序模块或程序模块的部分可以存储在远程存储器/存储设备1750中。将理解的是,所示的网络连接是示例,并且可以使用在计算机之间建立通信链接的其他方式。

当在LAN或WAN联网环境中使用时,计算机1702可以访问云存储系统或者除以上描述的外部存储设备1716以外的其他基于网络的存储系统或代替外部存储设备1716的其他基于网络的存储系统。通常,计算机1702与云存储系统之间的连接可以分别通过LAN 1752或WAN 1754例如通过适配器1756或调制解调器1758来建立。在将计算机1702连接至关联的云存储系统时,外部存储接口1726可以在适配器1756和/或调制解调器1758的帮助下如在其他类型的外部存储装置情况下一样管理由云存储系统提供的存储装置。例如,外部存储接口1726可以被配置成提供对云存储源的访问,就好像这些源物理上连接至计算机1702。

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

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

上面已经描述的内容包括本发明的示例。当然不可能出于描述所公开的主题的目的而描述部件或方法的每种能想到的组合,但本领域普通技术人员可以认识到,本新发明的许多其他组合和排列也是可以的。因此,所公开的主题旨在包含落在所附权利要求的精神和范围内的所有这样的改变、修改和变型。

特别地以及关于由以上描述的部件、设备、电路、系统等执行的各种功能,用于描述这样的部件的术语(包括对“装置”的引用)旨在对应于执行所描述的部件的特定功能的任何部件(例如,功能等同),即使部件在结构上不等同于在本文中所示的所公开主题的示例性方面中执行功能的结构,也仍然如此,除非另有说明。在这方面,还将认识到,所公开的主题包括系统以及具有用于执行所公开主题的各种方法的动作和/或事件的计算机可执行指令的计算机可读介质。

此外,虽然所公开的主题的特定特征可能仅针对若干实现方式中的一种被公开,但是这样的特征可以与其他实现方式的一个或更多个其他特征组合,这可能对于任何给定或特定应用是期望的和有利的。此外,在具体实施方式或权利要求书中使用术语“包括(includes)”和“包含(including)”及其变型方面而言,这些术语旨在以与术语“包括(comprising)”类似的方式是包括性的。

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

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

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号