优选自动化视图管理的制作方法

文档序号:24499595发布日期:2021-03-30 21:28阅读:75来源:国知局
优选自动化视图管理的制作方法

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



背景技术:

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



技术实现要素:

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

在一个或更多个实施方式中,提供了一种用于开发工业应用的系统,包括:用户接口部件,其被配置成渲染工业集成开发环境(ide)开发界面,并经由与开发界面的交互来接收定义工业自动化项目的各方面的工业设计输入,其中,开发界面包括一个或更多个工作空间画布以及全局面板控制栏,一个或更多个工作空间画布被配置成便于开发工业自动化项目的所选择的方面,全局面板控制栏包括与可用于在开发界面上调用的相应面板相对应的可见性图标;以及项目生成部件,其被配置成基于工业设计输入来生成系统项目数据,其中,界面显示包括左全局面板区域、右全局面板区域和底部全局面板区域,相应面板被指定到左全局面板区域、右全局面板区域或底部全局面板区域之一,并且用户接口部件还被配置成响应于对所述可见性图标中的可见性图标的选择,切换与该可见性图标相对应的面板在左全局面板区域、右全局面板区域或底部全局面板区域之一中的可见性。

此外,一个或更多个实施方式提供一种用于管理工业开发工作空间的方法,包括:通过包括处理器的工业集成开发环境(ide)系统在客户端设备上显示开发界面,其中,该显示包括显示在其上执行相应开发任务的一个或更多个工作空间画布以及显示全局面板控制栏,全局面板控制栏包括与可用于在开发界面上调用的相应面板相对应的可见性图标;通过工业ide系统经由与开发界面的交互来接收对所述可见性图标中的可见性图标的选择;以及响应于接收,通过工业ide系统切换与该可见性图标相对应的面板的可见性,其中,该切换包括将面板添加到开发界面的左全局面板区域、右全局面板区域或底部全局面板区域之一或者从开发界面的左全局面板区域、右全局面板区域或底部全局面板区域之一移除面板。

此外,根据一个或更多个实施方式,提供了一种非暂态计算机可读介质,其上存储有指令,指令响应于执行使工业集成开发环境(ide)系统执行操作,操作包括在客户端设备上显示工业ide系统的开发界面,其中,显示包括显示在其上执行相应开发任务的一个或更多个工作空间画布以及显示全局面板控制栏,该全局面板控制栏包括与可用于在开发界面上调用的相应面板相对应的可见性图标;经由与开发界面的交互来接收对所述可见性图标中的可见性图标的选择;以及响应于接收,切换与该可见性图标相对应的面板的可见性,其中,该切换包括将面板添加到开发界面的左全局面板区域、右全局面板区域或底部全局面板区域之一或者从开发界面的左全局面板区域、右全局面板区域或底部全局面板区域之一移除面板。

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

附图说明

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

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

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

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

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

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

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

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

图9是可以由工业ide系统的用户接口部件的一个或更多个实施方式渲染的示例开发界面。

图10a是示出面板可见性图标的示例组织的全局面板控制栏的特写视图。

图10b是可以响应于工业ide系统的菜单栏中的视图选项的选择而渲染为下拉菜单的示例视图菜单。

图11a是描绘了固定在右全局面板区域中的属性面板的开发界面的右上角的视图。

图11b是描绘了在右全局面板区域中选择在线面板作为覆盖面板的开发界面的右上角的视图。

图11c是描绘了同时可见的两个固定面板的开发界面的右上角的视图。

图11d是工具箱面板被渲染为属性面板上面的覆盖的开发界面的右上角的视图。

图11e是工具箱面板被切换为固定面板的开发界面的右上角的视图。

图12是描绘了右全局面板区域的面板放置区域的开发界面的右上角的视图。

图13a是处于默认非折叠状态的两个水平堆叠的固定面板的视图。

图13b是下面板处于折叠状态的两个水平堆叠的固定面板的视图。

图13c是上面板处于折叠状态的两个水平堆叠的固定面板的视图。

图14是工业ide开发界面的画布区域内的示例画布的视图。

图15是两个画布水平堆叠的工业开发界面的视图。

图16a是选择了一个选项卡从而使相应的梯形逻辑画布被渲染在画布区域中的两个选项卡式开发界面的视图。

图16b是选择了一个选项卡从而使相应的标签数据库画布被渲染在画布区域中的两个选项卡式开发界面的视图。

图17a是打开了单个画布并且没有调用左面板、右面板或底部面板的开发界面的视图。

图17b是资源管理器面板在左全局面板区域中被渲染为可见并且属性面板被渲染在右全局面板区域中的开发界面的视图。

图17c是将层面板添加到先前视图的开发界面的视图。

图17d是添加了与先前存在的画布水平堆叠的第二画布的开发界面的视图。

图17e是将第三画布添加先前视图并与先前的两个画布垂直堆叠的开发界面的视图。

图18是资源管理器面板的视图,该资源管理器面板在被调用时驻留在开发界面的左侧全局面板区域中。

图19a是当前选择了逻辑系统视图的情况下资源管理器面板的视图。

图19b是当前选择了执行系统视图的情况下资源管理器面板的视图。

图20是描绘了示例自动化系统项目的系统导航树的示例资源管理器面板。

图21a示出了当用户选择但不启动表示系统项目的梯形逻辑程序的梯形逻辑节点时工业ide开发界面的示例响应。

图21b示出了当用户启动梯形逻辑节点2002时工业ide开发界面的示例响应。

图21c示出了当用户右键点击梯形逻辑节点时工业ide开发界面的示例响应。

图22a是当前选择了应用视图和控制器选项卡的情况下资源管理器面板的视图。

图22b是当前选择了应用视图和hmi选项卡的情况下资源管理器面板的视图。

图23是响应于对结构化文本应用节点的选择而在其上渲染示例结构文本程序的一部分的工业ide工作空间画布的视图。

图24是响应于对功能框图应用节点的选择而在其上渲染示例功能框图程序的一部分的工业ide工作空间画布的视图。

图25是当前选择了设备视图的情况下资源管理器面板的视图。

图26是响应于对控制器节点的选择而在其上渲染示例控制器的信息的工业ide工作空间画布的视图。

图27是当前选择了库视图的情况下资源管理器面板的视图。

图28是当前选择了扩展视图的情况下资源管理器面板的视图。

图29a是跨两个显示设备分布的工业ide开发界面的左侧实例。

图29b是跨两个显示设备分布的工业ide开发界面的右侧实例。

图30是示例可用选项卡菜单。

图31a是根据适于没有宽度限制的场景的第一布局模式渲染的工业ide开发界面。

图31b是根据在可用的画面宽度低于第一阈值宽度时调用的第二布局模式渲染的工业ide开发界面。

图31c是根据在可用的画面宽度低于比第一阈值宽度小的第二阈值宽度时可以启用的第三布局模式渲染的工业ide开发界面。

图32a是用于定制工业ide系统的开发界面上的面板可见性和布局的示例性方法的第一部分的流程图。

图32b是用于定制工业ide系统的开发界面上的面板可见性和布局的示例性方法的第二部分的流程图。

图32c是用于定制工业ide系统的开发界面上的面板可见性和布局的示例性方法的第三部分的流程图。

图33a是用于经由与工业ide开发界面的交互来浏览和渲染工业自动化项目的方面的示例性方法的第一部分的流程图。

图33b是用于经由与工业ide开发界面的交互来浏览和渲染工业自动化项目的方面的示例性方法的第二部分的流程图。

图34a是用于操纵工业ide开发界面内的工作空间画布的示例性方法的第一部分的流程图。

图34b是用于操纵工业ide开发界面内的工作空间画布的示例性方法的第二部分的流程图。

图34c是用于操纵工业ide开发界面内的工作空间画布的示例性方法的第三部分的流程图。

图35a是用于基于用户正在执行的当前开发任务通过工业ide开发界面自动管理可用项目编辑工具的集合的示例性方法的第一部分的流程图。

图35b是用于基于用户正在执行的当前开发任务通过工业ide开发界面自动管理可用项目编辑工具的集合的示例性方法的第二部分的流程图。

图36是示例计算环境。

图37是示例联网环境。

具体实施方式

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

如在本申请中所使用的,术语“部件”、“系统”、“平台”、“层”、“控制器”、“终端”、“站”、“节点”、“接口”旨在指代计算机相关实体或与具有一个或更多个特定功能的操作装置相关的或作为该操作装置的一部分的实体,其中,这样的实体可以是硬件、硬件和软件的组合、软件或执行中的软件。例如,部件可以是但不限于:在处理器上运行的处理、处理器、硬盘驱动器、包括附缀的(例如螺丝拧紧或螺栓固定的)固态存储驱动器或者可移除式附缀的固态存储驱动器的(光存储介质或磁存储介质的)多个存储驱动器;对象;可执行体;执行线程;计算机可执行程序和/或计算机。作为说明,运行在服务器上的应用和服务器二者均可以是部件。一个或更多个部件可以驻留在执行的进程和/或线程内,并且部件可以位于一个计算机上和/或分布在两个或更多个计算机之间。此外,本文所描述的部件可以从其上存储有各种数据结构的各种计算机可读存储介质来执行。部件可以经由本地和/或远程进程例如根据具有一个或更多个数据分组的信号(例如来自一个部件与本地系统、分布式系统中的另一部件进行交互的数据和/或经由信号跨网络诸如因特网与其他系统交互的数据)进行通信。作为另一示例,部件可以是具有由电气或电子电路操作的机械零件所提供的特定功能的装置,所述电气或电子电路通过由处理器执行的软件或固件应用来操作,其中处理器可以在装置内部或外部并且执行软件或固件应用的至少一部分。作为又一个示例,部件可以是如下装置:其在没有机械零件的情况下通过电子部件提供特定功能,电子部件可以在其中包括处理器以执行提供电子部件的至少部分功能的软件或固件。作为再一示例,接口可以包括输入/输出(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,其使得工厂人员能够查看与自动化系统相关联的遥测数据和状态数据并且控制系统操作的某些方面。hmi114可以通过工厂网络116与一个或更多个工业控制器118通信并且与工业控制器交换数据,以便于在一个或更多个预先开发的操作者接口屏幕上使与受控工业过程有关的信息可视化。hmi114还可以被配置成使得操作者能够向工业控制器118的指定数据标签或存储器地址提交数据,由此给操作者提供向受控系统发出命令(例如,循环开始命令、设备致动命令等)的手段以修改设定点值等。hmi114可以生成一个或更多个显示画面,操作者通过一个或更多个显示画面与工业控制器118交互,并且由此与受控过程和/或系统交互。示例显示画面可以使用过程的图形表示使工业系统或其相关联设备的当前状态可视化,这些过程的图形表示显示测量值或计算值、采用基于状态的颜色或位置动画、渲染警报通知、或采用向操作者呈现相关数据的其他这样的技术。以这种方式呈现的数据通过hmi114从工业控制器118读取,并且根据由hmi开发人员选择的显示格式来呈现在一个或更多个显示画面上。hmi可以包括具有用户安装或预先安装的操作系统以及用户安装或预先安装的图形应用软件的固定位置设备或移动设备。

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

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

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

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

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

工业开发平台在提供给用户以促进编程和配置的开发界面方面也受到限制。这些界面通常提供要求用户使用相对固定的一组开发界面来开发控制代码、可视化或其他控制系统方面的固定的用户体验。在许多开发场景中,开发平台的界面上显示的编辑选项——例如功能按钮或其他可选的编辑控件、配置字段等——的数量超过了开发人员针对当前项目开发任务所需的数量,因此导致不必要的混乱的开发工作空间,并使得难以定位期望的编辑选项。

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

在一些实施方式中,由ide系统渲染的开发界面可以向用户提供对在给定时间渲染的编辑工具、工作空间画布和项目信息的大量控制。ide系统还会基于对用户正在执行的当前项目开发任务的确定来自动过滤可供选择的工具、面板和信息,从而使得与当前开发任务相关的编辑工具的聚焦子集可供选择而其他工具则被隐藏。开发界面还使得用户能够从相关的、经过滤的工具集合中选择性地渲染或隐藏选择的工具或信息。这种方法可以减少或消除不必要的混乱,并协助开发人员快速且容易地定位并选择期望的编辑功能。ide的开发界面还可以符合工作空间画布和面板的结构化组织,这促进直观的工作流。

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

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

用户接口部件204可以被配置成以任何合适的格式(例如,视觉、音频、触觉等)接收用户输入并向用户渲染输出。在一些实施方式中,用户接口部件204可以被配置成与ide客户端通信地接口,该ide客户端在(例如,经由硬连线或无线连接)通信地连接至ide系统202的客户端设备(例如,膝上型计算机、平板计算机、智能电话等)上执行。然后,用户接口部件204可以经由ide客户端接收用户输入数据并渲染输出数据。在其他实施方式中,用户接口部件314可以被配置成生成开发界面画面并将其提供给客户端设备(例如,程序开发画面),并经由这些界面画面交换数据。如将在本文中更详细地描述的,由用户接口部件204渲染的开发界面支持许多用户体验特征,这简化了项目开发工作流,减轻了与繁杂的开发工作空间相关联的压力并协助开发人员更快且容易地定位期望的编辑功能。可以经由用户接口部件204的各种实施方式接收的输入数据可以包括但不限于编程代码、工业设计规范或目标、工程图、ar/vr输入、dsl定义、视频或图像数据或其他这样的输入。由用户接口部件204的各种实施方式渲染的输出数据可以包括程序代码、编程反馈(例如,错误和突出显示、编码建议等)、编程和可视化开发画面等。

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

一个或更多个处理器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——并将这些文件部署到工厂设施中的适当设备,以促进自动化项目的实现。

图9是可以由工业ide系统的用户接口部件204的一个或更多个实施方式渲染的示例开发界面902。开发界面902以将在本文中更详细描述的方式被组织成面板和工作空间,并且支持自动化和手动的管理特征,所述特征整理开发空间并使与当前开发任务相关的项目编辑功能的子集成为焦点。这些特征可以通过过滤掉与当前开发任务无关的可选选项来改善用户的开发工作流体验,从而使得能够更容易地定位相关的编辑工具和信息。

开发界面902的基本结构包括:驻留有工作空间画布940(具有相关联的选项卡932)的画布区域930,在界面902的右侧边缘(画布区域930的右侧)的全局面板控制栏920,沿界面902的顶部边缘的菜单栏904和菜单栏904下方的工具栏906。可以使用全局面板控制栏920上的可见性控制图标或经由菜单栏904的视图选项下的可选选项,选择性地将其他面板添加到界面的工作空间或从界面的工作空间中移除其他面板。可以将这些面板添加到三个主面板区域或从三个主面板区域中移除,三个主面板区域为左全局面板区域922、底部全局面板区域924和右全局面板区域928。在图9所示的示例场景中,属性面板936在右全局面板区域928中可见,并且已经在左全局面板区域922中以垂直堆叠的布置渲染资源管理器面板910和工具箱面板912。开发界面902还可以包括用于使用文本字符串搜索来搜索打开的项目的搜索栏934。在一些实施方式中,搜索栏934还可以用于插入文本或启动快捷方式。

图10a是示出面板可见性图标的示例组织的全局面板控制栏920的特写视图。可见性图标沿全局面板控制栏920被垂直组织成三组,各个组驻留在控制栏920的全局左面板控制区域914、全局右面板控制区域916和全局底部面板控制区域918中。这三个面板控制区域都标记有相应的标题图标1002、1004和1006,这些标题图标示出了哪个全局面板区域(左、右或底部)由相关联的图标控制。在所示的示例中,左面板控制区域914包括资源管理器可见性图标1008,其响应于选择而切换浏览器面板910在左全局面板区域922中的可见性。右面板控制区域916包括三个可见性图标1010a至1010c,三个可见性图标1010a至1010c分别控制属性面板(可见性图标1010a)、在线面板(可见性图标1010b)和交叉参考面板(可见性图标1010c)在右全局面板区域928中的可见性。底部面板控制区域918包括两个可见性图标1012a和1012b,两个可见性图标1012a和1012b分别控制错误面板(可见性图标1012a)和输出面板(可见性图标1012b)在底部全局面板区域924中的可见性。

全局面板控制栏920上的可见性图标可以用作切换其对应面板的可见性的切换按钮,使得第一次选择该图标使得对应面板在其指定区域中渲染,并且第二次选择该图标会将其对应面板从其指定区域移除。可见性图标可以是彩色动画,使得图标的颜色指示对应面板的可见或隐藏状态(例如,黑色表示隐藏,并且蓝色表示可见)。

图10b是可以响应于对菜单栏904中的视图选项的选择而被渲染为下拉菜单的示例视图菜单1014。视图菜单1014渲染与在全局面板控制栏920上渲染的可见性图标相对应并具有与该可见性图标相同的功能的可选的可见性控件,使得用户能够使用此菜单1014或全局面板控制栏920选择性地渲染和隐藏面板。类似于全局面板控制栏920,根据左面板、右面板和底部面板来组织可选的可见性控件。与全局面板控制栏920不同,视图菜单1014的可选控件被渲染为可选文本而不是图标,其中选中标记指示当前可见的面板。

在一些实施方式中,可以通过选择以下任一项来通过单个选择使已设置为固定(将在下面讨论)的与全局面板区域(左、右或底部)相关联的任何面板渲染为可见或不可见:全局面板控制栏920中的与该区域相对应的标题图标(图标1002、1004或1006)或视图菜单1014中该面板集合的标题文本(例如,右面板标题1016)。

在一些实施方式中,从全局面板控制栏920控制其可见性的面板可以是与工业ide系统202支持的所有开发任务或背景有关的全局面板(与特定开发任务或背景有关的内容面板,将在下面进行说明)。在图10a和图10b所示的示例中,全局面板包括:资源管理器面板,用户可以通过资源管理器面板浏览和选择自动化项目的方面或元素;属性面板,其渲染画布区域930内所选择的元素的属性信息;在线面板,其渲染工业ide系统的通信统计信息;交叉参考面板,其渲染画布区域930内的所选择的元素的交叉参考信息(例如,通过列出工业自动化系统项目内所选择的元素的所有用途或实例);输出面板,其渲染输出状态;以及错误面板,其列出活动和/或历史开发或运行时错误。然而,在不脱离一个或更多个实施方式的范围的情况下,开发界面902可以支持任何类型的全局面板。例如,渲染全局编辑工具的集合或链接至选择的类别的编辑工具的特定子集的工具箱面板也可以作为全局面板得到支持。

在一些实施方式中,可以对面板在可见状态与不可见状态之间的过渡进行动画处理,使得调用面板会使面板从开发界面902的指定边缘(左、右或底部)朝向界面902的中间滑动,直到面板完全扩展且可见。类似地,指示可见面板切换到隐藏状态会使面板朝向面板最初从其延伸的边缘缩回。

ide系统202支持的面板通常可以分为两种类型:全局面板和内容面板。全局面板可全局适用于所有开发环境,并且可以包括但不限于上述全局面板。与全局面板相对应的可见性图标总是固定在面板控制栏920上。

与全局面板相比,内容面板不是全局适用的,而是仅与特定的开发任务或背景相关或仅适用于特定的开发任务或背景(例如,梯形逻辑控制编程、功能框图控制编程、顺序功能图表控制编程、结构化文本控制编程、hmi画面开发、设备配置、控制器标签定义等)。内容面板可以包括但不限于便于浏览图形内容层(例如,工程图、hmi画面等)的层面板,针对所选警报标签渲染可配置警报限定数据的警报面板,渲染可以添加至梯形逻辑程序的可选程序元素(例如输出线圈、触点、功能块等)的逻辑编辑器面板,渲染可以添加至hmi画面的可选图形元素的hmi画面开发面板,或其他这样的内容面板。内容面板的可见性图标沿着画布940的顶部边缘位于画布工具栏938(例如,参见图9)上,并且工具栏938上可用的一组内容面板可见性图标根据画布940中渲染的内容的类型(例如,控制编程、hmi开发画面等)。因此,仅当用户当前聚焦于与内容面板相关的开发任务或背景时,内容面板才可供选择(基于在开发界面902内当前聚焦于哪个画布940,以及画布940渲染的项目内容的类型)。可以与一组专门的内容面板(和相关联的可见性图标)相关联的项目内容的示例类型可以包括但不限于梯形逻辑例程、功能框图例程、结构化文本例程、顺序功能图表例程、标签数据库、hmi画面或应用、面板、各种类型的设备视图(例如,控制器、驱动器、i/o模块等)、工程图或其他这样的内容类型。

通常,与左全局面板区域922、右全局面板区域928或底部全局面板区域924相关联的任何面板可以被选择性地设置为固定面板或覆盖面板。图11a是开发界面902的右上角的视图,描绘了固定在右全局面板区域928中的属性面板936。与属性面板936相对应的可见性图标1010a被突出显示以指示属性面板936是可见的。通过选择合适的控件可以将任何面板选择性地设置为固定或取消固定(即覆盖);控件例如:从可以通过选择面板右上角的面板菜单图标1102来调用的下拉面板设置菜单中选择的控件。在一些实施方式中,还可以通过从与全局面板控制栏920中的对应可见性图标相关联的右键单击菜单中选择适当的控件来将面板选择性地渲染为固定面板或覆盖面板。将面板设置为固定是模拟在可见时将面板固定至背景,而将面板设置为覆盖(取消固定)使该面板被渲染为任何固定面板或可能已经在该显示部分中调用的其他界面内容(例如画布内容)上的覆盖。

当调用固定面板时,用户接口部件204减小画布区域930的宽度(或在底部全局面板区域924中的固定面板的情况下减小画布区域的高度)以适应固定面板。这也导致画布区域930内的一个或更多个画布940被类似地减小尺寸。这可以在图11a中看到,其中画布区域930的右边缘1112已经朝向界面902的中间移动以适应固定面板936的宽度,使得画布区域930的右边缘1112抵靠面板936的左边缘。当调用覆盖面板时,不调整画布区域930的尺寸,而是将面板渲染为覆盖在画布的一部分上,从而遮挡了画布内容在面板背后的部分。

图11b是描绘了选择在线面板1104作为右全局面板区域928中的覆盖面板的开发界面902的右上角的视图。如该图所示,在固定的属性面板936可见时选择在线面板可见性图标1010b导致当前被设置为覆盖面板的在线面板1104显示在属性面板上。可以使用阴影效果1106渲染被设置为覆盖的面板,以传达该面板是覆盖面板而不是固定面板(固定面板不使用阴影效果渲染)。可以通过点击或以其他方式选择面板的外边缘并向内或向外滑动该边缘来调整覆盖面板(例如,图11b中的在线面板1104)的宽度。减小覆盖面板的宽度导致覆盖面板下方的任何固定面板的一些部分露出。尽管在图11a和图11b中参考右全局面板区域928示出了固定面板和覆盖面板效果,但是这些效果也适用于左全局面板区域922和底部全局面板区域924。

图11c是描绘了同时可见的两个固定面板——属性面板936和交叉参考面板1108——的开发界面902的右上角的视图。在此示例中,属性面板可见性图标1010a和交叉参考面板可见性图标1010b已被打开。由于这两个面板当前都被设置为固定面板,因此两个面板936和1108是可见的、垂直堆叠在右全局面板区域中。在示例实施方式中,如果仅一个固定面板被选择为在给定区域中可见,则该面板可以被垂直地调整尺寸以覆盖该面板区域(例如,右全局面板区域928)的整个高度。如果调用第二固定面板,则两个面板将被垂直地调整尺寸,以使得两个面板都将以垂直堆叠的布置适配在面板区域内。可以通过点击并向上或向下拖动两个面板之间的水平界面1110来更改堆叠的固定面板的水平尺寸(其中向上拖动会减小上面板的尺寸并增大下面板的尺寸,而向下拖动执行反向调整尺寸)。

在一些场景中,覆盖面板可以调整尺寸或定向,使得覆盖面板背后的固定面板的一部分保持可见。图11d是工具箱面板1114被渲染为属性面板936上的覆盖的开发界面902的右上角的视图。然而,工具箱面板1114的顶部在属性面板936的顶部下方,使得属性面板936的一部分保持可见。图11e描绘了图11d的工具箱面板1114被切换为固定面板从而使面板936和1114垂直堆叠的场景。

如上所述,可以通过选择与面板相关联的控件来将面板设置为固定。在一些实施方式中,还可以使用拖放动作将面板固定至全局面板区域。图12是描绘了根据这样的实施方式的右全局面板区域928的面板放置区域1202的开发界面902的右上角的视图。根据示例实施方式,如果没有将与右全局面板区域928相关联的面板设置为固定(即,右全局面板区域928的三个可用面板当前被设置为覆盖,使得调用面板会使面板在右全局面板区域928中被渲染为覆盖),则选择右全局面板区域928的标题图标1004使得在右全局面板区域928中渲染空白的面板放置区域1202。如图12中的箭头所示,可以通过将面板的对应可见性图标1010拖动到面板放置区域1202来将可用于右全局面板区域928的三个面板中的任何面板设置为固定面板。也可以通过将面板从放置区域1202拖回全局面板控制栏920将固定面板取消固定(即设置为覆盖面板)。此拖放方法可以用于将面板固定到三个全局面板区域(左、右和底部)中的任何一个。

在一些实施方式中,固定的可见面板也可以被选择性地折叠或扩展。图13a描绘了在默认的非折叠状态下的两个水平堆叠的固定面板(属性面板936和分配面板1302)。在这种状态下,两个面板的内容窗口在相应的标题栏1304和1306下方可见。可以通过选择与该面板相对应的标题栏1304或1306来折叠面板。图13b描绘了由于点击或以其他方式选择该面板的标题栏1306而处于折叠状态的分配面板1302。当下面板——在这种情况下为分配面板1302——折叠时,该面板的内容窗口被渲染为不可见,并且标题栏1306移动到面板区域的底部,而上面板(在这种情况下为属性面板936)的内容窗口被加长以填充剩余的面板区域空间,从而暴露出该窗口的更多内容。图13c描绘了由于点击或以其他方式选择该面板的标题栏1304而折叠的属性面板936。当上面板折叠时,该面板的内容窗口被渲染为不可见,并且下面板的标题栏1306向上移动到恰好在上面板的标题栏1304下方的位置。下面板的内容窗口填充剩余的面板区域空间,从而露出该面板的更多内容。

暂时返回图9,画布区域930是ide系统开发界面902的主要工作区域,并由左全局面板区域922、右全局面板区域928、底部全局面板区域924和菜单栏904界定。通常,画布区域930包含一个或更多个工作空间画布940,用户接口部件204在一个或更多个工作空间画布940上渲染系统项目的部件,例如梯形逻辑或其他类型的控制代码、程序例程、控制器标签定义、可视化画面的开发视图、设备配置、工程图或其他项目部件。画布区域930也是以下空间:通过该空间用户利用由全局面板和内容面板提供的编辑工具和信息与这些部件进行交互,以执行开发功能诸如开发控制器代码(例如,梯形逻辑、功能框图、结构化文本等)、开发自动化系统的可视化(例如,hmi画面、ar/vr呈现、混搭等)、配置设备参数设置、定义控制器标签、开发工程图或其他这样的项目开发功能。

图14是画布区域930内的示例画布940的近视图。画布区域930内的每个画布940可以在选项卡932处相关联,对选项卡932的选择使对应的画布940成为焦点。画布940还可以具有相关联的工具栏938,该工具栏938包括使得用户能够设置相关联的画布940的属性例如缩放级别、视图格式、网格线可见性或其他这样的属性的可选图标和/或字段。在图14所示的示例中,画布的工具栏938位于选项卡932的下方。

在一些实施方式中,画布的工具栏938还可以包含与当前在画布940中渲染的内容的类型(例如,梯形逻辑、功能框图、结构化文本、开发中的hmi画面、设备参数、工程图等)相关联的任何内容面板的可见性图标。与位于全局面板控制栏920上的全局面板可见性图标相似,从画布的工具栏938中选择内容面板可见性图标会切换与所选择的图标相关联的面板的可见性。在一些实施方式中,当使内容面板可见时,可以在全局面板区域之一中或邻近全局面板区域之一的预定义指定位置处渲染内容面板。在一些实施方式中,内容面板也可以移动至界面工作空间内的选择的位置。与全局面板类似,内容面板可以选择性地设置为固定或覆盖。

尽管所示示例将面板可见性图标描绘为渲染在画布的工具栏938中,但是在一些实施方式中,面板可见性图标也可以渲染在开发界面902上的其他地方,例如渲染在菜单栏904下方的主工具栏906上。在这样的实施方式中,在给定时间在此空间中渲染的面板可见性图标的列表将根据当前聚焦的项目内容(例如,当前聚焦的特定画布940的内容)的类型。在其他实施方式中,用户接口部件204可以基于当前正在执行的开发任务或项目内容的类型,将可用的内容面板可见性图标以其自己的指定分组添加到全局面板控制栏920。

画布区域930可以包括一个或更多个选项卡式画布940,每个画布940与选项卡932相关联。用户接口部件204使得用户能够根据需要在画布区域930内建立尽可能多的选项卡式画布940,每个选项卡932渲染自动化系统项目的不同方面。多个选项卡式画布940可以水平或垂直地堆叠在画布区域930中。图15是两个画布940a和940b水平堆叠的开发界面902的视图。通过以这种方式——水平或垂直地——堆叠选项卡使得能够同时渲染画布940a和940b两者的内容。

用户还可以选择将多个画布940渲染为彼此之上的覆盖。图16a和图16b是两个覆盖的画布940a和940b的视图。在此示例场景中,第一画布940a渲染针对工业控制器开发的梯形逻辑例程,并且第二画布940b渲染控制器的标签数据库。图16a描绘了选择了选项卡932a从而使对应的梯形逻辑画布940a被渲染在画布区域930中的场景。图16b描绘了选择了选项卡932b从而使对应的标签数据库画布940b被渲染在画布区域930中的场景。

总的来说,开发界面902的基本布局以及以上描述的面板控件和选项卡操纵功能可以为用户提供流畅的开发工作空间,该开发工作空间提供了对可用工作空间与编辑功能可用性之间的平衡的大量控制。此外,由于用户接口部件204根据用户当前的开发任务或焦点通过仅使与当前任务相关的内容面板的子集可供选择来动态地过滤可用的编辑工具,因此开发界面902实质上通过移除与当前任务无关的面板和编辑功能来使开发工作空间整齐。

图17a至图17e是ide系统的开发界面902的各种示例性布局的视图,其示出了可以由界面902支持的ide内容密度的增加程度。图17a是打开了单个画布940a并且没有调用左面板、右面板或底部面板的界面902的视图。因为开发工作空间没有被全局面板或内容面板占用,所以这实质上使画布940的尺寸最大化,从而显示了实质上最大化数量的画布内容(例如,控制编程、标签数据库信息等)。面板控制栏920保持固定至开发界面902的右侧边缘,以使得用户能够根据需要调用面板。如上所述,除了全局面板可见性图标之外,面板控制栏920还将渲染与内容面板相对应的可见性图标的相关子集,所述内容面板与在活动画布940a中正在执行的任务(例如,梯形逻辑编程、fbd编程、结构化文本编程、hmi画面开发、设备配置、网络配置等)相关。

图17b是资源管理器面板910在左全局面板区域922中被渲染为可见并且属性面板936渲染在右全局面板区域928中的界面902的视图。可以使用任何以上描述的技术(例如,从面板控制栏920或从视图菜单选项中进行选择)使这些面板被渲染为可见。面板910和936两者都被设置为固定,因此画布940a的宽度已经减小以适应面板910和922,因此画布内容940a不会被面板遮挡。

图17c是层面板1702(特定于在画布940a中执行的特定任务的内容面板)被添加到先前视图的开发界面902的视图。层面板1702已作为覆盖面板添加到属性面板936的左侧,因此将遮挡画布内容的与该空间相对应的部分。图17d通过添加与原始画布940a水平堆叠的第二画布940b将更多内容添加到先前视图。用户可以通过选择与期望的画布940相对应的选项卡932a或932b来选择当前聚焦于哪个画布940。这种配置使得用户能够同时查看两个画布940的内容(例如,控制程序和标签数据库、控制程序和设备视图等),同时还为用户提供对与资源管理器面板910、属性面板936和层面板1702相关联的编辑工具、信息和导航结构的访问。

图17e是第三画布940c被添加到先前视图并与先前两个画布940a和940b垂直堆叠的开发界面的视图。如该图所示,画布940可以选择性地在画布区域930内水平地或垂直地堆叠、或者水平地和垂直地堆叠。

如图17a至17e所描绘的示例所示,开发界面的布局和自定义特征在定制或管理画布布局和行为以及选择性渲染项目数据和编辑工具方面为用户提供了相当大的灵活性。此外,在给定时间用户可用的编辑工具和视图由用户接口部件204根据用户当前的开发任务或背景智能地管理,当前的开发任务或背景可以基于对当前聚焦的画布940的识别和该画布940的内容来确定。例如,如果用户选择正在开发结构化文本程序的画布940,则界面的内容面板的总库中的仅与该结构化文本程序开发相关的子集将对用户可用(例如,通过将与那些面板相对应的可见性图标添加到面板控制栏920)。

现在将讨论开发界面的一些实施方式所支持的一些全局面板和内容面板。图18是资源管理器面板910的视图,该资源管理器面板910在被调用时驻留在左全局面板922区域中。资源管理器面板910用作用于导航和查看系统项目的内容的手段,并且支持用于执行该导航的多种方式。资源管理器面板910本身支持许多不同的查看类别,这些查看类别由固定至资源管理器面板910的左侧边缘的资源管理器视图控制栏908上渲染的可选资源管理器图标1806表示。选择资源管理器图标1806将确定要经由资源管理器面板910浏览的项目内容的类型或在资源管理器面板910上渲染可浏览项目内容的格式中的一者或两者。

浏览器面板910还包括面板标题1802,该面板标题的文本标识当前可见的资源管理器工具的集合(例如,图18中的“系统”)。对于提供对由资源管理器图标1806表示的内容的替选呈现格式的选择的资源管理器视图,水平堆叠的选项卡1804a和1804b位于面板标题1802下方,用于从可用视图中进行选择。在选项卡1802a和1804b下方(如果当前资源管理器工具集合只有一个视图,则在标题1802下方)是在其中渲染当前选择的资源管理器工具的资源管理器面板内容区域1808。如将在下面讨论和示出的,在内容区域1808中渲染的内容根据当前选择的资源管理器图标1806以及当前聚焦的选项卡1804。例如,所选择的资源管理器图标1806可以确定要在资源管理器面板910中渲染的可浏览项目内容,并且所选择的选项卡1804确定该可浏览项目内容的呈现格式或组织。对于由资源管理器面板910支持的一些视图,对资源管理器图标1806的选择可以设置要在内容区域1808中渲染的内容的类别,而对选项卡的选择可以在主要类别内设置渲染的内容的特定子类别。

图19a至图19b是当前选择了系统视图的情况下单独的资源管理器面板910的视图。可以通过在资源管理器视图控制栏908中选择系统图标1904来调用资源管理器面板的系统视图。系统视图提供了两个选项卡式视图——逻辑(选项卡1804a)和执行(选项卡1804b)。图19a描绘了响应于对逻辑选项卡1804a的选择而渲染的逻辑系统视图。逻辑系统视图在内容区域1808中渲染包括分级组织的可选节点的逻辑系统导航树1902。对与可查看项目内容相关联的导航树1902的节点之一的选择使与所选择的节点相对应的内容被渲染在当前聚焦的画布940中,或者使适当的面板被渲染在开发界面902上用于显示内容(取决于所选择的节点和相应的内容)。

可以经由逻辑系统导航树1902选择的项目方面可以包括但不限于控制程序或例程(例如,在图19中的rll_01和st_01节点,它们分别在图19a中在父节点程序1和程序2下方列出)、与程序相关联的标签和/或参数(例如,图19a中的标签/参数节点,它们也在其相应的控制程序的父节点下方列出)、可视化、警报配置、设备配置或参数设置、趋势、安全设置、测试结果或其他这样的项目方面。通常,在逻辑系统导航树1902中渲染的节点反映了针对当前自动化系统项目存在的元素。

通常,逻辑系统视图根据工业企业内的过程、生产区域或工厂设施来组织系统元素。图20是描绘示例自动化系统项目的逻辑系统导航树1902的示例资源管理器面板910。如该示例中所示,逻辑系统导航树1902可以分级组织项目的各方面。用户可以限定父节点2002,其表示工业企业内的不同过程、生产区域或工厂设施(例如,提取、发酵、蒸馏等)。如果要将过程、生产区域或工厂设施进一步细分为多个部分(例如lic551、p561、pic535等),子节点2004也可以被限定为父节点2002的子节点。

在这些用户限定的节点中的一个或更多个的下方是表示可以由用户查看和配置的父节点的各方面的可选节点。这些可以包括表示与父节点相关联的控制编程的逻辑节点2006,表示与父节点相关联的hmi应用或其他类型的可视化应用的可视化节点2008,表示针对父节点限定或配置的标签和设备参数的标签和参数节点2010,表示与父节点相关联的设备(例如,工业控制器、马达驱动器等)或其他这样的系统项目部件的设备节点(图20中未示出)。通常,通过树1902到节点的路径表示到对应项目方面的逻辑路径,该逻辑路径是根据用户的工厂布局或过程布局限定的。

图19b是响应于对执行选项卡1804b的选择而渲染执行系统视图的资源管理器面板910的视图。该视图渲染与以上结合图19a和图20描述的逻辑系统视图的内容相似的内容,但是在其上驻留和执行根据自动化系统的各个方面的执行设备(例如,工业控制器)在分级执行系统导航树1906中进行组织。这与由逻辑系统导航树1902提供的基于工厂的组织不同。通过树1906到节点的路径表示到相应项目方面的执行路径。

在一些实施方式中,用户与系统导航树的节点交互的方式将确定如何呈现与所选择的节点相关联的内容。图21a示出了当用户选择但不启动表示系统项目的梯形逻辑程序的梯形逻辑节点2102(rll_01)时用户接口部件204的示例响应。可以例如通过对节点2102执行一次鼠标单击来选择节点2102,使得该节点被突出显示。当以此方式选择节点2102时,关于所选择的梯形逻辑程序的信息将被渲染在属性面板936中(如果属性面板936当前可见)。

图21b示出了当用户例如通过双击节点2102来启动梯形逻辑节点2102时用户接口部件204的示例响应。当双击或以其他方式指示启动系统导航树1902或1906中的节点时,与节点2102相关联的内容或工作空间将渲染在选项卡式画布940上。双击节点2102可以使新的画布940在画布区域930中打开,或者可以使当前聚焦的画布940渲染与节点2102相关联的内容。

图21c示出了当用户右击节点2102时用户接口部件204的示例响应。右击系统导航树1902的节点可以使上下文菜单2104渲染在节点2102附近。上下文菜单2104渲染特定于所选择的节点的类型的可选选项的列表。例如,如果所选择的节点表示工业控制器,则上下文菜单2104可以列出用于将i/o模块添加到控制器、将设备添加到控制器(例如,驱动器)的选项,或者用于其他特定于控制器的配置操作的选项。上下文菜单2104还可以包括用于配置系统导航树1902本身例如复制、粘贴和删除节点的选项。

图22a和图22b是当前选择了应用视图的情况下资源管理器面板910的视图。通过在资源管理器视图控制栏908中选择应用图标2202来调用应用视图。应用视图以可浏览的格式列出构成自动化系统项目的应用(例如,控制器程序、hmi应用)。在该示例中,应用视图使得用户能够通过选择控制器选项卡1804a来查看控制器应用信息,并且通过选择hmi选项卡1804b来查看hmi应用信息。

选择控制器选项卡1804a将在资源管理器面板内容区域1808中渲染控制器导航树2204。控制器导航树2204包括表示如下项的节点:控制器标签、控制器参数、控制编程(例如,梯形逻辑、结构化文本、功能框图等)、处理程序例程(例如,故障处理程序、加电处理程序等)以及构成自动化系统项目的工业控制器的其他这样的方面。根据与节点相关联的控制器在控制器导航树2204中组织这些节点。对控制器应用节点的选择可以在属性面板936中渲染所选择的控制器应用的属性信息(例如,通过单击交互),或者可以在画布940中渲染所选择的应用的代码(例如,通过双击交互)。图23是响应于从控制器导航树2204或系统导航树1902选择结构化文本应用节点而在其上渲染示例结构化文本程序的一部分的画布940的视图。图24是响应于从控制器导航树2204或系统导航树1902选择功能框图应用节点而在其上渲染示例功能框图程序的一部分的画布940的视图。

类似地,选择hmi选项卡1804b将在资源管理器面板内容区域1808中渲染hmi导航树2206。该树2206列出了根据hmi服务器组织的与自动化系统项目相关联的任何hmi项目(或其他类型的可视化项目)。对hmi应用节点的选择可以使所选择的应用的属性被渲染在属性面板936中,或者可以将hmi应用渲染在画布940中。

图25是当前选择了设备视图的情况下资源管理器面板910的视图。通过在资源管理器视图控制栏908中选择设备图标2502来调用设备视图。设备视图在资源管理器面板内容区域1808中渲染设备导航树2504。该树2504包括表示构成控制系统项目的设备(例如,控制器、驱动器、马达控制中心等)的节点。类似于其他资源管理器视图,可以通过与设备节点的适当交互在属性面板936中或画布940上渲染所选择的设备的信息。图26是响应于从设备导航树2504选择控制器节点而在其上渲染示例控制器的信息的画布940的视图。如本示例所示,可以针对所选择的设备而渲染的信息可以包括但不限于设备的名称和型号、设备的网络地址、设备的概述描述、当前安装在设备上的固件版本、电子钥匙的类型、连接类型或其他这样的设备信息。

图27是当前选择了库视图的情况下资源管理器面板910的视图。通过在资源管理器视图控制栏908中选择库图标2702来调用库视图。库视图在资源管理器面板内容区域1808中渲染库导航树2704。库导航树2704包括表示软件对象诸如自动化对象、附加指令、用户限定的数据类型、设备配置或其他这样的对象的节点。库视图可以包括两个或更多个选项卡1804,这些选项卡使得用户能够选择要查看的软件对象的源。在所示的示例中,选项卡1804a渲染与当前自动化系统项目相关联的对象,选项卡1804b渲染供应商库中可用的对象,并且选项卡1804c渲染来自外部源的对象。类似于其他资源管理器视图,可以通过与对象节点的适当交互在属性面板936中或画布940上渲染关于所选择的对象的信息。

图28是当前选择了扩展视图的情况下资源管理器面板910的视图。通过在资源管理器视图控制栏908中选择扩展图标2802来调用扩展视图。扩展视图渲染当前安装在ide系统202上的软件扩展的列表,其可以包括但不限于仪表板、系统查看器和设计人员、梯形逻辑编辑器、功能框图编辑器、结构化文本编辑器、hmi画面编辑器或其他这样的扩展。

ide系统的用户接口部件204的一些实施方式还可以支持项目开发环境的多实例状态,使得开发环境可以跨多个显示设备分布。这样的实施方式可以支持多实例工作流,多实例工作流有助于在开发环境内定向用户,并使得用户能够轻松地在扩展和分布式工作空间内定位相关编辑器,并跨开发界面902的多个实例流畅地工作。

图29a和图29b描绘了开发界面902的示例分布式、多实例实现。在该示例中,当前正在开发的自动化项目的开发环境跨两个监测器或其他显示设备分布,从而有效地跨两个单独但链接的实例——渲染在左侧监测器上的开发界面902a(图29a)和渲染在右侧监测器上的开发界面902b(图29b)——扩展开发界面902。在所示示例中,左侧界面902a渲染显示当前正在开发的控制例程的第一画布940a(和相关联的选项卡932a)。界面902a还在左全局面板区域922中渲染资源管理器面板910及其相关联的资源管理器视图控制栏908,在右全局面板区域928中渲染属性面板936a的第一实例,以及与属性面板936a相邻地渲染覆盖层面板2902a的第一实例。面板控制栏920a的第一实例锚定在界面902a的右边缘。

右侧界面902b渲染两个水平堆叠的画布940b和940c(及其相关联的选项卡932a和932b),画布940b和940c分别包含系统项目的两个其他方面——标签数据库和参数视图。属性面板936b和层面板2902b的第二实例渲染在界面902b的右侧,并且面板控制栏920b的第二实例锚定在界面902b的右边缘。在该示例场景中,用户已经选择从第二界面902b的右全局面板区域省略资源管理器面板910。

尽管在图29a至图29b所示的示例中仅描绘了界面902的两个实例,但是用户接口部件204可以支持开发界面902跨任何数量的实例的扩展(例如,如果多于两个显示设备可用)。此外,尽管所示示例描绘了跨两个实例分布的三个打开的画布940a至940c,但是可以在界面902的每个实例上渲染任何数量的选项卡式画布940。

两个界面902a和902b是彼此的扩展,使得将光标移动到左侧界面902a的右边界之外会导致光标经由右侧界面902b的左边界进入右侧界面902b,反之亦然。因此,用户可以流畅地横穿三个画布940a至940c。通常,用户可以针对每个扩展界面902a和902b独立地配置面板可见性和布局。例如,用户可以选择在两个界面实例上渲染相同的全局面板的副本,或者可以选择在一个界面上将给定的面板渲染为可见,而从另一界面忽略该面板。

为了协助用户容易地在界面实例之间导航,特别是在打开了若干个选项卡式画布940的场景中,界面902的一些实施方式可以响应于对适当控件(例如,菜单栏904中的控件)的选择而渲染可用选项卡菜单,可用选项卡菜单列出了当前打开且可用于所选择的焦点的选项卡932。图30是可以在这样的实施方式中调用的示例可用选项卡菜单3002。示例菜单3002根据名称(例如,梯形逻辑1、标签、参数等)列出当前活动的画布940,并且根据各个画布n940当前驻留的界面902的实例来分离列表。该列表可以被垂直地分离,使得第一部分3004列出在界面902的第一实例上可见的选项卡932,并且第二部分3006列出在第二实例上可见的选项卡932。选择菜单3002上的任何选项卡将使界面902将焦点移动到所选择的选项卡936(即,将所选择的选项卡带到工作空间的前面)。通过在一个菜单3002中列出所有活动选项卡,用户可以容易地选择期望的选项卡,该选项卡可以位于除了用户当前正在查看的界面实例之外的界面实例上,或者可以被隐藏在其他覆盖的画布940或面板下方。这可以减轻在界面902的分布式实例中进行搜索以定位期望画布940的需要。

菜单3002还可以包括用于操纵选项卡932的其他控件。例如,合并菜单选项3008可以使跨多个界面实例的所有选项卡实例都移动到当前正在查看的界面实例(即,从其触发了合并命令的实例)。在一些实施方式中,执行该合并功能还将使界面902的所有扩展实例关闭,仅使当前查看的实例保持活动。

可以通过选择选项卡并将其从界面902的当前实例拖动到目标实例(例如,另一显示设备上的目标实例)来将选项卡932及其相关联的画布940从界面902的一个实例移动到另一实例。如果选项卡932被移动到已经包含一个或更多个可见画布940的界面902的实例,则将调整现有画布的尺寸以适应与重新定位的选项卡932相关联的画布940的添加。在这样的情况下,画布940可以基于预先存在的选项卡的当前定向和重新定位的选项卡的放置位置来自动确定画布940的水平和/或垂直堆叠的合适配置。

在一些实施方式中,开发界面902的布局和功能还可以响应于在其上渲染界面的屏幕或显示设备的尺寸。界面902在其内进行操作的边界的尺寸可以根据设备显示屏的尺寸,或者可以由用户通过调整ide系统的开发环境窗口的尺寸来设置。在任何一种情况下,用户接口部件204都可以被配置成基于界面边界的尺寸或纵横比启用或禁用开发界面902的某些功能,并根据需要重新组织开发界面902的元素以根据可用的空间填充可用的水平和垂直视口空间。

在示例实施方式中,开发界面902可以支持对应于画面或窗口宽度的相应范围的多个布局模式。图31a至图31c是开发界面902的示例实例,其根据可用画面宽度而对应于相应不同的布局模式。

图31a描绘了适于没有宽度限制的场景的第一布局模式。如上所描述的,该第一布局模式为所有主要界面元素提供了完全支持。

图31b描绘了当可用的画面宽度低于第一阈值宽度时可以由用户接口部件204启用的第二布局模式。根据该第二布局模式,移除了全局面板部分(例如,属性面板936),并禁止了固定面板(即,所有面板都被渲染为覆盖面板)。禁用左面板支持和底部面板支持,并且仅允许渲染全局右覆盖面板。在给定时间仅允许渲染一个面板。通常渲染在画布的工具栏上的内容面板可见性图标被移动到全局面板控制栏920(例如,层可见性图标3102)。禁用对多个堆叠画布的支持。包括其相关联的资源管理器视图控制栏908的资源管理器面板910从界面902的左侧移动到右侧与全局面板控制栏920相邻。

图31c描绘了当可用画面宽度低于比第一阈值宽度小的第二阈值宽度时可以由用户接口部件204启用的第三布局模式。该第三布局模式保留了第二布局模式的所有限制和约束。此外,标题元素折叠以减少同时可见的选项的数量。这包括将菜单栏904上的可见选项折叠为单个可选菜单图标3104,可以选择该菜单图标3104以将菜单栏选项渲染为下拉列表。类似地,工具栏908上的选项被折叠成单个工具图标3108,可以选择单个工具图标3108以在另一下拉列表中渲染工具栏选项。搜索栏934也减小到可选搜索图标3110。作为这些合并的结果,可见选项的总数减少了,从而使有限的开发空间变得整齐。

本文所描述的工业ide开发界面902提供了高度适应性的工作空间布局,该工作空间布局根据用户当前的开发任务或焦点来智能地过滤给定时间用户可用的信息和编辑工具,这使得能够轻松地定位与当前开发背景有关的期望信息和编辑工具。另外,界面902为用户提供了对工作空间布局的定制的大量控制,同时保持了可以容易地导航的干净且整齐的开发空间。ide系统902及其相关联的开发界面902适于在同一多内容工作空间内开发工业自动化系统的多个方面,例如控制编程、设备配置、警报配置、可视化画面开发,并且可以用于开发范围从单一控制器系统到涵盖跨不同工业设施的许多控制器的系统的项目。

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

图32a示出了用于定制工业ide系统的开发界面上的面板可见性和布局的示例性方法3200a的第一部分。首先,在3202处,渲染包括工作空间画布和固定至ide开发界面的边缘的全局面板控制栏的工业ide界面。全局面板控制栏可以包括控制由工业ide系统支持的相应全局面板的可见性的一组可见性图标。在一些实施方式中,开发界面可以包括分离的全局面板显示区域——例如,左全局面板区域、右全局面板区域和底部全局面板区域,并且可以根据向相应面板指定的面板显示区域在全局面板控制栏上组织可见性图标。

在3204处,确定是否已经从全局面板控制栏的左面板区域中选择了面板可见性图标。左面板区域是全局面板控制栏的以下部分:在该部分上渲染与已指定到开发界面的左全局面板区域的全局面板的子集相对应的可见性图标。如果已经从全局面板控制栏的左面板区域中选择了可见性图标(步骤3204处为是),则方法进行到步骤3206,在步骤3206处,确定与在步骤3204处选择的可见性图标相对应的面板是否已被设置为固定面板。例如,可能已经由用户经由与和面板相关联的属性菜单的适当交互而将面板预先设置为固定。如果面板已被设置为固定(步骤3206处为是),则方法进行到步骤3208,在该步骤3208处,将与可见性图标相对应的面板作为固定面板渲染在开发界面的左全局面板区域中。可替选地,如果面板尚未被设置为固定(步骤3206处为否),则方法进行到步骤3210,在步骤3210处,将该面板作为覆盖面板渲染在左全局面板区域中。

一旦渲染了面板,或者如果尚未从全局面板控制栏的左面板区域中选择面板可见性图标(步骤3204处为否),则该方法进行到图32b所示的第二部分3200b。在3212处,确定是否从全局面板控制栏的底部面板区域中选择了面板可见性图标。底部面板区域是全局面板控制栏的以下部分:在该部分上渲染与已指定到开发界面的底部全局面板区域的全局面板的子集相对应的可见性图标。如果已经从底部面板区域中选择了可见性图标(步骤3212处为是),则方法进行到步骤3214,在步骤3214处,确定与在步骤3212处选择的可见性图标相对应的面板是否已被设置为固定面板。如果面板已经被设置为固定(步骤3214处为是),则方法进行到步骤3216,在步骤3216处,将与所选择的可见性图标相对应的面板作为固定面板渲染在开发界面的底部全局面板区域中。可替选地,如果面板尚未被设置为固定(步骤3214处为否),则方法进行到步骤3218,在步骤3218处,将该面板作为覆盖面板渲染在底部全局面板区域中。

一旦渲染了面板,或者如果尚未从全局面板控制栏的底部面板区域中选择面板可见性图标(步骤3212处为否),则该方法进行到图32c所示的第三部分3200c。在3220处,确定是否已经从全局面板控制栏的右面板区域中选择了面板可见性图标。右面板区域是全局面板控制栏的以下部分:在该部分上渲染与已指定到开发界面的右全局面板区域的全局面板的子集相对应的可见性图标。如果已经从右面板区域中选择了可见性图标(步骤3220处为是),则方法进行到步骤3222,在步骤3222处,确定与在步骤3220处选择的可见性图标相对应的面板是否已被设置为固定面板。如果面板已经被设置为固定(步骤3222处为是),则方法进行到步骤3224,在步骤3224处,将与所选择的可见性图标相对应的面板作为固定面板渲染在开发界面的右全局面板区域中。可替选地,如果面板尚未被设置为固定(步骤3222处为否),则方法进行到步骤3226,在步骤3226处,将该面板作为覆盖面板渲染在右全局面板区域中。

一旦渲染了面板,或者如果尚未从全局面板控制栏的右面板区域中选择面板可见性图标(步骤3222处为否),则该方法返回到步骤3202并重复该方法。

图33a示出了用于经由与工业ide开发界面的交互来浏览和渲染工业自动化项目的方面的示例性方法3300a的第一部分。首先,在3302处,在开发界面上渲染资源管理器面板,其中该资源管理器面板被配置成便于浏览和选择要渲染在开发界面上的工业自动化项目的各个方面(例如,控制编程或例程、hmi开发画面、控制器标签数据库、工业设备参数配置、警报配置等)。资源管理器面板可以包括表示由资源管理器面板支持的相应查看类别的可选图标的集合,其中每个观看类别限定了要在资源管理器面板中呈现的选项的内容和格式。在一些实施方式中,可以使用以上结合图32a至图32c描述的方法来选择性地渲染或隐藏资源管理器面板。

在3304处,接收从支持的集合中对表示查看类别之一的图标的选择。可以以这种方式选择的示例查看类别可以包括但不限于列出自动化系统项目的部件(例如,控制例程、标签、可视化应用或画面、警报等)的系统视图,列出构成自动化系统项目的应用(例如,控制编程应用、hmi应用等)的应用视图,列出构成自动化系统项目的设备的设备视图,列出构成自动化系统项目的软件对象(例如,自动化对象、附加指令、用户定义的数据类型、设备配置等)的库视图,以及列出已安装在工业ide系统上的软件附加件或扩展的扩展视图。与这些视图相关联的内容的一些或全部可以以分级格式渲染,以使得用户能够更快速且轻松地浏览和定位期望的选择。

在3306处,响应于在步骤3304处对图标的选择,在资源管理器面板上渲染两个或更多个选项卡,两个或更多个选项卡表示与所选择的图标相对应的查看类别内的内容的相应两种或更多种呈现格式。例如,选择应用视图图标可以使资源管理器面板渲染表示可以浏览的相应不同类型的应用(例如,控制器应用、hmi应用等)的两个或更多个选项卡。在另一示例中,选择库视图可以使资源管理器面板渲染表示可以浏览的软件对象的相应源的两个或更多个选项卡。

在3308处,在资源管理器面板的内容窗口上渲染可选图标,其中,图标对应于查看类别,并且第一呈现格式对应于在步骤3306处渲染的两个或更多个选项卡中的第一选项卡。可选图标——其可能是图形的、基于文本的或两者的组合——表示自动化系统项目的可以被浏览并选择用于在可能是工作空间或画布的开发界面中进行呈现的各个方面。

方法继续进行图33b所示的第二部分3300b。在3310处,确定是否已经选择了在步骤3306处渲染的两个或更多个选项卡中的第二选项卡。如果已经选择了第二选项卡(步骤3310处为是),则方法进行到步骤3312,在步骤3312处,将可选图标——其可以包括在步骤3308处表示的可选图标中的一些或全部或者不同的图标的集合——以与第二选项卡相对应的第二呈现格式渲染在资源管理器面板的内容窗口中。

如果未选择第二选项卡(在步骤3310中为否),或者在步骤3312处以第二格式渲染图标之后,则方法进行到步骤3314,在步骤3314处,确定是否从资源管理器面板的内容窗口中选择了图标。如果已经选择了图标(步骤3314处为是),则方法进行到步骤3316,在步骤3316处,渲染与该图标相对应的自动化系统项目的方面。该方面可以是例如梯形逻辑例程、结构化文本程序、功能框图、hmi开发画面、警报配置画面、设备参数配置画面、工程图或示意图或其他这样的方面。

图34a示出了用于操纵工业ide开发界面内的工作空间画布的示例性方法3400a的第一部分。首先,在3402处,在工业ide开发界面的相应两个选项卡式画布中渲染自动化系统项目的两个不同方面。首先渲染两个选项卡式画布,使得两个画布中的第一画布覆盖在两个画布中的第二画布上,以便在给定时间仅一个画布的内容可见,并且可以通过选择适当的选项卡来选择可见内容。可以在这些选项卡式画布中渲染的项目方面可以包括但不限于控制编程、标签数据库、设备配置、hmi开发画面、警报配置或其他这样的内容。

在3404处,确定是否已经接收到将画布进行水平堆叠的命令。如果接收到这样的命令(步骤3404处为是),则方法进行到步骤3406,在步骤3406处,渲染两个画布,使得同时显示两个画布的内容并且水平布置画布。可替选地,如果未接收到将画布进行水平堆叠的命令(步骤3404处为否),则该方法进行到步骤3408,在步骤3408处,确定是否已接收到将画布垂直堆叠的命令。如果接收到这样的命令(在步骤3408处为是),则该方法进行到步骤3410,在步骤3410处,渲染两个画布,使得同时显示两个画布的内容并且水平布置画布。

然后方法继续进行图34b所示的第二部分3400b。在3412处,确定是否已经接收到跨两个显示设备分布选项卡式画布的命令。在界面显示跨两个显示设备扩展以扩展可用工作空间的实现方式中,可以接收此命令。如果接收到分布选项卡式画布的命令(步骤3412处为是),则该方法进行到步骤3414,在步骤3414处,在第一显示设备上的开发界面的第一实例上渲染第一画布,并在第二显示设备上的开发界面的第二实例上渲染第二画布。当以这种方式分布画布时,在步骤3416处确定是否接收到将选项卡式画布合并的命令。如果接收到这样的命令(步骤3416处为是),则该方法进行到步骤3418,在步骤3418处,将两个画布合并到两个实例中的从其接收到合并命令的开发界面的一个实例上。然后,方法返回至步骤3402。

如果在步骤3412处未接收到分布选项卡式画布的命令(步骤3412处为否),也就是说,画布仍被合并在界面显示的单个实例上并且被水平或垂直堆叠,则方法进行到图34c所示的第三部分3400c。在3420处,确定是否接收到覆盖选项卡式画布的命令。如果未接收到这样的命令(步骤3420处为否),则方法返回至步骤3404。可替选地,如果接收到覆盖画布的命令(步骤3420处为是),则该方法返回至步骤3402,在步骤3402处,画布再次渲染为覆盖。

在一些实施方式中,图34a至图34c的画布操纵方法可以与以上结合图32a至图32c和图33a至图33b描述的方法中的一个或两个相结合。

图35a示出了用于基于用户正在执行的当前开发任务通过工业ide开发界面自动管理可用项目编辑工具的集合的示例性方法3500a的第一部分。首先,在3502处,在包括一个或更多个工作空间画布的工业ide开发界面上渲染全局面板控制栏。全局面板控制栏可以固定至开发界面的边缘,并且可以包括第一组可见性图标,第一组可见性图标对应于由适用于工业ide的所有设计背景的工业ide支持的第一组全局面板。

在3504处,确定经由一个或更多个工作空间画布正在执行的当前自动化项目开发任务。可以例如基于当前在开发界面内聚焦的工作空间画布的内容来确定任务。该任务可以是例如梯形逻辑控制编程、结构化文本控制编程、功能框图控制编程、hmi画面开发、设备配置、控制器标签编辑、警报配置或其他这样的任务。

在3506处,在开发界面上渲染第二组可见性图标。第二组可见性图标对应于由工业ide支持的一个或更多个内容面板,这些内容面板不全局适用但适用于在步骤3504处确定的当前开发任务。

方法继续进行图35b所示的第二部分3500b。在3508处,接收从第一组可见性图标或第二组可见性图标中对可见性图标的选择。在3510处,确定与在步骤3508处选择的图标相对应的面板是否被设置为固定面板。如果所选择的面板被设置为固定(步骤3510处为是),则方法进行到步骤3512,在步骤3512处,将与所选择的图标相对应的面板作为固定面板渲染在开发界面上。可替选地,如果所选择的面板未被设置为固定(步骤3510处为否),则方法进行到步骤3514,在步骤3514处,将与所选择的图标相对应的面板作为覆盖面板渲染在开发界面上。

在一些实施方式中,结合图35a至图35b描述的方法可以与本文描述的一种或更多种其他方法结合。

本文描述的实施方式、系统和部件以及在其中可以执行本说明书中阐述的各个方面的控制系统和自动化环境可以包括计算机或网络部件,例如能够跨网络进行交互的服务器、客户端、可编程逻辑控制器(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)设备、服务器、客户端、计算机、配置工具、监测工具和/或其他设备。

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

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

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

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

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

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

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

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

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

计算机3602还包括内部硬盘驱动器(hdd)3614(例如,eide、sata)、一个或更多个外部存储设备3616(例如,磁盘驱动器(fdd)3616、存储棒或闪存驱动器读取器、存储卡读取器等)和光盘驱动器3620(例如,其可以从cd-rom盘、dvd、bd等进行读写)。虽然内部hdd3614被示为位于计算机3602内,但是内部hdd3614也可以被配置成在合适的机箱(未示出)中供外部使用。另外,虽然在环境3600中未示出,但是除了hdd3614以外可以使用固态驱动器(ssd)或者使用固态驱动器(ssd)来代替hdd3614。hdd3614、外部存储设备3616和光盘驱动器3620可以分别通过hdd接口3624、外部存储接口3626和光盘驱动器接口3628连接至系统总线3608。用于外部驱动器实现方式的接口3624可以包括通用串行总线(usb)和电气与电子工程师协会(ieee)1394接口技术中的至少一者或两者。其他外部驱动连接技术在本文描述的实施方式的构思之内。

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

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

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

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

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

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

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

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

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

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

计算机3602可以进行操作来以无线通信方式与可操作地布置的任何无线设备或实体进行通信,例如打印机、扫描仪、台式计算机和/或便携式计算机、便携式数据助理装置、通信卫星、与无线可检测标签关联的任何装备或位置(例如信息亭、报摊、商店货架等)以及电话。这可以包括无线保真(wi-fi)和无线技术。因此,通信可以是如常规网络情况下的预定义结构或仅是至少两个设备之间的自组织通信。

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

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

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

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

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

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

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