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