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