CN103792857A - 可扩展的自动化系统 - Google Patents
可扩展的自动化系统 Download PDFInfo
- Publication number
- CN103792857A CN103792857A CN201210452165.3A CN201210452165A CN103792857A CN 103792857 A CN103792857 A CN 103792857A CN 201210452165 A CN201210452165 A CN 201210452165A CN 103792857 A CN103792857 A CN 103792857A
- Authority
- CN
- China
- Prior art keywords
- industrial automation
- equipment
- control
- service module
- data
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供了一种可扩展的自动化系统以及自动化控制和监视系统,该系统包括用于借助面向资源的架构(ROA)的控制和监视系统的部件的公共框架。ROA可以使得能够实现控制和监视系统内的增强的可扩展性和分布。此外,该框架可以提供要在控制和监视系统的部件中实施的基本功能集合,从而产生垂直可扩展性。
Description
本申请为2011年11月11日递交的申请号为61/559022、标题为“Scaling and Distributing Resource Oriented Architecture Across anAutomation Control System”的美国临时专利申请的正式申请,其通过引用并入本文中。
技术领域
本公开的实施例总体上涉及自动化控制和监视系统领域。更具体地,本公开的实施例涉及在自动化控制和监视系统上扩展和分配面向资源的架构(ROA)。
背景技术
自动化控制和监视系统存在广泛的应用,尤其是在工业背景。这些应用可以包括对各种执行机构(诸如,阀、电动机等)供电以及经由传感器采集数据。典型的自动化控制和监视系统可以包括一个或多个部件,诸如编程终端、自动化控制器、输入/输出(I/O)模块和/或人机接口(HMI)终端。
人机接口或“HMI”通常用于监视或控制各种过程。HMI可以从特定的寄存器执行读取或向特定的寄存器执行写入,从而HMI能够反映各种机器、传感器、过程等的操作状态。这些接口也可以向寄存器和存储器执行写入,从而这些接口能够在一定程度上控制处理的功能。在单独的监视功能中,很少或不执行实际的控制。在很多其它背景下,诸如在汽车、飞机、商业背景和许多其它应用中,采用类似的装置。在很多应用中,接口不能与远程装置或过程进行通信,但是可以以单机的方式运作。
在这些接口装置中,接口中使用的对象可以与不同的控制、监视器或工业自动化装置的任何其它参数相关联。这些对象中的一些对象可以在接口装置上具有视觉呈现,而其它对象不能可视化呈现但用户易于对其进行配置和编程。用户可能希望操纵这些对象,诸如通过创建新的对象、复制对象,编辑对象等,来创建和定制接口。
自动化控制和监视系统中的每个部件可以使用该控制和监视系统的一个或更多个对象(例如,控制程序、标签、模块配置和HMI屏幕)的状态信息。有时,部件可以用于修改对象的状态信息。因此,部件可能需要将状态的变化传送至控制和监视系统,以便其它部件可以了解控制和监视系统的对象的状态变化。实际上,在一些情况下,状态的变化可以包括控制和监视系统内的某些对象的添加或删除。
常规的方法依赖于集中控制和监视。例如,常规的控制和监视系统依赖于描述该控制系统的集中数据模型。对于集中数据模型的依赖可能导致过程效率低及对于托管集中数据模型的部件(例如,控制器)的依赖增加。通过创建用于控制和监视系统的面向资源的架构(ROA),系统可以在生产线上扩展功能,并且可以对系统的装置或其它部件的扩展进行扩张。
发明内容
以下概述与原始要求保护的发明在范围上相当的一些实施例。这些实施例无意限制要求保护的发明的范围,相反这些实施例仅意在提供本发明的可能形式的简要概括。实际上,本发明可能包括与下面阐述的实施例相似或不同的各种形式。
本实施例提供了一种用于创建自动化控制和监视系统内的可扩展性的新颖的方法。面向资源的架构(ROA)可以被创建为使得自动化控制和监视系统能够从小型实施容易地扩张为极大型的配置。此外,该ROA可以使得能够以控制和监视系统的许多产品类似的方式实施功能性。
附图说明
当参考附图阅读以下详细说明时,本实施例的这些和其它特征、方面和优点将变得更容易理解,在所有附图中相同的附图标记表示相同的部分,其中:
图1是根据实施例的自动化控制和监视系统的部分的框架的总体概览;
图2是根据实施例的自动化控制和监视系统的图解概览;
图3是根据实施例的接口和编程终端中的某些功能部件的概览;
图4是根据实施例的设备要素的某些视图或容器的概览图;
图5是根据实施例的图1的控制和监视系统的示意图,图中示出了用于传送状态变化的持久对象模型的使用;
图6示出根据实施例的在变化仪器、变化仲裁和观众成员之间传送状态变化的进展;
图7示出根据实施例的撤消状态变化的处理;
图8示出根据实施例的在进行中的编辑期间发生外部变化的处理;
图9示出根据实施例的用于中止进行中的变化的处理;
图10示出根据实施例的用于将进行中的变化压缩成一个变化集的处理;
图11示出根据实施例的使用分布式执行引擎来执行控制命令的自动化控制和监视系统;
图12示出根据实施例的通过执行引擎执行的处理循环;
图13示出根据实施例的用于调度命令的处理;
图14示出根据实施例的使用可链接插件来修改控制和监视系统的功能的自动化控制和监视系统;以及
图15A~15E示出根据实施例的控制和监视系统的服务,其中,该控制和监控系统使用面向资源的架构来实施。
具体实施方式
典型地,当传送状态变化时,控制和监视系统严重依赖于诸如可编程逻辑控制器(PLC)等自动化控制器和自动化控制器编程(例如,PLC编程)来影响控制和监视系统。自动化控制器编程严重依赖于任务和/或逻辑(例如,以编程语言编写的机器可读指令,诸如继电器梯形图)基于事件和/或基于调度的执行,来实现控制和监视系统中的变化。通常使用自动化控制器来消耗所有输入数据、计算和分配输出数据、处理数据的变化以及将数据分配至控制和监视系统的部件。不幸地是,这种对于由控制和监视系统(例如,自动化控制器和自动化控制器编程)的部件托管和影响的集中数据模型的严重依赖导致了一些效率低下。例如,随着用于集中模型的基于调度和基于事件的任务的数量增加,由于可能产生对于单个模型的很多附加变化,从而可能出现劣化的性能。此外,集中模型(例如,经由自动化控制器)的大量使用创建了处理控制逻辑的更集中的方法,从而导致控制逻辑执行的低效率、单点故障(例如,当自动化控制器故障时,整个控制和监视系统可能故障),并且可能引起在自动化控制器上的处理紧张(strain)。
根据本实施例,通过采用分布式数据模型、分布式状态变化通信和分布式命令执行,控制和监视系统可以变得更灵活。例如,通过提供增强的协作能力、增加的数据冗余和整个控制和监视系统的处理负载平衡,本实施例提出了更鲁棒和灵活的自动化控制和监视环境。此外,控制和监视系统可以变得水平地(例如,从单个部件实施至具有多个部件的实施)及垂直地(例如,对平台添加功能性,诸如运行时客户端、运行时服务器、设计者客户端、设计者服务器和控制器环境)均更可扩展。
鲁棒控制和监视系统
将通过以下讨论描述很多方面、部件和处理。为了说明,整体系统概览图按照将这些创新放置在上下文中的顺序来排序。图1是根据本公开的实施例的用于接口的控制和监视软件框架10的图解表示。框架10有助于通过采用基于模块的互联机构12来构建功能软件,基于模块的互联机构12本身支持动态操纵和配置。该动态操纵和配置能力有助于有效地为可配置结构提供特征丰富的配置环境。即,如下所述,单独的设备要素被提供为单机代码,该单机代码可以被单独编程、预先写入以使用(例如,在库中)、在屏幕中定制其功能和外观,并且被互联以向用户及控制和监视功能提供信息。
框架10包括可以保持在单个系统(例如,计算机)上的两个相关联的软件环境。具体地,运行时环境14使得操作者(例如,个人用户)能够在运行时期间(例如,使用接口期间,典型地为与操作中的处理交互的期间或观察操作中的处理的期间)内与诸如处理等应用交互。设计时环境16允许设计者配置接口及其部件。例如,系统可以经由显示器(例如,计算机或接口装置屏幕)上的运行时环境14向操作者图形地呈现运行时信息。此外,该系统可以包括用于接收操作者输入的部件(例如,键盘和/或触摸屏显示器),其中,操作者输入可以经由运行时环境14检测和管理。如下具体描述的,这些环境以创新的方式进行交互以在很大程度上增强接口的使用和编程。
运行时环境14包括或提供对设备要素18的访问。设备要素18是可以包括软件环境中的任何可访问或可配置要素的软件部件。例如,设备要素18包括软件部件,诸如通过运行时环境14管理的“ActiveX”控件或“.NET”部件。“ActiveX”和“.NET”是指面向对象的概念、技术和工具。通常,本领域的技术人员将非常熟悉这样的编程方法。在本文中,这样的标准应该仅被当作是示例,并且“设备要素”应该被理解为包括任何大体上类似的部件或可以被运行为拟独立要素(有时称为“对象”)的自给性程序(self-sufficient programs)。针对这样的要素存在通常被不同的公司或工业团体所支持的其它标准和平台。
由于这样的设备要素对于本文中陈述的某些概念来说是基本的,因此下面对该设备要素进行介绍。设备要素通常包括四个特征:属性、方法、连接(或者接点)以及通信接口。在本文中,属性是可以被调节以便例如定义要素在屏幕视图中的表示或图像以及要素在屏幕上的位置等的品质。在本文中,方法是可执行的函数(有时本文中称作要素“功能性”或“状态引擎”),并且定义通过执行要素而进行的操作。在本文中,连接是要素之间的链接,并且可以被用于使(从存储器读取的或者写入存储器的)数据被发送到另一要素。
设备要素18的具体示例可以包括软件按钮、计时器、计量表、PLC通信服务器、可视化(例如示出自动化控制和监视系统内的部件的状态的屏幕)以及应用。通常,几乎任何可识别的功能都可以被配置为这样的要素。此外,如以下所讨论的,这样的要素可以互相通信以执行各种显示、监视操作和控制功能。应指出,设备要素18不需要特别限制来支持设计模式。此外,尽管与图像相关联的要素非常有用,尤其对于可视化而言,但是许多要素可能不具有视觉表示,而是可以执行HMI内的功能(例如计算,或者甚至管理以及与其它要素进行数据交换)。
运行时环境14典型地使用通信子系统20来进行操作。通信子系统20用于使设备要素18相互连接。事实上,通信子系统20可以看作包括设备要素18的连接。然而,通信子系统20可以包括用于将数据发送到外部电路(诸如自动化控制器、其它计算机、网络、卫星、传感器和执行机构等)以及从外部电路接收数据的一系列软件、硬件以及固件。
运行时环境14典型地使用行为子系统22来进行操作,该行为子系统22用于管理设备要素18的行为。例如,行为子系统22的职责可以包括如下:放置和移动设备要素、修改设备要素、对可互换屏幕上的设备要素分组、保存和恢复屏幕布局、管理安全性、保存和恢复连接列表,以及提供对运行时环境14的远程访问。再者,事实上,这样的行为可以被称为每个设备要素的简档(profile)(即,“方法”或“状态引擎”)的一部分。
设计时环境16包括行为子系统22的高级实现,行为子系统22的高级实现有助于在不妨碍或损害运行时环境16的行为的情况下直接或者间接地操纵运行时环境14。即,即使在接口正被操作的情况下也可以设计和重新配置设备要素18。例如在常规浏览器中,行为子系统22经由设计时环境16的远程供应来扩展对运行时环境14的访问。行为子系统22允许设计者通过将设计时环境16或设计时环境16的示象(aspect)从HMI提供到编程终端,而经由远程编程终端来与HMI的运行时环境14的示象交互以及改变HMI的运行时环境14的示象。例如,经由网络耦接到膝上电脑的HMI可以通过经由网络将特定的设计时环境16提供给膝上电脑来为用户提供配置能力。
以下提供可以如何实现这个方案的细节和示例。在当前实施例中,设计时环境16可以是动态超文本标记语言(DHTML)和动态服务器页面(ASP)服务器脚本的结合物,以将动态内容提供给浏览器。ASP脚本是专门编写的代码,其包括在页面被发送到用户之前在服务器(例如,网络服务器)上处理的一个或更多个脚本(即,小的嵌入式程序)。通常,在常规使用中,这样的脚本提示服务器从数据库获取数据以及在数据库中做出改变。接下来,在发送给请求者之前,脚本通常构建或定制页面。如以下所讨论的,这样的脚本以极其不同的方式用在本框架中,以便例如在事先不知道设备要素的功能性或它们的相互关系的情况下来构建可视化。
通过促进设备要素的变化,设计时环境16允许设计者执行行为子系统22的专门实现或可互换的设计时模型。行为子系统22的设计时实现的具体示例包括基于网络的设计时环境16,该基于网络的设计时环境16经由在HMI与远程设备之间的TCP/IP连接来扩展对HMI上的运行时环境14的访问。基于网络的设计时环境16有助于在不损害运行性能或安全的情况下管理设备要素。在一个专门的实现中,行为子系统22给予设计者使用能够访问相关接口或HMI的网络浏览器来操纵运行时环境14的示象的能力。如上所述,以及如以下详细描述的,这通过使用动态内容、脚本以及设备要素属性的配置的组合来实现。
图2是根据本公开实施例的、实现上述框架的控制和监视系统24(例如,用于工业自动化)的图解表示。系统24包括用于与联网部件及配置装备接口的人机接口(HMI)26。系统24示出为包括用于通过控制/监视装置30(例如,远程计算机、自动化控制器(诸如可编程逻辑控制器(PLC)),或其它控制器)来与处理28的部件合作的HMI 26。HMI 26可以在物理上类似现有的硬件,例如面板、监视器或单机设备。
可以通过使用任何适当的网络策略来促进HMI 26与处理28的部件之间的合作。实际上,可以采用工业标准网络(例如DeviceNet),以实现数据传输。这样的网络允许根据预定义的协议来进行数据交换,并且可以提供用于操作联网要素的动力。如上所述,虽然在当前讨论中参考了联网系统以及包含控制器和其它装备的系统,但HMI 26和所描述的编程技术同样可以应用于非联网部件(例如,GPS显示器、游戏显示器、手机显示器、平板显示器等)以及工业自动化领域之外的联网系统。例如,以下描述的布置和处理可以用于设施管理、汽车和车辆的接口、计算机数控(CNC)机器、销售终端(POS)系统、用于商场(例如,电梯、门禁系统)的控制接口等,仅列举几种。
由相应的行为子系统构造和管理的运行时或操作环境14被存储并且驻留在HMI 26上。例如,这样的行为子系统可以用于诸如在HMI 26的初始制造或安装期间从存储位置加载应用配置框架(例如,10)。当所存储的应用程序框架被加载时,其可以用于创建屏幕以及在屏幕中定位用户接口设备要素(与要素对应的实际图像或图形表示)。这些应用程序、屏幕以及用户接口要素为各种类型的设备要素。如以下所描述的,HMI 26包括规定设备要素的布局和交互的存储应用。基于运行时引擎的基于网络的设计时环境16也被加载并驻留在HMI 26上。设计时环境16可以为设计时环境和运行时环境两者处理高级特征(例如,安全管理)。
HMI 26可以用于允许用户与几乎任何处理交互。例如,处理可以包括:压缩机站、炼油厂、用于制造食品的批量生产、机械化装配线等。因此,处理28可以包括各种操作部件,诸如电动机、阀、执行机构、传感器,或者各种各样的制造、加工、原料处理及其它应用程序。此外,处理28可以包括用于通过自动化和/或观察来调节处理变量的控制和监视装备。示出的处理28包括传感器34和执行机构36。传感器34可以包括用于提供关于处理条件的信息的许多设备。执行机构36可以类似地包括用于响应于输入信号来进行机械操作的许多设备。
如所示出的,这些传感器34和执行机构36与控制/监视装置30(例如,自动化控制器)通信,并且可以分配有可被HMI 26访问的、控制/监视装置30中的特定地址。传感器34和执行机构36可以与HMI 26直接进行通信。这些设备可以用于操作处理装备。实际上,这些设备可以用在由控制/监视装置30和/或HMI 26监视和控制的处理循环中。可以基于处理输入(例如,来自传感器34的输入)或直接输入(例如,通过HMI26接收的操作者输入)来激活该处理循环。
接口上的服务器软件允许浏览开发环境并直接重新配置接口(具体为设备要素及它们的关联的外观和功能性),而无需专用的浏览或配置软件。该益处来自于下述事实:设备要素和设计时环境本身驻留在HMI 26中,并且通过HMI 26“提供”给编程终端46上的浏览器或其它通用的阅览器。换言之,可以降低或消除对外部计算机工作站(例如,膝上电脑和台式计算机)的必要支持。应指出,用于浏览和修改接口的配置的“浏览器”的引用不限于网络浏览器或任何特定的浏览器。对于浏览器的引用意图是示例性说明。更一般地,本文中采用术语“浏览器”来指包括任何通用阅览器的软件,包括可以在运行(注册商标)或(注册商标)操作系统(诸如,(注册商标)或AndroidTM)的设备(例如,平板电脑和/或智能手机)中运行的应用或“apps”。
通过如下所述的设备要素的编程,HMI 26可以被认为包括用于呈现一个或更多个屏幕视图或可视化的指令,以及通过参考屏幕视图(例如,按压按钮、触摸屏幕的位置等)在与HMI 26进行交互时执行的设备要素。可以通过任何期望的软件或软件包来定义屏幕视图和设备要素。例如,屏幕视图和设备要素可以由操作系统38调用或执行。如上所述,根据本实施例的设备要素可以是符合“.NET”或“ActiveX”标准的对象。操作系统本身可以基于任何适当的平台,诸如(注册商标)、(注册商标)、(注册商标)等。如本文中所引用的,设备要素和工具支持用于在网络(例如,因特网)上发送数据的网络服务或技术。因此,如下所述,这些设备要素遵循关于信息共享的一系列规则并且适于与各种脚本和编程语言一起使用。这样的设备要素使得交互内容能够提供给外部应用(诸如局域网(LAN)、广域网(WAN)、内联网、外联网乃至万维网)。因此,操作系统38和各种设备要素通过允许对浏览器48的配置访问(access)(例如,提供),经由浏览器48来促进HMI 26的动态配置。
例如,这样的配置访问包括用于例示设备要素的访问。换言之,实际上可以从浏览器48来创建并实现新的设备要素。再者,应指出,浏览器48不需要实际的功能访问。实际上,在一个实施例中,经由浏览器48的请求导致基于容器中设备要素的内容和数据功能性的“绘制(draw)”操作序列,由此在实际上不提供功能示象的情况下允许示出设备要素表示和访问它们的配置。这允许在无需对远程工作站进行技术支持的情况下经由远程工作站进行配置。
除了如上所述(及如下更详细地描述的)的操作系统38和设备要素之外,HMI 26包括应用或应用层40。该应用可以自身包括设备要素,并且有利于访问HMI 26的各种设备要素并且从HMI 26的各种设备要素获取信息。具体地,应用40表示可以是作为用于执行的枚举类型的多级设备要素中的第一级。实际实现中的应用40可以包括以XML页面形式的用户应用。然后,如下更详细地描述的,用户应用由用户或操作者以及与设计者操作来与之进行交互。
屏幕视图和设备要素可以被描述为独立的可执行软件块。在本实现中,通过以标记语言(例如,超文本标记语言或HTML)编写的适当代码来定义屏幕视图。因此,可以在不使用转换程序的情况下执行HMI 26的图形接口屏幕的配置。此外,通过对设备要素进行编程,可以经由使得驻留开发环境可用于远程访问的驻留服务器软件(称为服务器42)来直接地在HMI 26上开发屏幕视图。具体地,在一个实施例中,某些设备要素的表示(例如,ActiveX控件)被提供给浏览器48而不提供软件部件本身。由于可以经由浏览器48访问开发或设计时环境,因此可以消除对于将变化下载到屏幕以及更新远程配置软件应用的需要。
如上所述,设备要素可以包括功能性,设备要素通过该功能性从通常在其它设备中(但是也可以在HMI内)的特定存储器或存储器的寄存器进行读取或者向该特定存储器或存储器的寄存器写入。例如,特定功能可以对应于写入控制/监视装置30的寄存器32或者从控制/监视装置30的寄存器32读取。在简单的情况下,例如,对象访问数据块(例如,由传感器确定的部件状态),并且生成输出信号以写入对应于不同的联网设备的状态的值。如下将更加详细地讨论的,这样的状态信息可以经由状态Δ43来传送。例如,在图2中描述的实施例中,控制/监视装置30和HMI 26可以使用状态增量43来传送状态信息。此外,编程终端46也可以使用状态Δ43来与控制/监视装置30和HMI 26通信状态信息。
当然可以配置更加复杂的功能性。例如,在工业控制和监视背景下,这样的设备要素可以对各种物理部件(诸如,瞬时接触按钮、具有延迟输出的按钮、开关等)的操作进行仿真。许多预编程的设备要素可以供HMI26使用。这样的功能模块可以经由网络访问,或者可以驻留在HMI 26上,或者驻留在直接链接到HMI 26的分离设备上。以这种方式,HMI供应商或者软件供应商可以提供许多可能的构建块,根据上述构建块可以对屏幕以及复杂的控制与监视功能进行编程。实际上,如下所述,可用设备要素的库44可以驻留在HMI 26上以有助于HMI 26的配置。屏幕指令可以基于操作者输入来调用用于执行期望的功能的设备要素,并且这些指令可以被编程为预编程要素的版本。例如,操作者可以通过触摸触摸屏上的位置或者按压键盘上的键来提供初始输入。然后,可以基于屏幕指令和与指令关联的设备要素(例如,利用特定位置触发调用或者执行预配置的设备要素)执行期望的功能。因此,操作者能够与处理进行交互,通常能够改变屏幕视图、写入寄存器或者指示生成其它输出或者控制信号。在单机实现中,交互可以是简单地再调用或者存储数据、改变屏幕等。
可以采用一个或更多个单独的接口屏幕,其具有包含许多这样的屏幕和大量设备要素的一些HMI。每个设备要素进而可以被唯一地编程,以考虑特定的输入、执行特定的功能以及生成用于特定输出的信号。如下所描述的,多个这样的设备要素可以被加载并且被托管在单个软件“容器”(例如,ActiveX容器)中。
可以通过直接地与HMI 26本身(存在一个的情形下)上的屏幕或者面板进行交互来配置HMI 26,但是在很多情况下从远程编程终端46来执行配置。例如,经由浏览器48或者类似的应用来直接地提供对于驻留库44和/或操作系统30及应用40的访问。在本实现中,在编程终端46处不需要其它专门的软件。实际上,驻留在HMI 26上的服务器42可以提供对库44中的设备要素的访问。通过直接在HMI 26上存储库44中的设备要素,消除或者降低了版本冲突等的风险。另外,HMI 26可以直接地连接到编程终端46,或者通过参考分配给HMI 26的IP地址(互联网协议地址)来访问HMI 26。
访问控制方案可以用于限制改变屏幕和设备要素的能力。例如,可能需要密码或者用户访问状态来获得这样的访问。此外,在目前考虑的实施例中,编程终端自动地识别HMI 26或者如下终端:在该终端上,HMI 26作为耦接到编程终端46的设备(例如,类似于外部存储器或驱动器)驻留。因此,一旦HMI 26被连接到编程终端,其可以被简单地“识别”为可以被访问的设备(提供下述的配置屏幕和工具)。
一旦驻留在HMI 26上的设备要素是编程终端46可访问的,那么可以经由来自编程终端46的通信链路直接在HMI 26上修改或更新HMI 26的示象。例如,用户可能希望更新具体的HMI图形以提供数据,诸如历史数据或者与从新安装的传感器34接收的信息相关的趋势。另外,用户可以发现在脱机模式(例如,不立即执行变化)的情况下更新用于呈现这样的数据的HMI图形是期望的或者便利的。在这种情况下,用户可以经由编程终端46链接到可利用的设备要素的库44并且使用其来在开发环境中修改HMI图形或者功能性。
应指出,可以向库44添加附加的设备要素。例如,如果HMI 26上没有驻留趋势设备要素,那么用户可以将这样的元素从驻留在编程终端46上的配置库50中下载至HMI 26。替代地,用户可以从资源库52来存取趋势设备要素,资源库52可经由网络(例如,因特网)直接被HMI 26访问或者通过编程终端46访问。这可能特别有益,因为可以单独地且定期地将新的且改进的设备要素下载至HMI 26,以增加新的功能性,而无需定期地释放新的转换程序或HMI操作系统或者运行或设计时环境软件。开发环境可以设置到这样的库的链接。此外,在使用嵌入代码的实施例中(例如,操作系统、服务器软件、设备对象等),由于嵌入代码驻留在HMI 26上,所以可以避免与嵌入代码的版本冲突并且可以消除编程终端软件升级的必要性。
为了追踪控制和监视系统24的一个或更多个部件的状态信息,控制和监视系统24的部件可以使用表示控制和监视系统24的各个示象的分布式数据模型。例如,分布式数据模型可以使得表示控制和监视系统24的数据模型的多个高速缓存的副本能够存在于控制和监视系统24内(例如,在控制和监视系统24的部件一个或更多个部件处)。如以下更详细地描述的,分布式数据模型可以结合增量脚本和分布式命令处理来工作。增量脚本可以使控制和监视系统24的一个或更多个部件能够确定数据模型的状态变化、生成只包含数据模型的变化和/或整个数据模型的增量脚本并且将增量脚本提供给控制和监视系统24的其它部件。其它部件可以消耗增量脚本并且将包含在增量脚本内的数据施加到数据模型的本地高速缓存副本(例如,包含在控制和监视系统24的部件之一的分布式副本)。此外,如以下将更详细地讨论的,控制和监视系统24的某些部件可以采用实现分布式命令处理的分布式执行引擎。这样的分布式命令处理使得控制和监视系统24的分布式部件能够基于提供给分布式部件的事件或者调度表来处理命令执行。
通过使用分布式数据模型、分布式增量传通信(例如,经由增量脚本)以及分布式命令执行,所得到的控制和监视系统24可以更鲁棒和灵活。例如,代之依赖于集中式控制/监视装置30处的集中式数据模型,可以使用分布式数据模型的副本来影响控制和监视系统24内的变化。例如,代之依赖于控制/监视装置30处的集中式数据模型来影响HMI 26的变化,HMI 26可以包括分布式数据模式的副本,依赖于该副本来影响HMI 26内的变化。此外,HMI 26可以接收下述状态增量43(例如,经由增量脚本),该状态增量43由HMI 26所消耗并且通过HMI 26施加到HMI的数据模型的本地副本。此外,如以下更详细地描述的,HMI 26可以包括下述本地执行引擎(例如,分布在HMI 26的执行引擎),该本地执行引擎用于在HMI 26处执行提供至HMI 26的命令。
此外,这种功能性使得同步数据存储能够遍及控制和监视系统24。这些同步数据存储可以通过使得多个用户能够对将要与其它数据存储中的每个数据存储同步的单个数据存储做出改变而实现协作。此外,由于数据存储可以高速缓存控制和监视系统24的数据的各个副本,所以可以进行脱机修改。例如,即使当控制器不可用时,通过使用在数据存储之一中高速缓存的数据,用户仍可以对控制和监视系统24进行修改。当用户恢复联机(例如,可以访问处理器)时,用户在脱机情况下所做的修改可以与其它数据存储同步。因此,用户能够以更相容且可靠的方式将变化提供给控制和监视系统24。
例如,一个用户可以在设计软件(例如Rockwell自动化股份有限公司的RSLogix 5000TM)中对标记符定义、元数据定义进行改变,可以重命名设计要素,可以修改报警设置、改变数据类型和/或修改数据记录情况。可以对本地数据存储作出由用户提交的这些变化。联机时,这些变化可以传播至控制和监视系统24内的其它数据存储,然后在整个系统24应用这些变化。脱机时,这些变化可以保留在本地数据存储并且当返回联机时(例如,重新连接到控制和监视系统24的控制器)可以被同步。通过变化的自动传播,可以避免冗余的变化进入,从而节约开发工作。此外,通过系统24基于自动重命名传播可以减少调试和初始化。此外,由于这些变化可以起源于整个系统,所以当不同用户开发控制器和HMI时可以实现灵活的工作流。
如上所述,通过分布式数据模型、经由增量脚本将变化传播至分布式数据模型以及分布命令执行,可以在常规控制和监视系统之上极大地改进控制和监视系统24。例如,可以由控制和监视系统24之内分布的数据模型的多份副本中的任何一个副本来服务控制和监视系统24的客户端(例如,请求控制和监视系统24的数据模型的数据的部件)。控制和监视系统24可以基于许多判定因素中的一个因素确定哪一个副本来服务客户端。例如,可以选择具体的分布式数据模型副本以基于诸如高效网络通路(例如,其中副本在本地或在网络上最靠近客户端、或者网络通路具有最大带宽等)等性能效率将数据提供至客户端。此外,处理考虑也可以被作为该决策的考虑因素。例如,这种鲁棒的控制和监视系统24可以使数据能够被提供至使用负载均衡技术的客户端。在一个实施例中,可以从包含已知的或可能的比控制和监视系统24的别的部件提供较少的请求的分布式数据模型的副本的部件向客户端提供数据。在一个示例中,控制和监视系统24可以包括两个控制/监视装置30(例如,2个自动化控制器)。控制和监视系统24可以预测或评述第一控制/监视装置30比第二控制/监视装置30接收更多的关于数据的请求。因此,控制和监视系统24可以确定从第二控制/监视装置30服务客户端以避免过度利用第一控制/监视装置30。因而,控制和监视系统24可以基于控制和监视系统24之内的部件负载通过均衡请求来避免控制/监视装置30的充溢。在某些实施例中,这可以包括提供来自单个部件的请求至阈请求数或阈数据量并且当达到阈值时移动至溢出源处。在一些实施例中,这基本上可以包括在提供数据时均匀分摊请求的负载或数据量。
除分布式数据模型、增量脚本以及执行引擎可以提供的负载均衡性能之外,这些性能还可以有益于在控制和监视系统24中的数据冗余。例如,控制和监视系统24之内的一个或更多个部件可以监视一个或更多个分布式数据模型的副本。基于副本不稳定(例如,副本没有精确地表示分布式模型)的检测,不稳定副本可以由稳定的副本(例如,精确地表示分布式模型的副本)代替。可以从分布在被确定为具有精确地表示数据模型的副本的控制和监视系统24中的数据模型的其他副本中的任何一个副本来获得稳定的副本。
在一些实施例中,控制和监视系统24的部件可以访问冗余池,该冗余池为分布式数据模型的有效副本或存储有分布式数据模型的有效副本的控制和监视系统24的部件提供指针。例如,当客户端部件请求数据模型中的数据时,其可以访问冗余池,该冗余池传送可获取数据的地址。如上所述,控制和监视系统24的一个或更多个部件可以监视数据模型的副本以确定非稳定副本。当检测到一个或更多个非稳定副本时,控制和监视系统24的部件可以将指针移动至非稳定副本或存储有非稳定副本的控制和监视系统24的部件。因此,非稳定副本不能经由冗余池而访问。
在某些实施例中,如上所述,在从冗余池移除非稳定副本(存储有非稳定副本的部件)之后,控制和监视系统24的部件可以用稳定版本替换非稳定副本。在替换了非稳定副本之后,控制和监视系统24的部件可以将替换稳定版本(或存储有替换稳定版本的部件)重新添加至冗余池以便将来使用。
为了更好地说明设计时环境与运行时环境之间的关系,图3提供了表示HMI 26和编程终端46之间的交互的高级别流程图。下面提供关于该过程的更多细节。通常,HMI 26和编程终端46的平台将包括操作系统或执行软件38、应用软件40、以及任何通信软件、微处理器、网络接口、输入/输出硬件、通用软件库、数据库管理、用户接口软件等等(图3中没有具体示出)。在所说明的实施例中,设计时平台和运行时平台在HMI26内交互。设计时平台为台式个人计算机平台(如,运行适当的操作系统38,诸如或)提供用作设计时环境16的视图,并且运行时平台经由操作系统(如, )与设计时平台协作。设计时平台提供动态服务器内容54,而运行时平台在HMI 26自身上显示视图(在显示屏设置在HMI 26上的情形下)。设计时环境16显示在浏览器48(如,Web浏览器或其他通用查看器)中。
图3表示在很高级别上设计时环境16如何与操作系统38、应用40和运行时环境14交互。箭头56表示内容在HMI 26与编程终端46之间动态交换。通常,与设计时环境16的交互是设计者58的任务,设计者58最初配置HMI屏幕或可视化、装置要素及其功能和交互、或者重新配置该软件。通常,操作者60直接在HMI 26上与运行时环境14交互。应该注意,虽然在本实施例中设计时环境16具有特殊需求,但其在很大程度上取决于操作系统38、应用40和运行时环境14。设计时环境16和运行时环境14可以利用某些基本技术(如,DHTML、HTML、HTTP、动态服务器内容、JavaScript、Web浏览器)来分别在设计时平台和运行时平台中进行操作。虽然在所说明的实施例中运行时环境14和设计时环境16处于分开的平台上,但在一些实施例中它们可以处于同一平台上。例如,设计时平台和运行时平台可以配置成或被视为单个平台。
在本发明的一个实施例中,使用设计时Web实施方式。该设计时Web实施方式通过利用Web浏览器(如,48),在HMI的DHTML的支持下,提供在设计时平台上运行的软件的速度和灵活性,如图3中的动态服务器内容54所示以及如以下所描述的。DHTML用于在设计时环境16中对Web内容执行动态操纵。此外,动态服务器内容54用于HMI中,以使动态Web内容服务于设计时环境16。该动态客户端-服务器环境允许Web浏览器模拟在设计时平台上运行的应用,而不需要针对有关处理器编译的软件。
图4是示出了根据本技术的实施例的设计时环境中的一个或更多个装置要素的图。该图包括通过显示器100(如,用于浏览器显示的屏幕)、属性编辑器102和HMI 26之间的关系而图示的交互。
由配置屏幕或显示器100表示的设计时环境包括静态内容104和动态内容。动态内容包括与任何显示或表示的装置要素106(如,虚拟开/关按钮、计量器)对应的图像。在本技术的一个实施例中,如下文所述,图像由HTML中的图像标签来指定,并且是由HMI创建的JPEG文件的一部分。静态内容104可由活动服务器页(active server page,ASP)服务器来创建或其可预先存在于HTML文件中。应该注意,在一些实施例中,仅指定的设计者可以编辑静态内容104。
在图4的表示中,装置要素表示106包含在视图容器108内。本领域技术人员将理解,容器通常定义打开某些装置要素以备使用的处理空间的部分。因此,容器108可以与仅包含当前屏幕内可视的要素的第一视图容器对应。如上所述,可以在HMI中设置很多这样的屏幕。诸如替选的控制或接口屏幕的其他屏幕可以设置在诸如容器110的其他视图容器中。通常,为了加速HMI的操作(如,在屏幕视图之间变化),这样的视图容器通过限定与视图容器相关联的各个装置要素或者内部设置有装置要素的表示的各个装置要素而被预定义并彼此相关联。全局容器112可以定义为包括各个视图容器所需要的所有装置要素、以及不可在任何视图容器中表示的其他要素。如图4所示,因此,视图容器108包括执行“慢移(jog)”功能且在第一屏幕中显示为表示的虚拟按钮106。新容器110包括若干个部件,诸如“开始”按钮114、“停止”按钮116、虚拟计量器118和数字读出器120。于是,全局容器112将包括各个视图容器的所有这些装置要素、以及操作可视装置要素所需要的但本身不可视的任何装置要素122。这样的装置要素可以包括执行计算、趋向、通信和许多其他功能的要素。
图4还示出了用户可以访问要素106的各个属性的属性编辑器102。如上所述,要素106还可以包括与要素106相关联的文本和连接,其也可以由用户通过编辑器(类似于属性编辑器102)来配置。
在实施例中,属性编辑器102可以经由从浏览器(如,图2的浏览器48)至服务器96(如,HTTP服务器)的查询字符串来与HMI 26交互,服务器96位于HMI 26上。服务器96与包含诸如动态链接库(DLL)的基于模块的互联机构12的ASP服务器98协作,以接收并响应查询。DLL允许将可执行例程作为单独的文件进行存储,该文件可以在需要或被程序引用时进行下载。在上述示例中,当接收到调用时,ASP服务器98重载页面,并且对查询字符串进行初始解析,从而导致移动命令的评估。接着,服务器侧脚本访问由图像106表示的设备要素18,并且更新其位置属性。接着,在页面上更新新的属性信息,并且将页面传递至浏览器48。
通信状态变化
现在讨论结合借助于增量(delta)脚本的分布式状态变化通知和分布式命令执行使用分布式数据模型优点,将提供对分布式状态变化通知的更详细讨论。如上所述,图2是根据本技术的实施例的适于利用增量脚本来提供部件状态信息的示例性控制和监视系统24的图解表示。如图所示,控制和监视系统24可以包括适于与处理28的部件进行接口连接的一个或更多个人机接口(HMI)26和一个或更多个控制/监视装置30。控制/监视装置30可以包括用于在控制和监视系统24上执行任务(如,过程控制、远程设备监视、数据获取等)的一个或更多个处理器和数据存储装置。此外,编程终端46可以使一个或更多个用户能够配置HMI 26和/或控制/监视装置30的属性。
在控制环境中,控制和监视系统24的各个对象(如,控制程序、标签、模块配置和HMI屏幕)的状态可以存储在控制和监视系统24的各个部件(如,编程终端46、控制/监视装置30、I/O模块和/或HMI终端26)的存储器(如,硬盘、只读存储器和/或随机存取存储器)中。控制和监视系统24中的每个部件能够以松散耦合、异步的方式独立操作。此外,部件能够以不同的编程技术(如,C++、Java和/或C#)来实现。当对控制环境对象的状态信息做出变化时,该状态信息会需要与位于其他部件上的状态信息同步,以使部件能够不断了解控制和监视系统24内的对象的状态。根据本实施例,为了解状态信息,存储状态信息的自动化部件可以接收被称为状态增量43的数据(如,已经变化的状态要素),而不接收如下状态要素:其没有变化,并且由此已经存在于关于存储有状态信息的各个部件的被存储的状态信息中。例如,状态增量43可以包括因控制和监视系统24内的动作而变化的任何数据。通过提供状态增量43而不提供未变化的状态信息,可以观察到效率提高。例如,在具有100个状态要素的传统的控制和监视系统24中,会将100个状态要素中的每个提供给存储有对象状态信息的每个部件。通过仅提供状态增量43,控制和监视系统24的部件可以仅传送变化的要素的数据。因此,如果100个状态要素中的仅一个要素变化,则不传送另外99个要素,从而相对于传统系统减小了网络流量。此外,仅提供状态增量43可以减小无意地重写在控制和监视系统24内的别的地方产生的状态变化信息的可能性。例如,在上述100个状态要素的情形下,当将全部100个状态要素传送至其他部件时,99个未变化要素会导致在别处对这99个部件中的一个所做出的变化进行重写。通过仅提供变化的要素(如,状态增量43)时,99个未变化要素不会受到已变化的且传送至其他部件的该一个要素的影响。
现在讨论状态增量24的使用,图5示出了控制和监视系统24,控制和监视系统24包括在控制和监视系统24的部件之间传达状态变化的持久化对象模型。例如,部件可以包括控制/监视装置30(如,PLC)、提供项目文件150的编程终端46、以及诸如驻留持久化对象模型152和协作会话154的控制/监视装置30和客户端156的部件。如先前所讨论的,控制/监视装置30可适于与处理28的部件进行接口连接(图1)。项目文件150可以是计算机文件输出,该计算机文件输出表示被定义并且存储在编程终端46的存储器(如,硬盘)中的控制和监视系统24的各种属性(图1)。持久化对象模型152可以是以持久方式保持跟踪对控制和监视系统24中的状态数据所做的变化(如,通过将状态数据存储在诸如硬盘驱动器的非易失性存储介质上)的控制和监视系统24的一个或更多个部件的状态数据的计算机模型。持久化对象模型152可以用作变化通信授权方(authority),以使得所有提交的对对象状态做出的变化通过持久化对象模型152来存储和传达。如下面将更详细讨论的,协作会话154可以是控制和监视系统24的部件之间的交互式信息交换接口,其提供做出未决(pending)变化(如,一些变化仅可以在用户选择以提交变化之后被应用并传达至控制和监视系统24的其他部件)的环境。客户端156可以是控制和监视系统24中将对象的状态信息保持在存储器中的任何其他部件,诸如提供对象的呈现视图的部件。
在所说明的实施例中,每个说明的部件(提供协作会话数据154的控制/监视装置30、提供更新项目文件150的编程终端46、提供持久化对象模型152和协作会话154的控制/监视装置30、以及客户端156)包括数据容器158(如,为数据保留的存储器)。数据容器158包含对控制和监视系统24的一个或更多个对象的状态进行定义的状态要素160。状态要素160可以用数据驱动方式来定义,使得不同的技术(如,C++、Java和/或C#)可以利用由状态要素160表示的数据。如上所述,希望有效地使存储在控制和监视系统24的各个部件中的状态信息同步。随着存储在数据容器158中的一个或更多个状态要素160变化,会需要使存储在其他部件中的数据要素160同步。
如上所述,持久化对象模型152可以是在控制和监视系统24中的各个部件之间应用状态变化时的指定授权方。持久化对象模型152可以包括针对其数据容器158中的一个或更多个对象被称为状态信息的黄金副本162的事物(如交叉影线所示)。黄金副本162包括总是被控制和监视系统24视为正确的状态信息副本。换句话说,黄金副本162是状态信息的授权副本。每条状态信息具有其自身的黄金副本162,该黄金副本162可以或不可以与其他状态信息的黄金副本162一起位于控制和监视系统24内(如在同一计算机系统上)。当一个或更多个状态要素的变化被提交时,以增量脚本170的形式将变化的要素提供给黄金副本162,所述增量脚本基于状态要素变化来更新。接着,状态要素变化经由增量脚本170从黄金副本提供至控制和监视系统24内的其他部件。
为了影响数据容器158内的状态变化,控制和监视系统24的部件可以起到各种作用。作用可包括变化仪器164、变化仲裁器166和观众168。变化仪器164(如,在本实施例中经由编辑器提供修改的项目文件150的客户端)向变化仲裁器166发送变化请求。变化仪器164可以通过接收关于变化请求的异步变化响应和/或错误响应来检验变化的成功。变化仲裁器166(如,驻留持久化对象模型42的服务器)查询输入变化、通过执行所请求的变化来处理变化、基于请求做出其他副作用的变化、或者放弃变化。变化仲裁器166可以将变化响应提供给变化仪器164、当出现变化时向观众168(如,客户端156和/或协作会话154所涉及的控制/监视装置30)发布变化通知、和/或将变化写到黄金副本162。观众168接收变化通知,并且使用通知来更新存储在其数据容器158中的其状态信息的本地副本。
如上所述,在控制和监视系统24的各个部件中使用的编程技术可以不一致。例如,一些部件可以使用C++,而另一些部件可以使用C#或Java。因此,图1中的设置在变化仪器164、变化仲裁器166和观众168之间的状态增量43能够以不依赖于特定技术的数据驱动增量脚本170来提供。增量脚本170能够以创建、更新和/或删除(CURD)数据的形式来描述对象状态变化。创建数据可以包括用于创建对象的一些或所有数据(如,对于矩形来说,包括矩形的空间位置、宽度和高度)。默认值可用于未与创建请求一起提供的任何数据。更新数据可以包括对象中已更新的数据(如,对于具有更新的空间位置的矩形图形而言,更新数据可以仅包括新的空间位置)。删除数据可以标识已被移除的对象状态数据(如,对于已被移除的矩形而言,删除数据可以包括待删除的矩形名称)(例如,可以描述已被移除的对象状态数据的标识符)。在一个示例中,利用以下C#伪代码来创建变化:
在一些实施例中,数据驱动增量脚本可以类似于以下伪XML示例:
在替选实施例中,不一定包括CreatorID(创建者ID)或parentID(父ID)。然而,在本实施例中提供这些ID以说明与变化一起被包含的附加数据(如,做出变化的实体的身份和/或创建当前对象的父对象)。由于数据驱动增量脚本170是不可知的(agnostic)或者不依赖于特定编程技术,因此增量脚本170可以由控制和监视系统24的任何其他部件来使用,而与所使用的编程技术无关。
如以上示例所述,在一些实施例中,增量脚本170可以包括一个以上的变化。因此,增量脚本170提供了以全有或全无方法处理整个变化集合的方式。例如,如上所述,为了在显示器上可视化,增量脚本内包含两个创建数据集合,一个集合创建矩形图像而另一个集合创建圆形图像。如果创建圆形图像导致错误,则可以不做出矩形变化,从而产生全有或全无方法。
增量脚本170还可以包括头信息,诸如变化修订号、提交变化时的时间戳、做出变化的用户标识符、和/或唯一修订标识符。用户标识符对于认证变化源是有用的。此外,增量脚本170包括应用变化的对象的标识符、已变化的状态要素160和状态要素160的变化值。当将每个状态要素160首次引入到增量脚本170的用户时,创建数据集合可以包括对象的全部状态(如,全部状态要素160)。
现在转向图6,示出了在变化仪器164、变化仲裁器166和观众成员168之间传达状态变化的进展190。在本实施例中,观众168(如,客户端156)将订阅请求192提供给协作会话154。订阅请求192可以包括存储在观众成员168中的状态信息的修订194的修订号。当协作会话154的修订与订阅请求192中发送的修订号不匹配时,协作会话将发出即时通知以利用增量脚本170的集合来更新,该增量脚本170的集合是使观众成员168达到存储在协作会话154中的修订所必需的。例如,在板块A中,客户端156发送包含修订5的订阅请求192。协作会话154处于修订8,从而将修订6、7和8的增量脚本170发送至客户端156。客户端156可以将增量脚本170应用于其状态,从而如板块B所示,客户端更新至修订8。
当变化仪器164(如,提供更新程序文件150的客户端或服务器)更新黄金副本162时,应向协作会话154和订阅观众成员(如,客户端156)通知变化。如板块B所示,在将黄金副本162从修订8更新至修订9(如,经由通过从变化仪器164发送更新的项目文件150而协调的变化)时,变化仲裁器166将修订9的增量脚本170提供至协作会话154。如板块C所示,协作会话154应用修订9的增量脚本170,进而更新至修订9。接着,增量脚本170传递至观众成员168(如,客户端156)。客户端156应用增量脚本170并且更新至修订9。
在某些情形中,观众成员可能需要比存储在协作会话154中的增量脚本更多的增量脚本170。例如,如果客户端156在处于修订2的情形下发送订阅请求192并且协作会话154仅具有修订5至8的增量脚本170,则客户端156将仍然需要修订3和4的增量脚本170。当协作会话154缺少必要的增量脚本170时,则它可以请求黄金副本162提供所需的增量脚本170。在一些实施例中,黄金副本162将存储对象状态信息的每个修订的所有增量脚本。然而,在其他实施例中,仅存储有限数量的脚本(如,增量脚本170的最新的5、10、50或100个修订)。如果黄金副本162可以提供必需的脚本,则通过协作会话154将它们传递至客户端156。然而,如果没能传递所必需的增量脚本,则可以通知观众成员168(如,通过异常消息)和/或观众成员168可以重载与当前状态信息相关联的整个要素集合,从而使观众成员168为最新。此外,如果观众成员168遇到应用一个或更多个增量脚本170的错误,则观众成员168可以重载与当前状态信息相关联的整个要素集合。另外地,在某些情况下,当存在为了更新观众成员168需要应用的大量增量脚本170时,相比应用状态增量,完全重载所有的状态信息可能更有效或更可取。在某些实施例中,当需要应用的增量脚本的数量超过最大增量脚本阈值时,观众成员168可以重载与当前状态信息相关联的整个要素集合。最大增量脚本阈值可以基于感知的增量脚本数量来定制,该增量脚本数量倾向于使状态信息的完全重载比加载增加的增量脚本更有效。
在某些实施例中,控制和监视系统24还可以包括反向增量。反向增量对从当前修订变化回先前修订所需要的变化进行描述。在应用时,反向增量脚本将对象的状态信息回退一个修订。这种反向增量脚本应用于包括与反向增量脚本相同的修订号的数据容器(如,图5的数据容器158)。反向增量脚本可用来为在控制和监视系统24中提交的变化创建“撤消”功能,并且还可以用于收回还没有提交的未决变化,如在提交变化之前在协作会话154中创建的那些变化。
图7示出了根据实施例的一个撤销方案。在板块A中,由第一客户端发起针对对象210的修订211的编辑会话。第一客户端在该会话中进行编辑以使对象210变为板块B中的未决修订214。第一客户端断开,并且当被断开时,第二客户端撤销修订214和213,如在板块C中示出的。然后,第二客户端作出新的变化213和214。
为了防止第一客户端仅基于修订号来检测它是最新的,可以为每个修订分配标识符,以使得修订号和标识符的组合创建修订号的唯一标识符。当应用反向增量脚本以撤销变化时,可以保留所撤销的增量脚本,以使“恢复(redo)”功能可以实现。当恢复变化时,由于增量脚本重新引入了先前已经移除的相同变化,因此再次使用先前的修订标识符。然而,当做出了新的修订时,使用新的修订标识符,以使控制和监视系统24的部件不会将所撤销的修订与具有相同号的新修订相混淆。
例如,图7中的每个修订具有相关联的标识符。修订211具有标识符M,修订212具有标识符R,原始修订213具有标识符T,并且原始修订214具有标识符X。当撤销修订214和213时,将它们从未决修订中移除。如果它们被“恢复”,则将它们重新添加到未决变化,从而重新生成具有相同标识符T和X的修订。然而,在本示例中,作出新变化,从而分别创建具有标识符S和Y的新修订213和214。因为它们是全新的修订,所以使用新标识符S和Y来标识修订。当第一客户端返回为在线并且重新订阅以便更新时,毫无疑问,它不是当前最新的,因为其最终的修订是214-X而当前修订是214-Y。在一些实施例中,第一客户端可以通过跟踪修订号和标识符以找到编辑路径并且相应地更新修订信息来进行更新。在一些实施例中,当找到不一致的修订号标识符时,部件可以重载整个状态信息集合(如,所有的状态要素160)。
可以对正在进行未决编辑的协作会话(如,图6中的协作会话154)以外的黄金副本(如,图6中的黄金副本162)作出变化。图8示出了以下情形:当前在协作会话154中进行未决编辑时做出对黄金副本162的外部变化。如图所示,第一未决变化Δ1应用于生成修订222-J的对象210的修订221-B。另外,第二未决变化Δ2和第三未决变化Δ3分别应用于生成修订223-N和修订224-D。在提交未决变化Δ1、Δ2和Δ3之前,控制和监视系统24的另一个部件将外部变化Δ1’应用到当前处于修订221-B的黄金副本162。当协作会话154接收到新修订222存在的通知时,协作会话154收回未决变化Δ3、Δ2和Δ1(以将它们作为将来要处理的正向增量来保存)。然后,协作会话应用修订222-H的增量脚本,并且然后再次应用分别创建修订223-R、224-C和225-X的未决变化Δ1、Δ2和Δ3。在某些情况下,可以修改未决变化Δ1、Δ2和Δ3以在修订222-H之后被应用。在一些实施例中,可以向在协作会话154中做出未决变化的观众成员通知未决变化正被应用到对黄金副本162的最新外部变化上。
在某些情况下,用户会期望中止在协作会话154中做出的未决变化。图9示出了在协作会话154中中止未决修订的处理。如本示例中所示,用户从修订221-B创建未决变化Δ1,进而生成修订222-J。从修订222-J创建未决变化Δ2,进而生成修订223-N。此外,从状态223-N创建未决变化Δ3,进而生成修订224-D。用户可以确定变化不是必需的和/或不是期望的,并且可以取消变化(如,通过选择图2中的编程终端46中的取消按钮)。为了收回未决变化,具有未决状态变化的部件可以应用每个未决变化(如,Δ3、Δ2和Δ1)的反向增量,以使得保留原始非未决修订(如,修订51-B)。替选地,由于黄金副本162具有所存储的最新的非未决修订(如,不包括待中止的变化的修订),因此部件可以仅从黄金副本162重载全部的状态信息。因此,如图9所示,通过反向增量或从黄金副本162重载,在时间T1处协作会话剩下修订221-B。因此,协作会话可用来根据修订221-B进行附加编辑(如,Δ4),从而在时间T2处生成新的修订222-R。
在某些情况下,会有益的是,将多个未决变化压缩成一个修订中,而不针对每个未决变化创建单独的修订。图10示出了以下实施例:将一些未决变化组合成一个编辑集合,使得生成较少的修订。如图所示,在时间T0处打开编辑会话。将未决变化应用到修订221-B,从而生成修订222-J、223-N和224-D。未决变化可能与对共用状态要素作出的变化有关(如,每个变化可修改显示器上矩形的空间位置)。例如,修订222-J可以将矩形布置在屏幕的中央,修订223-N可以将矩形位置更新到屏幕的左上角,并且修订224-D可以将该位置更新到屏幕的左下角。因此,虽然应用了若干值变化,但是可能仅需要从原始值(如,修订221-B)到最终值(例如,位于屏幕左下角,如修订224-D中所述)的增量。因此,协作会话154中的中间修订会衰退(collapse)到黄金副本162上的单个修订。因此,如在T2处所示,未决变化Δ1、Δ2和Δ3被压缩并应用到修订221-B,从而产生修订222-R。在部件被配置成在检测到与修订号相关联的冲突标识符时完全地重载所有状态信息的实施例中,当向部件通知修订222-R可用(如,在T3处示出的)时,部件可以重载修订222-R的所有状态信息。本领域普通技术人员应当理解,这仅仅是可应用以组合增量的一种压缩形式。所提供的示例无意限定未决变化的压缩技术。
分布式命令执行
现在转至讨论在变化被传达时如何在控制和监视系统24内应用变化,图11示出了具有各个部件(如,HMI终端26、控制/监视装置30、编程终端46、智能输入/输出装置260和哑输入/输出(I/O)装置262)的控制和监视系统24。智能I/O装置260可以包括中央处理单元(CPU),以使得智能I/O装置260可以基于提供给它们的数据来执行逻辑。哑I/O装置262可以不包括CPU,因此,可以依赖于控制器来将逻辑应用到它们的输入。
执行引擎264可以嵌入能够支持执行引擎的控制和监视系统24的各个部件内。在一个示例中,带有CPU的部件与执行引擎264一起嵌入。执行引擎264使控制和监视系统24(如,状态增量43)中的变化能够应用到具有嵌入式执行引擎264的各个部件。执行引擎264包括命令(如,命令脚本266)和触发条件268。当触发条件268评估为真时,由执行引擎264执行命令脚本266。例如,触发条件268可在以下情况下评估为真:存在智能I/O装置260或哑I/O装置262的状态变化、控制/监视装置30中的数据值的变化(如,由增量脚本170产生)、和/或用户与HMI 26进行交互。通过遍及控制和监视系统24的各个部件分布执行引擎264,可以更有效地处理控制和监视系统24的变化。例如,可以利用各个部件的CPU的处理能力来执行控制和监视系统24的部件所需要的控制逻辑。此外,在控制和监视系统24的各个部件上执行命令可以增加冗余度,和/或较之集中控制器,提供更好的地点来执行命令。例如,响应于控制和监视系统24的变化,使智能I/O装置260能够执行特定于智能I/O装置260的逻辑,而不需要依赖于控制/监视装置30。
如上所讨论的,一些部件(如,哑I/O装置262)可能不支持嵌入式执行引擎264,或可支持非嵌入式的执行引擎264。这些部件可以依赖于其他部件(如,控制/监视装置30)来执行没有嵌入式执行引擎84的部件的逻辑。例如,如图11中所示,哑I/O装置262没有嵌入式执行引擎264。反而,使用控制/监视装置30的传统逻辑(如,梯形逻辑(LL)、功能框图(FBD)、顺序功能图(SFC)等)来轮询数据。
命令(例如,诸如用户和/或系统定义的中继梯形逻辑的命令脚本266)可以是存储在有形的非临时的计算机可读介质(如,硬盘驱动器、数据库、只读存储器和/或随机存取存储器)中的基于触发条件或在调度时间执行的计算机可读指令(如,对象)。例如,命令可以存储在图5的数据容器158中。命令可以从命令基类中继承属性和/或基本功能集。可以将特定的特性和行为添加到基类中以导出其他命令类,诸如用于屏幕导航和写标签值的类等。在某些实施例中,命令基类可以包括可以用于输入和输出的参数数据名称/值对的集合、或参数。此外,命令基类可以包括指示命令已经完成执行的“完成”特性。命令基类可以包括指示命令执行因错误而停止的错误特性。此外,命令基类可以包括由控制和监视系统24用于确定谁负责命令的存储清除(如,什么实体应当在执行之后将命令从数据容器158删除)的父属性。命令基类可以包括对命令进行标识的名称特性。名称特性可以用在表达与触发条件268中以使命令特性可以触发附加命令。命令基类可以包括指示命令的执行进展的进展属性并且还可以具有指示命令的执行已经超时的超时特性(如,在所分配的时间段内没有执行)。命令基类可以包括将命令添加到适当的执行线程的调度属性,这将在后文中更详细地讨论。此外,命令基类可以包括具有执行指令的执行属性。
在某些实施例中,可以将命令组合或放在一起。具有两种基本的组合形式:顺序命令组合和并行命令组合。在顺序命令组合中,被放在该组中的每个命令以给定的顺序一次一个地执行。有用的顺序命令组合的一个示例可以是以下命令集:1)写入标签以启动罐填充(tank filling);2)等待特定的标签值;以及3)变化图形要素的状态。以下是可能的顺序命令组合的伪代码示例:
在并行命令组合中,该组合中放在一起的每个命令被同时执行。例如,下面写标签命令可以在同一启动时间执行:
在某些实施例中,命令组合可以包括顺序组合和并行组合的结合。例如:
现在转至图12,提供了通过执行引擎执行的帧循环300的实施例。帧循环300是在控制时间段(如,每秒30次)内运行的计算机可读指令集合。帧循环300的目标是对提供给图11的执行引擎264的数据变化(如,状态增量43)作出反应。如图所示,帧循环300可以在块302处评估表达。例如,通过数据获取线程303来提供表达数据(如,数据对象的值),数据获取线程303对控制和监视系统24的状态数据进行访问。在块304处帧循环基于所评估的表达来对触发条件(如,图11中的触发条件268)进行评估。如果基于所评估的表达,触发条件268中的任意一个评估为真,则可以对与触发条件268相关联的命令(如,图11中的命令脚本266)进行调度或执行。如下文中关于图13更详细讨论的,可以在帧循环300内执行某些命令并且可以在其他线程或线程池(如,用户输入线程305和线程池307)中调度并执行其他命令。在块106处,执行被调度以在帧循环300中运行的命令或帧命令。接着,在块308处执行任何过渡更新(如,如何从一个值变化到另一个值的计算机可读指令)。过渡更新的一个示例可以包括将状态变化符号化的图形动画,例如,示出了开启阀的流程或图形表示的最近状态变化的淡出的动画箭头。然后,帧循环300可以渲染(render)由执行的命令应用的变化(如,渲染更新的屏幕图像和/或新的数据值)。
如上面所讨论的,帧循环300可以在控制时间段(如,每秒30次)内运行。在一些实施例中,可以通过以给定的时间间隔跳过一部分帧循环100来调节帧循环300的执行。例如,假定帧循环300每秒运行30次,则帧循环300可以设计成每隔三帧运行表达评估(块102),可以从第二帧开始每隔三帧评估触发器(块304),并且可以从第三帧开始每隔三帧渲染过渡更新(块308)。该渲染(块310)可以在每个帧处继续执行,或可以仅在出现变化时优化运行。因此,依然可以依次执行每个块,但被限制为以较小的频率(如,1/3频率或每秒10帧)执行每个块。
此外,可以基于运行执行引擎264的硬件来修改帧速率。例如,在一些实施例中,当利用诸如基于的系统的低功率处理器时,帧循环可以以每秒12帧来运行,当使用基于Atom的系统时,帧循环可以以每秒30帧来运行,当使用台式计算机时,帧循环可以以每秒60帧来执行,并且当使用基于浏览器的系统时,帧循环可以以每秒24帧来执行。此外,过渡选项可以允许较少的过渡(如,每6帧1次)和/或可以根据所使用的平台来使过渡不会经常渲染(如,不是每一帧)。执行引擎264还可适用于基于帧循环300的各种阶段所确定的执行时间,在运行时间期间调节帧循环300。例如,表达繁重的屏幕会需要更多的表达评估时间,并且过渡繁重的屏幕会需要更多的过渡处理/执行时间。
现在转至讨论如何调度命令以便执行,图13示出了根据实施例的用于调度命令的处理320。当在块322处触发条件268评估为真时,开始调度处理320。如先前所讨论的,可以具有与触发条件268相关联的一个或更多个命令。根据与触发条件268相关联的命令的类型,处理320可以采取两种路径中的一种。命令可以是帧命令324或线程命令326。帧命令324影响主帧循环300上的数据。为了在主帧循环300上执行,可以将帧命令324添加到帧命令列表326。然后,可以在主帧循环300上执行帧命令324(图12中的块306)。通常,这些命令变化重新渲染数据所需要的数据。因此,这些命令可以在渲染之前执行(图12中的块310)。
线程命令326是不访问帧循环300执行的存储空间中的数据的命令。与帧循环300相比,这些命令在不同的线程上自由调度。因此,当对于线程命令326而言触发条件268评估为真时,调度线程命令以在线程池307中运行。通过利用线程池307,可以更有效地利用资源。例如,通过将线程命令326与帧循环300线程分离,帧循环300自由地执行更重要的命令和/或必须在帧循环300上运行的命令。
可链接插件架构
现在讨论控制和监视系统24内的变化通信和命令执行,接着讨论通过可链接插件功能进行的数据变换。如上所述,控制和监视系统24可以是具有可在系统24的部件之间通信的许多资源类型的数据驱动系统。资源类型是标识资源是什么的数据分类。该资源类型的示例可以是标签、对象数据类型、可视化屏幕、或系统24中的任何其他用户可定义对象。这些资源可以在彼此之间继承功能,从而创建高度动态型系统。换句话说,系统内可存在具有不同粒度级别的很多资源类型。
有时,会希望对控制和监视系统24的部件进行修改。例如,设计和/或控制软件的制造方或控制和监视系统24的用户可能希望将一种类型的数据(与数据相关联的事件)变换成另一种类型数据或事件。这些修改可以添加至对控制和监视系统24进行定义的基本的机器可读指令,然而该修改很可能需要重新编译机器可读指令。因此,控制和监视系统24的部件可以使以下插件能够被生成:其可以在系统24中处理各种资源类型。插件是与应用的机器可读代码分开的机器可读代码,其使得能够实现可定制或增加的应用的功能。图14提供了根据实施例的一个这样的系统的图示。
类似于图1,图14的系统350包括控制器30,其代表控制和/或监视装置。在操作中,控制器30经由传感器34和致动器36来监视并控制处理28。此外,系统350包括HMI 26,HMI 26包括使人能够监视和/或控制系统350内的各种处理的服务352。系统350中的编程终端46可以使一个或更多个用户能够配置HMI 26和/或控制器30的属性。
如上所述,存在会希望对系统350添加附加功能的许多实例。例如,系统350的用户可能希望使得能够实现在HMI 26和/或编程终端46中不可用的定制的机器实施的指令。另外,HMI 26和/或编程终端46的制造方可能希望实施新的特征,而不重新构建对系统350的这些部件进行限定的整套机器可读指令。因此,部件(如,HMI 26和/或编程终端46)可以包括用于处理插件的机器可读指令,所述插件可被定义为限定HMI 26和/或编程终端46的指令以外的机器可读代码的部分。这些插件能够修改部件的功能,而不需要重启部件。
如图14所示,HMI 26和编程终端46分别配备有插件管理系统354和356。这些插件管理系统354和356可以使得HMI 26和编程终端46能够分别登记插件358和360。通过登记插件358和360,HMI 26和编程终端46可以得知并实现插件功能性。例如,插件358可以包括要在HMI 26中使用的外部安全逻辑。用户或HIM 26制造商可以创建插件358并经由插件管理系统354向HMI 26登记插件358。
在向HMI 26和/或编程终端46登记时,插件358和360可以访问它们被登记到的部件的服务352和355。例如,HMI插件358可以经由服务接口364访问HMI 26的服务352。编程终端插件160可以经由服务接口366访问编程终端46的服务355。在一个实施例中,接口364和366可以是可从插件358和360接收交互指令的应用编程接口(API)。
如上面所讨论的,可以在系统350的部件之间传送资源362。资源362可以是在多态链中创建的对象。多态性与具有公共接口(例如,功能)的对象的能力有关,尽管类型不同。另外,多态链可以推出不同类型的资源来源于彼此。在简单示例中,系统350中可以存在类型为形状、矩形和方形的资源362。矩形类型可以从形状类型导出,而方形类型可以从矩形类型导出。此外,这些资源362可以由通用对象模型或不将容纳者与其它请求参数区分开的模型来定义。由于这些资源类型由通用对象模型来定义,因此对资源362的数据访问和变换可以普遍化,而无需将变换容纳者和与资源362相关联的其它参数区分开。因此,可以使得插件管理系统354和356能够访问并使用多态链中的任何位置的数据。例如,用于调整资源362的大小的插件同样可以用于调整矩形和方形的大小。这可以通过能够链接在一起以处理特定资源类型的一系列插件而发生。例如,插件管理系统354和/或356可以基于定义资源362的通用对象模型路径来确定用以处理特定资源362的适当的可链接插件子集。在特定实施例中,插件可以指定它们处理的特定类型的资源。插件管理系统354和/或356可以确定实施功能性所需的适当的链(例如,适当的插件集合和适当的顺序)。
可以通过可链接插件实施的特征的数量是非常巨大的。由于插件是可链接的,因此可以生成用于系统350中存在的几乎所有资源类型的特征,而与多态链中可以找到资源类型的点无关。此外,插件可以被设计为在资源的创建和/或删除之前、资源的创建和/或删除期间、和/或资源的创建和/或删除之后添加功能性。因此,能够处理许多资源类型的插件的完全动态集合是可能的。
基于可扩展ROA的控制和监视系统
如可以理解的,使用本文中讨论的特征,针对控制和监视系统可以采用可扩展的面向资源的架构装置(ROA)。通过为了灵活性和可扩展性而针对控制和监视系统的部件定义公共框架并在该框架周围构建部件,ROA可以使得能够实现控制和监视系统内的增强的可扩展性和分布。例如,该框架可以使得能够与控制和监视系统中的部件数量无关地在系统中实现数据分布和功能性,从而产生水平可扩展性。例如,该框架可以使得能够实现单个用户的简单配置、基于PC的应用以及允许多用户协作的基于云的系统。此外,该框架可以提供控制和监视系统上的部件实施的基本功能性集合,从而产生垂直可扩展性。例如,从I/O设备、联网、控制器、数据存取、编程和监视软件产品到企业连接性范围内的部件可以参与系统工作流。通过提供ROA框架,控制和监视系统可以提供这些部件中的功能性分布的简易性。此外,当在该框架周围没有构建一个或更多个传统部件和/或第三方部件时,在该框架周围限定的代理可以与传统部件和/或第三方部件相关联以利用该框架。图15示出了可以由控制和监视系统500中的ROA框架定义的功能范围的框图。
控制和监视系统的架构装置的定义和实施限定了:可以如何布置控制和监视系统的部件,以成本有效地对宽范围的配置进行寻址并指示使用该范围的配置获得的利益。例如,控制和监视系统500可以提供可在可视化设计和运行时模式中运行的数据项目浏览器和编辑器。根据本实施例,数据项目浏览器和编辑器可以在控制和监视系统的部件(例如,控制器和可视化软件设计器)上提供公共用户体验。此外,可以设置数据登记部件,其可以存在于控制器、HMI或控制和监视系统的其它部件中。因此,该数据可以通过软件和企业层来合并,使得使用该数据的新的功能性可以被有效地引入。
通过将应用和/或服务框架中的公共服务驻留在不同的部件(例如,软件、终端、控制器、I/O等)内,可以设计这样的接口:该接口可以将在系统的不同部分中运行的部件结合到一起。例如,可以增加灵活性以在控制和监视系统500中的不同产品中利用相同的软件部件。该再利用便于构建具有相似特征的产品以及具有较小开发成本的用户体验。此外,该再利用允许构建具有变化的规模和相似能力的产品(例如,具有一个控制器和一个操作者终端的小型系统、或具有若干控制器和终端以及HMI的大型系统)。
本实施例改变产品被构建和分发的方式。实际上,本实施例提供一次构建软件部件的能力以及在不同产品中(在软件产品和固件产品两者中)再利用对应的设计/代码的能力。这会对结合在一起构成系统特征的各种软件和固件产品分发公共用户体验。此外,本实施例可以允许应用从任何形状因子设备(例如,个人电脑、平板电脑/记录板、智能手机)存取数据,这可以使得能够以比传统系统更小的相关成本向不同类型的设备分发公共用户体验。本实施例提供了可扩展性和集成特征,使得系统可以在能力上升级或降级。应注意,本实施例的一些部件还将被集成到自动化控制设备(例如,终端、控制器、I/O)中。
现在转至对设置在控制和监视系统500中的基本功能性的更详细的讨论,图15提供了用于控制和监视系统500的部件的功能范围。如上面所讨论的,控制和监视系统可以包括设计时部件和运行时部件。这些部件可以包括由架构装置框架定义的基本功能性。例如,控制和监视系统500包括运行时客户端502、运行时服务器504、设计者客户端506、设计者服务器508、以及控制器部件510。这些部件502、506、508和510中的每个可以包括使得能够实现本文中所讨论的可扩展性和增强实现的特定功能性。现在将提供对每种功能性的简单描述。
根据本实施例,可以在架构装置框架中定义警报子系统520。警报子系统520可以处理任何运行时系统警报,而不仅处理传统的HMI警报。例如,警报子系统可以处理配置警报或控制和监视系统中的任何其它警报。警报子系统520可以使得在运行时服务器504和/或控制器510中长期存留历史警报数据。此外,历史警报数据可以通过运行时客户端502和/或设计者客户端506中设置的框架功能性查看。可以在运行时服务器504、控制器510和/或设计者服务器508中设置警报配置信息的存留。因此,将不需要用户输入部件的冗余的警报配置信息。可以在设计者客户端506中设置用于警报配置的用户接口。另外,可以在运行时服务器504和/或控制器510中设置警报检测和状态管理功能性。
根据本实施例,应用框架522的功能性可以提供用于将设计时任务集成到单个用户接口应用的框架。例如,应用框架522可以包括用户接口特征和行为、协调与控制行为、交叉切割(cross-cutting)应用特征、添加管理特征、以及版本管理特征。可以在具有交叉插件(例如,用户任务和工作流)协助的公共的上下文敏感帮助系统中设置运行时客户端502,但是大部分应用框架功能性可以设置在设计者客户端506中。设计者客户端506中可以包括的特征示例包括:
●允许针对包括UI抽象层的集成开发环境(IDE)开发可插入模块,
●支持针对应用开发许可IDE的控制使用,
●对尝试使用IDE的用户进行认证,
●将可插入模块加载到设计时环境中,
●发布和/或订阅松散耦合事件(例如,允许应用部件和可插入模块相互通信),
●提供应用外壳,应用外壳提供IDE应用的基本外观和结构,诸如基本菜单项默认视图和公共处理器,
●提供上下文敏感动作配置和/或封送(例如,复制/粘贴、拖/拽等),
●控制可插入模块与IDE框架之间的版本管理,
●提供具有交叉插件(例如,用户任务和工作流)协助的公共的上下文敏感帮助系统,以及
●启动第三方应用以浏览/编辑第三方应用数据(例如,字处理文档、布线图等)。
根据本实施例,还可以包括改变仲裁526(包括多用户编辑)。该功能性可以管理由多个用户作出的配置更新。例如,运行时服务器504、设计者服务器508和/或控制器510可以设置有下述功能性:该功能性检测更新并提供改变通知、锁定资源(例如,经由检入/检出功能性提供对资源的排他访问)、和/或解析对相同源作出的多个更新。设计者客户端506还可以包括资源锁定功能性。
根据本实施例,还可以包括配置部署功能性528。该子系统对用户的配置内容进行部署。例如,使用该功能性可以将HMI显示器、控制器程序和服务器配置数据部署到该系统。使用提供给设计者服务器508的功能性,针对特定的目标类型生成配置数据的部署分组。例如,特定目标类型可以包括设备类型(例如服务器、控制器、或其它部件)或固件版本。此外,设计者服务器508可以包括下述功能性:其向/从系统中的各种服务器、控制器和设备分布和/或采集部署分组。
运行时服务器504和/或控制器510可以包括配置部署功能性528以根据适当的目标部署分组(诸如基于设备类型、固件版本等被定为目标的部署分组)更新服务器504和/或控制器510。运行时服务器504和/或控制器510可以包括配置部署功能性528以创建对应于服务器504和/或控制器510的部署分组。例如,这可以出于恢复的目的而完成。设计者客户端506可以包括生成用于执行配置部署的用户接口的功能性。
在架构装置框架中还可以提供控制器逻辑534。控制器逻辑534可以为系统500的一个或更多个控制器提供实时的自动化控制编程能力。例如,控制器510可以包括逻辑执行功能性。此外,控制器510和设计者服务器508可以包括用于存留由系统500的其它部件提供的逻辑代码的功能性。另外,设计者服务器508可以包括逻辑模拟功能性。设计者客户端506可以包括用于编程和/或卸下逻辑代码的用户接口。运行时客户端502和/或设计者客户端506可以包括逻辑执行的可视化。
交叉引用逻辑536可以对项目和/或应用内或横跨项目和/或应用使用的交叉引用对象(例如,标签、图形、对实例的库模板等)提供支持。例如,设计者客户端506可以包括用以配置交叉引用选项的用户接口。此外,运行时客户端502和/或设计者客户端506可以包括用以显示交叉引用结果的用户接口。运行时服务器504、控制器510和/或设计者服务器508可以包括根据配置数据生成或存留交叉引用信息的功能性和/或查询交叉引用信息的功能性。设计者服务器可以包括生成详细交叉引用报告(例如,用于系统报告)的功能性,并且运行时客户端502和/或设计者客户端506可以包括从与交叉引用结果相关联的用户接口启动部件编辑器和/或阅览器的功能性。
根据本实施例,在架构装置框架中还可以包括文化切换功能性538。这些功能性提供在运行时切换语言的能力以及本地化的其它方面。例如,在运行时期间可以切换语言、文本脚本、数字货币、日期和/或时间格式化。在设计时编辑器和运行时客户端两者中可以支持这些功能性。例如,可以使得运行时客户端502和/或设计者客户端506能够切换客户端文化(例如,针对用户生成的和/或系统生成的内容切换语言)。此外,设计者客户端506可以使得用户能够本地化文本数据和本地化显示、报告等。可以针对不同语言改变布局。例如,德语显示将需要比英语或汉语显示更大的标记空间,这是因为德语字将更长。因此,布局可以基于德语本地化而改变。设计者客户端506还可以使得用户能够针对项目配置默认语言并执行对数据值的特定文化的格式化(例如,数字或日期格式化等)。运行时客户端502还可以包括用于执行特定文化的格式化和切换客户端文化的功能性。控制器510、运行时服务器504和/或设计者服务器508可以包括管理配置数据项的局部变量的功能性。
根据本实施例,还可以支持复杂的脚本语言(例如,汉语、泰语、阿拉伯语、波斯语等)。例如,客户端可以支持显示和接收亚洲文本作为输入。此外,例如,服务器可以对亚洲文本进行存储、搜索、过滤、排序和/或编索引。控制器510可以在标签中存储和/或搜索亚洲标签。
根据本实施例,设备配置540可以管理硬件设备和/或设备仿真器的配置。例如,可以管理终端用户工厂设备、智能传感器、PLC、Logix控制器、PanelView 5000设备、网络驱动器和设备仿真器。设计者客户端506可以包括用于添加和/或移除设备的功能性。此外,运行时服务器504、控制器510和/或设计服务器508可以包括提供设备配置接口的设备管理服务,和/或可以识别、发现、创建、更新或删除设备。另外,这些部件可以包括用于存留设备配置的功能性。运行时客户端502和/或设计者客户端506可以包括用于配置设备参数(网络化、I/O等)的功能性。此外,这些部件可以包括用于浏览可用设备的用户接口。
设计者服务器508可以保持设备配置库(例如,软件、固件、更新、设备参数、项目配置数据等)。运行时客户端502、运行时服务器504和/或控制器510可以包括用以向和/或从该库发送和/或接收设备配置的功能性。此外,这些部件可以包括感测何时替换了设备和/或应用设备配置(例如,安装更新、应用设备参数、应用项目配置数据等)的功能性。
还可以在架构装置框架中设置诊断功能块544。例如,系统500可以是分布式诊断系统,其允许用户监视其控制系统的整体“健康和性能”。例如,可以监视和采集CPU负载、每秒的消息、存储器利用、用户定义的关键业绩指标(KPI)、警告消息、出错消息、和/或故障条件。此外,可以保持诊断数据的历史记录。诊断可以与事件和警报功能整合以允许关于关键情形的通知以及允许对关键情形做出响应。该功能性允许用户在HMI显示器上显示诊断信息。此外,该功能性可以允许用户(或技术支持工程师)运行诊断探测器,诊断探测器主动测试系统部件的行为(例如,类似于许多网络适配器供应商提供的诊断测试)。另外,诊断可以包括分析功能性、诸如根源分析等。
运行时客户端502和/或设计者客户端506可以包括当前和/或历史诊断值和事件的可视化。设计者客户端506可以包括用于配置和/或定制诊断系统的用户接口。例如,UI可以允许用户指示诊断信息的类型和对于用户重要的细节的水平。此外,用户可以提供定制(例如,定制诊断显示和报告)、抑制特定诊断(例如,抑制诊断值和/或事件)、和/或创建客户诊断值。运行时服务器504、控制器510和/或设计者服务器508可以包括存留配置和/或定制数据的功能性。此外,还可以存储诊断值和事件历史的长期存留。系统500的每个部件可以包括下述功能性:监视诊断指示器、生成诊断值和事件、和/或临时缓存一定量的值和/或事件历史数据。另外,运行时服务器504和/或设计者服务器508可以包括执行诊断数据分析的功能性,并且运行时客户端502和/或设计者客户端506可以包括提供分析结果的可视化和/或报告的功能性。
根据本实施例,事件功能块546也可以被设置为系统500的部件。事件功能块546可以使得部件能够发布和/或订阅与系统500中发生的异步事件相关的信息。事件可以包括由系统定义的系统事件,或者事件可以是由用户定义的用户设备事件。例如,事件可以包括警报、生产线启动和/或关闭、使设备在线和/或离线、和/或配置改变。事件功能块546可以构建在用于传送事件数据的消息收发和/或传输基本设施的顶部上。事件分发器(dispatcher)可以便于发布和/或订阅事件。事件分发器从发布器接收事件并向订阅器发送事件。发现能力允许订阅器得到正被发布的事件类型列表。系统500的每个部件可以是系统500中的事件源。历史事件服务可以保持事件的持久历史日志用于稍后的检索和分析。用户配置的事件响应能力可以允许用户指定要在选择的事件发生时自动进行的动作和/或操作。在设计者客户端560中,用户接口可以被设置用于配置用户配置的事件响应以及配置和/或订制事件(例如,抑制“麻烦”事件、配置事件传播的范围、定义事件触发等)。此外,运行时服务器504、控制器510和/或设计者服务器508可以存留事件配置数据。
图形子系统552可以呈现用于设计和运行时部件的视图。该子系统可以包括HMI专用的图形用户接口(GUI)控件、动画等。运行时客户端502和/或设计者客户端506可以包括下述功能性:呈现二维和/或三维图形、与物理硬件对接(例如,使用OpenGL和/或DirectX)、呈现制造方专用的动画行为(例如,水平和/或垂直填充)、提供可再利用的图形控件和/或部件(例如,第三方部件)、包括可视对象模板(例如,借助于WPF控制模板)、包括主页面(例如,框架集)、布局管理(例如,不同的窗口尺寸和显示分辨率)、和/或数据绑定能力。运行时服务器504和/或设计者服务器508可以从中央位置存储和/或检索图形对象,并且可以分发特定运行时呈现设备的正确格式。
硬件类功能块554可以包括提供关于系统500中的硬件类型的信息的子系统。有效通信路径可以通过使得能够实现系统500中的硬件的拓扑浏览来确定。硬件类块554可以提供关于硬件所支持的固定对象类型的信息。对象定义可以包含用于配置、调节和/或与硬件的其它交互的面板信息(例如,标记和行为)。该功能块554可以支持现有格式(例如,EDS、EDDL等)用于输入硬件类信息。此外,块可以与诸如FDI的工业标准结合。硬件类块可以在设计者客户端506中提供用于输入硬件数据的UI,可以在设计者服务器508中管理系统硬件信息的完整群体,和/或可以在运行时服务器504和/或控制器510中存留并部署硬件类信息子集以支持运行时服务。
许可功能性560可以使得能够激活可许可的产品特征。例如,可以支持节点锁定和浮动许可。运行时客户端502和/或设计者客户端506可以包括用于管理许可信息的UI。此外,系统500的每个部件可以将许可映射到产品特征,激活信息的安全存储,和/或加强许可限制。
还可以提供消息收发功能块568。该块568可以提供用于在软件部件、过程、服务、计算机、设备等之间通信的基于合约的消息收发能力。消息收发功能性可以包括根据需要在各种传输协议(例如,HTTP/HTTPS、TCP/UDP等)建立隧道的能力。此外,该块提供安全通信信道、从而支持认证、授权、私密性、完整性和不可否认性。该块还支持REST类型协议的实施。每个部件可以包括向/从其它部件发送和/或接收消息的能力。还可以包括用于配置消息收发策略的UI。
在系统500中还可以包括多监视器支持572。设计者客户端506可以包括用于配置多监视器支持的用户接口。运行时服务器504或设计者服务器508可以存留多监视器配置数据。运行时客户端502或设计者客户端506可以包括用于虚拟屏幕管理和/或处理多监视器鼠标事件的功能性。
联网块574可以对在不同物理连接介质(包括CIP路由)上运行通用工业协议(CIP)提供支持。客户端502和506以及服务器504和508可以支持客户端-服务器通信。服务器504和508以及控制器510可以支持服务器-控制器通信。
另外,还可以包括存留功能块576。该块经由平台无关接口提供对输入数据资源的存储。该块处理与可移除介质(例如,存储卡)有关的问题,诸如面对未预期的介质移除时确保数据一致性。此外,该块支持结构化数据(例如,关系型数据、XML)和非结构化数据(例如,二进制数据、自由形式文本)。该块支持产生被存留的资源的离线图像用于归档和传输。存留块576支持使用离线图像进入主要的存留存储区中。它会产生更新事件并提供对于系统产生记录(事件、警报和数据历史等)的存储的相容接口,以使得产生记录可以被系统固有地存储或存储在客户设置的存储区中。该块还提供数据完整性和私密性。每个部件可以提供对数据的存储并生成更新事件。此外,运行时服务器504、控制器510和设计者服务器508可以与外部(例如,DBMS)产生记录存储区对接。
可以包括服务/对象发现的查询功能块580可以允许基于范围、类型和其它属性发现服务。它还可以允许基于对象的已知属性查询/发现发布的对象和/或使得能够横跨多个源进行查询。该块可以对通用对象提供资源发布。
报告子系统582可以提供用户用以设计和生成报告的设备。该子系统582可以提供预定义的报告模板和/或允许用户创建报告模板。报告可以根据项目数据、当前运行时数据和/或历史数据来生成。可以提供用于定制报告模板的UI。此外,可以存留报告模板。还可以提供用于配置运行时报告(包括调度报告和基于事件的报告)的UI。可以允许用户运行人工报告。用户可以提供任何需要的报告参数(例如,要汇报的区域、项目、和/或对象)。报告可以是自动的(例如,基于设置的调度安排、事件等)。报告参数可以存留在给定的项目内。
还可以包括安全功能块588。该子系统588为客户的应用提供可信任的环境。该子系统认证已经用户和其它身份。该子系统可以应用第二因素认证以通过生物测量或其它方式确保用户的身份。该子系统还可以接受来自其它可信任机构(例如,Windows域、目录服务器、基于互联网的身份服务器等)的身份。该块提供对客户的应用中的操作或保护数据的授权访问。服务器504和508以及控制器510可以验证已知用户的证书以及存留安全数据(例如,私密密钥、智能属性数据、和/或用户账号信息)。此外,这些部件可以加强可以约束系统行为的策略规则。客户端可以包括用于提供证书(例如,口令、生物测量、智能卡等)的UI并为用户上下文功能提供身份和/或安全主张权。系统500的每个部件可以通过验证相对于认证信息的主张权来批准操作。
还可以包括服务框架590。该服务框架使得业务逻辑能够被构造为用于多种类型的本地和远程客户端的基于合约的服务。该框架为所有业务逻辑提供一致的托管和部署模型。该框架使得能够实现服务的一致诊断和管理。此外,该框架使得能够实现逻辑的集成,而与使用哪种编程语言、消息传输和平台无关。
例如,该服务框架可以支持C++、.NET/Silverlight和Java客户端和服务。此外,该服务框架可以支持JavaScript/Flash客户端。该框架可以支持服务的动态部署,可以提供控制业务逻辑部件如何运行的托管环境,并且可以提供用于服务管理的UI。
还可以提供软件/固件部署块592。该部件将软件和固件部署到设备、客户端和服务器。该部署可以包括降级和升级。该块可以使得能够将软件安装到服务器和客户端上、将固件部署到设备、接收软件和固件更新、和/或提供用于管理软件/固件部署的UI。
还可以包括标签块594。标签包括标签定义、标签编辑、存储以及数据获取。“标签”被定义为具有名称的数据项。标签类型可以是基本类型(整数、浮点、布尔等)或复杂结构化类型(例如,“压缩机”标签可以包括用于像电动机速度、压力、温度和压缩机性能曲线那样的事物的子标签)。该块594可以使得能够实现如下功能性:读取、写入和订阅数据、提供用于标签浏览、监视和/或编辑的UI、存留标签配置、以及从合成时间回放历史数据。
时间功能块596可以提供对与系统宽时间源同步的当前时间信息的访问。该块为可与真实时间断开的部件提供对用户控制的合成时间信息的访问。可以使用合成时间的部件可以用于处理历史记录。合成时间可以向前或向后、快于或慢于真实时间运行,并且可以立即跳到历史或未来的时间点。该块596用作基于时间的事件(周期的、相对的或绝对的)源。该块可以是时区感知(包括感知夏令时)。该块596可以将真实时间源驻留在系统500的每个部件中。此外,可以驻留合成时间源。回放UI(例如,具有播放、倒回、快进和/或暂停按钮)可以操纵合成时间。真实时间源(诸如卫星、网络时间等)可以是系统500中的时间主控器。
时间序列数据功能块598包括用于提供数据日志模板的配置并将运行时数据登记到数据存储区中的子系统。可以配置保真度或短期时间序列。可以提供用于配置时间序列采集和存储的UI。可以经由该块存留时间序列数据。此外,可以通过事件来触发时间序列的登记的开始和停止。可以包括用于以表格或图形格式查看实际时间或历史时间序列数据的UI。
还可以提供事务功能块602。该块使得能够支持在基本单元上进行若干操作。该块可以包括对超时事务的支持。例如,当从显示器下载一批设置点时,该块可以使得能够写入所有点或没有写入任何点。此外,当下载系列配置更新时,该块可以确保所有设备被更新,由于允许一些而不是全部设备更新会导致不匹配的设备。另外,对横跨多个控制器的标签值集合的改变可以在单个事务中执行。该块可以提供托管和重新运行功能,可以提供对错误的自动重新运行,并且可以参与分布式事务。
类型块604可以为列表提供服务并且描述系统已知的数据类型。该块描述数据结构,但不描述行为。该块执行标量类型转换。服务器504和508以及控制器510可以存留类型定义。在客户端502和506中也可以包括用于浏览类型并配置类型的UI。
网络应用框架608可以使得能够实现瘦客户端侧部件的构造,其从网络服务器提供服务并与网络服务器后面驻留的服务交互。该块608支持“富网络客户端”技术,诸如JavaScript、Flash、或Silverlight。该块提供用于网络应用的公共外观和感觉(例如,公共认证、导航、使用标语等)的基础设施。此外,能够驻留可视和不可视的部件。该块支持网络应用框架。
还可以提供网络服务器框架610。该框架提供支持网路激活客户端的服务,从而经由HTTP/HTTPS受到服务。该框架支持网路服务器框架。
虽然本文仅示出并描述了本发明的某些特征,但是本领域技术人员将会想到许多变型和更改。因此,应理解,所附权利要求旨在涵盖落在本发明的真实精神内的所有这样的变型和更改。
Claims (30)
1.一种面向资源的工业自动化架构装置,包括:
公共服务框架,其被配置成存储在多个不同的工业自动化设备中的每个中;
多个服务模块,其被配置成依据所选择的工业自动化设备的功能性而存储在所述多个不同的工业自动化设备中的所选择的设备中,所述服务模块在运行时与所述公共服务框架交互以执行工业自动化任务。
2.根据权利要求1所述的架构装置,其中,所述公共服务框架包括容器,在所述容器内使得存储在任何特定设备中的所选择的服务模块实例化,以执行所述工业自动化任务。
3.根据权利要求1所述的架构装置,包括公共应用框架和多个应用,所述公共应用框架和所选择的应用被配置成存储在所选择的设备上并在所选择的设备上运行。
4.根据权利要求3所述的架构装置,其中,所述应用框架包括容器,在所述容器中使得存储在所选择的设备上的所选择的应用实例化,以执行工业自动化任务。
5.根据权利要求4所述的架构装置,其中,由所述应用中的至少一个执行的所述工业自动化任务包括用户接口任务或用于应用的接口。
6.根据权利要求1所述的架构装置,其中,至少一个所选择的服务模块被配置成在所述自动化设备的制造和初始配置期间存储在所述自动化设备中。
7.根据权利要求1所述的架构装置,其中,至少一个所选择的服务模块被配置成通过对自动化设备的现场修改而被存储在所述自动化设备中。
8.根据权利要求1所述的架构装置,其中,至少一个所选择的服务模块被配置成在工业自动化过程中的运行期间被动态地存储在自动化设备中。
9.根据权利要求1所述的架构装置,其中,所述公共服务框架被配置成使用增量脚本来在自动化控制和监视系统中传送变化。
10.根据权利要求1所述的架构装置,其中,所述服务模块被配置成与自动化控制和监视系统的分布式数据模型进行交互。
11.根据权利要求1所述的架构装置,其中,所述架构装置被配置成在各自均存储所述公共服务框架的运行时客户端、运行时服务器、设计者客户端、设计者服务器和控制器部件上执行。
12.根据权利要求11所述的架构装置,其中,所述多个服务模块被配置成在所述运行时客户端、所述运行时服务器、所述设计者客户端、所述设计者服务器、所述控制器部件、或其任意组合上进行操作。
13.根据权利要求1所述的架构装置,其中,通过在运行时服务器和客户端、设计时服务器和客户端、控制器、或其任意组合之间分布所述多个服务模块的操作来实现垂直可扩展性。
14.一种工业自动化设备,包括:
处理电路,其被配置成在运行期间执行工业自动化任务;以及
存储器电路,其与所述处理电路协作,并且存储对多个不同的工业自动化设备中的每个设备公共的服务框架以及多个服务模块,所述多个服务模块在运行时与所述公共的服务框架交互,以执行所述工业自动化任务。
15.根据权利要求14所述的设备,其中,所述服务模块选自服务模块库,基于所述设备的功能性选择存储在所述设备上且能够在所述设备上操作的特定服务模块。
16.根据权利要求14所述的设备,其中,所述多个服务模块被配置成与所述公共的服务框架进行交互,而与同所述设备相关联的操作系统无关。
17.根据权利要求14所述的设备,其中,所述多个服务模块中的至少一个被配置成与使得能够实现分布式命令处理的至少一个分布式执行引擎进行交互。
18.根据权利要求14所述的设备,其中,所述多个服务模块中的至少一个被配置成发送、接收、或发送并接收分布式模型中的数据。
19.根据权利要求14所述的设备,其中,所述多个服务模块中的至少一个被配置成访问与自动化控制和监视系统中的数据有关的元数据。
20.一种工业自动化设备族,包括:
多个不同的工业自动化设备,其中,每个设备在操作中具有不同的功能性以执行不同的工业自动化任务;
其中,所述不同的工业自动化设备各自包括公共服务框架和多个服务模块,所述公共服务框架在所述工业自动化设备族中是相同的,并且所述多个服务模块是依据所述族的特定设备的功能性从服务模块库中选择的,所述服务模块在运行时与所述公共服务框架交互,以执行所述族的特定设备的工业自动化任务。
21.根据权利要求20所述的工业自动化设备族,其中,所述不同的工业自动化设备包括自动化控制器设备和人机接口设备。
22.根据权利要求20所述的工业自动化设备族,其中,所述多个不同的工业自动化设备包括:运行时客户端、运行时服务器、设计者客户端、设计者服务器、控制器部件、或其任意组合。
23.根据权利要求22所述的工业自动化设备族,其中,可以通过添加用于执行相似任务的附加工业自动化设备作为所述多个不同的工业自动化设备中的至少一个来实现水平可扩展性。
24.一种用于制造工业自动化设备的方法,包括:
在所述工业自动化设备上存储公共服务框架和多个服务模块,所述公共服务框架在所述工业自动化设备所属的工业自动化族中是相同的,并且所述多个服务模块是依据所述工业自动化设备的功能性从服务模块库中选择的,所述服务模块在运行时与所述公共服务框架交互,以执行所述工业自动化设备的工业自动化任务。
25.根据权利要求24所述的方法,其中,所述公共服务框架和所述服务模块在所述工业自动化设备的初始配置期间被存储在所述工业自动化设备上。
26.根据权利要求24所述的方法,其中,至少一个服务模块通过对所述工业自动化设备的现场修改而被存储在所述工业自动化设备上。
27.根据权利要求24所述的方法,其中,至少一个服务模块在工业自动化过程中的运行期间被动态地存储在所述工业自动化设备上。
28.一种通过权利要求24所述的方法制造的工业自动化设备。
29.一种用于制造工业自动化设备族的方法,包括:
对公共服务框架进行配置,所述公共服务框架被配置成存储在所述族的多个不同的工业自动化设备中的每个中;以及
对服务模块库进行配置,所述服务模块库被配置成依据所选择的设备的功能性而被存储在所述族的多个不同的工业自动化设备中的所选择的设备中,所述服务模块在运行时与所述公共服务框架交互以执行工业自动化任务。
30.一种工业自动化设备,包括如权利要求29所述的公共服务模块和所述服务模块库中的选择的服务模块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/665,489 | 2012-10-31 | ||
US13/665,489 US20130131840A1 (en) | 2011-11-11 | 2012-10-31 | Scalable automation system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103792857A true CN103792857A (zh) | 2014-05-14 |
Family
ID=50668650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210452165.3A Pending CN103792857A (zh) | 2012-10-31 | 2012-11-12 | 可扩展的自动化系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103792857A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104656565A (zh) * | 2014-12-25 | 2015-05-27 | 南京因泰莱电器股份有限公司 | 一种可自由配置的智能io装置 |
CN109542069A (zh) * | 2018-12-17 | 2019-03-29 | 上海交通大学 | 一种基于时间与事件混合驱动的分布式控制系统及方法 |
CN110622076A (zh) * | 2017-05-12 | 2019-12-27 | 利乐拉瓦尔集团及财务有限公司 | 自动化框架和控制方法 |
CN110795024A (zh) * | 2019-10-12 | 2020-02-14 | 北京四方继保自动化股份有限公司 | 一种基于xml的保护设备通用人机交互系统及方法 |
CN112558555A (zh) * | 2019-09-26 | 2021-03-26 | 罗克韦尔自动化技术公司 | 维护和调试 |
CN114137854A (zh) * | 2021-11-30 | 2022-03-04 | 江苏汇博机器人技术股份有限公司 | 一种多功能机器人教学仿真工作站 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1737790A (zh) * | 2004-08-02 | 2006-02-22 | 洛克威尔软件股份有限公司 | 统一工厂模型的动态架构 |
US20060080331A1 (en) * | 2004-10-12 | 2006-04-13 | International Business Machines Corporation | Common interface system administration service library |
US7233830B1 (en) * | 2005-05-31 | 2007-06-19 | Rockwell Automation Technologies, Inc. | Application and service management for industrial control devices |
CN101044487A (zh) * | 2004-07-30 | 2007-09-26 | 卡迪纳尔健康303公司 | 管理患者护理设备医疗数据库的系统和方法 |
CN101110029A (zh) * | 2006-06-29 | 2008-01-23 | 洛克威尔自动控制技术股份有限公司 | 用于可扩充自动化系统工程平台的hmi框架 |
CN101578581A (zh) * | 2006-10-16 | 2009-11-11 | 因文西斯系统公司 | 可扩展的自动化开发环境 |
CN102014169A (zh) * | 2010-12-22 | 2011-04-13 | 北京中电普华信息技术有限公司 | 分布式服务系统、分布式服务系统的任务执行方法和装置 |
-
2012
- 2012-11-12 CN CN201210452165.3A patent/CN103792857A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101044487A (zh) * | 2004-07-30 | 2007-09-26 | 卡迪纳尔健康303公司 | 管理患者护理设备医疗数据库的系统和方法 |
CN1737790A (zh) * | 2004-08-02 | 2006-02-22 | 洛克威尔软件股份有限公司 | 统一工厂模型的动态架构 |
US20060080331A1 (en) * | 2004-10-12 | 2006-04-13 | International Business Machines Corporation | Common interface system administration service library |
US7233830B1 (en) * | 2005-05-31 | 2007-06-19 | Rockwell Automation Technologies, Inc. | Application and service management for industrial control devices |
CN101110029A (zh) * | 2006-06-29 | 2008-01-23 | 洛克威尔自动控制技术股份有限公司 | 用于可扩充自动化系统工程平台的hmi框架 |
CN101578581A (zh) * | 2006-10-16 | 2009-11-11 | 因文西斯系统公司 | 可扩展的自动化开发环境 |
CN102014169A (zh) * | 2010-12-22 | 2011-04-13 | 北京中电普华信息技术有限公司 | 分布式服务系统、分布式服务系统的任务执行方法和装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104656565A (zh) * | 2014-12-25 | 2015-05-27 | 南京因泰莱电器股份有限公司 | 一种可自由配置的智能io装置 |
CN110622076A (zh) * | 2017-05-12 | 2019-12-27 | 利乐拉瓦尔集团及财务有限公司 | 自动化框架和控制方法 |
CN110622076B (zh) * | 2017-05-12 | 2021-04-30 | 利乐拉瓦尔集团及财务有限公司 | 自动化框架和控制方法 |
CN109542069A (zh) * | 2018-12-17 | 2019-03-29 | 上海交通大学 | 一种基于时间与事件混合驱动的分布式控制系统及方法 |
CN112558555A (zh) * | 2019-09-26 | 2021-03-26 | 罗克韦尔自动化技术公司 | 维护和调试 |
CN112558555B (zh) * | 2019-09-26 | 2024-02-13 | 罗克韦尔自动化技术公司 | 维护和调试 |
CN110795024A (zh) * | 2019-10-12 | 2020-02-14 | 北京四方继保自动化股份有限公司 | 一种基于xml的保护设备通用人机交互系统及方法 |
CN110795024B (zh) * | 2019-10-12 | 2021-03-26 | 北京四方继保自动化股份有限公司 | 一种基于xml的保护设备通用人机交互系统及方法 |
CN114137854A (zh) * | 2021-11-30 | 2022-03-04 | 江苏汇博机器人技术股份有限公司 | 一种多功能机器人教学仿真工作站 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2592515B1 (en) | Scalable automation system | |
EP3798817B1 (en) | User interface logical and execution view navigation and shifting | |
US11733687B2 (en) | Collaboration tools | |
US11663553B2 (en) | Cloud-based collaborative industrial automation design environment | |
CN102269989B (zh) | 基于过程控制标签间关系的用于数据驱动界面的方法及装置 | |
CN1950771B (zh) | 用于过程控制的集成图形用户界面 | |
CN112558928A (zh) | 虚拟设计环境 | |
CN112579050B (zh) | 工业应用开发系统、工业自动化项目开发方法和介质 | |
US20130125233A1 (en) | Flexible security control environment | |
CN101872280A (zh) | 在过程控制系统中为操作员界面显示配置动画和事件 | |
CN103064356A (zh) | 工业自动化环境中以多种配置进行的应用的多种部署 | |
CN103792857A (zh) | 可扩展的自动化系统 | |
US20130124575A1 (en) | System and Method for Dynamic Meta-Data in Control and Visualization | |
CN103559153A (zh) | 数据资源身份 | |
US11625683B2 (en) | System and method of industrial automation multi-developer control code change commits | |
US11231690B2 (en) | System and method for dynamic meta-data in control and visualization | |
CN103543684B (zh) | 用于传达对象的状态信息的变化的方法和自动控制部件 | |
CN103792858B (zh) | 灵活的控制模型系统和方法 | |
CN103793346B (zh) | 自动控制系统、机器可读介质及修改部件的功能的方法 | |
CN103793200B (zh) | 控制环境命令执行 | |
EP4307105A1 (en) | Extensible profiles for industrial control modules | |
EP4345549A1 (en) | Presentation design dynamic generation from data model server | |
EP4296803A1 (en) | Device configuration object template with user interaction for device properties generator | |
EP4336282A1 (en) | A method for connecting a web socket session with an object instance with automation device association | |
EP4345602A1 (en) | Presentation design to automation device binding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140514 |
|
WD01 | Invention patent application deemed withdrawn after publication |