CN101477362B - 现场总线网络中运行的控制模块的同步块执行自动配置 - Google Patents
现场总线网络中运行的控制模块的同步块执行自动配置 Download PDFInfo
- Publication number
- CN101477362B CN101477362B CN200810187790.3A CN200810187790A CN101477362B CN 101477362 B CN101477362 B CN 101477362B CN 200810187790 A CN200810187790 A CN 200810187790A CN 101477362 B CN101477362 B CN 101477362B
- Authority
- CN
- China
- Prior art keywords
- function piece
- functional block
- control module
- piece
- input
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total 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], computer integrated manufacturing [CIM]
- G05B19/4185—Total 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], computer integrated manufacturing [CIM] characterised by the network communication
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0423—Input/output
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/11—Plc I-O input output
- G05B2219/1134—Fieldbus
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/25—Pc structure of the system
- G05B2219/25229—Partition control software among distributed controllers
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/25—Pc structure of the system
- G05B2219/25232—DCS, distributed control system, decentralised control unit
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/31—From computer integrated manufacturing till monitoring
- G05B2219/31121—Fielddevice, field controller, interface connected to fieldbus
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/32—Operator till task planning
- G05B2219/32248—Create schedule from elementary operations from database
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Abstract
本发明涉及现场总线网络中运行的控制模块的同步块执行自动配置。方法或装置通过确定特定控制模块的所有关键功能块是否都可指派给与特定现场总线段相关联的现场总线设备或I/O设备自动配置控制模块,以在过程控制网络的现场总线段同步执行。如是,该方法和装置将控制模块的功能块自动指派给现场总线段的I/O设备,否则将其调度为在控制器中执行。该技术使控制模块中所有关键或必需功能块能在现场总线段的一个宏周期中执行,从而在现场总线段上同步执行。该操作相对于配置使用现场总线段的设备实现的控制模块的传统方式,即功能块分散在控制器和现场总线段上的现场设备之间的控制模块,提高了控制模块的总体执行速率。
Description
相关申请
本申请是2006年9月29日提交的名称为“Methods and Apparatus toGenerate Schedules to Execute Functions in a Process Control System(生成在过程控制系统中执行功能的调度表的方法和装置)”的美国专利申请序列号No.11/537,303的部分继续申请,并且要求该申请的优先权,因此将该申请的全部公开内容通过引用特别合并于此。
技术领域
本专利总的来说涉及过程控制系统,更具体地,涉及将控制模块的各种功能块指派给现场总线(现场总线)段上的输入/输出卡并生成调度表以在现场总线段中同步执行该控制模块的功能块的系统。
背景技术
过程控制系统,例如化学、石油、或其他过程中使用的过程控制系统,通常包括一个以上集中式过程控制器,集中式过程控制器通过模拟总线、数字总线或模拟/数字组合总线以可通信方式连接至至少一个主机或操作员工作站以及一个以上现场设备。现场设备可以是例如阀、阀定位器、开关、变送器(例如温度传感器、压力传感器和流速传感器)等,它们在过程中施行例如开启或关闭阀和测量过程参数之类的功能。过程控制器接收表示现场设备所进行的过程测量和/或与现场设备有关的其它信息的信号,使用这些信息来实施控制例程或控制模块,然后生成控制信号,这些控制信号被通过总线或其它通信线路发送至现场设备,以控制过程的操作。来自现场设备和控制器的信息对于操作员工作站所执行的一个以上应用程序可用,以使操作员能够施行与过程有关的期望功能,例如查看过程的当前状态、修正过程的操作等等。
过程控制系统应用程序通常包括可以被配置为施行过程控制系统中的各种功能或操作的过程控制例程。例如,过程控制例程可以用于控制阀、电动机、锅炉、加热器等。过程控制例程还可以用于监测现场设备、工厂区域等,和用于采集与过程控制系统相关联的信息。用于实施过程控制例程的现场设备通常通过数据总线互相连接,并连接至过程控制器。然而,这些数据总线的资源有限,包括可用于现场设备和过程控制器互相传送信息的带宽有限。在某些情况下,为了保证数据总线上有足够的时间可供所有现场设备和控制器执行它们各自的功能并在它们之间传送信息,生成调度表来表示控制器和现场设备什么时候应当执行它们各自的功能并通过数据总线进行通信。
过程控制系统领域中公知的FOUNDATION现场总线(FF)通信协议和规范是一种全数字通信协议,该全数字通信协议允许通常被称为FOUNDATION现场总线(FF)功能块的功能块位于诸如阀、变送器等的各种现场设备中,并且通过通信链路或总线互相通信来实现控制环路。实现特定控制环路或功能的一组互连功能块通常被称作过程控制模块,并且这种过程控制模块可以具有布置在连接至现场总线通信总线的各种不同设备中的功能块,其中该现场总线通信总线也称作现场总线段。正如通常所公知的,特定现场总线段上的通信由通信调度表确定,其中通信调度表由操作员或配置工程师在建立或配置该现场总线段时针对该段生成。一般而言,特定现场总线段的通信调度表定义了在一组重复的宏周期(macrocycle)中的每一个宏周期期间现场总线段的总线上发生的各个同步通信。
在过去已知的是,通过将组成特定控制模块的所有或至少一些控制块放置在连接至现场总线段的FF现场设备中,并允许这些模块以精确调度的方式可通信地互相交互以实现控制环路,从而将该模块配置为使用FF协议的能力以分布式进行操作。不幸的是,在很多情况下,由于很多功能块完全不被连接至现场总线段的特定现场设备支持,因此并非组成特定控制模块的所有功能块都可以在连接至现场总线段的实际现场设备中执行。在这些情况下,将某些功能块,通常是实施控制计算(例如,比例、积分和微分(PID)控制例程)的控制功能块,放置在通过输入/输出设备连接至现场总线段的控制器中,成为必需的或标准惯例。FOUNDATION现场总线定义并支持若干个这样的输入/输出设备,最普通的输入/输出设备被称作H1卡或H1设备。
然而,由于控制器并不直接连接至现场总线段,因而不直接参与现场总线段的通信调度,所以当特定控制模块的功能块被放置在控制器中并在该控制器中执行时,该功能块相对于位于连接至现场总线段的FF现场设备中的功能块的执行和操作来说是被异步执行的。结果,在这种情况下,由于现场总线段上控制器与现场设备之间的通信必须由现场总线段外部的输入/输出设备来管理以保证控制器(执行控制模块的功能块之一)与FF现场设备(执行控制模块的其它功能块)之间的信号传递这一事实,控制模块自身的总体执行速率较完全在现场总线段中运行的控制模块来说有所下降。因此,不幸的是,将功能块布置在FF现场设备和控制器两者中的控制模块通常都不能在现场总线段调度表所定义的单个宏周期中执行,而必须在现场总线段调度表的一连串宏周期内操作,以允许通过输入/输出设备在控制器和FF现场设备之间进行正常通信。
因此,目前可以基于用户已经购买并且安装在过程控制系统中的实际FF现场设备的特性,将实现控制环路所需要的某些或所有功能块指派给现场总线设备。然而,如果实现特定控制环路(或控制模块)所需块中的一个以上块的没有被指派给现场总线设备,那么这些块就在不位于现场总线段上的控制器中执行。由于控制器中执行块与现场总线段上执行块不同步,因此以此方式分离块会在控制环路中引入显著的延迟。
发明内容
通信网络的输入/输出(I/O)设备,例如实现FOUNDATION现场总线协议的I/O设备,被配置为支持功能块的执行,否则功能块不被例如连接至该I/O设备的现场总线段上的现场设备支持。该功能的结果是,可以是FFH1卡的I/O设备可以执行按惯例必须在过程控制器中执行的控制块或其它功能块。I/O设备上这种增加的功能使得指派给I/O设备的功能块在没有被指派给诸如阀或变送器设备之类的传统现场总线现场设备时,能够同步地参与到现场总线段的通信调度中。
此外,一种装置或方法通过确定特定控制模块的所有关键功能块是否可以被指派给FOUNDATION现场总线现场设备或指派给与特定现场总线段相关联的I/O设备,自动配置用于在现场总线段上同步执行的控制模块。如果是,该装置或方法自动将控制模块的功能块指派给用于现场总线段的I/O设备,否则这些功能块会被调度为在控制器中执行。因而该技术使得控制模块所有功能块(或至少是控制模块的所有关键的或必需的功能块)能够在现场总线段的一个宏周期中执行,从而在现场总线段上同步执行。因此该操作提高了控制模块的总体执行速率。换句话说,所公开的装置和方法使得控制模块的功能块,包括例如控制功能块,在现场总线段的单个调度宏周期中在现场总线段上执行并互相通信,从而使得控制模块比功能块被分散在现场总线段上的控制器和现场设备之间的控制模块操作得更快。
所公开的装置和方法还基于一个以上控制模块的功能块被指派给现场总线段上的不同设备包括I/O设备的方式,来自动生成现场总线段的通信和执行调度表。该调度表可以适应(accommodate)来自在现场总线段上操作的各种不同控制模块的功能块,并且可以适应来自具有不同扫描或执行速率的相同或不同控制模块的功能块。
将功能块自动指派给现场总线段上的设备以及自动生成现场总线段上的通信和执行调度表允许操作员或配置工程师在配置现场总线段时,仅仅指定将要在特定的现场总线段上执行的控制环路(控制模块),而不必担心将功能块指派到哪里或使用的最佳调度表。因而该操作通过在可能的情况下将特定控制模块所关联的尽可能多的功能块放置到现场总线段上的I/O设备中,从而使得在同时配置控制模块以更快的速率执行时,可以更容易且更优化地使用过程控制系统资产。
附图说明
图1是包括通过现场总线I/O设备以可通信方式连接至现场总线段的分布式过程控制器的分布式过程控制网络的框图。
图2是示出控制模块的功能块被指派给现场设备或被指派给特定现场总线段上的I/O设备以使能该现场总线段上控制模块的功能块同步操作的方式的框图。
图3A和3B示出描绘示例性功能块指派例程的操作的流程图,其中功能块指派例程确定将控制模块的功能块指派给现场总线段上的现场总线I/O设备还是指派给控制器设备。
图4是示出传统控制模块的框图,其中根据所公开的指派功能块的方法,一个以上控制功能块没有被指派给现场总线段上的I/O设备,而是被指派给控制器。
图5是示出传统控制模块的框图,其中根据所公开的指派功能块的方法,一个以上控制功能块没有被指派给现场总线段上的I/O设备,而是被指派给控制器。
图6是示出传统控制模块的框图,其中根据所公开的指派功能块的方法,控制功能块被指派给现场总线段上的I/O设备。
图7是示出控制模块的框图,其中根据所公开的指派功能块的方法,多个控制功能块被指派给现场总线段上的I/O设备。
图8是示出控制模块的框图,其中根据所公开的指派功能块的方法,控制和输入/输出功能块没有被指派给现场总线段上的I/O设备,而是被指派给控制器。
图9是示出控制模块的框图,其中根据所公开的指派功能块的方法,多个控制功能块被指派给现场总线段上的I/O设备。
图10是示出控制模块的框图,其中根据所公开的指派功能块的方法,该控制模块的多个控制功能块被指派给现场总线段上的I/O设备,其中一些功能块以快于现场总线段上的其它功能块的速率执行。
图11是现场总线段的宏周期的图,图示出图10的控制模块的多个功能块的操作,其中一些功能块在现场总线段上以快于其它功能块的速率操作或执行。
图12是现场总线段的宏周期的图,该图示出与在现场总线段上操作的多个不同的控制模块相关联的功能块的操作,其中一些功能块以不同于其它功能块的速率执行。
图13是示出具有连接至现场总线段的控制器的另一示例过程控制系统的框图。
图14描绘用于实现图13的示例过程控制系统中的过程控制例程的功能块和功能块之间的互连的图形用户界面(GUI)表示。
图15是通过通信总线捆绑与图13的过程控制系统的不同现场设备相关联的功能块的示例功能块捆绑配置。
图16是描绘两个连续的500毫秒环路执行期间图13和图14中一些功能块的执行之间的时序关系的示例执行顺序图。
图17是描绘两个连续的2000毫秒环路执行期间图13和图14中一些功能块的执行之间的时序关系的另一示例执行顺序图。
图18是根据执行功能块的方法实施的示例执行顺序图,其中功能块具有不同的块扫描速率并被指派给以可通信方式连接至图13的示例过程控制系统的同一通信总线上的现场设备。
图19是根据这里所描述的示例方法和装置使功能块能够以它们的块扫描速率和各自的环路执行周期被执行而实施的示例执行顺序图。
图20是可用于舍入功能块的块原始执行周期的示例舍入表格。
图21是示例起始时间偏移量表900,其示出图13和14的功能块所需的用于在各自的子调度期间执行的起始时间偏移量。
图22描绘另一示例功能块配置,其中多个现场设备以可通信方式连接至过程控制系统的通信总线并被配置为执行各自的功能块。
图23描绘另一示例起始时间偏移量表格,其示出图22的示例功能块配置的各个功能块所需的起始时间量。
图24是示出与图22的功能块相关联的使用这里所描述的示例方法和装置生成的调度表的另一示例执行顺序图。
图25是示例的面向对象的软件执行环境,其示出表示图13的现场设备、图13的功能块的对象与功能块所对应的起始时间偏移的对象之间的关系。
图26是另一示例的面向对象的软件执行环境,其示出表示图22的现场设备、图22的功能块的对象与功能块对应的起始时间偏移的对象之间的关系。
图27示出将图26中与图22的功能块相关联的起始列表从工作站复制到图22中对应的现场设备的示例方式。
图28描绘具有被配置为使用这里所描述的示例方法和装置来生成图19和24的调度表的多个类的示例的面向对象的编程环境。
图29是可以用于根据这里所描述的示例方法生成调度表的示例装置的详细框图。
图30是可以与图29的示例装置一起实施以生成这里所描述的调度表的示例方法的流程图。
图31是可以与图30的示例方法一起实施以确定功能块所需的起始时间偏移量的示例方法的流程图。
图32A和32B示出可以与图30的示例方法一起实施以生成子调度表并基于所生成的子调度表生成调度表的示例方法的流程图。
图33是可以与图32的示例方法一起实施以确定功能块的起始时间偏移值的示例方法的流程图。
图34是图24的调度表的示例功能执行和数据传输顺序图。
图35是可用于实现这里所描述的示例系统和方法的示例处理器系统的框图。
具体实施方式
现在参见图1,过程控制系统10包括以可通信方式连接至历史数据库(data historian)12并连接至一个以上各自具有显示屏幕14的主机工作站或计算机13(可以是任意类型的个人计算机、工作站等)的过程控制器11。控制器11通过输入/输出(I/O)设备或卡26和28还连接至现场设备15-22。历史数据库12可以是任意期望类型的具有用于储存数据的任意期望类型的存储器和任意期望或已知软件、硬件或固件的数据采集单元,并且可以与工作站13分离(如图1所示),也可以是工作站13之一的一部分。控制器11可以是例如由艾默生过程管理公司(Emerson Process Management)出售的DeltaVTM控制器,控制器11可以通过例如以太网通信链路或任意其它期望的通信网络29以可通信方式连接至主机13和历史数据库12。通信网络29可以采用局域网(LAN)、广域网(WAN)、电信网、因特网(例如万维网)等形式,并且可以使用硬线和/或无线技术来实现。控制器11使用与例如标准的4-20毫安(ma)设备和/或诸如FOUNDATION现场总线协议、HART协议、Profibus协议或过程控制行业中使用的任意其它已知或标准通信协议的任意智能通信协议相关联的任意期望硬件和软件,以可通信方式连接至现场设备15-22。
现场设备15-22可以是任意类型的设备,例如传感器、阀、变送器、定位器等,I/O卡26和28可以是任意类型的符合或支持任意期望通信或控制器协议的I/O设备。在图1示出的实施例中,现场设备15-18是标准4-20毫安设备,或是通过模拟线路(或模拟与数字组合线路)与I/O卡26通信的HART设备,现场设备19-22被图示为使用FOUNDATION现场总线(FF)协议通信通过数字总线28A与I/O卡28通信的FOUNDATION现场总线(FF)设备。在这种情况下,I/O卡28是具有支持FF协议的现场总线端口的H1卡。可以理解,数字总线28A和连接至数字总线28A的现场设备19-22以及I/O卡28形成现场总线段。当然,可以根据需要将I/O卡28连接至其它现场总线段(未示出),并且现场总线段可以包括任意数目和类型的与之连接的支持FF协议的设备。可替换地,现场设备15-22可以符合任意其它期望的标准或协议,包括任意其它已知的现场总线协议,或任意其它的现在已知的或将来可能开发出的通信标准或协议。
控制器11可以是工厂10中的很多分布式控制器中的一个,很多分布式控制器中的每一个都可以连接至通信链路29,并且都可以通过支持FF协议的I/O设备(这里也称作FF I/O设备或现场总线I/O设备)连接至一个以上现场总线段。控制器11中包括至少一个处理器,并且以可操作的方式实施或检查一个以上过程控制模块,这些过程控制模块可以施行工业过程工厂中的控制环路。控制模块可以包括若干种以可通信方式互连的功能块,并且这些功能块可以存储在控制器11和/或现场设备19-22中的某些现场设备以及如以下所述的I/O设备28中并在其中执行。控制器11与设备15-22、主机13和历史数据库12通信以采用任意期望的方式对过程进行控制和检查。应当注意,这里所描述的任意控制例程或元件的部分可以根据需要由不同的控制器或其它设备实施或执行。同样地,这里所描述的待在过程控制系统10中实施的控制例程或元件可以采用任意形式,包括软件、固件、硬件等。控制例程可以是模块或控制程序的任意部分,例如子例程、子例程的部分(例如代码行)等,控制例程可以采用任意期望的软件格式来实现,例如使用梯形逻辑、顺序功能图、功能块图、面向对象的编程或任意其它软件编程语言或设计范例。同样地,控制例程可以被硬编码到例如一个以上EPROM、EEPROM、特定用途集成电路(ASIC)或任意其它硬件或固件元件中。更进一步,可以使用任意设计工具来设计控制例程,所述设计供给包括图形设计工具或任意其它类型的软件/硬件/固件编程或设计工具。因此,控制器11可以被配置为以除这里具体描述的方式以外的任意期望方式实施控制策略或控制例程。
在一个实施例中,控制器11使用通常所说的过程控制模块来实施控制策略,每个过程控制模块可以由一组互连的功能块组成。在这种情况下,每个功能块是整个控制模块中的对象的一部分,并且与其它功能块一起操作(通过称作链路的通信)来实施过程控制系统10中的过程控制环路。功能块通常施行以下功能中的一种:输入功能,例如与变送器、传感器或其它过程参数测量设备相关联的功能;控制功能,例如与施行比例/积分(PI)、比例/微分(PD)、比例/积分/微分(PID)、模糊逻辑等控制的控制例程相关联的功能;或输出功能,该功能控制一些诸如阀之类的设备的操作以施行过程控制系统10中的一些物理功能。当然还存在混合功能块和其它类型的功能块。功能块可以存储在控制器11中,并由控制器11执行,当这些功能块被用于标准4-20毫安设备以及诸如HART设备和在某些情况下是现场总线设备之类的某些类型的智能现场设备时或与这些设备相关联时,通常是这种情况。然而,在某些情况下,这些功能块可以存储在现场设备中并由现场设备本身执行,这可能是为现场总线设备的情况。尽管这里使用面向对象的编程范例的功能块控制策略被用来提供对控制系统的描述,但是也可以使用诸如梯形逻辑、顺序功能图等的其它常规方式或使用任意其它期望的编程语言或范例来实现或设计控制策略或控制环路或模块。
如图1的放大框30所示,控制器11可以检查或涉及实施在图1中以过程控制模块32和34示出的若干个单输入/单输出控制环路,并且可以实施由过程控制模块36示出的一个以上高级控制环路。组成各个控制环路的功能块通常被称作控制模块,且这些功能块按惯例被储存在控制器11和/或当使用现场总线段28A时,被存储在现场设备15-22中。控制模块32和34分别被示为使用连接至合适的模拟输入(AI)功能块和模拟输出(AO)功能块的单输入/单输出模糊逻辑控制块和单输入/单输出PID控制块。AI功能块和AO功能块可以与诸如阀之类的过程控制设备相关联,可以与诸如温度变送器和压力变送器之类的测量设备相关联,也可以与过程控制系统10中的任意其它设备相关联。高级控制环路36被示为包括具有以可通信方式连接至若干个AI功能块的输入和以可通信方式连接至若干个AO功能块的输出的高级控制块38,尽管高级控制块38的输入和输出可以采用可通信方式连接至任意其它期望的功能块或控制元件,以接收其它类型的输入和提供其它类型的控制输出。根据需要,高级控制块38可以是将模型预测控制例程与对过程或过程的一部分施行优化控制的优化器集成在一起的控制块。可以理解,图1中所示的包括高级控制块38在内的控制模块和功能块按惯例是由控制器11来执行,或者可替换地,位于诸如工作站13之一或甚至是现场设备19-22之一的其它处理设备中,并由这些处理设备执行。然而,如更详细地描述的,有利地,这些功能块也可以被储存在诸如I/O设备28之类的I/O设备中,以作为现场总线段的一部分而同步操作。
如图1所示,工作站13之一包括控制块指派和调度例程40,控制块指派和调度例程40可用于创建、指派、下载和实施控制器11中的控制模块,尤其是那些使用由总线28A定义的现场总线段的控制模块。尽管控制块指派和调度例程40可以被储存在工作站13内的存储器中,并由工作站13中的处理器执行,但是该例程(或其任意部分)可以根据需要附加地或可替换地储存在过程控制系统10内的任意其它设备中,并由这些设备执行。一般而言,例程40包括以可操作的方式将所创建的控制模块中的功能块指派给过程工厂中的特定设备来执行的例程42,具体来说,以可操作的方式对为特定的现场总线段(例如由总线28A定义的段)创建的各控制模块的功能块被指派给该段上的设备或被指派给操作该段的控制器的方式自动优化的例程42。
此外,根据需要,例程40可以包括基于由例程42指派给现场总线段上的现场总线现场设备的功能块以及基于由例程42指派给该段上的I/O设备的功能块而自动创建或配置该现场总线段的通信调度表(即宏周期)的例程44。例程44使得用户更容易基于例程42所施行的指派以最佳方式生成特定现场总线段的通信和执行调度表。在一种情况下,例程44可以基于被指派给现场总线段的模块的最快模块执行速率,而不是通常在现有技术中施行的基于被指派给该段的模块的最慢执行速率,来生成该段的宏周期或调度表。在这种情况下,例程44可以允许由用户通过接口设备13指定的功能块乘法器来指示在调度表中要跳过哪些块执行,这有助于节约现场总线段上的带宽。另外,如果需要,例程40可以包括允许用户与例程42和44交互以输入和查看信息并调整例程42和44的性能的例程46。
如上所述,尽管支持FF设备的已知控制器系统使得用户对FF设备的使用更容易,但是当特定控制模块的控制路径中的功能块被分散(split)在控制器(例如图1的控制器11)和现场总线段上的现场总线设备(例如图1的设备19-22)之间时,控制环路中会引入明显的延迟。而且现有技术需要段上的所有块以相同的速率执行,这在某些情况下当多个环路在同一现场总线段上的FF设备中实施时会影响控制性能,原因在于在某些情况下不同的控制环路或特定控制环路中的块可能被配置为以不同的速率操作。例程40一般以可操作的方式减少使用现场中的控制(CIF)和控制器中的控制(CIC)所需的技术工作的方式和最小化与现场设备一起使用CIC时引入控制环路的偏差和总延迟的方式,将控制块指派给连接至现场总线段的设备。而且,例程40可以以可操作的方式向用户给出用于CIF的附加功能块的选择权,并且可以定义现场总线段的调度表使得现场总线段上所实施的一个以上模块总体更快地操作。
更具体地说,为了支持例程42的能力和操作,连接至现场总线段的I/O设备(即图1的I/O设备28)被配置为执行按惯例在控制器11中实施或运行的功能块的子集。具体地,为I/O设备指定或创建现场总线端口,并且将该端口建模为连接至现场总线段的独立现场总线设备。因此,各个现场总线端口可以包括指定该端口(或一般是I/O设备)所支持的功能块、起始列表项(start list entry)的数目等的现场总线设备修订文件。现场总线端口可以具有可以采用类似于其它设备的方式在过程控制系统的场景中自动生成的全球(global)系统设备标签。同样,可以提供现场总线端口上的参考菜单选项,以列出被指派给该端口的所有参考模块/块。然而,一般而言,现场总线端口不具有通常FF现场设备所具有的资源块或换能器块。在一个实施例中,每个现场总线端口可支持多达32个功能块。然而,所支持的块的实际数目和类型由设备中可用的起始列表项的数目确定。更进一步,每个现场总线端口可以具有用户可配置的“自动计算调度表宏周期”属性,这会在下文进一步详细描述。
当连接至现场总线段的I/O设备包括该附加功能时,例程42能够将功能块指派为在I/O设备(例如图1的I/O设备28)的现场总线端口中执行。一般而言,如果控制模块的功能块是I/O设备中所支持的功能块的子集的成员并且位于使用现场总线段或在现场总线段上运行的特定控制模块的所有现场总线输入功能块和现场总线输出功能块之间的主控制路径中,则例程42会将这些功能块指派为在用于该现场总线段的I/O设备的现场总线端口中执行。以此方式,例程42在可能的情况下保证控制模块的主控制路径中的所有功能块在连接至现场总线段的设备之一上执行,从而允许每个这样的功能块都直接参与到(被调度来操作和通信)该现场总线段上的宏周期中。该指派技术以可操作的方式相对于具有被分散在控制器11与现场总线上的一个以上现场总线设备之间的功能块的过程模块操作的速率来说,加快或提高了控制模块(即控制环路)在现场总线段中实施的速率。
现在参见图2,控制模块50(命名为模块1)被示为,包括AO(模拟输出)功能块51、AI(模拟输入)功能块52和PID功能块53。控制模块50可以是例如图1的模块34。如图2的虚线所示,AO功能块51(通常是由操作员或配置工程师)指派为在现场总线现场设备54中运行,而AI功能块52(通常也由操作员或配置工程师)指派为在另一现场总线现场设备55中运行。在这种情况下,AO块50被指派为在阀54中执行,而AI块被指派为在传感器或其它仪器55中执行。重要的是,现场设备54和55连接至公共现场总线段56,或是公共现场总线段56的一部分。
典型地,在现有技术的系统中,PID功能块53不会被现场总线现场设备54或55中的任一个支持,因此PID功能块53会被操作员或配置工程师指派为在控制器57(可以是图1的控制器11)中执行。该传统的实施方式由图2中的虚线57A示出。然而,如图2中较长的虚线59A所示,例程42现在可以将PID功能块53指派为在支持在I/O设备58的现场总线端口59中执行的FF协议的I/O设备58(在图2中被标记为现场总线卡)中执行。如图2所示,现场总线端口59连接至现场总线段56,因此可以直接参与现场总线段56的通信调度。在PID功能块53被指派给现场总线端口59,而不是控制器57的情况下,块51、52和53中的每一个都位于现场总线段56上的设备中,因此可以被直接调度,以在现场总线段56所使用的宏周期内进行操作。这种指派的结果是,现在整个模块50都在现场总线段56上操作,而不是有些功能块(即功能块51和52)在现场总线段56上执行,有些功能块(即功能块53)在现场总线段56的外部(即控制器57中)执行。
如果期望,则当功能块被指派给I/O设备的现场总线端口时,功能块可以在控制器57中创建,并且可以使用著名的阴影(shadow)功能块概念链接到现场总线端口59中的功能块。具体来说,控制器可以与为I/O设备的现场总线端口指派的功能块进行通信,以通过使用控制器57中的阴影功能块向这些设备发送信息或从这些设备获取信息。已知阴影功能块是并不运行算法的块,并且通常由基于控制器的模块用来与现场总线设备中运行的现场总线块进行通信。美国专利No.6,738,388中提供了对阴影功能块的组成和使用的更完整描述,由此通过引用将该专利整体合并于此。因此,这里不再进一步详细地描述该特征。
一般而言,图1的例程42可以在将功能块指派给图2的现场总线端口59或控制器57时实施一组固定的规则,从而以尽可能最优的方式来进行指派。在一个实施例中,例程42确定是否可以在连接至特定现场总线段的设备中执行特定控制模块的关键流程中的所有功能块,如果是,则将不能以其它方式指派给现场总线段上的现场设备的功能块指派给该段上的I/O设备的现场总线端口。否则,例程42会将不被现场总线段上的现场设备支持的功能块指派给与该段相关联的控制器。以此方式,例程42将功能块在I/O设备中的指派限制为那些保证整个控制模块可以在现场总线段上运行所必需的功能块,从而节约了I/O设备的资源,具体来说节约了I/O设备的现场总线端口。
为了使用户或配置工程师能够指定是否将特定模块自动指派给现场总线段上的I/O设备,可以将名为“自动计算调度宏周期(auto-calculate schedulemacrocyle)”的用户可设置属性添加到现场总线端口。如果例程42确定该属性被设置,则例程42尝试使用I/O设备的现场总线端口来调度在现场总线段上执行的模块。而且,用户可以逐个模块为基础,指定例程42是否要尝试将特定模块的功能块指派给现场总线段的I/O设备的现场总线端口。具体来说,各个控制模块可以具有名为例如“将功能块自动指派给现场总线端口(auto-assign function blocks to现场总线port)”的用户可设置属性,当该属性被设置时允许模块的功能块被指派给现场总线段的I/O设备的现场总线端口。由于例程42以模块为基础而不是以功能块为基础确定是否尝试将功能块指派给现场总线I/O设备来执行,因此这里还被称作“自动指派(auto-assign)”属性的该属性在模块级而非功能块级被使能。因此,一般而言,自动指派属性应当以逐个模块为基础开启或关闭,并且该属性应当仅在控制模块的顶级被应用。
在一个实施例中,当将功能块指派给支持现场总线协议的I/O设备(还称作现场总线I/O设备)的现场总线端口时,例程42确定是否控制模块的关键流程中的所有输入和输出功能块都被调度为指派给公共现场总线段上的现场设备。如果是,假设该控制模块的关键流程中的其它功能块不能以其它方式指派给该现场总线段上的现场设备,并且假设还有足够的资源允许该指派,则例程42将该控制模块的关键流程中的其它功能块(布置在输入功能块和输出功能块之间)指派给该现场总线段上的I/O设备的现场总线端口。例如,如果现场总线I/O设备的现场总线端口不支持控制模块中使用的特定类型的控制功能块或者现场总线端口没有剩下足够的资源来指派甚至模块的控制块之一,则该模块中没有功能块会被指派给该I/O设备的该现场总线端口。另一方面,如果控制模块的关键流程中的输入功能块输出功能块中的一个以上没有被调度为在该段上的现场设备中执行,则例程42会将这些控制功能块和该模块的其它功能块指派给控制器,而不是I/O设备的现场总线端口。
因此,一般而言,如果(1)控制模块的关键流程中的所有输入块和输出块被指派给公共现场总线段上的设备和致动器,并且(2)输入块和输出块之间的所有功能块可指派给现场总线端口(被现场总线端口支持),则该模块的功能块会被指派给I/O设备的现场总线端口。另一方面,假设(1)针对模块的自动指派属性被使能,(2)该模块的至少一个输入块和至少一个输出块被指派给段上的设备和/或传动装置,(3)在同步中没有中断(例如输入功能块和输出功能块之间的关键流程中的每个功能块都可以被指派给现场总线端口),并且(4)为该现场总线I/O设备的现场总线端口设置了“自动计算调度宏周期”属性,则该模块的关键流程中的功能块会被自动指派为在该段上执行,因为这些块会被自动指派给该段的现场总线端口。
在此应当注意的是,在一个实施例中,仅通过控制环路(控制模块)的前向路径被认为是关键流程的一部分,任何反馈路径都不会被认为是关键流程的一部分。而且,对现场总线端口的块的自动指派会基于控制路径中被指派给同一现场总线段的I/O块,并基于关键流程中现场总线端口所支持的所有功能块。在一个实施例中,当多个AI、AO、DI或DO块在关键流程中时,只要针对控制模块有至少一个输入块和一个输出块被指派给现场总线段上的现场设备,则这多个块中仅有一个需要捆绑到现场总线设备上。然而,在这种情况下,未被指派给现场总线设备的输入功能块和输出功能块不会被指派给现场总线端口,因此这些功能块会异步运行。然而,如果需要,在一些实施例中,输入/输出功能块(例如AI、AO、DI、DO、MAI功能块)可以被指派给现场总线端口,也可以被阻止指派给现场总线端口。在其它实施例中,如果需要,例程42可以命令将该模块的关键流程上的所有输入功能块和输出功能块指派给段上的现场总线设备,以便将关键流程中的其它功能块指派给该段的现场总线I/O设备的现场总线端口。
因此,一般而言,在将模块的功能块指派给现场总线端口之前,例程42可以确定(1)该模块的自动指派属性是否被使能,(2)现场总线端口上的自动计算调度宏周期属性是否被使能,(3)I/O卡是否具有足够的资源来支持与该模块相关联的功能块,(4)该模块的输入功能块和输出功能块之间的前向流程中的所有功能块是否被现场总线卡支持,和(5)前向流程中的所有功能块在同一模块中。如果这些条件中的任意一项不满足,则例程42可以决定不将该模块的任何功能块指派给现场总线段上的现场总线I/O设备的现场总线端口,而相反可以将这些功能块指派给与该现场总线段相关联的控制器。
使用该技术,由于功能块是基于模块的属性被指派给现场总线I/O卡的,因此用户一般不能根据现场总线I/O卡的现场总线端口而不指派单个的功能块。相反,用户仅可以通过设置该模块的自动指派属性,将模块作为一个整体进行自动指派或自动不指派。
因为当控制模块被保存时例程42的指派行为可以自动发生,因此如果需要,当用户打开或关闭该模块的自动指派属性时,可以向用户提供消息,以通知用户他或她必须保存该模块以查看改变并解释结果。此外,期望各个功能块包括指示该块是否被配置为自动指派的可视属性。如果需要,则当模块的自动指派属性被设置为自动指派时,在存在阻止该模块的功能块被实际指派给具有现场总线端口的现场总线I/O设备的资源限制时,向用户发布警告。例如,如果现场总线I/O卡已经达到其极限,并且模块被保存,则用户可以接收到该模块的功能块不会被自动指派并且该模块以自动指派属性关闭的状态保存的警告。在这种情况下,用户可能必须移除或取消设置其它模块的自动指派属性以释放在现场总线端口上的一些指派空间,开启该模块的自动指派属性,然后重新保存该模块以使块自动指派特征工作。
如果需要,例程42可以包括位于数据库12中的实用程序,所述数据库12例如具有可以被指派给现场总线设备的完整关键流程的所有潜在模块并且这些模块是否具有“开启”或“关闭”的自动指派属性。该实用程序可以用于帮助用户理解在哪里开启或关闭特定模块的自动指派属性可能帮助创建资源空间。该实用程序还可以帮助用户确定模块的特性,在配置下载之前为模块设置自动指派属性是有利的。
图3示出描绘另一示例方式的流程图60,其中例程42可以以可操作的方式将控制模块的功能块自动指派给现场总线I/O设备的现场总线端口或者指派给与特定现场总线段相关联的控制器。在块61处,例程42确定是否还有控制模块需要检查,如果没有,则结束。如果仍有一个以上控制模块待检查以供指派,则块62寻找下一控制模块以便检查。然后块63确定所选择的控制模块的自动指派属性是否被设置为“开启”,如果否,则控制被提供给块64,块64以可操作的方式将控制模块的未指派的控制和输入/输出功能块指派给控制器,如在现有技术的系统中通常会发生的那样。然而,如果块63确定所选择的控制模块的自动指派属性被设置为“开启”,则块65确定该控制模块的关键流程。从以上提供的讨论中可以理解,关键流程包括通过控制模块从输入块到输出块的前向路径的每个部件。关键流程控制路径可以通过逐步经过该模块并识别被布置在从各个输入块到各个输出块的前向流程链路所形成的路径上的各个功能块来确定。
接下来,块66确定是否该控制模块的关键流程上的每个输入功能块和输出功能块都被指派给公共现场总线段上的现场总线现场设备。在可替换的实施例中,块66可以确定是否该模块的各个关键流程部件上的至少一个输入功能块和一个输出功能块被指派给公共现场总线段上的现场总线现场设备。如果输入/输出块没有被正确地指派给公共现场总线段上的现场总线现场设备,则例程42确定不可能将该控制模块完整同步地指派给现场总线段,并且因此也不会将该模块的任何功能块指派给现场总线段上的现场总线I/O设备的现场总线端口。在这种情况下,例程42将控制提供给块67,块67通知用户该控制模块向现场总线I/O设备的自动指派失败。然后,块64将未指派的控制和输入/输出功能块指派给与现场总线段相关联的控制器(例如图2的控制器57),并且将控制返回到块61。
另一方面,如果块66确定该模块的输入/输出功能块被正确地指派给公共现场总线段上的现场总线现场设备,则块68确定该现场总线段上的现场总线I/O设备的现场总线端口的自动计算属性是否被设置为“开启”,被设置为“开启”意味着该I/O设备被配置为在该现场总线段上运行或执行功能块。如果没有被设置为“开启”,则块67通知用户指派失败,并将控制提供给块64,以便执行该控制模块中的功能块向控制器的传统指派。
然而,如果块68确定现场总线端口的自动计算属性被开启,则块69确定现场总线端口是否支持控制模块的关键流程中的每个未指派的功能块。即使关键流程中只有一个未指派的功能块不被现场总线端口支持,则控制被提供给块67和64,这些块通知用户指派失败,并进行未指派功能块向控制器的传统指派。
另一方面,如果现场总线端口支持关键流程中的每个未指派功能块,则块70确定该端口是否具有足够的资源(能力)来执行该控制模块的关键流程中的每个未指派的功能块。如果没有,则控制被提供给块67和64,这些块通知用户指派失败并执进行未指派功能块向控制器的传统指派。另一方面,如果现场总线端口有能力,则块71将关键流程中的每个未指派功能块指派给该现场总线I/O设备的现场总线端口以供执行。此时,如果需要,则块71还可以确定是否可以或应当将该控制模块中任意剩余的功能块(即没有在该控制模块的关键流程中的那些功能块)指派给该现场总线I/O设备的现场总线端口。在某些情况下,如果所有这些块都可以在该现场总线I/O设备中运行,则块71可以将这些块指派给该设备,以提供以完全同步的方式在现场总线段上执行的控制模块。可替换地,块71可以以可操作的方式不将剩余功能块中的任何一个指派给该I/O设备,从而节约该设备的资源以供在该段上运行的其它控制模块使用。如果需要,块71可以采用任何基于用户可选择的设置的方式操作。在任何情况下,完成当前控制模块的功能块的指派之后,控制返回到块61以处理其它控制模块。
当然,图3的流程图60仅仅是示例性的,例程42也可以采用其它方式操作。而且,如果需要,流程图60中的某些块可以重新排列顺序。例如,块68、69和70可以布置在例程60中的更早或更晚的地方,可以重新排列顺序,并且在某些情况下,可以在确定控制模块的关键流程之前实施。
在另一示例中,对用于自动块指派的算法的总结如下:
Find synchronized control path
synchronizeList=new List
Foreach Fielbus input block in module
blockList=block.BlockFindSynchronisedControlPath()
append blockList to synchronizeList
End
loopExecutionIsSynchronised=false//在模块上标记以指示可用
的同步执行
loopExecutionOccursInH1Card=false//在模块上标记以指示块
在H1卡中的可用执行
For each block in synchroniseList
loopExecutionIsSynchronised=true
If(block is not a Fielbus block)
Mark block as potentially executing in the H1 card
loopExecutionOccursInHlC=true
Endif
End
End
BlockFindSynchronisedControlPath()
synchronizeList=new List
If(thisBlock is a Fielbus output block)
Append thisBlock to the synchroniseList
ElseIf(thisBlock can be assigned to the HI port OR thisBlock is a
Fielbus block)
Foreach output connector on thisBlock
If the wire is not a feedback wire AND the wire
connects values of the exactly the same data
type AND the source connector is a
predefined connector AND the destination
connector is a predefined connector
blockList=destinationBlock.BlockFind
SynchronisedControlPath()
If(blockList is not empty)
append blockList to synchroniseList
append thisBlock to synchroniseList
Endif
Endif
End
End
Endif
Return synchroniseList
End
图4-9示出示例控制模块,并且指示例程42基于以上所述的原则将这些模块的控制功能块指派给控制器还是指派给连接至现场总线段的现场总线I/O设备的现场总线端口的方式。具体来说,图4示出具有链接至PI功能块77的AI功能块76的控制模块75,其中PI功能块77在前向和反向上都链接至AO功能块78。已知并且普遍的是,AI功能块76获取测量结果或其它输入信号,并通过所指示的链路将该信号提供给PI功能块77。PI功能块77是控制功能块,其进行比例/积分控制计算,以产生提供给AO功能块78的控制信号。接着AO功能块78以可操作的方式使用该控制信号来施行工厂内的物理功能,例如开启或关闭阀,或者改变工厂内的物理设备中的一些其它设置,以进行控制行为。AO功能块78还向PI功能块77提供诸如当前阀位置之类的反馈测量结果,以供PI功能块77在改良(develop)控制信号时使用。
图4的模块75是在传统现场总线测量环路中建立的,其中AI功能块76被调度为在诸如现场总线变送器设备之类的现场总线测量设备中操作或位于该设备中。该调度由AI功能块76之上的“FF”指示。然而,AO功能块78根本没有被调度或指派给现场总线设备,或至少没有被调度或指派给与AI功能块76所在的现场总线段相同的现场总线段中的现场总线设备。结果,由于不能将模块75的关键流程中的所有功能块都置于现场总线I/O卡58和现场总线段56上的FF现场设备中,因此例程42会在进行自动指派时将PI功能块77和AO功能块78都置于与该现场总线段相关联的控制器57中。这种指派功能由图4中的箭头指示。
图5示出图4中示出的同一控制模块75,但是在传统的现场总线致动器环路中建立的。这里,AO功能块78位于现场总线段上的现场总线设备中(例如致动器)(由该块之上的“FF”指示),但是AI功能块76并不与和AO功能块78所在的现场总线段相同的现场总线段上的现场总线设备相关联。这里再一次由于控制模块75的关键流程中的输入块和输出块(在该例子中是输入块)没有都指派给同一现场总线段上的现场总线设备,因此例程42将AI功能块76和PI功能块77都指派给控制器57。
然而,图6示出以测量和激励都由公共现场总线段上的现场总线设备来进行的配置而建立的控制模块75。该操作由输入功能块76和输出功能块78中每一个之上的“FF”指示。这里,由于控制模块75的输入和输出功能块中的每一个都被指派给公共现场总线段上的现场总线设备,因此例程42会将PI功能块77指派给现场总线I/O设备58(更具体地说是该设备的现场总线端口59),以在现场总线段56中同步执行。
图7示出实施级联型控制环路的另一控制模块80。如图7所示,控制模块80包括具有连接至PI控制功能块82的AI功能块81的第一级。PI控制功能块82的输出被提供为给第二级PI功能块83的第一输入,第二级PI功能块83的另一输入来自第二级AI功能块84。第二级PI功能块83使用两个输入连同反馈信号来产生提供给AO功能块85的控制信号。
如图7中“FF”的放置所示,AI功能块81和84中的每一个以及AO功能块85被指派给公共现场总线段56上的现场总线设备。结果,例程42以可操作的方式将PI功能块82和83指派给现场总线I/O设备58来执行,以提供现场总线段56上控制模块80的同步执行。
图8示出图7的模块80,除了在该例子中第二级AI功能块84没有指派给现场总线段56上的现场总线设备。由于模块80的关键流程包括级联环路的两级的输入和输出,并且由于关键流程中的输入块之一没有被指派给与模块80的其它输入块和输出块所在的现场总线段相同的现场总线段的现场总线设备,或不与和模块80的其它输入和输出块所在的现场总线段相同的现场总线段的现场总线设备相关联,因此由于即使将PI块82和83指派给现场总线I/O设备58,控制模块80也不可能同步执行,因此例程42会将关键流程中所有未指派的块(即AI块84以及PI功能块82和83)指派给控制器57。
图9示出具有分段输出配置的另一控制模块86。控制模块86包括连接至PI控制块88的模拟输入块87,PI控制块88给分段块(SPL)89提供输出,接着SPL块连接至两个并联连接的AO功能块90A和90B。这里,由于AI功能块87以及AO功能块90A和90B中的每一个都被指派给公共现场总线段上的现场总线设备,因此例程42将PI功能块88和SPL功能块89指派给现场总线I/O设备58来执行,以提供现场总线段56上模块86的同步执行。当然,该操作假设设备58(更具体地是该设备的现场总线端口59)支持PI和SPL块功能,并且具有充足的资源来执行这两个块。然而,该示例示出在模块的输入功能块和输出功能块之间在该模块的关键流程中串联连接的多个块(例如控制块)可以被指派给现场总线I/O设备。
任何情况下,如上所述,在例程42(图1)以可操作的方式将每个创建的控制模块的功能块指派给与现场总线段相关联的设备之后,例程44可用于基于由例程42作出的指派而自动生成用于现场总线段的通信和执行调度表。一般而言,例程44会通过识别在现场总线段上运行的每个功能块和创建该段的宏周期、并在宏周期中指定各个功能块的通信和执行的偏移时间,来形成该段的通信和执行调度表。当然,例程44可以创建适应来自多个不同控制模块的功能块的宏周期。
可以理解,例程40的使用为控制定义和用户接口设备处的查看提供了统一的环境。具体来说,使用例程40可以在不考虑将控制块指派到哪里执行(即在控制器、现场总线接口卡中或在特定现场总线段上的现场总线设备中)的情况下对控制进行定义。由于大多数可以在控制器中运行的功能块也允许在现场总线接口卡中执行,因此该特征是可用的。这样,因为任何在现场总线现场设备中不被支持的块可以被指派给现场总线接口卡,并且仍然可以在现场总线段上同步操作,因此用户不必担心他或她选择的用于测量或激励的现场总线设备是否支持需要进行控制或监测应用的功能块。
在一个实施例中,例程44可以基于功能块向现场总线段的指派来自动计算将要在该段上使用的调度表,并且在自动计算时可以自动提供对该现场总线段上功能块的多种不同执行速率的支持。例如,当多个控制环路(或模块)在同一现场总线段上执行时,同一个执行速率可能不适于每个环路。同样地,期望在某些情况下功能块在单个控制环路中以不同的速率执行。为了允许用户选择性地改变现场总线段上的一些控制模块或控制模块中的一些功能块的相对执行速率,用户可以配置具有不同执行速率的模块(或功能块)。可替换地,可以为被指派为在现场总线端口或现场总线设备中执行的块提供执行乘数,以指定同一段上的不同功能块的相对执行速率。
作为示例,图10示出实施级联控制环路的控制模块91,该级联控制环路包括具有连接至PID控制功能块93(标记为PID2)的AI功能块92(标记为AI2)的第一级,AI功能块92。PID控制功能块93的输出被提供为第二级PID功能块94(标记为PID1)的第一输入,第二级PID功能块94(标记为PID1)的另一输入来自第二级AI功能块95(标记为AI1)。第二级PID功能块94使用这两个输入连同反馈信号来产生控制信号,该控制信号被提供给AO功能块96。如图10中所示,由于输入功能块和输出功能块92、95和96被指派给同一段56上的现场总线设备,因此例程42会将PID功能块93和94指派给现场总线I/O设备58的现场总线端口59,以提供段56上模块91的同步执行。
然而,如图10所示,AI功能块92和PID功能块93具有与其关联的4x乘数(其可以由配置工程师或其它用户在配置过程期间指定)。这些块的4x乘数指标指定这些块应当以该控制模块91中其它块的速率的四分之一运行或执行。具体来说,具体来说,由于级联环路的初级(第一级)需要以该环路的次级速率的四分之一执行,因此初级的AI块92和PID块93被配置有4x执行乘数。例程44在产生现场总线段56的调度表时会考虑到级联环路的AI块92和PID块93以其它功能块速率的四分之一执行,并且生成调度表时例程44会形成适应该执行速率的变化的宏周期(即功能块执行调度表)。具体来说,在现场总线段的单个宏周期中,功能块92和93(以4x乘数被指派)将只被调度一次,而所有其它功能块将被指派为在该宏周期内执行四次。
图11示出得到当段56只运行图10的控制模块91时由例程44针对段56生成的宏周期97的示例。这里,可以看出宏周期97被划分为四个相等的时段(时段中有一个时段由“重复的时间”箭头指示)。次级的AI块95、PID块94和AO块96中的每一个被调度为在每个重复的时间期间执行(即在宏周期97期间执行四次),而AI块92和PID块93被调度为在宏周期97期间仅执行一次。因此,初级的AI块92和PID块93以比次级的块94-96的速率的四分之一执行。
当模块的两个块以不同的速率执行时,通常不需要将它们的执行彼此同步,因此只要这些块在现场总线段上的不同设备中执行,则以不同速率运行的块的执行时间通常可能重叠。在很多情况下,该特征允许以本质上不给较快运行的块增加时间延迟的方式调度与较慢运行的块相关联的通信,如图11的示例宏周期所示出的(其中重复的时间是执行控制模块91的次级所需的最小时间)。
如果需要,以下程序可以由例程44在确定重复的时间和然后确定现场总线段的宏周期时使用,以适应同一现场总线段上具有不同执行速率的功能块。首先,例程44可以基于还没有被指派执行乘数的功能块(即具有最快执行速率的功能块)的执行速率以及为支持非循环通信而增加的时间来计算重复的时间(或重复时间)。这就是宏周期的建议重复时间。然后,例程44可以基于这些块(即最快运行的块)在它们各自的控制模块中的信号流顺序来排列各重复时间期间这些块单个执行的块执行时间,并且可以在可能的情况下发挥功能块的并行执行的最大优势。接下来,例程44可以按照宏周期=重复时间乘以被配置的最大执行乘数来计算宏周期。
接下来,例程44可以将与剩余的块(即具有执行乘数的块)相关联的通信层叠在整个宏周期中可获得的时间上。如果例程44无法将其它块的所有通信安置在宏周期中,则例程44可以扩展该重复时间(例如扩展20%),以允许在宏周期中调度更多的通信。然后,例程44可以重复将具有较慢执行速率的块的通信增加到新的宏周期中的过程,并且在需要的情况下扩展重复时间,直到该段上所有功能块的所有通信都可以调度到最终宏周期中。
图12示出另一宏周期98,其中多个模块被调度为在同一现场总线段上执行。在该示例中,在现场总线段上配置了四个简单的PID控制模块(每一个都具有单个AI、AO和PID功能块)。这里假设每个控制模块的AI和AO块都位于该段上的现场总线现场设备中,并且PID块被自动指派给该现场总线段的现场总线I/O设备的现场总线端口。然而,模块之一(包含AI1、PID1和AO1块的模块)可以控制例如液压,并且与其它的控制模块相比可能需要尽可能快地执行。在该示例中其它模块不太重要,并且可以采用较快模块的执行速率的四分之一的速率执行。利用以上程序,为该段计算的通信和执行调度的宏周期98示于图12中。这里,第一模块(具有AI1、PID1和AO1功能块)在宏周期98期间执行四次,而其它模块在宏周期98期间仅执行一次。为了实现该特征,第一模块被调度为在四个重复时间中的每一个期间执行(由于该模块的运行速率是其它模块的四倍),接着其它模块被调度到最终宏周期98中的剩余时间。
一般而言,例程44可以以可操作的方式使用户能够为现场总线段选择两种调度技术中的一种,其中指定的调度技术通过设置现场总线端口的最优自动计算属性来选择。这两种调度技术包括允许每个宏周期中有单个块执行的传统调度和支持具有子调度的一个宏调度的最优自动计算调度宏周期。最快子调度的周期通过将最快模块执行时间和功能块乘数进行组合来设置。在这种情况下,各个子调度可以具有其自身的周期。而且,宏周期将以为端口(遗赠)配置的模块执行时间为基础,或在无法达到配置时间的情况下以最小时间为基础。支持执行得更慢的一些块的子调度以配置的执行乘数和端口宏周期时间为基础。
如果需要,可以使用乘数将模块执行时间映射为特定的现场总线段时间。一般而言,基本段时间可以是任意数目,例如100、125、128或其倍数。约束基本上是子调度时间应当是2的倍数,并且支持的最慢子调度是最快子调度八分之一的最大值,尽管也可以使用其它约束作为这些约束的替代或附加。如果需要,自动计算调度特征支持1、2、4和8的倍数的执行。这里,4倍慢指标意味着宏调度会被划分为4段,8倍慢的指标意味着宏调度会被划分为八段,等等。
当然,多于两种执行速率可以得到支持。在这种情况下,最快的执行速率首先被调度,其重复时间是以执行得最慢的块使用的乘数为基础重复若干倍。因此,如果存在没有乘数的块和具有2x、4x和8x乘数的块,则执行得最快的块(没有乘数)的子调度会在宏周期期间被重复八次。然后具有次最快执行速率的块(例如2x块)会被调度到使用第一子调度所创建的宏周期内的剩余时间内。该第二子调度的重复时间以这些块的乘数与执行得最慢的块的乘数之间的比率(即在该例子中是2x/8x,等于4)为基础。如果这些块不能被调度到使用第一子调度创建的宏周期内,则增加第一子调度的重复时间,并且重复该过程,直到下一个执行得最快的块可以被调度到最终宏周期内为止。然后,针对每一个不同的速率(或子调度)重复该过程,直到所有块都能够被调度到最终宏周期内为止。
当然,在调度表中既使用模块扫描速率又使用功能块乘数。例如级联环路中就是这种情况,其中使用功能块乘数是很重要的。该乘数由模块的相对执行速率确定。在确定宏调度和子调度时,宏调度由最快环路来设置,而乘数(达到8x)用于其它模块。当不能达到子调度执行速率时,可以向用户警告该状况。然而,如果需要,仍然下载该调度。用户无法超控(over-ride)段执行速率(当然,例外的是用户可以超控整个调度)。
总体而言,参照图13-35更详细地描绘在现场总线段上配置并支持多个不同的块执行速率的一种方式。具体来说,如上所述,由过程控制系统中的过程控制器和现场设备生成用于执行功能块的调度所使用的已知技术通常涉及,将与同一通信总线(例如以可通信方式连接被指派来执行这些功能块的现场设备和控制器的通信总线)相关联的所有功能块调度为以执行得最慢的功能块的速率来执行。因此,已知技术需要增加执行得相对较快的功能块的块执行周期(例如减慢功能块执行速率)来与执行得最慢的功能块的块执行周期匹配,这样某些功能块的较小执行周期(即较快执行速率)不能有利地用于实施过程控制系统。
与实施用于执行功能块的调度所使用的一些已知技术不同,以下所描述的示例方法和装置可以用于基于功能块各自的功能块执行周期来生成执行这些功能块的调度表,而不需要显著地增加功能块执行周期以匹配与同一通信总线相关联(例如通过通信总线来通信)的其它功能块的功能块执行周期。以比与同一通信总线相关联的其它较慢功能块更快的速率执行某些功能块可能是有利的。例如,如果压力测量功能块和阀控制功能块与同一通信总线相关联,则使用较短的周期(例如以较快的速率)来执行压力测量功能块是利的,而使用较短的周期来执行阀控制功能块则可能不是很有利。因此,压力测量功能块的功能块执行周期可以短于阀控制功能块的功能块执行周期。使用已知技术来调度功能块的执行会需要压力测量功能块使用与阀控制功能块相同的较慢的周期来执行。结果,压力测量功能块可能无法捕获过程中较高频率的压力变化。相反,使用这里所描述的示例方法和装置来生成用于使用功能块各自的块执行速率来执行这些功能块的调度表,使得压力测量功能块能够使用比阀控制功能块更短的周期(例如以较快的执行速率)来执行。因此,压力测量功能块可以更频繁地(例如以相对高的分辨率)获得压力测量结果,以便例如捕获较高频率的压力变化(例如尖头信号、毛刺或其它相对高频率的压力变化),否则使用已知的功能块调度技术无法捕获或处理这类压力变化。
使用功能块各自的块执行速率来生成这里所述的调度表,能够对将要由以可通信方式连接至同一通信总线的现场设备或控制器执行的多个过程环路进行调度,同时保证过程环路以它们各自的环路执行周期来执行。也就是说,与较短的环路执行周期(例如较快的环路执行速率)相关联的过程环路可以比具有较长的环路执行周期(例如,较慢的环路执行速率)的过程环路相对更快地执行。以此方式,与生成用于执行功能块的调度表所使用的一些已知方式不同,与同一通信总线相关联的所有环路的环路执行周期不需要等于最长的环路执行。
现在转到图13,可以用于实施这里所描述的示例方法和装置的示例过程控制系统100包括工作站102(例如应用程序站、操作员站等)和控制器106,工作站102和控制器106可以可通信方式通过总线或局域网(LAN)108相连,局域网108通常称作应用程序控制网络(ACN)。LAN 108可以作用任意期望的通信介质和协议来实现。例如,LAN 108可以基于硬线或无线以太网通信方案,其中硬线或无线以太网通信方案是公知的,因此这里不再详细描述。然而,本领域普通技术人员会容易地理解,可以使用任意其它合适的通信介质和协议。另外,尽管示出单个LAN,但是多于一个LAN和工作站102中的适当的通信硬件可以用于在工作站102与相应类似的工作站(未示出)之间提供冗余通信路径。
工作站102可以被配置为进行与一个以上信息技术应用程序、用户交互应用程序和/或通信应用程序相关联的操作。例如,工作站102可以被配置为进行与有关过程控制的应用程序和能够使工作站102和控制器使用任意期望的通信介质(例如无线、硬线等)和协议(例如HTTP、SOAP等)与其它设备或系统进行通信的通信应用程序相关联的操作。工作站102可以使用任意合适的计算机系统或处理系统(例如图35的处理器系统2310)来实现。例如,工作站102可以使用单处理器个人计算机或者单或多处理器工作站等来实现。
控制器106可以施行已经由系统工程师或其它系统操作员使用工作站102或任意工作站生成的且已经下载到控制器106中并在控制器106中初始化(instantiate)的一个以上过程控制例程。控制器106可以是由费舍-柔斯芒特系统有限公司和爱默生过程控制TM出售的DeltaVTM控制器。然而,可以使用任意其它的控制器作为替代。进一步,尽管在图13中仅示出一个控制器,但是可以将任意期望类型或组合类型的附加控制器连接至LAN 108。
控制器106可以通过数字数据总线114和输入/输出(I/O)设备116连接至多个现场设备112a-c。在过程控制例程的执行期间,控制器106可以与现场设备112a-c交换信息(例如命令、配置信息、测量信息、状态信息等)。例如,控制器106可以具有过程控制例程,该过程控制例程在由控制器106执行时会使控制器106通过数字数据总线114向现场设备112a-c发送使现场设备112a-c进行指定操作(例如,进行测量、开启/关闭阀等)和/或传送信息(例如测量数据)的命令。
为了识别过程控制系统100中的现场设备112a-c,各个现场设备112a-c都具有(例如存储)唯一物理设备标签(PDT)。例如,第一现场设备112a的物理设备标签是PDT1,第二现场设备112b的物理设备标签是PDT2,并且第三现场设备112c的物理设备标签是PDT3。在图示的示例中,现场设备112a-c包括第一压力变送器112a、第二压力变送器112b和数字阀控制器(DVC)112c。然而,任意其它类型的现场设备(例如阀、致动器、传感器等)可以与这里所描述的示例方法和装置一起使用。
在图示的示例中,现场设备112a-c是现场总线兼容设备,被配置为使用公知的现场总线协议通过数字数据总线114进行通信。根据现场总线标准,数字数据总线114是被配置为以可通信方式连接至测量和控制设备(例如现场设备112a-c)的数字双向多分支通信总线。现场设备112a-c示出为在多分支配置中以可通信方式连接至数字数据总线114。数字数据总线114或类似的数据总线可以可替换地用于使用点对点配置将现场设备以可通信方式连接至I/O设备116,在点对点配置中,一个现场设备被提供数字数据总线的专用权以与I/O设备116进行通信。在可替换的示例实施方式中,该方法和装置可以与其它类型的现场设备(例如使用公知的Profibus和HART通信协议通过数据总线114进行通信的Profibus或HART兼容设备)一起使用,这些现场设备可以包括或不包括现场总线兼容设备。数字数据总线114在此也称作段。段是描述以其特征阻抗来终结的物理总线的现场总线术语。在图13的图示实施例中,数字数据总线114形成段。这里描述的示例方法和装置可以使用单个段(例如数字数据总线114)或使用中继器形成较长逻辑总线的两个以上段(例如数字数据总线114和一个以上其它数字数据总线)实现。
在图示的示例中,I/O设备116使用I/O子系统接口来实现,I/O子系统接口使控制器106和现场设备112a-c能够连接至可使用现场总线协议或其它类型通信协议(例如Profibus协议、HART协议等)的其它现场设备。例如,I/O设备116可以包括进行现场总线协议和其它通信协议之间的转变的一个以上网关。附加I/O设备(类似于或等同于I/O设备116)可以连接至控制器106,以使附加的现场设备组能够与控制器106进行通信。
提供了示例过程控制系统100以图示一种系统,在该系统中,可以有利地采用以下更详细描述的示例方法和装置。然而,如果需要,这里描述的示例方法和装置可以有利地用在比图13所示的示例过程控制系统100的复杂性更高或更低的其它系统和/或与过程控制活动、企业管理活动、通信活动等一起使用的系统中。
在图13图示的示例中,模块120在工作站102处被配置为定义将由控制器106和/或现场设备112a-c执行的过程控制例程。模块120包括多个功能块122a-e,功能块122a-e定义将由现场设备112a-c施行以实施过程控制例程的功能。这些功能可以使现场设备112a-c获得测量值(例如压力值、温度值、流量值、电压值、电流值等)、施行算法或计算(例如积分、微分、加、减等)、控制仪器(例如开启/关闭阀、炉膛调节、锅炉调节等)或施行任何其它功能。在图示的示例中,现场设备112a-c以机器可执行指令的形式存储并执行由各个功能块122a-e定义的功能。然而,在其它示例实施中,作为对功能块122a-e的替代或附加,模块120可以被提供以表示由控制器106而不是现场设备112a-c之一执行的功能的功能块。
工作站102还可以用于配置具有由现场设备112a-c和/或控制器106执行的一个以上其它功能块(未示出)的另一模块124。虽然示出两个模块(模块120和124),但是更多模块可以在工作站102处被配置为由控制器106和/或现场设备112a-c执行附加功能块。其它模块可以用于实施其它过程控制例程和/或与模块120和124一起实施过程控制例程。
在图示的示例中,功能块122a-e包括第一模拟输入(AI1)功能块122a、第一比例/积分/微分(PID1)功能块122b、第二模拟输入(AI2)功能块122c、PID2功能块122d和模拟输出(AO1)功能块122e。AI1功能块122a和PID1功能块122b定义将由现场设备112a执行的功能。AI2功能块122c定义将由现场设备112b执行的功能。PID2功能块122d和AO1功能块122e定义将由现场设备112c执行的功能。在可替换的示例实施中,可以使用任意其它类型的功能块来作为功能块122a-e的替代或附加。
图14描绘表示功能块122a-e的图形用户界面(GUI)。功能块122a-e可以由用户(例如工程师、操作员等)使用由例如工作站102执行的基于GUI的设计软件应用程序进行互连。如图14所示,各个功能块122a-e包括一个以上输入端和/或一个以上输出端。对功能块122a-e的输入和/或输出进行的连接定义了模块120(图13)的过程控制例程。这里功能块122a-e之间的连接称作功能块连接线。在图示的示例中,AI1功能块122a的输出端连接至PID1功能块122b的输入端,PID1功能块122b和AI2功能块122c的输出端连接至PID2功能块122d的输入端,并且PID2功能块122d的输出端连接至AO1功能块122e的输入端。
简单地转到图15,为了示例性目的而提供示例功能块捆绑配置202(即捆绑配置202),以示出AI2功能块122c的输出端204可以被捆绑到PID2功能块122d的输入端206,从而使信息能够从AI2功能块122c传送至PID2功能块122d。捆绑过程基于功能块(例如图13和14的功能块122a-e)之间的连接生成捆绑配置202。任何时候进行新的功能块连接(例如输出204与输入206之间的连接)以使功能块能够根据功能块互连交换信息时,捆绑过程可以由例如工作站102执行。
捆绑过程被配置为创建使能设备内通信的设备内链路和使能设备间通信的设备间链路。设备内链路定义与同一设备相关联的两个功能块之间的连接。例如,由于功能块122a和122b所定义的功能由同一设备(图13的现场设备112a)执行,因此设备内链路定义AI1功能块122a(图13和14)与PID1功能块122b(图13和14)之间的连接。设备间链路定义一个现场设备中的功能块与另一现场设备中的功能块之间的连接,该连接使这些现场设备通过以可通信方式连接这两个现场设备的通信总线(例如图13的数字数据总线114)来通信。例如,由于与AI2功能块122c相关联的功能由现场设备112b(图13)执行,并且与PID2功能块122d相关联的功能由现场设备112c(图13)执行,因此设备间链路定义AI2功能块122c(图13-15)与PID2功能块122d之间的连接。
在图15图示的示例中,捆绑过程创建将AI2功能块122c捆绑到PID2功能块122d的设备间链路配置。最初捆绑过程创建包含将输出端204链接到输入端206的信息的设备到设备链路对象208(例如设备间链路对象)。在用来捆绑与同一设备相关联的功能块的可替换示例实施中,捆绑过程会创建设备内链路对象(未示出)。在图15的示例捆绑配置202中,捆绑过程则创建出版者(publisher)链路210,将出版者链路210与输出端204相关联,并将出版者链路210捆绑到设备到设备链路对象208。而且,捆绑过程还创建订阅者链路212,将订阅者链路212与输入端206相关联,并将订阅者链路212捆绑到设备到设备链路对象208。
捆绑过程还创建出版者虚拟通信资源(VCR)214和订阅者VCR 216。VCR维护(或坚持)功能块之间的连接的标识,从而可以使用VCR标识来进行功能块之间的任何通信。在图示的示例中,出版者VCR 214将AI2功能块122c的唯一标识218与出版者链路210相关联,并且订阅者VCR 216将PID2功能块122d的唯一标识220与订阅者链路212相关联。一般来说,出版者/订阅者VCR(例如出版者VCR 214和订阅者VCR 216)使能功能块之间的缓冲通信,包括一对多广播通信(例如一个功能块向很多功能块广播信息)。在图示的示例中,AI2功能块122c生成新的数据之后,通过输出端204向PID2功能块122d传送(公布)该数据。PID2功能块122d是输出端204的订阅者,因此接收通过输出端204公布的数据。
返回图14,功能块122a-e连接以形成环路。具体来说,AO1功能块122e的输出端连接至PID2功能块122d的输入端,以形成PID2-AO1环路232。而且,PID2功能块122d的输出端连接至PID1功能块122b的输入端,以形成PID1-PID2环路234。在图示的示例中,PID1-PID2环路234比PID2-AO1环路232执行的频率更低(例如具有更长的环路执行周期或更慢的环路执行速率)。
环路232的环路执行周期以功能块122c-e的块扫描速率(BSR)为基础,环路234的环路执行周期以功能块122a-b的块扫描速率为基础。块扫描速率定义一功能块向另一功能块传送或公布信息的频率。例如,如果现场设备112a执行AI1功能块122a并且每隔2000ms在数字数据总线114上公布一次信息,则AI1功能块122a的块扫描速率为2000ms。这里现场设备(或控制器)执行相应的功能块所需的时间量称为块执行时间。例如,如果现场设备112a需要20毫秒(ms)来执行AI1功能块122a,则AI1功能块122a的块执行时间是20ms。图16和17中以示例方式示出分别与功能块122a-e相关联的块执行时间tE1、tE2、tE3、tE4和tE5。块扫描速率通常在功能块之间有所变化。在图示的示例中,与功能块122a和122b相关联的块扫描速率小于与功能块122c-e相关联的块扫描速率。结果,PID1-PID2环路234比PID2-AO1环路232执行的频率更低(例如,更慢的环路速率、更长的环路周期等)。
转到图16,示例执行顺序图400描绘在图14的环路232的两次连续的环路执行期间功能块122c-e的执行之间的时序关系。AI2功能块122c的执行由附图标记402指示,PID2功能块122d的执行由附图标记404指示,而AO1功能块122e的执行由附图标记406指示。这里宏周期用于指代环路的单次执行(例如环路232的单次执行)。执行环路所需的时间量通常以环路中具有最低频率的块扫描速率的功能块为基础。在已知的系统中,与宏周期相关联的各个功能块必须在该宏周期期间仅执行一次。例如,在图16中,功能块122e-e中的每一个被示为在具有500毫秒周期的宏周期408期间仅执行一次。在已知系统中,同一段上的现场设备(例如数字数据总线114上的现场设备112a-c)必须以同一宏周期为基础执行它们相应的功能块。也就是说,已知系统的已知设计方针指定反对在单个段(例如数字数据总线114)上运行不同的宏周期。如果将另一功能块引入具有较低频率扫描速率(例如2秒的扫描速率)的环路232中,则宏周期408的周期必须增加到适应在宏周期408期间所有功能块(例如功能块122c-e和具有2秒的扫描速率的附加功能块)执行一次。
图17图示出另一示例执行顺序图500,该图描绘在图14的环路234的两次连续环路执行期间功能块122a-b的执行之间的时序关系。AI1功能块122a的执行由附图标记502指示,功能块122b的执行由附图标记504指示。由于功能块122a-b具有比功能块122c-e更低频率的块扫描速率,因此相对而言,环路234比环路232执行的频率更低。在图示的示例中,与环路234相关联的宏周期502具有2000毫秒的持续期,以适应环路234的较低频率执行。
图18图示出根据已知方法在同一段(例如数字数据总线114)上执行具有不同块扫描速率的功能块(例如图13-14、16和17的功能块122a-e)所实现的示例执行顺序图600。具体地,根据已知方法,为了在同一段(例如数字数据总线114)上执行功能块122a-e,基于功能块122a-e的最慢块扫描速率来选择具有2000ms周期的宏周期602。以此方式,各个功能块122a-e在每个宏周期602执行一次。为了实现示例执行顺序600,功能块122c-e的块扫描速率被降低到使环路232的环路执行周期等于环路234的环路执行周期。
尽管降低功能块122c-e的块扫描速率使得功能块122c-e和功能块122a-b能够在同一段上执行,但是降低功能块122c-e的块扫描速率阻止比功能块122a-b的块扫描速率更快地执行功能块122c-e。在一些实施中,比功能块122a-b的块执行周期更快地执行功能块122c-e可能是有利的。例如,如果AI2功能块122c使得现场设备112b(图13)获取压力测量结果,则如图16中所示以500ms的间隔执行AI2功能块122c能够使现场设备112b以相对高的分辨率(例如高粒度)在数字数据总线114上获取并公布多个压力测量结果。如图16所示,更频繁(例如以相对高的分辨率)地获取压力测量值使得现场设备112b能够例如捕获在500ms范围内发生的压力的尖头信号、毛刺或其它相对高频的行为。相反,减慢AI2功能块122c的块扫描速率以使用已知方法生成示例执行顺序600阻止现场设备112b捕获在小于2000ms的范围内发生的尖头信号、毛刺或其它相对高的压力的行为。
与用于生成示例执行顺序600以通过使所有环路的环路执行周期相等来在单个段上执行多个环路的已知方法不同,这里所描述的示例方法和装置能够调度同一段上具有不同环路执行周期的多个环路。转到图19,根据这里所描述的示例方法和装置实现的示例执行顺序图700允许图14-16的环路232和234根据它们各自的环路执行周期来执行。以此方式,具有较快块扫描速率的功能块可以以比同一段上的具有较慢块扫描速率的功能块更快的速率来执行。
为了能够在数字数据总线114上以环路232和234各自的速率来执行这些环路,这里描述的示例方法和装置生成在图19中表示为功能块122a-e的多个功能块执行402、404、406、502和504的调度表702(即功能块执行调度表)。在图示的示例中,调度表700具有在时刻t0处开始的调度起始时间704。功能块执行402、404、406、502和504中的每一个在各自相对于调度起始时间704的起始时间偏移(例如偏移)处开始。在图19中描绘示例起始时间偏移706,以示出相对于调度起始时间704,AI2功能块122c的功能块执行402之一何时开始。
调度表700是基于功能块122a-e的块扫描速率和模块120的模块执行周期(TME)而确定的。模块执行周期(TME)等于与模块120中的功能块(例如功能块122a-e之一)相关联的最慢或最低频率的块扫描速率的倒数值。例如,由于AI1功能块122a和PID1功能块122b具有的块扫描速率,慢于模块120中功能块122c-e的块扫描速率因此模块120的模块扫描周期(TME)是2000ms。
这里所描述的示例方法和装置被配置为针对各个功能块(例如功能块122a-e中的每一个)生成一个以上起始时间偏移。功能块的起始时间偏移的数值是基于该功能块的块原始执行周期(TBRE)和与被配置为执行该功能块的现场设备相关联的最慢块原始执行周期(TSRE)而确定的。块原始执行周期(TBRE)定义功能块的执行之间与调度表无关的时间长度(例如图19的调度表),并且可以根据以下公式1来确定。
公式1 TBRE=TME×FBSR
如以上公式1所示,特定功能块的块原始执行周期(TBRE)通过将包含该功能块的模块的模块执行周期(TME)与该功能块的块扫描速率因子(FBSR)相乘来确定。块扫描速率因子(FBSR)等于功能块两次连续执行的起始时间之间的模块执行周期(TME)的量,并且可以使用以下公式2来确定。
公式2
参见以上公式2和图19,如果模块120(图13)的模块执行周期(TME)是2000ms,并且功能块122a被配置为每2000ms(BSR=2000ms)执行一次,则由于在AI1功能块122a的两次连续执行的起始之间逝去了一个模块执行周期(TME),因此AI1功能块122a的块扫描速率因子(FBSR)等于一。在图19中,AI2功能块122c被示为每500ms执行一次(BSR=500ms)。所以,由于在AI2功能块122c的两次连续执行的起始之间仅逝去了模块执行周期(TME)的四分之一,因此AI2功能块122c的块扫描速率因子(FBSR)等于四分之一(0.25)。
现在再次参见以上公式1,如果模块120的模块执行周期(TME)是2000ms,且AI1功能块122a的块扫描速率因子(FBSR)等于一,则AI1功能块122a的块原始执行周期(TBRE)等于2000ms,这表示AI1功能块122a每2000ms执行一次。然而,由于AI2功能块122c的块扫描速率因子(FBSR)是四分之一(例如,500ms(TBRE)=2000ms(TME)×1/4(FBSR)),因此AI2功能块122c的块原始执行周期(TBRE)等于500ms。
在基于以上公式1确定块原始执行周期(TBRE)之后,基于图20的舍入表800对块原始执行周期(TBRE)进行舍入。对块原始执行周期(TBRE)进行舍入以保证调度表702(图19)重复若干次之后功能块执行(例如图19的功能块执行402、404、406、502和504)不会产生时间偏差并且确定基于舍入块原始执行周期(RTBRE)界限来确定各个功能块需要的起始时间偏移量(QS)。如舍入表800所示,如果功能块的块原始执行周期(TBRE)在0和500ms之间,则块原始执行周期(TBRE)被舍入为舍入块原始执行周期(RTBRE)。类似地,如果功能块的块原始执行周期(TBRE)在500和1000ms之间或在1000ms和2000ms之间或大于2000ms,则块原始执行周期(TBRE)分别被舍入为1000ms、2000ms或4000ms的舍入块原始执行周期(RTBRE)。
转到图19,调度表702使用子调度表710和712来实现。在图示的示例中,子调度表710具有500ms的周期,并且与图14和16的环路232的环路执行相关联。子调度表712具有2000ms的周期,并且与图14和17的环路234的环路执行相关联。在生成调度表702期间,首先生成子调度表710,然后将子调度表710复制三次以填充到2000ms的调度表702中,如图19所示。在生成子调度表710之后,生成下一个最短周期的子调度表(例如子调度表712)。在生成子调度表710和712之后,合并子调度表710和712以生成调度表702。
如图19所示,在子调度表710期间,执行402、404和406中的每一个发生一次。因此,功能块122c-e中的每一个针对子调度表710仅需要一个起始时间偏移。而且,在子调度表712期间,功能块122a-b中的每一个仅执行一次。因此,功能块122a-b中的每一个针对子调度表712仅需要一个起始时间偏移。
一功能块(例如图13和14的功能块122a-e之一)需要的子调度表(例如子调度表710或子调度表712)的起始时间偏移量(QS)(例如起始时间偏移706)基于该功能块的舍入块原始执行周期(RTBRE)和与执行该功能块的现场设备(例如图13的现场设备112a-c之一)相关联的最慢的舍入块原始执行周期(RTSRE)来确定。功能块的起始时间偏移量(QS)可以使用以下公式3来确定。
公式3
如以上公式3所示,功能块的起始时间偏移量(QS)通过将与执行该功能块的现场设备相关联的最慢的舍入块原始执行周期(RTSRE)除以该功能块的舍入块原始执行周期(RTBRE)来确定。
使用公式3来确定PID2功能块122d的起始时间偏移量(QS)包括,首先确定与执行PID2功能块122d的现场设备112c相关联的最慢的舍入块原始执行周期(RTSRE)。在图示的示例中,PID2和AO1功能块122d-e是仅有的由现场设备112c执行的功能块。因此,与现场设备112c相关联的最慢的舍入块原始执行周期(RTSRE)等于具有较慢的舍入块原始执行周期(RTBRE)的功能块112d-e之一的舍入块原始执行周期(RTBRE)。由于功能块122d-e的舍入块原始执行周期(RTBRE)都等于500ms,因此最慢的舍入块原始执行周期(RTSRE)被设置为等于500ms。
在确定与现场设备112c相关联的最慢的舍入块原始执行周期(RTSRE)之后,公式3可用于通过将500ms(与现场设备112c相关联的最慢的舍入块原始执行周期(RTSRE))除以500ms(PID2功能块122d的舍入块原始执行周期(RTBRE))来确定PID2功能块122d的起始时间偏移量(QS)。该除法操作指示PID2功能块122d在子调度表710中执行所需的起始时间偏移量(QS)等于一。
图21的示例起始时间偏移量表900示出功能块122a-b在图19的子调度表712期间执行所需的起始时间偏移量(QS)和功能块122c-e在图19的子调度表710期间执行所需的起始时间偏移量(QS)。起始时间偏移量表900还示出块扫描速率因子(FBSR)、块原始执行周期(TBRE)和舍入块原始执行周期(RTBRE)。
图22描绘另一示例功能块配置1000,其中多个现场设备1012a-c以可通信方式连接至数字数据总线1014以基于模块1020的功能块1022a-e来实现过程控制系统。与图21的起始时间偏移量表900中所示的仅需要一个起始时间偏移的图13和14中的功能块122a-e不同,图22所示的功能块1022a-e中的某些功能块需要多个起始时间偏移,如以下所述。多个现场设备1012a-c类似于或等同于图13的现场设备112a-c,并且数字数据总线1014类似于或等同于图13的数字数据总线114。如图22所示,现场设备1012a执行由AI11功能块1022a、AI12功能块1022c和AO11功能块1022e定义的功能,现场设备1012b执行由PID12功能块1022b定义的功能,现场设备1012c执行由PID13功能块1022d定义的功能。
AI11功能块1022a类似或等同于图13和14的AI1功能块122a,PID12功能块1022b类似于或等同于图13和14的PID1功能块122b,AI12功能块1022c类似于或等同于图13和14的AI2功能块122c,PID13功能块1022d类似于或等同于图13和14的PID2功能块122d,AO11功能块1022e类似于或等同于图13和14的AO1功能块122e。例如,AI11功能块1022a和PID12功能块1022b的块扫描速率等于2000ms。而且,功能块1022c-e的块扫描速率等于500ms。尽管没有示出,但是功能块1022a-e之间的连接与图14中功能块122a-e之间的连接相同。
图23的另一示例起始时间偏移量表1100示出各个功能块1022a-e(图22)的起始时间偏移量(QS),所述起始时间偏移量(QS)是基于功能块1022a-e各自的块扫描速率因子(FBSR)、块原始执行周期(TBRE)和舍入块原始执行周期(RTBRE)而确定的。各个功能块1022a-e的块原始执行周期(TBRE)基于以上的公式1来确定,该公式以块扫描速率因子(FBSR)和模块1020的模块执行周期(TME)为基础。然后,对各个块原始执行周期(TBRE)进行舍入,以确定各个功能块1022a-e的舍入块原始执行周期(RTBRE)。
然后基于以上的公式3来确定各个功能块1022a-e的起始时间偏移量(QS)。如图23所示,附图标记1102指示AI12功能块1022c(PDT11/FFAI12)的起始时间偏移量(QS)等于四。为了确定AI12功能块1022c的起始时间偏移量(QS),首先确定与现场设备1012a相关联的最慢的舍入块原始执行周期(RTSRE)。在图22图示的示例中,现场设备1012a被配置为执行AI11功能块1022a、AI12功能块1022c和AO11功能块1022e。因此,最慢的舍入块原始执行周期(RTSRE)是AI11功能块1022a的舍入块原始执行周期(RTBRE)、AI12功能块1022c的舍入块原始执行周期(RTBRE)和AO11功能块1022e的舍入块原始执行周期(RTBRE)中最慢的一个。如图23所示,AI11功能块1022a(PDT11/FFAI11)的舍入块原始执行周期(RTBRE)为2000ms,AI12功能块1022c(PDT11/FFAI12)的舍入块原始执行周期(RTBRE)为500ms,AO11功能块1022c(PDT11/FFAO11)的舍入块原始执行周期(RTBRE)为500ms。因此,与现场设备1012a相关联的最慢的舍入块原始执行周期(RTSRE)为2000ms。根据以上公式3,为了确定AI12功能块1022c所需的起始时间偏移量(QS),将2000ms(AI12功能块1022c的舍入块原始执行周期(RTBRE))除以500ms(与现场设备1012a相关联的最慢的舍入块原始执行周期(RTSRE))计算出数值4,如附图标记1102所指示。
表格1100还示出AI11功能块1022a(PDT11/FFAI11)所需的起始时间偏移量(QS)等于一,如附图标记1104所指示。在图示的示例中,由于AI11功能块1022a的舍入块原始执行周期(RTBRE)(2000ms)等于与现场设备1012a相关联的最慢的舍入块原始执行周期(RTSRE)(2000ms),而AI12功能块1022c的舍入块原始执行周期(RTBRE)(500ms)是与现场设备1012a相关联的最慢的舍入块原始执行周期(RTSRE)(2000ms)的四分之一,因此AI11功能块1022a具有一个起始时间偏移,AI12功能块1022c具有四个起始时间偏移。因此,现场设备1012b每执行AI11功能块1022a一次,需要执行AI12功能块1022c四次。
图24是示出调度表1202(即功能块执行调度表)和各个功能块1022a-e(图22)的执行1204、1206、1208、1210和1212的另一示例执行顺序图1200。调度表1202使用与PID2功能块1022d相关联的500ms子调度表1214和与功能块1022a-c和1022e相关联的2000ms子调度表1216来生成。如所示,500ms子调度表1214在调度表1202期间被重复四次,2000ms子调度表1216在调度表1202期间发生一次。
根据图23的表格1100,在2000ms子调度表1216中,AI11功能块1022a具有一个起始时间偏移(起始时间偏移t0),AI12功能块1022c具有四个起始时间偏移(起始时间偏移t1、t5、t9和t11),AO11功能块1022e具有四个起始时间偏移(起始时间偏移t3、t7、t11和t15),PID12功能块1022b具有一个起始时间偏移(起始时间偏移t1)。而且,根据图23的表格1100,在500ms子调度表1214中,PID13功能块1022d具有一个起始时间偏移(起始时间偏移t2)。
功能块的起始时间偏移可以根据以下公式4来确定。
公式4 ts=NSeq×TBRE+tDA
如公式4所示,功能块的起始时间偏移(tS)通过将待计算的当前起始时间偏移的序列号(NSeq)乘以该功能块的块原始执行周期(TBRE)并将得到的乘积加上该功能块的数据可用时间(tDA)来确定。序列号(NSeq)指代功能块在子调度表(例如图19的子调度表710或712之一)期间的特定执行实例。例如,在图24中,AI12功能块1022c在2000ms子调度表1216期间有四个执行实例(即起始时间偏移量(QS)等于四,并且序列号(NSeq)为零至三)。功能块的数据可用时间(tDA)指代在功能块的块原始执行周期(TBRE)期间执行该功能块所需的数据可通过另一功能块获得的时间。例如,第一功能块的数据可用时间(tDA)基于来自第二功能块的数据可用于执行第一功能块的现场设备的时间(例如当该数据在数字数据总线1014上公布时)来确定。如果第一功能块不需要来自第二功能块或任何其它功能块的数据来使现场设备执行该第一功能块,则第一功能块的数据可用时间(tDA)被设置为零。作为另一示例,如果功能块的块原始执行周期(TBRE)是500ms,而在相对于500ms块原始执行周期(TBRE)的开始125ms处数据被另一功能块置为可用于该功能块,则该功能块的数据可用时间(tDA)为125ms。
参见公式4和AI12功能块1022c执行1206,偏移起始时间(tS)t1、t5、t9和t11可以按照下列方式确定。如果AI12功能块1022c的块原始执行周期(TBRE)为500ms,则由于2000ms子调度表1216的子调度表执行周期除以AI12功能块1022c的500ms块原始执行周期(TBRE)等于四,因此在2000ms子调度表1216期间,起始时间偏移量(QS)为四(即序列号(Nseq)零至三),如图24所示。而且,AI12功能块1022c的数据可用时间(tDA)为125ms。因此,使用以上公式4,对应于第一序列号(NSEQ)的起始时间偏移(tS)t1等于125ms,对应于第二序列号(NSEQ)的起始时间偏移(tS)t5等于625ms,对应于第三序列号(NSEQ)的起始时间偏移(tS)t9等于1125ms,对应于第一序列号(NSEQ)的起始时间偏移(tS)t11等于1625ms。
图25是示例面向对象的软件执行环境1300,其示出表示图13的现场设备112a-c、图13的功能块122a-e和对应于功能块122a-e的起始时间偏移的对象之间的关系。对应于图13的现场设备112a的PDT1设备对象1302a被捆绑到FFAI1功能对象1304a和FFPID1功能对象1304b。FFAI1功能对象1304a对应于图13的AI1功能块122a,FFPID1功能对象1304b对应于图13的PID1功能块122b。对应于图13的现场设备112b的PDT2设备对象1302b被捆绑到对应于AI2功能块122b(图13)的FFAI2功能块1304c和对应于PID2功能块122c(图13)的FFPID2功能对象1304d。对应于图13的现场设备112c的PDT3设备对象1302c被捆绑到对应于AO1功能块122e(图13)的FFAO1功能块1304e。
根据图21的起始时间偏移量表900,功能对象1304a-e中的每一个具有图25所示的多个起始时间偏移1306a-e中相应的起始时间偏移。各个起始时间偏移可以使用数据结构存储在存储器(例如图13的工作站102的存储器)中。在图25图示的示例中,对应于起始时间偏移1306的示例起始时间偏移数据结构1310以格式FBS{序列号、索引值、起始时间偏移}存储起始时间偏移1306。在该示例中,序列号指代子调度表(例如图19的子调度表710或712之一)期间功能块的特定执行实例,索引值可以用于将起始时间偏移与相应的功能块相关联,而起始时间偏移指代相应的功能块的起始时间偏移(例如起始时间偏移1306b)。
图26是另一示例面向对象的软件执行环境1400,其示出表示图22的现场设备1012a-c、图22的功能块1022a-e和对应于功能块1022a-e的起始时间偏移的对象之间的关系。对应于图22的现场设备1012a的PDT11设备对象1402a被捆绑到对应于AI11功能块1022a(图22)的FFAI11功能块1404a,对应于AI2功能块1022c(图13)的FFAI12功能对象1404b和对应于图22的AO11功能块1022e的FFAO11功能对象1404c。对应于图22的现场设备1012b的PDT12设备对象1402b被捆绑到对应于PID12功能块1022b(图13)的FFPID12功能块1404c。对应于图22的现场设备1012c的PDT13设备对象1402c被捆绑到对应于PID13功能块1022d(图13)的FFPID13功能块1404d。
根据图23的起始时间偏移量表1100,功能对象1404a-e中的每一个都具有图26所示的多个起始时间偏移1406a-k中一个以上相应的起始时间偏移。对应于FFAO11功能对象1404c的示例起始时间偏移数据结构1410存储具有起始时间偏移1406f-i的起始列表1412。参见偏移数据结构1410和图24的示例执行顺序图1200,起始时间偏移1406f与序列号一和t3的起始时间偏移相关联,起始时间偏移1406g与序列号二和t7的起始时间偏移相关联,起始时间偏移1406h与序列号三和t11的起始时间偏移相关联,起始时间偏移1406i与序列号四和t15的起始时间偏移相关联。
图27图示出将与AO11功能块1022e(图22)相关联的起始列表1412(图26)从工作站102(图13)复制到现场设备1012a(图22)的示例方式。工作站102向现场设备1012a-c下载具有起始时间偏移(例如起始时间偏移1406f-i)的起始列表(例如起始列表1412),使得现场设备1012a-c能够在图24的调度表1202期间在调度时间执行它们各自的对应于功能块1022a-e(图22)的功能。如图27所示,工作站102存储图22的包括AO11功能块1022e的模块1020。尽管未示出,工作站102还存储图22的其它功能块1022a-d。在图示的示例中,工作站102存储具有图20的起始时间偏移1406f-i的起始列表1412。尽管未示出,工作站102还存储与功能块1022a-d对应的起始列表。
图27中还示出图22的现场设备1012a,其中现场设备1012a具有被配置为以可通信方式将现场设备1012a连接至数字数据总线1014的端口1504。端口1504被提供以与数字数据总线1014相关联的调度表1202(图24)。具体来说,调度表1202将调度的持续时间(例如2000ms)和以可通信方式连接至数字数据总线1014的所有其它现场设备(例如现场设备1012a-c)被配置为执行它们各自的功能(例如对应于图22的功能块1022a-d的功能)的时间指示给端口1504。
在图示的示例中,现场设备1012a存储与AO11功能块1022e对应并且被指派为AO现场功能(FF)块1506的AO功能。当然,现场设备1012a可以存储更多的功能,包括例如与图22所示的AI11功能块1022a对应的AI现场功能块。AO11功能块1022e、AO现场功能块1506和起始列表1414存储将AO11功能块1022e以及AO现场功能块1506与起始列表1414中的起始时间偏移1406f-i相关联(锁定)的索引值1508。在在图13的工作站102或者控制器106中的调度表生成过程确定起始时间偏移1406f-i并将起始时间偏移1406f-i存储在起始列表1414中之后,工作站102或控制器106通过数字数据总线1014将具有起始时间偏移1406f-i的起始列表1414传送给现场设备1012a。然后如图27所示,现场设备1012a存储起始列表1414。接着,现场设备1012a使用起始时间偏移1406f-i来在适当的时刻根据调度表1202确定何时执行AO现场功能块1506。尽管未示出,现场设备1012a还存储对应于AI11功能块1022a和AI12功能块1022c(图22)的起始列表。
图29描绘示例面向对象的编程环境1600,该面向对象的编程环境具有被配置为使用这里所述的示例方法和装置生成调度表(例如图19和24的调度表702和1202)的多个类1602a-i。DbsInterfaceDevice类1602a被提供用于与现场设备(例如图13的现场设备112a-c或图22的现场设备1012a-c)或现场设备对象(例如图25的现场设备对象1302a-c或图26的现场设备对象1402a-c)交换信息。例如,DbsInterfaceDevice类1602a可以具有被配置为与现场设备或现场设备对象进行通信的多种功能或方法。DbsInterfaceDevice类1602a的示例功能获取与现场设备112a-c或1012a-c中的每一个相关联的块扫描速率或块原始执行周期(TBRE)。
DbsInterfaceModule类1602b被提供用于与包含一个以上现场设备(例如图13的现场设备112a-c或图22的现场设备1012a-c)的模块或模块对象(例如图13的模块120或图22的模块1020)交换信息,为所述个以上现场设备生成调度表(图19的调度表702或图24的调度表1202)。DbsInterfaceModule类1602b的示例功能或方法可以被配置为,从使用GUI控制系统设计接口指定的功能块的互连(例如图14示的功能块122a-e的互连)所定义的模块(例如图13的模块120)中获取功能块(图13和14的功能块122a-e)的执行顺序。
DbsScheduleBaseTemplate类1602c被提供用于获取和/或生成调度表的基本模板(例如用于生成图19的调度表702的基本模板或用于生成图24的调度表1202的基本模板)。调度表的基本模板提供生成调度表所需的基本或基础框架。例如,调度表的基本模板可以包括与功能块的调度相关联的规则和/或基本模板可以指定默认参数(例如调度周期、每个调度周期的执行等)。在一些示例实施中,调度表的基本模板可以从例如工作站102中的调度表基本模板数据库(未示出)中获取。
DbsSchedule类1602d被提供用于生成这里所描述的调度表(例如图19的调度表702、图24的调度表1202或任意其它调度表)。DbsSubSchedule类1602e被提供用于生成子这里所描述的调度表(例如图19的子调度表710和712、图24的子调度表1214和1216或任意其它子调度表)。DbsSubScheduleBaseTemplate类1602f被提供用于获取和/或生成子调度表的基本模板(例如用于生成图19的子调度表710和712的基本模板或用于生成图24的子调度表1214和1216的基本模板)。子调度表的基本模板提供生成子调度表所需的基本或基础框架。在一些示例实施中,子调度表的基本模板可以从例如工作站102中的子调度表基本模板数据库(未示出)中获取。
DbsCompelDataSequence类1602g可以被提供用于配置与调度表相关联的强制数据序列。强制数据序列指定什么时候现场设备(例如图13的现场设备112a-c之一或图22的现场设备1012a-c之一)向其它现场设备传送或公布其数据(例如测量信息、状态信息等)。在图示的示例中,DbsCompelDataSequence类1602g保证控制器(例如控制器106)紧随调度表(例如图19的调度表710和图24的调度表1202)中所指示的现场设备对功能块的执行而向现场设备发布强制数据命令。
DbtScheduleBaseTemplate类1602h和DbtSchedule类1602i提供临时工作空间,以在生成调度表过程期间且向现场设备公布调度表(例如调度表702或1202之一或任意其它调度表)之前在该临时工作空间中生成该调度表。
图29是可用于根据这里描述的示例方法生成调度表的示例装置1700的详细框图。示例装置1700可以使用工作站102(图13)、控制器106(图13)或硬件、固件和/或软件的任意期望组合来实现。例如,可以使用一个以上集成电路、分立的半导体元件或无源电子元件。附加地或可替换地,示例装置1700的一些或所有块或其部分可以使用存储在机器可访问介质中的指令、代码和/或其它软件和/或固件来实现,当例如处理器系统(例如图35的示例处理器系统2310)执行这些指令、代码和/或其它软件和/或固件时,进行图30-33的流程图中表示的操作。在软件示例实施中,以下描述的示例装置的块可以用于实现以上结合图28描述的面向对象的编程类1602a-g。
示例装置1700具有现场设备接口1702,该现场设备接口1702被配置为与现场设备(例如图13的现场设备112a-c或图22的现场设备1012a-c)交换信息。例如,现场设备接口1702可以获取与现场设备112a-c或1012a-c中的每一个相关联的块扫描速率或块原始执行周期(TBRE)。
示例装置1700进一步具有模块接口1704,该模块接口1704被配置为与包含一个以上现场设备(例如图13的现场设备112a-c或图22的现场设备1012a-c)的模块交换信息,从而为所述一个以上现场设备生成调度表(图19的调度表702或图24的调度表1202)。例如,模块接口1704可以被配置为,从使用GUI控制系统设计接口指定的功能块的互连(例如图14中所示的功能块122a-e的互连)所定义的模块(例如图13的模块120)获取功能块(图13和14的功能块122a-e)的执行顺序。
示例装置1700进一步具有调度表基本模板接口1706,该调度表基本模板接口1706被配置为获取和/或生成调度表的基本模板(例如用于生成图19的调度表702的基本模板或用于生成图24的调度表1202的基本模板)。在示例实施中,调度表基本模板接口1706基于例如模块(例如图13的模块120或图22的模块1020)中功能块(例如图13的功能块122a-e和图22的1022a-e)的数量和类型,从工作站102中的调度表基本模板数据库中获取调度表的基本模板。
示例装置1700还具有被配置为生成这里所描述的调度表(例如图19的调度表702、图24的调度表1202或任意其它调度表)的调度表发生器1708。另外,示例装置1700具有被配置为生成这里所描述的子调度表(例如图19的子调度表710和712、图24的子调度表1214和1216或任意其它子调度表)的子调度表发生器1710。为了生成或获取子调度表的基本模板,示例装置1700具有子调度表基本模板接口1712。
示例装置1700进一步具有被配置为生成与调度表相关联的强制数据序列的强制数据序列发生器1714。例如,当调度表发生器1708完成调度表(例如调度表702(图19)或1202(图24)中的一个)的生成时,强制数据序列发生器1714可以生成该调度表的强制数据序列,以保证控制器(例如图13的控制器106)在该调度表中所指示的现场设备执行功能块之后向现场设备发布强制数据命令。以此方式将现场设备生成的数据(例如测量信息、状态信息、计算结果等)传送或公布给需要该数据来进行其它操作的其它现场设备。
另外,示例装置1700还具有配置接口1716,其被配置为从GUI设计软件应用程序(例如如图14所示用来互连功能块122a-e的GUI设计软件应用程序)接收信息、命令等,其中GUI设计软件应用程序用于通过增加、删除和互连功能块(例如,图13和14的功能块122a-e以及图24的功能块1022a-e)来设计过程控制例程。例如,如果用户改变了两个功能块之间的互连,则GUI设计软件应用程序向配置接口1716发送该改变的通知和描述该改变的信息(例如功能块A的输出端连接至功能块B的输入端)。另外,配置接口1716被配置为,访问工作站102中或连接至图13的LAN 108的任意其它处理器系统中的数据结构或数据库,以获取过程控制系统配置信息(例如数字数据总线捆绑规则、数字数据总线的极限值等)。
示例装置1700进一步具有根据以上公式1确定块原始执行周期(TBRE)的原始执行周期确定器1718。示例装置1700还具有根据图20的舍入表800中所示的舍入值对块原始执行周期(TBRE)进行舍入的舍入器1720。另外,示例装置1700具有被配置为生成功能块的起始时间偏移量(QS)和起始时间偏移值(tS)的起始时间偏移确定器1722。例如,起始时间偏移确定器1721可以被配置为进行以上结合公式3和4所描述的计算。而且,示例装置1700具有块扫描速率因子确定器1724,以确定功能块(图13和14的功能块122a-e以及图22的功能块1022a-e)的块扫描速率因子(FBSR)。例如,块扫描速率因子确定器1724可以基于以上公式2来确定块扫描速率因子(FBSR)。为了对值进行比较,示例装置1700具有比较器1726。例如,比较器1726可以用于通过比较与指派给现场设备的功能块的块原始执行周期(TBRE)并确定最慢的一个,来确定与该现场设备相关联的最慢的块原始执行周期(TSBE)。
图30-33是可用于实施图29的示例装置1700的示例方法的流程图。在一些示例实施中,图30-33的示例方法可以使用机器可读指令来实现,所述机器可读指令包括用来由处理器(例如图35的示例处理器系统2310中所示的处理器2312)执行的程序。该程序可以采用存储于诸如与处理器2312相关联的CD-ROM、软盘、硬盘驱动器、数字通用磁盘(DVD)或存储器之类的有形介质的软件的形式来实施,和/或以公知的方式采用固件和/或专用硬件的方式来实施。进一步地,尽管示例程序是参考图30-33中图示的流程图来描述的,但是本领域普通技术人员可以容易地理解,可以使用实施图29的示例装置1700的很多其它方法来替换。例如,可以改变块的执行顺序,和/或可以改变、消除或合并所描述的一些块。
为了讨论的目的,以下结合图24的调度表1202来描述图30-33的流程图。然而,结合图30-33的流程图所描述的示例方法可以用于生成任意其它的调度表,包括例如图19的调度表702。
转到图30,在用于生成调度表(例如,图19和24的调度表702和1202或任意其它调度表,用于在过程控制系统中调度功能块的执行)的示例方法中,配置接口1716确定是否已经创建了新的模块(例如图22的模块1020)或者现有模块的配置是否已经被改变(块1802)。如果配置接口1716确定没有增加新的模块且现有的模块没有被改变,则控制停留在块1802处,直到配置接口1716确定已经增加了新的模块或现有的模块已经被改变为止。
如果配置接口1716确定已经增加了新的模块或现有模块的配置已经被改变(块1802),则配置接口1716确定是否根据已知方法生成调度表(块1804)。例如,配置接口1716可以从存储在工作站102(图13)中的数据结构获取调度表类型描述器。以上已经结合图18对根据已知方法生成的示例调度表进行了描述。如果配置接口1716确定将使用已知方法来生成调度表,则图30的示例方法结束。
如果配置接口1716确定不使用已知方法来生成调度表,则配置接口1716验证模块配置没有违反任何捆绑规则(块1806)。捆绑规则指示特定的模块配置是否有效。例如,如果图22的模块1020中的功能块1022a-e之一没有被指派给现场设备1012a-e中的一个或任何其它现场设备,或者如果功能块1022a-e没有被正确地连接,则模块1020对于模块生成来说是无效的。在图示的示例中,配置接口1716从过程控制系统设计软件应用程序中根据捆绑规则检查模块配置的验证功能接收验证结果。如果配置接口1716确定模块配置无效(块1808),则图30的示例方法结束。
如果配置接口1716确定模块配置有效(块1808),则图22的功能块1022a-e之间的功能块连接被捆绑到数字数据总线1014(图22)并互相捆绑(块1810)。例如,功能块连接可以如以上结合图15所描述的那样进行捆绑。然后,示例装置1700确定各个功能块1022a-e(图22)的起始时间偏移量(QS)(块1812)。块1812的操作可以使用以下结合图31描述的示例方法来实现。
在示例装置1700确定起始时间偏移量(QS)之后,配置接口1716获取数字数据总线1014的极限值(块1814)。例如,配置接口1716可以获取对可以在数字数据总线1014上运行的最长的可用调度表进行定义的时间值。配置接口1716可以从例如工作站102或控制器106中的数字数据总线属性数据库中获取极限值。然后调度表基本模板接口1706(图29)从例如工作站102中的调度表模板数据库中获取调度表基本模板(块1816)。接着示例装置1700生成调度表1202(图24)(块1818),如以下结合图32的示例方法详细描述的。在示例装置1700生成调度表1202之后中,控制返回调用功能或过程,并且图30的示例方法结束。
转到图31,图示的流程图描绘了可以用于实现图30的块1812以确定各个功能块1022a-e(图22)的起始时间偏移量(QS)的示例方法。最初,模块接口1704获取图22的模块1020的模块执行周期(TME)(块1902)。然后,模块接口1704选择与模块1020相关联的现场设备(例如现场设备1022a-e中的一个)(块1904)。例如,模块接口1704可以确定功能块1022a-e被指派给哪些现场设备(例如现场设备1022a-c),并通过例如选择现场设备对象(例如图26的现场设备对象1402a-c中的一个)来从那些现场设备中选择一个。为了讨论的目的,在块1904处,模块接口1704选择图22的现场设备1012a。在面向对象的编程环境中,模块接口1704通过选择图26的现场设备对象1402a来选择现场设备1012a。
然后,模块接口1704选择被指派给所选择的现场设备1012a的功能块(例如功能块1022a、1022c或1022e中的一个)(块1906)。为了讨论的目的,模块接口1704在块1906处选择图22的AI12功能块1022c。在面向对象的编程环境中,模块接口1704通过选择图26的FFAI12功能块对象1404b来选择AI12功能块1022c。接着,块扫描速率因子确定器1724(图29)确定所选择的AI12功能块1022c的块扫描速率因子(FBSR)(块1908)。例如,块扫描速率因子确定器1724可以从模块接口1704获取模块1020的模块执行周期(TME)和AI12功能块1022c的块扫描速率因子(BSR),并使用以上公式2来确定AI12功能块1022c的块扫描速率因子(FBSR)。
然后,块执行周期确定器1718(图29)确定AI12功能块1022c的块原始执行周期(TBRE)(块1910)。例如,块执行周期确定器1718可以使用以上公式1基于模块1020的模块执行周期(TME)和AI12功能块1022c的块扫描速率因子(BSR)来确定AI12功能块1022c的块原始执行周期(TBRE)。接着,舍入器1720(图29)基于图20的舍入表800将AI12功能块1022c的块原始执行周期(TBRE)舍入到舍入块原始执行周期(RTBRE)(块1912)。
然后,模块接口1704确定模块1020是否包含被指派给所选择的现场设备1012a的另一功能块(块1914)。如果模块接口1704确定模块1020包含被指派给所选择的现场设备1012a的另一功能块(块1914),则控制返回块1906,并且模块接口1704选择下一个被指派给现场设备1012a的功能块(例如功能块1022a和1022e中的一个)。否则,如果模块接口1704确定模块1020不包含被指派给所选择的现场设备1012a的另一功能块(例如,已经确定了模块1020中被指派给现场设备1012a的所有功能块1022a、1022c和1022e的舍入块原始执行周期(RTBRE)),则比较器1726确定与所选择的现场设备相关联的最慢的块原始执行周期(TSBE)(块1916)。例如,比较器1726可以对被指派给现场设备1012a的功能块1022a、1022c和1022e的、以上结合块1906、1908、1910和1812确定的舍入块原始执行周期(RTBRE)进行比较。然后比较器1726可以基于该比较将最慢的块原始执行周期(TSBE)设置为等于舍入块原始执行周期(RTBRE)中最慢的舍入块原始执行周期(RTBRE)。
然后,模块接口1704选择功能块,为该功能块确定起始时间偏移量(QS)(块1918)。例如,模块接口1704从在模块1020中包含的且被指派给所选择的现场设备1012a的功能块1022a、1022c和1022e中选择一个。为了讨论的目的,模块1020在块1918处选择AI12功能块1022c。然后,起始时间偏移确定器1722(图29)确定AI12功能块1022c的起始时间偏移量(QS)(块1920)。例如,起始时间偏移确定器1722可以使用以上公式3基于AI12功能块1022c的舍入块原始执行周期(RTBRE)和在块1916处确定的最慢的块原始执行周期(TSBE)来确定起始时间偏移量(QS)。
接着,模块接口1704确定模块1020是否包含被指派给所选择的现场设备1012a的另一功能块(块1922)。如果模块接口1704确定模块1020包含被指派给所选择的现场设备1012a的另一功能块(块1922),则控制返回块1918,并且模块接口1704选择下一个被指派给现场设备1012a的功能块(例如功能块1022a和1022e中的一个)。否则,如果模块接口1704确定模块1020不包含被指派给所选择的现场设备1012a的另一功能块(例如,已经确定了模块1020中被指派给现场设备1012a的所有功能块1022a、1022c和1022e的起始时间偏移量(QS)),则模块接口1704确定另一现场设备(例如图22的现场设备1012b和1012c中的一个)是否与模块1020相关联(块1924)。例如,如果模块1020包含任何被指派给其它现场设备(例如现场设备1012b和1012c)的功能块(例如功能块1022b和1022d)并且其起始时间偏移量(QS)还没有确定,则模块接口1704可以确定该另一现场设备与模块1020相关联。
如果模块接口1704确定另一现场设备(例如图22的现场设备1012b和1012c中的一个)与模块1020相关联(块1924),则控制返回块1904,在该点处模块接口1704选择下一现场设备(例如图22的现场设备1012b和1012c中的一个)。否则,如果模块接口1704确定另一现场设备并不与模块1020相关联(块1924),则模块接口1704确定是否另一模块(例如除模块1020之外的模块)与数字数据总线1014相关联(块1926)。例如,与数字数据总线1014相关联的另一模块可能包含被指派给现场设备1012a-c之一的功能块,并且而后示例装置1700确定这些功能块的起始时间偏移量(QS)。如果模块接口1704确定另一模块与数字数据总线1014相关联,则控制返回块1902,在该点处模块接口1704获取下一模块的模块执行周期(TME)。否则,如果模块接口1704确定该另一模块不与数字数据总线1014相关联,则控制返回调用功能或过程(例如图30的示例方法),并且图31的示例方法结束。
转到图32A和32B,图示的流程图描绘了可以用于实现图30的块1818以生成子调度表(例如图24的子调度表1214和1216)和基于子调度表生成调度表(例如图24的调度表1202)的示例方法。最初,子调度表发生器1710获取与数字数据总线1014相关联的所有舍入块原始执行周期(RTBRE)(块2002)。例如,子调度表发生器1710获取在块1912处确定的与数字数据总线1014相关联的所有功能块(例如图22的功能块1022a-e)的所有舍入块原始执行周期(RTBRE)。然后,子调度表基本模板接口1712(图29)针对各个舍入块原始执行周期(RTBRE)获取子调度表基本模板(块2004)。例如,子调度表基本模板接口1712可以从工作站102(图13)中的子调度表基本模板数据库或数据结构中获取子调度表基本模板。在图示的示例中,每个子调度表基本模板被配置为具有与块2002处获取的舍入块原始执行周期(RTBRE)中相应的舍入块原始执行周期(RTBRE)相等的子调度表执行周期。例如,如图24所示,子调度表1214的子调度表执行周期等于500ms,而子调度表1216的子调度表执行周期等于2000ms。
子调度表发生器1710选择具有最短子调度表执行周期的子调度表模板(块2006)。例如,子调度表发生器1710可以使用比较器1726(图29)对所有的子调度表执行周期相互比较,以确定哪个子调度表周期最短。然后,子调度表发生器1710选择被配置为进行同步数据传输的现场设备(块2008)。如果现场设备(例如图22的现场设备1012a-c之一)被指派为执行以同步方式传输数据的功能块(例如图22的功能块1022a-e中的一个),则该现场设备被配置为进行同步数据传输。如果一功能块所产生的数据被另一功能块在特定的时刻需要,则该功能块以同步方式传输数据。例如,如果PID13功能块1022d(图22和24)在图24中所示的时刻t2之前需要来自AI12功能块1022c(图22和24)的数据,则现场设备1012a必须进行与AI12功能块1022c相关联的同步数据传输,以保证PID13功能块1022d在时刻t2之前获得数据。为了讨论的目的,子调度表发生器1710选择现场设备1012a(图22和24)。
接着,子调度表发生器1710获取与所选择的现场设备1012a相关联的最慢的块原始执行周期(TSBE)(块2010)。例如,子调度表发生器1710可以获取在图31的块1916处确定的现场设备1012a的最慢的块原始执行周期(TSBE)。然后,子调度表发生器110使用例如比较器1726(图29)来确定最慢的块原始执行周期(TSBE)是否等于所选择的子调度表模板的子调度表执行周期(块2012)。待使用块2006处选择的子调度表模板生成的子调度表可以包括仅被指派为由与最慢的块原始执行周期(TSBE)相关联的现场设备执行的功能块的起始时间偏移(tS),所述最慢的块原始执行周期(TSBE)等于所选择的子调度表模板的子调度表执行周期。因此,如果子调度表发生器1710确定块2008处所选择的现场设备1012a的最慢块原始执行周期(TSBE)不等于所选择的子调度表模板的子调度表执行周期(块2012),则该现场设备被跳过,并且控制返回块2008,在该点处子调度表发生器1710选择被配置为进行同步数据传输的另一现场设备。
否则,如果子调度表发生器1710确定块2008处所选择的现场设备1012a的最慢块原始执行周期(TSBE)等于所选择的子调度表模板的子调度表执行周期(块2012),则子调度表发生器1710选择被指派给所选择的现场设备1012a并且与同步数据传输相关联的功能块(例如功能块1022a、1022c或1022e中的一个)。为了讨论的目的,子调度表发生器1710选择AI12功能块1022c(图22和24)。
然后,子调度表发生器1710获取所选择的AI12功能块1022c的数据可用时间(tDA)(块2016)。在图示的示例中,所有的数据可用时间(tDA)由同步数据可用时间发生器(未示出)预先确定,并且存储在与该功能块的输入端口相关联的数据结构中。例如,同步数据可用时间发生器可以在图30的调度表生成过程之前或期间对所有的功能块(例如功能块1022a-e)进行扫描,以确定哪些功能块需要以同步方式向它们传输的数据。然后,同步数据可用时间发生器可以预先确定数据可用时间(tDA),以保证必须以同步方式向其它功能块传输数据的功能块有足够的时间来执行并在数字数据总线1014上传送它们的数据,从而使得在特定的时间需要数据的功能块能够在该时间之前接收到数据。对于不需要来自另一功能块的数据就可以执行的功能块(例如AI11功能块1022a),由于该功能块可以在子调度表周期开始时立即执行,因此数据可用时间(tDA)被设置为零。
起始时间偏移确定器1722(图29)确定所选择的AI12功能块1022c的起始时间偏移值(tS)(块2018),如以下结合图33所描述的。然后,子调度表发生器1710针对块2018处确定的起始时间偏移(tS)分配数据传输时间(块2020)。数据传输时间是通过数字数据总线1014从一个功能块向另一功能块传输数据所需的时间量。向同一设备中的另一功能块传输数据的功能块没有数据传输时间。然而,向同一设备中的另一功能块传送数据的功能块没有数据传送时间。数据传输传送时间占用数字数据总线1014上的时间,因此需要生成子调度表来保证子调度充分足够长,从而保证所有功能块执行和数据传输可以发生在数字数据总线1014上。
然后,子调度表发生器1710确定被指派给现场设备1012a的另一功能块是否与同步数据传输相关联(块2022)。如果子调度表发生器1710确定该被指派给现场设备1012a的另一功能块与同步数据传输相关联(块2022),则控制返回块2014,在该点处子调度表发生器1710选择与同步数据传输相关联的下一功能块。否则,子调度表发生器1710确定以可通信方式连接至数字数据总线1014的另一现场设备是否被配置为进行同步数据传输(块2024)。如果子调度表发生器1710确定以可通信方式连接至数字数据总线1014的另一现场设备被配置为进行同步数据传输(块2024),则控制返回块2008,在该点处子调度表发生器1710选择被配置为进行同步数据传输的另一现场设备(例如图22和24的现场设备1012b和1012c中的一个)。
否则,如果子调度表发生器1710确定以可通信方式连接至数字数据总线1014的另一现场设备没有被配置为进行同步数据传输(块2024),则子调度表发生器1710对同步数据传输进行处理(块2026)。例如,子调度表发生器1710可以识别功能块1022a-e(图22和24)中与同步数据传输相关联的的功能块,以类似于以上结合块2016描述的方式获取这些功能块的数据可用时间(tDA),以类似于以下结合图33描述的方式确定起始时间偏移值(tS),并且以类似于以上结合块2020描述的方式分配这些功能块的数据传输时间。
接着,子调度表发生器1710确定块2006处所选择的子调度表模板的子调度表执行周期是否长到足以适应按以上所述确定的起始时间偏移值(tS)和数据传输时间(块2028)。如果子调度表发生器1710确定块2006处所选择的子调度表模板的子调度表执行周期不够长以至适应起始时间偏移值(tS)和数据传输时间(块2028),则子调度表发生器1710丢弃起始时间偏移值(tS)和数据传输时间(块2030)以重新生成子调度表。为了给块2006处所选择的子调度表模板提供足够长的子调度表执行周期以适应将要为该子调度表模板生成的功能块的起始时间偏移值(tS)和数据传输时间,子调度表发生器1710扩大子调度表模板的子调度表周期(块2032)。也就是说,子调度表发生器1710增加子调度表模板的子调度表执行周期的时间,以加长子调度表执行周期。例如,如果用于生成图24的2000ms子调度表1216的子调度表模板的子调度表执行周期长度不足以适应与功能块1022a-c和1022e相关联的起始时间偏移(tS)和数据传输时间,则子调度表发生器1710可以在子调度模板上增加500ms(或任意其它时间量)。
在子调度表发生器1710丢弃所选择的子调度表模板的子调度表执行周期(块2032)之后,控制返回块2008,在该点处块2008、2010、2012、2014、2016、2018、2020、2022、2024、2026和2028的操作基于扩大后的子调度表执行周期而重复。如果子调度表发生器1710确定块2006处所选择的子调度表模板的子调度表执行周期长到足以适应起始时间偏移值(tS)和数据传输时间(块2028),则子调度表发生器1710确定是否要生成另一子调度表(块2034)。例如,如果使用图30的示例方法来生成图24的子调度表1202,并且子调度表发生器1710已经生成子调度表1214但还没有生成子调度表1216,则子调度表发生器1710确定应当生成另一子调度表(例如子调度表1216)。如果子调度表发生器1710确定应当生成另一子调度表(例如子调度表1216)(块2034),则控制返回块2006(图32A),在该点处子调度表基本模板接口1712选择下一个最短子调度表执行周期(例如对应于图24的2000ms子调度表1216的2000ms子调度表执行周期)(块2006)。
否则,调度表发生器1708合并子调度表发生器1710生成的子调度表(例如图24的子调度表1214和1216)(块2036),以生成调度表(例如图24的调度表1202)。然后,强制数据序列发生器1714生成调度表的强制数据序列(块2038)。强制数据序列保证控制器106将强制数据命令传送给现场设备1012a-c,以使现场设备1012a-c根据所生成的调度表功能块1022a-e中的相应功能块相对应的多个功能块在数字数据总线1014上公布数据。然后,控制返回调用功能或过程(例如图30的示例方法),并且图32A和32B的示例方法结束。
转到图33,图示的流程图描绘可以用于实现图32A的块2018以确定功能块的起始时间偏移值(tS)的示例方法。在图示的示例中,图33的示例方法使用以上公式4来确定起始时间偏移值(tS)。最初,起始时间偏移确定器1722(图29)获取与所选择的功能块(例如在图32A的块2014处选择的功能块)相关联的起始时间偏移量(QS)(块2102)。为了讨论的目的,AI12功能块1022c(图22和24)是所选择的功能块。因此,块2102处获取的起始时间偏移量(QS)为四。在图示的示例中,在图30的块1812处针对所选择的AI12功能块1022c确定起始时间偏移量(QS)(例如,四)。然后,起始时间偏移确定器1722将起始时间偏移计数器重置为零(块2104)。起始时间偏移计数器的值用于提供以上公式4的序列号(NSeq)。另外,起始时间偏移计数器的值用于确定何时所选择的功能块的所有起始时间偏移值(tS)已经被确定。
起始时间偏移确定器1722确定第一起始时间偏移值(tS)(块2106)。例如,起始时间偏移确定器1722使用以上公式4,基于起始时间偏移计数器的值(例如当前起始时间偏移的序列号(NSeq)(序列零、序列一、序列二等))、与被指派为执行AI12功能块1022c的现场设备(例如现场设备1012a)相关联的最慢的块原始执行周期(TSBE)以及块2016处获取的AI12功能块1022c的数据可用时间(tDA),来确定AI12功能块1022c的在图24中由t1表示的起始时间偏移值(tS)。
然后,起始时间偏移确定器1722递增起始时间偏移计数器的值(块2108),并确定起始时间偏移计数器是否等于在块2102处获取的起始时间偏移量(QS)(块2110)。如果起始时间偏移确定器1722确定起始时间偏移计数器不等于起始时间偏移量(QS),则控制返回块2106,在该点处起始时间偏移确定器1722确定下一个起始时间偏移值(tS)(例如AI12功能块1022c的在图24中由t5表示的起始时间偏移值(tS))。否则,控制返回调用功能或过程(例如图32A和32B的示例方法),并且图33的示例方法结束。
图34是图24的调度表1202的示例功能执行和数据传输顺序图2200。该示例功能执行和数据传输顺序图2200示出功能块1022a-e的执行之间的关系和通过数字数据总线1014从一个功能块向另一个功能块传送数据所需的数据传输时间。该示例功能执行和数据传输顺序图还示出控制器106何时发布强制数据命令以使图24的现场设备1012a-c在数字数据总线1014上公布数据。例如,如图34所示,在AI11功能块执行2202之后,强制数据命令2204使现场设备1012a进行AI11数据传输2206,以使能PID12执行2208。还示出了其它功能块执行、强制数据命令和对应的数据传输。尽管未示出,但是如果两个功能块由同一现场设备执行,则由于数据传输发生在同一现场设备之中,因此不需要与数字数据总线1014相关联的数据传送时间(例如AI11数据传送2206)来在功能块之间交换数据。
图35是可用于实现这里所描述的装置和方法的示例处理器系统2310的框图。如图35所示,处理器系统2310包括连接至互连总线2314的处理器2312。处理器2312包括寄存器组或寄存器空间2316,其在图35中被示为完全在片上,但是可替换地,其可以完全或部分地位于片外,并且通过专用电子连接和/或通过互连总线2314直接连接至处理器2312。处理器2312可以是任意合适的处理器、处理单元或微处理器。尽管未在图35中示出,但是系统2310可以是多处理器系统,因此可以包括与处理器2312等同或类似且以可通信方式连接至互连总线2314的一个以上附加的处理器。
图35的处理器2312连接至芯片集2318,芯片集2318包括存储器控制器2320和外围输入/输出(I/O)控制器2322。已知芯片集通常提供I/O和存储器管理功能以及可由连接至芯片集2318的一个以上处理器访问或使用的多个通用和/或专用寄存器、定时器等。存储器控制器2320施行使处理器2312(或多个处理器,如果有的话)能够访问系统存储器2324和大容量储存存储器2325的功能。
系统存储器2324可以包括任意期望类型的易失性和/或非易失性存储器,例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、闪速存储器、只读存储器(ROM)等。大容量存储器2325可以包括任意期望类型的大容量储存设备,包括硬盘驱动器、光驱、磁存储设备等。
外围I/O控制器2322施行使处理器2312能够通过外围I/O总线2332与外围输入/输出(I/O)设备2326和2328以及网络接口2330通信的功能。I/O设备2326和2328可以是任意期望类型的I/O设备,例如键盘、视频显示器或监视器、鼠标等。网络接口2330可以是使处理器系统2310能够与另一处理器系统通信的例如以太网设备、异步传输模式(ATM)设备、802.11设备、DSL调制解调器、线缆调制解调器、蜂窝式调制解调器等。
尽管存储器控制器2320和I/O控制器2322在图25中被描绘为芯片集2318中的分立的功能块,但是这些块所施行的功能可以集成在单一的半导体电路中或可以使用两个以上分立的集成电路来实现。
尽管这里描述了一定的方法、装置和制造物品,但是本专利的覆盖范围不受此限制。相反,本专利覆盖字面上或基于等同原则清楚地落在所附的权利要求书范围之内的所有方法、装置和制造物品。更进一步地,这里将自动块指派和调度例程描述为适用于FOUNDATION现场总线网络,但是这些技术不限于FOUNDATION现场总线网络,相反可以在任意其它适合的基于总线的通信网络中使用。
Claims (29)
1.一种用于自动指派控制模块的功能块的可操作的系统,所述控制模块的功能块待在过程控制网络内的设备中执行,所述过程控制网络具有以可通信方式连接至输入/输出设备的过程控制器,所述输入/输出设备通过数据总线连接至一个以上现场设备,所述系统包括:
用于确定布置在所述控制模块的前向流程上的功能块组的装置,所述功能块组包括输入功能块、输出功能块和一个以上中间功能块;和
用于确定所述控制模块的前向流程上的输入功能块和输出功能块各自是否被指派为在所述数据总线上的一个以上现场设备中执行的装置;其特征在于:
在所述控制模块的前向流程上的输入功能块和输出功能块两者都被指派为在所述数据总线上的一个以上现场设备中执行的情况下,用于指派的装置以可操作的方式将所述控制模块的前向流程上的一个以上中间功能块指派为在所述输入/输出设备中执行;并且
在所述控制模块的前向流程上的输入功能块和输出功能块均未被指派为在所述数据总线上的一个以上现场设备中执行的情况下,所述用于指派的装置以可操作的方式将所述控制模块的前向流程上的一个以上中间功能块指派为在所述控制器中执行。
2.根据权利要求1所述的系统,其中所述用于指派的装置在所述控制模块的前向流程上的输入功能块和输出功能块中的一个以上没有被指派为在所述数据总线上的一个以上现场设备的任何一个中执行的情况下,将所述控制模块的前向流程上的一个以上中间功能块中的每一个都指派为在所述过程控制器中执行。
3.根据权利要求1所述的系统,其中通信根据预先建立的通信调度表在所述数据总线上发生,并且进一步包括用于在所述预先建立的通信调度表中将所述一个以上中间功能块、所述输入功能块和所述输出功能块中的每一个调度为同步操作的装置。
4.根据权利要求3所述的系统,其中所述预先建立的通信调度表包括重复宏周期,并且其中所述用于调度的装置通过为所述数据总线创建宏周期来在所述预先建立的通信调度表中调度所述一个以上中间功能块、所述输入功能块和所述输出功能块中的每一个,其中所述一个以上中间功能块、所述输入功能块和所述输出功能块中的每一个被调度为在每个宏周期期间通过所述数据总线通信至少一次。
5.根据权利要求3所述的系统,其中所述用于调度的装置将所述一个以上中间功能块、所述输入功能块和所述输出功能块中的一个调度为以比所述一个以上中间功能块、所述输入功能块和所述输出功能块中的另一个更快的速率执行。
6.根据权利要求5所述的系统,其中所述用于调度的装置进一步针对所述预先建立的通信调度表创建宏周期,其中所述一个以上中间功能块、所述输入功能块和所述输出功能块中的所述一个被调度为在所述宏周期期间比所述一个以上中间功能块、所述输入功能块和所述输出功能块中的所述另一个操作更多次。
7.根据权利要求5所述的系统,进一步包括用于所述控制模块的功能块中的至少一个的指示器,所述指示器用于指定乘数,所述乘数指示所述控制模块的功能块中的至少一个的相对执行速率,并且其中所述用于调度的装置使用所述指示器来将所述一个以上中间功能块、所述输入功能块和所述输出功能块中的所述一个调度为以比所述一个以上中间功能块、所述输入功能块和所述输出功能块中的所述另一个更快的速率执行。
8.根据权利要求1所述的系统,进一步包括与所述控制模块相关联的指示所述控制模块的功能块能否被指派给所述输入/输出设备的用户可设置属性,并且其中即使所述控制模块的前向流程上的输入功能块和输出功能块两者都被指派为在所述数据总线上的一个以上现场设备中执行,只要所述控制模块的用户可设置属性指示所述控制模块的功能块不应当被指派给所述输入/输出设备,所述用于指派的装置就将所述控制模块的前向流程上的一个以上中间功能块指派为在所述过程控制器中执行。
9.根据权利要求1所述的系统,进一步包括与所述输入/输出设备相关联的指示任意控制模块的功能块能否被指派给所述输入/输出设备的用户可设置属性,并且其中即使所述控制模块的前向流程上的输入功能块和输出功能块两者都被指派为在所述数据总线上的一个以上现场设备中执行,只要所述输入/输出设备的用户可设置属性指示功能块不应当被指派给所述输入/输出设备,所述用于指派的装置就将所述控制模块前向流程上的一个以上中间功能块指派为在所述过程控制器中执行。
10.根据权利要求1所述的系统,进一步包括用于检查以确定所述输入/输出设备是否支持所述控制模块的前向流程上的一个以上中间功能块中的每一个的装置,并且其中即使所述控制模块的前向流程上的输入功能块和输出功能块两者都被指派为在所述数据总线上的一个以上现场设备中执行,只要所述输入/输出设备不支持所述控制模块的前向流程上的一个以上中间功能块中的任何一个,所述用于指派的装置就将所述一个以上中间功能块中的每一个均指派为在所述过程控制器中执行。
11.根据权利要求1所述的系统,进一步包括用于检查以确定所述输入/输出设备是否有足够的能力来执行所述控制模块的前向流程上的一个以上中间功能块中的每一个的装置,并且其中即使所述控制模块的前向流程上的输入功能块和输出功能块两者都被指派为在所述数据总线上的一个以上现场设备中执行,只要所述输入/输出设备没有足够的能力来执行所述控制模块的前向流程上的一个以上中间功能块中的每一个,所述用于指派的装置就将所述一个以上中间功能块指派为在所述过程控制器中执行。
12.根据权利要求1所述的系统,进一步包括用于在所述用于指派的装置没有将所述控制模块的前向流程上的一个以上中间功能块指派为在所述输入/输出设备中执行的情况下,通知用户的装置。
13.一种指派控制模块的功能块的方法,用于将控制模块的功能块指派给过程控制网络内的设备以执行,所述过程控制网络具有以可通信方式连接至输入/输出设备的过程控制器,所述输入/输出设备通过数据总线连接至一个以上现场设备,所述方法包括:
确定布置在所述控制模块的前向流程上的功能块组,所述功能块组包括输入功能块、输出功能块和一个以上中间功能块;和
确定所述控制模块的前向流程上的输入功能块和输出功能块各自是否被指派为在所述数据总线上的一个以上现场设备中执行;其特征在于:
在所述控制模块的前向流程上的输入功能块和输出功能块两者都被指派为在所述数据总线上的一个以上现场设备中执行的情况下,所述控制模块的前向流程上的一个以上中间功能块中的至少一个被指派为在所述输入/输出设备中执行,并且在所述控制模块的前向流程上的输入功能块和输出功能决均未被指派为在所述数据总线上的一个以上现场设备中执行的情况下,所述控制模块的前向流程上的一个以上中间功能块中的至少一个被指派为在所述控制器中执行。
14.根据权利要求13所述的指派控制模块的功能块的方法,进一步包括在所述控制模块的前向流程上的输入功能块和输出功能块中的一个以上没有被指派为在所述数据总线上的一个以上现场设备中执行的情况下,将所述控制模块的前向流程上的一个以上中间功能块中的每一个都指派为在所述过程控制器中执行。
15.根据权利要求13所述的指派控制模块的功能块的方法,其中将所述控制模块的前向流程上的一个以上中间功能块中的至少一个指派为在所述输入/输出设备中执行包括将所述控制模块的前向流程上的一个以上中间功能块中的每一个都指派为在所述输入/输出设备中执行。
16.根据权利要求13所述的指派控制模块的功能块的方法,其中通信根据预先建立的通信调度表在所述数据总线上发生,并且该方法进一步包括在所述预先建立的通信调度表中将所述一个以上中间功能块中的至少一个、所述输入功能块和所述输出功能块中的每一个调度为同步操作。
17.根据权利要求16所述的指派控制模块的功能块的方法,其中所述预先建立的通信调度表包括重复宏周期,并且其中调度所述一个以上中间功能块中的至少一个、所述输入功能块和所述输出功能块中的每一个包括,创建宏周期,其中所述一个以上中间功能块中的至少一个、所述输入功能块和所述输出功能块中的每一个被调度为在所述宏周期期间通过所述数据总线通信至少一次。
18.根据权利要求16所述的指派控制模块的功能块的方法,其中调度所述一个以上中间功能块中的至少一个、所述输入功能块和所述输出功能块中的每一个包括,将所述一个以上中间功能块、所述输入功能块和所述输出功能块中的一个调度为以比所述一个以上中间功能块、所述输入功能块和所述输出功能块中的另一个更快的速率执行。
19.根据权利要求18所述的指派控制模块的功能块的方法,进一步包括为所述预先建立的通信调度表创建宏周期,其中所述一个以上中间功能块、所述输入功能块和所述输出功能块中的所述一个被调度为在所述宏周期期间比所述一个以上中间功能块、所述输入功能块和所述输出功能块中的所述另一个操作更多次。
20.根据权利要求18所述的指派控制模块的功能块的方法,进一步包括允许用户为所述一个以上中间功能块、所述输入功能块和所述输出功能块中的一个以上指定乘数,所述乘数指示相关联的功能决的相对执行速率。
21.根据权利要求13所述的指派控制模块的功能块的方法,进一步包括检查所述控制模块的指示所述控制模块的功能块能否被指派给所述输入/输出设备的用户可设置属性,以及即使所述控制模块的前向流程上的输入功能块和输出功能块两者都被指派为在所述数据总线上的一个以上现场设备中执行,只要所述控制模块的用户可设置属性指示所述控制模块的功能块不应当被指派给所述输入/输出设备,就将所述控制模块的前向流程上的一个以上中间功能块中的至少一个指派为在所述过程控制器中执行。
22.根据权利要求13所述的指派控制模块的功能块的方法,进一步包括检查所述输入/输出设备的指示任意控制模块的功能块能否被指派给所述输入/输出设备的用户可设置属性,以及即使所述控制模块的前向流程上的输入功能块和输出功能块两者都被指派为在所述数据总线上的一个以上现场设备中执行,只要所述输入/输出设备的用户可设置属性指示功能块不应当被指派给所述输入/输出设备,就将所述控制模块的前向流程上的一个以上中间功能块中的至少一个指派为在所述过程控制器中执行。
23.根据权利要求13所述的指派控制模块的功能块的方法,进一步包括检查以确定所述输入/输出设备是否支持所述控制模块的前向流程上的一个以上中间功能块中的至少一个,以及即使所述控制模块的前向流程上的输入功能块和输出功能块两者都被指派为在所述数据总线上的一个以上现场设备中执行,只要所述输入/输出设备不支持所述控制模块的前向流程上的一个以上中间功能块中的至少一个,就将所述一个以上中间功能块中的至少一个指派为在所述过程控制器中执行。
24.根据权利要求13所述的指派控制模块的功能块的方法,进一步包括检查以确定所述输入/输出设备是否有足够的能力来在所述控制模块的前向流程上执行所述一个以上中间功能块中的至少一个,以及即使所述控制模块的前向流程上的输入功能块和输出功能块两者都被指派为在所述数据总线上的一个以上现场设备中执行,只要所述输入/输出设备没有足够的能力来执行所述控制模块前向流程上的一个以上中间功能块中的至少一个,就将所述一个以上中间功能块中的至少一个指派为在所述过程控制器中执行。
25.一种过程控制网络,包括:
用户接口设备;
过程控制器,以可通信方式通过第一通信网络连接至所述用户接口设备;
现场总线段,包括数据总线和以可通信方式连接至所述数据总线的一个以上现场总线现场设备,其中所述一个以上现场总线现场设备使用预先建立的通信调度表通过所述数据总线进行通信;
输入/输出设备,直接连接至所述数据总线,并且以可通信方式连接在所述过程控制器和所述数据总线之间;和
控制模块,具有一起操作以施行过程控制环路的多个以可通信方式链接的功能块,其中所述多个以可通信方式链接的功能块包括输入功能块、输出功能块和至少一个中间功能块,其中所述输入功能块和所述输出功能块位于所述一个以上现场总线现场设备中,所述至少一个中间功能块位于所述输入/输出设备中,并且其中所述至少一个中间功能块、所述输入功能块和所述输出功能块中的每一个使用所述预先建立的通信调度表通过所述数据总线进行通信;其特征在于:
所述过程控制网络进一步包括处理器、计算机可读存储器和存储在所述计算机可读存储器中的例程,其中所述例程在所述处理器上执行以自动指派所述控制模块的用于在所述过程控制网络中的特定设备中执行的功能块;其中所述例程:
确定布置在所述控制模块的前向流程上的功能块组,所述功能块组包括所述至少一个中间功能块、所述输入功能块和所述输出功能块;
确定所述控制模块的前向流程上的输入功能块和输出功能块各自是否被指派为在所述数据总线上的一个以上现场总线现场设备中执行;
在所述控制模决的前向流程上的输入功能块和输出功能块两者都被指派为在所述数据总线上的一个以上现场总线现场设备中执行的情况下,将所述控制模块的前向流程上的至少一个中间功能块指派为在所述输入/输出设备中执行;和
在第二控制模块的前向流程上的输入功能块和输出功能块中的一个以上没有被指派为在所述数据总线上的一个以上现场总线现场设备中执行的情况下,将所述第二控制模块的前向流程上的至少一个中间功能块指派为在所述过程控制器中执行。
26.根据权利要求25所述的过程控制网络,其中所述例程在所述处理器上执行时,将所述至少一个中间功能块、所述输入功能块和所述输出功能块中的每一个在所述预先建立的通信调度表中自动调度为在所述数据总线上同步操作。
27.根据权利要求26所述的过程控制网络,其中所述例程在所述处理器上执行时,将所述至少一个中间功能块、所述输入功能块和所述输出功能块中的一个调度为以比所述至少一个中间功能块、所述输入功能块和所述输出功能块中的另一个更快的速率执行。
28.根据权利要求25所述的过程控制网络,进一步包括与所述控制模块相关联的指示所述控制模块的功能块能否被指派给所述输入/输出设备的用户可设置属性。
29.根据权利要求25所述的过程控制网络,进一步包括与所述输入/输出设备相关联的指示任意控制模块的功能块能否被指派给所述输入/输出设备的用户可设置属性。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/968,087 US8005553B2 (en) | 2006-09-29 | 2007-12-31 | Automatic configuration of synchronous block execution for control modules run in fieldbus networks |
US11/968,087 | 2007-12-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101477362A CN101477362A (zh) | 2009-07-08 |
CN101477362B true CN101477362B (zh) | 2014-07-09 |
Family
ID=40343773
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810187790.3A Expired - Fee Related CN101477362B (zh) | 2007-12-31 | 2008-12-31 | 现场总线网络中运行的控制模块的同步块执行自动配置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8005553B2 (zh) |
EP (2) | EP2472343B1 (zh) |
JP (1) | JP5373385B2 (zh) |
CN (1) | CN101477362B (zh) |
GB (1) | GB2456037B (zh) |
Families Citing this family (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7761171B2 (en) | 2006-09-29 | 2010-07-20 | Fisher-Rosemount Systems, Inc. | Methods and apparatus to generate schedules to execute functions in a process control system |
US8005553B2 (en) | 2006-09-29 | 2011-08-23 | Fisher-Rosemount Systems, Inc. | Automatic configuration of synchronous block execution for control modules run in fieldbus networks |
US8126860B2 (en) * | 2007-07-17 | 2012-02-28 | Ricoh Company, Limited | Method and apparatus for processing data |
US9730078B2 (en) * | 2007-08-31 | 2017-08-08 | Fisher-Rosemount Systems, Inc. | Configuring and optimizing a wireless mesh network |
CN101616047B (zh) * | 2009-07-28 | 2012-08-29 | 华北电力大学 | 一种WorldFIP分布式智能控制网络的调度方法 |
US8229578B2 (en) * | 2009-09-21 | 2012-07-24 | Fisher-Rosemount Systems, Inc. | Methods and apparatus to manage module run sequences in a process control environment |
US8892218B2 (en) * | 2010-02-12 | 2014-11-18 | Rockwell Automation Technologies, Inc. | Multiple boolean inputs and outputs for device function blocks |
CN102193537A (zh) * | 2010-02-12 | 2011-09-21 | 洛克威尔自动控制技术股份有限公司 | 用于装置功能块的多重布尔输入和输出 |
CN102193536A (zh) * | 2010-02-12 | 2011-09-21 | 洛克威尔自动控制技术股份有限公司 | 用于封装设备级嵌入逻辑的宏功能块 |
US9134720B2 (en) | 2010-02-12 | 2015-09-15 | Rockwell Automation Technologies, Inc. | Macro function block for encapsulating device-level embedded logic |
US8352641B2 (en) * | 2010-04-21 | 2013-01-08 | General Electric Company | Systems and methods for identifying fieldbus devices in a control system |
US8601481B2 (en) * | 2011-03-02 | 2013-12-03 | International Business Machines Corporation | Workflow validation and execution |
US8977372B2 (en) * | 2011-05-12 | 2015-03-10 | General Electric Company | System and method for cycle time visualization |
US8914794B2 (en) * | 2011-06-30 | 2014-12-16 | Rockwell Automation Technologies, Inc. | Multiple deployment of applications with multiple configurations in an industrial automation environment |
US9239574B2 (en) * | 2011-06-30 | 2016-01-19 | Honeywell International Inc. | Apparatus for automating field device operations by capturing device method execution steps for later use and related method |
DE102011107318A1 (de) * | 2011-07-06 | 2013-01-10 | Abb Ag | Verfahren zur Konfigurierung eines Kommunikationsschnittstellenmoduls in einem Steuerungs- oder Automatisierungssystem |
CN102338238A (zh) * | 2011-08-17 | 2012-02-01 | 苏州博睿测控设备有限公司 | 一种可靠型电动执行器的控制系统 |
CN102313062A (zh) * | 2011-08-17 | 2012-01-11 | 苏州博睿测控设备有限公司 | 一种智能型电动执行器的控制系统 |
US8543748B2 (en) * | 2011-09-09 | 2013-09-24 | General Electric Company | Fieldbus device control system |
US8745281B2 (en) | 2012-04-23 | 2014-06-03 | General Electric Company | Automatic foundation fieldbus device commissioning |
US9052708B2 (en) | 2012-09-05 | 2015-06-09 | General Electric Company | Systems and methods for improved device commissioning and decommissioning |
US20140126583A1 (en) * | 2012-11-08 | 2014-05-08 | General Electric Company | Systems and Methods for Segment Synchronization |
US9665088B2 (en) | 2014-01-31 | 2017-05-30 | Fisher-Rosemount Systems, Inc. | Managing big data in process control systems |
US9558220B2 (en) | 2013-03-04 | 2017-01-31 | Fisher-Rosemount Systems, Inc. | Big data in process control systems |
US10909137B2 (en) | 2014-10-06 | 2021-02-02 | Fisher-Rosemount Systems, Inc. | Streaming data for analytics in process control systems |
US10678225B2 (en) | 2013-03-04 | 2020-06-09 | Fisher-Rosemount Systems, Inc. | Data analytic services for distributed industrial performance monitoring |
US10223327B2 (en) | 2013-03-14 | 2019-03-05 | Fisher-Rosemount Systems, Inc. | Collecting and delivering data to a big data machine in a process control system |
US10866952B2 (en) | 2013-03-04 | 2020-12-15 | Fisher-Rosemount Systems, Inc. | Source-independent queries in distributed industrial system |
US10649449B2 (en) | 2013-03-04 | 2020-05-12 | Fisher-Rosemount Systems, Inc. | Distributed industrial performance monitoring and analytics |
US10386827B2 (en) | 2013-03-04 | 2019-08-20 | Fisher-Rosemount Systems, Inc. | Distributed industrial performance monitoring and analytics platform |
US10649424B2 (en) | 2013-03-04 | 2020-05-12 | Fisher-Rosemount Systems, Inc. | Distributed industrial performance monitoring and analytics |
US10282676B2 (en) | 2014-10-06 | 2019-05-07 | Fisher-Rosemount Systems, Inc. | Automatic signal processing-based learning in a process plant |
US10296668B2 (en) * | 2013-03-15 | 2019-05-21 | Fisher-Rosemount Systems, Inc. | Data modeling studio |
US9158698B2 (en) * | 2013-03-15 | 2015-10-13 | International Business Machines Corporation | Dynamically removing entries from an executing queue |
US10691281B2 (en) | 2013-03-15 | 2020-06-23 | Fisher-Rosemount Systems, Inc. | Method and apparatus for controlling a process plant with location aware mobile control devices |
US9563188B2 (en) | 2013-08-01 | 2017-02-07 | General Electric Company | Systems and methods for batch device commissioning and decommissioning |
US9971977B2 (en) * | 2013-10-21 | 2018-05-15 | Honeywell International Inc. | Opus enterprise report system |
US20150120001A1 (en) * | 2013-10-31 | 2015-04-30 | Sputtering Components, Inc. | Decentralized process controller |
US9915939B2 (en) * | 2013-12-13 | 2018-03-13 | General Electric Company | Systems and methods for providing multiple frame rates on a common physical network |
CN106165349B (zh) * | 2014-01-03 | 2020-06-19 | 凤凰通讯发展及制造股份有限公司 | 具有二线环路的现场总线网络 |
CN104153614A (zh) * | 2014-08-27 | 2014-11-19 | 中瑞丸达机电科技(北京)有限公司 | 立体车库控制系统 |
US10168691B2 (en) | 2014-10-06 | 2019-01-01 | Fisher-Rosemount Systems, Inc. | Data pipeline for process control system analytics |
DE102014118389A1 (de) * | 2014-12-11 | 2016-06-16 | Weidmüller Interface GmbH & Co. KG | Automatisierungsgerät, Anschlussmodul für ein Automatisierungsgerät und Verfahren zum Betreiben eines Automatisierungsgeräts |
CN104407555A (zh) * | 2014-12-19 | 2015-03-11 | 重庆川仪自动化股份有限公司 | 一种执行器远程控制系统 |
JP6502114B2 (ja) * | 2015-02-12 | 2019-04-17 | 株式会社神戸製鋼所 | 通信制御システム及び通信制御方法 |
JP6477161B2 (ja) * | 2015-03-31 | 2019-03-06 | オムロン株式会社 | 情報処理装置、情報処理プログラムおよび情報処理方法 |
GB2602230B (en) * | 2015-10-12 | 2022-10-26 | Fisher Rosemount Systems Inc | Configuration in process plant using i/o-abstracted field device configurations |
US10503483B2 (en) | 2016-02-12 | 2019-12-10 | Fisher-Rosemount Systems, Inc. | Rule builder in a process control network |
JP6594813B2 (ja) * | 2016-03-24 | 2019-10-23 | 株式会社神戸製鋼所 | 通信制御システム及び通信制御方法 |
DE102016107491A1 (de) * | 2016-04-22 | 2017-10-26 | Beckhoff Automation Gmbh | Verbindungseinheit, Überwachungssystem und Verfahren zum Betreiben eines Automatisierungssystems |
US10671038B2 (en) * | 2016-07-15 | 2020-06-02 | Fisher-Rosemount Systems, Inc. | Architecture-independent process control |
US10649430B2 (en) * | 2018-06-26 | 2020-05-12 | Fisher-Rosemount Systems, Inc. | Method and apparatus for configuring access to multi-variable field devices signals |
EP3798753B1 (en) * | 2019-09-27 | 2023-03-01 | Siemens Aktiengesellschaft | Method for scheduling one or more control applications on an industrial controller and a configuration tool therefor |
EP3809214A1 (en) | 2019-10-14 | 2021-04-21 | Siemens Aktiengesellschaft | Method for configuring an interface device and interface device thereby |
CN111459103B (zh) * | 2020-03-21 | 2021-02-12 | 江苏科瑞德智控自动化科技有限公司 | 一种基于mcgs组态屏的织机通讯系统 |
EP3929679A1 (en) | 2020-06-23 | 2021-12-29 | ABB Schweiz AG | Engineering system for orchestration of an industrial plant |
US11418969B2 (en) | 2021-01-15 | 2022-08-16 | Fisher-Rosemount Systems, Inc. | Suggestive device connectivity planning |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6285966B1 (en) * | 1998-06-25 | 2001-09-04 | Fisher Controls International, Inc. | Function block apparatus for viewing data in a process control system |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05250377A (ja) * | 1992-03-04 | 1993-09-28 | Fujitsu Ltd | スケジューリング方式 |
US20040194101A1 (en) * | 1997-08-21 | 2004-09-30 | Glanzer David A. | Flexible function blocks |
DE69710201T3 (de) * | 1996-10-04 | 2007-07-05 | Fisher Controls International Llc (N.D.Ges.D.Staates Delaware) | Netzwerkzugangs-interface für prozesssteuerungsnetzwerk |
JPH10177401A (ja) * | 1996-12-16 | 1998-06-30 | Yokogawa Electric Corp | フィールドバスシステム |
US6662061B1 (en) * | 1997-02-07 | 2003-12-09 | Peter G. Brown | System and method for simulation and modeling of batch process manufacturing facilities using process time lines |
US6983229B2 (en) * | 1997-06-20 | 2006-01-03 | Brown Peter G | Method for scheduling solution preparation in biopharmaceutical batch process manufacturing |
US6076952A (en) * | 1997-09-17 | 2000-06-20 | National Instruments, Corp. | Fieldbus network configuration utility with improved parameter control |
US5971581A (en) * | 1997-09-17 | 1999-10-26 | National Instruments Corp. | Fieldbus network configuration utility with improved scheduling and looping |
US20040208158A1 (en) * | 1998-08-19 | 2004-10-21 | Fellman Ronald D. | Methods and apparatus for providing quality-of-service guarantees in computer networks |
US6738388B1 (en) | 1998-09-10 | 2004-05-18 | Fisher-Rosemount Systems, Inc. | Shadow function block interface for use in a process control network |
US6915364B1 (en) * | 1999-07-02 | 2005-07-05 | Fisher Rosemount Systems, Inc. | Automatically downloaded link active schedule |
US6618745B2 (en) * | 1999-09-10 | 2003-09-09 | Fisher Rosemount Systems, Inc. | Linking device in a process control system that allows the formation of a control loop having function blocks in a controller and in field devices |
US6418350B1 (en) | 2000-06-09 | 2002-07-09 | Brooks Automation Inc. | Periodic scheduler for dual-arm robots in cluster tools with process-module residency constraints |
JP3662822B2 (ja) * | 2000-08-08 | 2005-06-22 | 三菱電機株式会社 | プラント制御システム |
EP1312206A1 (en) * | 2000-08-16 | 2003-05-21 | Koninklijke Philips Electronics N.V. | Method of playing multimedia applications |
JP4602535B2 (ja) * | 2000-11-17 | 2010-12-22 | 富士通株式会社 | スケジュール実行管理装置および管理方法 |
JP2002163003A (ja) * | 2000-11-27 | 2002-06-07 | Yamatake Sangyo Systems Co Ltd | 制御プログラム作成装置および制御プログラム作成方法ならびに記録媒体 |
US7370239B2 (en) * | 2001-05-31 | 2008-05-06 | Fisher-Rosemount Systems, Inc. | Input/output device with configuration, fault isolation and redundant fault assist functionality |
US20040260584A1 (en) * | 2001-11-07 | 2004-12-23 | Takafumi Terasawa | Schedule data distribution evaluating method |
JP2004005461A (ja) * | 2002-04-02 | 2004-01-08 | Hitachi Ltd | ローテーション計画方法およびローテーション計画装置 |
US7048141B2 (en) * | 2002-05-14 | 2006-05-23 | Antioch Holdings, Inc. | Personal medication dispenser |
US7496041B2 (en) * | 2003-02-28 | 2009-02-24 | Fisher-Rosemount Systems, Inc. | High speed auto-tuning loop |
WO2004092852A2 (en) * | 2003-04-09 | 2004-10-28 | Brown Peter G | The use of sub (partial) cycles, nested cluster cycles, and lot cycles for determining equipment capacities in a batch manufacturing facility |
WO2005017743A2 (en) * | 2003-08-07 | 2005-02-24 | National Instruments Corporation | A graphical program which executes a timed loop |
US7730415B2 (en) | 2003-09-05 | 2010-06-01 | Fisher-Rosemount Systems, Inc. | State machine function block with a user modifiable state transition configuration database |
JP4427734B2 (ja) * | 2004-07-30 | 2010-03-10 | オムロン株式会社 | ループコントローラ |
US7921026B2 (en) * | 2005-03-01 | 2011-04-05 | Microsoft Corporation | Method and system for generating a timeline associated with a project schedule |
US8160750B2 (en) * | 2005-06-17 | 2012-04-17 | Rain Bird Corporation | Programmable irrigation controller having user interface |
US8005553B2 (en) | 2006-09-29 | 2011-08-23 | Fisher-Rosemount Systems, Inc. | Automatic configuration of synchronous block execution for control modules run in fieldbus networks |
US7761171B2 (en) | 2006-09-29 | 2010-07-20 | Fisher-Rosemount Systems, Inc. | Methods and apparatus to generate schedules to execute functions in a process control system |
-
2007
- 2007-12-31 US US11/968,087 patent/US8005553B2/en active Active
-
2008
- 2008-12-18 GB GB0823049.2A patent/GB2456037B/en not_active Expired - Fee Related
- 2008-12-24 JP JP2008327645A patent/JP5373385B2/ja active Active
- 2008-12-30 EP EP12162018.1A patent/EP2472343B1/en not_active Expired - Fee Related
- 2008-12-30 EP EP20080173053 patent/EP2112570A1/en not_active Withdrawn
- 2008-12-31 CN CN200810187790.3A patent/CN101477362B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6285966B1 (en) * | 1998-06-25 | 2001-09-04 | Fisher Controls International, Inc. | Function block apparatus for viewing data in a process control system |
Also Published As
Publication number | Publication date |
---|---|
CN101477362A (zh) | 2009-07-08 |
GB0823049D0 (en) | 2009-01-28 |
EP2472343A2 (en) | 2012-07-04 |
GB2456037B (en) | 2013-02-13 |
JP2009217812A (ja) | 2009-09-24 |
US20080249641A1 (en) | 2008-10-09 |
EP2472343A3 (en) | 2014-04-30 |
US8005553B2 (en) | 2011-08-23 |
JP5373385B2 (ja) | 2013-12-18 |
EP2112570A1 (en) | 2009-10-28 |
EP2472343B1 (en) | 2016-12-21 |
GB2456037A (en) | 2009-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101477362B (zh) | 现场总线网络中运行的控制模块的同步块执行自动配置 | |
Gershwin | Design and operation of manufacturing systems: the control-point policy | |
US5841659A (en) | Production plan generating method and apparatus | |
CN109143993B (zh) | 同步过程工厂中的配置改变 | |
US11874648B2 (en) | Module for a technical facility and method for controlling a technical facility | |
Wang | An overview of function block enabled adaptive process planning for machining | |
CN106537270A (zh) | 用于全厂范围控制和优化的级联模型预测控制(mpc)方法 | |
US8601435B2 (en) | Module class subsets for industrial control | |
CN1313966A (zh) | 用于查看过程控制系统中的数据的功能块装置 | |
CN101196740A (zh) | 集成于过程控制网络的分析服务器 | |
CN101713985A (zh) | 配方指令步骤及来自外部逻辑的配方输入 | |
JP2002108431A (ja) | 板材製品生産総合管理システム | |
CN100383914C (zh) | 决定机器派工顺序的方法以及使用该方法的制造系统 | |
Liang | Control and communication co-design: Analysis and practice on performance improvement in distributed measurement and control system based on fieldbus and Ethernet | |
Kim et al. | Automatic control sequence generation for a hybrid disassembly system | |
Grauer et al. | Towards an IT-framework for digital enterprise integration | |
Wang et al. | Function block design for adaptive execution control of job shop machining operations | |
Fujishima et al. | A new methodology for providing insight into manufacturing using KPIs based on SMKL (Smart Manufacturing Kaizen Level), utilizing industry standards (OPC UA, FDT, PLCopen and AutomationML) | |
JP2007156872A (ja) | 生産工程の管理方法 | |
Bruccoleri et al. | Operational issues in reconfigurable manufacturing systems: exception handling | |
JP2000317779A (ja) | 離散事象のシミュレーションシステム | |
US20240118683A1 (en) | Module for a technical facility and method for controlling a technical facility | |
Cao et al. | Intelligent Job Shop Scheduling Based on MAS and Integrated Routing Wasp Algorithm and Scheduling Wasp Algorithm. | |
Liu et al. | Application of reconfigurable machine tools in the capacity control of job shop systems | |
Roberts et al. | A virtual plant modeller (VPMOD) for batch-chemical processes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140709 Termination date: 20181231 |
|
CF01 | Termination of patent right due to non-payment of annual fee |