CN115840422A - 工业自动化控制器项目在线/离线状态分离 - Google Patents

工业自动化控制器项目在线/离线状态分离 Download PDF

Info

Publication number
CN115840422A
CN115840422A CN202211137145.7A CN202211137145A CN115840422A CN 115840422 A CN115840422 A CN 115840422A CN 202211137145 A CN202211137145 A CN 202211137145A CN 115840422 A CN115840422 A CN 115840422A
Authority
CN
China
Prior art keywords
industrial
panel
control program
online
version
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211137145.7A
Other languages
English (en)
Inventor
安德鲁·R·斯顿普
安东尼·卡拉拉
亚当·格雷戈里
洛伦佐·马耶夫斯基
埃什沃·斯里尼瓦桑
斯尔詹·约西波维奇
奥马尔·A·巴哈德尔
道格拉斯·B·祖梅劳尔
克里斯托弗·爱德华·施塔内克
迈克尔·J·科恩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Rockwell Automation Technologies Inc
Original Assignee
Rockwell Automation Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Rockwell Automation Technologies Inc filed Critical Rockwell Automation Technologies Inc
Publication of CN115840422A publication Critical patent/CN115840422A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/41835Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by programme execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0483Interaction with page-structured environments, e.g. book metaphor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32161Object oriented control, programming

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Quality & Reliability (AREA)
  • Automation & Control Theory (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及工业自动化控制器项目在线/离线状态分离。工业集成开发环境(IDE)包括开发界面,该开发界面向用户提供对在给定时间呈现的编辑工具、工作空间画布和项目信息的大量控制。工业IDE系统还包括各种图形特征,这些图形特征帮助用户容易地辨别使用IDE系统开发的工业控制程序的各种在线状态和离线状态。由IDE系统支持的协作工具便于多个开发者对控制程序进行交流和协调的编辑,并且IDE系统使用直观的图形指示符来传达所得到的这些程序的在线状态和离线状态。

Description

工业自动化控制器项目在线/离线状态分离
技术领域
本文中公开的主题总体上涉及工业自动化系统,并且例如涉及工业编 程开发平台。
背景技术
使用单独的配置工具对工业自动化系统的不同方面进行编程和配置 的需要导致了碎片化的设计方法,由此在不同的开发环境上对自动化系统 的不同但相关或交叠的方面进行单独地设计、配置和编程。例如,运动控 制系统可能需要使用控制逻辑编程平台对工业控制器进行编程并且对控 制回路进行调节,使用另一配置平台对马达驱动器进行配置,以及使用可 视化开发平台对相关联的HMI进行编程。有关的外围系统——例如视觉 系统、安全系统等——可能也需要使用单独的编程或开发应用进行配置。
这种分离的开发方法也可能需要相当多的测试和调试努力以确保单 独配置的系统方面的适当集成。在这点上,由于未能适当地协调不同的编 程努力,因此不同的系统方面之间的预期数据对接或协调动作可能需要大 量调试。
工业开发平台在提供给用户以促进编程和配置的开发界面方面也受 到限制。这些界面通常提供要求用户使用相对固定的一组开发界面来开发 控制代码、可视化或其他控制系统方面的固定的用户体验。在许多开发场 景中,开发平台的界面上显示的编辑选项——例如功能按钮或其他可选编 辑控件、配置字段等——的数目超过了开发者针对当前项目开发任务所需 的数目,从而导致不必要的混乱的开发工作空间并使得难以定位期望的编 辑选项。
发明内容
下面呈现了简化的概述,以便提供对本文中描述的一些方面的基本理 解。该概述不是广泛的综述,也不意在标识关键/重要元素或者描绘本文 中描述的各个方面的范围。其唯一目的是以简化的形式呈现一些构思,作 为稍后呈现的更详细描述的序言。
在一个或更多个实施方式中,提供了一种用于开发工业应用的系统, 该系统包括:用户接口组件,其被配置成呈现工业集成开发环境(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开发界面,第二阈值宽度小于第一阈值宽度。
图32是示出驻留在云平台上并且作为可由经授权的远程客户端设备 访问的基于云的IDE服务的集合执行的IDE系统的实施方式的图。
图33是包括用于向开发者通知控制程序的在线版本与该控制程序的 本地版本之间存在的差异的可视化工具的开发界面的视图。
图34a至图34c是与选择的系统视图独立的资源管理器面板的视图。
图35a是用于在工业IDE系统上呈现工业控制程序的在线状态和离线 状态的图形指示的示例方法的第一部分的流程图。
图35b是用于在工业IDE系统上呈现工业控制程序的在线状态和离线 状态的图形指示的示例方法的第二部分的流程图。
图35c是用于在工业IDE系统上呈现工业控制程序的在线状态和离线 状态的图形指示的示例方法的第三部分的流程图。
图36是示例计算环境。
图37是示例联网环境。
具体实施方式
现在参照附图描述本公开内容,在附图中相似的附图标记始终用于指 代相似的要素。在以下描述中,出于说明的目的,阐述了许多具体细节以 提供对本公开内容的透彻理解。然而显然,可以在没有这些具体细节的情 况下实践本公开内容。在其他实例中,以框图形式示出了公知的结构和设 备以便于对其进行描述。
如本申请中所使用的,术语“组件”、“系统”、“平台”、“层”、“控制 器”、“终端”、“站”、“节点”、“接口”旨在指代计算机相关的实体或者与 具有一个或更多个特定功能的操作装置相关的实体或者作为该操作装置 的一部分的实体,其中这样的实体可以是硬件、硬件与软件的组合、软件 或者执行中的软件。例如,组件可以是但不限于是在处理器上运行的进程、 处理器、硬盘驱动器、包括固定的(例如,用螺钉或螺栓固定的)或可移 除的固定固态存储驱动器的(光学存储介质或磁存储介质的)多个存储驱 动器;对象;可执行文件;执行的线程;计算机可执行程序和/或计算机。 作为说明,服务器和在服务器上运行的应用都可以是组件。一个或更多个 组件可以驻留在执行的进程和/或线程内,并且组件可以位于一个计算机 上和/或分布在两个或更多个计算机之间。此外,本文中描述的组件可以 从存储有各种数据结构的各种计算机可读存储介质执行。这些组件可以例 如根据具有一个或更多个数据分组的信号(例如,来自与本地系统、分布 式系统中的另一组件进行交互和/或通过诸如因特网的网络经由信号与其 他系统进行交互的一个组件的数据)经由本地和/或远程进程进行通信。 作为另一示例,组件可以是具有由被电气或电子电路系统操作的机械部件 提供的特定功能的装置,该电气或电子电路系统通过由处理器执行的软件 或固件应用来操作,其中,处理器可以在该装置的内部或外部并且执行软 件或固件应用的至少一部分。作为另一示例,组件可以是通过电子组件而 不是机械部件来提供特定功能的装置,电子组件可以在其中包括处理器以 执行至少部分地提供电子组件的功能的软件或固件。作为又一示例,接口 可以包括输入/输出(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的指定数据标签或存储器地 址,从而提供供操作者向受控系统发出命令(例如,循环启动命令、设备 致动命令等)、修改设定点值等的手段。HMI114可以生成一个或更多个 显示屏幕,操作者通过所述一个或更多个显示屏幕与工业控制器118进行 交互,从而与受控过程和/或系统进行交互。示例显示屏幕可以使用显示 计量值或计算值的过程的图形表示来可视化工业系统或其相关联的设备 的当前状态,采用基于状态的颜色或位置动画,呈现警报通知,或者采用 其他这样的技术以向操作者展现相关数据。以这种方式展现的数据由HMI 114从工业控制器118读取,并且根据由HMI开发者选择的显示格式在显 示屏幕中的一个或更多个上展现所述数据。HMI可以包括具有用户安装的或预先安装的操作系统以及用户安装的或预先安装的图形应用软件的固 定位置设备或移动设备。
一些工业环境还可以包括与受控工业系统的特定方面有关的其他系 统或设备。这些系统或设备可以包括例如聚合并存储从工业控制器118或 其他数据源收集的生产信息的数据历史记录装置(data historian)110、包 含构成受控工业系统的各种工业设备的电子文档的设备文档存储库、库存 跟踪系统、工作订单管理系统、机器或过程制图及文档的储存库、供应商 产品文档存储库、供应商知识库、内部知识库、工作调度应用或者其他这样的系统,它们中的一些或全部可以驻留在工业环境的办公网络108上。
较高级别系统126可以执行与工厂现场的工业自动化系统的控制不 太直接有关并且代替地针对长期规划、高级监督控制、分析、报告的功能 或其他这样的高级功能。这些系统126可以驻留在相对于工厂设施的外部 位置处的办公网络108上,或者驻留在可以访问办公网络和/或工厂网络 的云平台上。较高级别系统126可以包括但不限于云存储和分析系统、大 数据分析系统、制造执行系统、数据湖(data lake)、报告系统等。在一些 场景中,在企业的这些较高级别处运行的应用可以被配置成分析控制系统 操作数据,并且该分析的结果可以被反馈至控制系统处的操作者或者直接 反馈至控制系统中的控制器118或设备120。
必须使用特定于每个设备的相应配置应用来编程或配置构成工业环 境的各种控制、监测和分析设备。例如,通常使用(例如,在客户端设备 124上执行的)控制编程开发应用例如梯形逻辑编辑器来配置和编程工业 控制器118。使用这样的开发平台,设计者可以编写用于执行期望的工业 系列或过程的控制程序(例如,梯形逻辑、结构化文本、功能框图等)并 且将得到的程序文件下载至控制器118。单独地,开发者使用(例如,在 客户端设备122上执行的)HMI开发平台针对HMI 114设计可视化屏幕 和相关联的导航结构并且将得到的可视化文件下载至HMI 114。一些工业 设备120——例如马达驱动器、遥测设备、安全输入设备等——也可能需 要使用特定于正被配置的设备的(例如,在客户端设备128上执行的)单 独的设备配置工具来进行配置。这样的设备配置工具可以用于设置设备参 数或操作模式(例如,高/低限制、输出信号格式、比例因子、能耗模式 等)。
使用单独的配置工具对工业自动化系统的不同方面进行编程和配置 的需要导致了碎片化的设计方法,由此在不同的开发环境上对自动化系统 的不同但相关或交叠的方面进行单独地设计、配置和编程。例如,运动控 制系统可能需要使用控制逻辑编程平台对工业控制器进行编程并且对控 制回路进行调节,使用另一配置平台对马达驱动器进行配置,以及使用可 视化开发平台对相关联的HMI进行编程。有关的外围系统——例如视觉 系统、安全系统等——可能也需要使用单独的编程或开发应用进行配置。
这种分离的开发方法也可能需要相当多的测试和调试努力以确保单 独配置的系统方面的适当集成。在这点上,由于未能适当地协调不同的编 程努力,因此不同的系统方面之间的预期数据对接或协调动作可能需要大 量调试。
工业开发平台在提供给用户以促进编程和配置的开发界面方面也受 到限制。这些界面通常提供要求用户使用相对固定的一组开发界面来开发 控制代码、可视化或其他控制系统方面的固定的用户体验。在许多开发场 景中,开发平台的界面上显示的编辑选项——例如功能按钮或其他可选编 辑控件、配置字段等——的数目超过了开发者针对当前项目开发任务所需 的数目,从而导致不必要的混乱的开发工作空间并使得难以定位期望的编 辑选项。
为了解决这些问题或其他问题中的至少一些,本文中描述的一个或更 多个实施方式提供了用于使用通用设计环境和数据模型来设计、编程和配 置工业自动化系统的多个方面的集成开发环境(IDE)。工业IDE的实施 方式可以用于以通用方式配置和管理自动化系统设备,从而促进控制系统 的控制、可视化和其他方面的集成多学科编程。
在一些实施方式中,由IDE系统呈现的开发界面可以向用户提供对在 给定时间呈现的编辑工具、工作空间画布和项目信息的大量控制。IDE系 统还基于对用户正在执行的当前项目开发任务的确定来自动过滤可供选 择的工具、面板和信息,使得与当前开发任务相关的编辑工具的聚焦子集 可供选择而其他工具则被隐藏。开发界面还允许用户从相关的、经过滤的 工具集合中选择性地呈现或隐藏所选择的工具或信息。这种方法可以减少或消除不必要的混乱,并且协助开发者快速且容易地定位并选择期望的编 辑功能。IDE的开发界面还可以符合工作空间画布和面板的结构化组织, 这促进直观的工作流。
图2是根据本公开内容的一个或更多个实施方式的示例集成开发环 境(IDE)系统202的框图。本公开内容中说明的系统、装置或过程的各 方面可以构成包含在机器内的机器可执行组件,例如包含在与一个或更多 个机器相关联的一个或更多个计算机可读介质(或媒介)中的机器可执行 组件。这样的组件在由一个或更多个机器例如计算机、计算设备、自动化 设备、虚拟机等执行时可以使机器执行所描述的操作。
IDE系统202可以包括:包括IDE编辑器224的用户接口组件204、 项目生成组件206、项目部署组件208、协作管理组件210、一个或更多 个处理器218以及存储器220。在各种实施方式中,用户接口组件204、 项目生成组件206、项目部署组件208、协作管理组件210、一个或更多 个处理器218以及存储器220中的一个或更多个可以彼此电耦接和/或通信地耦接以执行IDE系统202的功能中的一个或更多个。在一些实施方式 中,组件204、206、208和210可以包括存储在存储器220上并由处理器 218执行的软件指令。IDE系统202还可以与图2中未描绘的其他硬件组 件和/或软件组件进行交互。例如,处理器218可以与一个或更多个外部 用户接口设备例如键盘、鼠标、显示监视器、触摸屏或其他这样的接口设 备进行交互。
用户接口组件204可以被配置成接收用户输入并以任何合适的格式 (例如,视觉、音频、触觉等)将输出呈现给用户。在一些实施方式中, 用户接口组件204可以被配置成与在客户端设备(例如,膝上型计算机、 平板计算机、智能电话等)上执行的IDE客户端通信地交互,该客户端设 备(例如,经由硬连线连接或无线连接)通信地连接至IDE系统202。然后,用户接口组件204可以经由IDE客户端接收用户输入数据并呈现输出 数据。在其他实施方式中,用户接口组件204可以被配置成生成开发界面 屏幕(例如,程序开发屏幕)并且将该开发界面屏幕提供给客户端设备, 以及经由这些界面屏幕来交换数据。如将在本文中更详细地描述的,由用 户接口组件204呈现的开发界面支持许多用户体验特征,这简化了项目开 发工作流,减轻了与繁杂的开发工作空间相关联的压力,并且协助开发者 更快且更容易地定位期望的编辑功能。可以经由用户接口组件204的各种 实施方式接收的输入数据可以包括但不限于编程代码、工业设计说明或目 标、工程制图、AR/VR输入、DSL定义、视频或图像数据或者其他这样 的输入。由用户接口组件204的各种实施方式呈现的输出数据可以包括程 序代码、编程反馈(例如,错误和突出显示、编码建议等)、编程和可视 化开发屏幕等。
项目生成组件206可以被配置成基于经由用户接口组件204接收的设 计输入以及由IDE系统202维护的工业知识、预定义代码模块和可视化以 及自动化对象222来创建包括一个或更多个项目文件的系统项目。项目部 署组件208可以被配置成:将由项目生成组件206创建的系统项目委派给 适当的工业设备(例如,控制器、HMI终端、马达驱动器、AR/VR系统 等)以供执行。为此,项目部署组件208可以标识应向其发送系统项目的 相应部分以供执行的适当目标设备,将这些相应部分转换成目标设备可理 解的格式,并且将经转换的项目组件部署至其对应设备。协作管理组件 210可以被配置成以确保项目一致性和开发者之间的协调的方式来管理和 调节由多个开发者提交的设计输入。
一个或更多个处理器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是示出与构建、部署和执行系统项 目302有关的可以由IDE系统202利用的若干示例自动化对象属性的图。 自动化对象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、护栏(guardrail)模板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智能地关联。 在针对系统项目302生成代码或项目数据方面,IDE系统202可以根据需 要利用基于物理学的规则516以及预定义代码模块508和可视化510。
IDE系统202还可以确定预定义可视化内容是否可用于在制图中发现 的对象中的任何对象,并且基于这些预定义可视化来生成针对所发现的对 象的适当HMI屏幕或AR/VR内容。为此,IDE系统202可以存储可以由 项目生成组件206按需访问的特定于工业、特定于资产和/或特定于应用 的可视化510。可以根据工业或工业纵向市场(例如,汽车、食品和药品、 石油和天然气、药物等)、工业资产的类型(例如,机器或工业设备的类 型)、工业应用的类型(例如,批处理、流量控制、幅面张力控制(web tension control)、金属板冲压、水处理等)或其他这样的类别对这些可视化510 进行分类。预定义可视化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包括用于控制常见工业任务或应用(例如, 托盘包装、流量控制、幅面张力控制、拾取和放置应用、传送机控制等) 的标准化编码段。在一些实施方式中,可以根据工业纵向市场(例如,汽 车、食品和药品、石油和天然气、纺织品、船舶、药物等)、工业应用、 或代码模块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——并将这些文件部署至工厂 设施中的适当设备以促进自动化项目的实现。
图9是可以由工业IDE系统的用户接口组件204的一个或更多个实施 方式呈现的示例开发界面902。开发界面902以将以在本文中更详细描述 的方式被组织成面板和工作空间,并且支持自动化和手动的管理 (curation)特征,所述特征整理开发空间并使与当前开发任务相关的项 目编辑功能的子集成为焦点。这些特征可以通过过滤掉与当前开发任务无 关的可选选项来改善用户的开发工作流体验,从而允许更容易地定位相关 的编辑工具和信息。
开发界面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,资源管理器可见性图标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 的可选控件被呈现为可选文本而不是图标,其中复选标记(checkmark) 指示当前可见的面板。
在一些实施方式中,可以通过选择以下任一项来利用单个选择使已经 被设置为固定(将在下面讨论)的与全局面板区域(左、右或底部)相关 联的任何面板呈现为可见或不可见:全局面板控制栏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画面或应用、 面板(faceplate)、各种类型的设备视图(例如,控制器、驱动器、I/O模 块等)、工程制图或其他这样的内容类型。
通常,与左全局面板区域922、右全局面板区域928或底部全局面板 区域924相关联的任何面板可以被选择性地设置为固定面板或叠加面板。 图11a是开发界面902的右上角的视图,描绘了固定在右全局面板区域928 中的属性面板936。与属性面板936相对应的可见性图标1010a被突出显 示以指示属性面板936是可见的。可以通过选择合适的控件将任何面板选 择性地设置为固定或取消固定(即,叠加);例如从可以通过选择面板的 右上角的面板菜单图标1102来调用的下拉面板设置菜单中选择的控件。 在一些实施方式中,还可以通过从与全局面板控制栏920中的对应可见性 图标相关联的右击菜单中选择适当的控件来将面板选择性地呈现为固定 面板或叠加面板。将面板设置为固定模拟在可见时将面板固定至背景,而 将面板设置为叠加(取消固定)使该面板被呈现为任何固定面板或可能已 经在显示的该部分中被调用的其他界面内容(例如,画布内容)上的叠加。
当调用固定面板时,用户接口组件204减小画布区域930的宽度(或 在底部全局面板区域924中的固定面板的情况下,减小画布区域的高度) 以适应固定面板。这也导致画布区域930内的一个或更多个画布940被类 似地减小尺寸。这可以在图11a中看到,在图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使空白的面板放置区域1202被呈现在右全局面板区域928中。如图 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,该面板标题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,父节点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使控制器导航树2204呈现在资源管理器面 板内容区域1808中。控制器导航树2204包括表示如下项的节点:控制器 标签、控制器参数、控制编程(例如,梯形逻辑、结构化文本、功能框图 等)、处理程序例程(例如,故障处理程序、加电处理程序等)以及构成 自动化系统项目的工业控制器的其他这样的方面。根据与节点相关联的控 制器以控制器导航树2204来组织这些节点。对控制器应用节点的选择可 以在属性面板936中呈现所选择的控制器应用的属性信息(例如,通过单 击交互),或者可以在画布940中呈现所选择的应用的代码(例如,经由 双击交互)。图23是响应于从控制器导航树2204或系统导航树1902选择 结构化文本应用节点而在其上呈现示例结构化文本程序的一部分的画布 940的视图。图24是响应于从控制器导航树2204或系统导航树1902选 择功能框图应用节点而在其上呈现示例功能框图程序的一部分的画布940 的视图。
类似地,选择HMI选项卡1804b使HMI导航树2206呈现在资源管 理器面板内容区域1808中。该树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,这些选项卡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的示例实例, 开发界面902根据可用画面宽度来协调相应不同的布局模式。
图31a描绘了适于没有宽度限制的场景的第一布局模式。如上所描述 的,该第一布局模式为所有主要界面元素提供了完全支持。
图31b描绘了当可用的画面宽度低于第一阈值宽度时可以由用户接 口组件204启用的第二布局模式。根据该第二布局模式,全局面板部分(例 如,属性面板936)被移除,并且固定面板被禁止(即,所有面板都被呈 现为叠加面板)。左面板支持和底部面板支持被禁用,并且仅允许呈现全 局右叠加面板。在给定时间仅允许呈现一个面板。通常被呈现在画布的工 具栏上的内容面板可见性图标被移动到全局面板控制栏920(例如,层可 见性图标3102)。对多个堆叠画布的支持被禁用。包括其相关联的资源管 理器视图控制栏908的资源管理器面板910从界面902的左侧被移动到右 侧与全局面板控制栏920相邻。
图31c描绘了当可用画面宽度低于第二阈值宽度时可以由用户接口组 件204启用的第三布局模式,第二阈值宽度小于第一阈值宽度。该第三布 局模式保持了第二布局模式的所有限制和约束。另外,标题元素被折叠以 减少同时可见的选项的数目。这包括将菜单栏904上的可见选项折叠为单 个可选菜单图标3104,可以选择该菜单图标3104以将菜单栏选项呈现为 下拉列表。类似地,工具栏906上的选项被折叠成单个工具图标3108, 可以选择单个工具图标3108以在另一下拉列表中呈现工具栏选项。搜索 栏934也被减小到可选搜索图标3110。作为这些合并的结果,可见选项的 总数减少了,从而整理了有限的开发空间。
如上面结合图7和图8所讨论的,已经使用IDE系统202开发的系统 项目302可以被部署到一个或更多个目标控制设备以供执行。在工业控制 代码(例如控制程序文件702)的情况下——这涉及将经编译的控制程序 下载到工业控制器118,然后工业控制器118在监测和控制其相关联的工 业资产方面执行程序。在控制程序已经被部署到控制器118之后,一个或 更多个控制开发者可以随后提交对程序的在线版本或程序的离线副本的 编辑,所述程序的离线副本本地存储在开发者的客户端设备上或作为存储 在IDE系统202上的离线版本。这可以产生控制程序的在线版本与离线版 本之间的差异。在允许多个开发者访问和编辑控制程序的协作开发环境 中,这也可能引起控制程序的若干版本,包括当前在工业控制器118上执 行的在线版本以及程序的由于开发者已经将编辑提交到他们的程序的本 地副本但尚未被下载到控制器118而可能与在线版本不同的任何离线版 本。控制程序的离线版本与在线版本之间的差异也可能由以下造成:由第 一开发者提交的直接对在线程序的编辑尚未同步到属于第二开发者的本 地离线版本。为了协助协调这些协作编辑,IDE系统202的一些实施方式 可以包括:管理控制程序的这些不同版本之间的差异的工具、以图形方式 传达控制程序的各种在线状态和离线状态的工具、以及呈现向程序开发者 通知由其他开发者提交的待决编辑的通知的工具。
图32是示出IDE系统202的实施方式的图,IDE系统202驻留在云 平台806上并且作为可由经授权的远程客户端设备504访问的基于云的 IDE服务802的集合来执行。该架构允许多个用户访问和利用工业IDE服 务802,以用于要被下载到工厂设施处的工业控制器118并在该工业控制 器118上执行的工业控制程序的开发。
所示示例假设控制程序的在线版本(在线程序3202)已经被部署到 工业控制器118并且当前正被执行以促进对应自动化系统的监测和控制。 随后,多个不同的远程客户端设备504可以利用集中式工业IDE服务802 来使用开发界面902单独地提交针对控制程序的其他设计输入512。这些 编辑512可以是针对存储在相应客户端设备504上的程序的离线版本(离 线程序3204)的离线编辑或者提交的直接对在线程序3202的在线编辑。 使用该架构,多个远程开发者可以将设计输入512提交给公共工业自动化 系统项目302,从而促进多个远程设计者的并行开发。工业IDE系统202 可以支持协作设计工具,所述协作设计工具管理和调节这些不同的设计输 入512的集合以确保控制程序的一致性和优化。
在图32中描绘的示例中,上述开发界面以安全方式被递送给客户端 设备504,并且每个客户端设备504处的开发者可以提交针对在线程序 3202或本地存储在客户端设备504上或云平台806上的程序的离线版本 3204的设计输入512(图32示出了每个用户的程序的离线版本3204被存 储在云平台806上的场景)。如上面所讨论的,当每个用户通过他们的程 序编辑工作流继续进行时,IDE服务802将生成单独的设计反馈518并且 将该设计反馈518呈现给每个用户的客户端设备504,所述程序编辑工作 流可能有助于开发用户的工业控制项目。
图33描绘了开发界面902的实现,该开发界面902包括用于向开发 者通知控制程序的在线版本3202与开发者的控制程序的本地离线版本 3204之间存在的差异的可视化工具。类似于上面讨论的开发界面902的 版本,该版本包括工作空间画布940,基于当前选择了选项卡932中的哪 一个来确定工作空间画布940的内容。开发界面902还包括:在界面902的右侧边缘上的全局面板控制栏920、沿着界面902的顶部边缘的菜单栏 904和菜单栏904下方的工具栏906。
资源管理器面板910驻留在界面902的左侧,其中资源管理器视图控 制栏908被固定至资源管理器面板910的左侧边缘。资源管理器面板910 当前正在显示系统导航树1902,系统导航树1902包括分层组织的可选节 点。对导航树1902的节点之一的选择使与所选择的节点相对应的内容被 呈现在当前已经聚焦的画布940中,或者使适当的面板被呈现在开发界面 902上以用于显示内容(取决于所选择的节点和对应的内容)。
图34a至图34c是孤立的资源管理器面板910的视图,其中当前选择 了系统视图。如这些视图中描绘的,导航树1902的节点可以选择性地被 扩展或被折叠,使得父节点下方的子节点可以选择性地被显示或被隐藏。 图34a描绘了导航树1902被完全折叠成单个项目节点(AO1)的视图。 如图34b中所描绘的,对该父节点的选择使表示与项目相关联的控制程序 的节点——程序1、程序2和程序3——被显示在导航树1902中。对这些 程序节点中的任何一个的选择在所选择的节点下方展现表示构成所选择 的程序的控制例程的节点(例如,RLL_01、RLL_02等)、用于调用程序 的标签数据库和配置参数的节点(例如,标签/参数)、以及表示所选择的 程序的方面(例如,可视化、警报配置、趋势、安全性设置、测试结果或 其他这样的项目方面)的任何其他节点。
资源管理器面板910还可以在导航树1902的相应节点旁边呈现颜色 编码的指示符栏3206。在所示示例中,指示符栏3206包括每个节点的左 边的竖直指示符。导航树1902的节点旁边的指示符栏3206的颜色指示: 由该节点表示的程序的版本当前是否被安装在用户经由IDE系统102连接 到的工业控制器118上,或者替选地,程序是否仅作为尚未被下载到控制 器118的离线程序而存在。
例如,如图34a中所示,项目节点AO1旁边的指示符栏3206a是指 示与该项目相关联的程序中的至少一个作为在线程序3202被安装在工业 控制器118上并在工业控制器118上运行的颜色的,例如绿色的(请注意, 绿色指示符栏3206在附图中被描绘为黑色)。如图34b中所示,对显示程 序节点的项目节点进行扩展会展现具有绿色指示符栏3206b和3206d的两 个程序——程序1和程序3。与另一程序——程序2——相关联的指示符 栏3206c是指示该程序仅作为离线程序3204而存在并且尚未被下载到工 业控制器118的不同颜色的,例如灰色的。该离线程序3204可以是例如 如下程序,该程序离线地被编写以供随后下载到控制器并且该程序当前仅 作为本地存储在用户的客户端设备504上或存储在与系统项目相关联的 云平台806上的离线程序3204而存在。
如图34c中所示,对程序节点进行扩展会展现程序1的例程旁边的指 示符栏3206e,该指示符栏3206e是绿色的,指示这些例程当前在控制器 118中是活动的。相比之下,程序2的例程节点旁边的指示符栏3206f是 灰色的,指示这些例程仅作为离线例程而存在并且尚未被发送至控制器 118。
在本示例中,假设程序3的例程当前已经被安装在工业控制器118上 并在工业控制器118上执行,但是开发者已经提交了对该程序的名为 RLL_01的例程的离线编辑。因此,这导致程序的离线版本3204中存储的 例程RLL_01的版本与程序的在线版本3202中的RLL_01的版本之间的 差异。为了传达这种在线与离线的差异,表示RLL_01的节点被标记有点3306或其他符号。该点3306指示:例程RLL_01存在于在线程序3202 及其对应的离线版本(离线程序3204)二者中,但是由于尚未被下载到 控制器118的离线编辑的提交,离线版本和在线版本不匹配。也可以用第 三颜色或图案来区分与该不匹配的例程对应的节点旁边的指示符栏3206, 以进一步指示在线状态与离线状态之间的这种差异。
点3306还可以用于指示何时由于被提交到例程的在线版本但尚未同 步到用户的例程的离线版本的编辑而在离线例程与其对应的在线例程之 间存在差异。在一些实施方式中,点3306的颜色可以被设置成:传达在 线程序3202上是否存在可用于同步到程序的离线版本3204的编辑,或者 替选地,离线程序3204上是否存在可用于同步到在线程序3202的编辑。
导航树1902可以使用类似的标记来指示例程何时存在于用户连接到 的工业控制器118中但是不存在于用户的项目的离线副本中。例如,如果 第一开发者将新例程添加到控制器118,则导航树1902可以在第二开发者 的开发界面902上呈现表示该新例程的节点。用户接口组件204可以用指 示符栏3206来标记该节点,指示符栏3206具有将例程标识为存在于控制 器118中但在程序的第二开发者的本地版本3204中没有对应的离线版本 的例程的颜色。
使用该标记标准,导航树1902可以向开发者清楚地传达构成项目的 程序和例程的在线和离线差异状态。如下面将更详细描述的,IDE系统202 可以解决程序的在线版本与离线版本之间的差异。
返回至图33,用户接口组件204还可以在与相应工作空间画布940 相关联的选项卡932上呈现颜色编码的选项卡指示符3302。在图33中所 示的示例中,这些选项卡指示符3302包括位于每个选项卡932的左侧边 缘处的竖直框。这些选项卡指示符3302的颜色可以传达与导航树1902中 的竖直栏传达的信息相似的信息。例如,与仅离线存在但尚未被部署到控 制器118的例程对应的选项卡932可以被分配具有第一颜色的选项卡指示 符3302(如在选项卡指示符3302c的情况下),而与已经部署到控制器118 并且与其对应的离线版本匹配的例程对应的选项卡932可以被分配具有 第二颜色的选项卡指示符3302(如在选项卡指示符3302b的情况下)。
如上面所讨论的,当开发者提交对其在线版本在控制器118上运行的 控制例程的离线版本的编辑时,导航树将用与不匹配的例程对应的节点旁 边的点3306来指示在线版本与离线版本之间的不匹配。用户接口组件204 还将与该例程对应的选项卡指示符3302的颜色改变成指示例程的离线版 本与控制器118上其对应的在线版本不匹配的颜色(如在选项卡指示符 3302a的情况下)。当另一开发者提交对尚未同步到第一开发者的程序的离 线版本3204的程序的在线版本3202的编辑时,点3306也被呈现在开发 者的导航树1902上,并且也可以通过与不匹配的例程对应的选项卡指示 符3302的颜色来指示该状态。
如果由于由用户提交的离线编辑而导致程序的在线版本3202与其对 应的离线版本3204之间存在不匹配(如由编辑的例程旁边的点3306所指 示的),则用户可以通过选择工具栏906中的同步按钮3304来将待决的编 辑同步到程序的在线版本3202。在一些实施方式中,当待决的离线编辑 可用于同步到控制器118时,开发界面902可以在该同步按钮3304附近 呈现指示,或者以其他方式改变该按钮3304的可视化状态。
同步按钮3304也可以触发从在线程序3202到程序的离线版本3204 的更新的同步。例如,如果用户与当前在控制器118上执行的在线程序 3202远程对接并且协作管理组件210确定在线程序3202相对于用户的程 序的离线版本3204已经被修改,则用户接口组件204可以在用户的开发 界面902上呈现各种通知以传达在线程序3202包括尚未被同步到用户的 程序的本地版本3204的编辑。为了向用户通知这些改变,用户接口组件 204可以改变竖直指示符3206和/或选项卡指示符3302的颜色,该颜色对 应于已经在控制器118上修改的任何例程。用户接口组件204还可以在工 作空间画布940内指示程序的已经被修改的部分(例如,通过突出显示已 经被改变、添加或删除的梯形逻辑梯级;通过突出显示已经被修改的指令 参数等)。在一些实施方式中,开发界面902还可以显示关于编辑的信息, 包括向在线程序3202提交编辑的开发者的身份和由编辑的发起者提交的 说明改变的原因的任何开发注释。然后用户可以通过选择同步按钮3304 来选择将这些改变同步到他或她的程序的个人离线版本3404。
为了在多个开发者查看和编辑公共控制项目的协作开发环境内协调 对控制程序的在线版本和离线版本二者进行的编辑,IDE系统202可以包 括协作管理组件210,协作管理组件210跟踪这些协作编辑、向开发者通 知由其他用户提交的编辑、智能地解决系统项目的各种在线版本与离线版 本之间的差异、以及针对每个系统项目创建改变历史。在示例场景中,第 一开发者和第二开发者可以在客户端设备504a和504b上呈现的他们相应 的开发界面902上查看当前在控制器118上运行的活动程序3202。第一开 发者(在客户端设备504a处)可以使用开发界面902来编辑程序的在线 版本3202,同时第二开发者正在查看(在客户端设备504b上)已经由第 一开发者编辑的程序3202的部分。作为编辑的委托过程的一部分,开发 界面902可以向第一开发者提示输入关于编辑的评论。当编辑完成并且被 部署到控制器118时,协作管理组件310将评论和编辑的记录存储在项目 的编辑历史中,该编辑历史由IDE系统202在云存储上维护。编辑历史包 括提交给在线程序3202的每个编辑的日志条目,其中每个条目至少包括 程序的已经被编辑的部分的指示、编辑的性质、开发者提交的评论以及提 交编辑的开发者的身份。
当在第二开发者正在查看受编辑影响的在线程序3202的部分的同时 提交编辑时,第二开发者的开发界面902可以自动地刷新第二用户的工作 空间画布940中的程序3202的视图以反映该编辑,并且还可以呈现已经 进行编辑的通知。该通知可以在工作空间画布940内指示程序3202的已 经受编辑影响的部分。该通知还可以标识提交编辑的第一开发者并且显示 第一开发者的关于编辑的评论。替选地,该通知可以仅提供程序3202已 经被编辑的最小通知,并且如果需要,第二开发者就可以选择查看编辑历 史以了解该编辑。
在一些实施方式中,如果在线程序3202与用户的程序的离线版本 3204之间存在差异,作为对允许用户选择是将本地版本同步到控制器118 还是更新离线版本以反映运行版本的替选,协作管理组件210可以智能地 确定控制程序的哪个版本满足一个或更多个适用性标准,并且基于该确定 来执行同步操作。在一些场景中,这可能涉及对控制器118执行离线编辑 的部分同步,使得只有离线编辑的所选子集被部署到在线程序3202,而 从同步过程中省略其余的编辑。用户的离线编辑是否要被同步到控制器 118以及编辑中的哪些要被发送至控制器118的确定可以基于任何合适的 优化标准,包括但不限于如下确定:控制程序的哪个版本(例如,所提议 的编辑的哪个子集)将以最少量的代码执行给定任务、哪个版本将导致受 控工业资产的最少的能源消耗、哪个版本将对机器生命周期具有最小影响或其他这样的标准。在一些实施方式中,可以通过选择同步按钮3304来 触发这种智能同步。
在另一场景中,第一开发者可能正在编辑程序的离线版本3204,同 时第二开发者正在提交对程序的在线版本3202的在线编辑。因此,由于 对第一开发者的离线程序3204进行的改变和由第二开发者对在线版本进 行的编辑二者,第一开发者的程序的离线版本3204不再匹配在线程序 3202。如在先前示例中,由于由第一开发者进行的不在在线版本中的离线 编辑或者由第二开发者进行的不存在于离线程序3204中的在线程序3202 中的编辑,开发界面在导航树1902中在与程序的离线版本和在线版本之 间不同的例程对应的节点中的任何节点旁边显示点3306。
在一些实施方式中,开发界面902可以通过针对同一例程呈现两个不 同的选项卡932和对应的工作空间画布940来传达这两种类型的程序差异 ——针对程序的在线版本3202的第一选项卡932包括由第二开发者已经 提交的新编辑,并且针对离线版本的第二选项卡932包括由第一开发者准 备的离线编辑。这允许第一开发者查看相邻选项卡932中的两组编辑以确 定第二开发者的在线编辑是否与第一开发者的提议的离线编辑冲突,或者是否需要对离线编辑的改变。然后第一开发者可以选择合并两组编辑并相 应地更新离线版本,或者中止离线编辑并仅将第二开发者的在线编辑同步 到第一用户的程序的离线版本3204,从而使离线版本与在线改变保持同 步。
替选地,开发界面902的一些实施方式可以在具有合适差异的相同工 作空间画布940内呈现第一开发者的离线编辑和第二开发者的在线编辑 二者,而不是在两个单独的选项卡932中呈现程序的不同在线版本和离线 版本。然后,第一开发者可以基于对离线编辑是否与第二开发者的在线编 辑兼容的确定来选择性地将离线编辑的一些或全部同步到在线程序3202。 第一开发者还可以通过选择同步按钮3304来选择利用一个动作合并所有 在线编辑和离线编辑,这使得所有离线编辑被同步到控制器118并且所有 在线编辑被同步到第一开发者的程序的离线版本3204,从而解决在线版 本与离线版本之间的所有差异。
在一些实施方式中,如果在线编辑和离线编辑包括针对控制程序的相 同部分并且彼此不兼容的修改,则协作管理组件210可以应用选择标准来 确定应该将编辑的哪个版本应用于程序的运行版本3202。在这样的实施 方式中,可以由第一开发者通过选择同步按钮3304来启用该代理过程。 协作管理组件210可以应用与选择编辑的优选版本相关的任何合适的标 准。例如,在一些实施方式中,协作管理组件210可以选择被预测成以最 少行的代码执行相同控制功能的编辑。在另一示例中,协作管理组件210 可以选择被预测成以对机械的最少压力控制其相关联的机械资产的编辑。 在这种情况下,鉴于关于相应控制序列将如何影响机械资产的内置工业专 业知识,可以由协作管理组件210基于对控制代码的相应版本的分析来确 定施加到受控工业资产的应力的量的估计。
例如,协作管理组件210可以分析控制代码的每个版本——施加有在 线编辑的版本和施加有替选的离线编辑的版本——以确定将由程序的每 个版本的执行得到的估计的机器循环频率。由于更高的频率与更快的机器 磨损相关,因此协作管理组件210可以选择被估计成在不导致产品吞吐量 下降到限定的最小值以下的情况下以最小机器循环频率执行控制功能的 版本。在另一示例中,协作管理组件210可以估计将由程序的每个版本实 现以执行相同功能的机械资产(例如,运动设备)的预期运动范围或者将 由程序的相应版本实现以执行相同功能的多个单独的机械运动的预期运 动范围,并且选择预期使用最短运动或最少数目的运动来实现控制功能的 编辑。其他类型的预测控制分析和对应的编辑选择标准在一个或更多个实 施方式的范围内。基于这样的分析的结果,协作管理组件210可以选择离 线编辑或当前在线编辑作为最合适的版本。如果选择了离线编辑,则这些 离线编辑被同步到在线程序3202——覆盖在线编辑——并且第二开发者 的开发界面902呈现先前提交的在线编辑已经被第一开发者重写的通知。 替选地,如果选择了在线编辑,则将这些编辑同步到用户的程序的离线版 本3204,并且丢弃待决的离线编辑。
根据与协作环境相关的另一特征,在用户正在使用开发界面902执行 控制程序3202的在线编辑时,IDE系统202的一些实施方式可以允许在 线编辑的选择性锁定和解锁。例如,在第一开发者正使用IDE系统202 查看和编辑程序的在线版本3202时,第一开发者可以选择将其他开发者 锁定在在线编辑模式之外,从而防止其他开发者提交对程序3202的在线 编辑。尽管在这种模式下,IDE系统202允许其他开发者查看在线程序 3202,但是防止从那些其他开发者的开发界面902提交对程序3202的编 辑。
如果期望,则第一开发者可以选择针对所选择的第二开发者解锁在线 编辑,从而允许第二开发者与第一开发者并行地查看和编辑在线程序 3202。在一些实施方式中,当开发者针对另一开发者解锁在线编辑时,展 现给相应开发者的工作空间画布940用作用于同时编辑在线程序3202的 共享画布,使得由第一开发者提交的编辑被反映在第二开发者的工作空间 画布940中,以及使得由第二开发者提交的编辑被反映在第一开发者的工 作空间画布940中。这可以促进两个或更多个开发者对在线程序3202的 同时协作编辑。
开发界面902支持的图形指示符和通知特征可以清楚地传达在协作 开发环境的情境内工业控制程序的相对的在线状态和离线状态。这些特征 允许用户在以下之间快速区分:仅作为离线版本存在的控制例程、在控制 器上执行但在用户的离线项目中不存在的例程、存在于程序的在线版本和 离线版本二者中但由于在线编辑或离线编辑的提交而不同的例程、以及在 其在线版本和离线版本二者中匹配的例程。由IDE系统202的实施方式支持的协作管理特征向用户通知由其他用户提交的编辑,并且帮助协调开发 平台内程序编辑的提交和程序版本的同步。
图35a至图35c示出了根据本申请的一个或更多个实施方式的方法。 虽然出于简化说明的目的而将本文中示出的方法示出和描述为一系列动 作,但是应当理解和认识到,本发明不受这些动作的顺序的限制,因为一 些动作可以据此按照与本文中示出和描述的顺序不同的顺序发生以及/或 者与其他动作同时发生。例如,本领域技术人员将理解和认识到,方法可 以替选地例如以状态图被表示为一系列相关的状态或事件。此外,实现根 据本发明的方法并不需要全部示出的动作。此外,当不同实体实施方法的 不同部分时,交互图可以表示根据本公开内容的方法学或方法。此外,所 公开的示例方法中的两种或更多种方法可以彼此组合地实现,以实现本文 中所描述的一个或更多个特征或优点。
图35a示出了用于在工业IDE系统上呈现工业控制程序的在线状态和 离线状态的图形指示的示例方法3500a的第一部分。首先,在3502处, 在工业IDE的开发界面上呈现资源管理器面板。资源管理器面板被配置成 便于浏览和选择要呈现在开发界面的工作空间画布上的工业自动化项目 的各方面(例如,控制编程或例程、HMI开发画面、控制器标签数据库、 工业设备参数配置、警报配置等)。资源管理器面板可以包括表示相应查 看类别的可选图标的集合。由节点表示的项目的各方面包括一个或更多个 控制程序及其相关联的例程。
在3504处,在资源管理器面板中与控制程序的例程对应的节点旁边 呈现指示符。在与物理工业控制器远程对接之前,指示符最初以第一颜色 被显示,第一颜色指示例程存在于当前在开发界面上正被查看的程序的离 线版本中。
在3506处,在开发界面上呈现选项卡式工作空间画布。选项卡式工 作空间画布显示控制程序的例程,使得选项卡式工作空间画布的相应选项 卡对应于例程。在这种布置中,对选项卡的选择使工作空间画布显示与工 作空间画布中所选择的选项卡对应的例程。
在3508处,确定IDE系统是否接收到与工业控制器联机的指令。工 业控制器可能正在执行正在开发界面上被查看的控制程序的在线版本,或 者工业控制器可能正在执行当前不是用户的离线项目文件的一部分的另 一控制程序。如果接收到与工业控制器联机的指令(在步骤3508处为 “是”),则方法进行到步骤3510,在步骤3510处,IDE系统远程连接至 指定的工业控制器并且读取安装在该控制器上的在线程序。
然后该方法进行到图35b中所示的第二部分3500b。在3512处,确 定控制程序的离线版本的例程是否对应于控制器上当前安装的在线程序 的例程。如果控制器包括与程序的离线版本的例程对应的例程(在步骤 3512处为“是”),则该方法进行到步骤3514,在步骤3514处,与例程对 应的节点旁边的指示符的颜色被设置为第二颜色,第二颜色指示例程存在 于程序的离线版本和程序的在控制器上安装和执行的在线版本二者中。
在3516处,确定例程的在线版本与例程的离线版本是否匹配。如果 两个版本匹配(在步骤3516处为“是”),则该方法返回至步骤3512。替 选地,如果由于提交至例程的离线版本或在线版本的编辑而导致例程的两 个版本不匹配(在步骤3516处为“否”),则该方法进行到步骤3518,在 步骤3518处,在与例程对应的节点旁边呈现符号(例如,点或另一类型的符号)。该符号指示例程的在线版本与该例程的离线版本不匹配。在这 样的情况下,开发界面可以在工作空间画布中指示例程的在线版本与离线 版本之间的差异(例如,梯形逻辑编程的新添加或删除的梯级,修改的指 令参数等)。用户还可以选择通过将例程的离线版本写入到控制器或将对 在线版本进行的编辑同步到离线版本来使两个版本同步。
如果在步骤3512处确定离线程序的例程在在线程序中没有对应的例 程(在步骤3512处为“否”),则该方法进行到图35c中所示的第三部分 3500c。在3520处,向导航树添加节点,该节点表示存在于在线程序中、 不存在于在开发界面上当前正被查看的离线项目中的例程。在这种情况 下,如果期望,则开发界面可以允许用户将例程的副本同步到项目的离线 版本。
本文中描述的实施方式、系统和组件以及可以执行本说明书中阐述的 各个方面的控制系统和自动化环境可以包括能够跨网络进行交互的计算 机或网络组件,例如服务器、客户端、可编程逻辑控制器(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)设备、服务器、客户端、计算机、配置工具、监视工 具和/或其他设备的组件。
为了提供所公开的主题的各个方面的情境,图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 包括ROM 3610和RAM 3612。基本输入/输出系统(BIOS)可以被存储 在非易失性存储器例如ROM、可擦除可编程只读存储器(EPROM)、EEPROM中,该BIOS包含有助于例如在启动期间在计算机3602内的元 件之间传输信息的基本例程。RAM 3612还可以包括高速RAM,例如用 于缓存数据的静态RAM。
计算机3602还包括内部硬盘驱动器(HDD)3614(例如,EIDE、SATA)、 一个或更多个外部存储设备3616(例如,磁软盘驱动器(FDD)3616、 存储棒或闪存驱动器读取器、存储卡读取器等)和光盘驱动器3620(例 如,其可以从CD-ROM盘、DVD、BD等进行读取或写入)。虽然内部 HDD 3614被示出为位于计算机3602内,但是内部HDD 3614也可以被配 置成在合适的机箱(未示出)的外部使用。另外,虽然在环境3600中未 示出,但是除了HDD 3614以外还可以使用固态驱动器(SSD)或者可以 使用固态驱动器(SSD)来代替HDD 3614。HDD 3614、外部存储设备3616 和光盘驱动器3620可以分别通过HDD接口3624、外部存储接口3626和 光学驱动器接口3628连接至系统总线3608。用于外部驱动器实现的接口 3624可以包括通用串行总线(USB)和电气与电子工程师协会(IEEE) 1394接口技术中的至少一个或两个。其他外部驱动连接技术在本文中描 述的实施方式的考虑之内。
驱动器以及其关联的计算机可读存储介质提供数据、数据结构、计算 机可执行指令等的非易失性存储。对于计算机3602,驱动器和存储介质 以合适的数字格式适应任何数据的存储。尽管上面对计算机可读存储介质 的描述是指相应类型的存储设备,但是本领域技术人员应该理解,计算机 可读的其他类型的存储介质——无论是当前存在的还是将来开发的—— 也可以在示例操作环境中被使用,此外,任何这样的存储介质可以包含用 于执行本文中描述的方法的计算机可执行指令。
可以在驱动器和RAM 3612中存储多个程序模块,所述多个程序模块 包括操作系统3630、一个或更多个应用程序3632、其他程序模块3634以 及程序数据3636。操作系统、应用、模块和/或数据中的全部或部分也可 以被缓存在RAM 3612中。可以利用各种可商购的操作系统或操作系统的 组合来实现本文中描述的系统和方法。
计算机3602可以可选地包括模拟技术。例如,管理程序(未示出) 或其他中间物可以仿真用于操作系统3630的硬件环境,并且仿真的硬件 可以可选地不同于图36中所示的硬件。在这样的实施方式中,操作系统 3630可以包括托管在计算机3602上的多个虚拟机(VM)中的一个VM。 此外,操作系统3630可以为应用程序3632提供运行时环境例如Java运行时环境或.NET框架。运行时环境是允许应用程序3632在包括该运行时 环境的任何操作系统上运行的一致执行环境。类似地,操作系统3630可 以支持容器,并且应用程序3632可以呈容器的形式,所述容器是轻量级 的、独立的、可执行的软件包,所述软件包包括例如代码、运行时间、系 统工具、系统库和针对应用的设置。
此外,可以利用安全模块例如可信处理模块(TPM)来启用计算机 3602。例如,利用TPM,引导组件在时间上散列(hash)接下来的引导组 件,并且在加载接下来的引导组件之前等待结果与安全值的匹配。该处理 可以发生在计算机3602的代码执行栈中的任何层处,例如在应用执行级 处或在操作系统(OS)内核级处被应用,从而使实现代码执行的任何级处的安全性。
用户可以通过一个或更多个有线/无线输入设备例如键盘3638、触摸 屏3640以及诸如鼠标3642的定点设备将命令和信息输入至计算机3602 中。其他输入设备(未示出)可以包括麦克风、红外(IR)遥控器、射频 (RF)遥控器、或其他遥控器、操纵杆、虚拟现实控制器和/或虚拟现实 头戴式耳机、游戏手柄、触控笔、图像输入设备例如相机、手势传感器输入设备、视觉运动传感器输入设备、情绪或面部检测设备、生物特征输入 设备(例如,指纹或虹膜扫描仪)等。这些输入设备和其他输入设备通常 通过可以耦接至系统总线3608的输入设备接口3644连接至处理单元 3604,但是也可以通过其他接口例如并行端口、IEEE1394串行端口、游 戏端口、USB端口、IR接口、
Figure BDA0003852579280000511
接口等被连接。
监视器3644或其他类型的显示设备也可以经由接口例如视频适配器 3646连接至系统总线3608。除了监视器3644之外,计算机通常还包括其 他外围输出设备(未示出),例如扬声器、打印机等。
计算机3602可以经由至诸如远程计算机3648的一个或更多个远程计 算机的有线和/或无线通信、使用逻辑连接在联网环境中进行操作。远程 计算机3648可以是工作站、服务器计算机、路由器、个人计算机、便携 式计算机、基于微处理器的娱乐仪器、对等设备或其他常见网络节点,并 且通常包括关于计算机3602所描述的许多或所有元件,但是为了简洁起 见,仅示出了存储器/存储设备3650。所描绘的逻辑连接包括至局域网 (LAN)3652和/或更大的网络例如广域网(WAN)3654的有线/无线连 接。这样的LAN和WAN联网环境在办公室和公司中是常见的,并且促 进诸如内部网的企业范围的计算机网络,所有这些都可以连接至全球通信 网络例如因特网。
当在LAN联网环境中被使用时,计算机3602可以通过有线和/或无 线通信网络接口或适配器3656连接至局域网3652。适配器3656可以促 进至LAN 3652的有线或无线通信,LAN 3652还可以包括布置在其上的 用于以无线模式与适配器3656进行通信的无线接入点(AP)。
当在WAN联网环境中被使用时,计算机3602可以包括调制解调器 3658,或者可以经由用于通过WAN 3654建立通信的其他手段例如通过因 特网来连接至WAN 3654上的通信服务器。可以是内部设备或外部设备以 及有线设备或无线设备的调制解调器3658可以经由输入设备接口3642连 接至系统总线3608。在联网环境中,关于计算机3602或其部分描绘的程 序模块可以被存储在远程存储器/存储设备3650中。将理解的是,所示出 的网络连接是示例,并且可以使用在计算机之间建立通信链路的其他手 段。
当在LAN或WAN联网环境中被使用时,除了如上所述的外部存储 设备3616之外,计算机3602还可以访问云存储系统或其他基于网络的存 储系统,或者代替如上所述的外部存储设备3616,计算机3602可以访问 云存储系统或其他基于网络的存储系统。通常,可以例如分别通过适配器 3656或调制解调器3658经由LAN 3652或WAN 3654来建立计算机3602与云存储系统之间的连接。在将计算机3602连接至相关联的云存储系统 时,外部存储接口3626可以在适配器3656和/或调制解调器3658的帮助 下,如管理其他类型的外部存储一样管理由云存储系统提供的存储。例如, 外部存储接口3626可以被配置成提供对云存储源的访问,就好像那些源 被物理地连接至计算机3602一样。
计算机3602可以可操作成与操作上以无线通信布置的任何无线设备 或实体进行通信,所述任何无线设备或实体例如为打印机、扫描仪、台式 计算机和/或便携式计算机、便携式数据助理、通信卫星、与可无线检测 的标签相关联的任何装备或位置(例如,亭、报摊、商店货架等)以及电 话。这可以包括无线保真(Wi-Fi)和
Figure BDA0003852579280000521
无线技术。因此,通信可以是 如常规网络的预定义结构或仅是至少两个设备之间的自组织通信。
图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)......)、智能卡和闪存设备(例 如,卡、棒、密钥驱动器......)。

Claims (20)

1.一种用于开发工业应用的系统,包括:
存储器,所述存储器存储可执行组件;以及
处理器,所述处理器可操作地耦接至所述存储器,所述处理器执行所述可执行组件,所述可执行组件包括:
用户接口组件,所述用户接口组件被配置成呈现工业集成开发环境IDE开发界面并且经由与所述开发界面的交互来接收工业设计输入,所述工业设计输入限定工业自动化项目的各方面,
项目生成组件,所述项目生成组件被配置成基于所述工业设计输入来生成系统项目数据;以及
项目部署组件,所述项目部署组件被配置成将所述系统远程连接至工业控制器,
其中,
所述开发界面包括资源管理器面板,所述资源管理器面板便于浏览所述工业自动化项目的各方面,
所述资源管理器面板显示表示一个或更多个控制程序的例程的节点,所述一个或更多个控制程序作为所述工业自动化项目的一部分而被包括,以及
所述用户接口组件被配置成:响应于确定控制程序的正在所述开发界面上被查看的离线版本的例程与所述控制程序的在所述工业控制器上执行的在线版本的对应例程不匹配,在所述节点中的一个节点旁边呈现表示所述例程的符号。
2.根据权利要求1所述的系统,其中,
所述资源管理器面板还在表示所述例程的节点旁边显示相应的颜色编码的指示符,
所述颜色编码的指示符的与存在于所述控制程序的在线版本和所述控制程序的离线版本二者中的例程对应的第一子集以第一颜色被呈现,以及
所述颜色编码的指示符的与存在于所述控制程序的离线版本中并且不存在于所述控制程序的在线版本中的例程对应的第二子集以第二颜色被呈现。
3.根据权利要求1所述的系统,其中,
所述开发界面包括选项卡式工作空间画布,所述选项卡式工作空间画布包括分别与所述一个或更多个控制程序的例程对应的选项卡,以及
所述用户接口组件在所述选项卡上呈现相应的颜色编码的选项卡指示符,
所述颜色编码的选项卡指示符的与存在于所述控制程序的在线版本和所述控制程序的离线版本二者中的例程对应的第一子集以第一颜色被呈现,以及
所述颜色编码的选项卡指示符的与存在于所述控制程序的离线版本中并且不存在于所述控制程序的在线版本中的例程对应的第二子集以第二颜色被呈现。
4.根据权利要求1所述的系统,其中,根据所述例程被分配到的工业控制器来分层地布置表示所述例程的节点。
5.根据权利要求1所述的系统,其中,
所述开发界面包括同步按钮,以及
所述项目部署组件被配置成:响应于对所述同步按钮的选择,执行解决所述控制程序的在线版本与所述控制程序的离线版本之间的差异的同步操作。
6.根据权利要求5所述的系统,其中,所述同步操作包括以下中的至少一个:
将对所述控制程序的在线版本进行的修改同步到所述控制程序的离线版本,或者
将对所述控制程序的离线版本进行的修改同步到所述控制程序的在线版本。
7.根据权利要求1所述的系统,其中,所述开发界面还包括选项卡式工作空间画布,所述选项卡式工作空间画布基于对所述资源管理器面板中的节点的选择或对分别与所述例程对应的选项卡的选择来显示所述例程中的选定例程。
8.根据权利要求7所述的系统,其中,所述用户接口组件被配置成:
响应于对与在所述工业控制器上执行的在线例程对应的节点之一的选择,在所述选项卡式工作空间画布中显示所述在线例程的视图,以及
响应于确定所述在线例程已经通过经由另一开发界面提交给所述工业控制器的编辑而在所述工业控制器上被修改,更新所述在线例程的视图并且在所述开发界面上显示所述编辑的通知。
9.根据权利要求8所述的系统,其中,所述通知标识提交所述编辑的开发者并且显示由所述开发者提交的关于所述编辑的评论。
10.一种用于开发工业应用的方法,包括:
由包括处理器的工业集成开发环境IDE系统在客户端设备上呈现开发界面,其中,所述开发界面包括资源管理器面板,所述资源管理器面板便于浏览工业自动化项目的各方面,并且所述呈现包括:
在所述资源管理器面板上显示表示一个或更多个控制程序的例程的节点,所述一个或更多个控制程序是所述工业自动化项目的一部分,以及
响应于确定控制程序的正在所述开发界面上被查看的离线版本的例程与所述控制程序的在工业控制器上执行的在线版本的对应例程不匹配,在所述节点中的一个节点旁边呈现与所述例程对应的符号。
11.根据权利要求10所述的方法,其中,
所述呈现还包括:在表示所述例程的节点旁边呈现相应的颜色编码的指示符,
所述颜色编码的指示符的与存在于所述控制程序的在线版本和所述控制程序的离线版本二者中的例程对应的第一子集以第一颜色被呈现,以及
所述颜色编码的指示符的与存在于所述控制程序的离线版本中并且不存在于所述控制程序的在线版本中的例程对应的第二子集以第二颜色被呈现。
12.根据权利要求10所述的方法,其中,
所述呈现还包括:
呈现选项卡式工作空间画布,所述选项卡式工作空间画布包括分别与所述一个或更多个控制程序的例程对应的选项卡,以及
在所述选项卡上呈现相应的颜色编码的选项卡指示符,
所述颜色编码的选项卡指示符的与存在于所述控制程序的在线版本和所述控制程序的离线版本二者中的例程对应的第一子集以第一颜色被呈现,以及
所述颜色编码的选项卡指示符的与存在于所述控制程序的离线版本中并且不存在于所述控制程序的在线版本中的例程对应的第二子集以第二颜色被呈现。
13.根据权利要求10所述的方法,其中,所述呈现还包括:根据所述例程被分配到的工业控制器来分层地布置表示所述例程的节点。
14.根据权利要求10所述的方法,还包括:
由所述工业IDE系统响应于接收到对所述开发界面上显示的同步按钮的选择,执行解决所述控制程序的在线版本与所述控制程序的离线版本之间的差异的同步操作。
15.根据权利要求14所述的方法,其中,执行所述同步操作包括以下中的至少一个:
将对所述控制程序的在线版本进行的修改同步到所述控制程序的离线版本,或者
将对所述控制程序的离线版本进行的修改同步到所述控制程序的在线版本。
16.根据权利要求10所述的方法,其中,所述呈现还包括:呈现选项卡式工作空间画布,所述选项卡式工作空间画布基于对所述资源管理器面板中的节点的选择或对分别与所述例程对应的选项卡的选择来显示所述例程中的选定例程。
17.根据权利要求16所述的方法,还包括:
由所述工业IDE系统响应于对与在所述工业控制器上执行的在线例程对应的节点之一的选择,在所述选项卡式工作空间画布中显示所述在线例程的视图,以及
响应于确定所述在线例程已经经由另一开发界面在所述工业控制器上被编辑:
由所述工业IDE系统更新所述在线例程的视图,以及
由所述工业IDE系统在所述开发界面上显示所述编辑的通知。
18.根据权利要求17所述的方法,所述通知标识提交所述编辑的开发者并且显示由所述开发者提交的关于所述编辑的评论。
19.一种非暂态计算机可读介质,所述非暂态计算机可读介质上存储有指令,所述指令响应于执行而使包括处理器的工业集成开发环境IDE系统执行操作,所述操作包括:
在客户端设备上呈现开发界面,其中,所述开发界面包括资源管理器面板,所述资源管理器面板便于浏览工业自动化项目的各方面,并且所述呈现包括:
在所述资源管理器面板上显示表示一个或更多个控制程序的例程的节点,所述一个或更多个控制程序是所述工业自动化项目的一部分,以及
响应于确定控制程序的正在所述开发界面上被查看的离线版本的例程与所述控制程序的在工业控制器上执行的在线版本的对应例程不同,在所述节点中的一个节点旁边呈现与所述例程对应的符号。
20.根据权利要求19所述的非暂态计算机可读介质,其中,
所述呈现还包括:在表示所述例程的节点旁边呈现相应的颜色编码的指示符,
所述颜色编码的指示符的与存在于所述控制程序的在线版本和所述控制程序的离线版本二者中的例程对应的第一子集以第一颜色被呈现,以及
所述颜色编码的指示符的与存在于所述控制程序的离线版本中并且不存在于所述控制程序的在线版本中的例程对应的第二子集以第二颜色被呈现。
CN202211137145.7A 2021-09-20 2022-09-19 工业自动化控制器项目在线/离线状态分离 Pending CN115840422A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/479,564 US20230091919A1 (en) 2021-09-20 2021-09-20 Industrial automation controller project online/offline state separation
US17/479,564 2021-09-20

Publications (1)

Publication Number Publication Date
CN115840422A true CN115840422A (zh) 2023-03-24

Family

ID=83594268

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211137145.7A Pending CN115840422A (zh) 2021-09-20 2022-09-19 工业自动化控制器项目在线/离线状态分离

Country Status (3)

Country Link
US (1) US20230091919A1 (zh)
EP (1) EP4152145A1 (zh)
CN (1) CN115840422A (zh)

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7065717B1 (en) * 1999-01-19 2006-06-20 International Business Machines Corporation Tree-based interface apparatus for display of call dependencies and method therefor
WO2000070417A1 (en) * 1999-05-17 2000-11-23 The Foxboro Company Process control configuration system with parameterized objects
US20060074929A1 (en) * 2004-09-30 2006-04-06 Microsoft Corporation Multiple document file tab channel
US7702487B2 (en) * 2006-04-11 2010-04-20 Invensys Systems, Inc. System management user interface providing user access to status information for process control system equipment including displayed propagated status in a navigation pane
US8418147B1 (en) * 2009-05-08 2013-04-09 Versionone, Inc. Methods and systems for reporting on build runs in software development
US9058240B2 (en) * 2012-12-03 2015-06-16 International Business Machines Corporation Multi-context remote development
US20150106152A1 (en) * 2013-10-14 2015-04-16 Microsoft Corporation Continuously tracing issues through the lifecycle phases of a project
US11023492B2 (en) * 2015-05-20 2021-06-01 Guidewire Software, Inc. Deferred synchronization for work unit-related data
US10397331B2 (en) * 2016-01-29 2019-08-27 General Electric Company Development platform for industrial internet applications
US20190324776A1 (en) * 2018-04-18 2019-10-24 Microsoft Technology Licensing, Llc Dynamic management of interface elements based on bound control flow
US11231924B2 (en) * 2019-09-27 2022-01-25 Rockwell Automation Technologies, Inc. System and method for industrial automation project code analysis

Also Published As

Publication number Publication date
EP4152145A1 (en) 2023-03-22
US20230091919A1 (en) 2023-03-23

Similar Documents

Publication Publication Date Title
US11816309B2 (en) User interface logical and execution view navigation and shifting
CN112579050B (zh) 工业应用开发系统、工业自动化项目开发方法和介质
CN112631210B (zh) 用于开发工业控制程序的系统、编程方法及计算机介质
US11775142B2 (en) Preferential automation view curation
US11733977B2 (en) Graphical and text based co-design editor for industrial automation projects
CN115113914A (zh) 具有里程碑回滚的工业自动化分布式项目控制
EP4296848A1 (en) System and method for device profile creation in an integrated development environment
CN114791824A (zh) 工业自动化多开发者控制代码同步
EP4152145A1 (en) Industrial automation controller project online/offline state separation
US20240103850A1 (en) Presentation design to background service binding
US20240103851A1 (en) Presentation design to automation device binding
US20240103852A1 (en) Presentation design dynamic generation from data model server
EP4307105A1 (en) Extensible profiles for industrial control modules
EP4307104A1 (en) Extensible profiles for industrial controller devices
EP4307103A1 (en) Industrial automation system topology with point to point business rule integration
US20240086182A1 (en) Method for connecting a web socket session with an object instance with automation device association
US20230418263A1 (en) Device configuration object template with user interaction for device properties generator
EP4310750A1 (en) Catalog service replication

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination