United States Patent6754885
Dardinski , ; et al.June 22, 2004

Title

Methods and apparatus for controlling object appearance in a process control configuration system

Abstract

The invention provides improved apparatus for configuring process, environmental, industrial and other control systems. Such apparatus employs "appearance" objects (or other data and/or programming constructs) defining the appearance of configurable system components in graphical editors or other views in which the components may be depicted. "Placeholder" objects (or other constructs) persist the location, size, color, or other aspects of appearance defined by an appearance object for a configurable component in views in which it is actually depicted. By way of example, a process control configuration apparatus according to this aspect of the invention uses "configurable" objects to define blocks, loops and other components of a process control system. Appearance objects provide (or reference) icons or representations indicating how the configurable objects are to be depicted, e.g., in a configuration editor. Placeholder objects are created for each configurable object that is placed in a configuration using that editor. The placeholder objects identify the sizes, locations, colors, etc., of the icons used in the editor to represent the configurable objects.


Inventors:Dardinski; Steven (Westford, MA), Eldridge; Keith  (North Easton, MA), Hall; Robert  (South Easton, MA), Johnson; Mark  (North Attleboro, MA), MacKay; Brian  (Coppell, TX), Meskonis; Paul  (Norwood, MA), Volk; Scott  (North Easton, MA)
Assignee:Invensys Systems, Inc. (Foxboro, MA)
Appl. No.:448845
Filed:November 23, 1999

Current U.S. Class:717/113 
Field of Search:717/113

U.S. Patent Documents
3665172May 1972Spaargaren et al.
3810119May 1974Zieve et al.
3825905July 1974Allen Jr.
4006464February 1977Landell
4096566June 1978Borie et al.
4276593June 1981Hansen
4302820November 1981Struger et al.
4312068January 1982Goss et al.
4323966April 1982Whiteside et al.
4347563August 1982Paredes et al.
4410942October 1983Milligan et al.
4413314November 1983Slater et al.
4423486December 1983Berner
4428044January 1984Liron
4435762March 1984Milligan et al.
4443861April 1984Slater
4456997June 1984Spitza
4466098August 1984Southard
4471457September 1984Videki, II
4488226December 1984Wagner, Jr. et al.
4493027January 1985Katz et al.
4609995September 1986Hasebe
4615001September 1986Hudgins, Jr.
4628437December 1986Poschmann et al.
4639852January 1987Motomiya
4641269February 1987Japenga et al.
4641276February 1987Dunki-Jacobs
4648064March 1987Morley
4649479March 1987Advani et al.
4663704May 1987Jones et al.
4672530June 1987Schuss
4675812June 1987Capowski et al.
4682158July 1987Ito et al.
4682304July 1987Tierney
4683530July 1987Quatse
4692859September 1987Ott
4692918September 1987Elliott et al.
4703421October 1987Abrant et al.
4704676November 1987Flanagan et al.
4709325November 1987Yajima
4719593January 1988Threewitt et al.
4727477February 1988Gavril
4733366March 1988Deyesso et al.
4742349May 1988Miesterfeld et al.
4750109June 1988Kita
4790762December 1988Harms et al.
4805107February 1989Kieckhafer et al.
4816996March 1989Hill et al.
4817094March 1989Lebizay et al.
4872106October 1989Slater
4897777January 1990Janke et al.
4910658March 1990Dudash et al.
4910691March 1990Skeirik
4918690April 1990Markkula, Jr. et al.
4958277September 1990Hill et al.
4959774September 1990Davis
4965717October 1990Cutts, Jr. et al.
4965742October 1990Skeirik
4965880October 1990Petitjean
4991170February 1991Kem
5008805April 1991Fiebig et al.
5050165September 1991Yoshioka et al.
5068778November 1991Kosem et al.
5121318June 1992Lipner et al.
5122948June 1992Zapolin
5124908June 1992Broadbent
5129087July 1992Will
5131092July 1992Sackmann et al.
5134574July 1992Beaverstock et al.
5136704August 1992Danielsen et al.
5138708August 1992Vosbury
5140677August 1992Fleming et al.
5146589September 1992Peet, Jr. et al.
5151978September 1992Bronikowski et al.
5151981September 1992Westcott et al.
5159673October 1992Sackmann et al.
5162986November 1992Graber et al.
5163055November 1992Lee et al.
5164894November 1992Cunningham-Reid et al.
5166685November 1992Campbell, Jr. et al.
5168276December 1992Huston et al.
5168441December 1992Onarheim et al.
5175829December 1992Stumpf et al.
5193175March 1993Cutts, Jr. et al.
5202961April 1993Mills et al.
5212784May 1993Sparks
5233615August 1993Goetz
5245704September 1993Weber et al.
5251125October 1993Karnowski et al.
5255367October 1993Bruckert et al.
5258999November 1993Wernimont et al.
5271013December 1993Gleeson
5283729February 1994Lloyd
5289365February 1994Caldwell et al.
5295258March 1994Jewett et al.
5297143March 1994Fridrich et al.
5302952April 1994Campbell, Jr. et al.
5303227April 1994Herold et al.
5303375April 1994Collins et al.
5303392April 1994Carney et al.
5307346April 1994Fieldhouse
5307372April 1994Sawyer et al.
5307463April 1994Hyatt et al.
5309556May 1994Sismilich
5317726May 1994Horst
5335221August 1994Snowbarger et al.
5347181September 1994Ashby et al.
5349343September 1994Oliver
5352033October 1994Gresham et al.
5359721October 1994Kempf et al.
5367640November 1994Hamilton et al.
5371895December 1994Bristol
5377315December 1994Leggett
5381529January 1995Matsushima
5384910January 1995Torres
5390321February 1995Proesel
5392389February 1995Fleming
5394522February 1995Sanchez-Frank et al.
5398331March 1995Huang et al.
5400140March 1995Johnston
5408603April 1995Van de Lavoir et al.
5410717April 1995Floro
5420977May 1995Sztipanovits et al.
5426732June 1995Boies et al.
5428734June 1995Haynes et al.
5428781June 1995Duault et al.
5432711July 1995Jackson et al.
5434997July 1995Laundry et al.
5437007July 1995Bailey et al.
5442639August 1995Crowder et al.
5444851August 1995Woest
5450403September 1995Ichii et al.
5450425September 1995Gunn et al.
5450764September 1995Johnston
5451939September 1995Price
5452201September 1995Pieronek et al.
5457797October 1995Butterworth et al.
5459825October 1995Anderson et al.
5459839October 1995Swarts et al.
5461710October 1995Bloomfield et al.
5463735October 1995Pascucci et al.
5467264November 1995Rauch et al.
5475856December 1995Kogge
5481741January 1996McKaskle et al.
5483660January 1996Yishay et al.
5485620January 1996Sadre et al.
5490276February 1996Doli, Jr. et al.
5491791February 1996Glowny et al.
5493534February 1996Mok
5500934March 1996Austin et al.
5504672April 1996Hardiman et al.
5504902April 1996McGrath et al.
5509811April 1996Homic
5513095April 1996Pajonk
5513192April 1996Janku et al.
5513354April 1996Dwork et al.
5517655May 1996Collins et al.
5519605May 1996Cawlfield
5519701May 1996Colmant et al.
5522044May 1996Pascucci et al.
5530643June 1996Hodorowski
5539909July 1996Tanaka et al.
5544008August 1996Dimmick et al.
5549137August 1996Lenz et al.
5550980August 1996Pascucci et al.
5551047August 1996Mori et al.
5555213September 1996DeLong
5555437September 1996Packer
5555510September 1996Verseput et al.
5559691September 1996Monta et al.
5559963September 1996Gregg et al.
5566320October 1996Hubert
5568378October 1996Wojsznis
5572673November 1996Shurts
5576946November 1996Bender et al.
5579220November 1996Barthel et al.
5579487November 1996Meyerson et al.
5581760December 1996Atkinson et al.
5586112December 1996Tabata
5586329December 1996Knudsen et al.
5586330December 1996Knudsen et al.
5587899December 1996Ho et al.
5594858January 1997Blevins
5594899January 1997Knudsen et al.
5596331January 1997Bonaffini et al.
5596752January 1997Knudsen et al.
5598536January 1997Slaughter, III et al.
5598566January 1997Pascucci et al.
5600845February 1997Gilson
5604871February 1997Pecone
5611057March 1997Pecone et al.
5613148March 1997Bezviner et al.
5617540April 1997Civanlar et al.
5621871April 1997Jaremko et al.
5623592April 1997Carlson et al.
5627979May 1997Chang et al.
5629949May 1997Zook
5630056May 1997Horvath et al.
5630152May 1997DeLuca et al.
5642511June 1997Chow et al.
5649121July 1997Budman et al.
5655092August 1997Ojala
5659680August 1997Cunningham et al.
5664101September 1997Picache
5664168September 1997Yishay et al.
5671374September 1997Postman et al.
5676141October 1997Hollub
5680404October 1997Gray
5680409October 1997Qin et al.
5682476October 1997Tapperson et al.
5687316November 1997Graziano et al.
5701414December 1997Cheng et al.
5708779January 1998Graziano et al.
5719761February 1998Gatti et al.
5726912March 1998Krall, Jr. et al.
5727128March 1998Morrison
5732218March 1998Bland et al.
5737529April 1998Dolin, Jr. et al.
5742762April 1998Scholl et al.
5748467May 1998Qin et al.
5751574May 1998Loebig
5752007May 1998Morrison
5752008May 1998Bowling
5752246May 1998Rogers et al.
5754772May 1998Leaf
5758073May 1998Liang et al.
5758075May 1998Graziano et al.
5761518June 1998Boehling et al.
5764906June 1998Edelstein et al.
5768119June 1998Havekost et al.
5768510June 1998Gish
5774670June 1998Montulli
5777874July 1998Flood et al.
5790791August 1998Chong et al.
5793963August 1998Tapperson et al.
5796602August 1998Wellan et al.
5797038August 1998Crawford et al.
5801770September 1998Paff et al.
5801942September 1998Nixon et al.
5805442September 1998Crater et al.
5805922September 1998Sim et al.
5812394September 1998Lewis et al.
5815152September 1998Collier et al.
5822220October 1998Baines
5828851October 1998Nixon et al.
5831669November 1998Adrain
5832418November 1998Meyer
5838563November 1998Dove et al.
5838920November 1998Rosborough
5841360November 1998Binder
5841963November 1998Nakamikawa et al.
5844601December 1998McPheely et al.
5847957December 1998Cohen et al.
5854944December 1998Catherwood et al.
5862052January 1999Nixon et al.
5872992February 1999Tietjen et al.
5873089February 1999Regache
5874990February 1999Kato
5880775March 1999Ross
5903455May 1999Sharpe, Jr. et al.
5909368June 1999Nixon et al.
5909586June 1999Anderson
5920479July 1999Sojoodi et al.
5930768July 1999Hooban
5940294August 1999Dove
5956487September 1999Venkatraman et al.
5960214September 1999Sharpe, Jr. et al.
5975737November 1999Crater et al.
5980078November 1999Krivoshein et al.
5982362November 1999Crater et al.
5994998November 1999Fisher et al.
5995916November 1999Nixon et al.
6014591January 2000Ikeda
6014612January 2000Larson et al.
6018627January 2000Iyengar et al.
6026336February 2000Sakurai et al.
6026352February 2000Burns et al.
6032208February 2000Nixon et al.
6035264March 2000Donaldson et al.
6049775April 2000Gertner et al.
6061603May 2000Papadopoulos et al.
6078320June 2000Dove et al.
6094600July 2000Sharpe, Jr. et al.
6098116August 2000Nixon et al.
6115468September 2000De Nicolo
6140911October 2000Fisher et al.
6269473July 2001Freed et al.
6345382February 2002Hughes
6405210June 2002Doyle et al.
RE33162February 1990Yoshida et al.
Foreign Patent Documents
0 411 869Jul., 1990EP
WO 95/04314Feb., 1995WO
WO 96/23377Aug., 1996WO
WO 96/31047Mar., 1996WO
WO 97/07486Feb., 1997WO
WO 98/20649May., 1998WO
WO 98/36518Aug., 1998WO
WO 98/54843Dec., 1998WO
Other References
"Integrating UML Diagrams for Production Control Systems", Hans J. Koher et al, ACM p. 241-251, 2000.
Primary Examiner: Ingberg; Todd
Attorney, Agent or Firm:Powsner; David J. Nutter, McClennen & Fish

Parent Case Text



REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of priority of U.S. Ser. No. 60/134,597, filed May 17, 1999, entitled INTEGRATED DESIGN AUTOMATION CONTROL ALGORITHM CONFIGURATOR ARCHITECTURE, the teachings of which are incorporated herein by reference.

This application is related to commonly assigned U.S. Ser. No. 09/448,374, filed this day herewith, entitled PROCESS CONTROL CONFIGURATION SYSTEM WITH PARAMETERIZED OBJECTS, the teachings of which are incorporated herein by reference.

This application is related to commonly assigned U.S. Ser. No. 09/448,223, filed this day herewith entitled PROCESS CONTROL CONFIGURATION SYSTEM WITH CONNECTION VALIDATION AND CONFIGURATION, the teachings of which are incorporated herein by reference.

Claims


What is claimed is:
1. Apparatus for configuring a control system, the apparatus comprising: a plurality of objects ("configurable" objects) each defining a configurable entity, where each configurable object is associated with a specified object type, one or more objects ("appearance" objects) that identity an appearance of one or more types of configurable objects in one or more views in which those types of configurable objects may be depicted, where each view is associated with a specified view type, a plurality of objects ("placeholder type" objects) that, together, define valid combinations of object types and view types, where each placeholder type object defines an appearance of objects of a specified object type in views of a specified view type in which objects of object type can be displayed, a plurality of persistent documents, each representing a configuration of configurable objects in accord with a selected one of a plurality of views in which configurable objects may be depicted, the persistent document including one or more objects ("placeholder" objects), each placeholder object identifying the location and appearance of a respective configurable object in the selected view to which that persistent document pertains, each placeholder object identifying the appearance object for that respective configurable object identifying the appearance of that configurable object in that selected view, logic that responds to a selected one of the persistent documents by depicting configurable objects whose configuration is represented in that selected persistent document in accord with locations identified by placeholder objects included in that persistent document and with appearances identified by the respective appearance objects identified by those placeholder objects.

2. Apparatus according to claim 1, comprising a configuration editor that invokes the logic to depict a configuration represented by the persistent document.

3. Apparatus according to claim 1, wherein an appearance object identifies a graphical representation of a configurable object.

4. Apparatus according to claim 1, wherein an appearance object identifies an icon representing a configurable object.

5. Apparatus according to claim 4, wherein an appearance object identifies textual information for a configurable object.

6. Apparatus according to claim 5, wherein the textual information includes any of a name and a type of configurable object.

7. Apparatus according to claim 1, wherein an appearance object includes one or more macros identifying any of a graphical representation and textual information for a configurable object.

8. Apparatus according to claim 7, wherein the macros have values obtained from the corresponding configurable object.

9. Apparatus according to claim 1, wherein an object represents an entity within any of (i) a controlled system, (ii) the control system, (iii) a control level hierarchy, and (iv) the apparatus for configuring the control system.

10. Apparatus according to claim 9, wherein an entity includes any of a field device, control processor, block, loop, compound, historian, object type category, object connection, parameter connection, display placeholder, graphical display entity, and report.

11. Apparatus for configuring a process control system, the apparatus comprising: a plurality of objects ("configurable" objects) each defining a configurable entity in any of (i) a controlled process, (ii) the process control system, (iii) a control level hierarchy, and (iv) the apparatus for configuring the control system, where each configurable object is associated with a specified object type, each configurable object being associated with one or more further objects ("appearance" objects) that identify an appearance of one or more types of configurable object in one or more views in which those types of configurable objects may be depicted, where each view is associated with a specified view type, a plurality of objects ("placeholder type" objects) that, together, define valid combinations of object types and view types, where each placeholder type object defines an appearance of objects of a specified object type in views of a specified view type in which objects of object type can be displayed, each configurable object being associated with one or more still further objects ("placeholder" objects), each identifying the location and appearance of a respective configurable object in a selected one of a plurality of views in which that configurable object may be depicted, each placeholder object identifying the appearance object for the associated configurable object for that selected view, logic that responds to a placeholder object by depicting the associated configurable object in accord with the appearance identified by associated appearance object and in accord with any of the location, size, color and other aspect thereof identified by associated placeholder object.

12. Apparatus according to claim 11, comprising a persistent document representing a configuration of configurable objects in accord with a selected view, the persistent document including one or more placeholder objects.

13. Apparatus according to claim 12, comprising a configuration editor that invokes the logic to depict a configuration represented by the persistent document.

14. Apparatus according to claim 13, wherein an entity includes any of a liquid device, control processor, block, loop, compound, historian, object type category, object connection, parameter connection, display placeholder, graphical display entity, and report.

15. Apparatus according to claim 13, wherein an appearance object identifies an icon representing a configurable object.

16. Apparatus according to claim 14, wherein an appearance object identifies textual information for a configurable object.

17. Apparatus according to claim 13, wherein an appearance object includes one or more macros identifying any of a graphical representation and textual information for a configurable object.

18. Apparatus according to claim 17, wherein the macros have values obtained from the corresponding configurable object.

19. Apparatus for configuring a control system, the apparatus comprising: a plurality of objects ("configurable" objects) each defining a configurable entity, where each configurable object is associated with a specified object type, one or more objects ("appearance" objects) that identity an appearance of one or more types of configurable objects in one or more views in which those types of configurable objects may be depicted, where each view is associated with a specified view type, a plurality of objects ("placeholder type" objects) that, together, define valid combinations of object types and view types, where each placeholder type object defines an appearance of objects of a specified object type in views of a specified view type in which objects of object type can be displayed, a plurality of persistent documents representing a configuration of configurable objects in accord with a one of a plurality of selected views in which configurable objects may be depicted, the persistent document comprising one or more objects ("placeholder" objects), each placeholder object identifying the location and appearance of a respective configurable object in the selected view to which that persistent document pertains, each placeholder object identifying the appearance object for that respective configurable object identifying the appearance of that configurable object in that selected view, one or more connector graphics depicting relationships between configurable objects, logic that responds to a selected one of the persistent document by depicting configurable objects whose configuration is represented in that selected persistent document in accord with locations identified by placeholder objects included in that persistent document and with appearances identified by the respective appearance objects identified by those placeholder objects.

20. Apparatus according to claim 19, comprising at least one object ("connection" object) identifying any of a parent/child relationship, a source/sink relationship, and other relationship between configurable objects.

21. Apparatus according to claim 20, wherein each connector graphic depicts a relationship identified by an associated connection object.

22. Apparatus according to claim 19, wherein each configurable object is associated with one or more parameters, each parameter identifying appearance objects associated with that configurable object.

23. Apparatus according to claim 22, wherein at least one object ("descendant" object) is defined as a descendant of another object ("ancestor" object) and is associated with one or more parameters of the ancestor object.

24. Apparatus according to claim 23, including functionality that facilitates definition, during configuration, of an object as a descendant of another object.

25. Apparatus according to claim 23, wherein a change during configuration to a parameter of an ancestor object being effective as to a descendant object with which that parameter is associated.

26. Apparatus according to claim 23, wherein a descendant object is associated with the parameters of the ancestor object from which it descends, and is associated with further parameters as consequence one or more parameters definitions contained in, or associated with, the descendant object.

27. Apparatus according to claim 23, wherein a parameter identifies information for maintaining the appearance of a configurable object in a persistent document.

28. Apparatus according to claim 27, wherein a parameter identifies a graphical representation of a configurable object.

29. Apparatus according to claim 27, wherein a parameter identifies an icon representing a configurable object.

30. Apparatus according to claim 29, wherein a parameter identifies textual information for a configurable object.

31. Apparatus according to claim 30, wherein the textual information includes any of a name and type of a configurable object.

32. Apparatus according to claim 27, wherein a parameter includes one or more macros identifying any of a graphical representation and textual information for a configurable object.

33. Apparatus according to claim 32, wherein the macros have values obtained from the corresponding configurable object.

34. Apparatus according to claim 27, wherein a parameter represents an entity within any of (i) a controlled system, (ii) the control system, (iii) a control level hierarchy, and (iv) the apparatus for configuring the control system.

35. Apparatus according to claim 34, wherein an entity includes any of a field device, control processor, block, loop, compound, historian, object type category, object connection, parameter connection, display placeholder, graphical display entity, and report.

36. A method for configuring a control system, the method comprising: establishing a plurality of objects ("configurable" objects) each defining a configurable entity, where each configurable object is associated with a specified object type, establishing one or more objects ("appearance" objects) that identity an appearance of one or more types of configurable objects in one or more views in which those types of configurable objects may be depicted, where each view is associated with a specified view type, a plurality of objects ("placeholder type" objects) that, together, define valid combinations of object types and view types, where each placeholder type object defines an appearance of objects of a specified object type in views of a specified view type in which objects of object type can be displayed, defining a plurality of persistent documents, each representing a configuration of configurable objects in accord with a selected one of a plurality of views in which configurable objects may be depicted, the persistent document including one or more objects ("placeholder" objects), each placeholder object identifying the location and appearance of a respective configurable object in the selected view to which that persistent document pertains, each placeholder object identifying the appearance object for that respective configurable object defining the appearance of that configurable object in that selected view, invoking logic that responds to a selected one of the persistent documents by depicting configurable objects whose configuration is represented in that selected persistent document in accord with locations identified by placeholder objects included in that persistent document and with appearances identified by the respective appearance objects identified by those placeholder objects.

37. A method according to claim 36, comprising invoking the logic from a configuration editor in order to depict a configuration represented by the persistent document.

38. A method according to claim 36, comprising including in an appearance object a graphical representation of a configurable object.

39. A method according to claim 36, comprising including in an appearance object an icon representing a configurable object.

40. A method according to claim 39, comprising including in an appearance object textual information for a configurable object.

41. A method according to claim 40, wherein the textual information includes any of a name and a type of a configurable object.

42. A method according to claim 36, comprising including in an appearance object one or more macros identifying any of a graphical representation and textual information for a configurable object.

43. A method according to claim 42, comprising obtaining values for the macros from the corresponding configurable object.

44. A method according to claim 36, wherein an object represents an entity within any of (i) a controlled system, (ii) the control system, (iii) a control level hierarchy, and (iv) the method for configuring the control system.

45. A method according to claim 44, wherein an entity includes any of a field device, control processor, block, loop, compound, historian, object type category, object connection, parameter connection, display placeholder, graphical display entity, and report.

46. A method for configuring a process a control system, the method comprising: establishing a plurality of objects ("configurable" objects) each defining a configurable entity in any of (i) a controlled process, (ii) the process control system, (iii) a control level hierarchy, and (iv) the method for configuring the control system, where each configurable object is associated with a specified object type, associating each configurable object with one or more further types of objects ("appearance" objects) that identify an appearance of the associated configurable object in one or more views in which the configurable object may be depicted, where each view is associated with a specified view type, a plurality of objects ("placeholder type" objects) that, together, define valid combinations of object types and view types, where each placeholder type object defines an appearance of objects of a specified object type in views of a specified view type in which objects of object type can be displayed, associated each configurable object with one or more still further objects ("placeholder" objects), each identifying the location and appearance of a respective configurable object in a selected one of a plurality of views in which that configurable object may be depicted, each placeholder object identifying the appearance object for the associated configurable object for that selected view, invoking logic that responds to a placeholder object by depicting the associated configurable object in accord with the appearance identified by associated appearance object and in accord with any of the location, size, color and other aspect thereof identified by associated placeholder object.

47. A method according to claim 46, comprising defining a persistent document representing a configuration of configurable objects in accord with a selected view, the persistent document including one or more placeholder objects.

48. A method according to claim 47, comprising invoking the logic from a configuration editor in order to depict a configuration represented by the persistent document.

49. A method according to claim 48, wherein an entity includes any of a field device, control processor, block, loop, compound, historian, object type category, object connection, parameter connection, display placeholder, graphical display entity, and report.

50. A method according to claim 49, comprising including in an appearance object textual information for a configurable object.

51. A method according to claim 48, comprising including in an appearance object an icon representing a configurable object.

52. A method according claim 48, comprising including in an appearance object one or more macros identifying any of a graphical representation and textual information for a configurable object.

53. A method according to claim 52, comprising obtaining values for the macros from the corresponding configurable object.

54. A method for configuring a control system, the method comprising: establishing a plurality of objects ("configurable" objects) each defining a configurable entity, where each configurable object is associated with a specified object type, establishing one or more objects ("appearance" objects) that identity an appearance of one or more types of configurable objects in one or more views in which those types of configurable objects may be depicted, where each view is associated with a specified view type, a plurality of objects ("placeholder type" objects) that, together, define valid combinations of object types and view types, where each placeholder type object defines an appearance of objects of a specified object type in views of a specified view type in which objects of object type can be displayed, defining a plurality of persistent documents representing a configuration of configurable objects in accord with a one of a plurality of selected views in which configurable objects may be depicted, the persistent document comprising one or more objects ("placeholder" objects), each placeholder object identifying the location and appearance of a respective configurable object in the selected view to which that persistent document pertains, each placeholder object identifying the appearance object for that respective configurable object identifying the appearance of that configurable object in that selected view, one or more connector graphics depicting relationships between configurable objects, invoking logic that responds to a selected one of the persistent documents by depicting configurable objects whose configuration is represented in that selected persistent document in accord with locations identified by placeholder objects included in that persistent document and with appearances identified by the respective appearance objects identified by those placeholder objects.

55. A method according to claim 54, comprising at least one object ("connection" object) identifying any of a parent/child relationship, a source/sink relationship, and other relationship between configurable objects.

56. A method according to claim 55, wherein each connector graphic depicts a relationship identified by an associated connection object.

57. A method according to claim 54, wherein each configurable object is associated with one or more parameters, each parameter identifying appearance objects associated with that configurable object.

58. A method according to claim 57, wherein at least one object ("descendant" object) is defined as a descendant of another object ("ancestor" object) and is associated with one or more parameters o the ancestor object.

59. A method according to claim 58, including functionality that facilitates definition, during configuration, of an object as a descendant of another object.

60. A method according to claim 58, wherein a change during configuration to a parameter of an ancestor object being effective as to a descendant object with which that parameter is associated.

61. A method according to claim 58, wherein a descendant object associated with the parameters of the ancestor object from which it descends, and is associated with further parameters as consequence one or more parameters definitions contained in, or associated with, the descendant object.

62. A method according to claim 58, comprising including in a parameter information for maintaining the appearance of a configurable object in a persistent document.

63. A method according to claim 62, comprising including in a parameter information that identifies a graphical representation of a configurable object.

64. A method according to claim 62, comprising including in a parameter information that identifies an icon representing a configurable object.

65. A method according to claim 64, comprising including in a parameter information that identifies textual information for a configurable object.

66. A method according to claim 65, wherein the textual information includes any of a name and a type of a configurable object.

67. A method according to claim 62, wherein a parameter includes one or more macros identifying any of a graphical representation and textual information for a configurable object.

68. A method according to claim 67, comprising obtaining values for the macros from the corresponding configurable object.

69. A method according to claim 62, wherein a parameter represents an entity within any of (i) a controlled system, (ii) the control system, (iii) a control level hierarchy, and (iv) the method for configuring the control system.

70. A method according to claim 69, wherein an entity includes any of a field device, control processor, block, loop, compound, historian, object type category, object connection, parameter connection, display placeholder, graphical display entity, and report.

Description

BACKGROUND OF THE INVENTION

The invention pertains to control and, more particularly, to methods and apparatus for configuring control systems.

The terms "control" and "control systems" refer to the control of a device, process or system by monitoring one or more of its characteristics. This is used to insure that output, processing, quality and/or efficiency remain within desired parameters over the course of time. In many control systems, digital data processing or other automated apparatus monitor a device, process or system and automatically adjust its operational parameters. In other control systems, such apparatus monitor the device, process or system and display alarms or other indicia of its characteristics, leaving responsibility for adjustment to the operator.

Control is used in a number of fields. Process control, for example, is typically employed in the manufacturing sector for process, repetitive and discrete manufactures, though, it also has wide application in utility and other service industries. Environmental control finds application in residential, commercial, institutional and industrial settings, where temperature and other environmental factors must be properly maintained. Control is also used in articles of manufacture, from toasters to aircraft, to monitor and control device operation.

Modern day control systems typically include a combination of field devices, control devices, and controllers, the functions of which may overlap or be combined. Field devices include temperature, flow and other sensors that measure characteristics of the device, process or system being controlled. Control devices include valves, actuators, and the like, that control the device, process or system itself.

Controllers generate settings for the control devices based on measurements from the field devices. Controller operation is typically based on a "control algorithm" that maintains a controlled system at a desired level, or drives it to that level, by minimizing differences between the values measured by the sensors and, for example, a setpoint defined by the operator.

In a food processing plant, for example, a controller can be used to maintain soup stock at a simmer or low boil. This is done by comparing measurements of vapor pressure in the processing vessel with a desired set-point. If the vessel pressure is too low, the control algorithm may call for incrementally opening the heating gas valves, thereby, driving the pressure and boiling activity upwards. As the pressure approaches the desired set-point, the algorithm requires incrementally leveling the valves to maintain the roil of the boil.

Controllers may be networked or otherwise connected to other computing apparatus that facilitate monitoring or administration. The so-called S88 industry standard, described in Batch Control--Part 1: Models and Terminology (The International Society for Measurement and Control 1995), for example, defines a hierarchy of processing and control equipment ("equipment entities") that can be used to model and control an automated manufacturing process. At the lowest level of the hierarchy are control modules that directly manipulate field devices (e.g., opening and closing valves and, possibly, other control modules. At a higher level, equipment modules coordinate the functions control modules, as well as of other equipment modules, and may execute phases of the manufacturing process (such as setting controller constants and modes). "Units," at still a higher level of the hierarchy, coordinate the functions of equipment and control modules. Process cells orchestrate all processing activities required to produce a manufacturing batch, e.g., scheduling, preparing and monitoring equipment or resources, and so forth.

The principal function of controllers is executing control algorithms for the real-time monitoring and control of devices, processes or systems. They typically have neither the computing power nor user interfaces required to facilitate the design of a control algorithm. Instead, the art has developed configurators. These are typically general purpose computers (e.g., workstations) running software that permit an engineer or operator to graphically model a device, process or system and the desired strategy for controlling it. This includes enumerating field devices, control devices, controllers and other apparatus that will be used for control, specifying their interrelationships and the information that will be transferred among them, as well as detailing the calculations and methodology they will apply for purposes of control. Once modeling is complete and tested, the control algorithm is downloaded to the controllers.

One well known process control system configurator is that provided with the I/A Series.RTM. (hereinafter, "IAS" or "I/A") systems, marketed by the assignee hereof These provide a graphical interface (FoxCAE) permitting an engineer to model a process hierarchically and to define a control algorithm from that hierarchy. Multiple editors are provided for defining and modifying modules within the hierarchy.

Though prior art process control configuration systems, particularly, the IAS systems and others sold by the assignee hereof, have met wide acceptance in the industry, there remains room for improvement. Such is the case, for example, with respect to the configuration of complex control systems.

In this context, an object of the present invention is to provide improved methods and apparatus for control and, particularly, for configuring control systems. A related object of the invention is to provide methods and apparatus for configuring process control systems.

A further object of the invention is to provide such methods and apparatus as facilitate configuring large or complex control systems

Still yet a further object of the invention is to provide such methods and apparatus as can be used in configuring a range of control systems, whether hierarchical or not, whether pertaining to process control or otherwise.

SUMMARY OF THE INVENTION

The foregoing objects are among those attained by the invention which provides, in one aspect, improved apparatus for configuring process, environmental, industrial and other control systems. Such apparatus employ "appearance" objects (or other data and/or programming constructs) defining the appearance of configurable system components in graphical editors or other views in which the components may be depicted. "Placeholder" objects (or other constructs) persist the location, size, color, or other aspects of appearance defined by an appearance object in displays, reports, depictions, presentations and other view (collectively, hereinafter, "views") in which the corresponding configurable component is actually depicted.

By way of example, a process control configuration apparatus according to this aspect of the invention uses "configurable" objects to define blocks, loops and other components of a process control system. Appearance objects provide (or reference) icons or representations indicating how the configurable objects are to be depicted, e.g., in a configuration editor. Placeholder objects are created for each configurable object that is placed in a configuration using that editor.

The placeholder objects identify the sizes, locations, colors, etc., of the icons used in the editor to represent the configurable objects.

Further aspects of the invention provide a configuration apparatus as described above in which the appearance objects identify labels or other textual information, e.g., configurable object names or types, for display with icons or other appearance indictors in the appearance objects. According to related aspects of the invention, those labels, as well as the icons themselves, can be specified using macros. Thus, for example, an appearance object can include macro strings, such as "$NAME", "$TYPE", "$ICON", that are replaced subsequent to configuration, e.g., with a configurable object name, type and icon, respectively.

The invention provides, in other aspects, apparatus as described above in which each configurable object has one or more parameters that identify the appearance of that object in views in which it may appear. The parameters may refer to appearance objects (or other constructs) as described above or they may contain appearance information (e.g., icons and textual identifiers) themselves.

The configurable objects of such an apparatus can be associated with one another in a hierarchical relationship, such that at least one such object is a descendant of another. Descendants, according to this aspect of the invention, inherit parameters from their ancestors. Accordingly, icons or other appearance information identified in a "parent" configuration object is passed on to its children. Inherited information may be overridden, according to aspects of the invention.

Still further aspects of the invention provide apparatus as described above comprising persistent documents that contain placeholder objects. Each persistent document may represent a specific configuration, e.g., created by a specific editor and displayed in accord with a selected view. Thus, for example, the configuration of a process control system may be represented in several documents, each edited by control algorithm diagram editor, covering different portions of the system.

In addition to placeholder objects, the persistent document may contain connector graphics that depict relationships between configurable objects. In an apparatus used for configuring process control systems, such a graphic may indicate, for example, that one configurable object, e.g., representing an analog input block, is a source for another configurable object, e.g., representing a PID controller. Such connector graphics can represent peer-to-peer relationships (such as source/sink relationships), in addition to hierarchical relationships (such as parent/child relationships).

Further aspects of the invention provide apparatus as described above for configuring process control systems. In such apparatus, configurable objects can, for example, represent entities within any of (i) a controlled process, (ii) the process control system, (iii) the apparatus for configuring the process control system, (iv) a level in a control level hierarchy, such as the aforementioned S88 standard. Such entities include, by way of non-limiting example, field devices, control processors, blocks, loops, compounds, historians, object type category, display placeholders, graphical display entities, and reports.

Still further aspects of the invention provide methods paralleling the apparatus described above.

These and other aspects of the invention are evident in the drawings, the claims, and in the detailed description that follows.

BRIEF DESCRIPTION OF THE DRAWINGS

A more complete understanding of the invention may be attained by reference to the drawings, in which:

FIG. 1 depicts a digital data processing environment of the type in which the invention is practiced;

FIG. 2 depicts a process control system of the type with which the invention is practiced;

FIG. 3 depicts control algorithm configurator components in a system according to the invention;

FIG. 4 depicts component interaction in a system according to the invention;

FIG. 5 depicts an IDA framework object model in a system according to the invention;

FIG. 6 depicts an object model notation used in this application;

FIG. 7 depicts a parameterized object model in a system according to the invention;

FIG. 8 depicts parameter group inheritance in a system according to the invention;

FIG. 9 depicts a parameterized object example in a system according to the invention;

FIG. 10 depicts the creation of a parameter list in a system according to the invention;

FIG. 11 depicts a parameter definition editor in a system according to the invention;

FIG. 12 is a parameter editor example in a system according to the invention;

FIG. 13 depicts object types in a system according to the invention;

FIG. 14 depicts an object type hierarchy in a system according to the invention;

FIG. 15 depicts the creation of new object types in a system according to the invention;

FIG. 16 is a type awareness example in a system according to the invention;

FIG. 17 depicts a connection object model in a system according to the invention;

FIG. 18 depicts a parameterized object override endpoint triad in a system according to the invention;

FIG. 19 depicts an object connection type object model in a system according to the invention;

FIG. 20 is an example of simultaneous parent/child object connectivity in a system according to the invention;

FIG. 21 depicts a parameter connection type object model in a system according to the invention;

FIG. 22 is an example of simultaneous source/sink parameter connectivity in a system according to the invention;

FIGS. 23-25 are parent/child connectivity examples in a system according to the invention;

FIG. 26 is a source/sink connectivity example in a system according to the invention;

FIG. 27 depicts an appearance object model in a system according to the invention;

FIG. 28 is an appearance definition example in a system according to the invention;

FIG. 29A depicts a placeholders object model in a system according to the invention;

FIG. 29B depicts a combined appearance and placeholder object model in a system according to the invention.

FIG. 30 depicts a MFC document/view architecture in a system according to the invention;

FIG. 31 depicts an IDA application class architecture in a system according to the invention;

FIG. 32 depicts an IDA document architecture in a system according to the invention;

FIG. 33 depicts IDA hierarchy classes in a system according to the invention;

FIG. 34 depicts IDA view classes in a system according to the invention;

FIG. 35 depicts IDA frame classes in a system according to the invention;

FIG. 36 depicts a sheet templates object model in a system according to the invention;

FIG. 37 depicts a sample use of macros in sheet template in a system according to the invention;

FIG. 38 depicts a sheet template editor in a system according to the invention;

FIG. 39 depicts an IDA report manager object model in a system according to the invention;

FIG. 40 depicts the application of filter rules to POC in a system according to the invention;

FIG. 41 depicts a filter editor in a system according to the invention;

FIG. 42 depicts a composite report template editor in a system according to the invention;

FIG. 43 depicts a report editor in a system according to the invention;

FIG. 44 depicts organizational folders in a system according to the invention;

FIG. 45 depicts version control basic concepts in a system according to the invention;

FIG. 46 depicts an object check out in a system according to the invention;

FIG. 47 depicts an check in a system according to the invention;

FIG. 48 depicts a revision editor in a system according to the invention;

FIG. 49 depicts a create revision dialog box in a system according to the invention;

FIG. 50 depicts parameterized object versions in a system according to the invention;

FIG. 51 depicts a version control object model in a system according to the invention;

FIG. 52 depicts a version history in a system according to the invention;

FIG. 53 depicts an object compare utility in a system according to the invention;

FIG. 54 depicts an historical archive with playback macro in a system according to the invention;

FIG. 55 depicts performing a macro playback in a system according to the invention;

FIG. 56 depicts a sample audit trail report in a system according to the invention;

FIG. 57 depicts an undo manager object model in a system according to the invention;

FIG. 58 depicts an users and security object model in a system according to the invention;

FIG. 59 is an users and groups example in a system according to the invention;

FIG. 60 is a process area and assignable objects example in a system according to the invention;

FIG. 61 depicts a IDA permissions hierarchy in a system according to the invention;

FIG. 62 depicts a switch group/user capability in a system according to the invention;

FIG. 63 depicts managing groups in a system according to the invention;

FIG. 64 depicts assigning users to groups in a system according to the invention;

FIG. 65 depicts groups, object types and permissions in a system according to the invention;

FIG. 66 depicts managing process areas in a system according to the invention;

FIG. 67 depicts groups and process area permissions in a system according to the invention;

FIG. 68 depicts a system tree view in a system according to the invention;

FIG. 69 depicts a block definition editor in a system according to the invention;

FIG. 70 depicts a block definition classes in a system according to the invention;

FIG. 71 depicts a simple loop in a system according to the invention;

FIG. 72 depicts a composite block definition in a system according to the invention;

FIG. 73 depicts a composite block in loop in a system according to the invention;

FIG. 74 depicts an expanded composite block in loop in a system according to the invention;

FIG. 75 depicts a block with connections in a system according to the invention;

FIG. 76 depicts the anatomy of a block placeholder in a system according to the invention;

FIG. 77 depicts a block connection dialog in a system according to the invention;

FIG. 78 depicts template/definition internal connections in a system according to the invention;

FIG. 79 depicts template/definition exposed connections in a system according to the invention;

FIG. 80 depicts a parameter property sheet in a system according to the invention;

FIG. 81 depicts a composite block property sheet in a system according to the invention;

FIG. 82 depicts a parameter formula builder in a system according to the invention;

FIG. 83 depicts control object derivations in a system according to the invention;

FIG. 84 depicts a block object model in a system according to the invention;

FIG. 85 depicts a modifier block object model in a system according to the invention;

FIG. 86 depicts a modifier block parameter override precedence in a system according to the invention;

FIG. 87 depicts a composite block definition object model in a system according to the invention;

FIG. 88 depicts a loop template object model in a system according to the invention;

FIG. 89 depicts a simple loop object model in a system according to the invention;

FIG. 90 depicts a composite block object model in a system according to the invention;

FIG. 91 depicts a template derived loop object model in a system according to the invention;

FIG. 92 depicts object placeholder derivations in a system according to the invention;

FIG. 93 depicts persistent document object derivations in a system according to the invention;

FIG. 94 depicts a PLB to ladder relationship in a system according to the invention;

FIG. 95 depicts a ladder editor view in a system according to the invention;

FIG. 96 depicts ladder objects in a system according to the invention;

FIG. 97 depicts persistent document objects; in a system according to the invention;

FIG. 98 depicts a PLB block model in a system according to the invention;

FIG. 99 depicts a block execution scheduler editor in a system according to the invention;

FIG. 100 depicts a station statistics dialog in a system according to the invention;

FIG. 101 depicts a block execution editor object model in a system according to the invention;

FIG. 102 depicts a tag list data entry screen in a system according to the invention;

FIG. 103 depicts a tag list import from ASCII file in a system according to the invention;

FIG. 104 depicts a tag list export to ASCII file in a system according to the invention;

FIG. 105 depicts a tag list import/export from database table in a system according to the invention;

FIG. 106 depicts a tag list object model in a system according to the invention;

FIG. 107 depicts download target selection in a system according to the invention;

FIG. 108 depicts a download manager document object in a system according to the invention;

FIG. 109 depicts a download services object model in a system according to the invention;

FIG. 110 is an historian assignment overview in a system according to the invention;

FIG. 111 depicts an individual compound assignment in a system according to the invention;

FIG. 112 depicts an historian object model in a system according to the invention;

FIG. 113 depicts an enclosure group view in a system according to the invention;

FIG. 114 depicts an en closure loading view and tag assignment dialog in a system according to the invention;

FIG. 115 depicts an enclosure input/output termination view in a system according to the invention;

FIG. 116 depicts an enclosure loading model in a system according to the invention;

FIG. 117 depicts an enclosure definition detail model in a system according to the invention;

FIG. 118 depicts persistent document objects in a system according to the invention;

FIG. 119 depicts an IDA main application architecture in a system according to the invention;

FIG. 120 depicts a typical IDA generic editor frame in a system according to the invention;

FIG. 121 depicts IDA & OLE compound documents in a system according to the invention.

DETAILED DESCRIPTION OF THE ILLUSTRATED EMBODIMENT

FIG. 1 depicts a digital data processing system of the type with which apparatus and methods according to the invention may be practiced. The illustrated system is particularly adapted for use in connection with process control, as discussed further below. However, those skilled in the art will appreciate that apparatus and methods according to the invention can be used in connection with other control systems. In this regard, processes 12A, 12B can represent any industrial, manufacturing, service, environmental or other process, device or system amenable to monitoring or control (hereinafter, collectively, "control").

The system of FIG. 1 includes a workstation 11 that is coupled to one or more controllers 10A, 10B on which reside process control systems for monitoring and/or controlling one or more processes 12A, 12B. These may represent independent processes or different aspects of the same or related processes. Moreover, the processes 12A, 12B may reside within a single plant, site or area, cell or unit or, conversely, they may dispersed among many plants, sites, areas, cell or units.

Workstation 11 represents an engineering workstation, personal computer, mainframe computer or other digital data processing device suitable for operation in accord with the methods described herein for purposes of modeling a control system and configuring controllers 10A, 10B or other control or controlled apparatus in accord with the teachings herein. In a preferred embodiment of the invention, workstation 11 is an engineering workstation or personal computer executing the Windows NT operating system. Though illustrated as being carried out on workstation 11, those skilled in the art will appreciate that the modeling and configuration functions described herein can be executed on suitably configured controllers 10A, 10B (e.g., those having sufficient processing power and interfaces to provide the graphical and other configuration functions described herein).

Server 16 represents an optional additional source of classes defining objects for modeling a control system and for configuring controllers 10A, 10B (or other control or controlled apparatus) in accord with the teachings herein. This can include, for example, a retail store, warehouse or other distribution point of CDROMs, diskettes or other magnetic medium on which such classes are stored. In a preferred embodiment, however, it represents a digital data processor that functions as a server, e.g., maintained by a manufacturer or other distributor, from which such classes can downloaded to workstation 11, e.g., as part of an e-commerce transaction, for configuration prior to downloading to controllers 10A, 10B.

Network 14 provides a communications medium permitting the downloading of control algorithms and other configuration information to controllers 10A, 10B, e.g., from workstation 11. It can also of provide a medium for uploading information from controllers 10A, 10B to those other digital data processors 11, 16. Still further, it can provide a medium for communications, real-time or otherwise, between the controllers 10A, 10B and other devices, e.g., workstation 11 and server 16. Though illustrated to represent a LAN, WAN, or global network (Internet), those skilled in the art will appreciate that element 14 may represent any medium or mechanism through which control algorithms and other information may be transported, electronically, physically or otherwise, to and from controllers 10A, 10B.

An exemplary control process 12A is illustrated in greater detail in FIG. 2. It shows a process including valve 18 that governs the rate of fluid flow to aeration tank 20 which, in turn, transfers the liquid to storage tank 22. Field devices, i.e., sensors 24 and 26, monitor the state of process 12A and, thereby, facilitate its control by process control system 28 operating on controller 10A. Thus, sensor 24 is disposed in or adjacent to tank 20 for measuring the temperature of fluid therein, while sensor 26 measures the flow of fluid from aeration tank 20 to storage tank 22.

FIG. 2 further illustrates a control algorithm 28 of the type that can be configured by methods and apparatus according to the invention. The algorithm 28 is exercised by controller 10A to control process 12A. The algorithm 28 includes blocks or other entities 29, 30, 32, that model field devices, control devices and other elements within process 12A and that monitor and/or control the states and interactions between those entities.

Entities 29, 30, 32 comprise software components which may include, by non-limiting example, source, intermediate or executable code, databases, of the type conventionally used in the art for operating controllers, field devices, control devices and other process control equipment. Referenced in this regard in the discussion below are software components, and process control systems in general, marketed as the I/A Series.RTM. systems (hereinafter, "IAS" or "I/A") available from the assignee hereof. Those skilled in the art will appreciate that methods and apparatus according to the invention can be used to model processes and configure control algorithms for use with other control systems, as well.

Described below is a system, alternately referred to as the IDA Control Algorithm Configurator, the Configurator, IDA, and the like, according to one embodiment of the invention for use modeling and configuring control processes. Referring to FIG. 3, the Configurator includes a Framework, a Database, a project manager and a set of editors. The Framework provides common resources, such as menus, toolbars, dialogs, and security services, used by the editors to manipulate, display and report configuration data stored in the IDA database. In one preferred practice of the invention, the IDA Control Algorithm Configurator and Framework are packaged as a single application. This software package can be installed on either a stand-alone PC, workstation (e.g., element 11 of FIG. 1) or other digital data processor, e.g., running Windows NT or any other suitable operating system.

The editors are used by the implementation creator to create and maintain standard control scheme definition objects distributed with the implementation and by users to create their own plant control schemes. The Project Manager allows the user to browse through the project configuration hierarchies and data. Interactions among the editors and the project manager/navigator are shown in FIG. 4.

The database forms part of an object oriented database management system (OODBMS), which may be any type commercially available in the marketplace. The database can be deployed in a client/server configuration with a single centralized database per plant servicing multiple clients, or otherwise. It resides on the workstation 11, e.g., or on a digital data processor coupled therewith.

Part 1 Framework Classes

1 IDA Framework Object Model

FIG. 5 presents the primary component parts of the overall IDA Framework object model. The model may be broken into two major areas: 1. Parameterized Objects. 2. Framework Services, which are provided in order to allow controlled access to those objects, and how they might be used to display, print and otherwise manipulate Parameterized Objects.

In the discussion that follows object classes and their various associations are represented in the manner shown in FIG. 6.

1.1 Objects and Parameters

Almost all objects in IDA are parameterized--i.e., their type is determined by the parameter set they support, and the data that these objects represent is contained within their associated parameters. Parameterized objects have the capability to inherit their parameter set from another Parameterized Object which acts as the definition for the new object. A Parameterized Object's definition is, itself, a Parameterized Object.

Using Parameters to define an object's type, and the data associated with it, provides the following capabilities:

Parameters represent data--they aren't compiled-in behavior.

Parameterized Objects support data inheritance--a Parameterized Object inherits its structure and default values from its defining object.

Any object can override the default value of various attributes of an associated Parameter. Referred to as parameter instantiation by exception, only the Parameter attributes that differ from their defaults are instantiated, and attached to the object.

Parameters associated with a Parameterized Object can also be changed by the application of a modifier object, effectively overriding the default value(s) of any matching Parameters.

A change to a Parameter in a Parameterized Object acting as a definition is reflected in all the Parameterized Objects that are derived from the defining Parameterized Object.

Parameterized Objects can extend their definition by adding additional Parameters.

Parameters are organized into groups, each group containing logically-related Parameters. Groups can be pre-defined and/or defined by the user.

Given the complex nature of Parameterized Objects and their parameter sets, a simple interface for the developer is provided in which it appears that a Parameterized Object consists of a self-contained, cohesive set of parameters when in reality, data inheritance, parameter overrides, and modifications are all acting together to determine final parameter values.

1.1.1 Object Model

The overall object model for Parameterized Objects, and Parameterized Object Collections is depicted in FIG. 7.

1.1.1.1 Parameterized Object

A Parameterized Object is a persistent object. The parameters associated with a Parameterized Object are both locally defined (as depicted in the object model) and inherited. The locally defined parameters are those defined by the Parameter Definition objects. The inherited parameters are those that are inherited through an association to another Parameterized Object typically serving as a definition.

A Parameterized Object has an ordered one-to-many association with the Parameter Definition object. This represents the set of locally defined parameters which "belong" to, and ultimately define, this object.

A Parameterized Object maintains a list of parameter overrides, in the form of Parameter Value and/or Parameter Override objects. Parameter Value objects are used to override the actual parameter value, and other important attributes such as high and low limits. Parameter Override objects are used to override all other editable parameter attributes. Only inherited parameters are overridden--locally defined parameters simply have the appropriate attribute value changed within the associated Parameter Definition.

A Parameterized Object has an association to another Parameterized Object from which it inherits parameters. It is a zero-or-one association, and is referred to as its Definition, or parent, Parameterized Object. If a Parameterized Object does not have a definition, then it is considered to be a root Parameterized Object. A root Parameterized Object defines all of its parameters, not relying on another object to inherit them from. If a Parameterized Object has a Definition Parameterized Object association, then the Parameterized Object is a derived Parameterized Object. The derived Parameterized Object gets its parameters by inheriting them from the defining object and by adding its own through local Parameter Definition associations.

A Parameterized Object maintains a list of other Parameterized Objects that inherit its parameters. A Parameterized Object whose parameters are inherited by other parameterized objects is referred to as a Definition, or parent, Parameterized Object. There is no limit as to the number of objects for which a Parameterized Object can act as a definition.

A Parameterized Object maintains an ordered list of Parameter Groups associated with it. This association gives the Parameterized Object an ordered set of labels to put on the tabs of the Parameterized Objects' property page tabs while being edited, or on tabs at the top of the Parameterized Object editor. Parameter Groups, in turn, maintain an association with zero or more Parameter Definitions.

The Parameter Definition order maintained by the Parameterized Object applies across all Parameter Groups that the parameters belong to. In other words, if parameter A comes before parameter B in the association between Parameterized Object and Parameter Definition, then A will preferably appear before B whenever the two parameters are displayed in the same group.

A Parameterized Object may be contained within a parameterized object collection object, which may be either a single- or multiple-collection instance of Parameterized Object collection. In turn, parameterized object collections may contain zero or more parameterized objects.

An instance of Parameterized Object may be associated with zero or more other Parameterized Objects that are referred to as Modifier Parameterized Objects. The Parameter Values in the Modifier Parameterized Objects are used to override the parameters of the Parameterized Object. An instance of a Parameterized Object can have zero or more of these modifiers to modify their parameters. If an object has more than one modifier, the modifications are made in the order that the modifier objects were applied, with the resulting overrides representing the accumulative effect of having applied all the modifications.

The Framework provides the method(s) necessary in order to determine the behavior of a modifier object. By default, the Parameter Values in the Modifier which aren't associated with any Parameter Definitions (local or inherited) of the object being modified are ignored. However, there may be circumstances under which a developer needs to have all Parameter Definitions applied to the object being modified, potentially adding new parameters to the object.

1.1.1.2 Parameterized Object Collection Classes

A Parameterized Object Collection is just that--a collection of one or more Parameterized Objects. Applications programs can add or delete elements from the collection, and iterate through it. Parameterized Object Collections have the ability to support multiple collections. For example, a loop could collect both blocks and connections, whereas a compound could have a separate collection of blocks for each control zone.

Consequently, the Parameterized Object Collection classes have been separated into two classes, each of which will be able to support many different collection types, which include Lists (insert after/before), Arrays (indexed access, and "null" locations), and possibly Maps (or Dictionaries). These collection classes are: 1. Single-Collection. Instances of this class contain a single collection, presented as a single ordered list of objects. 2. Multiple-Collection. Instances of this class contain multiple, named collections. These named collections are references to instances of collections (i.e., instances of the Contained Collections) which are managed by the Multiple-Collection instance. Each collection within a Multiple-Collection object can be a different type (for example, a list and an array).

1.1.1.3 Parameter Definition

The Parameter Definition object defines the values for the attributes in a parameter. Even though it is only directly associated with one Parameterized Object, it may indirectly belong to many other Parameterized Objects via the parameter inheritance mechanism described in the discussion on Parameterized Objects.

The parameter object consists of a set of attributes. The attribute set is compiled-in behavior, and the value of each attribute is changed as needed to satisfy the requirements of the associated Parameterized Object. A Parameter Definition does not exist alone, but only in the context of a Parameterized Object.

In the illustrated embodiment, the minimum attribute set for a Parameter Definition is as follows: Name The unique identifier for accessing the parameter within a Parameterized Object. There cannot be more than one parameter in a Parameterized Object with the same name. This is the name used when downloading the parameter to a target machine. Group A list of Parameter Groups which this parameter belongs to. Label An internationalizable string used to label the Parameter in the user interface. Data Specifies the data type of the Parameter. Integer, float, boolean, and Type string are examples of a data type. Depending on implementation, the length of the data can be either an attribute of the data itself or of the Parameter Definition. Can also be implemented via sub-classes of Parameter Definition. Behavior Specifies a set of behaviors the Parameter exhibits. Examples include whether the parameter could be edited or associated with another Parameter. This can be implemented as a bitmask. Help Specifies internationalizable help associated with the particular Parameter Definition. The help consists of both a verbose and terse version. The verbose version is used by the help system and the terse version is used for such things as short messages and tool tips. Edit Specifies a specific control type used to edit the value attribute Control associated with the Parameter Definition. This edit control type is Type used by any application editing this parameter, whether it is displayed in a property sheet, or in a spreadsheet format. Range Specifies a range of valid values for the Value attribute. Value Specifies the value of the Parameter. This value is type specific which is specified by the type attribute. Formula Provides a placeholder to contain the user-provided formula for Parameter Definitions which have their Value attribute determined by a formula. Format Specifies a C-printf type specification for displaying the value attribute.

The Parameter Definition object has a many-to-many association to the Parameter Group object. A Parameter Definition can belong to many groups, allowing the parameter to be displayed in multiple tabs on a Parameterized Object property sheet. The order of parameters within any Parameter Group is determined by the ordering maintained by the Parameterized Object.

The Parameter Definition object has a many-to-one association to the Parameterized Object. Although it may be inherited by several Parameterized Objects, a Parameter Definition belongs directly to (locally defined by) one and only one Parameterized Object. A Parameterized Object contains an ordered set of zero or more Parameter Definitions.

1.1.1.4 Parameter Value

An instance of the Parameter Value object is created whenever specific attributes of a Parameter Definition instance are overridden--namely, value, high range and low range. Any other attribute of a Parameter Definition which is overridden is specified by a Parameter Override object. It is important to note that a Parameter Value exists by exception only--in other words, it exists only if the associated Parameter Definition is overridden by a Parameterized Object located "down" the ancestral tree from the Parameterized Object where the Parameter Definition was originally defined. Overrides of a locally defined Parameter Definition simply replace the appropriate value within the Parameter Definition itself.

Parameter Value is associated with one, and only one, Parameter Definition, by name. Attributes of the same Parameter Definition, however, may be overridden by multiple Parameter Values when viewed in the context of the Parameterized Object hierarchy chain.

The final value of any parameter attribute is determined by traversing the Parameterized Object hierarchy back to the object's root, then sequentially applying overrides (and/or modifiers) appropriately going forward down the object's hierarchy chain.

Each Parameterized Object maintains a list of zero or more Parameter Value objects. This list represe