United States Patent6510352
Badavas , ; et al.January 21, 2003

Title

Methods and apparatus for object-based process control

Abstract

The provides improved control devices, systems and methods for operation thereof. These rely on control devices that provide virtual machine environments in which Java objects, or other such software constructs, are executed to implement control (e.g., to monitor and/or control a device, process or system). These objects define blocks which are the basic functional unit of the control. They also define the input, output and body parts from which blocks are formed, and the signals that are communicated between blocks. The objects also define nested and composite groupings of blocks used to control loops and higher-level control functions.


Inventors:Badavas; Paul C. (Southboro, MA), Hansen; Peter D.  (Wellesley, MA)
Assignee:The Foxboro Company (Foxboro, MA)
Appl. No.:627466
Filed:July 28, 2000

Current U.S. Class:700/19 700/20 700/48 700/49 700/50 700/52 718/100 700/18 
Current International Class:G05B 11/01 (20060101)
Field of Search:700/19,18,20,48,49,50,51,52 717/1,9,10,11 709/1,100,103

U.S. Patent Documents
3665172May 1972Spaargaren et al.
3810119May 1974Zieve et al.
3825905July 1974Allen, Jr.
4006464February 1977Landell
4096566June 1978Borie et al.
4276593June 1981Hansen
4302820November 1981Struger et al.
4312068January 1982Goss et al.
4323966April 1982Whiteside et al.
4347563August 1982Paredes et al.
4410942October 1983Milligan et al.
4413314November 1983Slater et al.
4423486December 1983Berner
4428044January 1984Liron
4435762March 1984Milligan et al.
4443861April 1984Slater
4456997June 1984Spitza
4466098August 1984Southard
4471457September 1984Videki, II
4488226December 1984Wagner, Jr. et al.
4493027January 1985Katz et al.
4609995September 1986Hasebe
4615001September 1986Hudgins, Jr.
4628437December 1986Poschmann et al.
4639852January 1987Motomiya
4641269February 1987Japenga et al.
4641276February 1987Dunki-Jacobs
4648064March 1987Morley
4649479March 1987Advani et al.
4663704May 1987Jones et al.
4672530June 1987Schuss
4675812June 1987Capowski et al.
4682158July 1987Ito et al.
4682304July 1987Tierney
4683530July 1987Quatse
4692859September 1987Ott
4692918September 1987Elliott et al.
4703421October 1987Abrant et al.
4704676November 1987Flanagan et al.
4709325November 1987Yajima
4719593January 1988Threewitt et al.
4727477February 1988Gavril
4733366March 1988Devesso et al.
4742349May 1988Miesterfeld et al.
4750109June 1988Kita
4790762December 1988Harms, deceased et al.
4805107February 1989Kieckhafer et al.
4816996March 1989Hill et al.
4817094March 1989Lebizay et al.
4872106October 1989Slater
4897777January 1990Janke et al.
4910658March 1990Dudash et al.
4910691March 1990Skeirik
4918690April 1990Markkula, Jr. et al.
4958277September 1990Hill et al.
4959774September 1990Davis
4965717October 1990Cutts, Jr. et al.
4965742October 1990Skeirik
4965880October 1990Petitjean
4991170February 1991Kem
5008805April 1991Fiebig et al.
5050165September 1991Yoshioka et al.
5068778November 1991Kosem et al.
5121318June 1992Lipner et al.
5122948June 1992Zapolin
5124908June 1992Broadbent
5129087July 1992Will
5131092July 1992Sackmann et al.
5134574July 1992Beaverstock et al.
5136704August 1992Danielsen et al.
5138708August 1992Vosbury
5140677August 1992Fleming et al.
5146589September 1992Peet, Jr. et al.
5150289September 1992Badavas
5151978September 1992Bronikowski et al.
5151981September 1992Westcott et al.
5159673October 1992Sackmann et al.
5162986November 1992Graber et al.
5163055November 1992Lee et al.
5164894November 1992Cunningham-Reid et al.
5166685November 1992Campbell, Jr. et al.
5168276December 1992Huston et al.
5168441December 1992Onarheim et al.
5175829December 1992Stumpf et al.
5193175March 1993Cutts, Jr. et al.
5202961April 1993Mills et al.
5212784May 1993Sparks
5233615August 1993Goetz
5245704September 1993Weber et al.
5251125October 1993Karnowski et al.
5255367October 1993Bruckert et al.
5258999November 1993Wernimont et al.
5271013December 1993Gleeson
5283729February 1994Lloyd
5289365February 1994Caldwell et al.
5295258March 1994Jewett et al.
5297143March 1994Fridrich et al.
5302952April 1994Campbell, Jr. et al.
5303227April 1994Herold et al.
5303375April 1994Collins et al.
5303392April 1994Carney et al.
5307346April 1994Fieldhouse
5307372April 1994Sawyer et al.
5307463April 1994Hyatt et al.
5309556May 1994Sismilich
5317726May 1994Horst
5335221August 1994Snowbarger et al.
5347181September 1994Ashby et al.
5349343September 1994Oliver
5352033October 1994Gresham et al.
5359721October 1994Kempf et al.
5371895December 1994Bristol
5377315December 1994Leggett
5381529January 1995Matsushima
5384910January 1995Torres
5390321February 1995Proesel
5392389February 1995Fleming
5394522February 1995Sanchez-Frank et al.
5398331March 1995Huang et al.
5400140March 1995Johnston
5408603April 1995Van de Lavoir et al.
5410717April 1995Floro
5420977May 1995Sztipanovits et al.
5426732June 1995Boies et al.
5428734June 1995Haynes et al.
5428781June 1995Duault et al.
5432711July 1995Jackson et al.
5434997July 1995Laundry et al.
5437007July 1995Bailey et al.
5444851August 1995Woest
5450403September 1995Ichii et al.
5450425September 1995Gunn et al.
5450764September 1995Johnston
5451939September 1995Price
5452201September 1995Pieronek et al.
5457797October 1995Butterworth et al.
5459825October 1995Anderson et al.
5459839October 1995Swarts et al.
5461710October 1995Bloomfield et al.
5463735October 1995Pascucci et al.
5467264November 1995Rauch et al.
5475856December 1995Kogge
5481741January 1996McKaskle et al.
5483660January 1996Yishay et al.
5485620January 1996Sadre et al.
5490276February 1996Doli, Jr. et al.
5491791February 1996Glowny et al.
5500934March 1996Austin et al.
5504672April 1996Hardiman et al.
5504902April 1996McGrath et al.
5509811April 1996Homic
5513095April 1996Pajonk
5513192April 1996Janku et al.
5513354April 1996Dwork et al.
5517655May 1996Collins et al.
5519605May 1996Cawlfield
5519701May 1996Colmant et al.
5522044May 1996Pascucci et al.
5530643June 1996Hodorowski
5539909July 1996Tanaka et al.
5544008August 1996Dimmick et al.
5549137August 1996Lenz et al.
5550980August 1996Pascucci et al.
5551047August 1996Mori et al.
5555213September 1996DeLong
5555437September 1996Packer
5555510September 1996Verseput et al.
5559691September 1996Monta et al.
5559963September 1996Gregg et al.
5566320October 1996Hubert
5568378October 1996Wojsznis
5572673November 1996Shurts
5576946November 1996Bender et al.
5579220November 1996Barthel et al.
5579487November 1996Meyerson et al.
5581760December 1996Atkinson et al.
5586112December 1996Tabata
5586329December 1996Knudsen et al.
5586330December 1996Knudsen et al.
5587899December 1996Ho et al.
5594858January 1997Blevins
5594899January 1997Knudsen et al.
5596331January 1997Bonaffini et al.
5596752January 1997Knudsen et al.
5598536January 1997Slaughter, III et al.
5600845February 1997Gilson
5604871February 1997Pecone
5611057March 1997Pecone et al.
5613148March 1997Bezviner et al.
5617540April 1997Civanlar et al.
5621871April 1997Jaremko et al.
5627979May 1997Chang et al.
5629949May 1997Zook
5630056May 1997Horvath et al.
5630152May 1997DeLuca et al.
5642511June 1997Chow et al.
5649121July 1997Budman et al.
5655092August 1997Ojala
5659680August 1997Cunningham et al.
5664101September 1997Picache
5664168September 1997Yishay et al.
5671374September 1997Postman et al.
5676141October 1997Hollub
5680404October 1997Gray
5680409October 1997Qin et al.
5682476October 1997Tapperson et al.
5687316November 1997Graziano et al.
5701414December 1997Cheng et al.
5704011December 1997Hansen et al.
5708779January 1998Graziano et al.
5719761February 1998Gatti et al.
5726912March 1998Krall, Jr. et al.
5727128March 1998Morrison
5732218March 1998Bland et al.
5737529April 1998Dolin, Jr. et al.
5742762April 1998Scholl et al.
5748467May 1998Qin et al.
5751574May 1998Loebig
5752007May 1998Morrison
5752008May 1998Bowling
5752246May 1998Rogers et al.
5754772May 1998Leaf
5758073May 1998Liang et al.
5758075May 1998Graziano et al.
5761518June 1998Boehling et al.
5764906June 1998Edelstein et al.
5768119June 1998Havekost et al.
5768510June 1998Gish
5774670June 1998Montulli
5777874July 1998Flood et al.
5790791August 1998Chong et al.
5793963August 1998Tapperson et al.
5796602August 1998Wellan et al.
5797038August 1998Crawford et al.
5801770September 1998Paff et al.
5801942September 1998Nixon et al.
5805442September 1998Crater et al.
5805922September 1998Sim et al.
5822220October 1998Baines
5828851October 1998Nixon et al.
5831669November 1998Adrain
5832418November 1998Meyer
5838920November 1998Rosborough
5841360November 1998Binder
5841963November 1998Nakamikawa et al.
5844601December 1998McPheely et al.
5844804December 1998Schussler
5847957December 1998Cohen et al.
5854750December 1998Phillips et al.
5854944December 1998Catherwood et al.
5862052January 1999Nixon et al.
5872992February 1999Tietjen et al.
5873089February 1999Regache
5874990February 1999Kato
5880775March 1999Ross
5909586June 1999Anderson
5920479July 1999Sojoodi et al.
5930768July 1999Hooban
5956487September 1999Venkatraman et al.
5975737November 1999Crater et al.
5980078November 1999Krivoshein et al.
5980090November 1999Royal, Jr. et al.
5982362November 1999Crater et al.
5994998November 1999Fisher et al.
6002104December 1999Hsu
6014591January 2000Ikeda
6014612January 2000Larson et al.
6026352February 2000Burns et al.
6035264March 2000Donaldson et al.
6049775April 2000Gertner et al.
6055633April 2000Schrier et al.
6061603May 2000Papadopoulos et al.
6078320June 2000Dove et al.
6085120July 2000Schwerdtfeger et al.
6094600July 2000Sharpe, Jr. et al.
6115468September 2000De Nicolo
6139177October 2000Venkatraman et al.
6140911October 2000Fisher et al.
6151625November 2000Swales et al.
6176421January 2001Royal, Jr. et al.
6195694February 2001Chen et al.
6195774February 2001Jacobson
6201996March 2001Crater et al.
6218930April 2001Katzenberg et al.
6260187July 2001Cirne
6272556August 2001Gish
RE33162February 1990Yoshida et al.
Foreign Patent Documents
0 411 869Jul., 1990EP
WO 95/04314Feb., 1995WO
WO 96/23377Aug., 1996WO
WO 96/31047Mar., 1996WO
WO 97/07486Feb., 1997WO
WO 98/20649May., 1998WO
WO 98/36518Aug., 1998WO
WO 98/54843Dec., 1998WO
Other References
"Apacs Control System," POWER vol. 139, No. 6 (Jun. 1995) p. 81 (Dialog print-out). .
Beestermoller, H.J. et al. "An online and offline programmable Multi-Loop Controller for Distributed Systems," IEEE (1994) pp. 15-20. .
"Control system," POWER vol. 139, No. 4 (Apr. 1995) p. 114 (Dialog print-out). .
Duffey, C.K. et al. "High-Level Control Language Customizes Application Programs," IEEE (Apr. 1991) pp. 15-18. .
Gyorki, John R. "PLCs drive standard buses," Machine Design (May 11, 1995) pp. 83-90. .
"New Telemacanique Programmable Controllers Feature Multiple Programming Languages," (Feb. 11, 1985) (Dialog print-out). .
Peshek, Clifford J. and Mellish, Michael T. "Recent Developments and Future Trends in PLC Programming Languages and Programming Tools for Real-Time Control," IEEE Cement Industry Technical Conference (May 1993) Toronto, Canada pp. 219-230. .
Stapleton, N. "802.3 Working Group DTE Power via MDI Call for interest," 3Com Jul. 1999. .
Berge, Jonas. "Using Ethernet is a no-brainer," InTech: The International Journal for Measurement and Control Jul. 2000, pp. 36-39. .
Stevens, et al. "TCP/IP Illustrated, vol. 1. The Protocols," TCP/IP Illustrated vol. 1, XP-002106390, pp. 85-96. .
ICCard Design Sep./Oct. 1995. .
Strack, Bob. "The HAWK is Soaring," Chemical Processing (May 1996) p. 11. .
"Control System Features Plug-and-Play Technology, Scalability," Chemical Processing (May 1996), p. 33. .
"Editors' Product Picks," Chemical Processing (May 1996), p. 34. .
"Tribe Computer Works' Net Products Can be Managed via World Wide Web," IAC (SM) Newsletter Database.TM., DataTrends Publications, Inc., No. 11, vol. 7, May 30, 1995. .
"Briefs," Network World, May 29, 1995, p. 19. .
Wilder, Clinton, "Network Management; Fussing Nets Via The Web--Tribe's WebManage uses popular interface," InformationWeek, May 29, 1995, p. 62. .
"Pipeline; Announced," InfoWorld, May 29, 1995, p. 45. .
Bernard, Viki, "Remote-access ware emerge; Shiva, Nortel, and Tribe leading list of innovators," PCWeek, No. 21, vol. 12, May 29, 1995, p. 47. .
"Tribe Announces Revolutionary Use of the Internet; Launches Innovative Remote Management Solution; New WebManage Technology Provides Network Management via World Wide Web," Business Wire, May 22, 1995. .
"Tribe Launches First Networking Device Capable of Being Managed via Internet Web Browser; TribeLine2 Enables Remote Computing and Internet Access," Business Wire, May 22, 1995. .
Dryden, Patrick, "Tribes WebManage Enables Remote Fixes," ComputerWorld, May 22, 1995, p. 14. .
Ko, Diffu, "Trobe defines net management role for Web browser software," Network World, May 22, 1995, p. 14. .
"Tour an actual TribeLink via WebManage," web page print-out from http://www.tribe.com/products/webmanage/quick_view.htm. (1 page). .
"Tribe Launches Innovative Remote Management Solution; New WebManage Technology Provides Network Management Via the World Wide Web," web page print-out (Jul. 12, 1999) from http://www.tribe.com/products/webmanage/wm_pr. (1 page). .
"TribeRoute," web page print-out (Jul. 12, 1999) from http://www.tribe.com/products/tr/index. (3 pages). .
"TribeStar," web page print-out from http://www.tribe.com/products/tribestar/index.htm (3 pages). .
Pappalardo, Denise, "Router Can Be Managed via Net," Internet Week, May 22, 1995, p. 6. .
Rodriguez, Karen, "Tribe sets software," Interactive Age, vol. 2, No. 15, May 22, 1995, p. 25. .
Welch, Nathalie, "Tribe to manage via Web; Tribe Computer Works Inc.'s TribeLink2 Product Announcement," MacWEEK, vol. 9, No. 21, May 22, 1995, p. 18. .
Pappalardo, Denise, "Digi Introduces IP/IPX Router," InternetWeek, Apr. 24, 1995, p. 15. .
"WWWF'94: Papers Received," web page print-out (Apr. 7, 2000) from http://www.ncsa.uiuc.edu/SDG/IT94/Agenda/Papers-received html (8 pages). .
Elmer-Dewitt, Philip, "Snowballs in Cyberspace; With a modem and a soldering iron, you too can build an internet site that is really cool and totally useless," Time, Jan. 16, 1995, p. 57. .
Scharf, Ronald, et al, "Using Mosaic for Remote Test System Control Supports Distributed Engineering," Institute of Computer-Aided Circuit Design--Test and Testsystems Division, University of Erlangen-Nurnberg, Germany, web page printout from http://www.ncsa.uiuc.edu/SDG/IT94/Proceedings/CSCW/scharf.html (8 pages). .
Cox, Mark J. and Baruch, Dr. John E. F. "Robotic Telescopes: An Interactive Exhibit on the World-Wide Web," web page print-out from http://www.ncsa.uiuc.edu/SDG/IT94/Proceedings/Museum/cox/marcox.html (11 pages). .
Gleick, James. "Fast Forward; Really Remote Control," The New York Times, Section 6, Column 3, p. 42, Dec. 3, 1995. .
Silverman, Dwight. "`Attaboy` for the best software and hardware of 1994," The Houston Chronicle, Dec. 25, 1994, p. 2. .
Browne, Malcolme W. "South Pole Ready for Internet Revolution," The New York Times, Section C, Column 1, p. 1, Jan. 10, 1995. .
Wolfe, Alexander, "Strong Brew," Electronic Engineering Times, Apr. 8, 1996, p. 73. .
"Special Topic: PC-Based Control," A Supplement to Software Strategies, pp. 3-5, 7-8, 10-15, 20-21. .
Momal, F. and Pinto-Pereira, C. "Using World-Wide-Web for Control Systems," from Proceedings 1995 International Conference on Accelerator and Large Experimental Physics Control Systems, Chicago, IL, Oct. 30-Nov. 3, 1995. .
"The `Only` Coke Machine on the Internet," web page print-out (Feb. 12, 1999) from http://www.cs.cmu.edu/.about.coke/history_long.txt (3 pages). .
"CMU SCS Coke Machine: Current Status," web page print-out (Feb. 12, 1999) from http://www.cs.cmu.edu/.about.coke/ (1 page). .
"The Switzerland Coke Machine Credits," web page print-out (Feb. 12, 1999) from http://www-swiss.ai.mit.edu/htbin/coke/ (1 page). .
"Peter Beebee's Home Page," web page print-out (Feb. 12, 1999) from http://www-swiss.ai.mit.edu/htbin/ptbbgate/jwz/?fetch+personal%2Fmain. text.html (2 pages). .
"bsy's List of Internet Accessible Coke Machines," web page print-out (Feb. 12, 1999) from http://www-cse.ucsd.edu/users/bsy/coke.html (1 page). .
"Disk Drive with Embedded Hyper-Text Markup Language Server," IBM TDB, vol. 38, n. 12, Dec. 1995, pp. 479-480. .
Leon, Mark, "Tektronix to add Web software on new printers," InfoWorld, Dec. 4, 1995, p. 6. .
"I/A Series Model 51 FoxRemote II Installation and Configuration Guide," Apr. 8, 1998 (Preliminary), pp. i-iv, 1-2. .
"New State-Logic Microcontroller," News Release, Control Technology Corp., Jun. 1, 1996, (DialogWeb search result). .
"NEW at IPC/92! Ethernet link provides Global PLC Registers," News Release, Control Technology (US), Nov. 20, 1992, (DialogWeb search result). .
"NEW at IPC/92! High-Capacity Integrated Motion Controller," News Release, Control Technology (US) Nov. 20, 1992, (DialogWeb search result). .
"Dual-Axis Servo Module for Small Controller," News Release, Control Technology (US), Sep. 11, 1990, (DialogWeb search result). .
"Innovative Small Controller Family offers Full Integration," News Release, Control Technology, Aug. 17, 1989, (DialogWeb search result). .
AC I/O Modules Available for Low-Cost Automation Controller, News Release, Control Technology Corporation, Jun. 28, 1989, (DialogWeb search result). .
"New Small Automation Controller features Precision Analog I/O Modules," News Release, Control Technology (US), May 30, 1989, (DialogWeb search result). .
"Inexpensive Automation Controller features Message Display Capability," News Release, Control Technology (US), May 19, 1989, (DialogWeb search result). .
"Small Multi-Tasking Controller for Cost-sensitive Applications," News Release, Control Technology US, Nov. 8, 1988, (DialogWeb search result). .
"CAD/CAM Software creates Automation `Programming Environment`," News Release, Control Technology (US), Oct. 3, 1988, (DialogWeb search result). .
"Automation Programming Environment runs On IBM (R)--PC," News Release, Control Technology (US), Mar. 29, 1988, (DialogWeb search result). .
"Low-Cost Automation Controller features Motion Control, Communications," News Release, Control Technology (US), Mar. 7, 1988, (DialogWeb search result). .
"System Provides Stepping Motor Control in Workcell Environment," News Release, Control Technology Corp., Dec. 5, 1986, (DialogWeb search result). .
"Multi-Tasking Controller provides High-level Instructions for Motion Control, Sequencing," News Release, Control Technology Corporation, Aug. 22, 1986, (DialogWeb search result). .
"Operator's Console creates `Friendly` Machines," News Release, Control Technology (US), May 9, 1986, (DialogWeb search result). .
"Automation Controller features fast 80186 Processor, Integrated Software," News Release, Control Technology (US), Apr. 22, 1986, (DialogWeb search result). .
"Plug-Compatible Controls and Actuators Speed System Development," News Release, Control Technology (US), Jan. 12, 1986, (DialogWeb search result). .
"Modular Valve Assemblies Connect to Controller with Ribbon Cable," New Product Release, Control Technology (US), Jan. 8, 1986, (DialogWeb search result). .
"Linear Actuators offer Plug-Compatibility with Controller," News Release, Control Technology (US), Nov. 21, 1985, (DialogWeb search result). .
"Compact System combines Motion Control, Machine Control," News Release, Control Technology, May 28, 1985, (DialogWeb search result). .
"Automation Controller accepts Customization," News Release, Control Technology, Jul. 12, 1985, (DialogWeb search result). .
"SECS-11 Communication Board Plugs into Automation Controller," News Release, Control Technology, Aug. 26, 1985, (DialogWeb search result). .
"Operator's Console for Automated Machines," News Release, Control Technology, Aug. 15, 1985, (DialogWeb search result). .
"Programmable Controller offers control of Stepping and Servo Motors," News Release, Control Technology, May 31, 1985, (DialogWeb search result). .
Taylor, Ken and Trevelyan, James, "A Telerobot on the World Wide Web," printed from http://telerobot.mech.uwa.edu.au/ROBOT/telerobo.htm (14 pages). .
"On-Line Vending Machine and Catalog Product Icons," IBM TDB, v. 38, n. 4 (Apr. 1995), pp. 113-116. .
Tinham, Brian, "Getting SCADA by web browsner? Supervisory Control and Data Acquisition," Control and Instrumentation, No. 12, vol. 28, Dec. 1995, p. 5. .
"Wizards wheel over SCADA systems; Supervisory Control and Data Acquisition," Control and Instrumentation, No. 12, vol. 28, Dec. 1996, p. 23. .
Fulcher, Jim and Dilger, Karen Abramic, "Soft control, Internet spark ISA/96," Manufacturing Systems, vol. 14, No. 12, Dec. 1996, p. 40-46. .
"Information technology in manufacturing," Manufacturing Systems, vol. 14, No. 12, Dec. 1996, pp. 54-78. .
"A sensation in supervisory control," Manufacturing Systems, (Windows NT in manufacturing Supplement), Oct. 1996, pp. 12A-24A. .
Demetratekes, Pam. "Go with the info flow; state-of-the-art automation in the food industry; includes related article on computer software for food processors," Food Processing, vol. 57, No. 7, Jul. 1996, P. 47. .
"New Products Provide Interactive Graphics Over Web Using Netscape Plug-Ins and Java," PR Newswire, May 20, 1996. .
"Integrated Systems; Industry's top embedded operating software supports Java," M2 Presswire, Mar. 4, 1996. .
"ErgoTech upgrades ErgoCim; First `plug and play` component software for manufacturing," Business Wire, Feb. 15, 1996. .
"Embedded Systems Conference Addresses the Increasing Complexity of Electronic Systems Design; Technical Program and Exhibits Help Embedded Systems Design Professionals Keep Pace with Rapid Change," PR Newswire, Dec. 27, 1995. .
"Industry's top embedded operating software supports Java; pSOSystem enables Embedded Internet applications and Low-cost Internet appliances," Business Wire, Feb. 1, 1996. .
"Gensym introduces G2 WebMiner for accessing and reasoning about data from the World Wide Web," Business Wire, May 15, 1996. .
"Gensym introduces Internet connectivity for its G2 family of intelligent real-time software," Business Wire, Mar. 18, 1996. .
"Gensym Announces Its Initiative for Leveraging Intelligent Systems with Internet/Intranet Technology," Business Wire, Oct. 7, 1997. .
"At Interop, Will ToasterNet Be on the Hot List?" Data Communications, vol. 19, No. 13, Oct. 1990, p. 214. .
Zeff, Joe. "Maui Sunset in Real Time (Modems not Optional)," The New York Times, Nov. 27, 1995, Section D, Column 2, p. 5. .
Toner, Mike. "Web's view of world far and wide," The Houston Chronicle, Nov. 5, 1995, p. 6. .
"Internet windows to the world," New Media Age, Oct. 26, 1995, p. 4. .
Foster, Kirsten. "surf's up; lights, camera, but no action; Steve is a Tech-Nomad. He wanders the streets with a camera on his head. And he wants you to join him," The Independent (London), Aug. 13, 1995, p. 10. .
Henry, Jim, Ph.D., P.E. "Implementation of Practical Control Systems: Problems and Solutions," web page print-out from http://chem.engr.utc.edu/Documents/MACSCITECH/MACSCITECHpaper1.html (22 pages). .
"Jim Henry's 1996 ASEE Paper," web page print-out from http://chem.engr.utc.edu/Documents/ASEE-96-full.html (5 pages). .
Henry, Jim, Ph.D., P.E. "LabVIEW Applications in Engineering Labs: Controls, Chemical, Environmental," ASEE Conference, Anaheim, CA, Jun. 25-28, 1995, web page print-out from http://chem.engr.utc.edu/Documents/ASEE-95-full.html (22 pages). .
"Breaking News for Invensys Software Systems Employees; iBaan and FactorySuite 2000 Integration Announced," internal e-mail dated Mar. 23, 2001. .
Gertz, Matthew, et al. "A Human--Machine Interface for Distributed Virtual Laboratories," IEEE Robotics & Automation Magazine 1 (1994) Dec., No. 4 (New York) pp. 5-13. .
Soreide, N. N., et al. "Mosaic access to real-time data from the TOGA-TAO array of moored buoys," Computer Networks and ISDN Systems 28 (1995), pp. 189-197. .
Goldstein, Ira and Hardin, Joseph. "Guest editorial," Computer Networks and ISDN Systems 28 (1995) p. 1. .
Slater, A. F. "Controlled by the Web," Computer Networks and ISDN Systems 27 (1994) pp. 289-295. .
Goldberg, Ken, et al. "Beyond the Web: manipulating the real world," Computer Networks and ISDN Systems 28 (1995) pp. 209-219. .
Goldstein, Ira and Hardin, Joseph, "Guest editorial," Computer Networks and ISDN Systems 28 (1995) p. 1. .
Goldberg, Ken, et al. "Desktop Teleoperation via the World Wide Web," IEEE International Conference on Robotics and Automation, pp. 654-659. .
Redman, Jim, et al. "The Intranet and the Internal Web Server: A Standard User Interface for Integrating Manufacturing Applications," Proceedings of the Industrial Computing Conference Inst. Society of American, vol. 6, No. 1, 1996, pp. 193-202..~
Primary Examiner: Patel; Ramesh
Attorney, Agent or Firm:Powsner; David J. Nutter McClennen & Fish LLP

Parent Case Text



This application claims the benefit of priority of U.S. Patent Application Serial No. 60/146,406, filed Jul. 29, 1999, entitled Process Control Objects, as well as of U.S. Patent Application Serial No. 60/149,276, filed Aug. 17, 1999, entitled Methods and Apparatus for Process Control ("AutoArchitecture"), the teachings of all of the foregoing of which are incorporated herein by reference.

Claims


What is claimed is:
1. A control device comprising: a virtual machine environment, the virtual machine environment executing an object or other software construct (collectively, "object") that configures the control device to provide a control function, the object communicating a datum with an entity that stores the datum, and the object accessing the datum by reference to storage maintained in the entity.

2. The control device of claim 1, wherein the virtual machine environment is a Java virtual machine, and the object is a Java object.

3. The control device of claim 1, wherein the object accesses the datum via any of a pointer, an address, or a symbolic or other reference to storage maintained in the entity.

4. The control device of claim 3, wherein the object accesses the datum for purposes of any of getting or setting a value thereof.

5. The control device of claim 3, wherein the object does not maintain a copy of the datum.

6. The control device of any one of claims 1-5, wherein the datum is any of a measurement, a setpoint or other value, or any of a range, a status, a limit status, a time stamp or other information pertaining to such measurement, setpoint or other value.

7. The control device of any one of claims 1-5, wherein the object configures the control device to provide any of sensing, actuation and other control functions.

8. The control device of any one of claims 1-5, wherein the object configures the control device to execute one or more control blocks.

9. The control device of claim 8, wherein one or more of the control blocks execute a control algorithm, provide input, and/or provide output.

10. The control device of any one of claims 1-5, wherein the device is any of a workstation, controller, control station, and a field device.

11. The control device of any one of claims 1-5 adapted for providing any of process, industrial, environmental or other control.

12. The control device of any one of claims 1-5, wherein the object comprises one or more mandatory portions for which memory is allocated in the control device at the time of object creation, and one or more optional parts for which memory space is allocated subsequent to object creation as needed.

13. The control device of any one of claims 1-5, comprising a second object that executes in the virtual machine environment, the object and the second object having input and output parts defined from subsets of a common set of input and output classes, respectively.

14. The control device of any one of claims 1-5, wherein the object configures the device to provide an analog input function with multiple inputs coupled to accept readings from multiple respective input devices and to generate an output based on one or more of those readings.

15. A control system comprising: one or more control devices, each providing a virtual machine environment, a plurality of objects executing in the one or more virtual machine environments, the plurality of objects including a first object and a second object that communicate a datum with one another, the first object maintaining a sole instance of the datum as between at least the first and second objects, the second object accessing the datum by reference.

16. The control system of claim 15, wherein the virtual machine environment maintained by the control devices is a Java virtual machine, and the first object and the second object are Java objects.

17. The control system of claim 15, wherein the second object accesses the datum via any of a pointer, an address, or a symbolic or other reference to the instance of the datum maintained by the first object.

18. The control system of claim 17, wherein the second object accesses the datum for purposes of any of getting or setting a value thereof.

19. The control system of any one of claims 15-18, wherein the datum is any of a measurement, a setpoint or other value, or any of a range, a status, a limit status, a time stamp or other information pertaining to such measurement, setpoint or other value.

20. The control system of any one of claims 15-18, wherein the first and second objects configure control devices on which they execute to provide any of sensing, actuation and other control functions.

21. The control system of any one of claims 15-18, wherein the first and second objects configure the one or more control devices on which they reside to execute control blocks.

22. The control system of claim 21, wherein at least one of the control blocks executes a control algorithm, provides input and/or provides output.

23. The control system of any one of claims 15-18, wherein one or more of the control devices is any of a workstation, controller, control station, and a field device.

24. The control system of any one of claims 15-18 adapted for providing any of process, environmental or other control.

25. The control system of any one of claims 15-18, wherein at least one of the first and second object comprise one or more mandatory portions for which memory is allocated in the control device at the time of object creation, and one or more optional parts for which memory space is allocated subsequent to object creation as needed.

26. The control system of any one of claims 15-18, wherein the first and second objects have input and output parts defined from subsets of a common set of input and output classes, respectively.

27. The control system of any one of claims 15-18, wherein at least one of the first and second objects configures the device to provide an analog input function with multiple inputs coupled to accept readings from multiple respective input devices and to generate an output based on one or more of those readings.

28. A control system comprising: one or more control devices, each providing a virtual machine environment, a plurality of objects executing in the one or more virtual machine environments, the plurality of objects including a first object and a second object between which a connection is established to communicate with one another one or more data contained in a data structure, the first object maintaining a sole instance of the data structure and data contained therein as between at least the first and second objects, the second object accessing data in the data structure by reference.

29. The control system of claim 28, wherein the data structure comprises a unidirectional variable able having a measurement, a setpoint or other value, and any of a range, a status, a limit status, a time stamp or other information pertaining to such measurement, setpoint or other value.

30. The control system of claim 29, wherein the virtual machine environment maintained by the control devices is a Java virtual machine, and the first object and the second objects are Java objects.

31. The control system of claim 29, wherein the second object accesses data in the data structure via any of a pointer, an address, or a symbolic or other reference to the instance of the data structure maintained by the first object.

32. The control system of claim 29, wherein the second object accesses the data structure for purposes of any of getting or setting a datum thereof.

33. The control system of claim 28, wherein the datum is any of a measurement, a setpoint or other value, or any of a range, a status, a limit status, a time stamp or other information pertaining to such measurement, setpoint or other value.

34. The control system of claim 28, wherein the first and second objects configure control devices on which they execute to provide any of sensing, actuation and other control functions.

35. The control system of claim 28, wherein the first and second objects configure the one or more control devices on which they reside to execute control blocks.

36. The control system of claim 33, wherein at least one of the control blocks executes a control algorithm, provides input and/or provides output.

37. The control system of claim 28, wherein one or more of the control devices is any of a workstation, controller, control station, and a field device.

38. The control system of claim 28 adapted for providing any of process, environmental or other control.

39. The control system of any one of claims 28-38, wherein the data structure comprises a bi-directional variable having a forward-going measurement, setpoint or other value (collectively, "forward-going value"), any of a range, a status, a limit status, a time stamp or other information pertaining to the forward-going value, a back-going measurement, setpoint or other value (collectively, "back-going value"), and any of a range, a status, a limit status, a time stamp or other information pertaining to the back-going value).

40. A control system comprising: one or more control devices, each providing a virtual machine environment, a plurality of objects executing in the one or more virtual machine environments, the plurality of objects including a first object that communicates a datum with a second object and a third object, the first object maintaining a sole instance of the datum as between at least the first, second and third objects, the second and third objects accessing the datum by reference.

41. A control system comprising: one or more control devices, each providing a virtual machine environment, a plurality of objects executing in the one or more virtual machine environments, the plurality of objects including a first object with which connections are established by a second object and by a third object, each connection being for the transfer of data contained in a data structure, the first object maintaining a sole instance of the data structure and data contained therein as between at least the first, second and third objects, the second and third objects accessing data in the data structure by reference.

42. The control system of any one of claims 40-41, wherein the data structure comprises a bi-directional variable having a forward-going measurement, setpoint or other value (collectively, "forward-going value"), any of a range, a status, a limit status, a time stamp or other information pertaining to the forward-going value, a back-going measurement, setpoint or other value (collectively, "back-going value"), and any of a range, a status, a limit status, a time stamp or other information pertaining to the back-going value).

43. A method of operating a control device comprising: executing an object or other software construct (collectively, "object") on a virtual machine environment provided in the control device, the object configuring the control device to provide a control function, communicating a datum between the object and an entity that stores the datum, the object accessing the datum by reference to storage maintained in the entity.

44. The method of claim 43, wherein the virtual machine environment is a Java virtual machine, and wherein the object is a Java object.

45. The method of claim 43, composing accessing the datum from the object via any of a pointer, an address, or a symbolic or other reference to storage maintained in the entity.

46. The method of claim 45, comprising accessing the datum for purposes of any of getting or setting a value thereof.

47. The method of claim 45, wherein the object does not maintain a copy of the datum.

48. The method of any one of claims 43-47, wherein the datum is any of a measurement, a setpoint or other value, or any of a range, a status, a limit status, a time stamp or other information pertaining to such measurement, setpoint or other value.

49. The method of any one of claims 43-47, comprising executing the object to configure the control device to provide any of sensing, actuation and other control functions.

50. The method of any one of claims 43-47, wherein the executing step includes executing one or more control blocks associated with the object.

51. The method of claim 50, wherein one or more of the control blocks comprises a control algorithm, an input function, and/or an output function.

52. The method of any one of claims 43-47, wherein the device is any of a workstation, controller, control station, and a field device.

53. The method of any one of claims 43-47 adapted for providing any of process, industrial, environmental or other control.

54. A method of operating a control system comprising: executing a plurality of objects in virtual machine environments provided on one or more control devices, the objects configuring the one or more devices to provide control functions, communicating a datum between first and second ones of the plurality of objects, maintaining in the first object a sole instance of the datum, as between at least the first and second objects, and accessing by reference the datum with the second object.

55. The method of claim 54, wherein the virtual machine environment is a Java virtual machine, and the plurality of objects are Java objects.

56. The method of claim 54, wherein the accessing step includes accessing the datum via any of a pointer, an address, or a symbolic or other reference to the instance of the datum maintained by the first object.

57. The method of any one of claims 54-56, wherein the datum is any of a measurement, a setpoint or other value, or any of a range, a status, a limit status, a time stamp or other information pertaining to such measurement, setpoint or other value.

58. The method of any one of claims 54-56, wherein the executing step includes executing at least the first and second objects to configure the control devices to provide any of sensing, actuation and other control functions.

59. The method of any one of claims 54-56, wherein the executing step includes executing one or more control blocks associated with the first and second objects.

60. The method of claim 59, wherein at least one of the control blocks executes a control algorithm, provides input and/or provides output.

61. The method of any one of claims 54-56, wherein one or more of the control devices is any of a workstation, controller, control station, and a field device.

62. The method of any one of claims 54-56 adapted for providing any of process, environmental or other control.

63. A method of operating a control system, comprising: executing a plurality of objects in virtual machine environments provided on one or more control devices, the objects configuring the one or more devices to provide control functions, communicating one or more data contained in a data structure between first and second ones of the plurality of objects, maintaining in the first object a sole instance of the data structure and data contained therein as between at least the first and second objects, accessing by reference data in the data structure with the second object.

64. The method of claim 63, wherein the data structure comprises a unidirectional variable having a measurement, a setpoint or other value, and any of a range, a status, a limit status, a time stamp or other information pertaining to such measurement setpoint or other value.

65. The method of claim 63, wherein the executing step includes executing at least the first and second objects to configure the control devices to provide any of sensing, actuation and other control functions.

66. The method of claim 63, wherein the executing step includes executing one or more control blocks associated with the first and second objects.

67. The method of claim 63, wherein at least one of the control blocks executes a control algorithm, provides input and/or provides output.

68. The method of claim 63, wherein one or more of the control devices is any of a workstation, controller, control station, and a field device.

69. The method of claim 63 adapted for providing any of process, environmental or other control.

70. The method of any one of claims 63-69, wherein the data structure comprises a bi-directional variable having a forward-going measurement, setpoint or other value (collectively, "forward-going value"), any of a range, a status, a limit status, a time stamp or other information pertaining to the forward-going value, a back-going measurement, setpoint or other value (collectively, "back-going value"), and any of a range, a status, a limit status, a time stamp or other information pertaining to the back-going value).

71. A method of operating a control system, comprising: executing a plurality of objects in virtual machine environments provided on one or more control devices, the objects configuring the one or more devices to provide control functions, communicating one or more data contained, in a data structure between first one of the objects and second and third ones of the objects, maintaining in the first object a sole instance of the data structure and data contained therein as between at least the first, second and third objects, accessing by reference data in the data structure with the second and third objects.

72. The method of claim 71, wherein the data structure comprises a bi-directional variable having a forward-going measurement, setpoint or other value (collectively, "forward-going value"), any of a range, a status, a limit status, a time stamp or other information pertaining to the forward-going value, a back-going measurement, setpoint or other value (collectively, "back-going value"), and any of a range, a status, a limit status, a time stamp or other information pertaining to the back-going value).

Description

BACKGROUND OF THE INVENTION

The invention pertains to control and, more particularly, to methods and apparatus for implementing process and other control systems at lower cost, with greater flexibility and robustness.

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

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

Modern day control systems typically include a combination of field devices, controllers, workstations and other more powerful digital data processing apparatus, the functions of which may overlap or be combined. Field devices include temperature, flow and other sensors that measure characteristics of the subject device, process or system. They also include valves and other actuators that mechanically, electrically, magnetically, or otherwise effect the desired control.

Controllers generate settings for the actuator type field devices based on measurements from sensor type field devices. Controller operation is typically based on a "control algorithm" that maintains a controlled device at a desired level, or drives it to that level, by minimizing differences between the values measured values and, for example, a setpoint defined by the operator. Workstations, control stations and the like are typically used to configure and monitor the process as a whole. They are often also used to execute higher-levels of process control, e.g., coordinating groups of controllers and responding to alarm conditions occurring within them.

In an electric power plant, for example, a workstation coordinates controllers that actuate conveyors, valves, and the like, to move coal or other fuels to a combustion chamber. The workstation also configures and monitors the controllers that maintain the dampers that determine the level of combustion. The latter operate, for example, by comparing the temperature of the combustion chamber with a desired setpoint. If the chamber temperature is too low, the control algorithm may call for incrementally opening the dampers, thereby, increasing combustion activity and driving the temperature upwards. As the temperature approaches the desired setpoint, the algorithm incrementally levels the dampers to maintain the combustion level.

The design of control systems and specification of the control algorithms is typically performed using tools known as configurators. An exemplary such tool is provided with the I/A Series.RTM. (hereinafter, "IAS" or "I/A") systems, marketed by the assignee hereof. A graphical configurator, FoxCAE,.RTM. provided with those systems permits an engineer to model a process hierarchically and to define a control algorithm from that hierarchy. Once configuration is complete, the control algorithm is downloaded to the control devices. This may involve "compiling" the algorithm in order to convert it into code understood by the controllers and other control devices.

While prior art products such as the aforementioned ones by the Assignee hereof continue to meet success in the marketplace, there remains a need for advancement.

In view thereof, an object of this invention is to provide improved methods and apparatus for control. A related object is to provide such methods and apparatus as can be achieved with lower cost, greater flexibility and robustness.

Another object of the invention is to provide such methods and apparatus as facilitate the modeling of control processes by engineers and users alike.

A related object is to provide such methods and apparatus as facilitate the generation of higher-quality modeling software at lower cost and more widespread applicability.

A further object is to provide such methods and apparatus as can be used in process and other control systems.

SUMMARY OF THE INVENTION

The foregoing are among the objects attained by invention which provides, in one aspect, an improved control device for a process or other control system. The device provides a virtual machine environment in which Java objects, or other such software constructs, are executed to implement control (e.g., to monitor and/or control a device, process or system). These objects, referred to herein as process control objects (PCOs), define blocks, which are the basic functional unit of the control. They also define the input, output and body parts from which blocks are formed, and the signals that are communicated between blocks. PCOs also define nested and composite groupings of blocks used to control loops and higher-level control functions.

By way of non-limiting example, a control system with devices according to the invention can have a workstation and controllers, each providing a Java virtual machine (JVM) environment. Executing on the devices are Java PCOs embodying their respective control functions and signaling. Thus, PCOs executing in each controller monitor and control sensors and actuators under that controller's purview. PCOs executing in the workstation monitor and control the controllers themselves (as well, perhaps, as monitoring the outputs of some of the field devices). Intelligent field devices in the control system may also execute PCOs, thereby, further distributing the control function and taking up tasks otherwise handled by the controllers and workstation.

Referential Communication Between Process Control Entities

Further aspects of the invention provide control devices as described above in which individual data, such as measurements, setpoints or other values, are communicated block-type PCOs by reference. To this end, only one object of each pair of objects between which a given datum is communicated stores the datum itself, e.g., by non-limiting example, in a data structure referred to as below as a "variable." The other block maintains only a reference, i.e., a pointer, address, symbolic or other reference, to the datum. In order to access the sole instance of the datum as between at least those two blocks, the latter block interrogates--or, if permitted, sets the value of--the datum by using the pointer, address or other reference.

A given datum, according to further aspects of the invention, can be maintained in the block that is the logical and/or physical source of the measurement, setpoint or other value to which it pertains. For example, a PCO embodying an analog input (AIN) block maintains a data structure containing data measured by it. PCO blocks that use those measurements access that data structure and, thereby, the data, by reference.

The data structures embodying data can themselves be PCOs, e.g., by non-limiting example, instantiated from the "signal" class described in the detailed description, below. According to further aspects of the invention, in addition to storing specific measurements, setpoints or values (e.g., the "variables" described below), these data structures can maintain range, status, time stamps and/or other information pertaining to them.

Thus, for example, a "float" variable data structure in a PCO analog input block maintained in a thermocouple sensor device can have, in addition to a floating point value representing the temperature value measured by that device, range values representing permissible upper and lower values for the measured temperatures. It can also have status values representing signal quality (e.g., SEVA values of the type discussed elsewhere herein) and/or initialization state; limit status for signal limiting and connection status; timestamp values identifying when the value was last changed; among others. According to related aspects of the invention, the "limit status" can include a flag, e.g., a "publish" bit, indicating whether the subject datum has been communicated to other elements of the control system, e.g., by "publication."

An advantage of devices using PCOs that communicate data, i.e., establish "connections," in the manner described above is that they minimize the unnecessary duplication of data and the attendant cost of maintaining coherency. A further advantage is that they can more readily propagate variables and their attendant values, ranges, and so forth, throughout the system.

With respect to this latter point, a control system having devices as described above will typically implement a control scheme wherein a value generated (or measured) by single block is used by several downstream blocks. Thus, for example, a PCO block maintained by a thermocouple field device might be connected to a PCO control block executing in a controller that processes the thermocouple output to adjust a fuel intake valve. It might also be connected to a PCO control block executing in an intelligent field device that adjusts a damper level.

The use of data structures as described above facilitate establishing common values, ranges, and so forth, e.g., for the thermocouple output, among all of the PCO blocks that use connections. That information is stored only in the source PCO, e.g., the thermocouple PCO. Hence, the risk of data loss or misinterpretation resulting from lack of coherency is minimized, as is the risk of incorrect scaling and the like among the blocks participating in the connections.

Control devices as described above can, according to further aspects of the invention, maintain unilateral and/or bilateral connections for the information that they exchange. Unilateral connections utilize a data structure as described above to store a single "forward going" data value (or set of values), along with its attendant range, status, limit status, time and other related information. These are typically used, for example, in connections to/from sensors and actuators.

The control devices can also utilize PCOs that establish bilateral connections maintaining two data values (or sets of values), along with attendant range, status, limit status, time and other related information. These can be used, for example, in connections in which a forward going data value is dependent on a backward going one.

For example, a PCO functioning as a proportional integral derivative (PID) control block and executing in an intelligent actuator might provide the setpoint to a PCO executing as an analog output (AOUT) control block in that same actuator. A single data structure maintaining the AOUT setpoint can be stored in the PID, with the AOUT accessing it by reference. The PID requires feedback, such as the current valve position, in order initialize its output to avoid bumping that value at startup. The AOUT can provide that feedback, according to related aspects of the invention, by accessing the data structure by reference and storing a backward going data value (or feedback value) there. Similar bilateral communications are required between cascaded controllers where the output of one is the setpoint of another.

Control devices utilizing PCO that establish bilateral connections have additional advantages, including, eliminating the need to establish and ensure that forward-going and back-going values for each connection necessarily run between the same two blocks. In addition, they ensure that consistent range, status, limit status, time and other information concerning the forward-going and back-going values are shared by both PCO that are parties to the connection.

Process Control Entities with Mandatory and Optional Parts

Further aspects of the invention provide control devices as described above that include PCOs with mandatory parts for which memory space is allocated at the time of object creation (or instantiation) and with optional parts for which memory space is allocated only as needed. The optional parts can be added subsequent to creation, typically, for example, during configuration.

By way of example, an intelligent field device embodying a PCO according to the invention representing an analog input block (AIN) can have a mandatory input part for receiving, linearizing, filtering and scaling measurements. It can also have a mandatory output part for processing or switching and for making the result available to PCOs, e.g., embodying control algorithms. These mandatory parts are instantiated when the AIN PCO is first instantiated. Optional parts for the AIN PCO permit, inter alia, establishing alarm limits, defining a characterizer that linearizes an input measurement, defining filtering for an input measurement, and defining limits for output values, and to utilize potential emergency interlock output values. These optional parts can be instantiated, if at all, e.g., when the already-instantiated PCO is being configured.

The invention provides, in other aspects, control devices as described above in which the parts, whether optional or mandatory, are associated with block-type PCOs and are instantiated locally in relation to the respective blocks that contain them. Put another way, the parts are instantiated in the processes responsible for executing the PCO in which they are contained.

Further aspects of the invention provide control devices as described above in which mandatory parts of a PCO are instantiated in a declaration or a constructor method (e.g., a default constructor) of a class from which the PCO is instantiated. While optional parts can be instantiated by a constructor (e.g., other than the default constructor), they can also be instantiated by configurator following creation of the PCO.

Control device incorporating dynamically configurable PCOs, i.e., with mandatory and optional parts, as described herein are advantageous, for example, in that their constituent blocks provide all necessary input, output and/or processing behaviors, without dedicating memory or other resources to unused ones. Thus, the AIN PCO described in the example above can be selectively configured to allocate memory and processor resources to alarms and filters, yet, not to consume resources with optional features that will not be used, e.g., interlocks and characterizers. Moreover, such PCOs instill in their respective control devices (e.g., their respective control stations, work stations, controllers, or field devices) optional behaviors that execute as if "compiled in," yet, not requiring recompilation on configuration.

In addition to individual block-type PCOs that are dynamically configurable, further aspects of the invention provide control devices and systems with dynamically configurable composite PCOs. These are PCOs with mandatory constituent blocks for which memory space is allocated at the time of object creation (or instantiation) and with optional blocks for which memory space is allocated only as needed. The optional blocks are added at the time each composite PCO is created, e.g., during configuration, or later.

By way of example, a control system executing a PCO composite-type object representing a process control loop, can have a mandatory analog input block (AIN), a mandatory analog output (AOUT) block and a mandatory proportional-integral-derivative (PID) control block. Optional blocks for the composite PCO can provide for feedforward control. These can include, for example, an optional second AIN block, e.g., for detecting disturbances in the controlled process, as well as for an optional, feed forward control block that generates additional control values to facilitate disturbance compensation in the first (feedback), PID block.

Process Control System with Blocks Having Common Input and/or Output Sections

Still further aspects of the invention provide control systems and control devices as described above with block-type and composite-type PCOs that use standardized classes (or other definitional software constructs) to define input and output parts that receive and transmit information on behalf of the PCOs. The classes provide common interfaces between interconnected blocks, as well as insuring common processing of information by them.

By way of example, PCO blocks executing on the workstations, controllers, intelligent field devices and other control devices in a control system according to the invention can have input and output parts instantiated from a common set of input and output classes, respectively. The PCOs can be of a variety of composite block types and individual block types, the latter including, for example, AnalogInput, AnalogOutput, PID, and Feedback Tuner. The common set of classes from which their input and output parts are instantiated include, according to one aspect of the invention and by way of non-limiting example, cascaded floating point input, cascaded floating point output, unidirectional boolean input, unidirectional boolean output.

According to related aspects of the invention, the input and output parts of the block PCOs are created from possibly overlapping subsets of classes selected from a common set of standardized classes. Thus, for example, PCOs that embody PID control blocks include input and output parts defined with standardized cascaded floating point input and cascaded floating point output classes. PCOs that embody "user" control blocks also use the standardized cascaded floating point output classes, though their input parts are defined using a different standardized class, to wit, the unidirectional floating point input class.

Further aspects of the invention provide control systems and control devices as described above wherein the input and output parts, themselves, use standardized classes to define objects that reflect, by way of non-limiting example, state, status, mode, and option assignments shared by the respective blocks and their parts, as well as to define information that is communicated between the blocks. In addition to providing common methods for setting and getting values, these classes define methods for linking variables (and their constituent parameters) to establish connections between blocks.

By way of example, the standardized cascaded floating point input part contained in the above-described PID control blocks can have constituent objects defined from a standardized "lrs" setpoint mode class that characterizes the setpoint source for an input part, e.g., whether it is set by an external block, by a supervisory task, or by the operator. By way of further example, the cascaded floating point output part of such a PID block can include a constituent objects defined from a standardized "mas" mode class that characterizes source of the outgoing signal generated by that output part, e.g., whether it is set by the block, a supervisory task or the operator.

A control device with a PCO block having input and output parts utilizing objects instantiated independent classes, such as the lrs and mas classes described above, can provide for the independent characterization of setpoints received and generated by the PCO. Thus, for example, the block can be set by an operator at runtime to provide for any of local, remote or supervisory setpoint input and, at the same time, for any of manual automatic and supervisory setpoint output. Moreover, the block can retain a setpoint value previously defined, e.g., before transition into manual or supervisory mode, to facilitate transition back to automatic mode.

Further related aspects of the invention provide control systems and control devices where the input, output, body and other parts use other standardized classes. These can include, by way of non-limiting example, a signal quality status class, a maintenance status class, a limit indication and linking/setting permissions class, among others.

The invention provides, in still further aspects, control systems and devices as described above in which memory is allocated for mandatory constituent portions of a part at the time of creation and in which memory is allocated for optional portions only as necessary, e.g., during configuration. These portions can include PCOs defined in accord with the aforementioned signal classes, as well as in accord with other classes that make up the parts.

According to further related aspects of the invention, that parts of PCO control blocks utilized in control systems and devices can have the mandatory constituent that include, by way of example, the aforementioned lrs and mas setpoint mode classes of the cascaded floating point input and output parts, respectively. Further mandatory classes of these parts can include, by way of further non-limiting example, a floating point variable class for containing the setpoints received or set by the input and output parts, respectively. Optional classes for these parts can include a limit class (defined as a "parts" class in the discussion below) used to define high and low setpoint values for the input and output parts that include the limit class.

Still further aspects of the invention provide control systems and devices as described above in which the block-type PCOs include body parts, in addition to input and output parts. The body parts can, for example, embody attributes and methods that are unique to the particular block class, in addition to standardized parts such as for feedback tuning and deadtime compensation.

Multi-Input Analog Input Block for Process Control System

Further aspects of the invention provide a control device with an analog input block (AIN) coupled to accept readings from multiple sensors or other input devices and to generate an output based on one or more of those readings. The analog input block, which can be a PCO as described above, can take a reading from each of the multiple sensors during each block processing cycle (BPC), e.g., each cycle during which the AIN is invoked (typically, along or in sequence with other blocks in a common control system).

Related aspects of the invention provide a control device configured as an AIN as described above that generates an output based on the multiple inputs every "block period," e.g., every period (typically multiple BPCs) in which the output of the AIN is updated. The output can be, by way of non-limiting example, minimum, maximum, median, weighted average (e.g., based on uncertainty values, such as SEVA, provided by the sensor as part of the variable data structure) or other selection or function of the multiple inputs.

Further related aspects of the invention provide a control device configured by a PCO as an AIN block as described above in which the input part of that block samples measurements received from its respective sensor every BPC, notwithstanding that the block period may run over several BPCs. Those measurements can be averaged with one another (e.g. by the input or body parts of the PCO), prior to being statistically compared or combined with the outputs of other input parts in the AIN.

Still further aspects of the invention provide a AIN PCO as described above having multiple input parts, each receiving, filtering, characterizing and/or otherwise processing a respective one of the measurements received by the AIN block. A control device in which such an AIN is embodied can dedicate memory space upon instantiation of the block or its subsequent configuration to only such input parts as are required by the particular implementation. Moreover, such a control device can apply independent filtering, characterizing or other functions to each of the inputs.

Further aspects of the invention provide control systems embodying one or more control devices as described above and/or utilizing PCOs as described above. Other aspects provide control devices and systems having individual ones of the features described above, alone or in combination with other ones of the features.

Yet other aspects of the invention provide methods of operating control devices and control systems paralleling the foregoing.

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

BRIEF DESCRIPTION OF THE DRAWINGS

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

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

FIG. 2 depicts the object model notation utilized in this disclosure;

FIG. 3 depicts a control and information collection class and object architecture in a control system according to the invention;

FIG. 4 depicts control and information collection signal, part, and block classes in a control system according to the invention;

FIG. 5 depicts input/output classes for intelligent and standard devices in a control system according to the invention;

FIG. 6 depicts control and information collection nested classes in a control system according to the invention;

FIG. 7 depicts an architecture for a typical block class in a control system according to the invention;

FIG. 8 shows examples of unidirectional and cascade input and output part classes in a control system according to the invention;

FIG. 9 depicts a loop composite class in a control system according to the invention;

FIG. 10 depicts a PLoop composite class in a control system according to the invention;

FIG. 11 depicts a cascade composite class in a control system according to the invention;

FIG. 12 depicts a TempProcess Composite class in a control system according to the invention;

FIG. 13 depicts Loops2 control and process objects in a control system according to the invention;

FIG. 14 depicts Loops2 control and process objects and details in a control system according to the invention;

FIG. 15 depicts TempCasc control and process objects in a control system according to the invention;

FIG. 16 depicts TempCasc control and process objects and details in a control system according to the invention;

FIG. 17 depicts cascade peer-to-peer communication in a control system according to the invention; and

FIG. 18 depicts variable and parameter transfer and rules in a control system according to the invention.

DETAILED DESCRIPTION OF THE ILLUSTRATED EMBODIMENT

FIG. 1 depicts a process control system 10 of the type with which the invention is practiced. The system includes networked control devices that monitor and control a hypothetical mixing process 20 that utilizes mixing chamber 22, fluid inlets
24, 26, fluid outlet 28, paddle 30, cooler 32, and cooler inlet 34. Though illustrated and described below for use in connection with process control, those skilled in the art will appreciate that apparatus and methods according to the invention can be used in connection with any industrial, manufacturing, service, environmental or other process, device or system amenable to monitoring or control (hereinafter, collectively, "control").

The networked control devices include actuators, such as the valves depicted as controlling inlets and outlets 24-28 and 34. A further actuator is shown controlling paddle 30. These and other actuators utilized by the control system are constructed and operated in the conventional manner, as modified in accord with the teachings hereof. The actuators operate under control of respective field device controllers, labeled CTL, that are also constructed and operated in the conventional manner to provide initialization, signal conditioning and communications functions.

Rather than using separate controllers CTL, the actuators can be of the intelligent variety and can include integral microprocessors or other digital data processing apparatus for control, initialization, signal conditioning, communications and other control-related functions. For sake of convenience, the label CTL is used regardless of whether the control-related functionality is integral to the actuators (e.g., as in the case of intelligent actuators) or otherwise.

Illustrated sensor 29 monitors a temperature, level or other characteristic of fluid in chamber 22. The sensor 29, as well as other sensing apparatus utilized by the system, are constructed and operated in the conventional manner known in the art, as modified in accord with the teachings hereof. They can be coupled to the control network via a transmitter or other interface device INT that, too, is constructed and operated in the conventional manner, as modified by the teachings hereof. The interface devices facilitate initialization, signal conditioning and communications between the sensors and the control system. As above, one or more sensors can be of the intelligent variety, incorporating integral microprocessors or other digital data processing capabilities for initialization, signal conditioning, communications and other control-related functions. Here, too, the label INT is used in reference to the control-related functionality, regardless of whether embodied in an intelligent transmitter or otherwise.

The networked control devices include one or more controllers 36 that monitor and control respective aspects of the hypothetical mixing process in the conventional manner, as modified in accord with the teachings hereof. The controllers can comprise mainframe computers, workstations 40, personal computers 42, special-purpose hardware or other digital data processing apparatus capable of performing conventional monitoring and control functions. Preferred controllers are constructed and operated in the manner of the CP control processors commercially available from the assignee hereof, as modified in accord with the teachings herein.

The control system 10 includes elements that serve as user interfaces and that provide configuration and/or control functions, all in the conventional manner as modified in accord with the teachings hereof. Illustrated for these purposes are, for example, workstation 40 and personal (laptop) computer 42. These devices can provide configuration and control functions directly, as in the case of workstation 40, or in cooperation with server devices (not shown). Apparatus 36-42 can couple with one another directly, e.g., via bus or network connection (as illustrated below), or indirectly, e.g., via satellite, wireless connection or modem connection.

The devices 36-42, CTL and INT, collectively, referred to as "control" devices, are coupled for communications via a medium that permits at least selected ones of the devices to communicate with one another. To this end, in the illustrated embodiment those devices are coupled via one or more networks 48 that are, preferably, IP-based such as, by way non-limiting example, Ethernets. The network(s) can include, as indicated by the multiple segments shown in the drawing, multiple segments such as various wide and local area networks. They may also include high and/or low bandwidth components, such as phone lines, and low and/or high latency components, such as satellites networks.

In the preferred, illustrated embodiment, each of the control devices 36-42, CTL and INT, provides virtual machine environment for executing Java byte code (or other such intermediate code) in the form of Java applications, Java applets, Java servlets, or like constructs in other software languages that, for example, configures the respective device to provide monitoring and/or control (collectively, "control"), including, by way of non-limiting example, servicing sensors to provide inputs (analog or otherwise), servicing actuators to provide outputs, executing blocks (composite, individual or otherwise) that include a control algorithm and/or otherwise to participate in the control system.

By way of non-limiting example, the illustrated intelligent field devices can include low power processors, along with a random access memory, read-only memory, FlashRAM, and appropriate sensor/actuator interfaces. The processors of those devices can execute a real-time operating system, as well as a Java virtual machine (JVM). Process control blocks or entities in Java byte code execute in the JVMs to configure the respective field devices to perform process control functions, e.g., for analog input (AIN), analog output, proportional integral derivative (PID) control and so forth.

By way of further non-limiting example, the controllers, workstations, control stations and other digital data processor-based control devices can include larger, more powerful central processing units, along with on-board memory (e.g., RAM, ROM, FlashRAM), mass storage, sensor/actuator interfaces, as necessary, conventionaloperating systems and JVMs, and so forth. The JVMs on these more powerful devices permit them to perform a still wider range of control functions, e.g., to monitor control larger scale plant operations.

A further appreciation of the hardware and software environment provided by system 10 may be attained by reference to commonly-assigned, co-pending U.S. patent application Ser. No. 09/591,604, and to counterpart PCT Application Serial No. PCT/US 00/15860, both filed Jun. 9, 2000, entitled METHODS AND APPARATUS FOR CONTROL USING CONTROL DEVICES THAT PROVIDE A VIRTUAL MACHINE ENVIRONMENT AND THAT COMMUNICATE VIA AN IP NETWORK, The teachings of these applications are incorporated herein by reference.

Described below are aspects of the operation of the aforementioned control devices 36-42, CTL and INT, and, more generally, of the control system 10 deriving from execution on the devices of Java applications, applets, servlets (or other such software constructs) to implement control. These objects, referred to herein as process control objects (PCOs), define blocks wh