<<

USOO8127O60B2

(12) United States Patent (10) Patent No.: US 8,127,060 B2 Doll et al. (45) Date of Patent: Feb. 28, 2012

(54) METHODS AND APPARATUS FOR CONTROL 4,096,566 A 6, 1978 Borie et al. CONFIGURATION WITH CONTROL 4,276,593. A 6, 1981 Hansen 4,302,820 A 11/1981 Struger et al. OBJECTS THAT ARE FIELDBUS 4,312,068 A 1/1982 Goss et al. PROTOCOLAWARE 4.323,966 A 4, 1982 Whiteside et al. 4,347,563 A 8, 1982 Paredes et al. (75) Inventors: Benno Doll, Fellbach (DE); Vladimir 4,351,023 A 9, 1982 Richer 4,377,000 A 3, 1983 Staab Kostadinov, Sharon, MA (US); Keith E. 4.410,942 A 10/1983 Milligan et al. Eldridge, North Easton, MA (US) 4.413,314 A 11/1983 Slater et al. (73) Assignee: Invensys Systems, Inc., Foxboro, MA (Continued) (US) OTHER PUBLICATIONS (*) Notice: Subject to any disclaimer, the term of this patent is extended or adjusted under 35 U.S. Appl. No. 09/721,409, Venkatraman et al. U.S.C. 154(b) by 212 days. (Continued) (21) Appl. No.: 12/474,942 Primary Examiner — Ryan Stiglic (74) Attorney, Agent, or Firm — Edward Jarmolowicz (22) Filed: May 29, 2009 (57) ABSTRACT (65) Prior Publication Data The invention provides, in Some aspects, improved apparatus US 2010/030572O A1 Dec. 2, 2010 for configuring a control system. The apparatus includes a model made up of objects representing devices of Such a (51) Int. Cl. system, including, at least one device that defines and/or G06F I3/00 (2006.01) controls communications on at least a portion of a network G06F 15/16 (2006.01) within that system. That device is referred to, here, as a “bus (52) U.S. Cl...... 710/104; 700/86; 709/211 master” and the portion of the network is referred to as a (58) Field of Classification Search ...... 71 Of 104 “segment. The object (or objects) representing the bus mas See application file for complete search history. ter can include information defining timings, port assign ments and/or other aspects of the configuration of the seg (56) References Cited ment. A download service transfers configuration information from objects in the model to devices in the con U.S. PATENT DOCUMENTS trol system. This includes transferring to the bus master com 3,096,434 A 7/1963 King 3,404.264 A 10/1968 Kugler munications configuration information for the segment. A 3,665,172 A 5/1972 Spaargaren et al. download service according to this aspect of the invention 3,701,280 A 10, 1972 Stroman generates—e.g., for logging by a change tracking System— 3,802,590 A 4, 1974 Culver indicia of the configuration information transferred to the bus 3,810,119 A 5, 1974 Zieve et al. master. The download service can likewise generate for log 3,825,905 A 7/1974 Allen, Jr. 3,959,772 A 5, 1976 Wakasa et al. ging (by the change tracking system) information transferred 4,006.464 A 2f1977 Landell from the model to other devices in control system. RE29,383 E 9, 1977 Gallatin et al. 4,058,975 A 11, 1977 et al. 14 Claims, 57 Drawing Sheets

18

Change Tracking System 10A (CTS) Network controller

-1 Os

r controlle Workstation

Process Control System US 8.127,060 B2 Page 2

U.S. PATENT DOCUMENTS 5,140,677 8, 1992 Fleming et al. 5,146,589 9, 1992 Peet, Jr. et al. 4,423,486 12, 1983 Berner 5,150,289 9, 1992 Badavas 4,428,044 1, 1984 Liron 5,151,930 9, 1992 Hagl 4,435,762 3, 1984 Milligan et al. 5,151,978 9, 1992 Bronikowski et al. 4,443,861 4, 1984 Slater 5,151,981 9, 1992 Westcott et al. 4,456,997 6, 1984 Spitza 5,159,673 10, 1992 Sackmann et al. 4.466,098 8, 1984 Southard 5,162,986 11, 1992 Graber et al. 4,471.457 9, 1984 Videki, II 5,163,055 11, 1992 Lee et al. 4,488,226 12, 1984 Wagner, Jr. et al. 5,164,894 11, 1992 Cunningham-Reid et al. 4493,027 1, 1985 Katz et al. 5,166,685 11, 1992 Campbell, Jr. et al. 4,530,234 7, 1985 Cullick et al. 5,167,009 11, 1992 Skeirik 4,609.995 9, 1986 Hasebe 5,168.276 12, 1992 Huston et al. 4,612,620 9, 1986 Davis et al. 5,168,441 12, 1992 Onarheim et al. 4,615,001 9, 1986 Hudgins, Jr. 5,170,340 12, 1992 Prokop et al. 4,628,437 12, 1986 Poschmann et al. 5,175,698 12, 1992 Barbanell 4,633,217 12, 1986 Akano 5,175,829 12, 1992 Stumpfet al. 4,639,852 1, 1987 Motomiya 5, 181978 1, 1993 Ochiai 4,641,269 2, 1987 Japenga et al. 5, 193,175 3, 1993 Cutts, Jr. et al. 4,641.276 2, 1987 Dunki-Jacobs 5,197,114 3, 1993 Skeirik 4,648,064 3, 1987 Morley 5,202,961 4, 1993 Mills et al. 4,649,479 3, 1987 Advani et al. 5,212,784 5, 1993 Sparks 4,663,704 5, 1987 et al. 5,218,187 6, 1993 Koenck et al. 4,672,530 6, 1987 Schuss 5,224,203 6, 1993 Skeirik 4.675,812 6, 1987 Capowski et al. 5,233,615 8, 1993 Goetz 4,682,158 7, 1987 Ito et al. 5,245,704 9, 1993 Weber et al. 4,682,304 7, 1987 Tierney 5,249,274 9, 1993 Sztipanovits et al. 4,683,530 7, 1987 Quatse 5,251,125 10, 1993 Karnowski et al. 4,692,859 9, 1987 Ott 5,255,367 10, 1993 Bruckert et al. 4,692.918 9, 1987 Elliott et al. 5,257,208 10, 1993 Brown et al. 4,703,421 10, 1987 Abrant et al. 5,258,999 11, 1993 Wernimont et al. 4,704,676 11, 1987 Flanagan et al. 5,271,013 12, 1993 Gleeson 4,709,325 11, 1987 Yajima 5,276,901 1, 1994 Howell et al. 4,719,593 1, 1988 Threewitt et al. 5,283,729 2, 1994 Lloyd 4,727,477 2, 1988 Gavril 5,289,365 2, 1994 Caldwell et al. 4,733,366 3, 1988 Deyesso et al. 5,291,390 3, 1994 Satou 4,740,955 4, 1988 Litterer et al. 5,295,258 3, 1994 Jewett et al. 4,742,349 5, 1988 Miesterfeld et al. 5,295,263 3, 1994 Kojima et al. 4,750,109 6, 1988 Kita 5,297,143 3, 1994 Fridrich et al. 4,770,841 9, 1988 Haley et al. 5,301,346 4, 1994 Notarianni et al. 4,790,762 12, 1988 Harms et al. 5,302,952 4, 1994 Campbell, Jr. et al. 4,800,512 1, 1989 Busch 5,303,227 4, 1994 Herold et al. 4,805,107 2, 1989 Kieckhafer et al. 5,303.375 4, 1994 Collins et al. 4,806,905 2, 1989 McGowan, III et al. 5,303,392 4, 1994 Carney et al. 4,816,996 3, 1989 Hill et al. 5,307,346 4, 1994 Fieldhouse 4,817,094 3, 1989 Lebizay et al. 5,307,372 4, 1994 Sawyer et al. 4,839,854 6, 1989 Sakami et al. 5,307.463 4, 1994 Hyatt et al. 4,872, 106 10, 1989 Slater 5,309,556 5, 1994 Sismilich 4.885,707 12, 1989 Nichol et al. 5,310,998 5, 1994 Okuno 4,896,290 1, 1990 Rhodes et al. 5,317,726 5, 1994 Horst 4,897,777 1, 1990 Janke et al. 5,325,339 6, 1994 Yost et al. RE33,162 2, 1990 Yoshida et al. 5,327,144 T/1994 Stilp et al. 4,910,658 3, 1990 Dudash et al. 5,335, 186 8, 1994 Tarrant 4,910,691 3, 1990 Skeirik 5,335,221 8, 1994 Snowbarger et al. 4,918,690 4, 1990 Markkula, Jr. et al. 5,339,362 8, 1994 Harris 4,924.462 5, 1990 Sojka 5,339,680 8, 1994 Bronkal et al. 4,926, 158 5, 1990 Zeigler 5,347, 181 9, 1994 Ashby et al. 4,934,196 6, 1990 Romano 5,349,343 9, 1994 Oliver 4,940,974 7, 1990 Sojka 5,349,678 9, 1994 Morris et al. 4,958,277 9, 1990 Hill et al. 5,352,033 10, 1994 Gresham et al. 4.959,774 9, 1990 Davis 5,353,217 10, 1994 Berghs et al. 4,965,717 10, 1990 Cutts, Jr. et al. 5,359,721 10, 1994 Kempfet al. 4,965,742 10, 1990 Skeirik 5,361,198 11, 1994 Harmon et al. 4,965,880 10, 1990 Petitjean 5,367,640 11, 1994 Hamilton et al. 4,991,076 2, 1991 Zifferer et al. 5,371,895 12, 1994 Bristol 4,991, 170 2, 1991 Kem 5,377,315 12, 1994 Leggett 5,008,805 4, 1991 Fiebig et al. 5,381.529 1/1995 Matsushima 5,050,165 9, 1991 Yoshioka et al. 5,384,910 1/1995 Torres 5,068,778 11, 1991 Kosem et al. 5,386,373 1/1995 et al. 5,089,927 2, 1992 Bulan et al. 1/1995 5,089,974 2, 1992 Demeyer et al. 5,386,417 Daugherty et al. 5,109,692 5, 1992 Fitzgerald 5,390,321 2, 1995 Proesel 5,121,318 6, 1992 Lipner et al. 5,392.280 2, 1995 Zheng 5, 122,948 6, 1992 Zapolin 5,392,389 2, 1995 Fleming 5,124,908 6, 1992 Broadbent 5,394,522 2, 1995 Sanchez-Frank et al. 5,129,087 7, 1992 W11 5,398,331 3, 1995 Huang et al. 5,131,092 7, 1992 Sackmann et al. 5,400,140 3, 1995 Johnston 5,134,574 7, 1992 Beaverstock et al. 5,405,779 4, 1995 McCabe et al. 5,136,704 8, 1992 Danielsen et al. 5,408,603 4, 1995 Van de Lavoir et al. 5,138,708 8, 1992 Vosbury 5,410,141 4, 1995 Koenck et al. US 8.127,060 B2 Page 3

5,410,492 4, 1995 Gross et al. 5,548,528 8, 1996 Keeler et al. 5,410,717 4, 1995 Floro 5,549,137 8, 1996 Lenz et al. 5,420,977 5, 1995 Sztipanovits et al. 5,550,980 8, 1996 Pascucci et al. 5,421,017 5, 1995 Scholz et al. 5,551,047 8, 1996 Mori et al. 5,422,816 6, 1995 Sprague et al. 5,555,213 9, 1996 DeLong 5.426,732 6, 1995 Boies et al. 5,555,416 9, 1996 Owens et al. 5,428,734 6, 1995 Haynes et al. 5,555.437 9, 1996 Packer 5,428,769 6, 1995 Glaser et al. 5,555,510 9, 1996 Verseput et al. 5,428,781 6, 1995 Duault et al. 5,557.559 9, 1996 Rhodes 5.432,705 7, 1995 Severt et al. 5,559,691 9, 1996 Monta et al. 5.432,711 7, 1995 Jackson et al. 5,559,963 9, 1996 Gregg et al. 5.434,952 7, 1995 Yen et al. 5,561,770 10, 1996 de Bruijn et al. 5.434,997 7, 1995 Landry et al. 5,563,400 10, 1996 Le Roux 5.437,007 7, 1995 Bailey et al. 5,564,055 10, 1996 ASnaashari et al. 5.440,237 8, 1995 Brown et al. 5,566,320 10, 1996 Hubert 5,442,639 8, 1995 Crowder et al. 5,568,378 10, 1996 Wojsznis 5,442,791 8, 1995 Wrabetz et al. 5,570,300 10, 1996 et al. 5,444,851 8, 1995 Woest 5,572,643 11, 1996 Judson 5,444,861 8, 1995 Adamec et al. 5,572,673 11, 1996 Shurts 5,450,403 9, 1995 Ichii et al. 5,576.946 11, 1996 Bender et al. 5,450.425 9, 1995 Gunn et al. 5,579.220 11, 1996 Barthel et al. 5,450,764 9, 1995 Johnston 5,579,487 11, 1996 Meyerson et al. 5,451,923 9, 1995 Seberger et al. 5,581,760 12, 1996 Atkinson et al. 5,451.939 9, 1995 Price 5,586,066 12, 1996 White et al. 5,452,201 9, 1995 Pieronek et al. 5,586, 112 12, 1996 Tabata 5.453,933 9, 1995 et al. 5,586,156 12, 1996 Gaubatz 5.457,797 10, 1995 Butterworth et al. 5,586,329 12, 1996 Knudsen et al. 5,459,825 10, 1995 Anderson et al. 5,586,330 12, 1996 Knudsen et al. 5,459,839 10, 1995 Swarts et al. 5,587,899 12, 1996 Ho et al. 5,461,611 10, 1995 Drake, Jr. et al. 5,594,858 1/1997 Blevins 5,461,710 10, 1995 Bloomfield et al. 5,594,899 1/1997 Knudsen et al. 5,463,735 10, 1995 Pascucci et al. 5,596,331 1/1997 Bonaffini et al. 5,467,264 11, 1995 Rauch et al. 5,596,752 1/1997 Knudsen et al. 5,469,150 11, 1995 Sitte 5,598,536 1/1997 Slaughter, III et al. 5,469,570 11, 1995 Shibata 5,598,566 1/1997 Pascucci et al. 5,475,856 12, 1995 Kogge 5,600,845 2, 1997 Gilson 5,481,715 1, 1996 Hamilton et al. 5,602,749 2, 1997 Vosburgh 5,481,718 1, 1996 Ryu et al. 5,604.737 2, 1997 Iwami et al. 5,481,741 1, 1996 McKaskle et al. 5,604.871 2, 1997 Pecone 5483,660 1, 1996 Yishay et al. 5,608,607 3, 1997 Dittmer 5,485.617 1, 1996 Stutz et al. 5,608,608 3, 1997 Flint et al. 5,485,620 1, 1996 Sadre et al. 5,611,057 3, 1997 Pecone et al. 5.490.276 2, 1996 Doli, Jr. et al. 5,613,148 3, 1997 Bezviner et al. 5,491.625 2, 1996 Pressmall et al. 5,613,164 3, 1997 DiAngelo et al. 5,491,791 2, 1996 Glowny et al. 5,613,190 3, 1997 Hylton 5,493,534 2, 1996 Mok 5,617,540 4, 1997 Civanlar et al. 5.499,023 3, 1996 Goldschmidt 5,621,871 4, 1997 Jaremko et al. 5.499.365 3, 1996 Anderson et al. 5,621,890 4, 1997 Notarianni et al. 5.499.371 3, 1996 Henninger et al. 5,623,592 4, 1997 Carlson et al. 5,500.934 3, 1996 Austin et al. 5,623,670 4, 1997 Bohannon et al. 5,501,608 3, 1996 Scheer et al. 5,627,979 5, 1997 Chang et al. 5,504,672 4, 1996 Hardiman et al. 5,629,872 5, 1997 Gross et al. 5,504.895 4, 1996 Kurosawa et al. 5,629,949 5, 1997 Zook 5,504,902 4, 1996 McGrath et al. 5,630,056 5, 1997 Horvath et al. 5,509,811 4, 1996 Homic 5,630, 152 5, 1997 DeLuca et al. 5,513,095 4, 1996 Pajonk 5,633,811 5, 1997 Canada et al. 5,513,192 4, 1996 Janku et al. 5,642,259 6, 1997 Ma 5,513,354 4, 1996 Dwork et al. 5,642,511 6, 1997 Chow et al. 5,517,645 5, 1996 Stutz et al. 5,648,768 7/1997 Bouve 5,517,655 5, 1996 Collins et al. 5,649,121 7/1997 Budman et al. 5,519,605 5, 1996 Cawlfield 5,655,092 8, 1997 Ojala 5,519,701 5, 1996 Colmant et al. 5,659,680 8, 1997 Cunningham et al. 5,522,044 5, 1996 Pascucci et al. 5,659,727 8, 1997 Velissaropoulos et al. 5,526,287 6, 1996 French 5,664,101 9, 1997 Picache 5,526,353 6, 1996 Henley et al. 5,664,168 9, 1997 Yishay et al. 5,530,377 6, 1996 Walls 5,671,374 9, 1997 Postman et al. 5,530,643 6, 1996 Hodorowski 5,671,436 9, 1997 Morris et al. 5,530,868 6, 1996 Record et al. 5,673.401 9, 1997 Volk et al. 5,531,328 T. 1996 Rochelo et al. 5,676,141 10, 1997 Hollub 5,534,912 T. 1996 Kostreski 5,680.404 10, 1997 Gray 5.535.425 T. 1996 Watanabe 5,680,409 10, 1997 Qin et al. 5,537,548 T. 1996 Fin et al. 5,682,317 10, 1997 Keeler et al. 5,539,638 T. 1996 Keeler et al. 5,682,476 10, 1997 Tapperson et al. 5,539,909 T. 1996 Tanaka et al. 5,687,316 11/1997 Graziano et al. 5,541,810 T. 1996 Donhauser et al. 5,691,897 11/1997 Brown et al. 5,542,039 T. 1996 Brinson et al. 5,700,090 12, 1997 Eryurek 5,544,008 8, 1996 Dimmick et al. 5,701.414 12, 1997 Cheng et al. 5,544,073 8, 1996 Piety et al. 5,701,484 12, 1997 Artsy 5,544,321 8, 1996 Theimer et al. 5,704,011 12, 1997 Hansen et al. US 8.127,060 B2 Page 4

5,706,502 1, 1998 Foley et al. 5,835,704 11, 1998 Li et al. 5,708,709 1, 1998 Rose 5,835,712 11, 1998 DuFresne 5,708,779 1, 1998 Graziano et al. 5,835,724 11, 1998 5,713,045 1, 1998 Berdahl 5,835,789 11, 1998 Ueda et al. 5,715, 178 2, 1998 Scarola et al. 5,838,563 11, 1998 Dove et al. 5,716,221 2, 1998 Kantner 5,838,910 11, 1998 Domenikos et al. 5,717,880 2, 1998 Imai et al. 5,838,920 11, 1998 Rosborough 5,717,925 2, 1998 Harper et al. 5,838,969 11, 1998 Jacklin et al. 5,719,761 2, 1998 Gatti et al. 5,839,094 11, 1998 French 5,724,025 3, 1998 Tavori 5,841,360 11, 1998 Binder 5,726,911 3, 1998 Canada et al. 5,841,654 11, 1998 Verissimo et al. 5,726,912 3, 1998 Krall, Jr. et al. 5,841,963 11, 1998 Nakamikawa et al. 5,727, 128 3, 1998 Morrison 5,841,991 11, 1998 5,732,074 3, 1998 Spaur et al. 5,844,601 12, 1998 McPheely et al. 5,732.218 3, 1998 Bland et al. 5,844,796 12, 1998 Araki 5,734.902 3, 1998 Atkins et al. 5,844,804 12, 1998 Schussler 5,737,529 4, 1998 Dolin, Jr. et al. 5,845,078 12, 1998 Tezuka et al. 5,740.429 4, 1998 Wang et al. 5,845,230 12, 1998 Lamberson 5,740,441 4, 1998 Yellin et al. 5,847,957 12, 1998 Cohen et al. 5,742,596 4, 1998 Baratz et al. 5,848.274 12, 1998 Hamby et al. 5,742,762 4, 1998 Scholl et al. 5,848,393 12, 1998 Goodridge et al. 5,745,049 4, 1998 Akiyama et al. 5,854,750 12, 1998 Phillips et al. 5,746,511 5, 1998 Eryurek et al. 5,854.944 12, 1998 Catherwood et al. 5,748.467 5, 1998 Qin et al. 5,859,966 1/1999 Hayman et al. 5,748,896 5, 1998 Daly et al. 5,862,052 1/1999 Nixon et al. 5,748,912 5, 1998 Lee 5,864,773 1/1999 Barna et al. 5,751,574 5, 1998 Loebig 5,867,704 2, 1999 Tanaka et al. 5,752.007 5, 1998 Morrison 5,872,973 2, 1999 Mitchell et al. 5,752,008 5, 1998 Bowling 5,872,992 2, 1999 Tietjen et al. 5,752,246 5, 1998 Rogers et al. 5,873,089 2, 1999 Regache 5,754,189 5, 1998 Doi et al. 5,874,990 2, 1999 Kato 5,754,772 5, 1998 Leaf 5,875.430 2, 1999 Koether 5,754,830 5, 1998 Butts et al. 5,876,122 3, 1999 Eryurek 5,757,925 5, 1998 Faybishenko 5,878.415 3, 1999 Olds 5,758,073 5, 1998 Liang et al. 5,880,775 3, 1999 5,758,075 5, 1998 Graziano et al. 5,884,014 3, 1999 Huttenlocher et al. 5,761,033 6, 1998 Wilhelm 5,903455 5, 1999 Sharpe, Jr. etal. 5,761,090 6, 1998 Gross et al. 5,903,894 5, 1999 Reneris 5,761405 6, 1998 Tadamura et al. 5,905,248 5, 1999 Russell et al. 5,761421 6, 1998 van Hoffet al. 5,905,963 5, 1999 Lysejko 5,761,477 6, 1998 Wahlbe et al. 5,907,675 5, 1999 Aahlad 5,761,499 6, 1998 Sonderegger 5,909,586 6, 1999 Anderson 5,761,518 6, 1998 Boehling et al. 5,917,822 6, 1999 Lyles et al. 5,764,906 6, 1998 Edelstein et al. 5,917,840 6, 1999 Cheney et al. 5,768,119 6, 1998 Havekost et al. 5,919,247 7, 1999 Van Hoffet al. 5,768,510 6, 1998 Gish 5,920.479 7, 1999 Sojoodi et al. 5,774,378 6, 1998 Yang 5,922,050 7, 1999 Madany 5,774,670 6, 1998 Montulli 5,927,398 7, 1999 Maciulewicz 5,777,874 7, 1998 Flood et al. 5,928,345 7, 1999 Tetzlaffet al. 5,778,368 7, 1998 Hogan et al. 5,930,768 7, 1999 Hooban 5,784,557 7, 1998 Oprescu 5,935,242 8, 1999 Madany et al. 5,786,119 7, 1998 Sorriero et al. 5,935,249 8, 1999 Stern et al. 5,787,247 7, 1998 Norin et al. 5,940,294 8, 1999 Dove 5,787,272 7, 1998 Gupta et al. 5,940,839 8, 1999 Chen et al. 5,787,280 7, 1998 Joseph et al. 5,946,487 8, 1999 Dangelo 5,790,791 8, 1998 Chong et al. 5,950,006 9, 1999 Crater et al. 5,793,963 8, 1998 Tapperson et al. 5,950,172 9, 1999 Klingman 5,794,071 8, 1998 Watanabe et al. 5,956,484 9, 1999 Rosenberg et al. 5,796,602 8, 1998 Wellan et al. 5,956.487 9, 1999 Venkatraman et al. 5,797,038 8, 1998 Crawford et al. 5,956,716 9, 1999 Kenner et al. 5,801,770 9, 1998 Paffet al. 5,959.487 9, 1999 Kawamura 5,801.942 9, 1998 Nixon et al. 5,960,205 9, 1999 Mao et al. 5,802,389 9, 1998 McNutt 5,960,214 9, 1999 Sharpe, Jr. etal. 5,805,153 9, 1998 Nielsen 5,966,304 10, 1999 Cook et al. 5,805,442 9, 1998 Crater et al. 5,969,967 10, 1999 Aahlad et al. 5,805,889 9, 1998 Van De Vanter 5,970.430 10, 1999 Burns et al. 5,805,922 9, 1998 Sim et al. 5,974,497 10, 1999 Teshome 5,809,247 9, 1998 Richardson et al. 5,975.737 11, 1999 Crater et al. 5,812,394 9, 1998 Lewis et al. 5,978,578 11, 1999 AZarya et al. 5,815, 152 9, 1998 Collier et al. 5,978.933 11, 1999 Wyld et al. 5,815,659 9, 1998 Umetsu et al. 5,980,078 11, 1999 Krivoshein et al. 5,815,710 9, 1998 Martin et al. 5,980,090 11, 1999 Royal, Jr. et al. 5,822.220 10, 1998 Baines 5,982,362 11, 1999 Crater et al. 5,828,567 10, 1998 Eryurek et al. 5,982,762 11, 1999 Anzai et al. 5,828,851 10, 1998 Nixon et al. 5,987,506 11, 1999 Carter et al. 5,828,882 10, 1998 Hinckley 5.988,852 11, 1999 Nakanishi 5,831,669 11, 1998 Adrain 5,994,998 11, 1999 Fisher et al. 5,832,268 11, 1998 Anderson et al. 5,995,916 11, 1999 Nixon et al. 5,832,418 11, 1998 Meyer 6,002, 104 12, 1999 Hsu US 8.127,060 B2 Page 5

6,006, 164 12, 1999 McCarty et al. 6,201.996 3, 2001 Crater et al. 6,006,171 12, 1999 Vines et al. 6,212,440 4, 2001 Suzuki 6,008,985 12, 1999 Lake et al. 6,212,575 4, 2001 Cleron et al. 6,009, 103 12, 1999 Woundy 6.212,608 4, 2001 Bak 6,014,591 1, 2000 Ikeda 6,216,158 4, 2001 Luo et al. 6,014.612 1, 2000 Larson et al. 6,218,930 4, 2001 Katzenberg et al. 6,016,515 1, 2000 Shaw et al. 6,219,708 4, 2001 Martenson 6,018,627 1, 2000 Iyengar et al. 6,226.783 5/2001 Limondin et al. 6,018,816 1, 2000 Tateyama 6,236,909 5/2001 Colson et al. 6,026,336 2, 2000 Sakurai et al. 6,246,748 6, 2001 Yano 6,026,352 2, 2000 Burns et al. 6,260,187 T/2001 Cirne 6,032,151 2, 2000 Arnold et al. 6,263,487 T/2001 Stripfet al. 6,032,208 2, 2000 Nixon et al. 6,266,716 T/2001 Wilson et al. HOO1845 3, 2000 Kelly 6,266,724 T/2001 Harari et al. 6,033,257 3, 2000 Lake et al. 6,268,789 T/2001 Diamant et al. 6,035.264 3, 2000 Donaldson et al. 6,269.473 T/2001 Freed et al. 6,038,271 3, 2000 Olaker et al. 6,272.529 8, 2001 Lum 6,038,486 3, 2000 Saitoh et al. 6,272.556 8, 2001 Gish 6,044,305 3, 2000 Larson et al. 6,282.454 8, 2001 Papadopoulos et al. 6,047.222 4, 2000 Burns et al. 6,282,455 8, 2001 Engdahl 6,049,578 4, 2000 Senechal et al. 6,285,966 9, 2001 Brown et al. 6,049,775 4, 2000 Gertner et al. 6,289,299 9, 2001 Daniel, Jr. et al. 6,052,629 4, 2000 Leatherman et al. 6,295,356 9, 2001 De Nicolo 6,055,633 4, 2000 Schrier et al. 6,295,513 9, 2001 Thackston 6,061,603 5, 2000 Papadopoulos et al. 6,298,377 10, 2001 Hartikainen et al. 6,070, 186 5, 2000 Nishio 6,308,317 10, 2001 Wilkinson et al. 6,070,250 5, 2000 Yeager et al. 6,311,101 10, 2001 Kastner 6,073,109 6, 2000 Flores et al. 6,314448 11, 2001 Conner et al. 6,075,863 6, 2000 Krishnan et al. 6,314.464 11, 2001 Murata et al. 6,076,124 6, 2000 Korowitz et al. 6,317,701 11, 2001 Pyotsia et al. 6,078,320 6, 2000 Dove et al. 6,324,607 11, 2001 Korowitz et al. 6,078,848 6, 2000 Bernstein et al. 6,327,511 12, 2001 Naismith et al. 6,080.207 6, 2000 Kroening et al. 6,332,163 12, 2001 Bowman-Amuah 6,085,120 T/2000 Schwerdtfeger et al. 6,334,161 12, 2001 Suzuki et al. 6,088.665 T/2000 Burns et al. 6,336,142 1, 2002 Kato et al. 6,094,600 T/2000 Sharpe, Jr. etal. 6,345,295 2, 2002 Beardsley et al. 6,094,655 T 2000 Rogers et al. 6,345.382 22002 Hughes 6,094,684 T/2000 Pallmann 6,348,874 2, 2002 Cole et al. 6,095,674 8, 2000 Verissimo et al. 6,349,274 2, 2002 Kay et al. 6,097,761 8, 2000 Buhring et al. 6,349.287 2, 2002 Hayashi 6,098,116 8, 2000 Nixon et al. 6,353,859 3, 2002 McKeehan et al. 6,104.391 8, 2000 Johnston, Jr. et al. 6,353,860 3, 2002 Hare et al. 6,104,875 8, 2000 Gallagher et al. 6,360,091 3, 2002 Schellinger et al. 6,105,132 8, 2000 Fritch et al. 6,366,300 4, 2002 Ohara et al. 6,108,662 8, 2000 Hoskins et al. 6,370,448 4, 2002 Eryurek 6,112,020 8, 2000 Wright 6,370,573 4, 2002 Bowman-Amuah 6,112,246 8, 2000 Horbal et al. 6,373,841 4, 2002 Goh et al. 6,115,468 9, 2000 De Nicolo 6,377,543 4, 2002 Grover et al. 6,115,744 9, 2000 Robins et al. 6,377,859 4, 2002 Brown et al. 6,129,449 10, 2000 McCain et al. 6,382,226 5/2002 Larson et al. 6,129,724 10, 2000 Fleischman et al. 6,393,050 5/2002 Liu 6,131,067 10, 2000 Girerd et al. 6.405,099 6, 2002 Nagai et al. 6,133,914 10, 2000 Rogers et al. 6.405,210 6, 2002 Doyle et al. 6,134,559 10, 2000 Brumme et al. 6,412,070 6, 2002 Van Dyke et al. 6,138,140 10, 2000 Yokote 6,418,499 T/2002 Korowitz et al. 6,138,174 10, 2000 Keeley 6.424,883 T/2002 Hosokawa et al. 6,139,177 10, 2000 Venkatraman et al. 6,429,885 8, 2002 Saib et al. 6,140,911 10, 2000 Fisher et al. 6,430,564 8, 2002 Judge et al. 6,141,794 10, 2000 Dice et al. 6,434,594 8, 2002 Wesemann 6,148,346 11, 2000 Hanson 6,438, 182 8, 2002 Olaker et al. 6,148,391 11, 2000 Petrick 6,442,442 8, 2002 Weinhofer 6,151,625 11, 2000 Swales et al. 6,445,962 9, 2002 Blevins et al. 6,154,875 11, 2000 Tanaka et al. 6,449,624 9, 2002 Hammack et al. 6,157,864 12, 2000 Schwenke et al. 6,449,715 9, 2002 Krivoshein 6, 160,484 12, 2000 Spahl et al. 6,480,903 11, 2002 Voutaz et al. 6,167.253 12, 2000 Farris et al. 6,480,955 11, 2002 DeKoning et al. 6,167.464 12, 2000 Kretschmann 6,487.214 11, 2002 Bachar 6,170,007 1, 2001 Venkatraman et al. 6,487,558 11, 2002 Hitchcock 6,173,414 1, 2001 Zumkehr et al. 6,493.405 12, 2002 Olaker et al. 6,175,556 1, 2001 Allen, Jr. et al. 6,496,892 12, 2002 Lake et al. 6,176.421 1, 2001 Royal, Jr. et al. 6,499,048 12, 2002 Williams 6,183,289 2, 2001 Lake et al. 6,501,995 12, 2002 Kinney et al. 6,185,611 2, 2001 Waldo et al. 6,510,352 1, 2003 Badavas et al. 6,192.281 2, 2001 Brown et al. 6,526,455 2, 2003 Kamimura 6, 195,591 2, 2001 Nixon et al. 6,526,516 2, 2003 Ishikawa et al. 6, 195,694 2, 2001 Chen et al. 6,532,531 3, 2003 O'Connor et al. 6, 195,774 2, 2001 Jacobson 6,557,056 4/2003 Lanteigne et al. 6,199,068 3, 2001 Carpenter 6,563,420 5/2003 Brown et al. 6, 199,195 3, 2001 Goodwin et al. 6,574,515 6, 2003 Kirkpatricket al. US 8.127,060 B2 Page 6

6,574,694 B1 6/2003 Chen et al. 2001/0034777 A1 10, 2001 Venkatraman et al. 6,594,692 B1 7/2003 Reisman 2001/0034778 A1 10, 2001 Venkatraman et al. 6,598.224 B1 7/2003 Maeda et al. 2001/0034779 A1 10, 2001 Venkatraman et al. 6,609,147 B1 8/2003 Matsuda et al. 2001/0034780 A1 10, 2001 Venkatraman et al. 6,612,022 B 1 9/2003 et al. 2001/0034781 A1 10, 2001 Venkatraman et al. 6,618,754 B1 9/2003 Gosling 2001/0037489 A1 1 1/2001 Stripfet al. 6,622,147 B1 9/2003 Smiga et al. 2001/004483.6 A1 11/2001 Venkatraman et al. 6,636,900 B2 10/2003 Abdelnur 2001/005.2109 A1 12/2001 Nagashima et al. 6,640,308 B1 10/2003 Keyghobad et al. 2002fOO 13629 A1 1/2002 Nixon et al. 6,647.495 B1 1 1/2003 Takeuchi et al. 2002/00498.65 A1 4/2002 Charnell et al. 6,654,353 B1 1 1/2003 Tokura et al. 2002/0067370 A1 6/2002 Forney et al. 6,671,763 B1 12/2003 Korowitz et al. 2002/0093980 A1 7, 2002 Trebes 6,675, 193 B1 1/2004 Slavin et al. 2002/013363.6 A1 9, 2002 Venkatraman et al. 6,687,698 B1 2/2004 Nixon et al. 2002fO15O156 A1 10, 2002 Calvin 6,700,869 B1 3/2004 Falco et al. 2002fO165848 A1 11/2002 Rautenbach et al. 6,701.284 B1 3/2004 Huntley et al. 2002/0194393 A1 12/2002 Hrischuk et al. 6,718,215 B2 4/2004 Friedrich et al. 2002fO198920 A1 12/2002 Resnicket al. 6,718,533 B1 4/2004 Schneider et al. 2003/000925.0 A1 1/2003 Resnicket al. 6,738,388 B1 5/2004 Stevenson et al. 2003/0051068 A1 3/2003 Eldridge 6,754,885 B1 6/2004 Dardinski et al. 2003/01 15238 A1 6/2003 O’Connor et al. 6,760,687 B2 7/2004 Apel et al. 2003/0167269 A1 9/2003 Gupta 6,763,370 B1, 7/2004 Schmeidler et al. 2003/0200351 A1 10, 2003 O’Connor et al. 6,775,707 B1 8/2004 Bennett et al. 2003/0200369 A1 10, 2003 Musumeci 6,788,980 B1 9/2004 Johnson 2003/0208558 A1 11/2003 Venkatraman et al. 6,789,054 B1 9/2004 Makhlouf 2004/0103.165 A1 5/2004 Nixon et al. 6.792,321 B2 9/2004 Sepe, Jr. 2004/01 17534 A1 6/2004 Parry et al. 6.799,148 B2 9/2004 Ling et al. 2004/0221289 A1 11/2004 D’Souza et al. 6,799,185 B2 9/2004 Wallman et al. 2005/0138226 A1 6/2005 Tateyama et al. 6,799,195 B1 9/2004. Thibault et al. 2005/01498.93 A1 7/2005 Roesner et al. 6,806,847 B2 10/2004 Nixon et al. 2005, 0160263 A1 7/2005 Naizhen et al. 6,807,558 B1 10/2004 Hassett et al. 2005/0172258 A1 8, 2005 Nixon et al. 6,826,590 B1 1 1/2004 Glanzer et al. 2005/0283730 Al 12/2005 Uyttendaele et al. 6,832,223 B1 12/2004 Scheifler et al. 2006/0129724 A1 6/2006 Kostadinov 6,850,973 B1 2/2005 Larson et al. 2006/0206860 A1 9, 2006 Dardinski et al. 6,853,867 B1 2/2005 Klindt et al. 2006/0206866 A1 9/2006 Eldrige et al. 6,868,538 B1 3/2005 Nixon et al. 2006/0212146 A1 9, 2006 Johnson et al. 6,874,082 B2 3/2005 Tateyama et al. 2007 OOO6149 A1 1/2007 Resnicket al. 6,888,541 B2 5/2005 Morse 2007, OO19560 A1 1/2007 Brewer et al. 2. R: $38. E. et al. 2007, OO61786 A1 3, 2007 Zhou et al. -- aw aCKSO 2007, 0083.552 A1 4, 2007 Allen et al. 6.959,356 B2 10/2005 Packwood et al. 2007, 0110835 A1 5, 2007 Maes et al. 6,978,194 B2 12/2005 McIlhany et al. 6,983,227 B1 1/2006 Thalhammer-Reyero 2007, 0118805 A1 5/2007 Kraus et al. 7,020,532 B2 3/2006 Johnson et al. 2007/0244571 A1 10, 2007 Wilson et al. 7,024,282 B2 4/2006 Coogan et al. 2007,0265089 A1 11/2007 Robarts et al. 7.054,793 B2 5, 2006 Moritz et al. 2008, 0046598 A1 2/2008 Johnson et al. 7,080,366 B2 7/2006 Kramskoyet al. 2008/0052386 A1 2/2008 Johnson et al. 7,086,009 B2 8, 2006 Resnicket al. 2008/01 19951 A1 5/2008 Thibault et al. 7,089,530 B1 8/2006 Dardinski et al. 2008/O120367 A1 5.2008 Thibault et al. 7,096,465 B1 8/2006 Dardinski et al. 2008/O126500 A1 5.2008 Thibault et al. 7,110,835 B2 9/2006 Blevins et al. 2008. O133700 A1 6, 2008 Thibault et al. 7,123,974 B1 10/2006 Hamilton 2008/0134215 A1 6/2008 Thibault et al. 7,142.322 B2 11/2006 Lee 2008/O148170 A1 6/2008 Thibault et al. 7,146,231 B2 12/2006 Schleiss et al. 2008/0216169 A1 9, 2008 Naizhen et al. 7,146,408 B1 12/2006 Crater et al. 2008/0222276 A1 9, 2008 Thibault et al. 7,151,966 B1 12/2006 Baier et al. 2009/0094326 A1 4, 2009 Thibault et al. 7,158,513 B2 1/2007 Wada et al. 2009/01 18845 A1 5/2009 Eldridge et al. 7,162,510 B2 1/2007 Jammes 7, 177,052 B2 2/2007 Lapstun et al. 2009/01 18846 A1 5/2009 Eldridge et al. 7,199,784 B2 4/2007 MathiOwetz et al. 2009.0125128 A1 5/2009 Eldridge et al. 7,245,271 B2 7/2007 Nixon et al. 2009.0125129 A1 5/2009 Eldridge et al. 7,272,815 B1 9/2007 Eldridge et al. 2009.0125131 A1 5/2009 Eldridge et al. 7,275,062 B2 9, 2007 Deitz et al. 2009, O132996 A1 5/2009 Eldridge et al. 7,337,256 B2 2/2008 Korowitz et al. 2009, O164031 A1 6/2009 Johnson et al. 7,356,588 B2 4/2008 Stineman, Jr. et al. 2009/O193347 A1 7/2009 Takahashi et al. 7,502,656 B2 3/2009 Thibault et al. 2009,024.1086 A1 9, 2009 Saito et al. 7,574,693 B1 8, 2009 Kemink 2009,0259.751 A1 10, 2009 Thibault et al. 7,610,354 B2 10/2009 et al. 2009/0319058 Al 12/2009 Rovaglio et al. 7,664,574 B2 2/2010 Imhofetal. 2010/0005425 A1* 1/2010 Kodosky et al...... 71.5/853 7,720,944 B2 5, 2010 Thibault et al. 2010.0011127 A1 1/2010 Johnson et al. 7,739,361 B2 6, 2010 Thibault et al. 2010/0011311 A1* 1/2010 Kodosky et al...... 71.5/771 7,882,197 B2 2/2011 Thibault et al. 2010/0076604 A1 3/2010 Johnson et al. 7,890,927 B2 2/2011 Eldridge et al. 2010, 0121999 A1* 5, 2010 Isenmann et al...... T10/105 7,899,070 B2 3/2011 Thibault et al. 2010/0131084 A1* 5/2010 Van Camp ...... TOO,86 2001/0007133 A1 7/2001 Moriconi et al. 2010/0222902 A1 9/2010 Eldridge et al. 2001/0007183 A1 7, 2001 Weder 2010/0223593 A1 9/2010 Eldridge et al. 2001/0025307 A1 9/2001 Venkatraman et al. 2010/0305720 A1 12/2010 DO11 et al. US 8.127,060 B2 Page 7

2010/0305721 A1 12/2010 Kostadinov et al. “ErgoTech upgrades ErgoCim; first plug and play component soft 2011/0040390 A1* 2/2011 Blevins et al...... TOOf 18 ware for manufacturing.” BusinessWire, Feb. 15, 1996. 2011/0093.098 A1 4/2011 Kostadinov et al. “Fisher-Rosemount Is: Managing the Process Better.” Fisher Con OTHER PUBLICATIONS trols International, Inc. and Rosemount Inc. 1993, (19 pages). "Gensym Announces. Its Initiative for Leveraging Intelligent Systems U.S. Appl. No. 1 1/260,859, filed Oct. 28, 2005, Keyghobad et al. with Internet/Intranet Technology.” BusinessWire, Oct. 7, 1997. "1995 World Batch Forum: Meeting of the Minds Agenda,” (May "Gensym introduces G2 WebMiner for accessing and reasoning 22-24, 1995) Newtown Square, Pennsylvania, (2 pages). aboutdata from the WorldWideWeb.” BusinessWire, May 15, 1996. 'A Sensation in Supervisory control. Manufacturing Systems (Win "Gensym introduces Internet connectivity for its G2 family of intel dows NT in manufacturing Supplement), Oct. 1996, pp. 12A-24A. ligent real-time software.” BusinessWire, Mar. 18, 1996. “AC I/O Modules Available for Low-Cost Automation Controller.” “I/A Series Model 51 FoxRemote II Installation and Configuration New Release, Control Technology Corporation, Jun. 28, 1989 Guide.” Apr. 8, 1998 (Preliminary), pp. i-iv, 1-2. (DialogWeb search result) (1 page). “Industries Fashion NASA Products Into Commercial Work', Anne “Agenda.” ISA/SP50–1988-180, ISA Draft, May 3-5, 1988. Eisele, Space News, v9, n.14, p. 14, Apr. 6, 1998, 1 page. “Agenda.” World Batch Forum 1994 (Mar. 6-9, 1994),Tempe, AZ, (9 “Industry's top embedded operating software Supports Java; pages). pSOSystem enables Embedded Internet applications and Low-cost “Apacs Control System.” Power vol. 139, No. 6 (Jun. 1995) p. 81 Internet appliances.” Business Wire, Feb. 1, 1996. (Dialog print-out). “Inexpensive Automation Controller features Message Display “Application of PRIAM Model to Safety Systems on Offshore Oil/ Capability.” News Release, Control Technology (US), May 19, 1989, Gas Platforms. Silvertech Ltd., Jan. 9, 1995. (DialogWeb search result). "At Interop, Will ToasterNet Be on the Hot List?” Data Communi “Information technology in manufacturing. Manufacturing Sys cations, vol. 19, No. 13, Oct. 1990, p. 214. tems, vol. 14, No. 12, Dec. 1996, pp. 54-78. "Automation Controller accepts Customization.” News Release, “Innovative Small Controller Family offers Full Integration.” News Control Technology, Jul. 12, 1985, (DialogWeb search result). Release, Control Technology, Aug. 17, 1989, (DialogWeb search "Automation Controller features fast 80186 Processor, Integrated result). Software.” News Release, Control Technology (US), Apr. 22, 1986, “Integrated Systems; Industry's top embedded operating software supports Java.” M2 Presswire, Mar. 4, 1996. (DialogWeb search result). “Intel, SunDisk offerings narrow flash focus.” Electronic Engineer "Automation Programming Environment runs on IBM (R)-PC.” ing Times, p. 10, Oct. 24, 1994. News Release, Control Technology (US), Mar. 29, 1988, (DialogWeb “Internet windows to the world.” New Media Age, Oct. 26, 1995, p. search result). 4. "Automation System Monitors, Controls Fab HVAC, Other Sys “Introducing Bailey Evolution 90TM . . . The sound investment tems.” Microcontamination (Aug. 1994). strategy for process automation.” Bailey 1990 (brochure). “Background Info on Mercury Project.” (no date available). “Jim Henry's 1996 ASEE Paper,” web page print-out from http:// “Breaking News for Invensys Software Systems Employees: iBaan chem.engrutc.edu/Documents/ASEE-96-full.html (5 pages). and FactorySuite 2000 Integration Announced.” internal e-mail dated “Linear Actuators offer Plug-Compatibility with Controller.” News Mar. 23, 2001. Release, Control Technology (US), Nov. 21, 1985, (DialogWeb “Briefs.” Network World, May 29, 1995, p. 19. search result). “bsy's List of Internet Accessible Coke Machines,” web page print “Low-Cost Automation Controller features Motion Control, Com out (Feb. 12, 1999) from http://www-cse.ucscl.edu/users/bsy/coke. munications.” News Release, Control Technology (US), Mar. 7, html (1 page). 1988, (DialogWeb search result). “CAD/CAM Software creates Automation Programming Environ "Make Your Automation Plan a Reality: MAX1000.” Leeds & ment.” News Release, Control Technology (US), Oct. 3, 1988, Northrup Technical Overview, (approximately 1990). (DialogWeb search result). “Mitsubishi licenses Sun's Java tool.” Electronic Engineering Times “CMUSCS Coke Machine: Current Status,” webpageprint-out (Feb. (Dec. 11, 1995) p. 29. 12, 1999) from http://www.cs.cmu.edu/..about.coke? (1 page). "Modular Valve Assemblies Connect to Controller with Ribbon “Compact System Combines Motion Control, Machine Control.” Cable.” New Product Release, Control Technology (US), Jan. 8, News Release, Control Technology, May 28, 1985, (DialogWeb 1986, (DialogWeb search result). search result). “Multi-Tasking Controller provides High-level Instructions for “Company Profiles: What Users Need.” Power vol. 139 No. 6 (Jun. Motion Control, Sequencing.” News Release, Control Technology 1995) p. 81. Corporation, Aug. 22, 1986, (DialogWeb search result). “Control System Features Plug-and-Play Technology, Scalability.” “NCR Fieldbus Slave Controller Advance Information.' ISA-SP50 Chemical Processing (May 1996), p. 33. 1988-161, ISA Draft. “Control system.” Power vol. 139, No. 4 (Apr. 1995) p. 114 (Dialog “New at IPC/92 Ethernet provides Global PLC Registers.” print-out). News Release, Control Technology (US), Nov. 20, 1992, “ControlShell Version 5.1 User's Manual.” Real-Time Innovations, (DialogWeb search result). Jun. 1996, whole manual. “New at IPC/92 High-Capacity Integrated Motion Controller.” “ControlShell Version 6.0 User's Manual.” Real-Time Innovations, News Release, Control Technology (US) Nov. 20, 1992, (DialogWeb Jan. 1999, whole manual. search result). "DeltaV(tm) System: We Do Smart Plants.” Brochure issued by “New Equipment/Literature.” Control System vol. 139, No. 4 (Apr. Fisher-Rosemount Systems (1998). 1995), p. 114. “DeltaV.TM. System Overview: Do More.” Brochure issued by “New Open Architecture Group Works on Control Standards.” Con Fisher-Rosemount Systems (1998). trol Engineering Online (Aug. 1997). “Disk Drive with Embedded Hyper-TextMarkup Language Server.” “New Products Provide Interactive Graphics Over Web Using IBM TDB, vol. 38, n. 12, Dec. 1995, pp. 479-480. Netscape Plug-Ins and Java.” PRNewswire, May 20, 1996. “Dual-Axis Servo Module for Small Controller.' News Release, “New Small Automation Controller features Precision Analog I/O Control Technology (US), Sep. 11, 1990, (DialogWeb search result). Modules.” News Release, Control Technology (US), May 30, 1989, “Editors' Product Picks.” Chemical Processing (May 1996), p. 34. (DialogWeb search result). "Embedded Systems Conference Addresses the Increasing Complex “New State-Logic Microcontroller.” News Release, Control Technol ity of Electronic Systems Design; Technical Program and Exhibits ogy Corp., Jun. 1, 1996 (DialogWeb search result). Help Embedded Systems Design Professionals Keep Pace with “New Telemecanique Programmable Controllers Feature Multiple Rapid Change.” PR Newswire, Dec. 27, 1995. Programming Languages.” (Feb. 11, 1985). US 8.127,060 B2 Page 8

“On-Line Vending Machine and Catalog Product Icons.” IBMTDB, “Tribe Computer Works' Net Products Can be Managed via World v. 38, n. 4 (Apr. 1995), pp. 113-116. WideWeb.” IAC (SM) Newsletter Database.T.M., DataTrends Pub “Operator's Console creates Friendly Machines.” News Release, lications, Inc., No. 11, vol.7. May 30, 1995. Control Technology (US), May 19, 1986, (DialogWeb search result). “Tribe Launches First Networking Device Capable of Being Man “Operator's Console for Automated Machines.” News Release, Con aged via Internet Web Browser; TribeLink2 Enables Remote Com trol Technology, Aug. 15, 1985, (DialogWeb search result). puting and Internet Access.” BusinessWire, May 22, 1995. “Peter Beebee's Home Page,” web page print-out (Feb. 12, 1999) “Tribe Launches Innovative Remote Management Solution; New from http://www-Swiss.ai.mit.edu/htbin/ptbbgate? WebManage Technology Provides Network Management Via the jwz/?fetch+personal%2Fmain.text.html (2 pages). World WideWeb,” web page print-out (Jul 12, 1999) from http:// “Pipeline: Announced.” InfoWorld, May 29, 1995, p. 45. www.tribe.com/products webmanage?wm pr. (1 page). “Plant Operations Framework.” AMR Report (May/Jun. 1995), (6 “TribeStar,” web page print-out from http://www.tribe.com/prod pages). ucts/tribestar/index.htm (3 pages) (copyright 1996). “Plug-Compatible Controls and Actuators Speed System Develop “UDC 6000 Process Controller: From Stand-alone Control to Full ment.” News Release, Control Technology (US), Jan. 13, 1986, System Integration Honeywell Has a Solution for You.” Honeywell, (DialogWeb search result). (Aug. 1992). “Policy Manual.” 1994 World Batch Forum (Mar. 6-9, 1994), (15 “User Layer Structure.” SP-50 Technical Report (Jul 25, 1990). pages). “User Layer Technical Report.” ISA/SP 50 1990-389C, ISA Draft. “Process Manager Specification and Technical Data.” UC03-300 “Wide-range, Fully Compatible Family of Process Automation & Sep. 1991 Honeywell, copyright 1990 (43 pages). Management Systems.” Copyright 1993 by Elsag Bailey Group as an “Programmable Controller offers control of Stepping and Servo Unpublished Work, (24 pages). Motors.” News Release, Control Technology, May 31, 1985, “Wizards wheel over SCADA systems; Supervisory Control and (DialogWeb search result). Data Acquisition.” Control and Instrumentation, No. 12, vol. 28, Dec. “Radio Field Bus. ISA/SP50–1988-184, ISA Draft. 1996, p. 23. “Real-Time Innovations Email NewsLetter.” Apr. 1998, http://www. “WWWF’94: Papers Received.” web page print-out (Apr. 7, 2000) rti.com/corporate/newsletter04-98, 2 pages. from http://www.ncsa.uiuc.edu/SDG/IT94/Agenda/Papers-re “Ricoh to sell world's first multimedia still camera.” Japan Economic ceived.html (8 pages). Newswire, Feb. 21, 1995. Adler, David J. et al. “Does a Manufacturing Execution System “RTI Announces Major New Component-Based Programming Sys Reduce the Cost of Production for Bulk Pharmaceuticals?' 1995 World Batch Forum (May 22-24, 1995), (13 pages). tem for Building Complex Electromechanical Systems'. PR Andrews, “15 MB in a Matchbook” (Jan. 1995) http://www.byte. Newswire, Mar. 16, 1998, 3 pages. com/art/950.1/sec4/artS.htm. “SDRD Using 1553B Data Link Services.” ISA/SP50-1988-243 ANSI/ASME PTC 19.1-1985, “Part 1- Measurement Uncertainty”, (1988). Apr. 30, 1986, entire document. “SECS-1 1 Communication Board Plugs into Automation Control Ash, Raymond H. et al. “Strategic Needs in Batch Manufacturing.” ler.” News Release, Control Technology, Aug. 26, 1985, (DialogWeb 1995 World Batch Forum (May 22-24, 1995), (8 pages). search result). Bader, F. P. “Building a Better Batch Control Foundation with IEC “Signal Conditioners Designed for Fisher-Rosemount System Delta 1131-3 Control Languages.” 1994 World Batch Forum (Mar. 6-9, V” issued by M-Systems Co., Ltd. (Dec. 1997). 1994), (23 pages). “Small Multi-Tasking Controller for Cost-sensitive Aplications.” Batch Control. Part I: Models and Terminology. (Approved Feb. 28. News Release, Control Technology US, Nov. 8, 1988, (DialogWeb 1995) ISA-S88.01 1995, pp. 1-128. search result). Baxter, Richard V., Jr. “Implementing OpenNetworking in a Motor “SP88 Mes Task-Force Europe Position Document.” 1994 World Drive.” The Imbedded Internet Workshop Real World Applications Batch Forum (Mar. 6-9, 1994), (pp. 1-30). Session (Oct. 1, 1999) San Jose, CA. “Special Topic: PC-Based Control.” A Supplement to Software Strat Beestermoller, H.J., et al. "An Online and offline programmable egies, pp. 3-5, 7-8, 10-15, 20-21 (no date available). Multi-Loop Controller for Distributed Systems.” IEEE (1994), pp. "Suggested Outline for Application Sub-committee Document: 15-20. Fieldbus Architecture Subcommittee Document.' ISA/SP50–1988 Benkhallat, Yazid, et al. “Interoperability of sensors and distributed 175, ISA Draft. (1988). systems.” Sensors and Actuators. A vol. 37-38 (1993), 247-254. "Sun announces availability of Javatm Embedded Server 1.0.” Press Benner, Stephen J. "MES in Batch Process Manufacturing. AMES Release dated Oct. 1, 1998, downloaded from java. Sun.com website. Vendor view” 1995 World Batch Forum (May 22-24, 1995), (8 “System Provides Stepping Motor Control in Workcell Environ pages). ment.” News Release, Control Technology Corp., Dec. 5, 1986, Berge, Jonas, “Using Ethernet is a no-brainer.” InTech: The Interna (DialogWeb search result). tional Journal for Measurement and Control, pp. 36-39, Jul. 2000. “TDC 3000 Overview.” Honeywell, (approximately 1992). , Viki, “Remote-access ware emerge: Shiva, Nortel, and “TDC 3000 Process Manager.TM.: Process Connected Solutions for Tribe leading list of innovators.” PCWeek, No. 21, vol. 12, May 29, the Advanced Controls Requirements of the 1990s.” Honeywell, 1995, p. 47. (approximately 1992). Berre, A., “Sharing of Objects in an Object-Oriented Language.” “The 'Only Coke Machine on the Internet” webpage print-out (Feb. Proceedings on the 1986 International Workshop on Object-Oriented 12, 1999) from http://www.cs.cmu.edu/about.coke history long..txt Database Systems, IEEE Computer Society Press, Los Alamitos, CA, (3 pages). 1986. “The Object Primer', Scott Ambler, pp. 1-248. Jan. 4, 1996. Bishop, Brian. “Realtime System-Design Tool Models Electrome “The Switzerland Coke Machine Credits,” web page print-out (Feb. chanical Systems”. . Personal Eng & Instrumentation News, v 15, n4. 12, 1999) from http://www-Swiss.ai.mit.edu/htbin/coke? (1 page). p. 21, Apr. 1998. “Toshiba Integrated Control System.” Technical Manual Third Edi Bristol, E. H., “Not a Batch Language; A Control Language!” 1995 tion (Nov. 1990). World Batch Forum (May 22-24, 1995), (14 pages). “Tour an actual TribeLink via WebManage.” webpage print-out from Brown, Jerry et al. “Meeting the Challenge of Automation Technol http://www.tribe.com/products/webmanage? quick view.htm ogy.” 1996 World Batch Forum (May 22-24, 1995), (11 pages). (printed on Jul. 12, 1999) (1 page). Brown, Jerry et al. “Trends and Opportunities in Batch Control Sys “Tribe Announces Revolutionary Use of the Internet; Launches Inno tem Architectures.” 1994 World Batch Forum (Mar. 6-9, 1994), (pp. vative Remote Management Solution; New WebManageTechnology 1-12). Provides Network Management via World Wide Web.” Business Browne, Malcolme W. “ Pole Ready for Internet Revolution.” Wire, May 22, 1995. The New York Times, Section C. col. 1, p. 1, Jan. 10, 1995. US 8.127,060 B2 Page 9

Brunn, P. "Collision Avoidance for Two Robots Sharing a Common Esprit Project 8244. “User Requirements for Intelligent Transmitters Workspace.” (1995) The Institution of Electrical Engineers. and Actuators.” European Intelligent Actuation and Measurement Bullotta, Rick. “Designing Effective User Interfaces for Batch Pro User Group, Nov. 24, 1995. cesses.” 1994 World Batch Forum (Mar. 6-9, 1994), (pp. 1-19). European Office Action, EP Application No. 973051873, dated Sep. Burton, P.I. "A personal history of batch control.” Measurement + 22, 2010. Control vol. 27 (Apr. 1994), pp. 69-73. Excerpt from the website of the Society of Manufacturing Engineers Burton, P.I., et al. “Field Bus Based on MIL-STD-1553B: Proposal to (SME)-CyberCut: A World WideWeb Based Design-to-Fabrication ISA-SP-50” ERA Technology Ltd. (Apr. 6, 1988) ISA/SP50-1988 Tool, dated Sep. 16, 2010. 148. Feiler, P. “Software Process Support Through Software Configura Capetta, L., et al. "From Current Actuators and Transmitters Towards tion Management.” Oct. 1990, Proceedings of the 5th International Intelligent Actuation and Measurement: PRIAM Approach.” BIAS Software Process Workshop on Experience with Software Process 93, Milan, Italy 1993. Models, IEEE Computer Society Press. Caro, Richard H. “Field Bus Applications.” ISA (1989) Paper #89 Ferraiolo et al., A Role-Based Access Control Model and Reference 0569, pp.989-994. Implementation Whinin a Corporate Intranet, ACM, Feb. 1999. Caro, Richard H. “The Fifth Generation Process Control Architec Fieldbus Inc. “The Foundations fieldbus Primer.” Revision 1.1, ture.” ISA Transactions vol. 28 No. 4 (1989), pp. 23-28. Released Jun. 24, 2001, 36 pages. Chettle, Tim. “Multiplexing techniques optimise data collection.” Fieldbus Standard for Use in Industrial Control Systems. Part 2: Electrotechnology (Oct./Nov. 1995). Physical Layer Specification and Service Definition. (1992) ANSI/ Choi, K.J. et al., “A Modeling Method of Software Configuration ISA-SSO.O2. Change Control.” 1997, IEEE Online. "http:/ieeexplorerieee.org/ Fisher, Thomas G PE. “SP88 Update Now and the Future.” 1995 stampfstamp.jsp?tp=&arnumber=619990&userType=inst”. World Batch Forum (May 22-24, 1995), (59 pages). Cisco Systems, Inc., "Cisco Secure Wireless Plant: Security and Foster, Kirsten. 'Surfs up; lights, camera, but no action; Steve is a Quality of Service for Industrial Environments.” Copyright 1992 Tech-Nomad. He wanders the streets with a camera on his head. And 2008. he wants you to join him.” The Independent (London), Aug. 13, 1995, Coleman, Vernon. “National Electrical Manufacturers Association p. 10. Field Bus Report to ISA SP50.” (Oct. 1988) ISA/SP50-1988-234. Foxboro Fieldbus Proposal (Presented to ISASP-50 Committee Feb. Computer Products "Unbundling the DCS” (approximately 1992). 24, 1988) ISA/SP50-1988-123B, ISA Draft. Conradi, R. et al., “Version Models for Software Configuration Man Foxboro, “I/A Series A2TM Software-FoxCTS-Change Tracking agement.” Jun. 1998, ACM Computing Surveys, vol. 30, No. 2. Software-Product Specifications.” 1997-2003, pp. 1-8. Control Technology Corp. News Releases, pp. 1-23, No Date Avail Foxboro, “I/A Series Software FoxDraw.” 1996 (8 pages). able. Foxboro, “I/A Series Software-FoxCTSTM Change Tracking Cox, Mark J. and Baruch, Dr. John E. F. “Robotic Telescopes: An Software-Product Specifications.” 1997-2006, pp. 1-12. Interactive Exhibit on the World-WideWeb,” web page print-out Foxboro, “I/A Series-Object Manager Calls—Oct. 31, 1995, pp. from http://www.ncsa.uiuc.edu/SDG/IT94/Proceedings/Museum? 1-124. cox/mark.cox.html (11 pages), 1994. Foxboro, “Intelligent Automation Series Human Interface Soft Craig, Lynn W. “SP-88 Defines Batch Control.” INTECH Mar. 1994, ware”, 20 pgs., 1997. pp. 34-37. Friscia, Anthony et al. “MES: Manufacturing's Missing Link is a Crowder, R. S. "A Communication Architecture for Automation & Tool for Change.” 1994 World Batch Forum (Mar. 6-9, 1994), (8 Control.” ISA, pp. 669-673. (No date available). pages). Crowder, R. S. "Generic Data Link Transactions for Simple Fuhr et al., “Wireless Technology Review: Radios, Frequencies, and Devices.” Proposal to ISA SP50& IEC/SC65C/WG6 (Oct. 15, 1988) Implications for Industry.” Wireless Technology Review, Feb. 2010. ISA Document. Fulcher, Jim and Dilger, Karen Abramic, “Soft control, Internet spark Crowley-Milling, etal, eds. "Proceedings.” 1995 International Con ISA/96.” Manufacturing Systems, vol. 14, No. 12, Dec. 1996, pp. ference on Accelerator and Large Experimental Physics Control Sys 40-46. tems, Chicago, IL Oct. 30-Nov. 3, 1995, cover pages). Furness, Harry. “Fieldbus: The Differences Start From the Bottom Delahostria. Communication Model Application Layer. (Oct. 14. Up.” Control Engineering (Mar. 1994), pp. 75-77. 1988) ISA/SP50-1988 247, ISA Draft. Gaines, B.R. et al. “Mediator: an Intelligent Information System Delfino, B. and Pinceti, P. “Fieldbus Applications for Electrical Supporting the Virtual Manufacturing Enterprise.” IEEE.RTM. 1995 Industrial Systems.” IEEE (1993), pp. 2084-2090. (XP 000586326) pp. 964-969. Demetratekes, Pam. “Go with the info flow; state-of-the-art automa George J.Thaler, et al., “Automatic Control Systems.” pp. 1-60, 1989. tion in the food industry; includes related article on computer soft Gertz, Matthew, et al. "A Human-Machine Interface for Distributed ware for food processors.” Food Processing, vol. 57, No. 7, Jul. 1996, Virtual Laboratories.” IEEE Robotics & Automation Magazine 1 p. 47. Dec. (1994) No. 4 (New York) pp. 5-13. Distributed Engineering, Institute of Computer-Aided Circuit Gillespie, David P., Ph.D. "Comprehensive Information Manage Design Test and Test Systems Division, University of Erlangen ment: EPA, OSHA, and Beyond.” 1995 World Batch Forum (May Nurnberg, Germany, web page print-out (8 pages) (Oct. 1994). 22-24, 1995), (14 pages). Dryden, Patrick, “Tribes WebManage Enables Remote Fixes.” Gleick, James. “Fast Forward: Really Remote Control.” The New ComputerWorld, May 22, 1995, p. 14. York Times, Section 6, col. 3, p. 42, Dec. 3, 1995. Duffey, C.K., et al. “High-Level Control Language Customizes Goldberg, Ken et al. “Desktop Teleoperation via the World Wide Application Programs.” IEEE Computer Applications in Power Web.” IEEE International Conference on Robotics and Automation, (1991), pp. 15-18. pp. 654-659 (1995). Editing Committee Draft Application Layer, Version 12, Oct. 1991. Goldberg, Ken, et al. “Beyond the Web: Excavating the Real World Editing Committee Draft Application Layer, Version 6, Dec. 1990. Via Mosaic.” (Conference Paper) The Mercury Project (Oct. 17-21. Editing Committee Draft Application Layer, Version 8, May 1991. 1994). Elmer-Dewitt, Philip, "Snowballs in Cyberspace; With a modemand Goldberg, Ken, et al. “Beyond the Web: manipulating the real world.” a soldering iron, you too can build an Internet site that is really cool Computer Networks and ISDN Systems 28 (1995) pp. 209-219. and totally useless,” Time, Jan. 16, 1995, p. 57. Goldstein, Ira and Hardin, Joseph, “Guest editorial.” Computer Net EIRakabawy, et al., “Peer-to Peer File Transfer in Wireless Mesh works and ISDN Systems 28 (1995) p. 1. Networks.” University of Leipzig, Copyright 2007 (incl. English Goodstein, L.P. et al., “Representation of Process State Structure and Abstract). Control.” Apr. 1987, Riso National Laboratory. Esprit Project 6188, “PRIAM Dictionary: Major Terms and Defini Grant, Dr. R. Peter, “The Impact of Reengineering on the Batch tions Used in the PRIAM Project.” Prenormative Requirements for Manufacturing Workplace.” 1995 World Batch Forum (May 22-24, Intelligent Actuation and Measurement, May 1995. 1995), (5 pages). US 8.127,060 B2 Page 10

Greene, Tim. "Sahara puts Java to Management Test.” Network Kline, “The Purposes of Uncertainty Analysis', vol. 107, Journal of World vol. 13, No. 7 (Feb. 12, 1996). Fluids Engineering, pp. 153-160 (Jun. 1985). Gutierrez, Jose, “WirelessHARTTM: The Industrial Wireless Stan Ko, Diffu, “Trobe defines net management role for Web browser dard.” Measurement and Testing, Wireless Technology Focus, Jun./ software.” Network World, May 22, 1995, p. 14. Jul. 2008. Kohler H. J., et al..."Integrating UML Diagrams for Production Con Gyorki, John R. “PLCs drive standard buses.” Machine Design (May trol Systems.” ACM p. 241-251, 2000. 11, 1995), pp. 83-90. Kostas, et al., “Real-Time Voice Over Packet-Switched Networks', Hart Communication Foundation Tech Note, "Peer to Peer Commu pp. 18-27, IEEE Network (Jan./Feb. 1988). nication with WirelessHART.” HCF LIT-129 Rev. 1.0, Sep. 5, 2008. Koth, H. and Oeder, K. “The Advantages of Intelligent Field Modules Hart Communication Foundation Tech Note, "Peer to Peer Commu for Nuclear Power Plant Operation and Maintenance.” Kemtechnik nication with WirelessHART, HCF LIT-129 Rev. 1.1, Mar. 5, 2010. 60 (1996) 5-6, pp. 215-219. HART Communication Foundation, “Wireless Hart Overview.” Lenhart, Gerald W. “A Field Bus Approach to Local Control Net Copyright 2009, available at: http://www.hartcomm.org/protocol? works.” ISA, Paper #93-281 1993. wihart wireless-overview.html. Lenhart, Gerald W. “Fieldbus-Based Local Control Networks.” Hashemian, et al., “In-Situ Response Time Testing of Thermo INTECH (Aug. 1994), p. 31-34. couples', ISA 1989, Paper #89/0056, pp. 587-593. Leon, Mark, “Tektronix to add Web software on new printers.” Helson, Ron, Hart Field Communications Protocol, “Hart Tutorial: InfoWorld, Dec. 4, 1995, p. 6. The Benefits of HART Protocol Communication in Smart Instrumen Loos, Peter. “Production Management—Linking Business Applica tation Systems.” (no date available). tions to Process Control.” 1995 World Batch Forum (May 22-24, Henry, “A Fault-Tolerant Interface for Self-Validating Sensors'. 1995), (pp. 1-16). Oxford University, Digest No. 1990/145 (Nov. 1990). Loose, Graham. “Fieldbus—the user's perspective.” Measurement + Henry, “A New Approach to Sensor Validation', IMC, Mar. 17, 1992. Control vol. 27 (Mar. 1994), pp. 47-51. Henry, “Intelligent Behaviour for Self-Validating Sensors'. Loupos, Konstantinos et al., “VR, HF and Rule-Based Technologies Advances in Measurement, pp. 1-7. May 1990. Applied and Combined for Improving Industrial Safety.” Lecture Henry, et al., “A Standard Interface for Self-Validating Sensors'. Notes in Computer Science, vol. 4555, Universal Access in Human Tech. Rep. 1884/91, OUEL, University of Oxford, Sep. 1991. Computer Interaction, Ambient Interaction, pp. 676-680 (2007). Henry, et al., “Implications of Digital Communications on Sensor Lu, S. et al., “An Object-Oriented Power Plant Adaptive Control Validation.” Tech. Rep. 1912/92, OUEL, University of Oxford, Apr. System Design Tool.” Sep. 1995, IEEE Transactions on Energy Con 1992. version, vol. 10, No. 3. Henry, et al., “Signal Processing, Data Handling and Communica Magnusson, B., Asklund, U., and Minor, S., “Fine-Grained Revision tions: The Case for Measurement Validation.” Tech. Rep. 1912/92, Control for Collaborative Software Development”. Dec. 1993, Pro OUEL, University of Oxford, Mar. 1992. ceedings of the 1st ACM SIGSOFT Symposium on Foundations of Henry, Jim, Ph.D., P.E. “Implementation of Practical Control Sys Software Engineering, ACM. tems: Problems and Solutions,” webpage print-out from http://chem. Martin, “Design and Strategy for Distributed Data Processing”. engrutc.edu/Documents/MACSCITECH/MACSCITECHpaper1. Chptrs. 19 & 20, pp. 272-305 (1981). html (printed on Apr. 10, 2001) (22 pages). Maser, K. et al., “Development of a Wireless Global Bridge Evalua Henry, Jim, Ph.D., P.E. "LabVIEW Applications in Engineering tion and Monitoring System (WGBEMS).” Building of International Labs: Controls, Chemical, Environmental.” ASEE Conference, Ana Community of Structural Engineers, vol. 2, Proceedings of Struc heim, CA. Jun. 25-28, 1995, web page print-out from http://chem. tures Congress XIV Apr. 15-18, 1986, American Society of Civil engrutc.edu/Documents/ASEE-95-full.html (22 pages). Engineers, Chicago IL, 8 pages. Hiertz, Guido et al., “IEEE 802.11s. The WLAN Mesh Standard. Meeting Minutes, Ad Hoc Function Block Meeting, Jun. 14, 1990, IEEE Wireless Communications, pp. 104-111, Feb. 2011. Chapel Hill, NC (pp. 1-60). Hoek, A., Heimbigner, D., and Wolf, A.L., “A Generic, Peer-to-Peer Meeting Minutes, Process Control Working Group of SP504, Jan. Repository for Distributed Configuration Management'. May 1996, 21-23, 1991, Atlanta, GA (8 pages). Proceedings of the 18th International Conference on Software Engi Meeting Minutes, SP50, International Electrotechnical Commission, neering Publisher, IEEE Computer Society. Technical Committee No. 65: Industrial-Process Measurement and Holding, David and Wood, Graham. “Communications in micropro Control, Sub-Committee 65C: Digital Data Communications for cessor industrial implementation. Microprocessors and Measurement and Control and Working Group 6: Field BusStandard Microsystems vol. 3 No. 10 (Dec. 1979), pp. 443-451. for Use in Industrial Control Systems, Feb. 28-Mar. 4, 1988, ICCard Design Sep./Oct. 1995. Scottsdale, Arizona (143 pages). International Search Report & Written Opinion, PCT/US09/47901, Meeting Minutes, SP50, Signal Compatibility of Electrical Instru Mailed Jun. 19, 2009 (11 pages). ments, Dec. 5-7, 1990, Orlando, FL (64 pages). Invensys Operations Management, “The Trident's Processor Meeting Minutes, SP50.4 Application Layer, Oct. 19-21, 1988, and Communication Module Support Modbus, Ethernet, Peer-to Houston, TX (96 pages). Peerr, and TriStation Protocols.” Trident Communication Capabili Meeting Minutes, Windows Working Group of Application Subcom ties, (no date available). mittee, Mar. 1-3, 1989, New Orleans, LA (pp. 1-8). Invensys, “FoxDraw Display Builder and Configurator”, 8 pgs. Mirabella, Orazio. “A Short Presentation of IEC Fieldbus Applica 2004. tion Layer.” Informatics and Communication Institute, Engineering IRD Mechanalysis, Inc., “Model 816 Machinery Maintenance Data Faculty, University of Catania, Italy, Feb. 14, 1995. Collector” 1983, 2 pages. Miyoshi et al., “A Real-Time Java Server for Real-Time Match'. IRD Mechanalysis, Inc., “Model 817 Machinery Maintenance Data 1997, IEEE, pp. 319-325. Collector” 1984, 4 pages. Momal, F. and Pinto-Pereira, C. “Using World-Wide-Web for Con IRD Mechanalysis, Inc., “Model 818 Machinery Maintenance Data trol Systems.” from Proceedings 1995 International Conference on Collector” 1985, 6 pages. Accelerator and Large Experimental Physics Control Systems, Chi Johnson, Dick. “Pressure Sensing Advances: Are They in Your Pro cago, IL, Oct. 30-Nov. 3, 1995. cess’ Future?” Control Engineering (Apr. 1995), pp. 67-72. Morel, G. etal. “Discrete Event Automation Engineering: Outline of Johnsson, et al., “High-Level Grafcet and Batch Control”, Nov. 1994, the PRIAM Project.” BIAS '93, vol. 1, pp. 105-116, Milan, Nov. Symposium ADPM. 23-25, 1993. Kelly, D. Mark. “Digital fieldbus cluster cuts plant's wiring costs up Mori, et al., “The PCMCIA Developer's Guide, Second Edition.” to 20%.” Intech (Apr. 1995), pp. 62-64. Sycard Technology 1994. Kissling, Jeffrey L. "Flexible Software Structure and Change Man Niagara Framework, http://www.tridium.com/products/niagara.asp, agement.” 1995 World Batch Forum (May 22-24, 1995), (16 pages). Feb. 10, 2005, 2 pages. US 8.127,060 B2 Page 11

NOAH: Network Oriented Application Harmonisation based on Robinson, D. et al., “Modelling and Synthesis of Configuration Con General Purpose Field Communication System. Project description trollers for Dynamically Reconfigurable Logic Systems. Using the rev. 1.0, Oct. 25, 1995. P-NET, PROFIBUS, WorldFIP. DCS CAD Framework.” 1999, Field-Programmable Logic and Nobuhiko, Tsuji, et al. "An Advanced Optical Fieldbus Instrumenta Applications, FPL '99, pp: 41-50. tion System Using 16 x 16 Reflection Type Optical Star Coupler and Rodriguez, Karen, “Tribe sets software.” Interactive Age, vol. 2, No. Low Powered Transmitter.” pp. 755-764, (1995). 15, May 22, 1995, p. 25. Notte, Angelo J. "Multitasking Capability Simplifies Process Control Rosenof. Howard P. "Dynamic Scheduling for a Brewery.” 1995 Design” Reliance Electric Company, approximately late 1980s. World Batch Forum (May 22-24, 1995), (6 pages). Object-Oriented Information Systems Planning and Implementation, Scharf, Ronald, et al. “Using Mosaic for Remote Test System Control David A. Taylor, Wiley Professional Computing, published Apr. 10, Supports Distributed Engineering.” Institute of Computer-Aided Cir 1992, pp. 1-357. cuit Design Test and Testsystems Division, University of Erlangen Ochoa, David. “Effects of Alliances and Acquisitions on the Batch Nurnberg, Germany, web page print-out fromhttp://www.ncsa.uiuc. Automation User,” 1995 World Batch Forum (May 22-24, 1995), (43 edu/SDG/IT94/Proceedings/CSCW/scharfscharf.html (8 pages), pages). 1994. Office Action mailed Dec. 26, 2002, U.S. Appl. No. 09/379,074. Schreiber Philip et al. “Process Automation Using SP88.” 1995 Office Action mailed Feb. 1, 2008, U.S. Appl. No. 10/765,006. World Batch Forum (May 22-24, 1995), (7 pages). Office Action mailed Apr. 23, 2002, U.S. Appl. No. 09/379,074. Schuur, C. “Comments on Analysis and Suggestions for ISA-SP50 Office Action mailed Jul. 2, 2007, U.S. Appl. No. 10/765,006. as submitted to the SP50 Committee by Honeywell Inc.” (Mar. 11, Office Action mailed Sep. 24, 2003, U.S. Appl. No. 09/379,074. 1988) ISA-SP50-1988-155, ISA Draft. Output to Valve, Revision No. 14, Jan. 18, 1991, (Draft Document), Schuur, Chris and Warrior, Jay. “Phillips Token Passing Field Bus Instrument Society of America. Controller Timed Token Mode. ISA/SP50–1988-186, ISA Draft. Owen, S., etal. "A modular reconfigurable approach to the creation of (1988). flexible manufacturing cells for educational purposes. Fast Silverman, Dwight. “Attaboy for the best software and hardware of Reconfiguration of Robotic and Automation Resources (Col 1994.” The Houston Chronicle, Dec. 25, 1994, p. 2. loquium) Oct. 20, 1995. The Institution of ElectricalEngineers. Skabowski, E. L. "Recommendations for Consideration at Oct. 1988 Pace, Hugh W. “Valve Actuators Ready for Fieldbus.” Control Engi Application Layer Subcommittee Meeting.” (Oct. 3, 1988). neer (Oct. 1995), pp. 65-73. Slater, A. F. “Controlled by the Web.” Computer Networks and ISDN Pages from Aspentech.com website as of Jan. 1997, retrieved from Systems 27 (1994) pp. 289-295. Internet archivehttp://web.archive.org. Smith, Chris. “Tektronix Pushes Ease-of-Use and Low Cost of Pages from Aspentech.com website as of Oct. 1996, retrieved from Operation With Its New Phaser. RTM. Color Laser Printer,” comp. Internet archivehttp://web.archive.org. newprod forum (Jan. 11, 1996). Pages from SL.com website as of Apr. 1999, retrieved from Internet Smith, S. et al., “Cyber Cut: A world wide web based design-to archivehttp://web.archive.org. fabrication tool”, Journal of Manufacturing Systems, vol. 15/No. 6. Pages from SL.com website as of Dec. 1998, retrieved from Internet Jan. 1, 1996, pp. 432-442. archivehttp://web.archive.org. SNAP Foundation Template “Using the SNAP Development Envi Pages from SL.com website as of Feb. 1997, retrieved from Internet ronment.” Version 8.0, Chapters 1-4, 1997. archivehttp://web.archive.org. Solvie, Michael J. "Configuration of Distributed Time-Critical Pages from SL.com website as of May 2000, retrieved from Internet Fieldbus Systems.” IEEE (1994), p. 211. archivehttp://web.archive.org. Song, Jianping et al., “Challenges of Wireless Control in Process Pappalardo, Denise, “Digi Introduces IP/IPX Router.” InternetWeek, Industry.” Workshop on Research Directions for Security and Net Apr. 24, 1995, p. 15. working in Critical Real-Time and Embedded Systems, Apr. 4, 2006, Pappalardo, Denise, “Router Can Be Managed via Net,” San Jose, CA, USA; available at http://moss.csc.ncsu.edu/~mueller/ Internet Week, May 22, 1995, p. 6. crites06. Peshek, Clifford J., etal. “Recent Developments and Future Trends in Soreide, N. N., et al. “Mosaic access to real-time data from the PLC Programming Languages and Programming Tools for Real TOGA-TAO array of moored buoys.” ComputerNetworks and ISDN Time Control.” IEEE Cement Industry Technical Conference (May Systems 28 (1995), pp. 189-197. 1993) Toronto, Canada, pp. 219-230. Stapleton, Nick. “802.3 Working Group DTE Power via MDI Call for Petti, Thomas F. and Dhurjati, Prasad S. "A Coupled Knowledge interest.” 3Com (Jul. 1999), (15 pages). Based System Using Fuzzy Optimization for Advisory Control.” Stein, R. et al. “Development of a Commercially Successful Wear IChE Journal vol. 38 (Sep.1992) No. 9, pp. 1369-1378. able Data Collection System.” University of CA San Diego, Down Phinney, Thomas L. “An Analysis of Contending Proposals in ISA loaded Jan. 12, 2009, 7 pages. SP-50 for an ISA/IEC Field Instrument Bus.” ISA (1988) Paper Stevens, et al. “TCP/IP Illustrated, vol. 1. The Protocols, TCP/IP Hi88-1489. Illustrated vol. 1, XP-002106390, pp. 85-96. (1994). Pinto, Jim. “The Great Fieldbus Debate-is Over.” Action Instruments Strack, Bob. “The Hawk is Soaring.” Chemical Processing (May (www.actionio.com) (originally published in Industrial Controls 1996) p. 11. Intelligence, Nov. 1999). Strobhar, David A. “Evolution of Operator Decision Making.” 1995 Product Specification, I/A Series. RTM. RBATCH II, Aug. 31, 1994 World Batch Forum (May 22-24, 1995), (6 pages). (Revised Apr. 1995). Strothman, Jim and Ham, John. "Alliances, Fieldbus, Windows Stir Product Specifications, I/ASeries(R) Software FoxGuard(TM) Man ISA'94 Anaheim Pot.” Intech (Dec. 1994), pp. 32-35. ager for Triconex(TM) Safety Systems, Copyright 2000-2006, Strothman, Jim and Ham, John. “ISA95 New Orleans: 'Open, NT Invensys Systems, Inc. winds (not Opal) blow strong.” Intech (Nov. 1995), pp. 45-48. Proway-Lan Industrial Data Highway. (Approved Feb. 3, 1986) Table of Contents, Automation & Technology Department, 1993. ISA S72.01-1985. Table of Contents, Automation & Technology Department, 1995. Redman, Jun, et al. “Intranet and the internal Web server: A standard Table of Contents, Industrial Computing Society Conference ICS/95, user interface for integrating manufacturing applicaitons, 'Proceed New Orleans, LA, Oct. 1-6, 1995. ings of the Industrial Comuting conference, vol. 6, No. 1 (1996). Table of Contents, ISA 88 International Conference and Exhibit, Reklaitis, G. V.“Scheduling Approaches for the Batch Process Indus Houston, TX, Oct. 16-21, 1988. tries.” 1995 World Batch Forum (May 22-24, 1995), (17 pages). Table of Contents, ISA '89 International Conference and Exhibit, Renu Electronics Pvt. Ltd., “GWY-800 (HART Gateway) User Philadelphia, PA, Oct. 23, 1989. Manual. Rev. 0, Jul. 13, 2006. Table of Contents, Proceedings of the 20th International Conference Report from IEC TC65 Working Group 6 Function Blocks, May 1, on Industrial Electronics Control and Instrumentation, vols. 1-3, Sep. 1995. 5-9, 1994, Bologna, Italy. US 8.127,060 B2 Page 12

Table of Contents, Proceedings of the 7th Mediterranean Van de Pol. “OmniChem: RealTime Production scheduling in a batch Electrotechnical Conference, vol. 1, Apr. 12-14, 1994, Antalya, Tur oriented environment.” 1994 World Batch Forum (Mar. 6-9, 1994), key. (23 pages). Table of Contents, Proceedings of the Industrial Computing Confer Vardy, Joel M. “Integrating Manufacturing Into the Corporate ence, vol. 3, Sep. 19-24, 1993, Chicago, IL. Industrial Computing Reengineering Effort for the Batch Industries.” 1995 World Batch Society. Forum (May 22-24, 1995), (23 pages). Taylor, Ken and Trevelyan, James, "A Telerobot on the World Wide Wang, Lithui et al. "Agent-based Intelligent Control System Design Web.” printed from http://telerobot mech.uwa.edu.au/ROBOT For Real-time Distributed Manufacturing Environments'. Agent telerobo.htm (14 pages) (1995). based Manufacturing Workshop, Autonomous Agents '98. Minne The Foxboro Company, “FoxCMS Change Management System apolis/St. Paul, May 9-13, 1998, pp. 152-159. Software.” 48 pgs. Aug. 14, 1996. Webb, Marcus. “Computer System Implementation, Batch Standards Tinham, “Networks & Surprises at C&I and ISA shows; Control and and Validation.” 1995 World Batch Forum (May 22-24, 1995), (11 Instrumentation Exhibition and Conference; Instrument Society of pages). America; includes related articles,” vol. 26; No. 6, p. 43; ISSN: Weinert, A., et al. “RTOS realtime programming and application 0010-8022 (Jun. 1994). environment for the COSY control system.” Nuclear Instruments and Tinham, Brian, “Getting SCADA by web browsner'? Supervisory Methods in Physics Research A vol. 352 (1994), pp. 277-279. Control and Data Acquisition.” Control and Instrumentation, No. 12, Welch, Nathalie, “Tribe to manage via Web; Tribe Computer Works vol. 28, Dec. 1996, p. 5. Inc.'s Tribe ink2 Product Announcement.” MacWEEK, vol. 9, No. Tobin, David. “Southeast Paper Installs Largest Foxboro Distributed 21, May 22, 1995, p. 18. Control System.” (No date available). WG1 List of Criteria (Appendix 1), (Oct. 21, 1988) ISA/SP50-1988 Toner, Mike. “Web’s view of world far and wide.” The Houston 242, ISA Draft. Chronicle, Nov. 5, 1995, p. 6. Wilder, Clinton, “Network Management: Russing Nets Via the Tweney, “Java on Your Mobile Phone?'. http://www.business2.com Web Trib's WebManage USS popular interface.” (Mar. 14, 2002). InformationWeek, May 29, 1995, p. 62. U.S. Appl. No. 09/573,151, filed May 17, 2000, Linscott, Richard L. Williams, Gary, “Wireless Plant and Backhaul in the Industrial Envi United States Patent and Trademark Office final Office Action for ronment.” Invensys Operations Management, (no date available). U.S. Appl. No. 1 1/354,586, mailed Aug. 4, 2009. Wolfe, Alexander, “Strong Brew.” Electronic Engineering Times, United States Patent and Trademark Office final Office Action for Apr. 8, 1996, p. 73. U.S. Appl. No. 1 1/354,586, mailed Jul. 1, 2008. Wood, G. G. "Current Fieldbus activities,” computer communica United States Patent and Trademark Office final Office Action for tions vol. 11 (Jun. 1988) No. 3, pp. 118-123. U.S. Appl. No. 1 1/781.216, mailed Jan. 8, 2009. Wood, G. G. “Evolution of communication standards for the process United States Patent and Trademark Office final Office Action for industry.” Measurement + Control vol. 19 (Jul/Aug. 1986), pp. 183 U.S. Appl. No. 1 1/781,218, mailed Jan. 28, 2009. 188. United States Patent and Trademark Office final Office Action for Wood, G. G. “Survey of LANs and Standards.” Computer Standards & Interfaces vol. 6 (1987), pp. 27-36. U.S. Appl. No. 1 1/781,219, mailed Nov. 14, 2008. Wood, G. G. “The Argus Consul System for On-Line Computer United States Patent and Trademark Office non-final Office Action Control.” Electrical Engineering Transactions (Mar. 1969), pp. 114 for U.S. Appl. No. 1 1/354,586, mailed Jan. 8, 2009. 118. United States Patent and Trademark Office non-final Office Action Wood, G. G. "The Challenge of Standards for Plant Communica for U.S. Appl. No. 1 1/354,586, mailed Mar. 6, 2007. tion.” IFAC Distributed Computer Control Systems (1982), pp. 191 United States Patent and Trademark Office non-final Office Action 192. for U.S. Appl. No. 1 1/354,586, mailed Nov. 1, 2007. Wood, G. G. “Towards digital information control.” Measurement + United States Patent and Trademark Office non-final Office Action Control vol. 21 (Jul/Aug. 1988), pp. 179-180. for U.S. Appl. No. 1 1/781.216, mailed Aug. 7, 2008. Wood, Graeme G. “Data Transmission, Processing and Presenta United States Patent and Trademark Office non-final Office Action tion.” pp. 46-54 (no date available). for U.S. Appl. No. 1 1/781.219, mailed Jul 14, 2008. Wood, Graeme, G. "Standardisation Work for Communication United States Patent and Trademark Office non-final Office Action Among Distributed Industrial Computer Control Systems—A Status for U.S. Appl. No. 1 1/207,816, mailed Apr. 9, 2007. Report.” INRIA (1984), pp. 67-69. United States Patent and Trademark Office non-final Office Action Wood, Graeme. “Fieldbus Status 1995.” Computing & Control Engi for U.S. Appl. No. 1 1/207,816, mailed Jan. 10, 2008. neering Journal (Dec. 1995), pp. 251-253. United States Patent and Trademark Office non-final Office Action Wood, Graeme. “Generic Link Transactions for Simple Devices in for U.S. Appl. No. 1 1/207,816, mailed Jul. 3, 2008. Fieldbus.” ISA/SP50–1988–240 (Sep. 20, 1988). United States Patent and Trademark Office non-final Office Action Young, Stephen L. “Technology . . . The Enabler for Tommorrow's for U.S. Appl. No. 1 1/207,816, mailed Oct. 4, 2006. Agile Enterprise.” 1995 World Batch Forum (May 22-24, 1995), (10 United States Patent and Trademark Office non-final Office Action pages). for U.S. Appl. No. 1 1/207,816, mailed Sep. 19, 2007. Zeff, Joe. “Maui Sunset in RealTime (Modems not Optional).” The United States Patent and Trademark Office non-final Office Action New York Times, Nov. 27, 1995, Section D, col. 2, p. 5. for U.S. Appl. No. 1 1/781,218, mailed Sep. 15, 2008. Zeller, A. and Snelting, G., “Unified Versioning Through Feature United States Patent and Trademark Office non-final Office Action Logic.” Oct. 1997. Transactions on Software Engineering and Meth for U.S. Appl. No. 1 1/781.219, mailed Jul. 21, 2009. odology, vol. 6, Issue 4, ACM. User Guide for Intela Trac 2000: Automated Field Data Collection Solutions, Rev. 1.0, Nov.30, 1999. * cited by examiner U.S. Patent Feb. 28, 2012 Sheet 1 of 57 US 8,127,060 B2

1.

O O

U.S. Patent Feb. 28, 2012 Sheet 2 of 57 US 8,127,060 B2

12A 28 Supervisor 29

2O temperature setpoint

Temperature Controller 30

setpointflow

to control ler OA

FOW

flow Controller 32 level

FIG 2A Exemplary Controlled Process

OA 9

Control- Bus Maste ler FsM) FG. 2B Exemplary Profibus Segment

Bus Slave (Actuator)

4A U.S. Patent US 8,127,060 B2

U.S. Patent Feb. 28, 2012 Sheet 5 of 57 US 8,127,060 B2

pueSJ9Sn Á?unoaS

U.S. Patent US 8,127,060 B2

U.S. Patent Feb. 28, 2012 Sheet 8 Of 57 US 8,127,060 B2

Object Group Parameter Parameter Group inheritance X Y Foxboro PID

My PID

FG. 8 U.S. Patent Feb. 28, 2012 Sheet 9 Of 57 US 8,127,060 B2

Parameter

Definition ParameterizedObject Define Art "Red" Parameterized Object Example "x" ParameterDefinition Define B = 25

Parameter Parameter Definition Definition Define C = 33.75 Define B = 35 ParameterizedObject ParameterizedObject 2 ///// Kmodifief> Parameter "Z" try"3 Parameter Definition 2 Value/Over ride Define D = 88 A "Yellow"

GetParameters

Parameter Facade

Parameter Parameter Parameter Art "Yellow" B = 35 C = 33.75

FG. 9 U.S. Patent Feb. 28, 2012 Sheet 10 Of 57 US 8,127,060 B2

Parameterized Parameterized Object Object Parameter (modifier2 (root) Definition

Parameter

Value/Override Parameterized Parameterized Object Object

Parameter Definition definition

Parameter Value/Override

Parameterized Parameterized Object Object

Cmodifier) Parameter Definition

FIG 10 Creating a Parameter List U.S. Patent Feb. 28, 2012 Sheet 11 Of 57 US 8,127,060 B2

ENs

III |||||| |

C. nososolo SSSPN2222&ng

l U.S. Patent Feb. 28, 2012 Sheet 12 Of 57 US 8.127,060 B2

Standard Real-Input Real-Output Bad-Alarm

AN

O O

% 11111 a

F.G. 12 Parameter Editor Example U.S. Patent US 8,127,060 B2

U.S. Patent Feb. 28, 2012 Sheet 14 Of 57 US 8,127,060 B2

All Types OCompound Types OLOOp Types O Block Types AIN Block Foxboro-Defined Type OUser-Z AN Block OUser-DAIN Block O User-Defined Type DAOUT Bock DPD Block User-X Block Types OUser-X Block Type 1 OUser-X Block Type 2 OHistorian Types etc...

FIG. 14 Object Type Hierarchy Example U.S. Patent Feb. 28, 2012 Sheet 15 Of 57 US 8,127,060 B2

New Object type

Object Type: AN-3

Description: New Foxboro AIN Block

Create From: AlN (Analog input)

Creation Method: O) Copy O Derive

Attributes: Assignable To. Configurable System Hierarchy DOwnloadable Plant Hierarchy

Defined By:

FIG. 15 Creating New Object Types U.S. Patent Feb. 28, 2012 Sheet 16 Of 57 US 8,127,060 B2

Z-Module Application Workstations

NT AW70 Awie (without control) AW70X (with control)

FG 16 Type Awareness Example

U.S. Patent Feb. 28, 2012 Sheet 18 of 57 US 8.127,060 B2

Parameterized Object

Parameter int

F.G. 18 Parameterized Object-Override-Endpoint Triad U.S. Patent Feb. 28, 2012 Sheet 19 Of 57 US 8,127,060 B2

Parent Object Child Object Source Object Sink Object Connection Type Connection Type Connection Type Connection Type

specifier types parm A object %55,666 object Object typefor %7 Object 92.5%ia ad MZed2 for ConnectionSpecifier T ype Type 3%

sourcelparent type sink/child type

Object Connection Type

object connection types

so are map a- res q mi. Historian Object Block Object O O O ConnectionType Connection Type ------

Object Connection Type Object Model U.S. Patent Feb. 28, 2012 Sheet 20 Of 57 US 8,127,060 B2

Parameterized Object Connection Object Type Specifier ObjectType

Parent to Historized Point

Child to Software Host

FIG. 20 Example of Simultaneous Parent/Child Object Connectivity U.S. Patent Feb. 28, 2012 Sheet 21 Of 57 US 8,127,060 B2

Parent Parameter Child Parameter Source Parameter Sink Parameter Connection Type ConnectionType Connection Type Connection Type

specifier types 2 parm. parm Ž Connectable aride Parameter ty Parameter

Parameter Connection Type Type Override 2 Specifier Source/parent type sinklchild type

Parameter Connection Type

parameter connection types

Od Serial Block Connection Type Connection Type

- rena area are as a who as us was or - or FIG 21 Parameter Connection Type Object Model

Connection Parameter Parameter Connection Endpoints Override Type Specifier Parameter Type

Sink for an input parameter MEAS Parameter

Sink for an output Endpoint parameter F.G. 22 Example of Simulaneous Source/Sink Parameter Connectivity U.S. Patent Feb. 28, 2012 Sheet 22 Of 57 US 8.127,060 B2

Object: FICO110 Type:AIN Block

Parameter: PNT

Type: PNT Object: histO1 Type: HISTORIAN Historian Connection Parameter: HIST Type: HISTORIAN Object: FICO120 Parent Endpoint Type: PID Block for all points

Parameter: MEAS Type: MEAS

Historian Child Connection Endpoint FG. 23 Parent/Child Connectivity Example-Case #1

Object: AWNTO1 Object LP00 Type: AW70A Type: BW132

Parameter: Port 1 Parameter: Device Type: Serial Port 1 Type: Serial Parent Endpoint Serial Childt for Serial Port 1 Connection Endpoint

Parameter: Port2 Type: Serial Port 2 Object: LP01 Type: BW80 Parent Endpoint for Serial Port 2 Parameter: Device Type: Serial

Serial Child Connection Endpoint

Parent/Child Connectivity Example-Case #2

U.S. Patent US 8,127,060 B2

U.S. Patent US 8,127,060 B2

U.S. Patent Feb. 28, 2012 Sheet 26 Of 57 US 8,127,060 B2

Legend:

Default User O Group object

O Process Engineer O User Object O User X O User Y OPE Administrator O User Z Operators O User A O User B Advanced Operators O User X

FG.28 Users and GroupS Example

Legend: O Process Area The Plant O Assignable O Building 1 Object

O Water Treatment Loop O HVAC-1 Loop D Converting O Pre-Convert Loop O Finishing Loop O Building 2 O HVAC-2 Loop O Dye House O Boiling Loop Finishing Area O texturing Loop O Packaging Loop

FG.29 Process Area and Assignable Objects Example U.S. Patent Feb. 28, 2012 Sheet 27 Of 57 US 8,127,060 B2

Permissions Hierarchy

Permission Hierarchy Write Permission Update Permission Target Upload Permission E Create Permission E Delete Permission Detach Permission Read Permission Download Permission

FIG.30 IDA Permissions Hierarchy

Switch Group/User Facility

Allowable Security Groups Allowable Groups for User X Operator GAdvanced Operator Process Engineer c) Process Engineer Admin. Software Engineer System Administrator Default User

FG.31 Switch Group/User Capability U.S. Patent Feb. 28, 2012 Sheet 28 Of 57 US 8,127,060 B2

S Groups and Users

All Groups st System Administrator Process Engineer H Process Engineer Admin. Operator Advanced Operator - Foxboro Developer Software Engineer Default User

FIG.32 Managing Groups

S Groups and Users Permissions

Name: John Q. Smith Member of: Available Groups: Software Engineer All Groups Default User System Ad Process End PrOCeSS E Operator - Advanced Foxboro De SOftware En Default Use g

FG.33 Assigning Users to Groups U.S. Patent Feb. 28, 2012 Sheet 29 Of 57 US 8,127,060 B2

S. Groups and Users

Group. Operator ObjectType. Loop a Current Permissions: Permissions Available Read Permission DOWnload Permission

FG. 34 Groups, Object Types and Permissions

S. Process Areas Pernissions

Process Area Hierarchy Building 1 Convertin ESTDye House9 New Area : Finishing

FIG 35 Managing Process Areas U.S. Patent Feb. 28, 2012 Sheet 30 Of 57 US 8,127,060 B2

S. Process Areas Permissions

Current Permissions: Permissions Available Read Permission DOWnload Permission Target Upload Create Permi

FG. 36 Groups and Process Area Permissions

U.S. Patent 127,060 B2

U.S. Patent US 8,127,060 B2

§

Jeiêuleiða

U.S. Patent 9 127,060 B2

00||0CJNoHWOO _Z61013

pp pp swww-ass - e. ------U.S. Patent Feb. 28, 2012 Sheet 36 of 57 US 8,127,060 B2

00||0CJNdWNOO _Z610O3 00?OTONGWOO Z6,0b3

ELISOdWOO

U.S. Patent Feb. 28, 2012 Sheet 38 of 57 US 8 9 127,060 B2

00LOCINCHWOO _Z610A+ }}|dOWO| ?.CIO]}}3d syndynO d'HOSEO 9.OOS 0010TCNdWOOOOLOTONGWOO U.S. Patent US 8,127,060 B2

0010TCNdWOOXoo|g/punod?OO Jap|ou30ela»polgeJoKuuo?euw

U.S. Patent Feb. 28, 2012 Sheet 41 of 57 US 8,127,060 B2

Param CIN1 voConnected To. LVO 188 VLV vOPNLIM w. O Expose AS:

FIG 47 Template/Definition Internal Connections

Param CN1 woConnected To. O Expose AS:

FIG. 48 Template/Definition Exposed Connections U.S. Patent Feb. 28, 2012 Sheet 42 of 57 US 8,127,060 B2

PNI. ...Q. 000000 23.9999999...... LSCOS99.99999999...... O.000000 1

A-9999999...... HD3.50.000000...... HHALM109.090900...... AllM-0-900000...... MEAS.10.000000......

Value

FIG 49 Parameter Property Sheet U.S. Patent Feb. 28, 2012 Sheet 43 of 57 US 8,127,060 B2

Parameters for block:BLOCK2 COMPBLOCK1 E88BLOCK2 E33CEOCK2SC66i BLOCK3 as as est-se 5659CK4

IM.39.999999...... XREFN:0.999999...... SCALE1.999900...... ESCALE9.999999...... Al....i.109.999900...... HQ8.0.000000...... HHAM100.000000...... s

Value f(X)my. LSC01 + 1000

FG. 50 Composite Block Property Sheet

Value: =LSC01 + 100.0

Objects: Parameters: FunctionS. Block DELTO1 SetDelta() Compound HAL SetName()

LOOp HHALM SetTag()

Source HSCO1

KSCAE Tag LAL LLALM SCO1 MEAS PNT

FIG 51 Parameter Formula Builder U.S. Patent Feb. 28, 2012 Sheet 44 of 57 US 8,127,060 B2

Parameterized Object

------) w a re re. um um um h-- Parameterized Modifier Block Block Definition Definition Object Collectio ------

I/O Block (Tag List Row) Composite Block Modifier Block Block Collection ------

Composite Block

Definition Template-Derived LOOp

Loop Template

Simple Loop

FIG 52 Control Object Derivations U.S. Patent Feb. 28, 2012 Sheet 45 of 57 US 8,127,060 B2

SN

Modifier Block biect

Sink N Endpoi

St.------

N WelceGN Definition CiteDefinition

FIG 53 Block Object Model

Modifier Block Definition :

C Simple Loop

modifies

Composite Block Modifier Block Definition

modifies-C

Template-Derived

modifies SOverrides OOp

FIG 54 Modifier Block Object Model

U.S. Patent Feb. 28, 2012 Sheet 47 of 57 US 8,127,060 B2

Parameterized ŠN Object

Parameterized Object Collection Block

Contains

S Cotilock defines-) Composite Block ranet e N modifies Contains

Modifier Block FIG 56 Composite Block Definition Object Model

Source EndpointN- Composite Block

N /\ Template-Derived Sink Endpoint L p C defines OOp C Loop Template seN C 3C /O Block NSParameter NS () () () (Tag List Row) modifies

Composite Block Modifier Block

FIG. 57 Loop Template Object Model U.S. Patent Feb. 28, 2012 Sheet 48 of 57 US 8,127,060 B2

Loop Template

AM

c - - - - a a - r s or - a r - a ------r s a

C to a wo r s or w w w w es up A is a Y C. Simple Loop |OBOCk C KC (Tag List Row) :

modifies

Composite Block MOdifier BOCK

FIG 58 Simple Loop Object Model

Endpoint

SGS

A

EndpointN SS Composite C Simple Loop Block

Parameter

NValue () defines Compound Composite Bock Definition

FIG 59 Composite Block Object Model U.S. Patent Feb. 28, 2012 Sheet 49 of 57 US 8,127,060 B2

Composite Block

w w w s - s - - w w w we - e s ------

Template-Derived

modifies SS Modifier Block

Loop template

F.G. 60 Template-Derived Loop Object Model

Parameterized

NRaceholder

Block Bock Placeholder

Modifier Block Composite Block I/O Block Tag List Row Placeholder Placeholder Placehoider Placeholder

------w rr ------r ------s s w FBM Tag List Row Modifier Block Composite Block : Module (I/O Block)

e s - ...... s is ...... v. r r a r u - w w r s - as w w as - FG 61 Object Placeholder Deviations U.S. Patent Feb. 28, 2012 Sheet 50 of 57 US 8.127,060 B2

Block Placeholde

Block and Composite Block Connection DOCument

Composite Block /\ Definition Loop Document

Template-Derived Simple Loop Loop Template Loop Document DOCument DOCument

F.G. 62 Persistent Document Object Derivations

U.S. Patent Feb. 28, 2012 Sheet 52 of 57 US 8,127,060 B2

O Free Memory 600,000,000 600MB Used Memory 400,000,000 40OMB

Capacity 1,000,000,000 1 GB

01 CP70 Memory Utilization

F.G. 64 Station Statistics Dialog

Parameterized Object

Control Station

F.G. 65 Block Execution Editor Object Model U.S. Patent Feb. 28, 2012 Sheet 53 of 57 US 8,127,060 B2

Download Manager O Object Only Download Plant

Targets

Options O Modified Historian4 O Refresh O All -Settable

F.G. 66 Download target Selection U.S. Patent Feb. 28, 2012 Sheet 54 Of 57 US 8,127,060 B2

Persistent DOCument

DOWnload Manager DOCument F.G. 67 Download Manager Document Object

U.S. Patent Feb. 28, 2012 Sheet 56 of 57 US 8,127,060 B2

Archestra tut

Nat PrStransdcrest Highest Sistiao Additss in saw crl

Ot of are 1S - rt trees; Gr. )

ar. a a or rr is a mile m m art a a ra FMR Es Paracters segmentten couplercouple to -- - - eard Pete 50; bad cult valdsie luct

------r or rrr, . r rr - - - r r - Max Retry it APUpdate Factor (G) -

O it Minstation Dderst sponse Tree(MintsDP) 3i Mr Sition Oelay Respons TMETSR to " " " it ----- Quit TireeTQUI) o it.

ata-aal Target Rotation iner) tooco Sit

- error irri - i. arr r Erie Trist s

ERE yi. abular sai terra: Assassiggis. irritera ...has 325etes...:

Figure 69 U.S. Patent Feb. 28, 2012 Sheet 57 Of 57 US 8,127,060 B2

Min Station delay Response fire(MissER) watchdog-g snable Welchdog tire base in ros so to precision: Ts)

Mode Support- - - Device Failure n (seout sin: Enable Tre s

Groups L 2

OPV Response Tegut 000

Figure 70 US 8, 127,060 B2 1. 2 METHODS AND APPARATUS FOR CONTROL perature and other environmental factors must be properly CONFIGURATION WITH CONTROL maintained. Control is also used in articles of manufacture, OBJECTS THAT ARE FIELDBUS from toasters to aircraft, to monitor and control device opera PROTOCOL-AWARE tion. Modern day control systems typically include a combina REFERENCE TO RELATED APPLICATIONS tion of field devices, control devices, and controllers, the functions of which may overlap or be combined. Field This application is related to U.S. patent application Ser. devices include temperature, flow and other sensors that mea No. 12/265,837, filed Nov. 6, 2008, entitled “Apparatus for Sure characteristics of the device, process or system being Control Systems with Objects that Are Associated with Live 10 controlled. Control devices include valves, actuators, and the Data, which is a continuation of U.S. application Ser. No. like, that control the device, process or system itself. 12/247,872, filed Oct. 8, 2008 and entitled “CONTROL SYS Controllers generate settings for the control devices based TEM EDITOR AND METHODS WITH LIVE DATA, on measurements from the field devices. Controller operation which is a continuation of U.S. application Ser. No. 1 1/434. is typically based on a "control algorithm' that maintains a 005, filed May 15, 2006 and entitled “METHOD ANDAPPA 15 controlled system at a desired level, or drives it to that level, RATUS FOR CONTROL CONFIGURATIONUSING LIVE by minimizing differences between the values measured by DATA', which is a continuation of U.S. application Ser. No. the sensors and, for example, a setpoint defined by the opera 09/572,343, filed May 17, 2000, entitled “METHODS AND tOr. APPARATUS FOR CONTROL CONFIGURATION WITH In a food processing plant, for example, a controller can be VERSIONING, SECURITY, COMPOSITE BLOCKS, used to maintain a Soup stock at a simmer or low boil. This is EDITSELECTION, OBJECT SWAPPING, FORMULAIC done by comparing measurements of vapor pressure in the VALUES AND OTHERASPECTS’ (now issued as U.S. Pat. processing vessel with a desired setpoint. If the vessel pres No. 7,272.815), which is a continuation of U.S. application Sure is too low, the control algorithm may call for incremen Ser. No. 09/448,223, filed Nov. 23, 1999, entitled “PROCESS tally opening the heating gas valves, thereby, driving the CONTROL CONFIGURATION SYSTEM WITH CON 25 pressure and boiling activity upwards. As the pressure NECTION VALIDATION AND CONFIGURATION” (now approaches the desired setpoint, the algorithm requires incre issued as U.S. Pat. No. 7,089.530) and is a continuation of mentally leveling the valves to maintain the roil of the boil. U.S. application Ser. No. 09/448,374, filed Nov. 23, 1999, Controllers may be networked or otherwise connected to entitled “PROCESS CONTROL CONFIGURATION SYS other computing apparatus that facilitate monitoring or TEM WITH PARAMETERIZED OBJECTS’ (now issued as 30 administration. The so-called S88 industry standard, U.S. Pat. No. 7,096,465) and is a continuation of U.S. appli described in Batch Control Part 1: Models and Terminology cation Ser. No. 09/448,845, filed Nov. 23, 1999, entitled (The International Society for Measurement and Control METHODS AND APPARATUS FOR CONTROLLING 1995), for example, defines a hierarchy of processing and OBJECT APPEARANCE IN A PROCESS CONTROL control equipment ("equipment entities”) that can be used to CONFIGURATIONSYSTEM (now issued as U.S. Pat. No. 35 model and control an automated manufacturing process. At 6,754,885) and which claims the benefit of priority of U.S. the lowest level of the hierarchy are control modules that application Ser. No. 60/134,597, filed May 17, 1999, entitled directly manipulate field devices (e.g., opening and closing INTEGRATED DESIGN AUTOMATION CONTROL valves) and, possibly, other control modules. At a higher STRATEGY CONFIGURATOR ARCHITECTURE"; the level, equipment modules coordinate the functions control teachings of all of the aforementioned applications (including 40 modules, as well as of other equipment modules, and may the forms thereof published by the United States Patent and execute phases of the manufacturing process (such as setting Trademark Office and the patents issued therefrom, includ controller constants and modes). “Units.” at still a higher level ing, by way of non-limiting example, U.S. Pat. Nos. 6,754, of the hierarchy, coordinate the functions of equipment and 885, 7,096,465, 7,089,530, 7,272,815), are incorporated control modules. Process cells orchestrate all processing herein by reference. 45 activities required to produce a manufacturing batch, e.g., scheduling, preparing and monitoring equipment or BACKGROUND OF THE INVENTION resources, and so forth. The principal function of controllers is executing control The invention pertains to control and, more particularly, to algorithms for the real-time monitoring and control of methods and apparatus for configuring control systems. 50 devices, processes or systems. They typically have neither the The terms “control' and “control systems’ refer to the computing power nor user interfaces required to facilitate the control of a device or system by monitoring one or more of its design of a control algorithm. Instead, the art has developed characteristics. This is used to insure that output, processing, configurators. These are typically general purpose computers quality and/or efficiency remain within desired parameters (e.g., workstations) running Software that permit an engineer over the course of time. In many control systems, digital data 55 or operator to graphically model a device, process or system processing or other automated apparatus monitor a device, and the desired strategy for controlling it. This includes enu process or system and automatically adjust its operational merating field devices, control devices, controllers and other parameters. In other control systems, such apparatus monitor apparatus that will be used for control, specifying their inter the device, process or system and display alarms or other relationships and the information that will be transferred indicia of its characteristics, leaving responsibility for adjust 60 among them, as well as detailing the calculations and meth ment to the operator. odology they will apply for purposes of control. Once mod Control is used in a number of fields. Process control, for eling is complete and tested, the control algorithm is down example, is typically employed in the manufacturing sector loaded to the controllers. for process, repetitive and discrete manufactures, though, it One well known process control system configuratoris that also has wide application in utility and other service indus 65 provided with the I/A Series(R (hereinafter, “IAS” or “I/A') tries. Environmental control finds application in residential, systems, marketed by the assignee hereof. These provide a commercial, institutional and industrial settings, where tem graphical interface (FoxCAE) permitting an engineer to US 8, 127,060 B2 3 4 model a process hierarchically and to define a control algo the bus master. That timing information can include and/or be rithm from that hierarchy. Multiple editors are provided for Supplanted by information pertaining to one or more of the defining and modifying modules within the hierarchy. A following: a master station address, a highest station address change management system, FoxCMS(R), also marketed by that can be assigned to the master station address, a minimum the assignee hereof, provides for logging of configuration slave interval, a data control time, a data transfer rate, a changes downloaded to controllers by the I/A Series system. maximum retry limit, a GAP update factor, a slot time, a Though prior art process control configuration systems, minimum station delay response time, a maximum station particularly, the IAS systems and others sold by the assignee delay response time, a setup time, a quiet time, a target rota hereof, have met wide acceptance in the industry, there tion time, and so forth-all by way of non-limiting example. remains room for improvement. Such is the case, for example, 10 In other related aspects of the invention, the download with respect to the configuration of complex control systems, service generates, as indicia of the information transferred to as well as with the tracking of configuration changes down the bus master, one or more XML files that include, for loaded to those systems. example, the names of transferred bus configuration fields, In this context, an object of the present invention is to parameters, etc., and their values. That information can be provide improved methods and apparatus for control and, 15 stored by the download service for retrieval and reporting particularly, for configuring control systems. A related object e.g., independently and/or along with other such information of the invention is to provide methods and apparatus for from past and future downloads to the same and/or other configuring a process control systems. devices in the system—to equipment operators, plant owners A further object of the invention is to provide such methods and other users. and apparatus as facilitate configuring large or complex con Further aspects of the invention provide apparatus as trol systems described above in which in lieu or in addition to object(s) Still yet a further object of the invention is to provide such representing a bus master, the model includes one or more methods and apparatus as can be used in configuring a range objects representing one or more respective devices that are of control systems, whether hierarchical or not, whether per slaves on a segment of the type described above, i.e., a seg taining to process control or otherwise. 25 ment defined and/or controlled by a bus master. Such object(s) can likewise include information defining a configu SUMMARY OF THE INVENTION ration of the segment. The download service of this and/or related aspects of the invention can transfer that information Field Bus Protocol-Aware Objects to the bus slave(s) and can also generate indicia of it for The foregoing are among the objects attained by the inven 30 logging to the change tracking system (e.g., for retrieval and tion, aspects of which provide improved apparatus for con reporting, as discussed above). figuring a control system. The apparatus includes a model In related aspects of the invention, the object(s) represent made up of objects representing, for example, the field ing the bus slaves in the model of an apparatus as described devices and other control devices that make up Such a system, above can include configuration information defining the tim including, at least one device that defines and/or controls 35 ing of information transfers on the segment. That timing communications on at least a portion of a network within that information can include and/or be supplanted by information system. That device is referred to, here, as a “bus master” and pertaining to one or more of the following: a minimum station the portion of the network is referred to as a “segment.” The delay response time, a watchdog time, Sync and Freeze mode object (or objects) representing the bus master can include support, a device failure timeout, groups definition, a DPV1 information defining timings, port assignments and/or other 40 response timeout, a failsafe flag, and so forth-all by way of aspects of the configuration of the segment. non-limiting example. A download service transfers configuration information In other related aspects of the invention, the download from objects in the model to devices in the control system. service generates, as indicia of the information transferred to These downloads can go directly to the respective devices or the bus slaves, one or more XML files that include, the names can go indirectly, e.g., via other devices in the control system 45 of transferred bus configuration fields, parameters, etc., and (such as controllers, field bus modules, and so forth). Regard their values. less, the download service can transfer to the bus master Further aspects of the invention provide apparatus as communications configuration information for the segment described above in which the segment is a field bus, e.g., that that it (the bus master) configures and/or controls. The down operates in accord with a Profibus standard, a Fieldbus Foun load service according to this aspect of the invention gener 50 dation standard, or otherwise. ates—e.g., for logging by a change tracking system indicia In other aspects, the invention provides apparatus for con of the configuration information transferred to the bus master. figuring a control system that includes a model as generally It can likewise generate for logging (again, by the change described above, as well as a download service that transfers tracking system) information transferred from the model to to the control system at least selected configuration informa other devices in control system. 55 tion from objects in the model, e.g., again, as generally Objects can represent, by way of non-limiting example, described above. That download service also generates for field devices, control devices, control processors, blocks, logging by a change tracking system indicia of at least loops, and compounds. They can also represent entities of a selected information transferred to the control systems control level hierarchy, e.g., sites, areas, process cells, units, devices. and the like. Parameters can include, for example, inputs, 60 The apparatus further includes an editor that permits direct outputs, alarm limits, and control functions. Attributes can and/or immediate editing of values stored in the bus master include, for example, parameter names, data types, data value device, including, definition and/or modification of values ranges, and so forth used by it for configuration and/or control of the segment. In related aspects of the invention, the object(s) represent That editor, which can use a combination of dialog boxes and ing the bus master in the model of an apparatus as described 65 other edit controls, responds to user input defining and/or above can include configuration information defining timing modifying one or more the values stored in the bus master by of transfers on the segment configured and/or controlled by generating indicia of the defined or changed values for log US 8, 127,060 B2 5 6 ging by the change tracking system. In addition to permitting limits, and control functions. Attributes can include, for Such direct and/or immediate editing of values in the bus example, parameter names, data types, data value ranges, and master device, the editor can store those values to one or more so forth. objects representing the bus master in the aforementioned To illustrate by way of a non-limiting example, an appara model. 5 tus according to the invention for use in configuring process In related aspects, the invention provides apparatus as control systems can employ an object to model a “conven described above in which the editor permits user definition tional analog input (AIN) field device of the type used in a and/or modification of one or more of the following values in particular product. That object can include output, high-high the bus master (as well as in the model) defining configuration alarm, high-low alarm and other parameters of the type used 10 for configuring such devices. One or more of these param of the segment: a master station address, a highest station eters, say, for example, the high-high alarm and high-low address that can be assigned to the master address, a mini alarm parameters, “track' attributes indicating that their mum slave interval, a data control time, a data transfer rate, a respective (alarm) values are to be logged to the change maximum retry limit, a GAP update factor, a slot time, a tracking system at download time. minimum station delay response time, a maximum station 15 The editor can be used to define a further object, one that delay response time, a setup time, a quiet time, and a target models an analog input device for use for high-temperature rotation time. measurements (throughout). That object can descend from Further aspects of the invention provide apparatus as the general AIN object and inherit its parameters, e.g., the described above in which in lieu or in addition to supporting high-high alarm and high-low alarm parameters, along with immediate and/or direct editing of values in a bus master, the their respective attributes—e.g., their alarm value and track editor Supports such editing of values in a bus slave. The attributes. The editor can be used, for example, to alter those editor can, likewise, respond to user input defining and/or attributes, e.g., changing the alarm values and disabling the modifying one or more those values (in the bus slave) by “track' attribute, say, for the high-low alarm of the new generating indicia of the defined or changed values for log object. ging by the change tracking system. In addition, it can store 25 When downloading the model to the control system, down those values to one or more objects representing the slave in load services can transfer alarm (and other values) from the the model. parameters of the objects to their respective entities in the Other aspects of the invention provide methods paralleling control system. Depending on the respective track attributes, operation of the apparatus described above. those services also transmit the downloaded values to change Change Tracking 30 tracking system for logging. In the example, high-high alarm and high-low alarm values from the general AIN object, while Still other aspects of the invention provide improved appa only the high-high alarm of the high-temperature AIN object, ratus for configuring a control system that includes a model are logged. that is made up of one or more objects representing one or In other related aspects of the invention, the download more devices in the system. The objects have parameters 35 service of an apparatus as described above generates, as indi reflecting characteristics of the devices represented by the cia of the transferred configuration information, one or more respective objects. At least one of those parameters is associ XML files that include, for example, the names of transferred ated with a “track' attribute indicating whether at least parameters and their values. That information can be stored selected configuration information transferred from that by the download service for retrieval and reporting e.g., object to the respective device in the control system is to be 40 independently and/or along with other such information from logged to a change tracking System. past and future downloads to the same and/or other devices in A download service transfers configuration information the system—to equipment operators, plant owners and other from objects in the model to devices in the control system. USCS. Those downloads can go directly to the respective devices or Further aspects of the invention provide an apparatus as can go indirectly, e.g., via other devices in the control system 45 described above in which at least one object of the model (such as controllers, field bus modules, and so forth). Regard includes a “lock' attribute. Depending on the value of that less, the download service according to this aspect of the attribute, the editor permits or prevents, e.g., a user, from invention generates for logging by the change tracking sys changing the track attribute of the corresponding parameter. tem indicia of that transferred configuration information. In related aspects of the invention, the “track' attribute of an Generation of those indicia is governed, at least in part, by the 50 object cannot be edited if an inherited “lock' attribute is “track' attribute associated with one or more of the param defined to prevent such editing at least until the “lock” eters with which the transferred information is associated. attribute of the ancestor is changed and/or the one or both According to further aspects of the invention, an object can parameters of the descendant are overridden. be created and/or otherwise defined as a descendant of an Continuing the example, if the “lock' attribute of the high existing object, using edit functionality (or "editor') of the 55 high alarm of the general AIN object is set to prevent modi apparatus. A descendant object inherits parameters from its fication of the “track' attribute of that same parameter, ancestor object(s). Such that a change to the latter is effective attempts by the user to change that attribute in that objector its as to the former. In related aspects of the invention, an editor high-temperature descendant object will fail—thereby ensur (or other such functionality) permits a user to edit parameters ing that the high-high alarm will be logged for both objects and attributes of an object, including the “track' attribute. 60 during download. As above, according to aspects of the invention, the objects In still further aspects of the invention, the download ser of the model utilized in an apparatus as described above can Vice of an apparatus as described above selectively transfers represent, by way of non-limiting example, field devices, configuration information from objects of the model to a control devices, control processors, blocks, loops, and com device in the control system based on information is a char pounds. They can also represent entities of a control level 65 acteristic of the device reflected other than in those objects. hierarchy, e.g., sites, areas, process cells, units, and the like. According to one such aspect of the invention, Such transfers Parameters can include, for example, inputs, outputs, alarm can be conditioned on values in a description file associated US 8, 127,060 B2 7 8 with the device. In a related aspect of the invention, the user FIG. 26 is a source/sink connectivity example in a system may override settings contained that file and/or otherwise according to the invention; force (or prevent) downloading of configuration information FIG. 27 depicts an users and security object model in a to the respective devices and/or logging of that information to system according to the invention; the change tracking system. FIG. 28 is an users and groups example in a system accord Other aspects of the invention provide methods paralleling ing to the invention; operation of the apparatus described above. FIG. 29 is a process area and assignable objects example in Still further aspects of the invention provide combinations a system according to the invention; of the systems, apparatus and methods described above. FIG. 30 depicts a permissions hierarchy in a system These and other aspects of methods and apparatus accord 10 according to the invention; ing to the invention are evident in the drawings and in the description below. FIG. 31 depicts a switch group/user capability in a system Methods and apparatus according to the invention have according to the invention; numerous advantages over the prior art. Among these is the FIG. 32 depicts managing groups in a system according to ability to quickly, flexibly and accurately design and modify 15 the invention; control configurations. FIG. 33 depicts assigning users to groups in a system according to the invention; BRIEF DESCRIPTION OF THE DRAWINGS FIG. 34 depicts groups, object types and permissions in a system according to the invention; A more complete understanding of the invention may be FIG. 35 depicts managing process areas in a system attained by reference to the drawings, in which: according to the invention; FIG. 1 depicts a a digital data processing environment of FIG. 36 depicts groups and process area permissions in a the type in which the invention is practiced; system according to the invention; FIGS. 2A-2B depict a process control system of the type FIG.37 depicts a system tree view in a system according to with which the invention is practiced; 25 the invention; FIG.3 depicts control algorithm configurator components FIG. 38 depicts a block definition editor in a system in a system according to the invention; according to the invention; FIG. 4 depicts component interaction in a system accord FIG. 39 depicts a block definition classes in a system ing to the invention; according to the invention; FIG. 5 depicts a framework object model in a system 30 FIG. 40 depicts a simple loop in a system according to the according to the invention; invention; FIG. 6 depicts an object model notation used in this appli FIG. 41 depicts a composite block definition in a system cation; according to the invention; FIG. 7 depicts a parameterized object model in a system FIG. 42 depicts a composite block in loop in a system according to the invention; 35 according to the invention; FIG. 8 depicts parameter group inheritance in a system FIG. 43 depicts an expanded composite block in loop in a according to the invention; system according to the invention; FIG.9 depicts a parameterized object example in a system FIG. 44 depicts a block with connections in a system according to the invention; according to the invention; FIG. 10 depicts the creation of a parameter list in a system 40 FIG. 45 depicts the anatomy of a block placeholder in a according to the invention; system according to the invention; FIG. 11 depicts a parameter definition editor in a system FIG. 46 depicts a block connection dialog in a system according to the invention; according to the invention; FIG. 12 is a parameter editor example in a system accord FIG. 47 depicts template/definition internal connections in ing to the invention; 45 a system according to the invention; FIG. 13 depicts object types in a system according to the FIG. 48 depicts template/definition exposed connections in invention; a system according to the invention; FIG. 14 depicts an object type hierarchy in a system FIG. 49 depicts a parameter property sheet in a system according to the invention; according to the invention; FIG. 15 depicts the creation of new object types in a system 50 FIG. 50 depicts a composite block property sheet in a according to the invention; system according to the invention; FIG.16 is a type awareness example in a system according FIG. 51 depicts a parameter formula builder in a system to the invention; according to the invention; FIG. 17 depicts a connection object model in a system FIG. 52 depicts control object derivations in a system according to the invention; 55 according to the invention; FIG. 18 depicts a parameterized object override endpoint FIG. 53 depicts a block object model in a system according triad in a system according to the invention; to the invention; FIG. 19 depicts an object connection type object model in FIG. 54 depicts a modifier block object model in a system a system according to the invention; according to the invention; FIG. 20 is an example of simultaneous parent/child object 60 FIG.55 depicts a modifier block parameter override pre connectivity in a system according to the invention; cedence in a system according to the invention; FIG. 21 depicts a parameter connection type object model FIG. 56 depicts a composite block definition object model in a system according to the invention; in a system according to the invention; FIG.22 is an example of simultaneous source/sink param FIG. 57 depicts a loop template object model in a system eter connectivity in a system according to the invention; 65 according to the invention; FIGS. 23-25 are parent/child connectivity examples in a FIG. 58 depicts a simple loop object model in a system system according to the invention; according to the invention; US 8, 127,060 B2 10 FIG.59 depicts a composite block object model in a system Provide a Virtual Machine Environment and That Communi according to the invention; cate Via an IP Network, the teachings of which are incorpo FIG. 60 depicts a template derived loop object model in a rated herein by reference. system according to the invention; Network 14 provides a communications medium permit FIG. 61 depicts object placeholder derivations in a system ting the downloading of control algorithms and other configu according to the invention; ration information to controllers 10A, 10B and other control FIG. 62 depicts persistent document object derivations in a devices 18, 24, 26 (or controlled apparatus), e.g., from work system according to the invention; station 11. It can also provide a medium for uploading infor FIG. 63 depicts a block execution scheduler editor in a mation from controllers 10A, 10B and other control devices system according to the invention; 10 18, 24, 26 (or controlled apparatus) to those other digital data FIG. 64 depicts a station statistics dialog in a system according to the invention; processors 11, 16. Still further, it can provide a medium for FIG. 65 depicts a block execution editor object model in a communications, real-time or otherwise, among and/or system according to the invention; between the controllers 10A, 10B and other control devices FIG. 66 depicts download target selection in a system 15 18, 24, 26 (or controlled apparatus) and other devices, e.g., according to the invention; workstation 11 and change tracking system 16. Though illus FIG. 67 depicts a download manager document object in a trated to representa LAN, WAN, or global network (Internet), system according to the invention; those skilled in the art will appreciate that element 14 may FIG. 68 depicts a download services object model in a represent any medium or mechanism through which control system according to the invention; algorithms and configuration and other information may be FIGS. 69-70 depict a field bus module editor and a field transported, electronically, physically or otherwise, to and device editor in a system according to the invention. from controllers 10A, 10B. Change tracking system 16 is a conventional system of DETAILED DESCRIPTION OF THE Such type known in the art for logging configuration informa ILLUSTRATED EMBODIMENT 25 tion downloaded to the control system, e.g., to controllers 10A, 10B and the other control devices (e.g., actuators 18, FIGS. 1-2 depict a digital data processing system of the sensors 24, 26, and other field devices) or controlled appara type with which apparatus and methods according to the tus. This can be for regulatory purposes, safety purposes, invention may be practiced. The illustrated system is particu maintenance purposes or otherwise, which the system 16 can larly adapted for use in connection with process control, as 30 additionally support, e.g., via retrieval and reporting services discussed further below. However, those skilled in the art will (discussed below). That logged information can include, by appreciate that apparatus and methods according to the inven way of non-limiting example, control algorithms, operational tion can be used in connection with other control systems. In parameters, I/O assignments, and so forth. In the illustrated this regard, Subsystems 12A, 12B can encompass any indus embodiment, the change tracking system 16 comprises a trial, manufacturing, service, environmental or other process, 35 change tracking (or management) system of the type known device or system under monitoring or control (hereinafter, in the art and/or commercially available in the marketplace, collectively, “control'). albeit as adapted in accord with the teaching hereof. By way The system of FIGS. 1-2 include a workstation 11 that is of non-limiting example, the change tracking system 18 may coupled to one or more control devices, here, controllers 10A, comprise FoxCMS(R), marketed by the assignee hereof, again, 10B, actuators 18, sensors 24, 26, and so forth, on some of 40 as adapted in accord with the teachings hereof. which reside process control algorithms for monitoring and/ An exemplary Subsystem 12A including a control process or controlling one or more processes within Subsystems 12A, is illustrated in greater detail in FIG. 2A. It shows an actuator, 12B. These may represent independent processes or different such as valve 18 (or other field device), that governs the rate aspects of the same or related processes. Moreover, the pro of fluid flow to aeration tank 20 which, in turn, transfers the cesses encompassed in Subsystems 12A, 12B may reside 45 liquid to storage tank 22. Field devices, i.e., sensors 24 and within a single plant, site or area, cell or unit or, conversely, 26, monitor the state of process 12A and, thereby, facilitate its they may dispersed among many plants, sites, areas, cell or control by controller 10A which executes a control algorithm units. 28. Thus, sensor 24 is disposed in or adjacent to tank 20 for Workstation 11 represents an engineering workstation, measuring the temperature of fluid therein, while sensor 26 personal computer, mainframe computer or other digital data 50 measures the flow of fluid from aeration tank 20 to storage processing device Suitable for operation in accord with the tank 22. The illustrated actuator (valve 18), sensors 24, 26 and methods described herein for purposes of modeling a control other field devices (not shown) in the illustrated subsystem system and configuring controllers 10A, 10B and other con may of the “smart' variety or otherwise. In this regard, trol devices (e.g., actuators 18, sensors 24, 26, and other field “smart” field devices are those of the type known in the art devices—of the “smart' variety or otherwise) or controlled 55 that may, for example, include embedded processors and/or apparatus in accord with the teachings herein. Though illus other logic Suitable for advanced configuration and/or opera trated as being carried out on workstation 11, those skilled in tional modes—including execution of control algorithms of the art will appreciate that the modeling and configuration their own. functions described herein can be executed on suitably con FIG. 2A further illustrates a control algorithm 28 of the figured controllers 10A, 10B or other control devices (e.g., 60 type that can be configured by methods and apparatus accord smart field devices or other control devices those having ing to the invention. Here, the algorithm 28 is executed by Sufficient processing power and interfaces to provide the controller 10A to communicate with and/or coordinate opera graphical and other configuration functions described tions of the field devices 18, 24, 26 and, thereby, to control the herein). A discussion of the use of Smart field devices and processes being carried out in Subsystem 12A. The algorithm other control devices for modeling and control is provided, by 65 28 includes blocks or other entities 29, 30, 32, that model way of example, in U.S. Pat. No. 6,788,980, entitled “Meth those field devices—and, more generally, that model those ods and Apparatus for Control Using Control Devices That and other control devices and other elements within sub US 8, 127,060 B2 11 12 system 12A or, more generally, in system 10 and that moni figuration system, and the like, according to the invention for tor and/or control the states and interactions between those use in modeling and configuring control processes, as well as entities. for logging downloaded configuration information for FIGS. 2A and 2B further illustrate that one or more of the change tracking. That system can be constructed and operated control devices—e.g., controllers 10A, 10B and the other in the manner of process control “configurators' of the type control devices (e.g., actuators 18, sensors 24, 26, and other known in the art—as adapted in accord with the teachings field devices) or controlled apparatus—can be coupled for hereof. Thus, by way of example, it can be constructed and communication via portions of the network 14, here, network operated in the manner of the process control configurator segment 14a. Those segments can comprise any network referred to as the “IDA Control Algorithm Configurator, and media known in the art and/or available in the marketplace 10 the like, in aforementioned incorporated-by-reference U.S. Suitable for Such purposes. Thus, by way of non-limiting Pat. No. 6,754.885—again, as adapted in accord with the example, referring to FIG. 2B, the segment 14a of the illus teachings hereof. trated embodiment comprises a Profibus field bus and can Overview include a bus master, e.g., by way of non-limiting example, a By way of overview, the Configurator employs objects (or field bus module or “FBM 19, that configures and/or con 15 other data and/or programming constructs) to represent the trols communications on the segment 14a. It can also include devices that make up a control system, the entities that define bus slaves, here, actuators 18, sensors 24, 26, and other field the control algorithms executed by those devices, the pro devices, whose communications on the segment determined cesses or systems being monitored and/or controlled by those by Such a master. devices and algorithms, as well as the entities within the Illustrated FBM 19 comprises any conventional control configuration apparatus itself. device of such type (e.g., a field bus module) known in the art In the illustrated embodiment, the objects represent, by Suitable for serving as a bus master, as adapted in accord with way of non-limiting example, field devices, field bus modules the teachings hereof. In addition to configuring and/or con (FBMs), control devices, control processors, blocks, loops, trolling communications on segment 14a in the conventional compounds, bus masters, bus slaves, networks, field buses, manner of a bus master (here, for a Profibus and, again, as 25 historians, object type categories, object connections, param adapted in accord with the teachings hereof), the FBM 19 eter connections, display placeholders, graphical display may serve other functions, e.g., providing power to the bus entities, and reports—all by way of non-limiting example. slaves or otherwise, by way of non-limiting example. Though They also represent entities of a control level hierarchy, e.g., shown here as a field bus module, it will be appreciated that sites, areas, process cells, units, and the like. Thus, by way of the bus mastering function may be provided by other control 30 non-limiting example, the Configurator utilizes objects to devices, instead or in addition. represent the elements shown in FIGS. 1, 2A and 2B, includ The bus slaves can comprise any conventional control ing, but not limited to the bus master (FBM) 19 and bus slaves devices of Such type known in the art, as adapted in accord (e.g., actuator 18 and sensors 24, 26). with the teachings hereof, e.g., whose communications on the By way of further example, the Configurator employs segment are determined by the bus master. Thus, for example, 35 “connection” objects to indicate the permissibility of rela these are devices that communicate on the segment only in tionships between other types of objects. Indeed, the Con response to polling by and/or queries from the bus master figurator can validate potential relationships between those and/or during time slots predetermined by the bus master or other objects by comparing their types with the permissible otherwise. Those skilled in the art will appreciate that these combinations identified in connection objects. To illustrate, a are only examples of modes of communications by bus slaves 40 user can employ an editor to select objects that represent field and that bus slaves that communicate in other modes are devices and indicate (e.g., via a drag-and-drop operation, a contemplated hereby, as well. As noted, in the illustrated menu option or other command) that she wishes to establish embodiment, the bus slaves comprise actuator 18 and sensors a relationship with an object that represents a control proces 24, 26. It will be appreciated that these are examples and that sor. The Configurator validates that relationship, and deter other devices may comprise bus slaves instead or in addition. 45 mine its type, by comparing the proposed combination As noted, illustrated segment 14a operates in accord with against permissible pairings in the connection objects. the Profibus standard. In alternative embodiments, the seg The objects are stored in the database(s) discussed below ment 14a can be compatible, instead or in addition, with the and are alternatively referred to as the “database' and/or the Fieldbus Foundation standard (i.e., a “Fieldbus Foundation “model. They are depicted in the object diagrams provided in link”), the Hart standard, the Modbus standard, or otherwise, 50 the figures attached hereto and discussed herein, as well as by and can include (as applicable) bus masters and/or slaves the graphical and textual representations thereof (typically, in necessary and/or desirable to practice in accord with those the context of the editors), again, in the figures attached hereto standards. and discussed herein. Entities 29, 30, 32 comprise software components which Parameters, discussed below and elsewhere herein, define may include, by non-limiting example, source, intermediate 55 characteristics of each object and, therefore, of the element or or executable code, databases, of the type conventionally used entity the object represents. Depending on the type of object, in the art for operating controllers, field devices, control these include inputs, outputs, alarm limits, control functions devices and other control equipment. Referenced in this and display characteristics, among others. Each parameter regard in the discussion below are software components, and can have attributes that define the parameter's value and other process control systems in general, marketed as the I/A 60 attributes. These include, for example, parameter name, Series(R) systems (hereinafter, “IAS or “I/A') available from parameter grouping, display label, data type, behavior, help the assignee hereof. Those skilled in the art will appreciate information, edit type, data value range, formula definition, that methods and apparatus according to the invention can be and display format. used to model processes and configure control algorithms for Objects used by the Configurator can be defined or modi use with other control systems, as well. 65 fied without recompilation. This is, in part, because the Described below is a system, referred to here as the Control parameters on which they are based can be assigned and Algorithm Configurator, the Configurator, the illustrated con modified during configuration and, in this regard, are analo US 8, 127,060 B2 13 14 gous to data. To this end, the Configurator includes the edit The database forms part of an object oriented database functionality discussed below, by way of non-limiting management system (OODBMS), which may be any type example, and referred to herein as "editors. that facilitate commercially available in the marketplace. The database can definition, during configuration, of the association between be deployed in a client/server configuration with a single parameters and their respective objects. centralized database per plant servicing multiple clients, or These edit capabilities or "editors' permit, among other otherwise. In the illustrated embodiment, it resides on the things, the user to configure a process control system. Using workstation 11, e.g., or on a digital data processor coupled a graphical user interface of Such an editor, for example, a therewith. user can "drag-and-drop' an object that models one system Part 1—Framework Classes component (e.g., a printer) onto an object that models another 10 component (e.g., an applications workstation), indicating that 1 Framework Object Model the user wishes to establish a relationship between those two FIG. 5 presents the primary component parts of the overall objects. Framework object model of a Configurator according to one The editors also permit an object to be defined as a descen practice of the invention in this case, the IDA Configurator dant of another object at the time of configuration. An object 15 described in incorporation-by-reference U.S. Pat. No. 6,754, so defined derives parameters from its ancestor which, in turn, 885. Though the Framework object model of other embodi derives parameters from its own ancestors, and so forth. ments may differ, the illustrated model may be broken into Unless otherwise overridden, a change to the parameters of an two major areas: ancestor object is effective as to its descendants, regardless of 1. Parameterized Objects. whether that change is made before or after the descendant is 2. Framework Services, which are provided in order to defined or instantiated. Thus, for example, the characteristics allow controlled access to those objects, and how they of an entire ancestral “family' of objects can be changed, might be used to display, print and otherwise manipulate simply, by modifying the distant-most ancestor object. Parameterized Objects. To illustrate by way of a non-limiting example, an appara In the discussion that follows object classes and their vari tus according to the invention for use in configuring process 25 ous associations are represented in the manner shown in FIG. control systems can employ an object to model a “conven 6. tional analog input (AIN) field device of the type used in a 1.1 Objects and Parameters particular product. That object can include output, high-high Almost all objects in the Configurator are parameterized— alarm, high-low alarm and other parameters of the type used i.e., their type is determined by the parameter set they support, for modeling Such devices. The Configurator can be used to 30 and the data that these objects represent is contained within define a further object, one that models an analog input device their associated parameters. Parameterized objects have the for use in high-temperature environments. That object can capability to inherit their parameter set from another Param descend from the general AIN object and inherit its param eterized Object which acts as the definition for the new object. eters, e.g., the high-high alarm and high-low alarm param A Parameterized Object’s definition is, itself, a Parameter eters. Configuration-time changes to the parameters of the 35 ized Object. general AIN object can automatically carry through to the Using Parameters to define an objects type, and the data high-temperature AIN object, thus, facilitating configuration associated with it, provides the following capabilities: of the process control system. Parameters represent data—they arent compiled-in As evident in the discussion below, the Configurator per behavior. mits association of an object with parameters other than those 40 Parameterized Objects support data inheritance—a Param inherited from ancestors. Thus, for example, a high-tempera eterized Object inherits its structure and default values ture AIN object that inherits parameters from a general AIN from its defining object. object can be defined to include additional alarm parameters. Any object can override the default value of various Though definition of the additional alarm parameters does not attributes of an associated Parameter. Referred to as affect the parent object (i.e., the general AIN object), it does 45 parameter instantiation by exception, only the Parameter carry through to children, grandchildren, etc., of the high attributes that differ from their defaults are instantiated, temperature AIN object. and attached to the object. Referring to FIG. 3, a configuration system according to Parameters associated with a Parameterized Object can one embodiment of the invention includes a Framework, a also be changed by the application of a modifier object, Database, a project manager and a set of editors. The Frame 50 effectively overriding the default value(s) of any match work provides common resources, such as menus, toolbars, ing Parameters. dialogs, and security services, used by the editors to manipu A change to a Parameter in a Parameterized Object acting late, display and report configuration data stored in the model/ as a definition is reflected in all the Parameterized configuration database. In one practice of the invention, the Objects that are derived from the defining Parameterized Configurator and Framework are packaged as a single appli 55 Object. cation. This software package can be installed on either a Parameterized Objects can extend their definition by add stand-alone PC, workstation (e.g., element 11 of FIG. 1) or ing additional Parameters. other digital data processor, e.g., running Windows NT or any Parameters are organized into groups, each group contain other Suitable operating system. ing logically-related Parameters. Groups can be pre The editors are used by the implementation creator to cre 60 defined and/or defined by the user. ate and maintain standard control scheme definition objects Given the complex nature of Parameterized Objects and distributed with the implementation and by users to create their parameter sets, a simple interface for the developer is their own plant control schemes. The Project Manager allows provided in which it appears that a Parameterized Object the user to browse through the project configuration hierar consists of a self-contained, cohesive set of parameters when chies and data. Interactions among the editors and the project 65 in reality, data inheritance, parameter overrides, and modifi manager/navigator are shown, by way of non-limiting cations are all acting together to determine final parameter example, in FIG. 4. values. US 8, 127,060 B2 15 16 1.1.1 Object Model An instance of Parameterized Object may be associated The overall object model for Parameterized Objects, and with Zero or more other Parameterized Objects that are Parameterized Object Collections is depicted in FIG. 7. referred to as Modifier Parameterized Objects. The 1.1.1.1 Parameterized Object Parameter Values in the Modifier Parameterized Objects A Parameterized Object is a persistent object. The param are used to override the parameters of the Parameterized eters associated with a Parameterized Object are both locally Object. An instance of a Parameterized Object can have defined (as depicted in the object model) and inherited. The Zero or more of these modifiers to modify their param locally defined parameters are those defined by the Parameter eters. If an object has more than one modifier, the modi Definition objects. The inherited parameters are those that are fications are made in the order that the modifier objects inherited through an association to another Parameterized 10 were applied, with the resulting overrides representing Object typically serving as a definition. the accumulative effect of having applied all the modi A Parameterized Object has an ordered one-to-many asso fications. ciation with the Parameter Definition object. This rep The Framework provides the method(s) necessary in resents the set of locally defined parameters which order to determine the behavior of a modifier object. “belong to, and ultimately define, this object. 15 By default, the Parameter Values in the Modifier A Parameterized Object maintains a list of parameter over which arent associated with any Parameter Defini rides, in the form of Parameter Value and/or Parameter tions (local or inherited) of the object being modified Override objects. Parameter Value objects are used to are ignored. However, there may be circumstances override the actual parameter value, and other important under which a developer needs to have all Parameter attributes such as high and low limits. Parameter Over Definitions applied to the object being modified, ride objects are used to override all othereditable param potentially adding new parameters to the object. eter attributes. Only inherited parameters are overrid 1.1.1.2 Parameterized Object Collection Classes den—locally defined parameters simply have the A Parameterized Object Collection is just that—a collec appropriate attribute value changed within the associ tion of one or more Parameterized Objects. Applications pro ated Parameter Definition. 25 grams can add or delete elements from the collection, and A Parameterized Object has an association to another iterate through it. Parameterized Object Collections have the Parameterized Object from which it inherits parameters. ability to support multiple collections. For example, a loop It is a Zero-or-one association, and is referred to as its could collect both blocks and connections, whereas a com Definition, or parent, Parameterized Object. If a Param pound could have a separate collection of blocks for each eterized Object does not have a definition, then it is 30 control Zone. considered to be a root Parameterized Object. A root Consequently, the Parameterized Object Collection classes Parameterized Object defines all of its parameters, not have been separated into two classes, each of which will be relying on another object to inherit them from. If a able to support many different collection types, which include Parameterized Object has a Definition Parameterized Lists (insert after/before), Arrays (indexed access, and “null Object association, then the Parameterized Object is a 35 locations), and possibly Maps (or Dictionaries). These col derived Parameterized Object. The derived Parameter lection classes are: ized Object gets its parameters by inheriting them from 1. Single-Collection. Instances of this class contain a single the defining object and by adding its own through local collection, presented as a single ordered list of objects. Parameter Definition associations. 2. Multiple-Collection. Instances of this class contain mul A Parameterized Object maintains a list of other Param 40 tiple, named collections. These named collections are eterized Objects that inherit its parameters. A Parameter references to instances of collections (i.e., instances of ized Object whose parameters are inherited by other the Contained Collections) which are managed by the parameterized objects is referred to as a Definition, or Multiple-Collection instance. Each collection within a parent, Parameterized Object. There is no limit as to the Multiple-Collection object can be a different type (for number of objects for which a Parameterized Object can 45 example, a list and an array). act as a definition. 1.1.1.3 Parameter Definition A Parameterized Object maintains an ordered list of The Parameter Definition object defines the values for the Parameter Groups associated with it. This association attributes in a parameter. Even though it is only directly gives the Parameterized Object an ordered set of labels associated with one Parameterized Object, it may indirectly to put on the tabs of the Parameterized Objects property 50 belong to many other Parameterized Objects via the param page tabs while being edited, or on tabs at the top of the eter inheritance mechanism described in the discussion on Parameterized Object editor. Parameter Groups, in turn, Parameterized Objects. maintain an association with Zero or more Parameter The parameter object consists of a set of attributes. The Definitions. attribute set is compiled-in behavior, and the value of each The Parameter Definition order maintained by the 55 attribute is changed as needed to satisfy the requirements of Parameterized Object applies across all Parameter the associated Parameterized Object. A Parameter Definition Groups that the parameters belong to. In other words, does not exist alone, but only in the context of a Parameterized if parameter A comes before parameter B in the asso Object. ciation between Parameterized Object and Parameter In the illustrated embodiment, the attribute set for a Param Definition, then A will preferably appear before B 60 eter Definition is as follows: whenever the two parameters are displayed in the Name The unique identifier for accessing the parameter Same group. within a Parameterized Object. There cannot be more A Parameterized Object may be contained within a param than one parameter in a Parameterized Object with the eterized object collection object, which may be either a same name. This is the name used when downloading single- or multiple-collection instance of Parameterized 65 the parameter to a target machine. Object collection. In turn, parameterized object collec Group A list of Parameter Groups which this parameter tions may contain Zero or more parameterized objects. belongs to. US 8, 127,060 B2 17 18 Label An internationalizable string used to label the where the Parameter Definition was originally defined. Over Parameter in the user interface. rides of a locally defined Parameter Definition simply replace Data Type Specifies the data type of the Parameter. Integer, the appropriate value within the Parameter Definition itself. float, boolean, and string are examples of a data type. A Parameter Value is associated with one, and only one, Depending on implementation, the length of the data can 5 Parameter Definition, by name. Attributes of the same be eitheran attribute of the data itself or of the Parameter Parameter Definition, however, may be overridden by Definition. Can also be implemented via sub-classes of multiple ParameterValues when viewed in the context of Parameter Definition. the Parameterized Object hierarchy chain. Behavior Specifies a set of behaviors the Parameter exhib The final value of any parameter attribute is determined by its. Examples include whether the parameter could be 10 traversing the Parameterized Object hierarchy back to edited or associated with another Parameter. This can be the object's root, then sequentially applying overrides implemented as a bitmask. (and/or modifiers) appropriately going forward down Help Specifies internationalizable help associated with the the objects hierarchy chain. particular Parameter Definition. The help consists of Each Parameterized Object maintains a list of zero or more both a verbose and terse version. The verbose version is 15 Parameter Value objects. This list represents the set of used by the help system and the terse version is used for locally defined value overrides associated with this Such things as short messages and tool tips. Parameterized Object. Edit Specifies a specific control type used to edit the value 1.1.1.5 Parameter Override attribute The Parameter Override object is used by a Parameterized Control associated with the Parameter Definition. This edit Object to override attributes of inherited parameters other control type is used than value, high range, and low range. Attributes which are Type by any application editing this parameter, whether it typically overridden using this object include which param is displayed in a property sheet, or in a spreadsheet eter groups a parameter belongs to, format, and help strings. format. A Parameter Override object is derived from the Parameter Range Specifies a range of valid values for the Value 25 Value class. As such, it inherits all the behavior and attribute. attributes of the Parameter Value class in terms of exist Value Specifies the value of the Parameter. This value is ing by exception only, and how the final value of type specific which is specified by the type attribute. attributes modified within a Parameter Definition are Formula Provides a placeholder to contain the user-pro determined. vided formula for Parameter Definitions which have 30 A Parameter Override has a “special relationship to their Value attribute determined by a formula. Parameter Groups, in that one of the attributes of a Format Specifies a C-printf type specification for display Parameter Definition is a string containing all of the ing the value attribute. names of the groups which that parameter belongs to. In The illustrated embodiment additionally adds the follow this relationship, the same Parameter Override may ing attributes as part of the standard Parameter Definition: 35 specify many Parameter Groups. In turn, the same Track Specifies whether this Parameter should be logged to Parameter Group may be referenced by several Param the change tracking system when the Parameter value (or eter Overrides, resulting in a many-to-many relation formula) is downloaded to the corresponding device in the ship. As with other relationships dealing with Parameter control system. Values are “enabled (changes should be Values and Overrides, this one is resolved by parameter logged) and "disabled' (changes should not be logged). 40 aC. Lock Specifies edit permissions for the Track attribute. Values 1.1.1.6 Parameter Group are (i) “unlocked' (the Track attribute can be changed), (ii) The parameter set that defines the structure of a Parameter “locked' (the Track attribute cannot be changed). ized Object is segregated into named Parameter Groups. The Parameter Definition object has a many-to-many asso These groups are directly related to the tabs contained within ciation to the Parameter Group object. A Parameter Defi 45 the property sheet for the Parameterized Object when it is nition can belong to many groups, allowing the param edited, as well as the tabs visible on the Parameterized Object eter to be displayed in multiple tabs on a Parameterized editor. Each parameter defined in an object belongs to one or Object property sheet. The order of parameters within more Parameter Groups. any Parameter Group is determined by the ordering Parameterized Objects inherit their Parameter Groups in maintained by the Parameterized Object. 50 the same way they inherit Parameter Definitions. As depicted The Parameter Definition object has a many-to-one asso in FIG. 8, a Parameterized Object may add additional groups ciation to the Parameterized Object. Although it may be to the inherited list. The order of Parameter Groups, and the inherited by several Parameterized Objects, a Parameter parameters within those groups, is also inherited, and is deter Definition belongs directly to (locally defined by) one mined by the ordered list of parameters maintained by the and only one Parameterized Object. A Parameterized 55 Parameterized Object hierarchy chain. Object contains an ordered set of zero or more Parameter In FIG. 8, an object Foxboro PID is associated with two Definitions. groups, A and B. Group A contains two parameters, X and Y. 1.1.1.4 Parameter Value while Group B contains parameters M and N. A new object is An instance of the Parameter Value object is created when created, using Foxboro PID as its definition object. A new ever specific attributes of a Parameter Definition instance are 60 group, C, has been defined for My PID, which contains overridden—namely, value, high range and low range. Any parameters W and X. A new parameter, Z, has been added to other attribute of a Parameter Definition which is overridden the inherited group, A. is specified by a Parameter Override object. It is important to When the object My PID is edited, a property sheet with note that a Parameter Value exists by exception only in three tabs appears. The tabs are labeled A, B and C. If the user other words, it exists only if the associated Parameter Defi 65 edits group A, parameters X,Y and Zare shown, in that order. nition is overridden by a Parameterized Object located Note that if a change is made to the value for parameter X, and “down the ancestral tree from the Parameterized Object switches to group C, the new value for X will be displayed. US 8, 127,060 B2 19 20 The user can add new parameters (and define their order) to edit the Value attribute of a parameter on any object. The an inherited group, but not change the order of any of the property sheet can appear as FIG. 12. When the user double inherited parameters contained in the group. All inherited clicks on a Parameterized Object, or in some other way acti parameters appear first on the property page, followed by the Vates an editing session on a Parameterized Object, a property parameters which were added locally. Similarly, the user can sheet is created and displayed by the Framework. The indi add local groups, but cannot change the order of inherited vidual property pages within the sheet correspond to each groups when displayed on the property sheet. Local groups Parameter Group found to be associated with the object being appear after inherited groups. edited. Each page, in turn, displays only those parameters 1.1.2 A Simple Parameterized Object Example which have been associated to the corresponding Parameter The example in FIG. 9 shows how a parameter set of a 10 Group. simple Parameterized Object is constructed. Parameterized The current values of each parameter in the group are object “Y” has an association to its definition “X”, and is displayed, providing the user with the ability to change the modified by “Z”. A call to a method to retrieve on parameter values of configurable parameters, possibly creating Param ized object “Y” (depicted as “GetParameters' in the example) eter Override objects. The “look-and-feel of each parameter results in the list of parameters as shown. 15 value displayed on the property page is determined by the edit The Parameterized Object has the capability to construct a control type which was associated with the corresponding list of parameter objects that are associated with it. The Parameter Definition. parameter list for a Parameterized Object is composed from Some parameter values (such as an entire sequence block) two sources: the parameters that are inherited (including all require something more Sophisticated in order to edit it. In overrides and modifiers, possibly in levels up the parameter these cases, a button containing an ellipses (...) appear next inheritance tree), and the parameters which have been defined to the field, and when pressed, display the appropriate editor. locally. FIG. 10 shows a instance model of the objects In the event that a Parameter value is derived from a user involved in constructing a parameter list for a simple Param specified formula, the formula is also displayed, and allowed eterized Object. to be changed, on the property page. Listed below are the steps that a Parameterized Object 25 Track and Lock Attributes takes when it is asked for a list of its parameters. Take note of Referring back to FIG.1, one or more parameters of objects step 2, which causes recursive behavior in that the inheritance that model controllers 10A, 10B and other control devices tree is traversed all the way to the root Parameterized Object. (e.g., actuators 18, sensors 24, 26, and other field devices) or The root Parameterized Object constructs a parameter list, controlled apparatus include “track’ and “lock' attributes. In finishes all 5 steps outlined below, and then returns that list to 30 the illustrated embodiment, the “track' attribute is a Boolean the next Parameterized Object down, and so, until the original or other value indicating whether (or not) configuration infor calling Parameterized Object gets a list from step two. It then mation contained in that parameter is to be logged to the finishes steps 2, 3, 4, and 5 and the list is complete. change tracking system 16 when it (the configuration infor Step Action mation) is downloaded to the corresponding device, e.g., 1 The application asks for the parameter list of a Param 35 control device or controlled apparatus. As with other inher eterized Object. ited parameters, the “track' attribute applies not only to the 2 If there is a definition object, traverse the inheritance tree parameter of an object in which it is directly defined or modi in order to add its parameters to the list first (this con fied in the first instance but, also, to any descendant object that tinues back to the root definition object). inherits that parameter. Logic for effecting the foregoing 3 If there are any Parameter Value and/or Override asso 40 behavior and, specifically, this logging (or not) of down ciations, then apply those to their respective inherited loaded configuration information can be provided in the parameters in the parameter list. Download Services discussed below, in view of the teachings 4 If there are any Parameter Definition associations, then hereof. add those new parameters to parameter list. The “lock' attribute is a Boolean or other value indicating 5 If there are any Modifier Parameterized Object associa 45 whether (or not) the “track' attribute of that parameter of that tions, then apply their Parameter Definition associations object can be edited, i.e., defined or modified, to change its as if they were Parameter Override associations to their value from “locked” (or Boolean “true') to “unlocked' (or respective parameters in the parameter list. Boolean “false') and vice versa. If “lock” is true, editors of 1.1.3 Framework User Interfaces for Parameterized Objects the illustrated configuration system will not permit Such edit Two user interfaces are supplied by the Framework for 50 ing; if false, they will permit such editing. Logic for effecting working with Parameterized Objects on a daily basis. The first this behavior and, specifically, permitting (or not) editing of user interface supplied by the Framework to manipulate “track' attribute can be provided in the Framework (e.g., as Parameterized Objects is a generic Parameter Definition Edi part of the Parameter Definition Editor, the Parameter Prop tor, which could appear as shown in FIG. 11. The Parameter erty Sheet, or otherwise) in view of the teachings hereof. Definition Editor is an interface which allows Parameter 55 In the illustrated embodiment, the “lock' attribute applies Definitions to be created for a Parameterized Object. This not only the the “track' attribute of the corresponding param interface will most likely be utilized by someone with admin eter of the same object, but also to that of descendant objects. istrative and/or Supervisory capability. Thus, for example, if "lock' attribute is defined or modified to FIG. 11 provides a depiction of the Parameter Definition a value of “true’ in a parameter of one object, editors of the Editor. The Framework automatically provides the menu and 60 illustrated embodiment will not permit editing of the “track' toolbar services which the editor may need, a tabbed tree pane attribute of any descendant objects—unless a system Process (shown on the left side of the figure), and a generic view pane Engineer (or other user with Sufficient security permissions) which the application programmer can use for just about defines an override parameter for the descendant object(s) or anything—e.g., a graphical "canvas', or a grid control able to alters the value of the “lock' attribute in the ancestor object. display data in a spreadsheet-like format. 65 Although in the illustrated embodiment, “track’ and The second user interface is a generic Parameter Property “lock” are defined as attributes of specific parameters, it will Sheet mechanism which is used whenever anyone needs to be appreciated that they may be defined and/or applied at US 8, 127,060 B2 21 22 differing levels of granularity. Thus, for example, either or though an object type can only be directly associated with one both may be defined just once (e.g., in a designated param type category, it may indirectly be associated with several eter) for each object and treated as if applying to all param type categories depending upon where it is in the type hier eters of the object. archy. Every instance of ObjectType has a pointer back to its 1.2 Object Types containing type category, regardless of whether its acting as All configurable objects have an associated classification, a simple object type, or a type category itself. or type, which they inherently belong to. An objects type is All instances in the ObjectType hierarchy are able to act as used to classify what it is, and is used primarily to segregate collections of Typed Objects. That is, each ObjectType is able objects into groupings of objects exhibiting similar appear to maintain a list of all Typed Objects which are directly ance and behavior (e.g., an AW70 and AW51, although both 10 application workstations, have different physical characteris associated with the type itself. For example, all instances of tics which necessitates distinguishing between them at con an AIN block will contain a pointer back to the AIN instance figuration time. Thus, multiple instances of AW70's would of ObjectType. In turn, the AIN instance of Object Type will each have a unique identifier in the configuration, but each maintain a list of all instances of AIN blocks in the configu would have a type of AW70). 15 ration. This containment is meant to be only one level deep— As used here and hereinafter, the symbols AwXXX, where in other words, there is no need for I/A Block, the containing XXX is a number, identifies an applications workstation avail instance of AIN, to also maintain a list of all AIN blocks able from the assignee hereof. The Foxboro Company, or (although nothing in the design would prevent it, if desired). other digital data processing apparatus. The term FBM or Additionally, each instance of the Object Type hierarchy symbol FBMXXX, where XXX is a number, identifies a field which serves as a reference for a Typed Object requires a device available from The Foxboro Company, or other field definition reference to the defining Parameterized Object device for use in process control. The term CP refers to a which defines that Typed Object. This relationship provides control processor or other digital data processing apparatus quick access to the definition object when a symbolic repre suited for that function. sentation of that definition is dragged and dropped into a view. The Framework provides methods to return an objects 25 For example, if the user clicks and drags an AOUT definition type to the application. This type information may be used for (either from the System Hierarchy, or from a library template) a number of reasons, including: preliminary lookup to see if to a view, then drops it, this relationship provides access to the two objects can establish a connection; satisfy a search which Parameterized Object which actually defines an AOUT block uses a type filter, display of type information on an objects so that it can be created quickly. placeholder. 30 Since an Object Type which can be referenced by a Typed The concept of type may be further abstracted into the Object requires a reference to the defining Parameterized concept of type category, which is a broader classification of Object, only those instances in the Object Type hierarchy be type. Several object types may belong to the same category used to serve as the collection point for those same types of (e.g. an AW70 and AW51 both belong the category Applica objects as they are created. If an Object Type doesn’t have a tion Workstation). All objects in the same category exhibit the 35 defining reference, is not a container of Typed Objects. same general behavior as that defined by that category. For The ObjectType class is an abstract class—no instances of example, an FBM would be an object type category, whereas Object Type may exist in the database. Subclasses of Object an FBM02 and FBM04 are examples of specific object types. Type are the implementation-standard ObjectType class, and Consequently, it is convenient to think of object types as the User-Defined Object Type class. The Object Type class being contained within a type hierarchy. Each branch in the 40 contains those methods common between the two Subclasses, hierarchy would correspond to an object type category, e.g. methods used to Support the hierarchical relationship(s) whereas the leaves, or endpoints, of each branch would cor in the type hierarchy, the containment relationship to Typed respond to specific object types. The remainder of this section Object class, and the reference to its associated definition will present the data model, with examples, of this type hier Type Object instance. archy for the illustrated configuration system. 45 Summarizing relationships: 1.2.1 Object Model An instance of an Object Type is directly associated with The object model used in the illustrated embodiment to one, and only one, other ObjectType in the type hierar support the concept of object types is shown in FIG. 13. chy, and may represent either a type category, or an 1.2.1.1 Base Type actual object type, depending upon where it resides in This abstract base class is used only as a placeholder for 50 the hierarchy. For example, in the hierarchy containing data and methods common to all “type-ish' Module->FBM->FBM04, object types Module and classes. The only one shown in the illustration is ObjectType, FBM represent type categories, and FBM04 represents but this can be expanded to include other types such as Param an object type. eter Type, etc. The Object Type class is an abstract class, and instances of 1.2.1.2. Object Type 55 this class cannot exist. An instance of an ObjectType is An objects type is used to classify what it is—i.e., all preferably either a User-Defined Object Type, or a objects of the same type have the same appearance, and implementation-standard Object Type. behave identically, differentiated only by minimal differences The Object Type class is hierarchical, with branches rep in associated data (e.g. name, ID, etc.) which is used to resenting type categories, and leaves being object types. uniquely identify them. 60 The hierarchy is restrictive—that is, an implementation The ObjectType class is hierarchical the branches of the standard Object Type is preferably contained within a hierarchy represent type categories, with the leaves, or end implementation-standard hierarchy, whereas a User-De points, of the hierarchy being actual object types with which fined ObjectType can appear virtually anywhere in the objects are associated. Instances of Object Types are Param hierarchy (but ultimately also contained within a imple eterized Objects, and may only be directly associated to a 65 mentation-standard type category). single type category (i.e., a specific object type cannot belong Instances of the Object Type class contain a reference to to more than one type category). Note, however, that even their containing type category. US 8, 127,060 B2 23 24 Instances of the Object Type class which can serve as a there can be many instances of User X Block Type 1 in reference for a Typed Object maintain a list of all the the configuration). This relationship is strictly optional, Typed Objects of that same type which exist in the and User-Defined Object Types may exist without ever configuration. having been referenced by an object. Those same instances of the Object Type class maintain a An instance of a User-Defined Object Type may appear reference to the Parameterized Object which is capable anywhere in the type hierarchy. In other words, a User of acting as the defining object for creating Typed Defined Object Type may be directly associated with Objects of that type. eithera Implementation-standard, or user-defined, type FIG. 14 depicts an example of how the object type hierar category. chy can appear in the Configurator. As mentioned previously, 10 When created, an instance of a User-Defined ObjectType within the type hierarchy, branches form type categories, to may be designated as needing to appear in the system which one or more object types belong. In the example shown hierarchy. in FIG. 14 are all examples of type categories. Within the 1.2.1.5 Typed Object category Block Types, AIN Block, AOUT Block, and PID A Typed Object is a Parameterized Object which is able to Block are examples of implementation-standard object types, 15 be inserted into an I/A configuration, and is considered an and User-X Block Types is an example of a user-defined integral part of the configuration, in Such a way that the object type. configuration would be considered incomplete without it. 1.2.1.3 Implementation-Standard Object Type Examples of typed objects include CPs. FBMs, blocks, loops, All objects which can be typed inherently belong to one and compounds. Objects such as graphical objects used to Object Type (or type category)—that is the implementation enhance documentation would not be considered Typed standard Object Type. Additionally, these objects may also Objects. optionally be associated with a User-Defined Object Type. Typed objects inherently have an associated Implementa Each instance of implementation-standard Object Type tion-standard object type. The fact that an object is config defined in the database may be specified as the inherent type urable is determined by whether or not its inherent object type for one or more configuration objects. All Implementation 25 is or not. Typed Objects may also have a User-Defined Object standard Object Types have a direct association with a type Type associated with them, although this relationship is category, which is preferably also be Implementation-stan optional. dard. In other words, a Implementation-standard ObjectType One further restriction: at creation, a Typed Object is pre may not be associated with a user-defined type category. vented from associating with an Object Type (and thereby All Implementation-standard Object Types have three 30 prevented from being created), unless that Object Type also additional attributes—they are: configurable—all instances references an associated defining Parameterized Object of this object type are able to be configured in an I/A configu which acts as the definition for the Typed Object being cre ration; assignable—all instances of this object type are able to ated. In an alternate embodiment, when a Typed Object is be assigned to a process area; and downloadable—able to be created and a reference made to its associated ObjectType, if realized (as an entity) on a target platform. Whether an object 35 that Object Type doesn’t have a reference to the defining type is configurable, assignable and/or downloadable is deter Parameterized Object, it simply uses the one from the Typed mined at the time the instance of the Implementation-stan Object itself. dard ObjectType is created. Summarizing relationships: Summarizing relationships: The Typed Object is a subclass of Parameterized Object. The Implementation-standard Object Type class is a sub 40 An instance of a Typed Object has an inherent Implemen class of Object Type. tation-standard Object Type associated with it, which An instance of a Implementation-standard Object Type is the user cannot modify, or change. This object type inherently associated with one or more instances of determines whether or not the Parameterized Object is Typed Object (e.g., there can be many instances of an configurable, assignable to a process area, and/or down FBM04 in the configuration). 45 loadable to a target system. An instance of a Implementation-standard Object Type An instance of a Typed Object may have an optional User preferably belongs to a type category which is in the Defined ObjectType associated with it. This association Implementation-standard Object Type hierarchy. In is in addition to the Implementation-standard Object other words, going back along the type hierarchy chain Type. from a Implementation-standard Object Type, one 50 There may be occasions where it would be desirable to would only find Implementation-standard type catego change the type of an object, without having to delete the 1S. original object, then create an object of the correct type. One When created, an instance of a Implementation-standard example of where this capability could be useful would be Object Type may be designated as needing to appear in being able to change a station type after a configuration has the system hierarchy. 55 already been created, and all associations and connections 1.2.1.4 User-Defined ObjectType established (this happens often). An alternate embodiment Users may create their own, customized object types, accordingly, permits the type of an object to be dynamically which may be assigned to typed objects. The primary purpose charged. of a User-Defined Object Type is to allow the user to create 1.2.1.6 Configuration their own object classification system in the event that the set 60 The Configuration class exists to serve as an entry point Implementation-standard Object Types doesn't satisfy all into the two primary hierarchies which comprise the configu their needs. ration itself the System Hierarchy, and the Plant Hierarchy. Summarizing relationships: These two hierarchies are, however, by no means mutually The User-Defined ObjectType class is a subclass of Object exclusive. The primary method(s) and data incorporated in Type. 65 this class exist to serve the establishment and maintenance of An instance of a User-Defined Object Type may be asso hierarchical relationships. Other configuration-wide data ciated with one or more instances of Typed Object (e.g., and/or methods may also reside with this class. US 8, 127,060 B2 25 26 1.2.1.7 System Hierarchy Copy. In this create method, the new object type is created The System Hierarchy represents those objects which are by copying the existing object type, and is instantiated in contained within the configuration, and are organized by vari the type hierarchy at the same level as the object type ous categories, primarily object type. There are potentially which was copied. several subclasses of System Hierarchy objects in the System Derive. In this create method, the new object type is created Hierarchy itself. However, for present purposes, only two of by using an existing object type as its parent, thereby these subclasses are discussed: treating the old object type as a type category. Definition Hierarchy. This portion of the System Hierarchy In order to finish creating the new object type, the user deals with the display of definition objects, or those additionally specifies such things as: objects which act to define other Typed Objects (e.g., an 10 Configurable. Specifies whether or not all objects associ AIN block definition). Within the Definition Hierarchy, ated with this object type are able to be configured in definition objects may be organized in a number of terms of security (i.e., a user's access to an object is libraries. These libraries are either implementation-stan determined by the user's group access to the objects dard or defined by the user. 15 type). If an object type is not configurable, objects cre Components Hierarchy. This portion of the System Hier ated which are associated with that object type will not archy deals with the display of actual instances of con be affected by security mechanisms. figured objects, and may not, themselves, act as defini Downloadable. Specifies whether or not all objects associ tion objects. ated with this object type are downloadable to a hard All other subclasses within the System Hierarchy simply ware target. Note that this option will be dimmed, and represent another view of existing configuration components. not available for selection if the object type being For example, a Network Hierarchy could display a view of the described is a User-Defined object type. configuration from a System Definition point of view, show Assignable to System Hierarchy. Determines whether or ing a hierarchy of networks, nodes, stations. FBMs and other not an object is visible within the System Hierarchy hardware. Since the only grouping of configuration objects in 25 when the hierarchy is viewed from the tree control. the current design is by object type, these subclasses have to Assignable to Process Area. Determines whether or not an use the relationships specified in the Connections discussion object associated with this object type can be assigned to in order to know what to display (i.e., by network, by location, a process area. etc.). To edit an existing instance of an Object Type, a dialog The primary reason that subclasses exist within the System 30 Hierarchy is due to the differences in behavior when dealing similar to the one shown in FIG. 15 is displayed, already with objects in each subclass. For example, the act of drag populated with the information dealing with this object type ging and dropping an object from the definition portion of the (i.e., the configurable, assignable and/or downloadable flags System Hierarchy results in the creation of a Typed Object of checkboxes are selected appropriately). the propertype, whereas when an object from the components 35 When an object type is edited, the only things that can be portion of the System Hierarchy is dragged and dropped, it changed are the object's description, and whether or not the results in that object being copied and placed in the view, or object is configurable, assignable and/or downloadable. connected to another object, depending upon where it was Some of the attribute and assignable selections may be dis dropped. abled when the object type is displayed, depending upon the The visible portion of the System Hierarchy tree control 40 settings of the object type's containing category. actually consists of two types of elements: actual instances of To delete an instance of an ObjectType in the hierarchy, the System Hierarchy objects (of which there are few), and user must preferably explicitly decide to remove it. If the derived (non-persistent) instances of tree control objects. object being deleted is a type category, the user is informed, Actual instances of the System Hierarchy may reference one and asked if they wish to continue if they confirm the delete, or more instances in the ObjectType Hierarchy. This relation 45 then everything in the type hierarchy from the object type ship provides the mechanism by which the majority of the downward is removed. visible System Hierarchy is constructed dynamically as ele 1.3 Parameterized Object Connections ments are “exploded by the user in the tree control. A configuration consists not only of objects, but objects 1.2.1.8 Plant Hierarchy which are related to each other in a number of ways. These The Plant Hierarchy also represents those objects which 50 relationships may be physical (e.g. a serial connection are contained within the configuration, but are organized by between a serial printer and a station) or logical (e.g. a host location, rather than by type. This hierarchy represents relationship between an AP and a CP, or a collection point another view of already-existing configuration components, relationship between a block and an historian). These rela and may be constructed using a Subclass of System Hierarchy. tionships are all called connections. 1.2.2 Managing Object Types 55 Establishing a connection actually requires two different The user can create a new instance of an Object Type by levels of “hand-shaking between the two objects involved. selecting “New’ on a pulldown menu within the definition Consequently, the subject of connectivity is divided into two portion of the System Hierarchy. Alternatively, a sections: “New Object Type' menu selection is available on any Con 1. The first level represents the connectivity which is estab figurator application. However the user chooses to perform 60 lished between two objects. Although easy to envision this task, the action can result in the display of a dialog box (e.g. the connection between a block and a compound), similar to that in FIG. 15. In this example, the user enters the there is no actual database association which is actually new ObjectType, and provides a description for the new type. created at the object level. Additionally, the user picks an already existing object type in 2. The second level represents the connectivity which is the type hierarchy to act as its “template” type, or object type 65 established between two parameters. The database asso to be used to create from. The user can create a new object ciation is established at this level, and is the mechanism type from an existing one in two ways: by which two objects establish a relationship. US 8, 127,060 B2 27 28 1.3.1 Type Awareness 1.3.3 Connection Object Model Any Parameterized Object in the illustrated has an inherent FIG. 17 depicts the classes used in the illustrated embodi Implementation-standard object type. This object type, in ment to support connectivity at the object level. This shows turn, has a direct relationship to a single type category, but the model used to Support a source (parent) Parameterized may be indirectly related to several type categories. Object, connecting to the sink (child) Parameterized Object. In FIG. 16, an instance of an AW70X (with control) knows that it’s an AW70X, by virtue of the fact that AW70X is its The model is not intended to Suggest that two connectable inherent Implementation-standard object type. However, the parameters of the same object can’t be connected together instance is preferably also “aware” that it is also an AW70, NT (i.e., the same Parameterized Object can be both source and Application WorkStation, or control processor (here, identi sink at the same time). An example of when this might occur fied as a “Z-Module, in reference to a control processor 10 is a calculation output parameter (conventionally referred to available from the assignee hereof. The Foxboro Company), as "BCALCO) parameteracting as calculation input param going backward through the type hierarchy. This awareness eter (conventionally referred to as “BCALCI) parameter in may be used in a number of ways, particularly when a process the same I/A block. is dealing with the concept of object types at different granu 15 One aspect of the object model needs to be explained in larities. For instance, when dragging a specific serial printer order to understand it fully. When a Parameterized Object is across a representation of the AW7OX mentioned above, the created, no Parameter Override or Endpoint objects exist. The printer may not “know’ that it can connect to an AW70X, but Override and Endpoint objects only get created whenever a it may know that it could establish a connection to an NT Connection is about to be established. When a Connection is Application Workstation. The Framework provides methods about to be established, the appropriate Parameter Override for allowing the application developer to “walk’ the type object and Endpoint object are instantiated, and as depicted in hierarchy tree in order to obtain the direct, and all the indirect, type categories which a specific object type is related to. FIG. 18, these two objects each maintain a reference to their 1.3.2 Source/Sink Vs. Parent/Child Relationships associated parameterized object, as well as to each other, A connection in the illustrated system can describe a allowing iteration over an objects connections from either Source/Sink, or Parent/Child relationship between two 25 direction. objects. There are very subtle differences in the two types of 1.3.3.1 Connection relationships, but they are different enough to warrant sepa A Connection contains the data and methods that defines a ration of behavior. A Parent/Child relationship is typically relationship, or link, between two Parameterized Objects (or used to model the relationship between two objects in a hier more specifically, between two connectable parameters). In archical, or containment relationship whereas a Source/Sink 30 an I/A relationship, a connection could can be used to model relationship is usually used in a peer-to-peer type of relation the logical relationship between two blocks, or the host rela ship. These differences are presented in the table below: tionship between two stations, etc. In order to take into account the complex relationships that 35 a Connection can have with other classes (esp. Placeholder classes), a Connection is a Parameterized Object. This allows Relation Data Data Description Connections to be primarily data driven, rather than compiled Parent Capacity Data represents the maximum combined “weight of behavior, allowing the establishment of connections with new the children which can be associated to that object. Child Weight Data represents the weight of a single instance of the objects to be done in an easier fashion. For example, some child object. 40 Connections probably are not displayed in a graphical envi Source Min, Max Specifies the minimum and maximum number of ronment (Such as the relationship between an historian and its connections to other objects, or sinks, which can be Supported by that object. Supports the concept of a associated historizable points). Whether or not to display a “fan-out capability. Connection is, preferably, parameter-driven. Sink Min, Max Specifies the minimum and maximum number of A Connection in the illustrated system can be a Parent/ connections from other objects, or sources, which 45 Child relationship, or a Source/Sink. In order to exist, a Con can be supported by that object. Supports the nection preferably has exactly one Source (or Parent) End concept of a “fan-in capability. point, and one Sink (or Child) Endpoint. However, the two endpoints may exist without a Connection having yet been An example of a Parent/Child type relationship would be established between them. As mentioned previously, the end that of a CP to its connected FBMs. The CP acts as a parent in 50 points of the Connection will not be instantiated until the that it acts as a common control connection for all the FBMs Connection itself is about to be established. Conversely, end which are physically connected to it. The CP is able to support point objects remain persistent even after the associated Con a certain number of FBMs. Each FBM, in turn, acts as a child nection has been removed. in that it relies on the CP to perform certain duties, and it Graphically, connections between two objects will be con contributes a specific weight toward the total capacity Sup 55 nected at the edge of the rectangular area representing each ported by the CP. object. The system will also support connections connected to In both Parent/Child and Source/Sink connections, the a point at the center of the object as well. Connections are concept of fan-in and fan-out is valid. A fan-out connection represented by segmented polylines made up of alternating can be used to model a relationship in which the source horizontal and Vertical segments. The system also supports (parent) object Supports connections to one or more sinks 60 single segment lines representing an association. (children) objects in the database. One example of such a Summarizing relationships: a Connection is a Parameter connection type is a output (or “PNT) parameter on an AIN ized Object; a Connection, if it exists, preferably has both a block and its associated output signal flows. The PNT param Source (or Parent) and a Sink (or Child) Endpoint. Note, eter, acting as a source, would provide measurement values to however, that certain operations (e.g. selection state) deal one or more input parameters (conventionally referred as 65 with the Association, and only one (or none) of its associated “MEAS” or “SPT) in other blocks, each input parameter Endpoints; a Connection has a relationship to an Association acting as a sink. Placeholder. US 8, 127,060 B2 29 30 1.3.3.2 Connection Endpoint The Sink/Child Endpoint may only be the sink (child) of a A Connection Endpoint is an abstract class from which all single connection. The Sink/Child Endpoint may exist with connection endpoints are derived. No instances of this class out a Connection to a Source/Parent Endpoint. may exist by themselves. The Connection Endpoint contains Summarizing relationships: a reference to the Parameter Override which is either the 5 A instance of a Sink/Child Endpoint is associated with one, Source (parent) or sink (child) parameter representing one end and only one, Parameterized Object. The Parameterized of a connection. Object, in turn, maintains a list of all Sink/Child End Connection Endpoints provide a mechanism for associat points associated with it. ing the connection to the object. The endpoints relate the Each instance of a Sink/Child Endpoint may be associated 10 with only one Connection. Connection to the Parameter Override to (or from) which the Each instance of a Sink/Child Endpoint is directly related Connection is attached. Endpoints also relate the Connection to the connectable Parameter Override it represents. to the position (side/direction, or center) where the Connec 1.3.4. Object Connection Type Object Model tion is attached to the object. Each Connection Endpoint is FIG. 19 depicts additional classes used in the illustrated described by two coordinates, the side of the object it is on, 15 embodiment to support connectivity at the object level. and the relative position of the endpoint along the side of the 1.3.4.1 Object Connection Type Specifier rectangle representing the parameterized object. This allows The primary function of the Object Connection Type the endpoint to retain its relative position along the side, even Specifier is to provide a list of ObjectTypes to Parameterized if the object is resized. Objects, allowing objects to be “extended' such that they Connection Endpoints only come into existence whenever encapsulate the behavior of an object in terms of being a a connection between any two objects (or parameters) is parent/child, or source/sink. The Object Connection Type about to be established. Once the Framework approves the Specifier is an abstract class from which four basic object creation of the connection, it instantiates the endpoint class connection type specifiers are derived: parent, child, Source instances, along the associated parameter overrides, inserting and sink. a reference to the parameterized object in each. 25 Each Object Connection Type Specifier is directly related Connection Endpoints have a direct relationship to a Point to a Parameterized Object, and is used to help determine the Placeholder, allowing a depiction of the endpoint itself to be nature of connectivity that the Parameterized Object is displayed on the screen. allowed to participate in. The same Parameterized Object can Summarizing relationships: act simultaneously as a parent (or source) and a child (or The Connection Endpoint class is an abstract class, and no 30 sink). This gives rise to the one-to-many relationship between instances of it may exist in the illustrated configuration Parameterized Object and Object Connection Type Specifier system. This class is further specialized into Source? shown in the model Sink Endpoints, and Sink/Child Endpoints. In the example shown in FIG. 20, an Historian acts as a Each instance of a Connection Endpoint has a reference to parent to all historized points associated with it, yet simulta a Point Placeholder. 35 neously acts as a child when discussed in terms of being 1.3.3.3 Source/Parent Endpoint associated with a software host. As used herein and through A Source (or Parent) Endpoint is the endpoint which is out, a “historian' is a block or other functionality used to track specific to the source (or parent) end of the Connection parameter values during runtime operation of a process con between two Parameterized Objects, and is a simple sub-class trol system configured in accord with the teachings hereof. of the abstract Connection Endpoint class. The Parameterized 40 Each parameter so tracked is referred to as a “point,” a “his Object maintains a list of its Source/Parent Endpoints. The torized point, or the like. In the illustrated embodiment, the Source/Parent Endpoint can be the source of several connec object type for a Historian is the same, no matter how many tions, supporting “fan-out” connectivity. The Source/Parent Object Connection Type Specifiers a Parameterized Object Endpoint may exist without a Connection to a Sink-Child may be associated with. Endpoint. 45 Summarizing relationships: Summarizing relationships: The Object Connection Type Specifier class is used to An instance of a Source/Parent Endpoint is associated with relate instances of Parameterized Objects with Object one, and only one, Parameterized Object. The Param Types eterized Object, in turn, maintains a list of all Source/ Each instance of an Object ConnectionType Specifier sub Parent Endpoints associated with it. 50 class is directly related to the Object Type it represents. Each instance of a Source/Parent Endpoint may be associ The same Object Type may be associated with one or ated with one or more Connections. This Supports the more Object Connection Type Specifiers. concept of a “fan-out” relationship, which is valid for Each instance of an Object ConnectionType Specifier sub both Parent/Child as well as Source/Sink type relation class is directly related to the Parameterized Object it ships. 55 represents. It is possible for the same Parameterized Each instance of a Source/Parent Endpoint is directly Object to be associated with more than one Object Con related to the connectable Parameter Override it repre nection Type Specifier. SentS. Each instance of an Object Connection Type Specifier is The Endpoint object can support the concept of a reference referenced in one or more instances of the Object Con counter, which represents the number of connections cur 60 nection Type class, with the added sense of whether or rently associated with it. not the referenced specifier represents a source/parent, 1.3.3.4. Sink/Child Endpoint VS. sink/child in a potential connection. A Sink (or Child) Endpoint is the endpoint which is specific 1.3.4.2 Parent Object Connection Type Specifier to the sink (or child) end of the Connection between two Parent Object Connection Type Specifiers extend the Parameterized Objects, and is a simple sub-class of the 65 abstract Object Connection Type Specifier class to handle abstract Connection Endpoint class. The Parameterized object types capable of fulfilling a parent role when connect Object maintains a list of its Sink/Child Endpoints. ing to another object. As such, they specify the capacity, or US 8, 127,060 B2 31 32 total weight, of all the child objects which they are capable of 1.3.4.7 Source/Sink Object Connection Type Specifier Supporting, and provide other functionality used by a parent Examples object. The table below illustrates the data which needs to be Examples of a Parent Object Connection Type Specifier considered at the object level for each valid source/sink con would include a CP which has the capacity to support 48 5 nection. FBMs in an I/A field bus relationship, an AP which allows two serial printers to be connected via a serial connection, or an historian able to support 4000 collection points. In a preferred embodiment, any object capable of playing a Source ObjectType Connection Type Sink ObjectType 10 parent role keeps track of the total “weight of the connec AIN Block Connection PID tions which have been established for each connection type it PID Block Connection AOUT is able to support. This value can be associated with the parameter associated with the endpoint of a connection. 1.3.4.8 Object Connection Type 1.3.4.3 Child Object Connection Type Specifier 15 Instances of the Object Connection Type class provide a Child Object Connection Type Specifiers extend the means of establishing the outermost layer of connectivity abstract Object Connection Type Specifier class to handle object types capable of fulfilling a child role when connecting between any two objects. This class is used to describe the to another object. As such, they specify their weight which “legal combinations of object types or type categories (i.e., they will contribute to the total accumulative weight when Source/Sink vs. Parent/Child) which are able to form a con connecting to a parent. Examples of Child Object Connection nection. These connections can be physical (e.g. an electrical Type Specifiers include an FBM connecting to a CP, or a serial signal flow between a serial port and a serial device) or logical printer connected to an AP. Each connection causes the total (e.g. a host relationship between an AP and a CP, or a collec accumulative weight for that connection type to be incre tion point association between a block and an historian). mented by the child's weight. Prior to actually establishing a There are two relationships that each instance of an Object connection, the Framework checks to ensure that the weight 25 Connection Type has with the Object ConnectionType Speci Supported by the parent object does not exceed its capacity for fier class—one is used to specify the source (parent) type, and that connection type. If it does, the connection attempt will the other is to specify the sink (child) type. In this way, the fail, and the application program will be informed that the Object Connection Type class acts as a join table, relating two pending connection is no longer feasible. object types to determine whether there is a potential connec 1.3.4.4 Parent/Child Object Connection Type Specifier 30 tion possible. This class is therefore used as an initial “filter Examples to determine whether two objects are able to establish a con The table below illustrates the data which needs to be nection before the more complex negotiation between two considered at the object level for each valid parent/child con parameters is allowed to continue. nection—namely: When examining instances of the Object Connection Type Capacity (This value specifies the total weight which the 35 class to see if two object types can form a valid connection, parent object type is able to Support for the associated the Framework may encounter more than one instance which connection type); and satisfies the criteria. If this occurs, the user will have to Weight (This value specifies the amount of capacity con manually resolve the ambiguity, and select the connection sumed whenever a child object of this type is attached to type being sought. the parent). 40 While making a determination as to whether two object types can connect together or not, the Framework takes into account the fact that instances of Object Connection Types may not go all the way “down” to the object type level, but Parent Child may specify type categories instead. In this manner, for ObjectType Capacity Connection Type ObjectType Weight 45 example, a specific type of serial printer could be specified as Historian 4000 Historian Historizable Point 1 being able to be connected to all NT application workstations, CP40 48 Fieldbus FBM 1 rather than specific types of NT stations. The Framework AW70 2 Serial Serial Printer 1 takes into account type “awareness', which was discussed in IE32 4 Nest 1x8Cell 1 a previous section, in order to accomplish this. APS1 unlimited Software Host CP40 1 50 Summarizing relationships: Each instance derived from an Object Connection Type 1.3.4.5 Source Object Connection Type Specifier contains references to two Object Types—one for a Source Object Connection Type Specifiers extends the Source (Parent) ObjectType, the other for a Sink (Child) abstract Object Connection Type Specifier class to handle Object Type. These object types are paired together to object types capable of fulfilling a source role when connect 55 determine whether a request to connect two objects ing to another object. There are no additional data or methods together is “legal’, or valid, depending upon what types beyond those provided by the Object Connection Type Speci of objects they are. fier class. This subclass provides consistency and flexibility The Object Connection Type class contains methods during implementation. which, when given two object types, allows the applica 1.3.4.6. Sink Object Connection Type Specifier 60 tion developer to determine which object type is acting A Sink Object Connection Type Specifier extends the as the source (parent) object, and which one is acting as abstract Object Connection Type Specifier class to handle the sink (child) object. object types capable of fulfilling a sink role when connecting In order to efficiently implement type “awareness”, a bit to another object. There are no additional data or methods masking operation can be used, in which each unique type beyond those provided by the Object Connection Type Speci 65 category, as well as object type, gets assigned a unique bit fier class. The subclass provides consistency and flexibility mask value. By “oring all of the bitmasks together of all the during implementation. type categories which an object belongs to, the matter of US 8, 127,060 B2 33 34 comparing an objects type bitmask with that of the types represents. It is possible for the same Parameter Over contained in each instance of the Object Connection Type ride to be associated with more than one Parameter class becomes a single operation, rather than a series of string Connection Type Specifier. compares. Each instance of a Parameter Type Specifier is referenced 1.3.5 Parameter Connection Type Object Model in one or more instances of the Parameter Connection FIG. 21 depicts the classes used in the illustrated embodi Type class, with the added sense of whether or note the ment to support connectivity at the parameter level. Note that referenced specifier represent a source/parent, vs. sink/ the class structure presented in FIG. 21 closely parallels that child in a potential connection. of the object connection type object model presented in FIG. 1.3.5.3 Parent Parameter Connection Type Specifier 19. 10 Parent Parameter Connection Type Specifiers extends the 1.3.5.1 Parameter Type abstract Parameter ConnectionType Specifier class to handle The Parameter Type class is just that—a class used to parameters capable of fulfilling a parent role when connect describe all the various types of connectable parameters ing to another object. There are no additional data or methods beyond those provided by the Parameter Connection Type which can exist in I/A. Examples of Parameter Types includes 15 Specifier class. The Subclass provides consistency and flex serial ports, serial devices, analog input, analog output, his ibility during implementation. torian hosts, and historizable points. Any “connectable' 1.3.5.4 Child Parameter Connection Type Specifier parameter in I/A preferably has an associated Parameter Child Parameter Connection Type Specifiers extends the Type. Summarizing relationships: abstract Parameter ConnectionType Specifier class to handle A Parameter Type is a base class providing I/A with types parameters capable of fulfilling a child role when connecting of connectable parameters. No parameters will be to another object. There are no additional data or methods allowed to be related to an endpoint in a Connection beyond those provided by the Parameter Connection Type unless it is also represented by a Parameter Type found in Specifier class. The Subclass provides consistency and flex an instance of this class. ibility during implementation. Each Parameter Type may be associated with one or more 25 1.3.5.5 Parent/Child Parameter Connection Type Specifier Parameter Connection Type Specifiers, which provide Examples additional information regarding connectability for that The table below presents some examples that have a parent/ specific Parameter Type. child relationship. The Parameter Type class can be implemented as another type category in the Object Type hierarchy. In this manner, 30 any code developed to deal with object types (esp. if imple menting bitmask operations) may also be used to deal with Parent Parameter Type Connection Type Child Parameter Type parameter types. Serial Port Serial Connection Serial Device Historian Logical Historian Historizable Point 1.3.5.2 Parameter Connection Type Specifier Parallel Port Parallel Connection Parallel Device The primary function of the Parameter Connection Type 35 Specifier is to provide a list of Parameter Types to Parameter 1.3.5.6 Source Parameter Connection Type Specifier Definitions, and to fine-tune the “connectable-ness' of that Source Parameter Connection Type Specifiers extend the Parameter Definition with the connection. The Parameter abstract Parameter ConnectionType Specifier class to handle Connection Type Specifier class is an abstract class, from 40 Source-type endpoints of a connection. As such, they will which four basic parameter connection type specifiers are specify the minimum and maximum number of sinks with derived: parent, child, source and sink. which they are able to establish a Connection. Examples of a Each Parameter Connection Type Specifier is directly Source Parameter ConnectionType Specifier would be an I/O related to one or more connectable Parameter Definitions, and point in I/A, represented by the PNT parameter in a AIN is ultimately used to describe the nature of connection that the 45 block. The PNT parameter acts as the source for signals parameter is allowed to participate in. The parameter to act flowing to one or more input parameters. simultaneously as a parent/source, and a child/sink, thus the 1.3.5.7. Sink Parameter Connection Type Specifier one to many relationship between Parameter Override and Sink Parameter Connection Type Specifiers extend the Parameter Connection Type Specifier. abstract Parameter ConnectionType Specifier class to handle In the example shown in FIG. 22, a MEAS parameter 50 sink-type endpoints of an association. As such, they will override acts as a source for other input parameters (e.g., a specify the minimum and maximum number of sources with MEAS parameter in a REALM block), yet simultaneously which they are able to establish a connection. An example in acts as the sink when connected to a parameter Such as a PNT I/A of a Sink Parameter Connection Type Specifier would be parameter in an AIN block. Note that the parameter type a MEAS or SPT parameter in a PID block, either of which is “MEAS is the same, no matter how many Parameter Con 55 able to receive signal input from another block. nection Type Specifiers a parameter override may be associ 1.3.5.8 Source/Sink Parameter Type Specifier Examples ated with. The table below presents some examples which that have a Summarizing relationships: Sourcelsink relationship. The Parameter Connection Type Specifier class is used to relate instance of Parameter Overrides with Parameter 60 Types. Source Sink Each instance of a Parameter Connection Type Specifier Parm. Type MiniMax Connection Parm. Type MiniMax subclass is directly related to the Parameter Type it rep PNT 1/unlimited Block Connection MEAS 1f1 resents. The same Parameter Type may be associated PNT 1/unlimited Block Connection SPT Of1 with one or more Parameter Connection Type Specifiers. 65 BCALCO 1f1 Block Connection BCALCI Of1 Each instance of a Parameter Connection Type Specifier subclass is directly related to the Parameter Override it US 8, 127,060 B2 35 36 The “Min’ data associated with a Sink represents an 6 Perform the same action for the Sink(Child) object optional/required feature, with a Zero (0) representing an parameter definition using the Sink(Child) parameter optional connection, and a one (1) representing a required type which was paired with the Source(Parent) param connection. eter type used in step (5) above. 1.3.5.9 Parameter Connection Type 7 Create the appropriate Parameter Override(s) with their Instances of the Parameter Connection Type class repre associated Source(Parent) and Sink(Child) Endpoints sent the innermost layer of associativity between any two (note that they may already exist from previous connec objects. This class is used to describe the “legal combina tion). tions of parameter types which are able to form a connection. 8. Create the instance of the Connection. If more than one These connections can be physical (e.g. an electrical signal 10 connection is permissible, a preferred or default connec flow a serial port and a serial device) or logical (e.g. a collec- tion is automatically selected. tion point connection between a MEAS parameter and an The final responsibility for establishing a connection historian). between two objects rests with the methods responsible for There are two relationships that each instance of a Param- negotiating the "handshake' between the two parameters. eter Connection Type has with the Parameter Connection 15 These methods check for adequate capacity on the Source Type Specifier class—one is used to specify the Source (par- (parent) object, and establish the actual connection instance ent) type, and the other is to specify the sink (child) type. In itself. This code resides with the source object or the sink this way, the Parameter Connection Type class acts as a join object. table, relating two parameter types together to determine the Parameter-level connections can be automatically estab connection endpoints. This class is therefore used as the final 20 lished as described in steps 4-8 above. In addition, they can be “filter to determine whether two objects are able to establish established via direct operator intervention. Through a drag a connection. and-drop operation, menu selection or otherwise, the operator 1.3.6 Establishing a Connection identifies two parameters between which a connection is to be The listing below represents the sequence of events which established. After verifying that a relationship can exist preferably occur before a Connection can be made between 25 between the objects themselves (e.g., as described in steps two pparameters. This logic9. is used when an obiect is bein9. 13, above), the Parameter Connection Type. Specifier is "dragged' around the view, looking for a drop target. Addi- checked to insure that the combination is permissible. If so, dragged g Ior plarg the necessary Parameter Overrides are created. tionally, this logic is valid whether the object being dragged 1S In some embodiments, the creation of certain connections a potential Source/Parent in a relationship, or Sink/Child. between parameters causes other to be automatically estab Level 1- Object to Object 30 lished. These are referred to as master and slave connections Step Action Performed (or “connection propagation'). By way of example, once a 1 Click and begin "dragging object in view—cursor connection is established between the PNT parameter of an changes to a drag cursor. AIN object and the MEAS input parameter of a PID object, 2. Using the Object Connection Type Specifier of each related (or “slave”) connections are made between related object, check to see if there is any instances of the correct 35 parametepairs (e.g., low and high scale parameters) of these pairing in Object Connection Types. objects. These slave connections can be modified by the 3 If an instance in Object- Connection Types is found, then updatedoperator, or as destroyed desired. whenSlave the connections corresponding are master automatically connec change cursor to indicate that the drop target is poten- tion is updatedpdated or destroved.destroyed. Thus,Inus, fIor example,le, unethe destruc tially valid, otherwise perform no action. If valid, retain tion of a connection between the PNT parameter of an AIN the sense of which object is now acting as Source(Par 40 object and the MEAS input parameter of a PID object auto ent), and which one is acting as the Sink(Child), as well matically results in destruction of low-scale, high-scale and as the type of Connection being sought. other parameter-level slave connections between these If no instance is found, then cursor remains unchanged, objects. and the user will not be allowed to drop the object. 1.3.7 Connectivity Examples Level 2 Parameter to Parameter (Perform Only if Level 1 45 1.3.7.1 Parent/Child Connectivity—Case #1 Above Passed) FIG.23 depicts the connections between an Historian to all Step Action Performed the historizable points which have been assigned to it. The 4. Iterate through instances of the Parameter Connection following table depicts the connectivity data needed to Sup Type class to find the proper Source (Parent) and Sink port these connections at the object level:

Parent Object Type Capacity Connection Type Child ObjectType Weight HISTORIAN 4OOO Historian Connection AIN Block 1 HISTORIAN 4OOO Historian Connection PID Block 1

(Child) parameter types necessary to fulfill this connec- whereas this table depicts the connectivity data need to Sup tion. Note that there may potentially be several instances port these connections at the parameter level: of the Parameter Connection Type class which satisfy 60 the conditions imposed by the connection keep track of all of them since were not sure yet what parameters Parent Parameter Type Connection Type Child Parameter Type the objects have. HISTORIAN Historian Connection PNT 5 For the Source(Parent) object, find the proper Parameter 65 HISTORIAN Historian Connection MEAS Definition based on the Source(Parent) parameter type found in step (4) above. US 8, 127,060 B2 37 38 This example depicts how data can be structured to handle This example depicts how data can be structured to handle the parent/child situation where the child does not need to the parent/child connections used to Supporta multilevel nest have a sense of which point it is (e.g., the MEAS parameter ing scenario. This implementation takes into account that doesn’t need to know its the 2nd historized point in this each object connecting to its parent needs to know which example), simply that its connected the HIST parameter of 5 the historian. This example also provides the means to estab “slot it occupies, and in turn, each “slot needs to know what lish a “fan-out” relationship for a parent/child connection. object is currently occupying it (if any). 1.3.7.2 Parent/Child Connectivity Case #2 This design allows object differentiation between the slots. FIG.24 is similar to the first, except that now the Parameter For example, it is easy to model (in the parameter definitions) Definitions have been provided in such a way so as to “split’ the fact that the first two slots of a cell (represented by the first the parameter representing two serial ports into two separate 10 two parameter overrides) can only accommodate a power parameters, each parameter representing a single serial port. Supply, and the remaining slots available for modules. The following table depicts the connectivity data needed to 1.3.7.4 Source/Sink Connectivity Support these connections at the object level: FIG. 26 depicts an implementation of how source/sink relationships can be implemented in the illustrated configu 15 ration system. The following table depicts the connectivity Parent Child data needed to support these connections at the object level: ObjectType Capacity Connection Type ObjectType Weight AW7OA 2 Serial BW132 1 (NT Station) Connection (Serial Printer) Source ObjectType Connection Type Sink ObjectType AW7OA 2 Serial BW8O 1 (NT Station) Connection (Serial Printer) AIN Block Block Connection PID Block PID Block Block Connection REALM Block Whereas the following table depicts the connectivity data need to Support these connections at the parameter level: 25 The following table depicts the connectivity data need to Support these connections at the parameter level:

Parent Parameter Type Connection Type Child Parameter Type Source Sink Serial Port 1 Serial Connection Serial 30 Parm. Type MiniMax Connection Parm. Type MiniMax Serial Port 2 Serial Connection Serial PNT 1 funlimited Block Connection MEAS O1 MEAS 1/unlimited Block Connection MEAS Of1 This example depicts how data is structured to handle the parent/child situation where the child has to “know', or be aware of the specific parent parameter instance they are 35 This example depicts how data can be structured to handle connected to. In other words, in this scenario, it’s important to a source/sink connection. More importantly, it shows how the know that Printer #1 is connected to Serial Port 1, and that same parameter (i.e., in this case, the MEAS parameter of the Printer H2 is connected to Serial Port 2. If this level of detail PID block) can function as both source and sink simulta is unimportant, then the parameter definitions for the AW70 neously. could be modeled in Such as way that there was only one 40 1.4 Placeholders Serial Port parameter, and one endpoint object, to which all Placeholders preserve the location and appearance of serial devices would connect. objects on a Persistent Document, enabling an object to retain 1.3.7.3 Parent/Child Connectivity(Nest) Case #3 its appearance between viewings. Placeholders present an FIG. 25 depicts how a nest can be implemented within the object model, depicting all the objects, their connections, and illustrated configuration system. The following table depicts 45 the endpoints of those connections in a single diagram. The the connectivity data needed to Support these connections at illustrated configuration system supports Placeholders, the object level: including an attendant object model dealing therewith, in the manner disclosed in incorporated-by-reference U.S. Pat. No. 6.754,885 and, particularly, by way of non-limiting example, 50 in Sections 1.4-1.4.2.6 and FIGS. 27-29b thereof, the teach Parent Connection Child ings of which are particularly incorporated herein by refer ObjectType Capacity Type ObjectType Weight ence—all as adapted in accord with the teachings hereof. 1.5 The Generic Editor Framework Classes IE32 4 Nest Connection 1X8CELL (Cell) 1 (Enclosure) The illustrated configuration system in general, and the 1x8CELL 8 Nest Connection FBMO4 (FBM) 1 editors in particular can be based on the Microsoft Foundation (Cell) Classes (MFC) Document/View model, e.g., in the manner disclosed in incorporated-by-reference U.S. Pat. No. 6,754, The following table depicts the connectivity data need to 885 and, particularly, by way of non-limiting example, in Support these connections at the parameter level: Sections 1.5-1.5.7 and FIGS. 30-35 thereof, the teachings of 60 which are particularly incorporated herein by reference—all as adapted in accord with the teachings hereof. Other embodi ments of the Configurator may be based on alternatives to the Parent Parameter Type Connection Type Child Parameter Type MVC document/view model known in theart and/or available CellSlot Nest Connection Cell in the marketplace. ModuleSlot Nest Connection Module 65 1.6 Sheet Template Editor Sheet Template objects are used to allow the user to define a template, or sheet layout, to be used during the printing US 8, 127,060 B2 39 40 and/or print preview process. A Sheet Template typically model, access control is provided by assigning users to includes combinations of graphical symbols which have been groups which have various access permissions (read, write, defined (e.g. rectangles, circles, bitmaps, etc. ...) to satisfy a create, etc.). Groups are based on roles. Such as Process customer's unique requirements for documentation. The Engineer or Advanced Operator, and users can assume mul illustrated configuration system supports Sheet Templates, 5 tiple roles by being assigned to multiple groups. Implemen including through use of Sheet Template objects and a Sheet tation-standard default groups and permissions are provided, Template Editor, e.g., in the manner disclosed in incorpo but users can create their own groups, and can modify the rated-by-reference U.S. Pat. No. 6,754,885 and, particularly, permissions of the default groups. Permissions are assigned by way of non-limiting example, in Sections 1.6-1.6.2 and by object type (such as Loops) and by PlantArea (such as East FIGS. 36-38 thereof, the teachings of which are particularly 10 Plant Section). This provides selective access by geographic incorporated herein by reference—all as adapted in accord aca. with the teachings hereof. A Switch user/group function is also provided which allows 1.7 The Report Manager users to assume a Subset of their permissions or allows The Report Manager allows users to create, edit, and print another user to temporarily log-in. Users use this function to reports. A report is an association between a collection of 15 assume a more restrictive set of permissions to ensure that configurable objects (possibly filtered) and templates they do not make an inadvertent change if they were only describing how to print them. Reports are composed of report interested in viewing configuration data. The ability to tem templates that organize the data to be printed—describing porarily log-in would be used to allow a Supervisor to assist what should be printed, how it should be printed, and in what another user in making changes which may require special order. This enables the user to produce a printed document access permission to an existing configuration work space, that combines information from various sources organized in and then return control to the original user. one of many different ways. The Framework supplies user interface dialogs to allow The illustrated configuration system Supports reporting, developers to register objects and permissions to assign per including through use of a Report Manager, e.g., in the man missions to the default groups. The Framework also supplies ner disclosed in incorporated-by-reference U.S. Pat. No. 25 an API to allow the various configurator applications to check 6.754,885 and, particularly, by way of non-limiting example, for access permission before responding to access requests in Sections 1.7-1.7.2.4.2 and FIGS. 39-44 thereof, the teach for objects they control. A consistent “access-denied mecha ings of which are particularly incorporated herein by refer nism will be provided to advise the application of a security ence—all as adapted in accord with the teachings hereof access violation. 1.8 Version Control 30 1.10.1 Object Model Version control provides the ability for the system to record The illustrated configuration system uses a security system changes made to the control database. It allows the user to be to control access to configuration objects by users. Given a able to tell what the state of the system is now, what the state particular user and a particular object, the security system of the system was at a specific time in the past, and the history determines what permissions the user has (e.g. read, write) of changes made to a specific object over time. With version 35 with respect to the object. The security object model is control, the change history of an object is tracked from the depicted in FIG. 27. moment it was created through its current version. 1.10.1.1 Group The illustrated configuration system Supports version con In the Security model, the Group object is used to catego trol, e.g., in the manner disclosed in incorporated-by-refer rize Users, with many instances of Users belonging to the ence U.S. Pat. No. 6,754,885 and, particularly, by way of 40 same Group object (e.g., Operator, Engineer, etc.). These non-limiting example, in Sections 1.8-1.8.4.7 and FIGS. broad categories are each associated with a specific set of 45-56 thereof, the teachings of which are particularly incor permissions. These permissions pertain to various areas porated herein by reference—all as adapted in accord with the throughout the plant, as well as to object types within the teachings hereof. plant. 1.9 Undo Manager 45 Instances of Groups may form a hierarchy, and contain The illustrated configuration system Supports an Undof other Groups (e.g., Test Operator within the Operator Group). Redo capability, e.g., The illustrated configuration system However, an instance of a Group can only be contained by Supports reporting, including through use of a Report Man one, and only one, other Group. For example, the Test Opera ager, e.g., in the manner disclosed in incorporated-by-refer tor group could be in the Operator group, but not also in the ence U.S. Pat. No. 6,754,885 and, particularly, by way of 50 Engineer group. Each Group has permissions of its contain non-limiting example, in Sections 1.9-1.9.1.4 and FIG. 57 ing Group, and may add additional permissions. See “Users thereof, the teachings of which are particularly incorporated and Groups Example' in FIG. 28. herein by reference all as adapted in accord with the teachings Members of a Group can have permissions objects via the hereof. objects association to instances of the Process Area and 1.10 Users and Security 55 ObjectType classes. To have a permission to access an object The illustrated configuration system provides security within a Process Area, the group preferably has that permis functions to allow users and other personnel to restrict access sion to both the Process Area, and the Object Type. If the to objects which need to be protected from unauthorized object is not assignable to a Process Area, then the group only modification or access. User-level security is optional, and is needs type permission against the object in order to access it. disabled by default. Implementation-standard security 60 In Summary, relationships are: restricts modification of implementation-standard standard A Group object maintains a list of all User objects associ objects (such as standard I/A Block definitions) to authorized ated with it. personnel, and is preferably always enabled. A Group object maintains a list of all other Group objects When user-level security is enabled, the security functions which are contained within it. provide authentication by presenting a log-in dialog request 65 A Group object can be in only be directly related with one ing a user name and password when a user starts any Con other Group object (i.e., Groups can occur in only one figurator application. Similar to the Windows NT security place in the Group hierarchy) US 8, 127,060 B2 41 42 A Group object has all the permissions of its containing In the example shown in FIG. 28, the group “PE Adminis Group, and may have additional permissions. trator' has all of the permissions of “Process Engineer, and User objects within a Group object access objects assigned may have additional permissions. Note that user “User X to specific Process Areas if that Group has permission to belongs to both the “Process Engineer and Advanced do so. Since permissions form a hierarchy, its possible Operators' groups. for a Group to have multiple object permissions within 1.10.1.3 Process Area the same Process Area, as well as permission to access Instances of the Process Area class form a hierarchy, and objects in multiple areas. This relationship is managed reference such things as individual buildings, or areas within by the class Area Permissions. a building in which logically-related processes are per Similarly, User objects within a Group object can access 10 formed. Process Area objects can contain other Process Area many different types of objects. Since permissions form objects, and they can be associated with one or more config a hierarchy, its possible for a Group object to have urable objects which are capable of being assigned to that multiple permissions within the same Object Type, as Process Area. Examples of Such configurable objects are well as permission to access different ObjectTypes. This Loops and Compounds. Each instance of a Process Area relationship is managed by the class Object Type Per 15 object has permissions of its containing Process Area, and missions. may add additional permissions. Listed below are sample Groups provided with one Objects may be indirectly associated with a Process Area. embodiment of the invention: For example, a Block may be associated with a specific Pro

Group Title Group Description Advanced Operator Tuning specialized or critical loops. Default User General user capabilities to read, but not change configuraton data. Developer Develop and maintain Configurator framework and applications which run inside the framework. Note that this particular group object may not be visible to a “normal user. Operator Tuning general loops. Process Engineer Build and maintain process loop configurations. Process Engineer Develop and approve customer default block parameters, loop Administrator templates, proprietary control schemes, batch administration, etc. Software Engineer Develop and install customer applications and third party software, such as custom reports and database applications. System Administrator Configure system, security, backups, fault tolerance, etc.

35 1.10.1.2 User cess Area as the result of being part of a Loop or Compound In the illustrated configuration system, a User object is associated with that area. The ramifications of this on the design needs to be explored further. Summarizing relation someone who initiates an Edit session using a unique identi ships: fier. This identifier is captured from within the Framework in User objects within a Group access objects assigned to order to determine security permissions. A User preferably 40 specific Process Area object if that Group object has belongs to at least one Group. A User may belong to more permission to do so. Since permissions form a hierarchy, than one Group, limited only by the number of Groups its possible for a Group object to have multiple permis defined in the system. When a User logs onto the Configurator sions within the same instance of the Process Area class, initially, they acquire the sum of the permissions of all of their as well as permission to access objects in multiple areas. associated Groups. Since a User can belong to different 45 This relationship is managed by the class Area Permis Groups, they should be able to change which Group or sions. Groups they belong to dynamically (refer to FIG. 31). The An instance of a Process Area can contain other Process groups which a User belongs to at any point in time is referred Areas. Permissions are “inherited' from the containing to as the Active Group Set. The Active Group Set will be used Process Area. for determining permissions. The permissions which a User 50 Configurable objects can only belong to a single instance of a Process Area (i.e., an object can’t belong to two or has at a specific point in time are determined by the Sum of the more Process Area objects at the same time). permissions of all the Groups within the Active Group Set. A 1.10.1.4 Area Permission User can change groups at any time, but only to groups within The Area Permission class is used to restrict a user's access the set which have been defined for him in the Group hierar 55 to an object by considering where the object resides in the chy. Summarizing relationships: planthierarchy. Area Permission objects allow system admin A User object belongs to one or more Group objects in the istrators to set user access permission to the objects assigned security hierarchy. Groups objects, in turn, maintain a to Process Areas by groups that the user belongs to. Area list of all associated User objects. Permission objects contain a reference to the permission in A User object is able to dynamically change its Active 60 the permission hierarchy for the indicated Group/Process Group Set, thereby changing the permissions by which Area object pair. Summarizing relationships: the User object can access objects within the illustrated An Area Permission object represents the permission in the configuration system. permission hierarchy that the associated Group has on Users and Groups form a hierarchy as illustrated in FIG. objects which have been assigned to the associated Pro 28. A Group can only be in one other Group, so that for 65 cess Area. example, Test Operators could not appear more than once in Permissions get more restrictive, not less, as you go down the hierarchy. the area hierarchy. US 8, 127,060 B2 43 44 1.10.1.5 Assignable Object its previous settings. A simple dialog box like the one pre An Assignable Object is an instance of an object associated sented in FIG. 31 is provided to perform this switching. with an Object Type (refer to object model depicted in FIG. In the example shown in FIG. 31, User X is currently 13) capable of being assigned to a Process Area. One or more logged in, and has activated the Switch Group/User Facility. instances of Assignable Object may be assigned to the same 5 The application will allow User X to select (or deselect) Process Area object. Objects associated with an instance of Groups which he is currently allowed to be associated with, the ObjectType class are deemed “assignable' when they are thereby establishing his Active Group Set. created. Access to an Assignable Object is dictated first by the Notice in the sample dialog that some groups are dimmed, user's group access to the objects type, then by the user's or 'greyed-out'. These groups represent those groups which group access to the Process Area object which the object has 10 are not currently in the user's Active Group Set. Clicking on been assigned to. Summarizing relationships: the text of a Group will toggle it back and forth between the An Assignable Object can be assigned to one, and only one, normal “on” state, and the dimmed “off” state. This is only an Process Area object. The object maintains a reference to indication of the functionality which is used in the illustrated the Process Area to which it has been assigned. embodiment, not a restriction on other implementations. FIG. 29 depicts the hierarchical relationships between 15 Additionally, by selecting the “Switch User pushbutton, a instances of Process Areas, and Assignable Objects. screen equivalent to the log-in screen appears, prompting for 1.10.1.6. Object Type Permission a new user's ID and password. This user ID would be Instances of the Object Type Permission class control “stacked, in that the Configurator remembers the previous access to objects by considering what type they are. Object user ID as a new one logs in, so that when the new user Type Permission objects allow system administrators to set finishes an edit session and exits, they will effectively be user access permissions to the object types by groups that the reverting back to the original user's identity and permissions. user belongs to. Object Type Permission objects contain a A user stack of only one-deep will suffice for this purpose. reference to the permission in the permission hierarchy for the 1.10.2.4 Managing Groups and Users indicated Group/Object Type pair. Summarizing relation This section presents sample property pages which used to ships: 25 maintain groups and users. All dialogs presented in this sec An instance of the ObjectType Permission class represents tion are meant to be used in the performance of ongoing the permission that the associated Group object has on Security Administration. objects of the associated Object Type. The first property page presented in FIG. 32 represents a User objects within a Group may access many different way in which the security administrator manage Groups. The types of objects. Since permissions form a hierarchy, it’s 30 existing Group structure is placed into a type of tree hierarchy possible for a Group object to have multiple permissions control, which is imploded/exploded as necessary to gain an within the same Object Type, as well as permission to entry point into the Group hierarchy. To add a new Group, the access different ObjectTypes. This relationship is man administrator finds the proper spot in the control where the aged by the class ObjectType Permissions. new Group could be inserted, and press “New Group'. 1.10.2 Security Administration 35 At that time, a dialog box (not shown) pops up, prompting 1.10.2.1 Permissions Hierarchy the administrator for information to create a new Group. Permissions (both Process Area and Object Type Permis Upon exiting that dialog, the new Group is displayed at the sions) for the Configurator form a hierarchy defined by static proper point in the hierarchy. A Group automatically inherits data within the illustrated configuration system, and not all ObjectType and Area Permissions associated with its root allowed to be changed by the user (FIG.30). General read and 40 Group. write permissions will need to be more fine grained than To add new users to the Configurator, the security admin simply read vs. write. Permissions stated in the Process Area istrator presses the “New User' button, and a dialog box (also Permissions and ObjectType Permissions objects are stated not shown) pops up, prompting the administrator for any in terms of one of the higher entries in the hierarchy, but can information the illustrated configuration system requires to be as fine grained as needs dictate. 45 establish a User. This information contains the User's name, 1.10.2.2 Download Permission password, and possibly some other information which is Download permission governs who is allowed to download needed for administrative purposes by the illustrated configu configuration data to the targeted I/A system. The download ration system. Upon exiting the dialog, the new User will have is the process by which edited configuration information gets been established as a valid User within the Configurator transferred to the target. A download permission is a special 50 administrative system, but not yet assigned to a specific case of Configurator security—although effectively it is only Group (or Groups). To assign a new User to a Group, or an Model/configuration database read, the fact that it affects a modify the Groups to which an existing User belongs, the running target makes it special. As with other permissions, administrator would select the “Users” tab on the property download permissions may be set on an object type basis, sheet. and/or on process areas. 55 In this example (shown in FIG. 33), the administrator is 1.10.2.3 Switch Group/User Facility able to select the User from the combobox depicted by “User A mechanism by which a user can Switch groups is pro ID'. Once the User was selected, the administrator would be vided in the illustrated configuration system. The mechanism able to modify their password and/or description in the edit allows a user to perform the majority of his daily operations fields provided, and pick the Group(s) that the User would with a default minimal security setting, then Switch to a more 60 need to be associated with. restrictive security setting by changing the Active Group Set And finally, the following property page shown in FIG. 34 they are currently associated with. represents a method by which Group access, or permission, Another mechanism allows the user to switch user ID's. could be given to specific Object Types. In this example, the This is accomplished by the same mechanism described administrator picks the Group and ObjectType to be “linked' above. The mechanism would also allow a Supervisor to tem 65 together via a permission, then picks from a list of available porarily "log-in' to a user's session, perform a restricted permissions all those which apply for this Group. The mecha operation, then "log-out” and return security (and userID) to nism allows for permissions to be added, as well as deleted. US 8, 127,060 B2 45 46 Permissions can be established at any level in the Permission 2.1 Project Manager/Navigator Interface Hierarchy, since the Permission Hierarchy is allowed to be as 2.1.1. Overview fine-grained as necessary for the customer's unique require The Project Manager is the navigator's view into the mentS. project database. It allows the user to browse through the project configuration hierarchies and data. The GUI interface 1.10.2.5 Managing Process Areas is similar to the Microsoft Explorer's look and feel. The This section presents sample property pages used to main Framework described in Part 1 provides a common Project tain process areas. All dialogs presented in this section are Manager navigational capability. This section describes the meant to be used in the performance of ongoing Security functionality specific for Control Algorithm Configuration. Administration. 2.1.1.1 SystemTree View The property page shown in FIG. 35 represents a way in 10 FIG. 37 shows the Navigation Manager's System Tree which the security administrator manages Process Areas. The View. The Components item holds the main items involved in existing Process Area hierarchy are placed into a type of tree control configuration: Control Levels (shown as compounds hierarchy control, which is imploded/exploded as necessary in the figure), Control Algorithm Diagrams (shown as Loops to determine an entry point into the Process Area Hierarchy. in the figure), and processors. Also shown, by way of 15 example, are items (icons) pertaining to field bus segments— To add a new Process Area, the administrator would find the here, by way of non-limiting example, a Profibus segment— proper spot in the control where the new area is to be inserted, including their respective bus master(s) and slaves. Although and press “New Area'. At that time, a dialog box (not shown) a Profibus segment is shown in the drawing, it will be appre popS up, prompting the administrator for information to cre ciated that the invention can be similary practiced with Field ate a new Process Area. Upon exiting that dialog, the new bus Foundation segments (“links') and their respective Process Area is displayed at the proper point in the hierarchy. devices (e.g., link masters and link slaves), ModBus seg When a Process Area is first created, it will automatically ments, Hart segments and other field buses (or network por inherit all Assignable Objects, and Area Permissions associ tions) that are configured and/or controlled by one or more ated with its root Area. devices (e.g., “masters') and/or on which one or more devices And finally, the following property page in FIG. 36 repre 25 (e.g., “slaves') configured to for communication. sents a method by which Group access, or permission, could 2.1.1.2 Control Algorithm Diagrams be given to specific Process Areas. In this example, the admin The Control Algorithm Diagram Editor Supports adding istrator picks the Process Area and Group to be “linked' and connecting blocks to specify control algorithms. Blocks together via a set of permissions, then picks from a list of are only created through Control Algorithm Diagrams. The available permissions all those which apply for this Process 30 blocks in a Control Algorithm Diagram must preferably be Area/Group combination. Permissions can be established at assigned to a Control Level. A default Control Level may be any level in the Permission Hierarchy, since the Permission set for a Control Algorithm Diagram, setting all blocks in the Hierarchy is allowed to be as fine-grained as necessary for the diagram to that level. However, blocks may be reassigned to customer's unique requirements. any Control Level. 1.10.2.6 User Authentication Service 35 2.1.1.3 Control Processors Closely associated with the Configurator security sub Control processors execute the control applications created system, but separate, is a User Authentication Service. This by the users. The blocks specifying the control application are service is responsible for providing the security service with contained within the control processor in Control Levels. The the identity of an authorized user of the illustrated configu Control Levels are assigned to Control Processors. ration system. The authentication service is responsible for 40 2.1.1.4 Control Levels providing the application’s security mechanism with the The Control Levels act as a logically named container for name of an authorized user. Whenever the security system control applications. Within control processors, the control needs to evaluate a user's permissions to an object, it will ask algorithm blocks are contained in Control Levels. The control the authentication service for the name of the user. The first levels provide a hierarchy structure following the IAS S88 time this happens, the authentication service queries the oper 45 standard. This standard defines seven levels of planthierarchy ating system for the name of the user, and responds with the with each level serving as a logical container for the next name of that user. The name is then cached for use in later lower level. calls. Enterprise Another implementation results in the user being presented An organization that coordinates the operation of 1 or more with a "login' dialog box asking for a username?password 50 sites combination the first time the authentication service is asked May contain 1 or more Sites for the name of the user. Again, the user's name, once cap Site tured and verified, is cached for later use. This implementa A physical, logical, or geographical component of the tion is desirable in certain I/A installations in which all users enterprise commonly log-in as “root’ or “administrator, making an 55 May contain 1 or more Areas operating system query for the name of the user meaningless. Area Part 2 Control Algorithm Configurator Architecture A component of a site identified by physical, geographical 2 Functions or logical segmentation This section describes major functions of the configurator May contain 1 or more Process Cells architecture, including sample user interface representations. 60 Process Cell Note that these user interface sample are intended to illustrate Defines the span of logical control of one set of process functionality described in the text and are not intended to equipment within an area show all design details, such as menus and toolbars. In the Preferably contain 1 or more Units object model diagrams included in this section, shading indi Unit cates classes supplied by the illustrated Framework and a 65 A collection of associated control modules and/or equip dashed line border indicates classes described in another sub ment modules in which 1 or more major processing section of this document. activities can be conducted US 8, 127,060 B2 47 48 May contain 1 or more Equipment Modules Names do not have to span the full naming hierarchy: Equipment Module Area 1:FT 104.MEAS A functional group of equipment that can carry out a finite This provides with backward compatibility with I/A names number of specific minor processing activities Compound:Block. Parameter May contain 1 or more Control Modules Control Module A second set of rules specify the relationships to control The lowest level of equipment that can carry out basic stations: control Blocks are never directly assigned to control stations The control naming hierarchy implemented by IAS does Blocks are assigned to compounds expressed as a level not address the top two levels of the ISA S88 hierarchy. The aC control hierarchy begins with the Area'. In addition to the 10 The compounds, or levels, contain not only blocks but also ISA S88 hierarchy, the implementation defines three addi other compounds tional levels: blocks, parameters, and attributes. Every level The compound, or levels, also contain parameters of the naming hierarchy may contain blocks. There is no Each level contains a parameter that allows the grouping of restriction that only the “Control Module' level contains blocks. 15 contained blocks, and blocks within contained levels, 2.1.1.5 Control Level Syntax and Assignment Rules for shared name scope in structured text programs, the The following rules characterize the naming hierarchy: unit grouping flag. Total name length of 128 bytes, including delimiters Once the unit grouping flag is enabled, the unit grouping A total of 32 bytes for each level name flag in contained levels is ignored. The name can be any mix of numeric (0-9) or alphabetic Compounds, or levels, are assigned to control stations (A-Z) characters and the underscore (Internationaliza Any level, regardless of its position in the hierarchy, may tion issues are not currently decided) be assigned to a control station Names may not contain spaces All contained levels are also assigned to the control station Each naming level, except possibly the last, is a compound. when a level is assigned to a control station Each level may contain: 25 Contained levels may be reassigned to a different control Other levels station. Lower levels contained by the reassigned level Blocks are also reassigned Parameters Contained levels may not be reassigned to a different con A delimiter using the greater than symbol (>) between trol station if the unit grouping flag for a parent level is levels 30 set. All lower levels contained by the reassigned level are There is no delimiter before the first level name also not allowed to be reassigned A delimiter of colon (:) between a level and a block All referenced levels are preferably assigned to a control A delimiter of period (.) between a block and a parameter station A delimiter of period (.) between a parameter and an All blocks assigned to a level preferably execute within a attribute 35 single control station. At a given level, the names of any contained levels must Although contained levels may execute in a different con preferably be unique trol station, all of the blocks at a given level preferably At a given level, the names of any contained blocks must execute within the same control station. (All blocks in a preferably be unique compound execute in the same control station.) At a given level, names for blocks, levels, and parameters 40 More than one level may be assigned to a CP do not have to be unique between themselves. More than one level which are at the same point in the The full naming hierarchy does not have to be used. hierarchy may be assigned to a control station (i.e. Areal At least one level must preferably be specified. This and Area2 may both be assigned to the same control provides compatibility with I/A naming conven station) tion—compound:block 45 The block processing order is a function of the control Any number of levels up to the maximum may be used station and is specified in control station documents. Given these rules the following two names specify blocks: The levels in a control hierarchy are not only divisible Areald-ProcCell2>Unit1>Equipment1 >CtlMod2: between control stations in a child relationship; they can also FT104. STATUS be divided among parent control stations: Area 13-ProcCel12) Unit1:CTLBLOCKSTATUS 50 Area2>ProcCell1 assigned to CP001 The first name defines a block named FT104 with a Area2>ProcCell2 assigned to CP003 parameter of STATUS. OR The second name defines a block named CTLBLOCK Area2>ProcCell1>Unit1 assigned to CP001 with a parameter of STATUS. Area2>ProcCell1>Unit2 assigned to CP003 The FT104 block is contained within the Control Mod 55 All of the blocks contained by a level (a compound) pref ule level. erably execute in the same control station. The CTLBLOCK is contained within the Unit level. Area2>ProcCell1>Unit1:FT104 If block FT104 executing Since names for blocks, levels, and parameters do not have in CPOO1 to be unique, the following is legal: Area2>ProcCell1>Unit1:FT105 then block FT105 prefer Areald-ProcCell2>Unit1>Equipment1 >CtlMod2: 60 ably also executes in CP001 FT104. STATUS Area2>ProcCell1>Unit1>Equipment1:FT105 block Area 13-ProcCel12) Unit1...STATUS FT106 could execute in a separate CP Area 13-ProcCel12:Unit1...STATUS All compounds and all blocks could be assigned to a single The ProcCel12 level contains a level called Unit 1 control station The ProcCell2 level contains a block called Unit 1 65 Areal Assigned to CP003 The Unit1 level contains a parameter called STATUS Area2 Assigned to CP003 Each of these objects can be uniquely resolved. Any level could be assigned to a control station US 8, 127,060 B2 49 50 Area2>ProcCell1>Unit1>Equipment1 >CTLMod1 The value of a parameter can be defined in two ways—by assigned to CP003 setting the “value' attribute to a constant value or by setting All used levels are preferably assigned to a control station the “formula attribute to a formula. In the “value' attribute of Area2>ProcCell1 assigned to CP003 a parameter, users can Supply constant default values for Area2>ProcCell2 assigned to CP001 parameters in block definitions. If a formula is Supplied, the If these are the only two assignments made, then result of the formula calculation is used as the parameter Area2 is not assigned to any control station, this is illegal value. These formulas are executed when the value of the 2.2 Block Definition Editor parameter is requested. Formulas can consist of references to 2.2.1. Overview other parameters in the current block, mathematical opera The Block Definition Editor allows control blocks and 10 tions, etc. Modifier Block Definitions are defined in a manner iden their parameters to be defined for use on IAS. Through the tical to that of Block Definitions. In Modifier Block Defini editor, users create entirely new block definitions or derive tions, references to other parameters in formulas are not new blocks from existing definitions. Only blocks derived restricted to existing parameters. See Part 1 for a detailed from implementation standard control blocks download to 15 description of modifier blocks. Parameter groups can be control stations. User-defined blocks also appear in the list of defined to contain any or all parameters defined in the local defined blocks when viewed with this or the Control Algo definition or parent definitions. Parameter groups correspond rithm Diagram Editor, but are not installed into a control to the tabs on the Block Property sheet display. The parameter station. This list contains only single Block definitions; no group definition contains information on ordering for param Composite Block Definitions appear. eters contained in the group. All parameters are contained in FIG. 38 shows the main display for the Block Definition at least one parameter group, but can be assigned to multiple Editor. The user is presented with the Project Manager tree groups. The user can select the group(s) to which each param branch representing the hierarchy of block definitions. All eter belongs. Versioning of blocks is Supported via Standard block definitions derived from the base types show as lower versioning features Supplied by the Framework classes. Each branches in the tree. A grid view shows the parameters for 25 time a block definition is changed, the block version is incre each block. Each row is a block parameter with the columns mented. This data is used for reporting and tracking of block representing the parameter attributes. The attribute values for definition history. A security mechanism is used to verify that each parameter can be modified by the user. However, some the user has privileges to edit the selected block. No customer inherited parameters cannot be overridden in the derived will have privileges to edit implementation-standard block block definition: parameter name, value type, etc. Values that 30 definitions. These defined blocks can be derived from, but not are overridden are displayed differently from those defined in changed. Reports can be generated on block definitions, the local block definition or in the parent block definition. changes in the current edit session, and audit trails. The report Both the tree and grid views are based on Framework supplied for changes between versions is helpful internally to facilitate editor classes. version upgrades to customer systems. Definitions for derived blocks can add parameters or 35 2.2.2 Functions modify the attributes of inherited parameters, but inherited The following functions are implemented by the Block parameters cannot be removed. Blocks are derived from Definition Editor: exactly one other block definition. Create new, derived or copied block definitions The user cannot modify the implementation-standard Create new, derived or copied modifier block definitions blocks. This block set is part of the illustrated configuration 40 Add, remove, or modify parameters system. Personnel with the appropriate security permissions Override parameters inherited from parent block definition, can add, modify and remove any parameters when creating revert to parent value the standard set of IAS blocks. Users can add parameters to Group parameters into categories displayed on property sheet definitions derived from these standard block definitions or during configuration create new “base' block definitions (not derived from an IAS 45 Provide a mechanism for ordering parameters on property block type). The first four rows in FIG.38 show examples of sheet page user-added parameters in the Block Definition for block View parameters as they would appear on property sheet AIN2. These parameters are available for documentation and Define parameters to be control or non-control types calculation purposes only, but are not downloaded into run Define configuration-time formulas for parameter values, ning control stations. 50 recalculate values. These formulas will Support math state There are two classes of parameters, those that are inte ments, references to other parameters in blocks, etc. grated directly with the control system (control parameters) Save/load definition(s) to/from diskette or file and those that are not (non-control parameters). Control Import definitions from pdef files or FoxCAE tables parameters are those downloaded to Control Processors and Upgrade to new version of standard IAS block definitions participate in the running of the control system, Such as 55 Maintain block version information parameters associated with the standard control block types Report block/parameter definitions, changes, definitions in AIN, PID, AOUT, etc. Non-control parameters can be used use, block derivations for calculations, documentation, etc. and are not downloaded Provide audit trails for definition changes to the CP. Normal users can only add non-control parameters, Provide security which allows only certain people access to only authorized personnel (e.g., engineers) can add control 60 block definitions parameters. Provide security against changing implementation standard Each parameter in a block definition contains a fixed set of control block definitions and standard parameter group predefined attributes. Values can be given to all of these assignments. attributes in the block definition where the parameter is Provide standard editing capabilities: cut, copy, paste, etc. defined. A subset of these parameter attribute values can be 65 Provide search capabilities for parameters or content, allow changed in derived blocks, which results in the creation of a ing the user to find parameters of a specified name or con parameter override object being created. taining a specified value US 8, 127,060 B2 51 52 The following functions are provided in support of the Class Relationships: Block Definition Editor: Block parameter definitions are parameter definitions. Maintain standard set of control blocks They provide all of the attributes of a parameter, such as Version upgrade mechanism for redistribution of control name, type, description, limits, etc. blocks Block definitions contain parameter definitions. The 2.2.3 Object Model parameter set defines the type and characteristics of the block 2.2.3.1 Block Definition definition. Referring to FIG. 39 Block definitions follow the basic Parameter Groups collect block parameter definition for paradigm defined for Parameterized Objects. Block defini displaying or reporting of parameters by Group identifier. tions contain lists of parameter definitions and overrides and 10 maintain a pointer to their parent definition. Block definitions 2.2.3.3 Block Parameter Override can be “base' definitions—those with no parent definitions, Block parameter overrides can modify a value or attribute or "derived definitions—those that inherit parameter defini of an inherited parameter definition. When a new block defi tions and overrides from a parent block definition. nition is derived from another block definition, any attribute The implementation includes a set of base definitions that 15 modifications which are made to inherited parameters are correspond to control algorithms in Control Processors, stored in the current block definition as an override. Overrides called control blocks. Users can derive definitions from this are cumulative. Overrides which appear in a parent apply to set or create their own base definitions that do not correspond derived block definitions as well. to Control algorithms, called non-control blocks. Only block Class Relationships: definitions derived from control blocks will be downloaded Block parameter overrides are parameter overrides. They into a CP when instantiated in a running system. provide the ability to override a most of the parameter Class Relationships: attributes of inherited parameter definitions. (Not included Block definitions are parameterized objects. are parameter name, type, etc.) Block definitions can create instances of blocks of their Block definitions contain parameter overrides. These over type or block definitions derived from their type. The blocks 25 rides modify the inherited parameter definitions. or block definitions created are also instances of parameter 2.2.3.4. Block Definition Container ized object-derived classes. A Block Definition Container provides a grouping mecha Block definitions contain parameter definitions. The nism for all block definitions. Separate containers exist for parameter set defines the type and characteristics of the block block definitions, modifier blocks, and user work areas for definition, not the class of the block definition object. All 30 block definitions. At System installation time, the single block block definitions are of the class "Block Definition', while definition container for system block definitions is created. the type of the block definition varies according to the param Users can create other containers for working copies of block eter set. (AIN, PID, etc.) definitions. Block definitions may contain parameter overrides. These A Block Definition Container provides a mechanism for overrides modify the inherited parameter definitions. 35 iterating over all of the definitions it contains. This feature is Block definitions can refer to 0 or 1 parent block defini inherited from the standard Parameterized Object Container. tions. The parent block definition defines a set of parameters Additional iteration methods are supplied by this class to that are inherited and can be overridden. report on block definitions alphabetically or hierarchically. Block definitions maintain an ordered list of Parameter Block Definition Containers take many forms: nodes of the Group Definitions to use in creating a Property Sheet view for 40 Project Manager “System' hierarchy which are used to hold modifying block parameter values. Each group corresponds Block Definitions, palettes of Block Definitions for use in the to a Separate Property Page within the Property Sheet. See Control Algorithm Diagram Editor, and others. Class Rela Part 1 for further discussion of Parameter Groups. tionships: All block definitions are collected in Block Definition Col A Block Definition Container contains block definitions. lections for use in reporting, viewing and listing block defi 45 A Block Definition Container is a generic Parameterized nitions. These collections reside in the Project Manager“Sys Object container restricting the Parameterized Object con tem' hierarchy. tents to Block Definitions. 2.2.3.2 Block Parameter Definition 2.2.3.5 Modifier Block Definition Block parameter definitions consist of a standard, frame A Modifier Block Definition is a block definition. It can work defined set of attributes. The attributes of name and type 50 contain parameters exactly like a standard block definition. compose the basic definition for a parameter. Other attributes Derived modifier blocks can override parameter attributes Such as default value, limits, description, etc. all contribute to from parent modifier blocks. A modifier block instance can be the definition and can be overridden in derived block defini contained in a loop or composite block just like any other tions. block, but does not behave in the same manner. All parameters Block parameter definitions contain attributes which indi 55 in a modifier block instance override parameters matching by cate whether it is a control or non-control parameter. Control name in the block to which it is attached. Modifier block parameters are those recognized by the control algorithms in definitions, however remain identical to block definitions. A Control Processors. Only implementation standard blocks Modifier Block can contain formulas which reference param can contain control parameters. Non-control parameters can eters not necessarily defined in the Modifier Block. Like be used for calculation or documentation purposes and do not 60 Block Definitions, the calculations are executed whenever the get downloaded into a CP when they are part of a compound value of the calculated parameter is requested. in a running System. 2.2.3.6 Parameter Group Definition Some block types contain special parameters which cannot A Parameter Group Definition maintains parameter group be viewed, edited or overridden by the user. Blocks like PLB ing information to allow reporting or displaying parameters and Sequence have parameters which are not standard param 65 by selective groupings. Standard parameter groupings (such eter types such as string, float, int, etc. but contain compiled as Input/output, High/Low Alarms, Tuning) are provided for ladder or sequence code. implementation standard block definitions. Users can add US 8, 127,060 B2 53 54 their own groupings but are not allowed to change the stan Composite Block Definitions define the blocks, block dard groupings. Class Relationships: parameters, internal connections, and externally exposed A Parameter Group Definition is a Parameter Group, from connection points for a Composite Block, as shown in FIG. which it inherits the ability to maintain an ordered list of 41. When a Composite Block is instantiated, it maintains an parameters. 5 association with its defining Composite Block Definition. A Parameter Group Definition maintains associations with Individual block parameter values can then be modified, or parameter definitions to define its group. “overridden', in the Composite Block instance. There is no 2.3 Control Algorithm Diagram Editor concept of a single-instance Composite Block, a Composite 2.3.1. Overview Block Definition is preferably used for every instance of a The Control Algorithm Editor is the single editor for all 10 Composite Block. Like Simple Loops and Loop Templates, Control Algorithm related work. With this editor, the user can the user assigns block parameter value overrides and connec graphically create and edit Loop Templates, Simple Loops, tions within the Composite Block. Composite Block Definitions, Blocks and Connections. The No external connections are created directly for Blocks user can also view and edit some properties of Composite contained within Composite Block Definitions. Instead, the Blocks and Template-Derived Loops. Composite Blocks and 15 user defines which internal Block parameters are exposed to Template-Derived Loops are shown graphically based on users of the their definition or template. Composite Block. Internally, the user is creating a connec FIG. 40 shows a single Simple Loop in the Control Algo tion between a parameter created for the Composite Block rithm Editor. All control algorithm diagrams graphical views Definition and the internal Block parameter that is to be look similar to this display, allowing new Blocks to be added exposed. These Composite Block Definition parameters by dragging and dropping from a palette of available Blocks inherit their attributes from the parameters they are exposing. and positioning and connecting Blocks through mouse Composite Blocks are instances of Composite Block Defi actions. The block or blocks which compose a loop or Com nitions. They can be used like standard blocks in anything posite Block are displayed in the center of the display. Modi which can contain blocks. (Loops, Composite Blocks, etc.) fier blocks which are applied to individual are shown in the 25 Users cannot modify the defined values or connections within center with arrows indicating which blocks they are modify the Composite Blocks unless the parameters have been ing (ModType1). Modifier Blocks which apply to the entire exposed by the Composite Block Definition. Users modify Loop or Composite Block are shown attached to the drawing and connect to or from the exposed parameters of the Com boundary (ModType2 and ModType2). posite Block, similar to other Blocks. The exposed param Loop Templates define the blocks, block parameters, inter 30 eters can be edited on a loop sheet via the parameter property nal connections, and connections to external hardware points sheet like the parameters of any standard Block. (Tags) for a loop. Any defined block or Composite Block type FIG. 42 shows an instance of a Composite Block in a loop can be inserted into a Loop Template. When modifications are diagram. Some exposed parameters for internal blocks are made to the Loop Template, the user is prompted to download shown like parameters for any standard block. FIG. 43 shows all of the derived loops. Changes made to the Loop Template 35 the same loop diagram with the Composite Block expanded are automatically inherited by the derived Loops, since the in-place to show its internal structure. While Composite Template is referenced whenever the derived Loops are Block internals can be viewed this way on a Loop drawing, accessed for display or download. they cannot be edited. Any attempt to add, delete, or manipu The user defines any parameter values or connections for late the Blocks within the Composite Block outline results in the loop and connects the externally exposed block Source 40 the user being prompted to invoke the Composite Block Defi and sink parameters to I/O Blocks. When instantiated, the nition editor view. placeholder I/O Block attributes (Name, type, enclosure, etc.) All of the Control Algorithm Diagram objects can be stored are assigned values. Tags are then assigned to connections in the user's workspace or the appropriate branch of the made within the I/O Block. The I/O Block Placeholders serve System tree. Simple Loops, Template-Derived Loops and to group Tag List Row Placeholders associated with the same 45 Composite Blocks can be created in the context of a Com I/O device (FBM). When building loops, the user can add and pound. remove I/O Block and Tag List Row Placeholders from the Composite Blocks and Composite Block definitions define drawing. groups of blocks, connections between them and specific Template-Derived Loops are loops which are instantiated values for the contained block parameters. Simple Loops, from Loop Templates. Individual block parameters and con 50 Loop Templates and Template-Derived Loops extend this to nections to I/O hardware devices can be customized in each connect the blocks to external I/O points, represented by an separate instantiation. When instantiated, the user assigns the I/O Block. loop to a compound, assigns “real block names, connects the Blocks and Connections for standalone blocks in com I/O points to actual tags, and modifies values of parameters in pounds can be made with this editor. The user can edit param the loop. This is either done manually or via the Loop gen 55 eter values and make connections to other standalone blocks eration function of the Tag List Editor. Any changes made to graphically as shown in FIG. 44. Blocks containing param information specified in the Loop Template (Blocks included eters which Supply inputs to the current block appear in the in the Loop, internal Block connections, etc.) result in the user left margin and blocks containing parameters receiving out being prompted to convert the Loop to a Simple Loop, which puts appear in the right margin. Only blocks not associated will result in breaking the link to the Loop Template. Param 60 with Loops or Composite Blocks can be edited in this manner. eters for Blocks in a Template-Derived Loop can only be Each block on a control algorithm diagram is represented modified if they have been exposed as Loop parameters, as internally by a Placeholder. This Placeholder holds informa described below. tion about the geometry, placement, and size of the visual Simple Loops are loops which have no template. They are block representation. The placement of the object is user edited nearly identically to Loop Templates but can be created 65 modifiable. The basic appearance, geometry and size infor in the context of a compound and assigned to “real' blocks mation for an object is maintained in the user-definable and I/O Blocks. Appearance object. The object’s Placeholder maintains a ref US 8, 127,060 B2 55 56 erence to its Appearance object. From this representation of a When the user is making connections within a Loop Template block, the user can access parameter and connection infor or Composite Block Definition, the connection definition por mation or navigate to other loops, composite blocks or blocks tion of the Connection Dialog looks like FIG. 47. Users can by accessing the block's context menu. only make internal connections or expose parameters as tun The user can perform different functions on different parts ing parameters for templates and definitions. FIG. 48 shows of the Block Placeholder by right-clicking to bring up the the connection definition portion of the dialog when the user context menu. Context menus contain unique functions has decided to expose a parameter as a tuning parameter or for depending on the object on which they are invoked. For external connection for a Composite Block. example, the user has the option to edit connections, param Connections between blocks and their respective source eters, block information, etc. The default double-click func 10 and sink parameters are indicated with arrows from Source to tion for the Compound/block name section is to prompt for sink parameter. External connections are displayed in the new Compound and Block Names. The default function for margins—inputs to the Loop, Block, or Composite Block are the source? sink parameters sections is to bring up a connec to the left and outputs are to the right. Connections to and tion dialog. In the Relevant block parameters section, the from these blocks and placeholders are indicated in the same default action is to select parameters displayed from a list of 15 manner as internal connections. Connections to Blocks out block parameters. The default action for the center of a block side the loop or “exposed parameters in Composite Blocks is to bring up the block's Property Sheet. and Loop Templates are shown as Connections that come out Each Block Placeholder on the display has the same basic of a Block Placeholder and terminate at a label a short dis graphical structure. FIG. 45 shows a typical block on a tance from the point of origin. This label then appears in a graphical display. The type of the block is displayed in the table at the lower corner of the screen. Inputs are in a table in center in a larger font than any other in the block for easy the lower left, outputs in the lower right. These tables contain viewing. The optional compound name and block name the label and the actual C:B.P to which the point is connected. appear at the top in a medium font. On Loop Templates, Users have full control over placement of blocks in the Composite Block Definitions or any block not downloaded, center region and ordering of connections in the source and the compound and block name fields are empty. Connected 25 sink parameter lists. Connection lines are automatically parameters appear in the Sourcelsink regions of the block. A drawn. Blocks in the input and output margins can be reor Small font is used for showing parameters. Sink parameters dered or moved between margins. Blocks, Loops, and Com are shown on the left, source parameters on the right. Param posite Blocks can be assigned to Compounds and down eter values that the creator of the diagram have considered to loaded via main menu or context menu picks on the individual be relevant to the drawing appear at the bottom. When param 30 blocks. Users may select “Edit Parameters . . . from the eters are added or removed from the lists of source, sink, or context menu of any block. This brings up the property sheet display Parameters, the block is automatically resized. for the block as shown in FIG. 49. From the Parameter Prop Parameters are selected for display from a list presented in erty Sheet, the user can modify values for the Parameters of a dialog. Internally, these parameter selections are stored with the selected Block. For Composite Blocks and Template the Placeholder, probably as part of the Appearance Defini 35 derived Loops, the user is presented with a dialog like that in tion. See Part 1 for a more complete discussion of Placehold FIG. 50. From this dialog, the user can set values for the ers and related objects. “exposed' parameters of any contained block. Refer to Part 1 Composite Blocks have additional functionality which for a more complete description of Property sheets. The pull allows them to be expanded in place on a control algorithm down list box shown on the Composite Block Property sheet diagram. Composite Blocks can expand to show the internal 40 is a shortcut to navigate to all the internal Block parameters block representation in a trimmed-down view of the actual which are exposed. An alternative to this approach is to group Composite Block diagram. The expanded view is shown out all the exposed parameters onto separate Property sheet lined, to still denote the original Block, as shown in FIG. 43. pages, grouped by Block. The pull-down menu is also useful The Control Algorithm Diagram Editor has the ability to to incorporate in the Property sheet for Simple Loops, as a generate a default graphical representation of a Template 45 shortcut to access Block parameters without having to navi Derived Loop or Composite Block. When loops are automati gate the Loop drawing. cally generated via the Tag List Editor, for example, the Loop In addition to entering constant values, the user can enter is created, but the graphical representation is not. When the formulas for Block Parameters to be calculated based on other Loop is first printed or displayed, a default representation is Parameters, Tags, Connections, etc. as shown in FIG. 51. created. 50 Refer to the discussion of this document on Smart Blocks for All objects on the diagram are “active. Each area of an a more detailed description of these formulas. object has a context which is used for displaying popup 2.3.2 Functions menus. For example, the default action for the block type area The following sections describe functions that are imple is to show the property sheet for the block. The default action mented by the Control Algorithm Diagram Editor. Most for the relevant block parameters area is to bring up a list of 55 graphical functions apply to all of the visual block/connection parameters available to be displayed there. Clicking and drag type objects which can be configured. Functions specific to ging from within one of the sink or source areas to another the object being edited are in their respective sections. blocks source or sink generates a new connection. If the 2.3.2.1 General Graphical Control Algorithm Diagram Editor parameters to be connected are exposed on the Block Place Functions holders, the connection can be made directly. If the param 60 Graphical Functions eters to be connected are not shown on the Placeholders, the Graphically create, view, and edit Composite Block Defi user can invoke a connection dialog. nitions, Composite Blocks, Loop Templates, Template Using the dialog presented in FIG. 46, users can connect Derived Loops, Simple Loops Block parameters in Simple Loops and Template-Derived Display status information (Editing template, editing loop Loops to parameters in other Blocks in the loop, parameters in 65 X in C:B.P. online, offline, etc.) blocks outside of the loop, I/O points from a Tag List, or Undo/redo data or graphical changes, revert to previous “expose the parameter as a tuning parameter of the loop. version US 8, 127,060 B2 57 58 Provide standard diagramming and document functions Provide bulk Loop generation capability in Support of Tag like object alignment, Snap to grid, cut, copy, paste, List Editor capability to generate Loops from the Tag Zoom, multiple selection List. Allow user placement of blocks on sheet Import and export Blocks, Block Definitions, Composite Specify restrictions on instantiation of Loop Template or 5 Block Definitions, Loops, Loop Templates, Template Composite Block Definition: blocks are preferably in Derived Loops to/from diskette using the illustrated con the same compound, fixed block ordering, etc. figuration system format Navigate to other block display by selecting referenced Other General Functions block in current display Print sheet View and edit CALC Block calculations, PLB Block lad 10 Optionally show?print Sequence, CALC, and PLB Block der logic, Sequence Block logic, and Logic Block logic. Logic on secondary sheets Create a Loop which spans multiple Loop Sheets Report on definitions, instances, connections, instances of Display Composite Block details on diagram. specified definition or template Interact with other editors: Invoke Block Property Sheets from Loop drawing 15 Invoke Property Sheet for Block Collection objects (Loop, Invoke Block Definition Editor Loop Template, Composite Block Definition) from Modify/create Block Definitions drawing sheet Invoke Historian Collection Point Editor Display live values for parameters in blocks on current Assign Parameters, Blocks, or Loops to Historian Col drawing. This can only be done when viewing checked lection Group in copies of drawings, not on user workspace copies. Invoke Import/Export Manager Database Functions Import and export Blocks, Block Definitions, Loops, Create and edit Composite Block Definitions, Composite Loop Templates to/from external packages Blocks, Loop Templates, Template-Derived Loops, Invoke Compound Editor Simple Loops 25 Assign blocks to compounds Create instances of Blocks and Composite Blocks on a Assign block ordering within compounds control algorithm diagram Invoke Download/Upload Manager Connect parameters between blocks on diagram Download Loop/Blocks to CP Move connections Upload current parameter values Generate Display file for loop or composite block 30 Define parameters to display in block display, Source and Invoke Enclosure Editor sink regions Assign Tags to FBM Modules Enter diagram title, description, info, local block names Invoke Tag List Editor Define general formulas used for all blocks in diagram Assign tags to loops Attach Modifier blocks to blocks in diagram or entire 35 Generate loops from tags object Automation Interface Functions Add, delete blocks to sheet Create/delete Blocks, Template-Derived Loops Edit block parameters via property sheets Upload/download Blocks, Loops Copy blocks from one instance of editor to another or Set/get parameter values within single editor via drag-drop. 40 Get lists of available Blocks, Compounds, Loop Tem Create new loops, composite block definitions, loop tem plates, etc. plates from groups of selected blocks Maintain version history and audit trail of templates, defi 2.3.2.2 Loop Template Unique Functions nitions, instances Create Loop Template exposed parameters, connect inter Security based on default and administrator-configurable 45 nal Block parameters to exposed parameters read, write, download, etc. permissions, as provided by Connect parameters to I/O Block Framework security functions Show blocks which are targets for external point connec Allow only authorized developers to modify implementa tions on sheet, different from blocks contained in template tion standard Block Definitions and Loop Templates Create “soft connections—Connections which are created Assign Blocks in Loops to different Compounds or all 50 based on Tag List information Blocks in Loops to a single Compounds Example: Connect to shared MAIN block parameter based Define block processing order for blocks in a loop. This on correlation with tag associated with MAIN inputs value is a Suggested order which can be overridden by from I/O actions in the Compound Editor. Edit Loop Template which has instances Determine Block names at Loop instantiation time based 55 Mark all derived instances of Template-Derived Loops as on name macros, loop macros, and Modifier Blocks "needs to be downloaded’ applied Prompt to download all affected Template-Derived Loops Download Blocks/Loops to CP Provide information on what blocks/compounds may be Provide “Save As’ functionality Composite Block can affected be saved as Loop, Vice-versa 60 Ensure valid connections between blocks 2.3.2.3 Template-Derived Loop Unique Functions Assign Blocks to Compounds either individually or by Connect parameters to I/O Block parameters Loop Generate Template-Derived Loops from Loop Templates Provide back documentation capability in support of Assign I/O Block placeholders to Tags Import/Export Manager. This includes the ability togen 65 Override internal block parameter values on database erate a default drawing layout for Loops and Loop Typi upload, including parameters which are not exposed cal (templates) imported from FoxCAE. Disconnect from Loop Template—convert to Simple Loop US 8, 127,060 B2 59 60 2.3.2.4 Composite Block Definition Unique Functions mentation standard Control Block, the control parameter val Create Composite Block exposed parameters, connect ues then can get installed to a IAS control station. internal block parameters to exposed parameters Blocks can be contained in Compounds, Loop Templates, Prohibit external parameter connections, all connections Simple Loops, and Composite Block Definitions. Blocks are are preferably through exposed parameters not actually contained, but logically contained in Composite 2.3.2.5 Composite Block Unique Functions Blocks and Template-Derived Loops by way of their parent Override internal block parameter values on database definitions or templates. Blocks which are in Template-De upload, including parameters which are not exposed rived Loops, Simple Loops, Composite Blocks, or single Create instance of Composite Block in Simple Loop/Loop Blocks can be assigned to a Compound in an IAS system. 10 When Blocks are installed, they are then contained by both Template/Composite Block Definition, connect exposed the loop or composite block to which they belong and the points Compound to which they are assigned. Show as single block or expanded block detail on sheet, Blocks contain lists of Source Endpoints, Sink Endpoints, including block structure and internal connections Parameter Overrides, and Modifier Blocks. All of these lists 2.3.2.6 Simple Loop Unique Functions 15 and their handling are inherited from Parameterized Object. Connect parameters to I/O Block parameters The list of Modifier Blocks inherited is a Parameterized 2.3.3. Object Model Object list, Block enforces that only Modifier Blocks are The following sections describe the object model used by placed in that list. Blocks are capable of interacting with the the Control Algorithm Diagram Editor. FIG. 52 shows the IAS via its application programming interface (Fox API) and basic control objects and the Framework objects from which the DB Installer. When a block is told to download or upload they are derived. These objects are shown in greater detail in to/from a CP, it establishes a connection to the CP and per later figures. Note that the I/O Block described in these sec forms the requested function. When viewing live data on a tions is actually a Tag List Row, as described in the Tag List loop diagram in the future, the Block will be capable of Editor section of this document. creating an list via Fox API and retrieving live values for Modifier Block Definitions, Composite Block Definitions, 25 displayed parameters and connections. and Loop Templates are unique definitions in that unlike Both Block and Block Definition are derived from Param Block Definitions, other definitions cannot be derived from eterized Object to take advantage of the services provided by these objects. If a user wants to create a variant of these that class. Block and Block Definition are separate classes definitions, this can be done by copying the definition and because they perform different roles in the Control Algorithm then modifying the copy. 30 Diagram object model. Block Definitions are static objects, 2.3.3.1 Block which cannot be downloaded, can contain definitions of Referring to FIG. 53 Block is the foundation for all control Parameters and Overrides, and can only reside in the Block on the IAS system. All of the control structures defined in this Definition portion of the database. Blocks can be down editor are based on Blocks and collections of Blocks. A Block loaded, can only contain Overrides, and reside in the Project is a container for Parameters. Each of these parameters has a 35 portion of the database. type (float, string, integer, etc.) and attributes (connectable, Class Relationships: high range, low range, length, etc.) which define the range of The Block object maintains a reference to its Block Defi values it can contain. These parameters can also be connected nition. This definition could also be another Block instance, to parameters in the same block or any other block in the which in turn, refers back to its Block Definition. system via the Source Endpoint and Sink Endpoint lists. Each 40 Block is derived from Parameterized Object. It inherits its Endpoint object represents a parameter in the current block. A ability to maintain a list of parameters, be contained in a single parameter can be the Source for many other parameters, Parameterized Object Collection, maintain endpoints to con but may only be a sink of one parameter. Therefore, only one nections, and keep a list of Modifier Blocks from this parent Sink Endpoint may exist for each parameter while many class. Source Endpoints can exist for each parameter. Blocks must 45 Block maintains a list of Parameter Overrides. These val preferably have a definition. A Block Definition defines the ues override the values or default values of parent Block or set of parameters names, types, attributes and values for a Block Definition. block. The set of parameters defines the block type. See Part Block maintains a list of Source Endpoints and Sink End 1 for a detailed description of Parameters, Parameter Defini points for connections made between Parameterized Objects. tions, and Parameter Overrides. The Block Definition can be 50 Block can contain references to one or more Modifier a simple Block Definition, a derived Block Definition or a Blocks. Modifier Block parameters act as overrides to the Block Instance. In any case, the Block contains a list of current Block. Parameter Overrides which override the default values in the Blocks can be contained in Compounds, Loop Templates, definitions. Simple Loops and Composite Block Definitions. They are Blocks contain a list of Modifier Blocks which are applied 55 also logically contained in Composite Blocks and Template to them. Modifier Blocks contain a list of parameter values. Derived Loops via reference to their respective definitions or For any parameter values in the Modifier Block which have templates. Blocks maintain associations with their containers matching names, the values in the Modifier Block override for use in “where used’ reporting, supported as part of the the values in the Block. Framework. When a Block's parameter values are needed, they are 60 2.3.3.2 Modifier Block determined by the following algorithm. For each parameter Referring to FIG. 54, a Modifier Block is an object that defined in any parent Block Definition, all Modifier Blocks modifies all matching parameters in an associated Block or are searched for matching parameter names. If there is a block collection object. Whenever an object needs to reply to match, the value is used. Otherwise, the heritage tree is a request for parameter values, any associated Modifier Block searched for any overrides or default values. The exact logic 65 parameter values override Block values and Block Definition is encapsulated into Parameters, described in the Part 1. If the default values. Handling of the Parameter Values is managed root Block Definition for this Block is defined as an imple by the inherited Block class. No Source Endpoints or Sink US 8, 127,060 B2 61 62 Endpoints are used by Modifier Block. Connections cannot Modifier Block list. From Parameterized Object Collection it be made to parameters in a Modifier Block. inherits the abilities to maintain lists of Connection End Like any Block, Modifier Blocks have definitions which points, Parameters, Modifier Blocks, and Blocks. To Param give each Modifier Block its type. Modifier Block maintains eterized Object Collection it adds special handling of the lists a reference to its parent definition. This mechanism is iden- 5 of Parameters and Connection Endpoints inherited from par tical to that of the Block object. Modifier Blocks can be ent classes. Composite Block Definition defines Composite attached to all types of block collection objects, but do not Blocks to be instantiated in other Composite Block Defini appearin Compounds. They contain parameters but do not get tion-derived Collections. downloaded like other Block types. The Modifier Block The Parameters that are owned by this class represent the parameters apply to the matching parameters of all Blocks or 10 block collections which contain it. Modifier Blocks do not “exposed' parameters of the Composite Block. These Param apply Parameter Overrides to Blocks within Composite eters are linked to the parameters in the contained Blocks that Blocks or Template-Derived Loops. Parameters are prefer they “expose' through the Connections maintained by this ably be exposed for Modifier Blocks to affect Parameters in class. These parameters are the only parameters that any Blocks inside the Composite Block or Loop. Parameter val 15 container of the instantiated Composite Block can access. ues for a block are determined by looking at related objects in The initial values for the attributes of the parameters are the following order: copied from the parameters they expose. These attributes can 1. Block Definition Hierarchy then be modified. 2. Global Modifier Block (attached to entire Loop) Composite Block Definition is not responsible for main 3. Local Modifier Block (attached to specific Block) taining any Connections outside of this object. All Connec 4. Local Block tions maintained in this object refer to “exposed parameters. Any values found along this path become the value for the Connections can be made in instances of Composite Blocks Parameter. For example, if a Global Modifier Block contains from parameters defined here to other Blocks. With the MEAS-5 and a Block on the Loop has a value of MEAS “exposed' parameters defined and their values connected to explicitly set to 4, then MEAS=4 for that Block because the 25 internal parameters, the Composite Block defined looks like a Local Block value overrides all other values. Block to other Composite Block Definition-derived classes. FIG. 55 presents a Simple Loop containing a Composite The instantiated Composite Block derived from this defini Block with several Modifier Blocks. Three scenarios are pre tion can be used like any other block in Composite Block sented for the configuration. Definition-derived Classes. Scenario 1: In this scenario, no parameters of Composite 30 Modifier Blocks contained by Composite Block Definition Block A are exposed. Therefore, Modifier Blocks in Loop 1 apply to all blocks contained by the object. Composite Block can have no effect on Block E and Block F. Modifier Block H Definition is responsible for adding Modifier Block refer applies to both Block E and Block F, but Modifier Block G ences to all of its contained Blocks when a Modifier Block is overrides this value. attached to it. This allows the Parameter Facade classes Scenario 2: In this scenario, the MEAS parameter of Block F 35 defined by the Framework to access Modifier Block param is exposed in Composite Block A. This allows the Modifier eters. Blocks in Loop1 to adjust the Parameter value. Again, the Composite Block Definitions can create instances of the local Modifier Block (Modifier Block D) affects the value of Composite Blocks they define. These instances maintain a MEAS. pointer to this class as their definition. These instances main Scenario 3: In this scenario, the MEAS parameter of Block E 40 tain overrides of the “exposed parameters and of parameter is exposed in Composite Block A. The MEAS parameter of value changes made via an Upload operation to retrieve cur Block E now takes on the value of the local Modifier Block in rent parameter values from the Control Processor. Composite Loop1. Block Definitions supply their instances with the actual block Class Relationships: names of “exposed parameters on request. This is useful Modifier Block is derived from Block. From Block it inher- 45 when displaying the value of a connected point or when the its the ability to be contained in a block collection and its value must actually be placed in a running control system. ability to manager Parameter Overrides. Class Relationships: Multiple Modifier Blocks can be contained by Composite Composite Block Definition is a Parameterized Object Block Definition-derived object or Block-derived objects. Collection. From Parameterized Object Collection it Modifier Block maintains a reference to its definition, if 50 inherits the ability to manage parameters, connections, any, which can be an instance of a Modifier Block. and Blocks. 2.3.3.3 Composite Block Definition Composite Block Definition maintains a reference to a Referring to FIG. 56, a Composite Block Definition is a parent definition, if any. Many Composite Block Defi Parameterized Object Collection derivative. Composite nitions can be derived from a single definition. Block Definition provides the common functionality for all 55 Composite Block Definition can contain any number of objects that contain collections of Block objects: Composite Composite Blocks and Blocks. Modifier Blocks can be Block Definitions, Loop Templates, and Simple Loops. It is attached to Composite Block Definitions. When they are an extension of the Parameterized Object Collection class attached, the parameter value overrides of the Modifier which restricts the Parameterized Objects it contains to Block apply to all blocks in the Composite Block Defi objects derived from the Block class. 60 nition. Composite Block Definition inherits from Parameterized A Composite Block Definition cannot contain a I/O Block. Object Collection the ability to manage Parameterized Composite Block Definition maintains a list of Source Objects, (in this case, Blocks) its own parameters, (a Param Endpoints and Sink Endpoints. These are used to con eterized Object Collection is a Parameterized Object) nect "exposed' Parameters to their actual points within attached Modifier Blocks, and its Connection Endpoints. 65 the Composite Block Definition. Like the Block class, Composite Block Definition is respon Parameters are used to store the “exposed parameter defi sible for ensuring that only Modifier Blocks are stored in the nitions for the defined Composite Block.