|6424883||Virtual numeric control device adaptable to any real numeric control device||2002-07-23||Hosokawa et al.||700/181|
|6405099||Automatic control system||2002-06-11||Nagai et al.||700/159|
|6311101||Method of operating an injection molding machine||2001-10-30||Kastner||700/197|
|6263487||Programmable controller||2001-07-17||Stripf et al.||717/1|
|6218930||Apparatus and method for remotely powering access equipment over a 10/100 switched ethernet network||2001-04-17||Katzenberg et al.||340/310.01|
|6201996||Object-oriented programmable industrial controller with distributed interface architecture||2001-03-13||Crater et al.||700/9|
|6176421||Fuel dispenser architecture having server||2001-01-23||Royal, Jr. et al.||231/381|
|6151625||Internet web interface including programmable logic controller for controlling output devices based on status of input devices||2000-11-21||Swales et al.||709/218|
|6139177||Device access and control using embedded web access functionality||2000-10-31||Venkatraman et al.||700/83|
|6108662||System method and article of manufacture for integrated enterprise-wide control||2000-08-22||Hoskins et al.||709/104|
|6061603||System for remotely accessing an industrial control system over a commercial communications network||2000-05-09||Papadopoulos et al.||700/83|
|6055633||Method of reprogramming memories in field devices over a multidrop network||2000-04-25||Schrier et al.||713/100|
|5988852||Apparatus management system having virtual machines corresponding to apparatuses to be controlled||1999-11-23||Nakanishi||700/83|
|5980090||Internet asset management system for a fuel dispensing environment||1999-11-09||Royal, Jr. et al.||700/241|
|5956487||Embedding web access mechanism in an appliance for user interface functions including a web server and web browser||1999-09-21||Venkatraman et al.||709/218|
|5805442||Distributed interface architecture for programmable industrial control systems||1998-09-08||Crater et al.||700/9|
|5303227||Method and apparatus for enhanced modes in SPI communication||1994-04-12||Herold et al.|
|5302952||Automatic A/D converter operation with pause capability||1994-04-12||Campbell, Jr. et al.|
|5297143||Network communication protocol including a reliable multicasting technique||1994-03-22||Fridrich et al.|
|5295258||Fault-tolerant computer system with online recovery and reintegration of redundant components||1994-03-15||Jewett et al.|
|5291390||Control apparatus for mechanical devices which regulates control system operation speed to prevent hunting and overshooting and thereby optimizes the control signal||1994-03-01||Satou||700/54|
|5289365||Modular network control system||1994-02-22||Caldwell et al.|
|5283729||Tuning arrangement for turning the control parameters of a controller||1994-02-01||Lloyd|
|5271013||Fault tolerant computer system||1993-12-14||Gleeson|
|5258999||Circuit and method for receiving and transmitting control and status information||1993-11-02||Wernimont et al.|
|5255367||Fault tolerant, synchronized twin computer system with error checking of I/O communication||1993-10-19||Bruckert et al.|
|5251125||User interface for a process control device||1993-10-05||Karnowski et al.|
|5245704||System for sharing data between microprocessor based devices||1993-09-14||Weber et al.|
|5233615||Interrupt driven, separately clocked, fault tolerant processor synchronization||1993-08-03||Goetz|
|5212784||Automated concurrent data backup system||1993-05-18||Sparks|
|5202961||Sequential information controller||1993-04-13||Mills et al.|
|5193175||Fault-tolerant computer with three independently clocked processors asynchronously executing identical code that are synchronized upon each voted access to two memory modules||1993-03-09||Cutts, Jr. et al.|
|5175829||Method and apparatus for bus lock during atomic computer operations||1992-12-29||Stumpf et al.|
|5168441||Methods for set up and programming of machine and process controllers||1992-12-01||Onarheim et al.|
|5168276||Automatic A/D converter operation using a programmable control table||1992-12-01||Huston et al.|
|5166685||Automatic selection of external multiplexer channels by an A/D converter integrated circuit||1992-11-24||Campbell, Jr. et al.|
|5164894||Method of data entry into a plant loop||1992-11-17||Cunningham-Reid et al.|
|5163055||Communications system using a fault tolerant protocol||1992-11-10||Lee et al.|
|5162986||Remote downloading and uploading of motion control program information to and from a motion control I/O module in a programmable controller||1992-11-10||Graber et al.|
|5159673||Apparatus for networking programmable logic controllers to host computers||1992-10-27||Sackmann et al.|
|5151981||Instruction sampling instrumentation||1992-09-29||Westcott et al.|
|5151978||LAN interface which permits a host computer to obtain data without interrupting a ladder program executing in the interface||1992-09-29||Bronikowski et al.|
|5146589||Refresh control for dynamic memory in multiple processor system||1992-09-08||Peet, Jr. et al.|
|5140677||Computer user interface with window title bar mini-icons||1992-08-18||Fleming et al.|
|5138708||Digital processor using current state comparison for providing fault tolerance||1992-08-11||Vosbury|
|5136704||Redundant microprocessor control system using locks and keys||1992-08-04||Danielsen et al.|
|5134574||Performance control apparatus and method in a processing plant||1992-07-28||Beaverstock et al.|
|5131092||Communication system enabling programmable logic controllers access to host computer tasks and host computer access to programmable logic controllers without polling||1992-07-14||Sackmann et al.|
|5129087||Computer system and a method of monitoring transient data structures in a computer system||1992-07-07||Will|
|5124908||User interactive expert machine controller||1992-06-23||Broadbent|
|5122948||Remote terminal industrial control communication system||1992-06-16||Zapolin|
|5121318||On-line plant operating procedure guidance system||1992-06-09||Lipner et al.|
|5068778||Industrial control system device||1991-11-26||Kosem et al.|
|5050165||Bridge circuit for interconnecting networks||1991-09-17||Yoshioka et al.|
|5008805||Real time, fail safe process control system and method||1991-04-16||Fiebig et al.|
|4991170||Circuit for interfacing a digital signal processor to a serial interface controller||1991-02-05||Kem|
|4965880||Productio installation for the manufacture of a product||1990-10-23||Petitjean|
|4965742||Process control system with on-line reconfigurable modules||1990-10-23||Skeirik|
|4965717||Multiple processor system having shared memory with private-write capability||1990-10-23||Cutts, Jr. et al.|
|4959774||Shadow memory system for storing variable backup blocks in consecutive time periods||1990-09-25||Davis|
|4958277||Queued serial peripheral interface for use in a data processing system||1990-09-18||Hill et al.|
|4918690||Network and intelligent cell for providing sensing, bidirectional communications and control||1990-04-17||Markkula, Jr. et al.|
|4910691||Process control system with multiple module sequence options||1990-03-20||Skeirik|
|4910658||Real time process controller with serial I/O bus||1990-03-20||Dudash et al.|
|RE33162||Method and apparatus for guidance of an operation of operating power plants||1990-02-13||Yoshida et al.|
|4897777||Peer-to-peer register exchange controller for PLCS||1990-01-30||Janke et al.|
|4872106||Industrial process control system with back-up data processors to take over from failed primary data processors||1989-10-03||Slater|
|4817094||Fault tolerant switch with selectable operating modes||1989-03-28||Lebizay et al.|
|4816996||Queued serial peripheral interface for use in a data processing system||1989-03-28||Hill et al.|
|4805107||Task scheduler for a fault tolerant multiple node processing system||1989-02-14||Kieckhafer et al.|
|4790762||Backplane for a modularly expandable programmable controller||1988-12-13||Harms, deceased et al.|
|4750109||Method and system for expediting multi-packet messages in a computer network||1988-06-07||Kita|
|4742349||Method for buffered serial peripheral interface (SPI) in a serial data bus||1988-05-03||Miesterfeld et al.|
|4733366||Apparatus for providing an interrupt signal in response to a permanent or transient power failure||1988-03-22||Deyesso et al.|
|4727477||Logically transportable microprocessor interface control unit permitting bus transfers with different but compatible other microprocessors||1988-02-23||Gavril|
|4719593||Apparatus for generating digital timing waveforms||1988-01-12||Threewitt et al.|
|4709325||Loosely coupled multiprocessor system capable of transferring a control signal set by the use of a common memory||1987-11-24||Yajima|
|4704676||Method and apparatus for configuring a controller||1987-11-03||Flanagan et al.|
|4703421||Ready line synchronization circuit for use in a duplicated computer system||1987-10-27||Abrant et al.|
|4692918||Reliable local data network arrangement||1987-09-08||Elliott et al.|
|4692859||Multiple byte serial data transfer protocol||1987-09-08||Ott|
|4683530||Serial information transfer protocol||1987-07-28||Quatse|
|4682304||Asynchronous multiple buffered communications interface having an independent microprocessor for controlling host/peripheral exchanges||1987-07-21||Tierney|
|4682158||Guidance device for manipulation of machine||1987-07-21||Ito et al.|
|4675812||Priority circuit for channel subsystem having components with diverse and changing requirement for system resources||1987-06-23||Capowski et al.|
|4672530||Distributed control with universal program||1987-06-09||Schuss|
|4663704||Universal process control device and method for developing a process control loop program||1987-05-05||Jones et al.|
|4649479||Device driver and adapter binding technique||1987-03-10||Advani et al.|
|4648064||Parallel process controller||1987-03-03||Morley|
|4641276||Serial-parallel data transfer system for VLSI data paths||1987-02-03||Dunki-Jacobs|
|4641269||Programmable control system for glassware forming machines||1987-02-03||Japenga et al.|
|4639852||Process control system||1987-01-27||Motomiya|
|4628437||Telecontrol system||1986-12-09||Poschmann et al.|
|4615001||Queuing arrangement for initiating execution of multistage transactions||1986-09-30||Hudgins, Jr.|
|4493027||Method of performing a call operation in a digital data processing system having microcode call and return operations||1985-01-08||Katz et al.|
|4488226||Method and apparatus for high speed asynchronous serial data transfer||1984-12-11||Wagner, Jr. et al.|
|4471457||Supervisory control of peripheral subsystems||1984-09-11||Videki, II|
|4466098||Cross channel circuit for an electronic system having two or more redundant computers||1984-08-14||Southard|
|4456997||Facility for fail-safe data transmission between trackside equipment of a guideway and vehicles moving therealong||1984-06-26||Spitza|
|4443861||Combined mode supervisory program-panel controller method and apparatus for a process control system||1984-04-17||Slater|
|4435762||Buffered peripheral subsystems||1984-03-06||Milligan et al.|
|4428044||Peripheral unit controller||1984-01-24||Liron|
|4423486||Commodity display for weighing scale||1983-12-27||Berner|
|4413314||Industrial process control system||1983-11-01||Slater et al.|
|4410942||Synchronizing buffered peripheral subsystems to host operations||1983-10-18||Milligan et al.|
|4347563||Industrial control system||1982-08-31||Paredes et al.|
|4323966||Operations controller for a fault-tolerant multiple computer system||1982-04-06||Whiteside et al.|
|4312068||Parallel generation of serial cyclic redundancy check||1982-01-19||Goss et al.|
|4302820||Dual language programmable controller||1981-11-24||Struger et al.|
|4276593||Transfer system for multi-variable control units||1981-06-30||Hansen|
|4096566||Modular signal processor having a hierarchical structure||1978-06-20||Borie et al.|
|4006464||Industrial process controller||1977-02-01||Landell|
|3825905||BINARY SYNCHRONOUS COMMUNICATIONS PROCESSOR SYSTEM AND METHOD||1974-07-23||Allen, Jr.|
|3810119||PROCESSOR SYNCHRONIZATION SCHEME||1974-05-07||Zieve et al.|
|3665172||CONTROL OF A PROCESS VARIABLE BY A COMPUTER AND A CONTROLLER WHICH REPLACES THE COMPUTER||1972-05-23||Spaargaren et al.|
|6212440||Numerical control system||Suzuki|
|6140911||Power transfer apparatus for concurrently transmitting data and power over data wires||Fisher et al.|
|6115468||Power feed for Ethernet telephones via Ethernet link||De Nicolo|
|6098116||Process control system including a method and apparatus for automatically sensing the connection of devices to a network||Nixon et al.|
|6094600||System and method for managing a transaction database of records of changes to field device configurations||Sharpe, Jr. et al.|
|6085120||Data system processing and method for creating application extension||Schwerdtfeger et al.||700/90|
|6078320||System for configuring a process control environment||Dove et al.|
|6052629||Internet capable browser dispenser architecture||Leatherman et al.|
|6049775||Systems, methods and computer program products for monitoring and controlling mail processing devices||Gertner et al.|
|6038486||Control method for factory automation system||Saitoh et al.|
|6035264||Electronic control system and method for externally controlling process in a computer system with a script language||Donaldson et al.|
|6032208||Process control system for versatile control of multiple process devices of various device types||Nixon et al.|
|6026352||Local device and process diagnostics in a process control network having distributed control functions||Burns et al.|
|6014612||Remote diagnostics in a process control network having distributed control functions||Larson et al.|
|6014591||Apparatus and method of generating control program||Ikeda|
|6002104||Electric arc welder and controller therefor||Hsu||219/130.5|
|5994998||Power transfer apparatus for concurrently transmitting data and power over data wires||Fisher et al.|
|5982362||Video interface architecture for programmable industrial control systems||Crater et al.|
|5980078||Process control system including automatic sensing and automatic configuration of devices||Krivoshein et al.|
|5978578||Openbus system for control automation networks||Azarya et al.|
|5975737||Distributed interface architecture for programmable industrial control systems||Crater et al.|
|5930768||Method and system for remote user controlled manufacturing||Hooban|
|5920479||System and method for performing interface independent virtual instrumentation functions in a graphical data flow program||Sojoodi et al.|
|5909586||Methods and systems for interfacing with an interface powered I/O device||Anderson|
|5880775||Method and apparatus for detecting changes in a video display||Ross|
|5874990||Supervisory camera system||Kato|
|5873089||Data handling system with circular queue formed in paged memory||Regache|
|5872992||System and method for avoiding bus contention on a multiplexed bus by providing a time period subsequent to a read operation||Tietjen et al.|
|5862052||Process control system using a control strategy implemented in a layered hierarchy of control modules||Nixon et al.|
|5854944||Method and apparatus for determining wait states on a per cycle basis in a data processing system||Catherwood et al.|
|5854750||System and method for processing transactions in an environment containing a number of object oriented applications||Phillips et al.||700/216|
|5847957||Web access for a manufacturing execution system||Cohen et al.|
|5844804||Configurable machine-tool control||Schussler||700/169|
|5844601||Video response system and method||McPheely et al.|
|5841963||Dual information processing system having a plurality of data transfer channels||Nakamikawa et al.|
|5841360||Distributed serial control system||Binder|
|5838920||Method and apparatus for identifying transactions||Rosborough|
|5832418||Apparatus for testing a controller with random contraints||Meyer|
|5831669||Facility monitoring system with image memory and correlation||Adrain|
|5828851||Process control system using standard protocol control of standard devices and nonstandard devices||Nixon et al.|
|5822220||Process for controlling the efficiency of the causticizing process||Baines|
|5805922||Queued serial peripheral interface having multiple queues for use in a data processing system||Sim et al.|
|5801942||Process control system user interface including selection of multiple control languages||Nixon et al.|
|5801770||Surveillance apparatus with enhanced control of camera and lens assembly||Paff et al.|
|5797038||Method and system for serially based host/peripheral communication||Crawford et al.|
|5796602||Method and apparatus using a device description for a conventional device||Wellan et al.|
|5793963||Apparatus for providing non-redundant secondary access to field devices in a distributed control system||Tapperson et al.|
|5790791||Apparatus for synchronizing flight management computers where only the computer chosen to be the master received pilot inputs and transfers the inputs to the spare||Chong et al.|
|5777874||Programmable controller backup system||Flood et al.|
|5774670||Persistent client state in a hypertext transfer protocol based client-server system||Montulli|
|5768510||Object-oriented system, method and article of manufacture for a client-server application enabler system||Gish|
|5768119||Process control system including alarm priority adjustment||Havekost et al.|
|5764906||Universal electronic resource denotation, request and delivery system||Edelstein et al.|
|5761518||System for replacing control processor by operating processor in partially disabled mode for tracking control outputs and in write enabled mode for transferring control loops||Boehling et al.|
|5758075||Multimedia communication apparatus and methods||Graziano et al.|
|5758073||Serial interface between DSP and analog front-end device||Liang et al.|
|5754772||Transaction service independent HTTP server-to-transaction gateway||Leaf|
|5752246||Service agent for fulfilling requests of a web browser||Rogers et al.|
|5752008||Real-time process control simulation method and apparatus||Bowling|
|5752007||System and method using separators for developing training records for use in creating an empirical model of a process||Morrison|
|5751574||Method for loading software in communication systems with non-redundant, decentralized equipment||Loebig|
|5748467||Method of adapting and applying control parameters in non-linear process controllers||Qin et al.|
|5742762||Network management gateway||Scholl et al.|
|5737529||Networked variables||Dolin, Jr. et al.|
|5732218||Management-data-gathering system for gathering on clients and servers data regarding interactions between the servers, the clients, and users of the clients during real use of a network of clients and servers||Bland et al.|
|5727128||System and method for automatically determining a set of variables for use in creating a process model||Morrison|
|5726912||Control system monitor||Krall, Jr. et al.|
|5719761||Configuration control system for configuring multiple biomedical devices||Gatti et al.|
|5708779||Multimedia system and method of controlling data transfer between a host system and a network adapter using a DMA engine||Graziano et al.|
|5701414||Controller for selective call receiver having memory for storing control information, plurality of addresses, status information, receive address information, and message||Cheng et al.|
|5687316||Communication apparatus and methods having P-MAC, I-MAC engines and buffer bypass for simultaneously transmitting multimedia and packet data||Graziano et al.|
|5682476||Distributed control system having central control providing operating power to wireless transceiver connected to industrial process control field device which providing redundant wireless access||Tapperson et al.|
|5680409||Method and apparatus for detecting and identifying faulty sensors in a process||Qin et al.|
|5680404||Cycling error count for link maintenance||Gray|
|5676141||Electronic processor for pulse oximeters||Hollub|
|5671374||PCMCIA interface card coupling input devices such as barcode scanning engines to personal digital assistants and palmtop computers||Postman et al.|
|5664168||Method and apparatus in a data processing system for selectively inserting bus cycle idle time||Yishay et al.|
|5664101||Intelligent industrial local area network module for use in a distributed control system||Picache|
|5659680||PC compatible modular based diagnostic system||Cunningham et al.|
|5655092||Multiple element interface||Ojala|
|5649121||Method and apparatus for providing a remotely located outrigger card electrically coupled to a control card||Budman et al.|
|5642511||System and method for providing a visual application builder framework||Chow et al.|
|5630152||Communication protocol between master and slave device with register information sharing||DeLuca et al.|
|5630056||Digital data processing methods and apparatus for fault detection and fault tolerance||Horvath et al.|
|5629949||Error correction verification method and apparatus using CRC check remainders||Zook|
|5627979||System and method for providing a graphical user interface for mapping and accessing objects in data stores||Chang et al.|
|5621871||Automated system and method for annotation using callouts||Jaremko et al.|
|5617540||System for binding host name of servers and address of available server in cache within client and for clearing cache prior to client establishes connection||Civanlar et al.|
|5613148||Method and apparatus for activating and executing remote objects||Bezviner et al.|
|5611057||Computer system modular add-in daughter card for an adapter card which also functions as an independent add-in card||Pecone et al.|
|5604871||Modular host local expansion upgrade||Pecone|
|5600845||Integrated circuit computing device comprising a dynamically configurable gate array having a microprocessor and reconfigurable instruction execution means and method therefor||Gilson|
|5598536||Apparatus and method for providing remote users with the same unique IP address upon each network access||Slaughter, III et al.|
|5596752||System for creating, editing, displaying, and executing rules-based programming language rules having action part subsets for both true and false evaluation of the conditional part||Knudsen et al.|
|5596331||Real-time control sequencer with state matrix logic||Bonaffini et al.|
|5594899||Operating system and data base having an access structure formed by a plurality of tables||Knudsen et al.|
|5594858||Uniform control template generating system and method for process control programming||Blevins|
|5587899||Method and apparatus for determining the ultimate gain and ultimate period of a controlled process||Ho et al.|
|5586330||Programmable computer with automatic translation between source and object code||Knudsen et al.|
|5586329||Programmable computer with automatic translation between source and object code with version control||Knudsen et al.|
|5586112||Digital crossconnect system for selecting alternate communication routes in case of a transmission fault||Tabata|
|5581760||Method and system for referring to and binding to objects using identifier objects||Atkinson et al.|
|5579487||Portable work slate computer with multiple docking positions for interchangeably receiving removable modules||Meyerson et al.|
|5579220||Method of updating a supplementary automation system||Barthel et al.|
|5576946||Icon based process design and control system||Bender et al.|
|5572673||Secure multi-level system for executing stored procedures||Shurts|
|5568378||Variable horizon predictor for controlling dead time dominant processes, multivariable interactive processes, and processes with time variant dynamics||Wojsznis|
|5566320||Memory storage access control circuit for coupled mask-programmed microcontrollers||Hubert|
|5559963||Suspending, resuming, and interleaving frame-groups||Gregg et al.|
|5559691||Plant condition display system||Monta et al.|
|5555510||Automatic computer card insertion and removal algorithm||Verseput et al.|
|5555437||Read-write state machine in a host interface for controlling read and write operations in a disk drive||Packer|
|5555213||Interface circuit, system and method for interfacing an electronic device and a synchronous state machine having different clock speeds||DeLong|
|5551047||Method for distributed redundant execution of program modules||Mori et al.|
|5550980||Networked facilities management system with optical coupling of local network devices||Pascucci et al.|
|5549137||Valve positioner with pressure feedback, dynamic correction and diagnostics||Lenz et al.|
|5544008||Computer expansion module apparatus||Dimmick et al.|
|5539909||Negotiation method for calling procedures located within other objects without knowledge of their calling syntax||Tanaka et al.|
|5530643||Method of programming industrial controllers with highly distributed processing||Hodorowski|
|5522044||Networked facilities management system||Pascucci et al.|
|5519701||Architecture for high performance management of multiple circular FIFO storage means||Colmant et al.|
|5519605||Model predictive control apparatus and method||Cawlfield|
|5517655||Method for monitoring transactions in an object-oriented environment||Collins et al.|
|5513354||Fault tolerant load management system and method||Dwork et al.|
|5513192||Fault tolerant disk drive system with error detection and correction||Janku et al.|
|5513095||Flexible automation system for variable industrial processes||Pajonk|
|5509811||Computer enclosure with embedded PCMCIA modem card||Homic|
|5504902||Multi-language generation of control program for an industrial controller||McGrath et al.|
|5504672||Industrial process controller and method of process control||Hardiman et al.|
|5500934||Display and control system for configuring and monitoring a complex system||Austin et al.|
|5491791||System and method for remote workstation monitoring within a distributed computing environment||Glowny et al.|
|5490276||Programming language structures for use in a network for communicating, sensing and controlling information||Doli, Jr. et al.|
|5485620||Integrated control system for industrial automation applications||Sadre et al.|
|5483660||Method and apparatus for performing multiplexed and non-multiplexed bus cycles in a data processing system||Yishay et al.|
|5481741||Method and apparatus for providing attribute nodes in a graphical data flow environment||McKaskle et al.|
|5475856||Dynamic multi-mode parallel processing array||Kogge|
|5467264||Method and system for selectively interdependent control of devices||Rauch et al.|
|5463735||Method of downloading information stored in an arching device to destination network controller through intermediate network controllers in accordance with routing information||Pascucci et al.|
|5461710||Method for providing a readily distinguishable template and means of duplication thereof in a computer system graphical user interface||Bloomfield et al.|
|5459839||System and method for managing queue read and write pointers||Swarts et al.|
|5459825||System for updating the locations of objects in computer displays upon reconfiguration||Anderson et al.|
|5457797||Flexible multi-platform partitioning for computer applications||Butterworth et al.|
|5452201||Industrial controller with highly distributed processing||Pieronek et al.|
|5451939||Microprocessor controlled transmitter for connection to a sensor and a method of transferring digital signals to the microprocessor||Price|
|5450425||Protocol for communication of a data packet||Gunn et al.|
|5450403||Method and apparatus for multiplex transmission||Ichii et al.|
|5444851||Method of accessing configured nodes in a facilities management system with a non-configured device||Woest|
|5437007||Control sequencer in an iconic programming system||Bailey et al.|
|5434997||Method and apparatus for testing and debugging a tightly coupled mirrored processing system||Landry et al.|
|5432711||Interface for use with a process instrumentation system||Jackson et al.|
|5428781||Distributed mechanism for the fast scheduling of shared objects and apparatus||Duault et al.|
|5428734||Method and apparatus for enhancing drag and drop manipulation of objects in a graphical user interface||Haynes et al.|
|5426732||Method and apparatus for user control by deriving next states of a process from a current state and by providing a visual presentation of the derived next states||Boies et al.|
|5420977||Multiple aspect operator interface for displaying fault diagnostics results in intelligent process control systems||Sztipanovits et al.|
|5410717||Removable function card for a programmable controller processor||Floro|
|5408603||Global process control information system and method||Van de Lavoir et al.|
|5400140||Method of decoding a spectrally modulated light signal||Johnston|
|5398331||Shared storage controller for dual copy shared data||Huang et al.|
|5394522||Selecting and locating graphical icon objects to define and configure the workstations in data processing networks||Sanchez-Frank et al.|
|5392389||Graphical method for creating an object||Fleming|
|5390321||General purpose parallel port interface||Proesel|
|5384910||Method and apparatus for facilitating operator reconfiguration of a graphical user interface in a data processing system||Torres|
|5381529||Shift register with dual clock inputs for receiving and sending information between I/O channels and host based on external and internal clock inputs respectively||Matsushima|
|5377315||Regeneration of process control flow diagrams for programmable logic controllers||Leggett|
|5371895||Local equipment controller for computerized process control applications utilizing language structure templates in a hierarchical organization and method of operating the same||Bristol|
|5359721||Non-supervisor mode cross address space dynamic linking||Kempf et al.|
|5352033||Operator work station having a monitor support assembly||Gresham et al.|
|5349343||Flexible module interconnect system||Oliver|
|5347181||Interface control logic for embedding a microprocessor in a gate array||Ashby et al.|
|5335221||Integrity mapping in data communication system||Snowbarger et al.|
|5317726||Multiple-processor computer system with asynchronous execution of identical code streams||Horst|
|5309556||Method for using interactive computer graphics to control electronic instruments||Sismilich|
|5307463||Programmable controller communication module||Hyatt et al.|
|5307372||Radio transceiver for transmitting and receiving data packets||Sawyer et al.|
|5307346||Network-field interface for manufacturing systems||Fieldhouse|
|5303392||Accessing current symbol definitions in a dynamically configurable operating system||Carney et al.|
|5303375||System and method for facilitating selection of running functional process in object-oriented environments||Collins et al.|
|EP0411869||Expert advice display processing system.|
|WO/1995/004314||UNIFORM CONTROL TEMPLATE GENERATING SYSTEM AND METHOD FOR PROCESS CONTROL PROGRAMMING|
|WO/1996/023377||MULTIMEDIA SYSTEM HAVING CENTRAL POWER SOURCE AND DISTRIBUTION SUBSYSTEM|
|WO/1998/020649||NETWORK ADAPTER UTILIZING AN ETHERNET PROTOCOL AND UTILIZING A DIGITAL SUBSCRIBER LINE PHYSICAL LAYER DRIVER|
|WO1998029804A1||1998-07-09||AUTOMATIC CONTROL SYSTEM|
|WO/1998/036518||OPENBUS SYSTEM FOR CONTROL AUTOMATION NETWORKS INCORPORATING FUZZY LOGIC CONTROL|
|WO/1998/054843||POWER TRANSFER APPARATUS FOR CONCURRENTLY TRANSMITTING DATA AND POWER OVER DATA WIRES|
The invention pertains to control systems and, more particularly, to methods and apparatus for networking, configuring and operating field devices, controllers, consoles and other control devices.
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 parameters over the course of time. In many control systems, digital data processing or other automated apparatus monitor a device, process or system and automatically adjust its operational parameters. In other control systems, such apparatus monitor the device, process or system and display alarms or other indicia of its characteristics, leaving responsibility for adjustment to the operator.
Control is used in a number of fields. Process control, for example, is 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 system at a desired level, or drives it to that level, by minimizing differences between the values measured by the sensors and, for example, a setpoint defined by the operator.
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 a food processing plant, for example, a workstation coordinates controllers that actuate conveyors, valves, and the like, to transport soup stock and other ingredients to a processing vessel. The workstation also configures and monitors the controllers that maintain the contents of that vessel at a simmer or low boil. The latter operate, for example, by comparing measurements of vapor pressure in the processing vessel with a desired setpoint. If the vessel pressure is too low, the control algorithm may call for incrementally opening the heating gas valves, thereby, driving the pressure and boiling activity upwards. As the pressure approaches the desired setpoint, the algorithm requires incrementally leveling the valves to maintain the roil of the boil.
The field devices, controllers, workstations and other components that make up a process control system typically communicate over heterogeneous media. Field devices connect with controllers, for example, over dedicated “fieldbuses” operating under proprietary or industry-specific protocols. Examples of these are FoxCom(TM), Profibus, ControlNet, ModBus, DeviceNet, among others. The controllers themselves may be connected to one another, as well as to workstations, via backplane or other proprietary high-speed dedicated buses, such as Nodebus(TM). Communications among workstations and plant or enterprise-level processors may be via Ethernet networks or other Internet Protocol (IP) networks.
Control device manufacturers, individually, and the control industry, as a whole, have pushed for some uniformity among otherwise competing communication standards. The Foundation Fieldbus, for example, is the result of an industry-wide effort to define a uniform protocol for communications among processor-equipped (or “intelligent”) field devices. Efforts such as this have been limited to specific segments of the control hierarchy (e.g., bus communications among field devices) and are typically hampered by technological changes that all to soon render the standards obsolete.
Still less uniform are the command and operation of control devices. Though field devices may function at the direction of controllers and controllers, in turn, at the direction of workstations (or other plant-level processors), proprietary mechanisms within the individual components determine how they perform their respective functions. Even the commands for invoking those functions may be manufacturer- or product-specific. Thus, the commands necessary to drive actuators of one manufacturer will differ from those of another. How the corresponding commands are processed internally within the actuators differ still more (though, hopefully, the results achieved are the same). The specific programming codes used to effect a given control algorithm likewise differs among competing makes, as do those of the higher-level control processors.
Industry efforts toward harmonization of software for command and operation of control devices have focused on editing languages that define process control algorithms. This is distinct from the codes used to effect those algorithms within control devices and, rather, concerns software “tools” available to users to specify the algorithms, e.g., editors including IEC-1131 standard languages such as Field Blocks, Sequential Function Charts (SFC), Ladder Logic and Structured Text.
Less concerted are industry moves to extend monitoring and limited configuration capabilities beyond in-plant consoles, e.g., to remote workstations. An example of this was the abortive Java for Distributed Control (JDC) effort, which proposed enabling in-plant workstations to serve web pages to remote Java bytecode-enabled client computers. The latter used the to web pages to monitor and set control parameters which the workstations, in turn, incorporated into their own control schemes.
An academic system along these same lines was suggested by the Mercury Project of the University of Southern California, proposing the use of a web browser to enable remote users to control a robotic arm via a server that controlled the arm. A related company-specific effort included that announced by Tribe Computer Works that allegedly enabled users to manage routers and remote access servers over IP networks using web browser software. See, “Tribe Defines Net Management Role For Web Browser Software,” Network World, May 22, 1995, at p. 14.
Thus sets the stage for the present invention, an object of which is to provide improved methods and apparatus for networking, configuring and operating field devices, controllers, consoles and other control devices. A related object is to provide such methods and apparatus for process control.
Further objects of the invention are to provide such methods and apparatus as reduce the confusion, complexity and costs attendant to prior art control systems.
Related objects of the invention are to provide such methods and apparatus as can be implemented with commercial off the shelf hardware and software.
Still further objects of the invention are to provide such methods and apparatus as achieve confusion-, complexity- and cost-reduction without hampering manufacturer creativity and without removing incentives to development of product differentiators.
The foregoing are among the objects attained by invention which provides, in one aspect, an improved field device for a process or other control system. The field device includes a virtual machine environment for executing Java byte code (or other such intermediate code) that, for example, configures the device to execute a control algorithm.
By way of non-limiting example, the field device can be an “intelligent” transmitter or actuator that includes a low power processor, along with a random access memory, a read-only memory, FlashRAM, and a sensor interface. The processor can execute a real-time operating system, as well as a Java virtual machine (JVM). Java byte code executes in the JVM to configure the field device to perform typical process control functions, e.g., for proportional integral derivative (PID) control and signal conditioning.
Further aspects of the invention provide a field device, such as a low-power intelligent actuator, that incorporates an embedded web server. This can be used to configure, monitor and/or maintain the device itself (as well as other elements of the control system) via a browser attached directly to the device or coupled to it over the network. To this end, the field device can incorporate a configuration editor, e.g., operating on a processor within the field device, that an end-user executes via the browser and web server.
Such a configuration editor can, in related aspects of the invention, be enabled or disabled depending on the environment in which it is used and more specifically, for example, the type of network in which it is incorporated. Thus, for example, the editor can be disabled when the field device is incorporated in a process control network that includes, e.g., an applications development environment suitable for configuration of the field device. Conversely, it can be enabled when the field device is incorporated in a network that lacks such a capability.
Still further aspects of the invention provide a field device as described above that includes an interface to an IP network, through which the device communicates with other elements of the control system. The IP network can be, for example, an Ethernet network. Moreover, it can be “powered,” carrying electrical power as well as packets, datagrams, and other control or data signals. The field device, in related aspects of the invention, draws operational power, e.g., for its processor and other components, from such a network.
Yet further aspects of the invention provide a field device as described above that obtains configuration information and/or its network address from such an IP network upon start-up. To this end, on power-up or coupling to the network, the field device can supply an identifier (e.g., attained from a letterbug, assigned by a hub, or otherwise) to a DHCP or other server on the network. Once provided with an IP address, the field device can formally enter into the control network, e.g., by posting its characteristics to a network bulletin board, e.g., using a network enabler such as a Jini and/or JavaSpace server, or the like. Other network devices monitoring or notified via such a bulletin board can send configuration information to the field device or otherwise.
Still further aspects of the invention provide control devices, such as servers, control stations, operator consoles, personal computers, handheld computers, and the like, having attributes as described above. Such control devices can have other attributes, according to further aspects of the invention. Thus, by way of non-limiting example, they can provide web servers that collect process data from one or more control devices, generate source for operator displays, provide access to the control system, and host an applications development environment.
Still other aspects of the invention provide process, environmental, industrial and other control systems that comprise field and control devices as described above that are coupled via an IP network and, particularly, for example, by a powered IP network.
Additional aspects of the invention are directed to DHCP servers and network enablers (optionally, including web servers) for use in control systems as described above. Related aspects provide such servers and enablers as are embodied in solid state technologies, e.g., with no moving parts.
These and other aspects of the invention are evident in the attached drawings, and in the description and claims that follow.
A more complete understanding of the invention may be attained by reference to the drawings, in which:
The networked control devices include actuators, such as the valves depicted as controlling inlets and outlets
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.
The networked control devices include one or more controllers
The control system
The control devices
Native enterprise server
Native thin client
Native plant server
Native thin client
Native field device
In addition to web technologies, the illustrated control system
1. Device Hardware
1.1 Platform-Defining Control Devices
In the illustrated embodiment, native control devices such as controllers
Process control object (PCO) software provided on the platform-defining control devices comprise a collection of data and methods implemented in Java and executed on the native control devices' JVMs to perform typical process control functions, by way of non-limiting example, signal conditioning and PID control. Likewise, station management object (SMO) software on the devices comprise data and methods that allow the device to report its health, performance, and other status information in a uniform manner. The SMO software can implement SNMP or the equivalent Java functionality.
Software is also provided on the platform-defining controls devices for messaging services for data transfer and alarm/event notification, as well as software comprising system management pages. Each control device may include additional software, of course, depending on its functionality.
1.2 Field Devices
Native intelligent field devices typically include a low power CPU, e.g., a NetARM or Java Chip; a real-time OS like VxWorks, QNX, PSOS; RAM; FlashRAM to serve as permanent storage; ROM/EEPROM to serve as the home for the OS and other permanent software; an Ethernet interface; power from the Ethernet interface (in the event a powered Ethernet network or hub is used) or otherwise; a sensor interface, e.g., IEEE 1451.1 and 1451.2; JVM; a web server, and a device specific configurator servlet. A field device so constructed can be configured and monitored via a lightweight web browser, e.g., handheld computer
The field devices can include serial interfaces to allow the attachment of these devices to HART, FoxComm, Profibus and other networks operating under a protocol different from that of network
One configuration of a native intelligent field device including the elements described above these elements is shown in FIG.
1.2.1 Stoic Sensors
The control system
Some I/O devices, e.g., thermocouples, RTDs and analog transmitters, may not use a transmitter compatible with the network
Network I/O cards are coupled directly to network
220.127.116.11 Foreign Device Integration
Networked I/O cards are utilized with devices that cannot otherwise directly interface with the network
1.3 Native Controllers
In a preferred embodiment, all native devices may be used as controllers, though, dedicated I/O-less native controllers, such as controllers
1.4 Native Compliant Workstations
Native workstations, e.g., such as element
1.5 Native Web Server
If a generic web browser-enabled device is the operator's console, a native web server, such as servers
1.6 Native Enablers
1.6.1 The illustrated control system
The illustrated control system
Those skilled in the art will, of course, appreciate that IP addresses can be selected by mechanisms other than DHCP servers.
1.6.2 Native Internetwork Server
An internetwork server
2.1 Software Downloads
The illustrated system permits the electronic downloading of software and/or licenses for execution on the native devices. This includes native software objects, updates and/or licenses for same. To ensure proper operation of the process facility even in the event of insufficient licenses, downloaded software registers with the system monitor and declares whether or not it is licensed. In the case of insufficient licensing, the system monitor's notifies the customer appropriately.
In instances where appropriate native software modules and authorizations are in place, the system
Secured extra-system access is provided through a native secure web server, e.g., server
Inter-system access is provided by a gateway device, such as server
Secured intra-system access is controlled based on the user and the workstation, leveraging the Java security model and other security models to the extent possible. The native security system authenticates users, e.g., regardless of whether they are attempting access from operator's console or via an application program.
The native security system manages access to objects, including PCO attributes (i.e., variables and/or parameters of PCOs), system monitors, and native messages. It allows applications to add objects to the list of managed objects. Read and write access is preferably controlled separately, i.e., as if a single PCO attribute was two separate objects.
The security model is based on a lock and key approach. Each PCO attribute, for example, is assigned to one of a large number of locks. The user is given different keys for read and write access to object attributes. This key may be modified according to the type of native workstation used for access. The key is passed to the object attribute when the object attribute is accessed. If the access is a connection, it need be passed only once. The object attribute compares the key to its lock and allow or deny access as appropriate.
A software tool is supplied with the applications development environment (ADE) or configurator that allows identification of users; access points allowed by the user; object attribute groups accessible to the user; and access type (read or write) to the object types. The object attribute groups define collections of object attributes via similar security access guidelines, e.g., alarm limits might be in one group and tuning parameters might be in another. The security model is embedded in the APIs providing access to the secured objects. This assures that that access is granted only after the native security system has performed the necessary verifications.
2.3 Maintenance and Support
The illustrated control system
The illustrated control system IO includes diagnostics to track problems from the hardware upwards. Maintenance staff can run in parallel diagnostic versions of the software. Such software running in open loop or switched into operation as necessary is believed particularly advantageous for support purposes.
An application development environment (ADE) coordinates configuration in the illustrated control system
With respect to the support of multiple simultaneous users, system editors provide object-based “check-out” and “check-in.” No other user is allowed to edit a checked-out object or any of the objects that it contains. As an alternative, editors support the concept of task-based configuration activities and the related “check-out” and “check-in” facilities required to make it work. When an object is checked out, it is assigned to a task. Objects are not checked back in, tasks are. A build manager has the responsibility of integrating the tasks.
The native ADE delivers lower engineering and maintenance costs through the unification of application development, preservation of application expertise, reduction of application development effort, and the deployment of developed applications. Is it based on industry standards (e.g., IEC 1131 and IEC 1499) to preserve the user's investment in training and applications. It also produces appropriately formatted Java class for execution in native devices. Since the native ADE produces output that can be read and loaded into a JVM and since the native control devices include JVM, one control configurator can configure all native devices.
In a preferred embodiment, the ADE imports configurations from legacy systems; supports the use of third-party control algorithms; and supports both bulk building of control configurations and on-line changes with validation.
Configuration is not limited to implementation on a web browser, though this can be advantageous since it allows configuration from many types of device without installation of special software, i.e., it provides a thin-client configuration mechanism. For device configuration, there are two cases: a device used in illustrated control system
2.5 Human Interface
The illustrated system's primary human interface (HI) device is a web browser. The current range of devices executing these spans cellular phones to mainframe computers. The native HI is multilingual, i.e., it supports the presentation of information in a default language and one or more secondary languages simultaneously. All standard native applications support text substitution based on the currently selected language. Error messages are likewise in the currently selected language.
2.6 Process Control
Process Control is implemented using process control objects (PCOs) running in an execution environment consisting of a JVM and any associated applications required to load and execute the specified control strategies. Control strategies are specified in terms of PCO composites. PCOs are Java classes designed to be modular and easily upgraded even during operation. The native PCO configurator, from a high level view, creates instances of these classes, connects them as necessary, and installs them in particular devices.
Process control objects consist of two user-available types: blocks and composites. PCO blocks are, from the user's point of view, similar to conventional function blocks. Likewise, composites are similar to conventional collections of function blocks. Distinguishing external features of PCOs include the fact that changes involve the addition/deletion of PCOs and cause new versions to be loaded into the targeted native device. The new version runs in parallel with the old version until the engineer decides that it is operating properly and “swaps” the control from old to new.
Composite PCOs may span stations transparently. PCOs are bound to stations very late in the configuration process and may be migrated from one station to another at any time. Further, PCOs from different sources may operate in the same device if the configurator supports the use of multiple PCO libraries.
A native PCO configurator supports multiple libraries of PCOs from multiple vendors; permits the creation of composite PCOs from other PCOs; permits the use of composite PCOs as templates, with a composite PCO definition specifying which fields is altered in a template; permits the assignment of PCOs to physical devices; provides IEC 1131/1499 influenced view of the configuration process, i.e., support for Logic Diagrams, Structured Text, Sequential Function Charts, Function Blocks, and PCOs, while producing Java byte code as its output.
The creation of composites includes the raising of internal (deeply buried) names to the top level of the composite PCO. For example, a cascaded Temperature/Flow loop might have the temperature and flow measurements referenced as TC_CASCADE:PRIMARYFLOW and TC_CASCADE:SECONDARYFLOW or as the longer fully qualified name. The configurator works both off-line in a bulk creation mode and on-line in an individual correction mode.
2.7 Communications: Object Location, Message Transfer, and Data Transfer
The concepts of object location and data/message transfer are closely bound. A process control system imposes significant quality of service requirements on any services used to locate objects of interest and to acquire values from or make changes to those objects. The illustrated system includes an object location and data transfer service that provides a communication model definition, security, object location services, network types requiring support, quality of service, APIs (Java and non-Java), maintenance and upgrade strategy, and interoperability with existing control systems. In addition, the communications system addresses the particular needs of process data transfer.
2.8 Critical Applications
2.8.1 Time Synchronization
The illustrated control system
2.8.2 Alarm and Message Management
The illustrated control system
The native historian provides the fundamental data collection, reduction, and archival services. The data collected includes process values and messages from various applications within the illustrated control system
2.8.4 Plant Information Management System
These applications include a simple and easy to report writing facility, a calculation facility that can use historical and real-time data to compute new values, and a desktop visualization system that uses the historians data instead of real-time data. The desktop visualization system uses the native graphics capabilities to connect the graphics to the historian and to allow the operator to “move” the entire graphic backwards and forwards through the historical data. The values calculated by the calculation facility are stored in PCOs that represent the data and generate appropriate alarms. The report writing facility supports shift reports with calendar adjustments as a simple to use feature. In addition, it facilitates the definition of ad-hoc reports using a page layout metaphor.
Interoperability of the illustrated control system IO with legacy process control systems can be facilitated by adding a networked I/O module to the I/O chain of existing I/O cards, adding a native device integrator to talk to other networks of devices, or utilizing a native API for Microsoft- and Solaris-based applications.
4 Operating the Control System
4.1 System Startup and Management
4.1.1 Device Identification
Each native device is assigned a name that is used to identify the device and obtain any configuration information that it needs. Embodiments of the invention use alternate approaches to identifying a device, including using a hub that is configured by the user to assign a name to each of its ports, e.g., using letterbug or software configuration; installing a letterbug, e.g., on the workshop bench, which tells the device its name; using a PC or handheld computer, e.g., on the workshop bench, to give the device its name; or using soft letterbugs.
4.1.2 Address Acquisition
After a native device has its name, it acquires its IP address from its environment. The illustrated embodiment uses DHCP for this purpose. Preferably, the DHCP server is a native device, such as enabler
4.1.3 Registration of the Device
Once the device knows its address, it registers its characteristics on a native bulletin board, which can be colocated with the DHCP server, e.g., in an enabler
4.1.4 Configuration Acquisition
If a device is unconfigured, it marks the “Configured” attribute on its bulletin board entry as “False”. Any system monitor receiving device notifications to this effect generates an alert. Once a device has its name, it is able to communicate with any networked supply of non-volatile storage. This is particularly useful in the case of devices with limited in device non-volatile storage, whom a system configuration utility notifies of the location of configuration information. Devices that can retain all of their configuration information can start up using that configuration. Actions taken during start-up, e.g., taking PID algorithms out of hold, are configurable.
4.1.5 System Monitors
A system monitor monitors the health of system components (hardware and software), monitors the health and operation of user applications, provides configuration information to devices that request it, and monitors the licensing of software and upgrades for purposes of alerting the appropriate groups. The system monitor supports standard SNMP agents and any native specific system management protocols.
The predominant source of information used by the system monitors are the bulletin boards which, as noted above, are used by the native devices to record their current state of operation. As devices are added and removed from the bulletin boards, the system monitor displays that information. The information posted on the bulletin boards includes diagnostic information. A system monitor not only displays this information but also allows the user to access and operate any embedded diagnostic displays and operations.
4.2 Device Configuration and Management
4.2.1 Device Startup
Initial start-up of a native device involves the following steps:
1) Install the device on the network
2) The device obtains an IP address from a DHCP server
3) The device registers with the native name service.
4) The device waits for a configuration.
5) The device is now ready for configuration.
Restart of a native device is effected by the steps of
1) Install the device on the network
2) The device obtains an IP address from a DHCP server on the network.
3) The device registers with the bulletin board.
4) The device begins operation according the configuration stored in its non-volatile RAM. This RAM may be a network resource that it must recover. If that resource is unavailable, the device is essentially unconfigured and the above procedure is followed.
5) The device is now ready for configuration and operation.
4.2.2 On-Line Configuration
The steps involved in on-line native device configuration are:
1) The engineer starts a web browser on workstation
2) The default home page on the browser is cached and contains an applet that locates the native bulletin board and raises the initial web page that lists the services available from that workstation.
3) The engineer selects the ADE and a native device of interest.
If the device is on a native network
The steps in PCO configuration are
1) As in the off-line mode, the engineer accesses the ADE and makes necessary changes.
2) Once the changes are complete, the engineer tells the new objects to begin execution in “open loop” mode, i.e., their outputs are not allowed to go to the field or to any other display station other than the one used to configure them. (For examples, their names are not registered with the native name service.)
3) In the open loop mode, the engineer can “Verify and Validate” his new control scheme by viewing the detail displays for the new and the old objects “in parallel”. The set of available detail displays may include special displays for evaluation of parallel composites.
4) Once the configuration is complete, the device records its new configuration in its local non-volatile RAM. Optionally, it updates a remote configuration database or just set a “changed configuration” status indicator much like conventional intelligent transmitters.
5 Native Software Subsystems
5.1.1 Object Access
18.104.22.168 Locks and Keys
As noted above, the proposed security mechanism is a lock and key. In this model, the attributes of an object that are available to be manipulated are assigned a lock number. An application registers with the security system at start-up to obtain a key. The value of the key depends on the effective user id (name) and the station on which the application is running. The key is never visible to the user, so he/she cannot alter it. This key is available to any library that uses the security system to ensure proper access.
22.214.171.124 Security Database
A security database contains a list of users. For each user it allows the specification of a master key, i.e., a bit array with a bit set for each lock the user is allowed to unlock. There is one master key for each object type supported by the security system. By default, the security system supports the creation of master keys for the system monitor, process data (PCO attributes), and native messages (events). The database also allows modifications to the master key for a user based on the station used to perform an operation. These exceptions can be expressed as IP addresses, station names, or by the type of access being used (e.g., extra-system, inter-system, or intra-system).
The security system supports caching the security system database on specific servers to improve redundant operation and to speed key queries. This is generally not a significant issue since the query is done once per application. Each time an operation is attempted or, in some circumstances, once per connection, the key is passed to the target object along with any other information required by the object to achieve the user's request. It is the responsibility of the object to match a bit in the key with the lock on the attribute or method being altered. If there is a match, the operation proceeds. If the match fails, the operation is aborted and the calling application is notified of the failure. If the lock is zero, the operation is allowed to continue.
According to a preferred practice, the illustrated control system
126.96.36.199 Impact on PCOs and Other System Components
The value record of a PCO attribute includes two keys: one for read access and one for write access. A default value for the key can be inherited according to rules concerning the use of the attribute, e.g., all alarm attributes have an assigned group by default. A system monitor interface implements the same mechanism.
5.2 Maintenance and Support
A configuration object (CO) is a collection of objects plus the editor used to manipulate them. A Configuration Object Template (COT) is a CO that has not been instantiated. The application development environment (ADE) is the environment for configuration object editors. It shows the user the existing COs in the CO being edited and a list of available templates. It provides the mechanism for adding objects to a CO by instantiating a COT and for removing COs. A Configuration Object Component (COC) is any of the objects found in a Configuration Object. Typical components are: PCOs, Process Graphics, Reports, Historian Configuration Objects, etc. The ADE has two components: the human interface and the server. Several human interfaces can access the same server at any time.
When a Native device is placed on-line, its internal configuration services are disabled. All configuration instructions come from the application development environment. Where on-line configuration is permitted, the system monitor or other system component flags any configuration mismatches.
Invoking the ADE is tantamount to starting the editor of a particular top-level CO. The ADE presents all of the available COs within the selected CO and all of the available COTs. The ADE provides a mechanism for manipulating those objects and for adding new objects by instantiating COTs. Since the objects within the ADE are also Configuration Objects, i.e., they are themselves collections of objects with associated editors, configuration involves selecting an object, invoking its editor, and making changes. Each editor knows how to store its object's data in the persistent storage.
The ADE preferably includes a system editor, a control editor, a graphic editor, a message manager editor, a historian editor. All editors support the use and creation of templates by the user. The also support the assignment of their objects to particular stations in the native network. Not all objects require assignment, but the editors are responsible for it.
5.3.1 System Editor
The system editor allows the user to configure a logical arrangement of native device objects. The only devices it configures are those that are native-enabled. If a device, such as Networked I/O, does not support Native, this editor is not interested in it. The following table lists those devices, what they do, and what needs to be configured.
|Device Type||Description||System Editor Configured Attributes|
|DHCP/Bullet||These devices allocate IP||Name and association with a Web|
|in Board||addresses to stations and act as||Server|
|Server||the bulletin board for the stations|
|that ask for addresses. They are|
|not configured to know what|
|devices might be attached.|
|Native||These devices act as PCO||Name and association with a|
|Controllers||platforms.||DHCP/bulletin board Server (which|
|may be a Web Server)|
|Native||The devices that supply the||Name and association with a|
|Workstations||human interface to the process.||DHCP/bulletin board Server (which|
|may be a Web Server)|
|Native Web||This devices host Native||Name|
|Servers||Applications and graphics.|
|Native Workstations may also be|
As with the other editors, the system editor is object oriented and template driven. The user is allowed to select an object type from a palette and attach it to the appropriate stations. Individual Device Editors are provided for each of the device types.
188.8.131.52 DHCP/Bulletin Board Editor
If the device is assigned to another DHCP/bulletin board device or a web server, the editor allows the user to specify the number of IP addresses that this device needs to be able to supply below it. In this case, when the device starts up, it gets its own IP address and IP address range from the Web Server or DHCP/bulletin board device to which it is assigned. If it is not assigned to such a device, the editor allows a range of IP addresses to be assigned to it. It is assumed that the device gets its own IP address from another, non-Native DHCP Server.
184.108.40.206 Native PCO platforms
Each device type on the network is provided a specific editor to control its specific configuration. Typical devices are: transmitters, actuators, controllers, etc. These editors are available for off-line configuration. In this case, the system monitor downloads any approved configurations at the next start-up. The editors may also be available on-board the device (e.g., for fixed function devices such as single station controllers), which allows direct configuration through a web browser. The on-board facility is automatically disabled once the device is placed on a native network. This ensures database consistency while allowing the use of the device on non-native networks. In the illustrated embodiment, device specific configurators are provide in ADE add-in and on-board, preferably, with the same code would be available and used for both.
220.127.116.11 Native Workstations
The configuration of this device includes user name(s) allowed; read only operation; full fledged operator; and so forth.
18.104.22.168 Native Server
The configuration of this station is a range of addresses if it is acting as a DHCP server.
5.3.2 The Control Editor
The Control Editor implements PCOs plus four of the IEC 1131-3 languages (LD, ST, SFC, and FB). Any control schemes built in those languages are translated into a Java file, compiled, and downloaded. The IEC 1131-3 concept of configurations, resources, programs, and tasks are translated into the native environment that consists of set of native platforms. In addition, the Control Editor supports defining of control schemes using PCOs in the same manner that it supports the use of IEC Function Blocks; supports the assignment of control entities to specific PCO platforms; the importation of instruments lists to generate, and PCOs.
5.3.3 The Graphic Editor
The Graphic Editor support all of the human interface (HI) functionality and graphics typical of this type of editor.
5.3.4 Application Configuration
Applications can only be assigned to native web servers.
22.214.171.124 Historian Object Editor
A historian object when found in a CO is a representation of a portion of the full historian configuration, e.g., a slice of the historian. The historian object consists of the name of the historian to receive the data and a list of PCO attributes. Each attribute is associated with certain critical information related to the historian, e.g., change deltas, sample rates, reduction operations, archive characteristics, etc. Starting the historian editor resulting in showing the full configuration of the historian(s) to which this object is assigned.
126.96.36.199.1 Historian Data Definition Object Editor
One historian object exists for each historian in the system. These objects are created automatically if a historian data definition object is created and assigned to a historian. The data in this object controls the general function of the historian, e.g., where it runs in the system, what its archive policy is, what its data reduction policy is, etc.
5.4 Process Control
5.4.1 Definition of the Process Control Domain
The process control domain is usually divided into three primary control styles: (i) analog control (continuous), (ii) logic control (ladder logic), and (iii) sequential control (supervisory operation of logic and analog control structures). In addition, every process control system must address batch (or recipe based) manufacturing with the related topics of lot tracking and validation.
The illustrated control system
Sequential Function Charts are a meta-language used to control the execution of the other three languages. In the illustrated embodiment, it serves as a wrapper class for the other classes. The source code for a control scheme and the critical values for its PCO attributes, i.e., its checkpoint file, are held in the non-volatile memory of the Native device.
5.4.2 Process Control Objects
188.8.131.52 PCO Attributes
The fundamental control object is a PCO attribute. As noted above, these are provided in two types: variables and parameters. An example of a variable attribute is a measurement in a PID block. In the illustrated system, a PCO attribute is an object in its own right and it contains certain vital information when it is retrieved. This information is “atomic”, i.e., all information is obtained with an attribute, not just its “value”. The minimal set of information from a PCO variable attribute is value, data type, quality information time tag in milliseconds, and alarm status. It is this object that is transferred from one PCO to another to implement the transfer of information needed in an actual control scheme.
Parameter attributes bundle less information than a variable attribute. The typical example of a parameter attribute is the proportional band of a PID block. In the illustrated control system
184.108.40.206 PCO Blocks
PCO attributes and methods to operate on those attributes are combined into PCO Blocks. These blocks are analogous to the control blocks in other systems, e.g., I/A Series FoxBlocks, IEC 1131-3 Function Blocks, and Foxboro Microspec Blocks. However, because they are implemented in Java, they can be executed on any microprocessor running any OS that supports a JVM. In addition, they are designed to occupy only the amount of RAM required for the selected options and to be on-line replaceable.
PCO blocks capture and encapsulate knowledge of regulatory control algorithms needed to by continuous processes. The PCO user block can be used to integrate particular user-defined control algorithms into a PCO control scheme. It is the PCO user block that is used to implement control strategies that are defined using one of the IEC 1131-3 control languages.
220.127.116.11 PCO Composites
PCO Composites are implementations of a control strategy. They consist of PCO blocks and other PCO composites linked in such a manner as to provide the control mechanisms needed for a particular process. It is the PCO composite that captures application level control expertise, e.g., complex control structures for major pieces of equipment or even the simpler idioms of cascade control.
5.4.3 PCO Execution Environment
The PCO execution environment is the software in a native control device that supports the execution of PCOs. This software includes the JVM and any other required code, such as a class loader that loads stand-alone applications for each composite, a class loader that loads an applet for each composite, a block processor that loads Java byte codes for a composite and executes each composite in turn, and a block processor that loads Java byte codes for PCO Blocks and executes each blocks in turn.
18.104.22.168 Communication Model Definition
Several types of communication are provided in the illustrated control system
The communications mechanism is redundant, i.e., the failure of one station in the system does not prevent communication (new or established) between any two other stations. It also minimizes the impact on uninvolved stations when the service is used by its clients, e.g., a message is not sent to a network segment if it is not going to be used there. The communications mechanism, moreover, provides an encapsulated implementation that can be replaced “under the hood” as new technologies become available. Also, it allows the illustrated control system
Data transfer in the illustrated control system
With respect to client one-shots (get), the client of the data transfer facility supplies the system with a number of objects that it needs and retrieve the values all at once (a snapshot). Conversely, with respect to client one-shots (set), the client supplies the system with a number of objects that it wishes to change, and set any part of the object if it has access. The parts referred to are the supporting information in a PCO attribute as well as the value part.
22.214.171.124.1 Message Transfer
While the message transfer mechanism is a general case of the data transfer mechanism, its requirements are given separately. The client of the message transfer facility must support private conversations between applications using a reliable communications mechanism and support by subscription publication of information from one server to many clients.
126.96.36.199.1.2 Private Conversations
The private conversation mode allows applications to find each other by their application name: the client application is not required to know the station name or IP address of the server application. It also allow applications to send records (messages) of arbitrary size: the private conversation mode guarantees that the message boundary is recognized and that order is preserved. Moreover, it allows both the sending and receiving process to determine if the connection is lost. Still further, it supports transaction based message transfer, i.e., the sender does not get an acknowledgement until the receiver says that the message is safely stored.
The subscription facility supports senders and listeners. A sender is a process that has data that may be of interest to one or more listeners. The subscription mode supports this type of operation by allowing a “sending” process to register that it will produce messages of a particular type, allowing a “listening” process to register to receive all messages of a particular type, supporting transaction based subscription if the client so requests (this request would have no impact on the sender), and supporting transaction based publishing by a server if the server requests it (this request would have no impact on the receiver). If no listeners are registered, the subscription facility defines how the message is handled.
The native communications system is linked to the native security system to ensure that unauthorized users are unable to access objects. The illustrated control system
188.8.131.52 Object Location Services
Object are located by name. To this end, the object location service supports the location of named objects; supports hierarchical object names; allows rule based specification of the name delimiting character; locates an object based on a “longest fit” because (a) not all parts of an object name are globally known and (b) not all parts of an object are in the same physical location; supports the implementation of naming scopes, i.e., limiting the visibility of names; supports the use of a name search path so that relative names can be located; is redundant; supports locating many types of objects, e.g., server processes, PCO attributes, and application programs; and supports the addition of related information about the object in the name directory, e.g., object type, short-cut information to be used by the process that owns the object, object type/implemented interface, and information. With respect to the last item, the object location services permit a client to request the name of a service that supports a specific interface. This allows new interfaces to be added to a service without breaking an old one.
The illustrated control system operates over any IP based network
184.108.40.206 Quality of Service
Assume that the illustrated control system
Within the illustrated control system
220.127.116.11 Maintenance and Upgrades of Messaging Services
The illustrated control system
18.104.22.168 Integration of Non-Native Based Systems
The illustrated control system
22.214.171.124 Object Location Service Implementation
126.96.36.199.1 The All Java Approach
JINI and JavaSpaces technologies permit object location within the illustrated system. JINI technology allows native devices to register names in a globally available database. JINI clients can find this database and perform searches against it. JavaSpaces allow a device to register important information in a globally available bulletin board. JavaSpaces provide four simple services: posting, removal, query by example, and notification. The notification feature informs prospective users of a class of objects when such objects are added and removed from the JavaSpace. A JavaSpace handles services like system monitoring.
188.8.131.52.2 The Enhanced Object Manager Approach
As an alternative, an enhanced object manager (EOM) approach to address location and connection of data clients and servers can be utilized as follows:
1) A LDAP compliant service are created and used to store pathnames and related information, e.g., IP addresses, Port Numbers, internal indexes, etc.
2) The EOM API provides get/set and read/write support similar to that provided by the OM today.
3) When provided a name, the EOM looks in the local copy of the LDAP database.
4) If the name is found and the data is local, the request is passed to the correct data provider (the EOM, the CIO database, or the AOS database) who returns the value and other data. The EOM handles sending updates on change driven data.
5) If the name is found and not local, the EOM sends the request to the remote EOM which then makes a local query. The EOM handles sending updates on change driven data.
6) If the name is not found locally, the location request is passed to the master LDAP database. If it is found there, the address information is passed back to the local LDAP database (which is updated) and steps 4) and 5) are repeated.
7) If the name is not found remotely, the request is posted for a period of time. If it is resolved in that period, the requesting station is notified. If it is not resolved, the master LDAP database drops the name and notifies the requesting station.
5.6 Critical Applications
5.6.1 Time Synchronization
SNTP (Simple Network Time Protocol) is used to keep operator stations and similar non-process data producers in sync. This protocol is as accurate as 1 ms in a carefully controlled environment, but 50 ms is more common on shared networks. Controllers requiring high accuracy are placed on tightly controlled networks or equipped with an interrupt used to coordinate time updates. In either case, a master timekeeper tied to a well known reliable data source—GPS clock or broadcasted time from the national atomic clocks. This master time keeper generates the interrupt and SNTP. It is built with a highly reliable internal clock so that loss of time feed does not result in significant drift within the Mean Time to Repair (MTTR).
5.6.2 Alarm and Message Management
Alarm and message manage requires that all process alarming to be based on the top-level composite's attributes; that acknowledgments be handled at the composite level; that PCOs, system monitors, and the native human interface a reliable message protocol to send the message to a message management system (MMS); that the MMS is used by end-users to view the current alarm state and the alarm history; and that the MMS use the plant historian to permanently store and archive messages.
To meet the control market's requirement for a message management system, the illustrated control system
When a client of the MMSS connects to the MMSS server, the MMSS server send any messages in its internal alarm queue that are older than the time of the connection to the client; transmits the alarm state at the time of the connection to the client, and transmit any new messages subsequent to the connection. If the connection to the MMSS client fails, there is no impact on the operation of the control station or the control network; minor delays associated with detecting the loss of connection are generally viewed as acceptable. The MMSS support at least two (2) and, preferably, four simultaneous clients.
The alarm state of a PCO attribute is defined to include block attribute identification (full PATH attribute name, at least); the bad I/O status of the block for I/O attributes; an indication of the alarm status for each alarm type defined for the attribute; the priority, criticality, and acknowledgment status of the attribute; the on/off status of the attribute, i.e., is it updating; the status of the alarm inhibit and alarm disable or alarm option parameters, and the time tag of each alarm event stored within the block, e.g., the into alarm time, the acknowledged time, and the return to normal time. This information is recovered from all currently active alarms.
184.108.40.206.1 Process Alarms
When a composite is configured, the application engineer specifies which attributes of the PCOs within the composite are to be annunciated. When a composite is placed on line, it notifies the object location service that it exists. A message management service are notified of the new composite and arrange for notification from the device.
220.127.116.11.2 System Alarms and Messages
No user configuration is required to get these alarms into the MMS. The sources of such messages arranges for the appropriate notification.
18.104.22.168.3 Native Operator Actions
No user configuration is required to get these alarms into the MMS. The sources of such messages arranges for the appropriate notification.
22.214.171.124 Native Message Management Service
The MMS are centralized and redundant. It provides a complete alarm state for the plant at any time including startup. It retains a message history for as long as configured through the use of the plant historian. Users view the alarms through to the Alarm Manager.
6 Native Hardware SubSystems
6.1 Field Devices
The native field devices are coupled to the network
The illustrated embodiment utilizes powered Ethernet hubs to provide communications and power to its intelligent field devices. These IFDs may be transmitters, actuators, Networked I/O, or PCO platforms. The powered hubs are preferably, stackable, DIN rail-mountable, support connection to a redundant network, and support both 10 Mbps and 100 Mbps Ethernet.
A further understanding of the operated of the powered Ethernet network and of the circuitry used within the native field and control devices to draw power therefrom may be attained by reference to U.S. patent application Ser. No. 09/444,827, filed Nov. 22, 1999, entitled POWERED ETHERNET FOR INSTRUMENTATION AND CONTROL, and by reference to the corresponding PCT Patent Application US00/10013, filed Apr. 14, 2000, the teachings of which are incorporated herein by reference.
On the software side, specific implementations of the native field devices support web based configuration, as described above. The support is supplied by including an embedded web server with a selection of pages used for configuration and maintenance.
Intelligent transmitters use the IEEE 1451 standard to communicate to their sensor(s). This facilitates use of the same module in many types of transmitters from potentially many vendors and allows the transmitter to support up to 255, perhaps externally mounted, sensing devices.
The native intelligent positioners also support a powered Ethernet interface like the one used by the native intelligent transmitters.
|6.2 Summary of Hardware/Software Features by Station Type|
|A summary of the features of native control devices follows.|
|Blank cells indicate that the feature is not present in the indicated device.|
|Operator||Native||PC Based||Solid-state||SS DHCP||SS bulletin|
|Features||Xmitter||Positioner||Controller||Integrator||Consoles||Workstation||Web Server||Web Server||Server||board|
|Low power, high||Yes||Yes||Yes|
|Serial I/F (RS-||Yes||Yes||Yes|
|the TCP/IP suite||Yes||Yes||Yes||Yes||Yes||Yes||Yes||Yes||Yes||Yes|
|Solid State Bulk||Yes||Yes|
Described above are apparatus and methods that achieve the goals of the invention. It will be appreciated that the embodiments described herein are examples and that other embodiment incorporating changes thereto also fall within the scope of invention. Thus, by way of example, it will be appreciated that the invention can be implemented using a virtual machine environment other than JVM and using bytecode other than Java bytecode. By way of further example, it will be appreciated that the apparatus and methods taught herein can be applied to a range of control application, in addition to process control.