WO2001009690A9 - Methods and apparatus for object-based process control - Google Patents
Methods and apparatus for object-based process controlInfo
- Publication number
- WO2001009690A9 WO2001009690A9 PCT/US2000/020828 US0020828W WO0109690A9 WO 2001009690 A9 WO2001009690 A9 WO 2001009690A9 US 0020828 W US0020828 W US 0020828W WO 0109690 A9 WO0109690 A9 WO 0109690A9
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- control
- objects
- value
- status
- setpoint
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0426—Programming the control sequence
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/25—Pc structure of the system
- G05B2219/25428—Field device
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/31—From computer integrated manufacturing till monitoring
- G05B2219/31121—Fielddevice, field controller, interface connected to fieldbus
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/31—From computer integrated manufacturing till monitoring
- G05B2219/31161—Java programcode or simular active agents, programs, applets
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/45—Nc applications
- G05B2219/45226—Process control
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Definitions
- 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.
- 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.
- digital data processing or other automated apparatus monitor a device, process or system and automatically adjust its operational parameters or variables.
- 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 mirjimizing 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.
- 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.
- 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 ® (hereinafter, "IAS” or “I/A”) systems, marketed by the assignee hereof.
- IAS I/A Series ®
- FoxCAE graphical configurator
- 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.
- 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).
- Java objects e.g., to monitor and/or control a device, process or system.
- These objects referred to herein as process control objects (PCOs)
- PCOs process control objects
- 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.
- a control system with devices can have a workstation and controllers, each providing a Java virtual machine (JNM) environment.
- Executmg on the devices are Java PCOs embodying their respective control functions and signaling.
- 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 talcing up tasks otherwise handled by the controllers and workstation.
- a given datum 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.
- 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.
- 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., SENA 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.
- 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.
- 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.
- 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.
- thermocouple output e.g., the thermocouple output
- That information is stored only in the source PCO, e.g., the thermocouple PCO.
- 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.
- 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 parries to the connection.
- 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.
- an intelligent field device embodying a PCO according to the invention representing an analog input block 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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, Analoglnput, 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.
- 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.
- 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.
- FIG. 1 For purposes of this specification, 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.
- these classes define methods for linking variables (and their constituent parameters) to establish connections between blocks.
- the standardized cascaded floating point input part contained in the above-described PID control blocks can have constituent objects defined from a standardized "Irs" 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.
- 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 Irs and mas classes described above, can provide for the independent characterization of setpoints received and generated by the PCO.
- 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.
- 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.
- 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.
- parts of PCO control blocks utilized in control systems and devices can have the mandatory constituent that include, by way of example, the aforementioned Irs 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.
- 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.
- 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).
- BPC block processing cycle
- 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 SENA, provided by the sensor as part of the variable data structure) or other selection or function of the multiple inputs.
- control device configured by a PCO as an AI ⁇ 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 AI ⁇ .
- Still further aspects of the invention provide a AI ⁇ 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 AI ⁇ block.
- a control device in which such an AI ⁇ 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.
- 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.
- FIG. 1 depicts a process control system 10 of the type with which the invention is practiced
- Figure 2 depicts the object model notation utilized in this disclosure
- Figure 3 depicts a control and information collection class and object architecture in a control system according to the invention
- Figure 4 depicts control and information collection signal, part, and block classes in a control system according to the invention
- Figure 5 depicts input/output classes for intelligent and standard devices in a control system according to the invention
- Figure 6 depicts control and information collection nested classes in a control system according to the invention
- Figure 7 depicts an architecture for a typical block class in a control system according to the invention
- Figure 8 shows examples of unidirectional and cascade input and output part classes in a control system according to the invention
- Figure 9 depicts a loop composite class in a control system according to the invention.
- Figure 10 depicts a PLoop composite class in a control system according to the invention
- Figure 11 depicts a cascade composite class in a control system according to the invention
- Figure 12 depicts a TempProcess Composite class in a control system according to the invention
- Figure 13 depicts Loops2 control and process objects in a control system according to the invention
- Figure 14 depicts Loops2 control and process objects and details in a control system according to the invention
- Figure 15 depicts TempCasc control and process objects in a control system according to the invention
- Figure 16 depicts TempCasc control and process objects and details in a control system according to the invention
- Figure 17 depicts cascade peer-to-peer communication in a control system according to the invention.
- Figure 18 depicts variable and parameter transfer and rules in a control system according to the invention.
- 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.
- control 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.
- actuators such as the valves depicted as controlling inlets and outlets 24 - 28 and 34.
- a further actuator is shown controlling paddle 30.
- 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.
- 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.
- 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.
- 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.
- 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.
- those devices are coupled via one or more networks 48 that are, preferably, IP-based such as, by way non-limiting example, Ethernets.
- the networl 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.
- 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.
- control includes, 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.
- 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).
- JVM Java virtual machine
- Process control blocks or entities in Java byte code execute in the JNMs to configure the respective field devices to perform process control functions, e.g., for analog input (AI ⁇ ), analog output, proportional integral derivative (PID) control and so forth.
- AI ⁇ analog input
- PID proportional integral derivative
- 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, conventional operating systems and JNMs, and so forth.
- on-board memory e.g., RAM, ROM, FlashRAM
- control objects 36 - 42 CTL and INT
- 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)
- PCOs process control objects
- 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.
- PCOs facilitate the development, implementation and maintenance of control systems, additionally, maximizing their flexibility of configuration and robustness.
- PCOs also facilitate the introduction of new control objects and enhancements without affecting the running system, in addition to enabling on-line modification and upgrade of objects.
- Control systems utilizing PCOs are, moreover, portable: control classes, written once, can run everywhere. The systems are also scaleable.
- control systems implemented with PCOs implement optional parts and functionality separately from mandatory parts, thus, minimizing consumption of undue resources. Their use of separate input and output parts speeds implementation, while permitting the input and output sides of each block to be independently configured and operated.
- the PCO control architecture provides standardized input and output part classes used in all blocks.
- Input and output part classes provide initialization, anti-windup, cascade handling, local/remote/supervisory switching, manual/auto/supervisory switching, standardized variable naming, input and output multiplicative and additive feedforward, output selection (limiting with an override controller).
- optional parts for the input and output classes furnish alarming, limiting, filtering, feedforward, characterization, and interlock.
- the input and output part classes provide standard interfaces between interconnected blocks.
- PCOs provide a framework where interconnected block and nested classes are aggregated to create higher level nested classes, which are then used to create object instances.
- These higher nested instance include, for example, all control for a process unit, all information collection for a process unit, and so forth.
- Information is stored at its source, permitting other objects to reference it, e.g., via implicit pointers, addresses, symbolic references, or the like, in order to obtain specific datum (such as measurements) and information pertaining to it.
- the source passes the referenced information to proxy objects residing in those stations.
- scaling is done at the source and transmitted to the sink(s) when it changes.
- the local, remote, and supervisory setpoints obtain scaling from the measurement input.
- a cascade output obtains scaling from its back-calculated input.
- cascade scaling information flows upstream. An analog output object has no measurement, therefore the scaling of its remote setpoint and back-calculated output is either entered locally or obtained from the downstream field device.
- PCOs Other aspects of a control implementation using PCOs is that it permits the creation of object classes for required inter-block signals to communicate values with signal (SEVA) quality status, cascade handling (bumpless initialization and anti-windup) logic, and permissions for connection, setting, and configuration. Moreover, it makes automatically the backward interconnection for cascaded blocks.
- SEVA signal
- cascade handling bumpless initialization and anti-windup
- Figure 2 shows the notation for object and class diagrams used in this patent application. Those skilled in the art will appreciate that this is a subset of the standard Rumbaugh notation.
- This section describes the overall architecture for Process Control Objects and introduces the signal, part, block, nested, and composite classes and objects.
- a signal object is an object that is implemented as a component of a block or a part object, and its name includes the name of its block object. It is located locally in relation to the block object that contains it.
- a signal object is an instance of a signal class. Signal objects contain the information communicated between blocks or inserted into blocks as constants. These objects also provide methods to be used by users and tasks for setting and getting values and for linking and unlinking parameters and variables.
- Signal Classes are classes that provide signal objects as defined above.
- Part Object A part object is an object that is implemented as a component of a block or another part object, and its name includes the name of its block object. It is located locally in relation to the block object that contains it.
- a part object is an instance of a part class.
- Input and output part objects contain or reference float, boolean, or integer signal objects, which enable uni-directional and cascade communication between blocks.
- Some part classes provide objects for optional functionality such as alarm, limit, and filter, which can be components of the input and output part objects or blocks.
- Part Classes are classes that provide part objects as defined above.
- Block Object A block object is an instance of a block class and provides a base level of functionality. It is the lowest level object, which can be implemented as an independent object with a network-wide unique name.
- a block object is made up of input part objects, a body, and output part objects. The input and output parts are independent of the body and enable uni-directional and cascade communication between blocks.
- the body contains the attributes and methods that are unique to the particular block class. In addition the body may contain optional parts such as feedback tuner, feedforward tuner, and deadtime.
- Analoglnput, AdvancedPID, and AnalogOutput are examples of block objects. Typically, block objects are used to create a hierarchy of nested objects.
- Block Classes are classes that provide block objects as defined above.
- Nested Object A nested object is an instance of a nested class and is a component of possibly interconnected block and nested objects. Replication of a control solution is achieved with multiple instances of a nested class. Each object instance can be implemented as an independent object with a network-wide unique tag name.
- An example of a nested class is a loop class, name it Loop, which contains the Analoglnput, AdvancedPID, and AnalogOutput block classes with appropriate connections achieved by linking the input and output parts of the blocks. Class Loop can then be used to create many instances of loop composite objects.
- a second level nested class can be created by nesting together the Analoglnput and AdvancedPID block classes and the Loop class with appropriate connections to create a cascade class, name it Cascade. Class Cascade can then be used to create many instances of cascade composite objects.
- Nested Classes are classes that provide nested objects as defined above.
- Composite Object or Composite A composite object is an instance of a nested class implemented as an independent object with a network-wide unique name. For example instances of class Loop or Cascade with network-wide unique names are composite objects.
- Composite Class A composite class is a nested class whose object instances are implemented as independent objects with a network-wide unique name, that is, composite objects. When class Loop is used to create instances with network-wide unique names it is a composite class. However, the same class Loop when used as a component of the Cascade class is a component class, while class Cascade is a composite class.
- Figure 3 shows the architecture for the Process Control Objects (PCO). Square boxes indicate classes, while rounded ones indicate object instances (objects).
- the Signal Classes shown with veitical lines, provide signal classes to the part and block classes, for example the float parameter and float variable classes.
- the Part Classes shown shaded, provide mandatory and optional part classes to the block classes, for example the uni-directional and cascade float input and output classes.
- the optional part classes also provide optional part classes to the mandatory part classes.
- Block Classes are typically used to create component and composite classes, which are then used to create many instances of composite objects (composites).
- a tag name is an arbitrary string.
- Figure 4 shows the signal, part, and block classes for control and information collection in more detail.
- Class names start with a capital letter
- names for objects, attributes, and methods start with small letters with additional words concatenated to the first word starting with capital letters. This is the recommended practice by many authors and developers and is followed in this document.
- the clear rectangular boxes indicate block classes, for example, Analoglnput class.
- the shaded rectangular boxes indicate part classes, for example, Alarm and
- FIG. 1 FloatVariable classes.
- the boxes with the diagonal lines indicate signal classes, for example, boolean and float parameters and variables.
- Figure 5 shows the InputOutput classes for intelligent and standard devices, which are indicated by boxes filled with dots.
- the boxes with dotted lines indicate classes from Figure 4.
- the InputOutput classes are parts of the UniDirFloatlnput and CascFloatOutput classes for analog inputs and analog outputs, respectively.
- Figure 6 illustrates the aggregation of control block classes to create many levels of nested classes.
- the inheritance hierarchy and aggregation classes for control part and block objects shown in Figure 4 furnishes the control block classes used to create nested classes.
- the objects of class ControlNestedLevell contain block objects. In particular, they contain combinations of two or more (indicated by 2+) block objects.
- the objects of class ControlNestedLevel2 contain combinations of one or more (indicated by 1+) ControlNestedLevell objects, and optionally zero or more block objects.
- a level 2 control nested object must contain at least one level 1 control nested object. Following this procedure, nesting can be generalized to N levels. Each higher level control nested object contains at least one control nested object from the level below it, and optionally, zero or more objects from any other levels as well as zero or more block objects.
- Figure 7 shows the architecture for a typical block class.
- the Input Parts contain the parts and references for uni-directional and cascade variables.
- the input parts can also contain optional parts such as filter and alarm.
- the Output Parts contain parts and references for unidirectional and cascade variables.
- the output parts can also contain optional parts such as limit and alarm.
- the Body contains the attributes and methods that are unique to the particular block class. It can also contain optional parts such as feedback tuner and deadtime.
- Figure 8 provides examples of uni-directional and cascade input and output parts. More particularly, Figure 8(a) shows the uni-directional part UniDirlnput. The variable in comes from a source and there is no backward communication as indicated by the single mcoming arrow. The variable pv can be a source for many sinks and there is no backward communication as indicated by the single outgoing arrow.
- Figure 8(b) shows the cascade part Cascadelnput. The cascade part enables unidirectional and bi-directional communications. The variables in.fdFwd, pv, sp, and deviation are uni-directional as indicated by the single arrow. Variables remSP and supvSP axe bi-directional as indicated by the double arrow.
- Figure 8(c ) and (d) shows the uni-directional part UniDirOutput and the cascade part Cascadelnput, respectively.
- the Input and Output parts are instances of the part classes that are shown in the Control and Information Class structure of Figure 4 and they are separate and independent from the Body of the typical block class. This enables inter-operability between components by connecting the output variable of an output part to the input variable of an input part.
- the communication between them is uni-directional (one- way) from the source to the sink.
- the value and status of the output part's variable is passed by reference to the input part's variable.
- the communication between them is also cascade. That is from the source to the sink for both the forward value and status, and from the sink to the source for both the back value and status.
- the sink component is connected to the source component and the source component is connected to the sink component.
- a single linkage of the sink to the source connects both the forward and back signals.
- Control applications use both uni-directional and cascade connections.
- heating cold water in a heat exchanger by condensing steam The cold water flows through the tubes of the heat exchanger and steam flows through the shell of the heat exchanger.
- the objective is to heat the water to a desired temperature using cascade control, whereby the temperature controller sets the setpoint of the steam flow controller.
- the temperature controller uses the hot water temperature measurement, while the steam flow controller uses the steam flow measurement.
- the steam flow controller delivers the required steam by throttling the steam valve.
- cascade control that is, the output of the temperature controller is cascaded to the setpoint of the steam flow controller.
- the temperature controller When the cascade has been open for a period of time and the operator transfers control to the temperature controller by switching the steam flow controller from local to remote, the temperature controller l ⁇ iows this from its output's back status from the steam flow controller setpoint. At this time the temperature controller initializes and computes the value of its forward output to be the output back value, which the steam flow controller sets equal to its local setpoint value at the time of transfer. From then on normal cascade control commences again and the temperature controller manipulates the steam flow setpoint to drive the actual water temperature to the desired value, as determined by the value of the temperature controller setpoint.
- the signal classes are contained in the Signals package, described below.
- a package contains a number of Java files and each Java file contains one and only one class.
- Objects from Signals classes contain the information communicated between linked blocks or inserted into blocks as constants. These classes also provide methods to be used by users and tasks for setting and getting values and for linking and unlinking parameters and variables.
- the Signals package also contains an interface for shared constants, and a mode class, which is used by cascade input parts for local/remote/supervisory switching and by cascade output parts for manual/auto/supervisory/interlock switching.
- the signal classes include the following: BoolParameter, BoolVariable, FloatParameter, FloatRange, FloatVariable, IntParameter, IntRange, IntVariable, Mode, ObjList.
- Parameter and Variable are abstract classes passing common methods and attributes through inheritance to the individual XxxParameter and XxxVariable classes.
- the part classes are contained in the Parts package.
- a Part must be contained in a block or other part contained in a block.
- Each block may have one or more input parts, a body, and one or more output parts.
- Input and output Part classes contain or reference FloatVariable, Bool Variable, or IntVariable signals, which enable uni-directional or cascade communication between blocks.
- Some part classes provide objects for optional functionality such as alarm, limit, and filter and they can be components of input and output part objects or blocks.
- An unused optional part has a null reference.
- the configurator must instantiate an optional part before it can be used or its parameters set.
- the parts classes include the following: Alarm, BoolFilter, Characterizer, CascBoolInput, CascBoolOutput, CascFloatlnput, CascFloatOutput, Casclntlnput, CascIntOutput, Deadtime, Failsafe, FeedForward, Filter, InfoBuffer, IntFilter, Interlock, Limit, LinearFlow, PIDParameters, Ramp, TimeCount, UniDirBoolInput, UniDirBoolOutput, UniDirFloatlnput, UniDirFloatOutput, UniDirlntlnput, UniDirlntOutput, Zone,
- the InputOutput classes are contained in the InputOutput package.
- the InputOutput classes are parts of the UniDirFloatlnput and CasFloatOutput classes for analog inputs and analog outputs, respectively. They are optional parts with a default null reference. The configurator must instantiate them before they can be used or their parameters set.
- the InputOutput Classes provide the interface to input and output signals using the Java Native Interface (JNI), which provides Java classes with native methods.
- JNI Java Native Interface
- the block classes are contained in the Blocks package.
- the block classes provide block object instances, which can be implemented as independent objects with network- wide unique names.
- block classes are used to provide component classes for composite classes, which are then used to create many instances of composite objects.
- Figure 7 shows the architecture for a typical block class.
- the Input Parts contain the parts for uni-directional and cascade variables.
- the input parts can also contain optional parts such as filter and alarm.
- the Output Parts contain the parts for uni- directional and cascade variables.
- the output parts can also contain optional parts such as limit and alarm.
- the Body contains the attributes and methods that are unique to the particular block class. It can also contain optional parts such as feedback tuner and deadtime.
- the Input and Output parts are instances of the part classes and are separate and independent from the Body of the typical block class. This enables inter-operability between components by connecting the output variable of an output part to the input variable of an input part.
- the configurator must instantiate a block and its mandatory and selected optional parts before it can be used or its parameters set.
- Block is a parent class (superclass) to all block classes including the UserBlock class and its attributes and methods are inherited by all block classes.
- the UserBlock is a parent class to the Arithmetic and UserDefined classes and its attributes and methods are inherited by them. The following two sections provide a detailed functional description of the Block and UserBlock classes.
- Block is an abstract class that contains data and methods common to all blocks. It implements the Constants and Runnable interfaces. Options, mode, and status are conveyed with packed Booleans. Bit-mask definitions are contained in the Constants interface, which is inherited by most classes.
- a part class which provides a common function, may be contained in several block classes or other part classes.
- An optional part may be instantiated at configure time. Ifit is not configured, it has a "null" value in the container object
- the run method of each block is called each bpc. Its output is updated each period at a specified phase.
- the bpc is a configured float number in seconds, an integer number of milliseconds, preferably an integer multiple of .1 seconds.
- the nominal period is an integer number of bpcs less than or equal to the configured float blockPeriod, but at least one bpc.
- the execute method determines when each block updates its output based on its configured bloclcPeriod and phase.
- An output variable object is stored in an output part of its source block object.
- An input variable object of a block's input part may be linked (connected) to the output variable object by setting the input variable object equal to the output variable object. This is done at configure time with the output variable object's UnkTo method, which checks for permissions.
- Output variables are instances of the FloatVariable, BooleanVariable, or IntVariable classes. These contain aforw and may contain a back parameter object which are instances of the FloatParameter, Boolean Parameter, or IntParameter classes.
- Each of the parameter classes contains a value and two status bytes. The status bytes provide SEnsor VAlidation (SEVA) quality indications, cascade handling bits, downstream limit bits, and permissions.
- SEVA SEnsor VAlidation
- the parameter classes have getStatus, getValue, setValue, UnkTo, and unlink methods to be used by users and tasks.
- the Variable classes contain alarmSum and maintenance status.
- the FloatVariable also contains UnkTo, ack, and getAlarm methods, a range object, and the SEVA 'uncertainty'. Both source and sink have access to the members of a linked Variable object.
- the UniDirFloatlnput class accepts one input variable object. It may contain charac and filter objects, used to precondition the input variable prior to its use in the block algorithm. It outputs the pv variable.
- the CascadeFloatlnput class inherits from the UniDirFloatlnput class and also receives local, remote, supervisory, and feedforward input variables in addition to the measurement input variable. It outputs v and deviation.
- the CascadeFloatlnput class does the local, remote, supervisory mode switching and cascade handling for bumpless transfer and initialization.
- the UniDirFloatOutput class provides one output variable object and receives manual and supervisory input variable objects. It provides auto, manual, supervisory mode switching and may provide an output 'limit' object and two output alarm objects.
- CascFloatOutput inherits from the CascFloatOutput class. It also provides bumpless mode transfer and initialization. It may contain an additive or object and a limit object. Attributes tag object instance tag, a string. description object instance description, a string. type object instance type, a string blockPeriod is the time in seconds between output updates, float, default .5. phase object instance phase, a double integer, default is 0. Methods run Arguments: none.
- An object from the UserBlock class has parts from the UniDirBoolInput, Intlnput, and UniDirFloatlnput classes, parts from the CascBoolOutput, CascIntOutput, and CascFloatOutput classes, and output mode parts from the Mode class.
- Methods from the FloatParameter, IntParameter and BoolParameter classes can be used to getValueQ, setValueQ, and getStatusQ.
- Methods from the FloatVariable and Boolean Variable classes can be used to getAlarmQ and ackQ.
- Methods from the Mode class can be used to getModeQ and setModeQ. Definitions of status and modes are in the Constants interface.
- Attributes inputBool is an optional array of Booleanlnput parts
- outputBool is an optional array of CascBoolOutput parts
- inputFloat is an optional array of UniDirFloatlnput parts.
- outputFloat is an optional array of CascFloatOutput parts.
- mode is an optional array of Mode parts.
- seed 100001 is an int seed number for generating the uniform (0,1) probability Distribution. Different seed numbers generate different, and statistically independent distributions.
- runMethod contains the user written code.
- Figure 5 shows the implementation of composite classes in general. This section describes a library of the Nested superclass and composite classes.
- Nested is an abstract class containing Strings for nested classes. It implements the Constants and Runnable interfaces.
- the config method prepares a comp list of its runnable components.
- the run method calls the run method of each composite and block on the comp list.
- Attributes tag_desc is a String composite user tag description is a String composite brief description. type is a String identifying the composite class.
- offOn is a boolean that allows its components to run when true. Its default is false.
- Overview Loop is a user defined nested class. It contains config and run methods, which are called by the main method.
- FIG. 9 shows the Loop composite class, which contains the Analoglnput, AdvancedPID, and AnalogOutput classes connected as shown. Each time the Loop class is used to create a Loop composite object it also creates an instance of am, pid, and aout. Each Loop composite object is created with the default attributes of the ain, pid , and aout, however, the default attributes can be overridden. Attributes ain is an instance of Analoglnput class. pid is an instance of AdvancedPID class. aout is an instance of AnalogOutput class. comp is a ObjList of Runnable objects.
- sp is the alias for the pid setpoint
- a FloatParameter pv is the alias for the pid process variable
- a FloatParameter out is the alias for the pid output
- Loop tag Attributes from superclass tag user specified Loop tag, a String description "Secondary”, a String. type "Loop”, a String.
- PLoop is a user defined nested class. It contains config and run methods, which are called by the Configure class.
- Figure 10 shows the Ploop (Primary Loop) composite class, which contains the Analoglnput and AdvancedPID classes connected as shown.
- Each PLoop composite object is created with the default attributes of ain and pid, however, the default attributes can be overridden.
- Attributes ain is an instance of Analoglnput class.
- pid is an instance of AdvancedPID class.
- comp is a ObjList of Runnable objects.
- sp is the alias for the pid setpoint
- a FloatParameter pv is the alias for the pid process variable
- a FloatParameter out is the alias for the pid output
- Cascade is a user defined nested class. It contains config and run methods, which are called by the Configure class.
- FIG 11 shows the Cascade composite class, which contains the Ploop and Loop composite classes connected as shown. Attributes
- Pri is an instance of the Ploop class
- sec is an instance of the Loop class.
- comp is a ObjList of Runnable objects. attributes from superclass tag user specified Cascade tag, a String description "TempCascade”, a String. type "TempCascade”, a String-
- Methods from superclass config specifies internal default values and connections.
- the user composite classes are examples of classes that would be created by a user in the same way as the composite classes discussed above.
- users can create their own subclasses under the superclass UserBlock shown in Figure 4.
- the remainder of this section describes the TempProcess composite class, which is used to create instances that simulate a process, which provides temperature and flow measurements.
- FIG. 12 shows the TempProcess user composite class, which contains two
- TempProcess composite class Each time the TempProcess composite class is used to create a TempProcess composite object it also creates an instance of flow and temp. Each TempProcess composite class is created with the default attributes of flowOut and tempOut, however, the default attributes can be overridden.
- the flow process is a one time step delay (.5 sec.) and the temperature process is a 10 sec. delay. Attributes flow is a ProcessSim block with 1 input. temp is a ProcessSim block with 1 input. comp is a ObjList of Runnable objects. FlowOut is the output of the flow process, a FloatVariable.
- TempOut is the output of the temp process, a FloatVariable. Attributes from superclass tag user specified TempProcess tag, a String description is the String "Temperature Process”. type is the String "TempProcess”.
- Methods config specifies internal default values and connections.
- Supv is a user defined class derived from the UserBlock class. It contains a run method. It has one floatOut and no inputs. It contains the controller parameters and ramps its output, used as the supervisory setpoint of the temperature controller. Attributes parTC is a PIDParameters part that contains parameters for the temperature controller. ParFC is a PIDParameters part that contains parameters for the flow controller.
- the Block, Composite, and UserComposite classes can be used to create many object instances, which are simply referred to as composite objects or composites.
- An application instantiates and configures the composite objects using the config method and then executes them using the run method.
- the config method prepares a comp list of its runnable composites.
- the run method calls the run method of each composite on the comp list.
- Loops2 and TempCasc applications.
- the Loops2 application illustrates composite objects for control and process simulation, which are made up of block objects.
- FIG. 8.4.1-2 shows the same composites in detail.
- Application Loops2 uses the config method to instantiate (configure) composite objects s21, tl21,fl21, and pr21 and the run method to schedule them for execution.
- Composite object s21 (Supervisor 21) is an instance of the Supv block class described in Sec. 8.3.2. It acts as a supervisory component and its output s21.out sets the temperature setpoint tUl.sp of Temp Loop tl21.
- Composite object tl21 is an instance of the PLoop component class shown in Figure 10 and is a single loop made up of block instances ain, and pid.
- Temp Loop 21 compares the temperature measurement value tl21.pv to the temperature setpoint tUl.sp and computes tl21.out, which sets the required steam flow s tyo fl21.sp
- Composite object fl.21 (Flow Loop 21) is an instance of the Loop composite class shown in Figure 9 and is a single loop made up of block instances ain, pid, and aout.
- Flow Loop 21 compares the steam flow measurement value fl21.pv to the required steam flow setpointyZ2i suitssp and computes the required steam valve position fl.21.out, which sets process variable pr21.pv
- Composite object pr 21 is an instance of the TempProcess composite class shown in Fig. 8.3.1-1 and simulates the temperature process. Process 21 uses process variable pr21.pv and computes the resulting steam flowfl.21.pv and temperature tl21.pv.
- Object ic21 is an instance of the InfoCollect block class. Object ic21 collects the date/time, value, and status for 10 (configurable) samples of tl21. ⁇ v, tl21.sp,fl21.pv, fl21.sp, and fl.21.out. Each of these objects is double-buffered and when one buffer fills it switches to the other, which it overwrites.
- Attributes s21 is a Supv block.
- tl21 VI is version 1 of a Ploop composite.
- tl21 is an alias for a Ploop composite.
- tl21 V2 is version 2 of a Ploop composite fl21 is a Loop composite.
- pr21 is a TempProcess composite.
- ic21 is an InfoCollect block. comp is a ObjList of Runnable objects. Methods config overrides default values and makes external connections.
- the TempCasc application illustrates the cascade composite object for control, which is made up of component (composite) objects, while the process composite is made up of block objects.
- Figure 13 shows the TempCascade composite object and process
- Fig. Figure 14 shows the same components in detail.
- Application TempCasc uses the config method to instantiate composite objects s21, tc21, and pr21, and the run method to schedule them for execution.
- Composite object s21 (Supervisor 21) is an instance of the Supv block class described in Sec. 8.3.2. It acts as a supervisory component and its output s21.out sets the temperature setpoint tc21.sp of Temp Loop tc21.
- Composite object Temp Cascade 21, tc21 is an instance of the Cascade composite class shown in Fig. 8.2.5-3 and is a cascade loop made up of Ploop instance pri, and Loop instance sec.
- Temp Cascade 21, tc21 uses measurement values tc21.pvl and tc21.pv2 and temperature setpoint tc21.sp and computes the required steam valve position out21.
- Composite object pr21 is an instance of the TempProcess component class shown in Fig. 8.3.1-1 and simulates the temperature process. Process 21 uses process variable pr21.pv and computes the resulting steam Ho-wfl.21.pv and temperature tl21.pv.
- Object ic21 is an instance of the InfoCollect block class. Object ic21 collects the date/time, value, and status for 10 (configurable) samples of tc21.sp, tc21.pvl, tc21.pv2, and fi.21.out. Each of these objects is double-buffered and when one buffer fills it switches to the other, which it overwrites. Attributes s21 is a Supv block. tc21 is a Cascade composite. pr21 is a TempProcess composite. comp is a ObjList of Runnable objects. Methods
- Config overrides default values and makes external connections.
- the purpose of information objects is to collect information for date/time, bool, int, and float parameters, alarmSum, and modes.
- the purpose of InfoCollect objects is to collect a specified number of samples for the date/time, value, and status of a specified number of bool and float parameters, alarmsSum, and mode. The samples are collected in two buffers. When one buffer fills data storage is switched to the other.
- An object from the InfoCollect class has paramBool parts from the BoolParameter class, paramlnt parts from the IntParameter class, paramFloat parts from the FloatParameter class, actual mode parts from the Mode class, and alarmSum short integers.
- Methods from the source FloatParameter and BoolParameter classes can be used to linkToQ.
- An object from the Event class may have a paramBool part from the
- BoolParameter class paramlnt parts from the IntParameter class, a paramFloat part from the FloatParameter class, an actual mode part from the Mode class, and an alarmSum short integer.
- All parts that a block or part may use are declared.
- Mandatory parts are instantiated in the declaration or constructor, while optional parts are not. If optional parts are used, they are instantiated by the configurator.
- An arbitrary number of a specific part type is specified as an argument of the container's constructor method. For example, see the Supv class derived from the UserBlock in Loops2.
- An example of an optional part class is Filter, which is used in the CascFloatlnput class.
- Block classes are the lowest level classes that can be used as component classes that are optionally interconnected to create composite classes.
- the composite classes can contain not only block classes but also other composite (component) classes, and so on.
- the block classes and their mandatory and optional part, signal, and inputOutput classes contain default values for each attribute.
- Java code is written and compiled to create a new composite class.
- An already existing composite class can be instantiated and the resulting composite object can be customized to suit the application without compiling.
- the code for a new composite contains name declarations of component blocks and composites. Its constructor method preferably contains calls to the component's constructor methods.
- a block object that may have multiple part objects from the same part class requires that the number of such part objects be specified as an argument in the block's constructor. This number may be passed from a containing composite constructor's argument.
- a config method can be written that makes the internal variable and parameter connections between components and overrides default parameter value and option assignments. Connections are made and broken with nkTo and Unlink methods of the source parameter or variable. The UnkTo method will not succeed if the sink parameter or variable is already linked. A bidirectional cascade variable connection is made or broken with a single UnkTo or Unlink method. Each component composite's config method is called before overriding its assignments. This method may be used to instantiate new optional part objects and override their defaults. Each component block or composite is added to the composite's comp list in the order in which they are to execute. A run method must be written. This calls in sequence the run method of each component block and composite.
- the block classes, the composite classes, and the user composite classes can be used to configure as many block and composite object instances as desired without recompiling provided there is a capable configure process.
- a control system implemented with PCOs as described above can be configured without compilation. To this end, the following steps can be performed: Create a configuration object which contains configured PCO objects including parameter values, initial target mode and all connections among various blocks necessary for a closed-loop control.
- Change connections among PCO blocks on the fly by invoking a remote method Transfer PCO parameters or variables from a client (host) to a server (field device) together with a string identifying the blocks and related PCO parts and signals . Add and remove new blocks on the fly. New blocks are instantiated in the device and added into the lunList. Connections to the new blocks are made on the fly as well. Enable PCO optional parts on the fly. Checkpoint on demand. Upload an object file into the configurator.
- a general RMI Remotelnterface is designed to make all on-line operations listed above possible.
- the methods in this Remotelnterface provide a useful framework for further development.
- several common methods are provided to deal with the following important issues:
- IEC 1131-3 The IEC 1131-3 specification requires that its Sequential Function Charts and the three different languages namely, Structured Text, Ladder Logic, and Function Blocks work in concert, that is, a user can intermix them and create a control strategy.
- An example is the creation of a task using Structured Test, which invokes the in-line code execution of a Ladder(s) or a Function Block(s).
- Structured Test which invokes the in-line code execution of a Ladder(s) or a Function Block(s).
- the UserBlock class provides the inputs and outputs as defined by the PCO to all its subclasses, thus enabling interconnection between PCO and IEC 1131-3 objects.
- the IEC 1131-3 configurator then can produce Java bytecode directly, or can compile source code of another language such as structured text into Java bytecode.
- Process Conrol Objects are preferably run as Java applications (though, they can be run as Java applets, servlets, or the like), with each composite and block object having its own run method, which is called by the run method of the next higher level composite object. Scheduling of a thread is preferably also done in Java, though it can be performed elsewise. For example, a real-time operating system can be used for scheduling, though, it is preferably not hardware specific.
- the sleep interval until the next run start is determined by adding the Block Processing Cycle (BPC) time to the present desired run start time and subtracting the current time (in milliseconds).
- BPC Block Processing Cycle
- Each thread preferably has its own object set and run methods.
- the application shell itself is a Java application. Once it gets started, it runs until device is powered down or rebooted. After the application shell starts, it periodically checks for messages sent from a host running the configurator. In the illustrated embodiment, it understands three types of messages, FileCreation, Commit and Checkpoint.
- FileCreation This message is sent when the OK button is pressed. Once this message is received, the application shell serializes the configuration object to a file in the local file system of the device.
- This message is sent when the Commit button is pressed. Once this message is received, the application shell does the following:
- This message is sent when the Checkpoint button is pressed. Once this message is received, the application shell serializes the current configuration object into a file in the local file system. This file is the checkpoint file which can be transferred to any computer via FTP.
- Intra-Platform Communication A cascaded FloatVariable, IntVariable or BoolVariable requires that some of its fields (subobjects) be communicated downstream (forw, alarmSum, uncertainty, maintenance) and others upstream (back, range). All unidirectional variable fields are communicated downstream.
- Intra-platform communication is done by reference. Variables are stored in an output part of the upstream block and linked to the downstream block with a linkToO method called at configure time. There is also an unLinkQ method that can be called to reconfigure.
- Objects are not moved from place-to-place within a platform.
- Input and output signals are instances of the xxVariable class.
- Variable linking is discussed above.
- Constants such as a gain or time constant are instances of the FloatParameter class.
- a FloatParameter can be linked to a forw or back parameter of a FloatVariable with a linkTo() method.
- Each Parameter (such as forw and back) has two status bytes, one is enumerated providing SEVA (clear/blind etc. instead of good/bad) status and cascade status, the other a packed Boolean containing limit bits and linking and setting permission status bits.
- Block-to-block input-output Variable connections within a station are made by reference.
- the data resides in the upstream block, either block may be the source for a particular attribute.
- the forw Parameter (value, status, limStatus) and alarmSum are set by the upstream block and the back Parameter and Range are set by the downstream block.
- the upstream block sets all of the unidirectional Variable attributes.
- a copy (proxy) of the Variable (or Parameter) that resides in the upstream block must also exist in the downstream block.
- a cascade Variable must be split into its forward- and back- propagated Parameters. If push (publish-subscribe) communications are used, the source station needs a publish list of the source object references and a source String names (topics). The 'sink object needs a subscribe list of the sink object references (proxies) and source object String names (topics).
- FIG 17 shows an example of cascade peer-to-peer communication.
- the cascade control loop consists of AINl and PIDl that make up the temperature loop TLl and AIN2 and PID2 that make up flow loop FL2.
- TLl is in device NCAP1
- FL2 is in device NCAP2.
- output OUT of PIDl sets the remote setpoint RSP of PID2.
- output BACK of PID2 sets the BACK of PIDl.
- Each device has a Publisher and a Subscriber list and a CommsAPI.
- Each publisher and subscriber list contains references and topics. The topics are strings indicated in quotes.
- Publisher2 shows reference PIDlProxy.BACK, which points to the actual parameter object that needs to be transferred to its subscriber(s) and its corresponding topic "PIDl. BACK” .
- This topic is subscibed to by Subscriberl, which shows topic "PID1.BACK” and reference PID1.BACK.
- This reference points to the actual parameter object BACK where the required parameter object is transferred to.
- Cascade transfer for peer-to-peer inter-platform communication requires transfer of parameters (value, status, limStatus, time).
- the previous section provides an example of transfer of parameters for cascade transfer.
- Unidirectional transfer for peer-to-peer inter-platform communication requires transfer of variables (forw parameter, range, uncertainty, maintenance, alarmSum). Object transfer as opposed to fundamental data type allows more information to be transferred in each message, therefore fewer messages and a smaller lookup table.
- Periodic transfers can be done using publish-subscribe services.
- One-to-one event driven transfers can be done with client-server services.
- Peer-to-peer requires transfer of parameters (value, status, limStatus, time) for cascade transfer or variables (forw parameter, range, uncertainty, maintenance, alarmSum) for unidirectional transfer. Assuming publish-subscribe, each published object must have a unique string name that the subscribing device can recognize.
- Operator display requires a trend object (setpoint, measurement, output forw parameters and input and output modes). Publish-subscribe may be used for this also. User setpoint, output, and mode changes can be transmitted using RMI.
- Block details require transfer of an object containing the part parameters on each open window each time one changes.
- Settable changes can be transmitted using RMI.
- a historian can receive InfoCollect buffer objects.
- Figure 18 provides a summary of the variable and parameter transfer and rules.
- Blocks structured with a body and one or more input and output parts Each cascade input part supports local/remote/supervisory switching, setpoint limiting, matched characterization, additive or multiplicative feedforward (bias or ratio setpoint), pv (process variable) output, measurement (in) filtering, deviation 9pv-sp), alarming, and support for bumpless initialization and antiwindup recovery from downstream limiting.
- Each output part supports manual/auto, supervisory switching, output limiting and alarming, additive or multiplicative feedforward, and bumpless initialization and antiwindup recovery from downstream limiting.
- Variables are alarmed at their source and alarm status is communicated to sinks as part of the variable. Range is specified at a measurement source and communicated to sinks as part of the variable. Cascaded range is transmitted upstream. Blocks are the lowest level objects that are recognized at the system level. Each block and its parts must reside in a single station or device. Composites may span stations or devices. Parts Classes
- a Part must be contained in a block or other part contained in a block.
- Each block may have one or more input parts, a body, and one or more output parts.
- Input and output Part classes contain or reference either FloatVariable, BoolVariable, or IntVariable signals which enable uni-directional or bi-directional communication between blocks.
- An unused optional part has a null reference.
- the configurator must instantiate an optional part before it can be used or its parameters set.
- UniDirFloatlnput is a measurement path input interface part that initializes and applies charactization, and filtering to its in signal. Attributes in is a reference to a FloatVariable source, in.forw. value is in eng. units.
- charac is a reference to an optional signal Characterizer.
- charac.xPtfiJ and charac.yPt[i ⁇ are breakpoint coordinates, float values.
- filter is a reference to an optional signal Filter. options is a packed boolean byte with:
- I_0 in is provided from device and point device is the String name of an i/o device that is the source of in. point is an integer used to identify an i/o address within the device.
- pv is a Float Variable output representing the processed in value.
- gain is a FloatParameter that multiplies v. dtime is a reference to an optional Deadtime part.
- CascFloatlnput is an input interface part that provides initialization, local/remote/supervisory switching, optional setpoint limiting, optional local or supervisory setpoint ramping, optional deviation alarming, and an optional multiplicative or additive feedforward input.
- startupQ Called when out-of-service, returns true if ready to run.
- inHandle ⁇ Sets back values and status, processes in.
- locRemTargetQ Determines the internal target mode.
- devHandle (period) Handles setpoint and deviation. initializeQ Provides bumpless mode transitions.
- modeHandle ⁇ Provides functionality for active mode.
- supvSP is an optional reference to the source of the supervisory setpoint, a
- Irs is the setpoint local/remote/supervisory Mode having target, actual, permitted, and last packed boolean bytes whose bits are: 0_S Block is out of service INITIALIZE Transition actual mode enables bumpless transfer to target mode LOCAL Operator or set method can set sp.
- REMOTE External block sets setpoint.
- SUPER Supervisory task sets setpoint.
- LINKED Permitted attribute indicates target connected to external source.
- fdFwd is an optional reference to the source of a Feedforward object.
- fdFwd.ff is a reference to the source of a FloatVariable.
- fdFwd.gain is a FloatParameter gain applied to fdFwd.fff.
- ramp is an optional reference to the source of a Ramp object.
- ramp.rateDn is a positive FloatParameter specifying the rate down.
- r ⁇ mp.r ⁇ teUp is a positive FloatParameter specifying the rate up.
- r ⁇ mp.t ⁇ rget is a FloatParameter that contains the termination value.
- r ⁇ mp.trigger is a BoolParameter that starts the ramp.
- limit is an optional reference to the source of a setpoint Limit object.
- limit.hi is the high limit
- FloatParameter limit.lo is the low limit
- FloatParameter ⁇ l ⁇ rmDevi is an optional reference to the source of a deviation Alarm object.
- alarmDev.hi is the high alarm limit
- a FloatParameter. alarmDev.lo is the low alarm limit
- alarmDev.hys is the alarm hysteresis, a FloatParameter.
- alarmDev .delay is an optional alarm delay in seconds
- a FloatParameter alarmDev. noAck is a boolean
- alarm requires no acknowledge if true.
- sp is a FloatVariable representing the current setpoint. In the LOCAL mode sp can be set deviation is a FloatVariable output representing in - sp. It can be alarmed. Attributes from super class. in is a reference to a FloatVariable source, in forw. value is in eng. units.
- charac is a reference to an optional signal Characterizer.
- charac.xPtflJ and charac.yPt ⁇ j are breakpoint coordinates, float values.
- filter is a reference to an optional signal Filter. options is a packed boolean byte with bits assigned as:
- SP_PV_TRK_MAN Setpoint tracks PV when output is manually set.
- SP_DN_UNCER Setpoint is decreased by the uncertainty.
- SP_UP_UNCER Setpoint is increased by the uncertainty.
- MULTJFF Feedforward is multiplicative, else it is additive.
- device is the String name of an i/o device that is the source of in. point is an integer used to identify an i/o address within the device.
- pv is a Float Variable output representing the processed in value.
- Urn holds limit bits to be propagated upstream, an integer. Propagates limit bits to baclcstatus.
- UniDirFloatOutput is an output interface part that provides auto/manual/supervisory switching, optional out limiting, optional out alarming, and an optional multiplicative or additive feedforward input. Its methods are called by its container block. startup 0 Called when out-of-service, returns true if ready to run. manAutoTarget() Determines the internal target mode. modeHandle eriod) Provides functionality for active mode.
- fdFwd is an optional reference to the source of a Feedforward object.
- fdFwd.ff is a reference to the source of a FloatVariable.
- wd.gain is a FloatParameter gain applied to fdFwd.ff.
- supvOut is an optional reference to the source of the supervisory output, a
- FloatVariable. mas is the output manual-auto-supervisory Mode having target, actual, permitted, and last packed boolean bytes whose bits are: 0_S Block is out of service INITIALIZE Transition actual mode enables bumpless transfer to target mode MANUAL Operator or set method can set out.
- ALM_MAN Alarming is applied to a manual output.
- MAN_START Block returns from out-of-service in MANUAL mode.
- MULT.FF Feedforward is multiplicative, else it is additive.
- limit is an optional reference to the source of an out Limit object.
- limit.hi is the high limit
- FloatParameter limit, lo is the low limit
- FloatParameter ⁇ l ⁇ rmHi is an optional reference to the source of an out Alarm object.
- ⁇ l ⁇ rmHi.hi is the high alarm limit
- ⁇ l ⁇ rmHi.lo is the low alarm limit
- ⁇ l ⁇ rmHLhys is the alarm hysteresis, a FloatParameter.
- ⁇ l ⁇ rm i.del ⁇ y is an optional alarm delay in seconds
- a FloatParameter ⁇ l ⁇ rmH ⁇ noAck is a boolean, alarm requires no acknowledge if true.
- ⁇ l ⁇ rmHiHi is an optional reference to the source of an out Alarm object.
- ⁇ l ⁇ rmHiHi.hi is the high alarm limit, a FloatParameter.
- ⁇ l ⁇ rmHiHi. lo is the low alarm limit, a FloatParameter.
- ⁇ l ⁇ rmHiH ⁇ hys is the alarm hysteresis, a FloatParameter.
- ⁇ l ⁇ rmHiHi. delay is an optional alarm delay in seconds, a FloatParameter alarmHiHi.
- interlock is an optional object used to invoke an override of the current Mode.
- interlock, trigger is a BoolParameter used to invoke INTERLOCK Mode.
- interlockreset is a BoolParameter used to return to normal Mode, provided interlocktrigger is false.
- interlockin is a FloatParameter that sets out in the INTERLOCK Mode.
- device is the String name of an i o device that is the sink of out. point is an integer used to identify an i/o address within the device.
- out is a FloatVariable representing the current output. In the MANUAL mode out can be set fbk is the integral feedback input, a FloatParameter, which is connected by default to outback ifit is connected externally, otherwise to out.forw.. Methods for Developer
- FdFwd is an optional reference to the source of a Feedforward object.
- fdFwd.ff is a reference to the source of a FloatVariable.
- fdFwd.gain is a FloatParameter gain applied to fdFwd.ff.
- supvOut is an optional reference to the source of the supervisory output, a
- FloatVariable. mas is the output manual-auto-supervisory Mode having target, actual, permitted, and last packed boolean bytes whose bits are: 0_S Block is out of service
- INITIALIZE Transition actual mode enables bumpless transfer to target mode MANUAL Operator or set method can set out.
- AUTO Block algorithm sets out.
- SUPER Supervisory task sets setpoint.
- LINKED Permitted attribute indicates target connected to external source. INTERLOCK interlockin sets out when interlocktrigger is true. options is a packed boolean byte with bits assigned as:
- ALM_MAN Alarming is applied to a manual output.
- MAN_START Block returns from out-of-service in MANUAL mode.
- MULT_FF Feedforward is multiplicative, else it is additive.
- limit is a reference to the source of an out Limit object. limit.hi is the high limit, FloatParameter limit.lo is the low limit, FloatParameter alarmHi is an optional reference to the source of an out Alarm object.
- alarmHiHi is an optional reference to the source of an out Alarm object.
- interlock trigger is a BoolParameter used to invoke INTERLOCK Mode.
- interlockreset is a BoolParameter used to return to normal Mode, provided interlocktrigger is false.
- interlockin is a FloatParameter that sets out in the INTERLOCK Mode.
- device is the String name of an i/o device that is the sink of out. point is an integer used to identify an i/o address within the device.
- out is a FloatVariable representing the current output. In the MANUAL mode out can be set Methods for Developer CascFloatOutput (constructor) Arguments: none.
- Alarm is an optional part for all outputs. Its float method is func(x,type,period) where type is true for HH and LL, false for HI and LO. Its boolean method is func(x,period) . Alarm reporting can be delayed if the optional delay parameter is not null or inhibited if inhib is true.
- Attributes hi is the high alarm limit, a FloatParameter. lo is the low alarm limit, a FloatParameter. hys is the alarm hysteresis, a FloatParameter. lim is the boolean alarm state, a BoolParameter. lim is an optional output, true if alarm is active, a BoolParameter. delay is an optional alarm delay in seconds, a FloatParameter. no Ack is a boolean, alarm requires no acknowledge if true. inhib is a boolean, inhibits alarm if true.
- Arguments: b is a boolean signifying a boolean alarm.. Returns: none.
- func Arguments: x is the alarmed BoolVariable. period is the time since the last update in seconds, a double blurAl Returns: none.
- func Arguments: x is the alarmed BoolVariable. period is the time since the last update in seconds, a double blurAl Returns: none.
- nPt is an hit number of (xPt, yPt) break points. Returns: none.
- sig is the internal pre feedforward out. forw..value, a double. mult is true if feedforward is multiplicative. out is true if the feedforward is an output part. Then a multiplicative feedforward is normalized with its high-range value. Returns: the prelimited out forw. value, a double. backFunc
- FTime is the filter time in seconds, a FloatParameter.
- lead is the lead time in seconds, a FloatParameter.
- fType specifies the filter denomiator type, a FloatParameter. 1/2 Butterworth, 1/3 Averaging, 1/4 Two-Lag, 0 One-Lag y is the low-pass filtered output, a double, v is the band-pass filtered output, a double.
- Limit is a part class applied to the setpoint in the CascFloatlnput, and to the out of a CascFloatOutput, and UniDirFloatOutput classes. Its method is x -func(x). The high limit cannot be less than the low limit. Neither limit may be more than 2% beyond the range limits.
- Attributes hi is a reference to a FloatVariable containing the high limit.
- lo is a reference to a FloatVariable containing the low limit.
- spt is the input to the ramp, a double. period is the time since the last update in seconds, a double. Returns: the ramp result, a double.
- UniDirBoolInput is a measurement path input interface part that initializes to its in signal.
- Attributes in is a reference to a BoolVariable source.
- filter is a reference to an optional signal Filter.
- options is a packed boolean byte with:
- I_0 in is provided from device and point device is the String name of an I/O device that is the source of in. point is an integer used to identify an I/O address within the device.
- pv is a BoolVariable output representing the processed in value.
- CascBoolInput is an input interface part that provides initialization and local/remote/supervisory switching.
- Attributes remSP is an optional reference to the source of the remote setpoint
- supvSP is an optional reference to the source of the supervisory setpoint, a
- Irs is the setpoint local/remote/supervisory Mode having target, actual, permitted, and last packed boolean bytes whose bits are: 0_S Block is out of service INITIALIZE Transition actual mode enables bumpless transfer to target mode LOCAL Operator or set method can set sp.
- REMOTE External block sets setpoint.
- SUPER Supervisory task sets setpoint.
- LINKED Permitted attribute indicates target connected to external source.
- sp is a BoolVariable representing the current setpoint.
- filter is a reference to an optional signal BoolFilter.
- options is a packed boolean byte with bits assigned as: pv is a IntVariable output representing the processed in value.
- UniDirBoolOutput is an output interface part that provides auto/manual/supervisory switching. Its methods are called by its container block. startupQ Called when out-of-service, returns true if ready to run. manAutoTargetQ Determines the internal target mode. modeHandle(period) Provides functionality for active mode. Attributes supvOut is an optional reference to the source of the supervisory output, a
- BoolVariable. mas is the output manual-auto-supervisory Mode having target, actual, permitted, and last packed boolean bytes whose bits are: 0_S Block is out of service INITIALIZE Transition actual mode enables bumpless transfer to target mode MANUAL Operator or set method can set out.
- I_0 out is provided to device andpoint.
- alarm is an optional reference to the source of an out Alarm object.
- alarmHi. hi is the high alarm limit
- a FloatParameter. alarmHi. lo is the low alarm limit
- a FloatParameter. alarmHi.hys is the alarm hysteresis
- a FloatParameter. alarmHi. delay is an optional alarm delay in seconds
- a FloatParameter alarmHi.noAck is a boolean, alarm requires no acknowledge if true.
- interlock is an optional object used to invoke an override of the current
- interlocktrigger is a BoolParameter used to invoke INTERLOCK Mode
- interlockreset is a BoolParameter used to return to normal Mode, provided interlocktrigger is false
- interlockin is a FloatParameter that sets out in the INTERLOCK Mode.
- device is the String name of an I/O device that is the sink of out. point is an integer used to identify an I/O address within the device.
- out is a BoolVariable representing the current output. In the MANUAL mode out can be set.
- CascBoolOutput is an output interface part that provides initialization, auto/manual/supervisory switching.
- Attributes outO is a BoolVariable representing the first output. In the MANUAL mode outO can be set. outl is a BoolVariable representing the second output. In the MANUAL mode outl can be set. pointO is an integer used to identify the I/O address of outO. pointl is an integer used to identify the I/O address of outl.
- Attributes from super class supvOut is an optional reference to the source of the supervisory output, a
- mas is the output manual-auto-supervisory Mode having target, actual, permitted, and last packed boolean bytes whose bits are:
- INITIALIZE Transition actual mode enables bumpless transfer to target mode MANUAL Operator or set method can set out.
- AUTO Block algorithm sets out.
- LINKED Permitted attribute indicates target connected to external source.
- INTERLOCK interlockin sets out when interlocktrigger is true.
- alarm is an optional reference to the source of an out Alarm object.
- alarmHi.hi is the high alarm limit
- a FloatParameter. alarmHi. lo is the low alarm limit
- a FloatParameter. alarmHi.hys is the alarm hysteresis
- a FloatParameter. alarmHi.delay is an optional alarm delay in seconds
- a FloatParameter alarmHi.noAck is a boolean, alarm requires no acknowledge if true.
- interlock is an optional object used to invoke an override of the current Mode.
- interlocktrigger is a BoolParameter used to invoke INTERLOCK Mode
- interlockreset is a BoolParameter used to return to normal Mode, provided interlocktrigger is false
- interlockin is a FloatParameter that sets out in the INTERLOCK Mode.
- device is the String name of an I/O device that is the sink of out. point is an integer used to identify an I/O address within the device. out is a BoolVariable. It is assigned to outO, the first output.
- Attributes fTime is the filter time in seconds, a FloatParameter.
- UniDirlntlnput is a measurement path input interface part that initializes to its in signal.
- Attributes in is a reference to a IntVariable source.
- filter is a reference to an optional signal IntFilter.
- options is a packed boolean byte with:
- I_0 in is provided from device and point device is the String name of an I/O device that is the source of in. point is an integer used to identify an I O address within the device.
- pv is a IntVariable output representing the processed in value.
- Casclntlnput is an input interface part that provides initialization and local/remote/supervisory switching.
- startup Called when out-of-service, returns true if ready to run.
- inHandleQ Sets back values and status, processes in.
- locRemTarget ⁇ Determines the internal target mode.
- devHandle (period) Handles setpoint and deviation. initialize ⁇ Provides bumpless mode transitions.
- modeHandle ⁇ Provides functionality for active mode.
- Attributes remSP is an optional reference to the source of the remote setpoint
- supvSP is an optional reference to the source of the supervisory setpoint, a
- Irs is the setpoint local/remote/supervisory Mode having target, actual, permitted, and last packed boolean bytes whose bits are: 0_S Block is out of service
- INITIALIZE Transition actual mode enables bumpless transfer to target mode LOCAL Operator or set method can set sp.
- REMOTE External block sets setpoint.
- SUPER Supervisory task sets setpoint.
- LINKED Permitted attribute indicates target connected to external source.
- sp is a IntVariable representing the current setpoint. In the LOCAL mode sp can be set
- pv is a IntVariable output representing the processed in value.
- UniDirlntOutput is an output interface part that provides auto/manual/supervisory switching.
- mas is the output manual-auto-supervisory Mode having target, actual, permitted, and last packed boolean bytes whose bits are: 0_S Block is out of service
- INITIALIZE Transition actual mode enables bumpless transfer to target mode MANUAL Operator or set method can set out.
- alarmHi.hys is the alarm hysteresis
- a FloatParameter. alarmHi.delay is an optional alarm delay in seconds
- a FloatParameter alarmHi.noAck is a boolean
- interlock is an optional object used to invoke an override of the current Mode.
- interlocktrigger is a BoolParameter used to invoke INTERLOCK Mode
- interlockreset is a BoolParameter used to return to normal Mode, provided interlocktrigger is false
- interlockin is a BoolParameter used to invoke INTERLOCK Mode
- FloatParameter that sets out in the INTERLOCK Mode.
- device is the String name of an I/O device that is the sink of out. point is an integer used to identify an i/o address within the device.
- out is a IntVariable representing the current output. In the MANUAL mode out can be set.
- CascIntOutput is an output interface part that provides initialization and auto/manual/supervisory switching. Its methods are called by its container block. startup ⁇ Called when out-of-service, returns true if ready to run. manAutoTarget() Deteimines the internal target mode. blrCalc ⁇ Set the backword values. initialize ⁇ Provides bumpless mode transitions. modeHandle eriod) Provides functionality for active mode.
- Attributes point is an integer used to identify address of out. Attributes from super class supvOut is an optional reference to the source of the supervisory output, a IntVariable. mas is the output manual-auto-supervisory Mode having target, actual, permitted, and last packed boolean bytes whose bits are: 0_S Block is out of service
- INITIALIZE Transition actual mode enables bumpless transfer to target mode
- MANUAL Operator or set method can s et out.
- AUTO Block algorithm sets out.
- SUPER Supervisory task sets setpoint.
- LINKED Permitted attribute indicates target connected to external source.
- INTERLOCK interlock in sets out -when interlock trigger is true.
- alarm is an optional reference to the source of an out Alarm object.
- alarmDev. hi is the high alarm limit
- a FloatParameter. alarmDev. lo is the low alarm limit
- a FloatParameter. alarmDev. hys is the alarm hysteresis
- a FloatParameter. alarmDev .delay is an optional alarm delay in seconds
- a FloatParameter alarmDev. noAck is a boolean, alarm requires no acknowledge if true.
- interlock is an optional object used to invoke an override of the current Mode.
- interlocktrigger is a BoolParameter used to invoke INTERLOCK
- interlockreset is a BoolParameter used to return to normal Mode, provided interlocktrigger is false
- interlockin is a FloatParameter that sets out in the INTERLOCK Mode.
- device is the String name of an I/O device that is the sink of out. point is an integer used to identify an I/O address within the device.
- out is a IntVariable representing the current output. In the MANUAL mode out can be set.
- Attributes fTime is the filter time in seconds, a FloatParameter.
- PIDParameters is an optional part class containing tuning parameters used in the AdvancedPID class.
- Attributes PGain is the nondimensional prpoortional gain
- a FloatParameter. integral is the integral time in seconds
- a FloatParameter. derivative is the derivative time in seconds
- a FloatParameter. relGain is the nondimensional relative gain on setpoint
- dtime is the optional deadtime in seconds
- a FloatParameter fTime is the measurement filter time in seconds
- bypass is an optional BoolParameter, if true the controller is bypassed.
- zone is an optional object from the Zone class, used to position a region of low gain where the control error is small.
- sampleReady is a BoolParameter indicating that a new measurement value is available.
- IFS_IF_BAD_RSP initiates failsafe if remoteSP is BLIND
- IFS_IF_BAD_IN initiates failsafe if in is BLIND . INCOPT increasing in causes out to increase.
- numBuckets is the number of buckets, an int.. Instantiates dt.
- FloatParameter. lo is the lower control error breakpoint in percent of in span, a FloatParameter.
- FailSafe is a part class used by AnalogOutput and Logic classes. Attributes fsTime fsTimeis a FloatParameter wait time in seconds before failsafe is activated. var var is the FloatParameter that sets the valve target when failsafe is active, bool is the value of a BoolParameter that sets out when failsafe is active. Methods for Developer Failsafe (constructor) Arguments: none.
- Beta func(y,true) Attributes beta is the pressure drop ratio, a FloatParameter. turndown is (max flow area)/(min flow area) for an equql-percentage valve, an optional FloatParameter.
- charac is an optional object of the Characterizer class providing normalized stroke vs. normalized area in the forward direction.
- InfoBuffer is a part class used by the InfoCollect class. Its method func implements double buffering with a bucket-brigade delay line for each parameter stored. The number of buckets (time steps) is specified as a constructor argument. Attributes xTime[buf][step] is an array of time stamp in milliseconds since Jan
- xFloat [bufj [step] [nFP] is an optional array of FloatParameter value floats.
- xFStatus/buj] [stepj fnFPJ is an optional array of FloatParameter status bytes.
- xBool [bufj [step] [nBP] is an optional array of BoolParameter values.
- xB Status [bufj [step] [nBP] is an optional array of BoolParameter status bytes.
- xMode[buf] [stepj [nM] is an optional array of Mode actual bytes.
- xAlarm [bufj [step] [nAl] is an optional array of AlarmSum shorts.
- NumSteps is the length of the buffer, an int. Returns: none.
- x is an array of FloatParameters.
- nP is the number of FloatParameters NumSteps is the length of the buffer, an int. Returns: none.
- Arguments: x is an array of BoolParameters. nP is the number of BoolParameters NumSteps is the length of the buffer, an int. Returns: none. /7j/ 5wt7er(constractor) Arguments: x is an array of Modes. nP is the number of Modes. NumSteps is the length of the buffer, an int. Returns: none. InfoBuffer(constructor) Arguments: x is an array of bytes. nP is the number of bytes NumSteps is the length of the buffer, an int. Returns: none. func Arguments : buf is number of the buffer, an int. step is the position in the buffer, an int.
- x is the time stamp, a long. Returns: none. func Arguments: buf is number of the buffer, an int. step is the position in the buffer, an int. x is an array of FloatParameters. Returns: none. func Arguments : buf is number of the buffer, an int. step is the position in the buffer, an int. x is an array of BoolParameters. Returns: none. func Arguments: buf is number of the buffer, an int. step is the position in the buffer, an int. x is an array of Modes. Returns: none. func Arguments: buf is number of the buffer, an int. step is the position in the buffer, an int. x is an array of Modes. Returns: none. func Arguments: buf is number of the buffer, an int. step is the position in the buffer, an int. x is an array of Modes. Returns: none. func Arguments: buf is number of the buffer
- buf is number of the buffer
- an int. step is the position in the buffer
- an int. x is an array of shorts. Returns: none.
- TimeCount is a part class that performs a timer function.
- Method func returns true when time reaches pre-specified time value.
- Attributes tTime is the time in seconds, a FloatParameter.
- timeElapsed is the time elapsed since timer starts, a double.
- statusFlag indicates whether timer is running or stopped.
- Interlock is an optional part class used to invoke an override of the current out
- interlocktrigger is a BoolParameter used to invoke INTERLOCK Mode.
- interlockreset is a BoolParameter used to return to normal Mode.
- interlockin is a FloatParameter or BoolParameter that sets out in the
- Parts are optional or mandatory parts of blocks, providing optional functionality or functionality shared by many blocks.
- each block has one or more input parts, a body, and one or more output parts.
- Exceptions are InfoCollect, Event, and IOInterface blocks.
- input (-Input) and output (-Output) parts may be of the unidirectional (UniDir-) or cascade (Case-) types and may be for float (-Float-), boolean (-Bool-), or short (16 bit) integer (-Int-) value data types.
- Unidirectional inputs and outputs are used in blocks, such as Analoglnput and ProcessSim, located in a measurement signal path. Dynamic elements in these blocks are initialized to steady-state corresponding to the current in value.
- a unidirectional or cascade output part provides manual, auto, supervisory mode switching to select the source of the out variable.
- the auto signal Before the mode switch the auto signal may be modified by an additive or multiplicative feedforward (unidirectional) source.
- the output is limited (optional in manual) and may be alarmed (optional in manual).
- the out limits are each bidirectional variables that can be connected from a bidirectional out variable of another AdvancedPID block to implement a constraint or override.
- Each output part has an interlock input that when triggered overrides the out variable from other sources.
- a cascade input part provides local/remote/supervisory mode switching to select the setpoint sp (bidirectional) source.
- the local setpoint may be ramped, the setpoint limited and modified by an additive or multiplicative feedforward (unidirectional) source.
- the cascade part has an in (unidirectional measurement) signal, both it and the signal in the setpoint path may be linearized with matched functions before being passed to the block body. Then the signal in the measurement path is filtered (quadratic
- the cascade input part has two unidirectional output variables, pv and deviation.
- pv When the block has an in, as in an AdvancedPID block, it is passed to th pv.
- pv is back calculated from a signal passed from the body. In either case deviation, which may be alarmed, is the difference between pv and sp.
- Signals package This section describes the signal classes, which are contained in the Signals package.
- Objects from Signals classes contain the information communicated between linked blocks or inserted into blocks as constants. These classes also provide methods to be used by users and tasks for setting and getting values and for linlcing and unlinldng parameters and variables.
- the Signals package also contains an interface class for shared constants.
- Constants is an interface containing state, status, mode, and option assignments shared by all blocks and their parts. Attributes
- Manual, auto, supervisory (mas) output modes are: 0_S Block is out of service. INITIALIZE Transition actual mode enables bumpless transfer to target mode. MANUAL Operator or set method can set output. AUTO Block algorithm sets output. SUPER Supervisory task sets output.
- INTERLOCK Interlock sets output, actual mode is enabled by trigger, disabled by reset.
- Local, remote, supervisory (Irs) setpoint modes are: 0_S Block is out of service INITIALIZE Transition actual mode enables bumpless transfer to target mode LOCAL Operator or set method can set setpoint.
- REMOTE External block sets setpoint.
- SUPER Supervisory task sets setpoint.
- LINKED Permitted attribute indicates mode target connected to external source. Signal quality status has the following (SEVA) ranked values: CLEAR Signal is valid, on-line, and within spec.
- CLOSE_CAS status is used to close cascade connection.
- INIT status is used to open cascade connection.
- BLURRED Signal is degraded, uncertainty is increased.
- DAZZLED Signal is temporarily invalid, replaced by an estimate.
- BLIND Signal is permanently invalid, replaced by an estimate.
- FAILSAFEst ⁇ to indicates valve is forced to failsafe position.
- OFFLINE Source is out of service.
- LIMJLO Signal is at its low limit.
- LIM_HI Signal is at its high limit.
- CASCADE Signal is cascade connected.
- UNSETABLE Signal can not be set. It is linked and not MANUAL or LOCAL LINKED Signal is already linked, it cannot be connected to two sources.
- LINK_NOSET Signal can not be set or linked.
- NON_NEG Signal is prevented from having a negative value.
- NOTJVIEDIAN Signal is determined not to be the median signal.
- Input part options include:
- SP_PV_TRK_MAN Setpoint tracks PV when output is manually set.
- SP_DN_UNCER Setpoint is decreased by the uncertainty.
- SP_UP_UNCER Setpoint is increased by the uncertainty.
- MULT_FF Feedforward is multiplicative, else it is additive. I_0 in is provided from device and point
- Output part options include: LIM_MAN Limits are applied to MANUAL output.
- ALM_MAN Alarming is applied to a MANUAL output.
- MANJSTART Block returns from out-of-service in MANUAL mode.
- MULTJFF Feedforward is multiplicative, else it is additive.
- Feedback tuner states are; PRETUNE Pretune is active. Controller must be in MANUAL.
- OFF Tuner is off or not connected.
- HOLD Selftune is suspended but stored tuning sets are used. QUIET The loop is undisturbed, no error-peak search is in progress.
- LOCATE_l Error peak 1 is sought.
- LOCATE_2 Error peak 2 is sought.
- LOCATE_3 Error peak 3 is sought.
- LOCATE_4 Error peak 4 is sought.
- WAIT Tuning update is waiting for an output peak search to complete.
- SETTLE Selftune is testing for error settling before returning to QUIET.
- the feedforward tuner states are: OFF Tuner is off or not connected.
- HOLD Feedforward tuning is suspended and stored tuning sets are used. QUIET The loop is undisturbed, no moment integration is in progress.
- UNMEAS An error upset is detected before a load upset.
- MEAS A load upset is detected while QUIET.
- the error is tested for settling before returning to QUIET.
- the alarmSum states are: LL_ACT Low-low alarm is active.
- HI_ACT High-high alarm is active.
- HH_ACT High alarm is active.
- B_ACT Boolean alarm is active.
- BLK.ACT Block ala ⁇ n is active.
- LL_UNACK Low-low alarm is unacknowledged.
- LOJUNACK Low alarm is unacknowledged.
- HI_UNACK High-high alarm is unacknowledged.
- the cascade input parts use the Mode class for local-remote-supervisory (Irs) switching.
- the output parts use the Mode class for manual-auto-supervisory (mas) switching.
- the Mode class has four byte attributes whose bit assignments are assigned by the Constants interface: target requested mode; one bit is set, default 0_S bit set. actual currently active mode; one bit is set, default 0_S bit set. permitted allowed modes; several bits may be set, default all bits are set. last the last mode both requested and active; one bit is set, default 0_S bit set. Methods getMode
- Source and sink are linked. Returns: source reference Else: Returns: unchanged sink reference unlink Called from source
- Parameter is an abstract class providing features common to FloatParameter, BoolParameter, and IntParameter.
- Attributes status SEVA ranked signal quality status, enumerated byte.
- limStatus Limit indication and link and set permissions packed boolean byte.
- source source is a String name. time timestamp, a long integer msec, since 1970
- a block's or part's continuous tuning parameters are instances of the FloatParameter class.
- the FloatParameter contains floating-point value and two status bytes.
- the value of an unlinked parameter may be set with the setValue method.
- a source for a linked parameter may be the forw or back part source block's out variable. It is linked (connected) by its UnkTo method with a reference for the sink block's parameter. Attributes value floating point signal value. Attributes from super class status (SEVA ranlced) signal quality status, enumerated byte. limStatus Limit indication and link and set permissions, packed boolean byte. source source is a String name. time timestamp, a long integer msec, since 1970 Methods
- Source and sink are linked.
- the source name is assigned
- the FloatRange class contains the high and low range limits and their units.
- a range object is contained in a FloatVariable. Range information is entered at the signal source and propagated downstream with a unidirectional connection and upstream with a bidirectional (cascade) connection. Attributes hi high range limit in engineering units, float, default is 100. lo low range limit in engineering units, float, default 0. units engineering units, String, default %. delta is a communication threshold, a float value in engineering units, default 0.
- Variable, and Int Variable Attributes alarmSum active and unacknowledged alarms, packed Boolean short.
- source source is a String name.
- a block output or input signal is an instance of the FloatVariable class. It inherits from Variable and is usually contained in the source block's output part and linked
- a cascade connection such as primary- out to secondary- remoteSP, is bidirectional.
- a FoatParameter (forw) is set by the primary.
- Another FoatParameter (back) is set by the.secondary. Both parameters and other entities are contained in the FloatVariable class.
- a connection from an Analoglnput's out to an AdvancedPID's in is uni-directional. It's FloatVariable has a forw parameter but no back parameter. The FloatVariable also conveys uncertainty, range, and maintenance information, backwards for a cascade connection and forwards for a uni-directional connection. Alarm summary information is conveyed forwards.
- a block's or part's binary parameters are instances of the BoolParameter class. It inherits from the Parameter class.
- the BoolParameter contains boolean value and two status bytes.
- the value of an unlinked parameter may be set with the setValue method.
- a source for a linlced parameter may be the ⁇ tbrw or back part source block's out variable. It is linlced (connected) by its UnkTo method with a reference for the sink block's parameter.
- Attributes value boolean signal value Attributes from super class status (SEVA ranked) signal quality status, enumerated byte. limStatus limit indication and link and set permissions, packed Boolean byte.
- source source is a String name. time timestamp, a long integer msec, since 1970
- Source and sink are linlced.
- a block's binary output or input signal is an instance of the BoolVariable class. It inherits from Variable and is usually contained in the source block's output part and linked (connected) by its UnkTo method with a reference for the sink block's variable.
- a cascade connection such as primary- out to secondary- remoteSP, is bidirectional.
- a BoolParameter (forw) is set by the primary.
- Another BoolParameter (back) is set by the secondary. Both parameters and other entities are contained in the BoolVariable class.
- the BoolVariable also conveys the maintenance information, backwards for a cascade connection and forwards for a uni-directional connection. Alarm summary information is conveyed forwards.
- a block's or part's integer parameters are instances of the IntParameter class. It inherits from the Parameter class.
- the IntParameter contains integer value and two status bytes.
- the value of an unlinked parameter may be set with the setValue method.
- a source for a linked parameter may be the forw or back part source block's out variable. It is linked (connected) by its linkTo method with a reference for the sink block's parameter.
- source source is a String name. time timestamp, a long integer msec, since 1970 Methods linkTo Called from source Arguments: sink reference, source name.
- Source and sink are linlced.
- the IntRange class contains the high and low range limits.
- a range object is contained in an IntVariable. Range information is entered at the signal source and propagated downstream with a unidirectional connection and upstream with a bidirectional (cascade) connection. Attributes hi high range limit in integer, default is 1. lo low range limit in integer, default is 0.
- a block's integer output or input signal is an instance of the IntVariable class. It inherits from Variable and is usually contained in the source block's output part and linked (connected) by its linkTo method with a reference for the sink block's variable.
- a cascade connection such as primary- out to secondary- remoteSP, is bidirectional.
- An IntParameter (forw) is set by the primary.
- Another IntParameter (back) is set by the secondary. Both parameters and other entities are contained in the IntVariable class.
- the IntVariable also conveys range, and maintenance information, backwards for a cascade connection and forwards for a uni-directional connection. Alarm summary information is conveyed forwards.
- the source name is assigned. Returns :forw source reference
- Source and sink are unlinked Returns: instantiates new sink object.
- Interblock connections are performed with Variable and Parameter objects contained in the upstream block and linlced by reference to the downsfream block.
- the upstream block and downstream block are in different stations, it is necessary to have a periodically updated proxy Variable or Parameter in the station with the downstream block.
- Fixed constants shared by potentially all blocks and parts are made available in the Constants interface implemented or inherited by all PCOs. All PCOs also inherit or implement the Serializable interface. Composites and blocks also inherit or implement the Runnable interface.
- Output signals are objects of a float, boolean, or int Variable class contained in the upstream block.
- An input Variable of one block may be linlced by reference to an output Variable contained in another block in the same station.
- the output variable When the output variable is contained in a block from a different station it is necessary to store a periodically updated copy of the output Variable in the same station as the downstream block so that the input may be linlced by reference to the copy (proxy).
- a bidirectional Variable involved in a cascade connection requires that certain of its Parameters and attributes (forw and alarmSum) be communicated in the downsfream direction, while others (back and range) are communicated in the upstream direction.
- Parameters of one block may be linlced by reference to a Parameter component of an output Variable in another block. Similarly an updated proxy Parameter is required in the downstream block's station if the upstream block is in a different station.
- the code declares alias names for parameters internal to the TempCasc PCO object itself.
- Line 13 begins the configuration method, which is provided here merely as an example of how a previously-instantiated PCO (e.g., the TempCasc PCO) can be customized for use in a particular confrol system.
- a previously-instantiated PCO e.g., the TempCasc PCO
- configuration can be performed other than via "hard coding” as shown in lines 13, et seq. Typically, such configuration is performed via a graphical user interface.
- the previously instantiated user block object (s21) is added to the run list. No additional configuration is shown here with respect thereto.
- the cascade composite object (tc21) is configured and its input variables connected, by reference, to the outputs of other objects utilized in the system 10. Particularly, in lines 19 - 20, the analog input of the primary control loop in temperature cascade object tc21 is connected to the temperature measurement output of the simulated process object (pr21). In lines 21 - 22, a bidirectional connection is established between the PID supervisory setpoint of the composite object tc21 and the output of the supervisory block s21. In lines 23 - 24, a unidirectional connection is established between the flow measurement output of the simulated process object pr21 and the analog input of the secondary control loop in the temperature cascade object tc21.
- step 25 the configuration method of the temperature cascade control object tc21 is invoiced. This effects initialization of the parameters and connections for that object tc21.
- step 26 - 27 an optional alarm part of object tc21's primary loop analog input is instantiated. The default alarm limits are set in accord with the output range of the analog input.
- steps 28 - 29 the high and low alarm limits are set to 75 and 30, respectively.
- step 30 the input mode of the object tc21's primary PID is set to "supervisory," indicating that it will take its setpoint from supervisory object s21.
- supervisory setpoint could be set by other external sources.
- steps 31 - 32 the tuning settings previously defined in user block s21 are inserted into the primary and secondary loops of the PID controllers of the composite tc21.
- step 33 the block period of the analog input block of the secondary loop is set.
- step 34 the composite tc21 is added to the run list.
- steps 37 - 40 the secondary analog output of the simulated process block tc21 is connected to the flow process input of composite pr21, the latter's configure method is called and it is added to the run list.
- steps 43 - 47 inputs for the information collection block are connected to outputs of blocks and composites of interest, and the former is added to the run list.
- the run method of the temperature cascade control loop begins at line 54. This method is called by the confrol system 10 scheduler each BPC based on the loop's inclusion in the run list.
- the run method of the cascade control loop invokes the run methods of its respective composites and blocks, specifically, those enumerated the run list. Though not shown here, the composites have their own run lists, the blocks on which are called as each composite is called. In the illustrated embodiment, a loop beginning at step 62 limits the foregoing to n cycles, merely for purposes of testing and illustration.
- 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.
- 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.
- digital data processing or other automated apparatus monitor a device, process or system and automatically adjust its operational parameters.
- 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
- 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 control 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.
- 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 maybe via Ethernet networks or other Internet Protocol (IP) networks.
- IP Internet Protocol
- 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.
- 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.
- JDC Distributed Control
- 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.
- 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.
- 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.
- PID proportional integral derivative
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- an identifier e.g., attained from a letterbug, assigned by a hub, or otherwise
- 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.
- 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.
- control devices such as servers, control stations, operator consoles, personal computers, handheld computers, and the like, having attributes as described above.
- control devices can have other attributes, according to further aspects of the invention.
- 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.
- FIG. 1 depicts a process control system 10 according to one practice of the invention
- FIGS. 2 and 3 depict more particular embodiments of a control system of the type shown in Figure 1;
- Figure 4 depicts a native intelligent field device according to the invention
- Figure 5 depicts a native control device according to the invention.
- Figure 6 depicts a native intelligent positioner implementation according to the invention.
- Figure 1 depicts a process control system 10 according to the invention.
- the system includes networked control devices that monitor and control a hypothetical mixing process 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 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 controlHng inlets and outlets 24 - 28 and 34. A further actuator is shown controlling paddle 30.
- actuators such as the valves depicted as controlHng inlets and outlets 24 - 28 and 34.
- a further actuator is shown controlling paddle 30.
- 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.
- 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.
- 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.
- 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.
- 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, personal computers, special-purpose hardware or other digital data processing
- 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 a variety of devices 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 workstation 40, laptop computer 42 and handheld computer 44. These devices can provide configuration and control functions directly, as in the case of workstation 40, or in cooperation with server devices, e.g., as in the case of handheld computer 44 and server 46. Apparatus 40 - 44 can couple with the control network directly, e.g., via bus or network connection, or indirectly, e.g., via satellite, wireless connection or modem connection.
- the control devices 36 - 46, CTL and INT are coupled for communications via a medium that permits at least selected ones of the devices to communicate with one another.
- 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 geosynchronous satellites networks.
- Figure 2 depicts a more particular embodiment of a control system 50 of the type shown in Figure 1.
- the system includes an enterprise server 52, a first thin client 54, plant server 56, a second thin client 58, a controller 60, a Java-enabled field device 62, and one or more field devices 64, coupled to one another, e.g., in the manner illustrated, by one or more networks 66, 68.
- Native enterprise server 52 (corresponding, byway of non-limiting example, to server 46) comprises a mainframe computer or engineering workstation that executes enterprise-level applications such as, by non-limiting example, those for financial, asset planning and procurement, distribution and/or human resources. In addition, it supports web serving, as well as optional object, relational and other database management systems. Server 52 executes Windows NT, Solaris or another conventional commercial or proprietary operating system. It is also equipped with a Java Virtual Machine (JVM), e.g., capable of executing Java virtual machine instructions (bytecodes), of performing remote method invocation (RMI), and of supporting Jini networking.
- JVM Java Virtual Machine
- the enterprise server 12 can be coupled to further networks, e.g., to the Internet, as shown, in any manner known in the art.
- Native thin client 54 (corresponding, for example, to handheld computer 44) provides similar functionality as server 52, though its actual processing activity is limited to user input and output.
- Application processing such as financial, asset planning and procurement, distribution and/or human resources, are performed on behalf of client 54 by a server, such as server 52.
- the operating system and JVM functions may be embedded in the conventional manner of a thin client.
- the thin client 54 is coupled to the enterprise server 52 over a business information network 66 (corresponding, for example, to network 48), typically, an Ethernet or other IP network, configured in a LAN, WAN or the like.
- Native plant server 56 (corresponding, by way of non-limiting example to workstation 40) comprises a plant control console or engineering workstation modified in accord with the teachings hereof, executing plant-level control applications including system, process, engineering, plant information, configuration, lab quality, maintenance, resource and documentation applications of the type known in the art .
- plant server 56 can execute Windows NT, Solaris or other conventional operating systems. It is also preferably equipped to execute a Java Virtual Machine as described above.
- Plant server 56 is coupled to the enterprise server 52 and thin client 54 over the business information network 66.
- Native thin client 58 provides similar functionality as server 56 though, again, relies on that (or another) server to perform most processing activity. As above, the operating system and JVM functions may be embedded in the conventional manner of a thin client.
- the thin client 58 is
- control network 68 (corresponding, for example, to network 48), e.g., an Ethernet.
- Native controller 60 executes control algorithms to control associated non-native field devices 64, e.g., via any variety of commercial and/or proprietary field bus 70 hardware and protocols. Where processing resources are hmited, the controller 60 utilizes a embedded operating system that supports web serving and the JVM. The controller 60 is coupled to the plant sever 66 and to the thin client 58 via control network 68.
- Native field device 62 is a sensor, actuator or other field device.
- the illustrated device is of the intelligent variety, including processor (not shown) and operating system. It can be of the type commercially available in the marketplace, as modified in accord with the teachings hereof.
- the illustrated device supports web serving and JVM, as described above.
- the device 62 provides information collection and control functions, as illustrated.
- FIG 3 depicts another a more particular embodiment of a control system 50 of the type shown in Figure 1.
- control system 10, 50 uses web browsers, Java, Jini, JavaSpaces, TCP/IP and other technologies normally associated with the Internet and the world wide web to create a self-defining control network that minimizes complexity while emphasizing the portability and re-usability of the user's application.
- These technologies are advantageously employed to eliminate proprietary hardware and software to preserve the user's investments; eliminate network configuration and system management through self-configuring networks; increase the user's choice of algorithm suppliers by implementing control in Java; preserve the user's applications through hardware and system software changes through the use of Java and Web Browsers for process displays; minimize the wiring costs; reduce maintenance by making intelligent field devices a practical reality.
- control system 10 uses an object location service, a commercial messaging service, and standard networking equipment, such as hubs, routers,
- the system 10 supports a heterogeneous computing environment and utilizes industry standards (e.g., Microsoft standards) to provide communications between the native control components to the business and desktop environments.
- industry standards e.g., Microsoft standards
- native control devices such as controllers 36, 60, workstation 40, servers 46, 52, 56 providing a platform for the control system typically include a central processing unit (CPU), memory (RAM), network support hardware, access to permanent storage, an operating system, and a Java Virtual Machine (JVM) including the TCP/IP suite.
- the devices include web server software, e.g., software of the type that serves graphical "web" pages in response to requests by other devices.
- Configurator software can be provided, as well, permitting each device to configure the control system or selected portions of it.
- 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.
- PCO Process control object
- SMO station management object
- 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.
- 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 momtored via a lightweight web browser, e.g., handheld computer 44, coupled to the device over the network 48.
- 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 48. Combined with appropriate software, these devices provide the user with a single transmitter suitable for use on any field network.
- the control system 10 can include one or more stoic sensors, not illustrated, that constitute minimal sensing elements. Typically, these are simply silicon chips that are packaged to allow them to sense the process environment and that have only enough electronics to relay measurements to a pair of wires that carry the raw signal to another device for processing. Some stoic sensors generate a signal without external power; others require some excitation.
- native devices 36 -46, CTL and INT according to the invention support the attachment of many stoic sensors.
- Some I/O devices may not use a transmitter compatible with the network 48 but, rather, send raw sensor output to a multiplexor for processing.
- the system 10 includes two types of intelligent I/O cards: network I/O cards supporting IP and an API, and native I/O cards that support the protocol of network 48 (i.e., the "native" protocol) directly.
- Network I/O cards are coupled directly to network 48.
- Native control devices are IP enabled and support the proprietary API of the cards, thereby, permitting reading and writing of their I/O registers.
- the cards' respective APIs support retrieval of data in several formats (raw counts, linearized counts, engineering units, etc.), as well as the assignment of simple configuration information to those registers, if the device supports such functions.
- the native devices utilize I/O classes that corresponding to the native I/O protocols. Redundant I/O devices can be physically interfaced transparently through a single I/O card or through multiple independent network I/O cards. Logically, PCOs support at least the use of multiple independent cards. Alternative I/O features may be used in addition.
- Native I/O cards are substantially similar to native-enabled transmitters, except for packaging and scale. These I/O cards may be considered as small multi-loop controllers or multiplexors.
- I/O cards are utilized with devices that cannot otherwise directly interface with the network 48.
- the cards provide an interface that permits at least reading and writing of relevant device values, which can be stored internally to the card and accessed via its API.
- Foreign devices that are control systems in its own right typically maintain objects or other data structures representing process values and associated data.
- a preferred interface to these "devices" are through objects that wrap the foreign function blocks with the services expected of native devices, , e.g., detail displays and configurators, which are accessed in exactly the same manner as native ones of those same services. For example, a name service is be able to locate foreign blocks and the native API of system 10 permits querying those blocks for values.
- all native devices maybe used as controllers, though, dedicated I/O- less native controllers, such as controllers 36 and 60, are typically required for unit-wide operations.
- control can also be provided by personal computers, workstations and servers of the type shown as elements 40, 42, 46, in Figure 1.
- Native controllers, e.g., 36, 60 are of the same general design as native boards used in the transmitters and actuators. However, they support a faster CPU clock cycle and more memory (volatile and non-volatile) than their smaller siblings. High performance native controllers have a still more powerful CPU, more RAM, and maybe a removable FlashRAM card for bulk storage and backup.
- these native controllers can receive power from a powered Ethernet connection or otherwise.
- Native controllers can be used in redundant and non-redundant configurations. Since the I/O is independent of the native controller, redundancy can be implemented in a number of manners, e.g., hardware fault-tolerance or transaction based synchronization between stations with clustering.
- Native workstations can be constitute web browser-enabled devices that communicate with web servers, such as element 46, that actually collect the process data from other native devices.
- the workstations can consist of a flat panel display, OS and web browser in ROM (or on a memory card), web page (process graphic) database/cache, connections for optional annunciator keyboards, option for wireless Ethernet, and, optional, battery operation. Data supporting the operator interface comes from native devices directly.
- a native web server such as servers 46, 52, 56 sources the operator displays. This can be implemented with redundancy using technologies NT's clustering capabilities, or the like. Additionally, a native web server provides access to a illustrated control system 10 to users not physically attached to the illustrated control system 10, e.g., as illustrated with respect to elements 44 and 46 of Figure 1. In this mode, it centralizes data requests to maximize efficient use of communication resources.
- the illustrated control system 10 includes native enablers 49, such as Jini and JavaSpaces devices and Solid-State DHCP servers. These enablers, which are optionally redundant, are preferably fully solid state with persistent memories. They do not use batteries for their persistent memory, though they may well plug into a wall outlet for power in non-industrial environments.
- the Jini and JavaSpaces serve as community "bulletin boards.” These are used to notify system monitors that native devices have been added to or removed from the system. The system monitors respond to such notices by triggering appropriate actions.
- the illustrated control system 10 assumes that each native device is able to acquire an IP address when it comes on-line.
- a DHCP server illustrated for example by element 49, is required to furnish these addresses.
- it is preferably a solid-state device and, optionally, includes a redundant partner DHCP Server.
- a particular native DHCP server provides addresses for a portion of the network 48. It obtains its configuration by notifying the system 10 that it has come on line.
- IP addresses can be selected by mechanisms other than DHCP servers.
- An internetwork server 47 is used to link separate control systems networks 48. It provides a platform for inter-network communications, controlled access to data, name conflict resolution, and other services need to efficiently, securely, and transparently accomplish the connection of one or more illustrated control systems to another.
- 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
- the system 10 can access a download site, e.g., an Internet e-commerce site, and determines if updates are available. If so, it notifies the user and invites him/her to request downloading of the upgrade.
- a download site e.g., an Internet e-commerce site
- Such an e-commerce or other web site can also provide configuration tools that allow the user to design, implement, and test a new PCO block. This allows the user to access complex and/or rapidly improving software tools without having to maintain them locally. For this purpose, the use is charged, e.g., a modest access fee.
- the system 10 includes a native security system to control access to managed objects based on the type of access, e.g., (i) extra-network, i.e., users who are accessing the illustrated control system 10 from a non-native station; (ii) inter-network, i.e., users who are operating from a native workstation on a different physical native network; and (iii) intra-network, i.e., users who are operating from a native workstation within the particular native network.
- extra-network i.e., users who are accessing the illustrated control system 10 from a non-native station
- inter-network i.e., users who are operating from a native workstation on a different physical native network
- intra-network i.e., users who are operating from a native workstation within the particular native network.
- Secured extra-system access is provided through a native secure web server, e.g., server 46, that permits dial-up, network, and other remote access and that supplies and defines the permitted extra-network access, including the API available to applications hosted outside the network or on the server. See, for example, elements 44 and 46 of Figure 1. Access is controlled by user name, by user location (IP address or workstation name depending on the network), and by the type of the targeted object.
- server 46 e.g., server 46
- Inter-system access is provided by a gateway device, such as server 47, that permits the secure transfer of data.
- This device negotiates secure access, deals with name conflicts between systems, and provides support for various physical media A pair of such devices are provided to account for situations where the source is local to the sink.
- the server 47 or other gateway encrypts the data so that others cannot read it. Likewise, it authenticates message sources to verify that they are coming from a matching device.
- a preferred gateway device such as server 47
- Secured infra-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 appUcations 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.
- the illustrated control system 10 supports the on-line upgrade of all application software from remote and local workstations.
- Application software for purposes of this discussion, includes the
- the illustrated control system 10 provides modules that support direct connections to a native support center via dialup analog phone lines, and dialup high speed fines, e.g., ISDN and ADSL. Native maintenance, including software updates, operate over these connections; hence, it is not necessary for a person to be physically present to update system or application software.
- 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 coordinates configuration in the illustrated control system 10, e.g., except for devices (such as certain transmitters and positioners) where use of an ADE is not advantageous and for which internal configuration is preferred.
- Characteristics of the ADE are its use in configuring/building control applications including control schemes, displays, historians, etc.; support of multiple simultaneous users; support of remote, concurrent development; support of change tracking and change management including task based activity traces, summary reports, change annotation, approval cycles, and user identification; a human interface component that runs in any web browser coupled to the system; a server component that runs on any user-supplied system; permanent storage comprising a commercial database for which a JDBC implementation is available; allowing the definition of configuration object templates; allowing the instantiation of configuration object templates into configuration objects; allowing the user to add and remove editors for configuration object components in real-time; limiting the user's access to configuration capabilities in the various pieces of equipment; and supporting application distribution along with verification of download permissions.
- 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 appUcations. 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.
- 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-cUent configuration mechanism.
- device configuration there are two cases: a device used in illustrated control system 10 and a device used outside illustrated control system 10.
- the configurator is placed in the device so that it can be configured even without the native ADE.
- This on-board configurator allows the device to be configured for use with Profibus, Foundation Fieldbus, on 4-20ma wires, and other industry-standard or proprietary networks.
- a copy of the configurator is available from a native web server for off-line configuration and download, and (ii) the on-board configurator is disabled to prevent changes in the configuration except through the ADE.
- 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 multiUngual, i.e., it supports the presentation of information in a default language and one or more secondary languages simultaneously.
- AU standard native applications support text substitution based on the currently selected language. Error messages are likewise in the currently selected language.
- 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.
- PCO blocks are, from the user's point of view, similar to conventional function blocks.
- 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
- the creation of composites includes the raising of internal (deeply buried) names to the top level of the composite PCO.
- 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.
- 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 iUustrated 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.
- the communications system addresses the particular needs of process data transfer.
- the iUustrated control system 10 supports time synchronization to the nullisecond in each station on the network 46. Where equipment configuration renders this impossible, time synchronization to 50 ms is provided.
- the iUustrated control system 10 provides a faciUty that centralizes viewing, recording, organizing, and categorizing the messages generated by the system monitor, the operator action journals, the PCOs, and other systems that record textual information. This application is the
- the message management facility is not in and of itself an alarm historian. Rather, it reUes on a native historian to provide the long-term storage of this information.
- 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 10.
- PIMS plant information management system
- the historian is capable of exporting its data to user- selected databases.
- 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.
- Interoperablity 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 utUizing a native API for Microsoft- and Solaris-based applications.
- 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.
- a native device After a native device has its name, it acquires its IP address from its environment.
- the illustrated embodiment uses DHCP for this purpose.
- the DHCP server is a native device, such as enabler 49, though other DHCP servers can be used, as well.
- each bulletin board is covers a given "territory" or region of the network.
- Actions taken during start-up e.g., taking PID algorithms out of hold, are configurable.
- 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 buUetin 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 aUows the user to access and operate any embedded diagnostic displays and operations.
- the device obtains an IP address from a DHCP server 49 on the network 48.
- the device waits for a configuration. 5) The device is now ready for configuration.
- the device obtains an IP address from a DHCP server on the network. 3) The device registers with the bulletin board.
- 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 foUowed.
- the engineer starts a web browser on workstation 40, handheld computer 44 (wireless or otherwise), a PC, a native workstation, etc. 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.
- the engineer selects the ADE and a native device of interest.
- the native configurator (ADE) is used to make the changes.
- the web browser is pointed at the web server that hosts the ADE. This approach eliminates conflicts between field change and database changes.
- the configuration of non-native devices is provided by a service that encapsulates the native commands and passes them through a native device to the actual foreign device.
- 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.
- 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 intelUgent transmitters. 5 Native Software Subsystems 5.1 Security
- the proposed security mechanism is a lock and key.
- the attributes of an obj ect 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.
- 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 aUowed 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 aUows 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 infra-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.
- the illustrated control system 10 supports at least 256 individual locks. This allows the application engineer to define 255 groups of objects for each type of object being accessed.
- 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.
- a configuration object 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 Ust 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.
- the ADE preferably includes a system editor, a control editor, a graphic editor, a message manager editor, a historian editor.
- AU 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 aU objects require assignment, but the editors are responsible for it.
- 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.
- DHCP/Bullet These devices allocate IP Name and association with a Web in Board addresses to stations and act as Server
- DHCP/bulletin board Server (which may be a Web Server)
- ⁇ 29 - may be a Web Server
- Native Web This devices host Native Name
- 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.
- 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 DHCPbulletin board device to which it is assigned. Ifit 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.
- 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 offline 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 aUowing the use of the device on non-native networks.
- device specific configurators are provide in ADE add-in and on-board, preferably, with the same code would be available and used for both.
- the configuration of this device includes user name(s) allowed; read only operation; full fledged operator; and so forth.
- 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.
- 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.
- the Graphic Editor support all of the human interface (HI) functionality and graphics typical of this type of editor.
- HI human interface
Abstract
Description
Claims
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU66156/00A AU6615600A (en) | 1999-07-29 | 2000-07-28 | Methods and apparatus for object-based process control |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14640699P | 1999-07-29 | 1999-07-29 | |
US60/146,406 | 1999-07-29 | ||
US14927699P | 1999-08-17 | 1999-08-17 | |
US60/149,276 | 1999-08-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2001009690A1 WO2001009690A1 (en) | 2001-02-08 |
WO2001009690A9 true WO2001009690A9 (en) | 2002-07-25 |
Family
ID=26843867
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2000/020828 WO2001009690A1 (en) | 1999-07-29 | 2000-07-28 | Methods and apparatus for object-based process control |
Country Status (3)
Country | Link |
---|---|
US (1) | US6510352B1 (en) |
AU (1) | AU6615600A (en) |
WO (1) | WO2001009690A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8881039B2 (en) | 2009-03-13 | 2014-11-04 | Fisher-Rosemount Systems, Inc. | Scaling composite shapes for a graphical human-machine interface |
Families Citing this family (93)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0825506B1 (en) * | 1996-08-20 | 2013-03-06 | Invensys Systems, Inc. | Methods and apparatus for remote process control |
FR2790844B1 (en) * | 1999-03-09 | 2001-05-25 | Gemplus Card Int | METHOD AND DEVICE FOR MONITORING THE PROGRESS OF A PROGRAM, PROGRAM DEVICE FOR MONITORING ITS PROGRAM |
AU5273100A (en) | 1999-05-17 | 2000-12-05 | Foxboro Company, The | Methods and apparatus for control configuration with versioning, security, composite blocks, edit selection, object swapping, formulaic values and other aspects |
US7089530B1 (en) * | 1999-05-17 | 2006-08-08 | Invensys Systems, Inc. | Process control configuration system with connection validation and configuration |
US6788980B1 (en) * | 1999-06-11 | 2004-09-07 | Invensys Systems, Inc. | Methods and apparatus for control using control devices that provide a virtual machine environment and that communicate via an IP network |
JP2001024685A (en) * | 1999-07-02 | 2001-01-26 | Canon Inc | Information processing system and electronic equipment and information processing method |
US6675193B1 (en) * | 1999-10-29 | 2004-01-06 | Invensys Software Systems | Method and system for remote control of a local system |
AU1245701A (en) * | 1999-11-01 | 2001-05-14 | Curl Corporation | System and method supporting mapping of option bindings |
WO2001033337A2 (en) * | 1999-11-01 | 2001-05-10 | Curl Corporation | System and method supporting property values as options |
WO2001033346A2 (en) * | 1999-11-01 | 2001-05-10 | Curl Corporation | System and method supporting type checking of options |
US6654648B2 (en) * | 2000-04-03 | 2003-11-25 | Toyota Jidosha Kabushiki Kaisha | Technique of monitoring abnormality in plurality of CPUs or controllers |
DE10055168A1 (en) * | 2000-08-03 | 2002-02-21 | Siemens Ag | Industrial control for technical process e.g. for production machine, has technology neutral base system combined with technological objects |
FR2814260B1 (en) * | 2000-09-15 | 2003-04-11 | Avensy Ingenierie | COMPUTER-AIDED PRODUCTION TRACKING SYSTEM |
US6643555B1 (en) * | 2000-10-10 | 2003-11-04 | Schneider Automation Inc. | Method and apparatus for generating an application for an automation control system |
KR100414437B1 (en) * | 2001-04-06 | 2004-01-07 | 전영민 | Factory automation control method |
US6819960B1 (en) | 2001-08-13 | 2004-11-16 | Rockwell Software Inc. | Industrial controller automation interface |
US8086664B2 (en) * | 2001-09-24 | 2011-12-27 | Siemens Industry, Inc. | Method and apparatus for programming programmable controllers and generating configuration data from a centralized server |
AU2003241292A1 (en) * | 2002-04-11 | 2003-10-27 | Linuxcare, Inc. | Managing multiple virtual machines |
US20040002950A1 (en) * | 2002-04-15 | 2004-01-01 | Brennan Sean F. | Methods and apparatus for process, factory-floor, environmental, computer aided manufacturing-based or other control system using hierarchically enumerated data set |
US6839647B2 (en) * | 2002-09-10 | 2005-01-04 | Sun Microsystems, Inc. | Same virtual machine mode for distributed test execution |
US7149752B2 (en) * | 2002-12-03 | 2006-12-12 | Jp Morgan Chase Bank | Method for simplifying databinding in application programs |
US7085759B2 (en) | 2002-12-06 | 2006-08-01 | Jpmorgan Chase Bank | System and method for communicating data to a process |
US8032439B2 (en) * | 2003-01-07 | 2011-10-04 | Jpmorgan Chase Bank, N.A. | System and method for process scheduling |
US7401156B2 (en) * | 2003-02-03 | 2008-07-15 | Jp Morgan Chase Bank | Method using control interface to suspend software network environment running on network devices for loading and executing another software network environment |
US7117052B2 (en) | 2003-02-18 | 2006-10-03 | Fisher-Rosemount Systems, Inc. | Version control for objects in a process plant configuration system |
US7043311B2 (en) * | 2003-02-18 | 2006-05-09 | Fisher-Rosemount Systems, Inc. | Module class objects in a process plant configuration system |
US7526347B2 (en) | 2003-02-18 | 2009-04-28 | Fisher-Rosemount Systems, Inc. | Security for objects in a process plant configuration system |
US7379998B2 (en) * | 2003-03-31 | 2008-05-27 | Jp Morgan Chase Bank | System and method for multi-platform queue queries |
US20040230602A1 (en) * | 2003-05-14 | 2004-11-18 | Andrew Doddington | System and method for decoupling data presentation layer and data gathering and storage layer in a distributed data processing system |
US7366722B2 (en) * | 2003-05-15 | 2008-04-29 | Jp Morgan Chase Bank | System and method for specifying application services and distributing them across multiple processors using XML |
US8095659B2 (en) * | 2003-05-16 | 2012-01-10 | Jp Morgan Chase Bank | Service interface |
US7587250B2 (en) * | 2003-07-22 | 2009-09-08 | Siemens Building Technologies, Inc. | Controller with configurable connections between data processing components |
US7225037B2 (en) * | 2003-09-03 | 2007-05-29 | Unitronics (1989) (R″G) Ltd. | System and method for implementing logic control in programmable controllers in distributed control systems |
TWI305304B (en) * | 2003-10-22 | 2009-01-11 | Hon Hai Prec Ind Co Ltd | An audio control system and method for long range monitoring |
TW200515217A (en) * | 2003-10-31 | 2005-05-01 | Hon Hai Prec Ind Co Ltd | System and method for downloading program of visual control remotely |
US20050144174A1 (en) * | 2003-12-31 | 2005-06-30 | Leonid Pesenson | Framework for providing remote processing of a graphical user interface |
US7761923B2 (en) * | 2004-03-01 | 2010-07-20 | Invensys Systems, Inc. | Process control methods and apparatus for intrusion detection, protection and network hardening |
US7272452B2 (en) * | 2004-03-31 | 2007-09-18 | Siemens Vdo Automotive Corporation | Controller with configurable connections between data processing components |
US20050222990A1 (en) * | 2004-04-06 | 2005-10-06 | Milne Kenneth T | Methods and systems for using script files to obtain, format and disseminate database information |
AU2005234798B2 (en) * | 2004-04-26 | 2009-01-08 | Jp Morgan Chase Bank | System and method for routing messages |
US7904488B2 (en) | 2004-07-21 | 2011-03-08 | Rockwell Automation Technologies, Inc. | Time stamp methods for unified plant model |
EP1622009A1 (en) * | 2004-07-27 | 2006-02-01 | Texas Instruments Incorporated | JSM architecture and systems |
US7392471B1 (en) | 2004-07-28 | 2008-06-24 | Jp Morgan Chase Bank | System and method for comparing extensible markup language (XML) documents |
US7496473B2 (en) * | 2004-08-31 | 2009-02-24 | Watlow Electric Manufacturing Company | Temperature sensing system |
US8756521B1 (en) | 2004-09-30 | 2014-06-17 | Rockwell Automation Technologies, Inc. | Systems and methods for automatic visualization configuration |
JP4486483B2 (en) * | 2004-11-26 | 2010-06-23 | 古野電気株式会社 | TDMA communication device |
US7554560B2 (en) * | 2004-12-24 | 2009-06-30 | Donald Pieronek | System for defining network behaviors within application programs |
US7650405B2 (en) * | 2005-05-13 | 2010-01-19 | Rockwell Automation Technologies, Inc. | Tracking and tracing across process boundaries in an industrial automation environment |
US7672737B2 (en) | 2005-05-13 | 2010-03-02 | Rockwell Automation Technologies, Inc. | Hierarchically structured data model for utilization in industrial automation environments |
US8799800B2 (en) | 2005-05-13 | 2014-08-05 | Rockwell Automation Technologies, Inc. | Automatic user interface generation |
US7676281B2 (en) | 2005-05-13 | 2010-03-09 | Rockwell Automation Technologies, Inc. | Distributed database in an industrial automation environment |
US7809683B2 (en) * | 2005-05-13 | 2010-10-05 | Rockwell Automation Technologies, Inc. | Library that includes modifiable industrial automation objects |
US20070067458A1 (en) * | 2005-09-20 | 2007-03-22 | Rockwell Software, Inc. | Proxy server for integration of industrial automation data over multiple networks |
US7881812B2 (en) * | 2005-09-29 | 2011-02-01 | Rockwell Automation Technologies, Inc. | Editing and configuring device |
US7548789B2 (en) * | 2005-09-29 | 2009-06-16 | Rockwell Automation Technologies, Inc. | Editing lifecycle and deployment of objects in an industrial automation environment |
US8484250B2 (en) * | 2005-09-30 | 2013-07-09 | Rockwell Automation Technologies, Inc. | Data federation with industrial control systems |
US7526794B2 (en) * | 2005-09-30 | 2009-04-28 | Rockwell Automation Technologies, Inc. | Data perspectives in controller system and production management systems |
US7660638B2 (en) * | 2005-09-30 | 2010-02-09 | Rockwell Automation Technologies, Inc. | Business process execution engine |
US7801628B2 (en) | 2005-09-30 | 2010-09-21 | Rockwell Automation Technologies, Inc. | Industrial operator interfaces interacting with higher-level business workflow |
US8275680B2 (en) * | 2005-09-30 | 2012-09-25 | Rockwell Automation Technologies, Inc. | Enabling transactional mechanisms in an automated controller system |
US7734590B2 (en) | 2005-09-30 | 2010-06-08 | Rockwell Automation Technologies, Inc. | Incremental association of metadata to production data |
US20070093917A1 (en) * | 2005-10-20 | 2007-04-26 | Honeywell International Inc. | Storing and accessing relay ladder logic modules in a relational database |
US7499933B1 (en) | 2005-11-12 | 2009-03-03 | Jpmorgan Chase Bank, N.A. | System and method for managing enterprise application configuration |
US8429629B2 (en) | 2005-11-30 | 2013-04-23 | Red Hat, Inc. | In-kernel virtual machine for low overhead startup and low resource usage |
US8612970B2 (en) * | 2005-11-30 | 2013-12-17 | Red Hat, Inc. | Purpose domain for low overhead virtual machines |
US8104034B2 (en) * | 2005-11-30 | 2012-01-24 | Red Hat, Inc. | Purpose domain for in-kernel virtual machine for low overhead startup and low resource usage |
WO2007123753A2 (en) | 2006-03-30 | 2007-11-01 | Invensys Systems, Inc. | Digital data processing apparatus and methods for improving plant performance |
US7610172B2 (en) * | 2006-06-16 | 2009-10-27 | Jpmorgan Chase Bank, N.A. | Method and system for monitoring non-occurring events |
DE102006033863A1 (en) * | 2006-07-21 | 2008-01-24 | Siemens Ag | Two layered software application production method, involves interconnecting flexible interface of application interface, which makes necessary communication profiles available between totally enclosed layers |
EP2085430A4 (en) * | 2006-09-29 | 2009-11-11 | Mitsubishi Kagaku Media Co Ltd | Azo metal chelate dye and optical recording medium |
JP2008123427A (en) * | 2006-11-15 | 2008-05-29 | Mitsubishi Electric Corp | Display system for monitoring control system |
DE102007029321B4 (en) * | 2007-06-22 | 2021-03-25 | Endress + Hauser Flowtec Ag | Method for operating a field device in a user-friendly mode |
CN104407518B (en) | 2008-06-20 | 2017-05-31 | 因文西斯系统公司 | The system and method interacted to the reality and Simulation Facility for process control |
WO2010000077A1 (en) * | 2008-07-03 | 2010-01-07 | Belimo Holding Ag | Actuator for hvac systems and method for operating the actuator |
US9524506B2 (en) | 2011-10-21 | 2016-12-20 | Bigmachines, Inc. | Methods and apparatus for maintaining business rules in a configuration system |
US8578265B2 (en) * | 2008-10-07 | 2013-11-05 | Bigmachines, Inc. | Methods and apparatus for generating a dynamic document |
FR2938675B1 (en) * | 2008-11-14 | 2010-11-12 | Thales Sa | DEVICE FOR IMPROVING MAINTENANCE PROCEDURES FOR ON-BOARD EQUIPMENT |
US8127060B2 (en) * | 2009-05-29 | 2012-02-28 | Invensys Systems, Inc | Methods and apparatus for control configuration with control objects that are fieldbus protocol-aware |
US8463964B2 (en) * | 2009-05-29 | 2013-06-11 | Invensys Systems, Inc. | Methods and apparatus for control configuration with enhanced change-tracking |
US9366453B2 (en) * | 2010-02-12 | 2016-06-14 | Mitsubishi Electric Corporation | Control system of air conditioning system |
US8484401B2 (en) | 2010-04-15 | 2013-07-09 | Rockwell Automation Technologies, Inc. | Systems and methods for conducting communications among components of multidomain industrial automation system |
US9392072B2 (en) | 2010-04-15 | 2016-07-12 | Rockwell Automation Technologies, Inc. | Systems and methods for conducting communications among components of multidomain industrial automation system |
US8984533B2 (en) | 2010-04-15 | 2015-03-17 | Rockwell Automation Technologies, Inc. | Systems and methods for conducting communications among components of multidomain industrial automation system |
US8782434B1 (en) | 2010-07-15 | 2014-07-15 | The Research Foundation For The State University Of New York | System and method for validating program execution at run-time |
US11320797B2 (en) * | 2010-09-27 | 2022-05-03 | Fisher-Rosemount Systems, Inc | Methods and apparatus to virtualize a process control system |
US9230358B2 (en) * | 2011-03-31 | 2016-01-05 | International Business Machines Corporation | Visual connectivity of widgets using event propagation |
US8719539B2 (en) * | 2011-06-30 | 2014-05-06 | Red Hat, Inc. | Using heuristics for field types of a structure to categorize dynamic memory allocations |
US8725978B2 (en) * | 2011-06-30 | 2014-05-13 | Red Hat, Inc. | Using symbol information for categorization of dynamic memory allocations |
US20130041625A1 (en) * | 2011-08-11 | 2013-02-14 | International Business Machines Corporation | Advanced Statistical Detection of Emerging Trends |
US9063721B2 (en) | 2012-09-14 | 2015-06-23 | The Research Foundation For The State University Of New York | Continuous run-time validation of program execution: a practical approach |
US9069782B2 (en) | 2012-10-01 | 2015-06-30 | The Research Foundation For The State University Of New York | System and method for security and privacy aware virtual machine checkpointing |
SG11201500820RA (en) * | 2012-10-25 | 2015-04-29 | Mitsubishi Electric Corp | System construction support tool and system |
CN109270839B (en) * | 2018-09-26 | 2021-09-14 | 沈阳工业大学 | Series control method for objects without self-balancing capability |
Family Cites Families (275)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3665172A (en) | 1969-06-25 | 1972-05-23 | Shell Oil Co | Control of a process variable by a computer and a controller which replaces the computer |
US3810119A (en) | 1971-05-04 | 1974-05-07 | Us Navy | Processor synchronization scheme |
US3825905A (en) | 1972-09-13 | 1974-07-23 | Action Communication Syst Inc | Binary synchronous communications processor system and method |
FR2296221A1 (en) | 1974-12-27 | 1976-07-23 | Ibm France | SIGNAL PROCESSING SYSTEM |
US4006464A (en) | 1975-02-20 | 1977-02-01 | Fx Systems, Inc. | Industrial process controller |
US4648064A (en) | 1976-01-02 | 1987-03-03 | Morley Richard E | Parallel process controller |
US4312068A (en) | 1976-08-12 | 1982-01-19 | Honeywell Information Systems Inc. | Parallel generation of serial cyclic redundancy check |
US4276593A (en) | 1979-03-30 | 1981-06-30 | Beckman Instruments, Inc. | Transfer system for multi-variable control units |
US4302820A (en) | 1979-08-20 | 1981-11-24 | Allen-Bradley Company | Dual language programmable controller |
US4428044A (en) | 1979-09-20 | 1984-01-24 | Bell Telephone Laboratories, Incorporated | Peripheral unit controller |
US4347563A (en) | 1980-06-16 | 1982-08-31 | Forney Engineering Company | Industrial control system |
US4323966A (en) | 1980-02-05 | 1982-04-06 | The Bendix Corporation | Operations controller for a fault-tolerant multiple computer system |
US4413314A (en) | 1980-06-16 | 1983-11-01 | Forney Engineering Company | Industrial process control system |
US4471457A (en) | 1980-08-21 | 1984-09-11 | International Business Machines Corporation | Supervisory control of peripheral subsystems |
DE3040080C1 (en) | 1980-10-24 | 1987-11-12 | Standard Elektrik Lorenz Ag, 7000 Stuttgart | Device for signal-safe data transmission between a route and vehicles guided on it |
US4410942A (en) | 1981-03-06 | 1983-10-18 | International Business Machines Corporation | Synchronizing buffered peripheral subsystems to host operations |
US4435762A (en) | 1981-03-06 | 1984-03-06 | International Business Machines Corporation | Buffered peripheral subsystems |
US4443861A (en) | 1981-04-13 | 1984-04-17 | Forney Engineering Company | Combined mode supervisory program-panel controller method and apparatus for a process control system |
US4423486A (en) | 1981-04-30 | 1983-12-27 | Hobart Corporation | Commodity display for weighing scale |
US4493027A (en) | 1981-05-22 | 1985-01-08 | Data General Corporation | Method of performing a call operation in a digital data processing system having microcode call and return operations |
JPS5864503A (en) | 1981-10-14 | 1983-04-16 | Hitachi Ltd | Operation guiding device for plant |
US4466098A (en) | 1982-06-11 | 1984-08-14 | Siemens Corporation | Cross channel circuit for an electronic system having two or more redundant computers |
JPS58225442A (en) | 1982-06-25 | 1983-12-27 | Toshiba Corp | Priority control circuit |
DE3236812A1 (en) | 1982-10-05 | 1984-04-05 | Standard Elektrik Lorenz Ag, 7000 Stuttgart | REMOTE CONTROL SYSTEM |
US4488226A (en) | 1982-11-23 | 1984-12-11 | Challenge Systems, Inc. | Method and apparatus for high speed asynchronous serial data transfer |
US4641269A (en) | 1983-01-26 | 1987-02-03 | Emhart Industries, Inc. | Programmable control system for glassware forming machines |
US4675812A (en) | 1983-02-14 | 1987-06-23 | International Business Machines Corp. | Priority circuit for channel subsystem having components with diverse and changing requirement for system resources |
US4872106A (en) | 1983-04-06 | 1989-10-03 | New Forney Corp. | Industrial process control system with back-up data processors to take over from failed primary data processors |
US4733366A (en) | 1983-05-16 | 1988-03-22 | Data General Corporation | Apparatus for providing an interrupt signal in response to a permanent or transient power failure |
US4692859A (en) | 1983-05-16 | 1987-09-08 | Rca Corporation | Multiple byte serial data transfer protocol |
US4682304A (en) | 1983-08-04 | 1987-07-21 | Tektronix, Inc. | Asynchronous multiple buffered communications interface having an independent microprocessor for controlling host/peripheral exchanges |
JPS6054052A (en) | 1983-09-02 | 1985-03-28 | Nec Corp | Processing continuing system |
JPH0754442B2 (en) | 1983-11-24 | 1995-06-07 | 大倉電気株式会社 | Process control system |
JPH0638600B2 (en) | 1983-12-28 | 1994-05-18 | 株式会社東芝 | Local area network system |
US4682158A (en) | 1984-03-23 | 1987-07-21 | Ricoh Company, Ltd. | Guidance device for manipulation of machine |
US4615001A (en) | 1984-03-29 | 1986-09-30 | At&T Bell Laboratories | Queuing arrangement for initiating execution of multistage transactions |
US4683530A (en) | 1984-04-10 | 1987-07-28 | Telemecanique Electrique | Serial information transfer protocol |
US4959774A (en) | 1984-07-06 | 1990-09-25 | Ampex Corporation | Shadow memory system for storing variable backup blocks in consecutive time periods |
US4719593A (en) | 1984-07-09 | 1988-01-12 | Advanced Micro Devices, Inc. | Apparatus for generating digital timing waveforms |
US4641276A (en) | 1984-10-22 | 1987-02-03 | General Electric Company | Serial-parallel data transfer system for VLSI data paths |
US4663704A (en) | 1984-12-03 | 1987-05-05 | Westinghouse Electric Corp. | Universal process control device and method for developing a process control loop program |
US4692918A (en) | 1984-12-17 | 1987-09-08 | At&T Bell Laboratories | Reliable local data network arrangement |
US4672530A (en) | 1984-12-17 | 1987-06-09 | Combustion Engineering, Inc. | Distributed control with universal program |
US4649479A (en) | 1985-02-28 | 1987-03-10 | International Business Machines Corp. | Device driver and adapter binding technique |
US4727477A (en) | 1985-03-22 | 1988-02-23 | International Business Machines Corp. | Logically transportable microprocessor interface control unit permitting bus transfers with different but compatible other microprocessors |
US5307372A (en) | 1985-07-19 | 1994-04-26 | Clinicom Incorporated | Radio transceiver for transmitting and receiving data packets |
US4790762A (en) | 1985-07-23 | 1988-12-13 | Honeywell Inc. | Backplane for a modularly expandable programmable controller |
US4910658A (en) | 1985-09-04 | 1990-03-20 | Eaton Leonard Technologies, Inc. | Real time process controller with serial I/O bus |
US5371895A (en) | 1985-10-08 | 1994-12-06 | The Foxboro Company | Local equipment controller for computerized process control applications utilizing language structure templates in a hierarchical organization and method of operating the same |
US4703421A (en) | 1986-01-03 | 1987-10-27 | Gte Communication Systems Corporation | Ready line synchronization circuit for use in a duplicated computer system |
JPH0812206B2 (en) | 1986-03-07 | 1996-02-07 | ヒューレット・パッカード・カンパニー | Measuring device controller |
US4704676A (en) | 1986-03-24 | 1987-11-03 | The Foxboro Company | Method and apparatus for configuring a controller |
US5481741A (en) | 1986-04-14 | 1996-01-02 | National Instruments Corporation | Method and apparatus for providing attribute nodes in a graphical data flow environment |
US4742349A (en) | 1986-05-22 | 1988-05-03 | Chrysler Motors Corporation | Method for buffered serial peripheral interface (SPI) in a serial data bus |
US4817094A (en) | 1986-12-31 | 1989-03-28 | International Business Machines Corporation | Fault tolerant switch with selectable operating modes |
US4805107A (en) | 1987-04-15 | 1989-02-14 | Allied-Signal Inc. | Task scheduler for a fault tolerant multiple node processing system |
US4965880A (en) | 1987-07-15 | 1990-10-23 | Ciba-Geigy Corporation | Productio installation for the manufacture of a product |
US4958277A (en) | 1987-07-24 | 1990-09-18 | Motorola, Inc. | Queued serial peripheral interface for use in a data processing system |
US4816996A (en) | 1987-07-24 | 1989-03-28 | Motorola, Inc. | Queued serial peripheral interface for use in a data processing system |
EP0306211A3 (en) | 1987-09-04 | 1990-09-26 | Digital Equipment Corporation | Synchronized twin computer system |
US4965742A (en) | 1987-09-30 | 1990-10-23 | E. I. Du Pont De Nemours And Company | Process control system with on-line reconfigurable modules |
US4910691A (en) | 1987-09-30 | 1990-03-20 | E.I. Du Pont De Nemours & Co. | Process control system with multiple module sequence options |
CA2003338A1 (en) | 1987-11-09 | 1990-06-09 | Richard W. Cutts, Jr. | Synchronization of fault-tolerant computer system having multiple processors |
US4918690A (en) | 1987-11-10 | 1990-04-17 | Echelon Systems Corp. | Network and intelligent cell for providing sensing, bidirectional communications and control |
US5129087A (en) | 1988-02-03 | 1992-07-07 | International Business Machines, Corp. | Computer system and a method of monitoring transient data structures in a computer system |
US4897777A (en) | 1988-04-11 | 1990-01-30 | Square D Company | Peer-to-peer register exchange controller for PLCS |
US5596331A (en) | 1988-05-13 | 1997-01-21 | Lockheed Martin Corporation | Real-time control sequencer with state matrix logic |
US5175829A (en) | 1988-10-25 | 1992-12-29 | Hewlett-Packard Company | Method and apparatus for bus lock during atomic computer operations |
US5068778A (en) | 1988-11-28 | 1991-11-26 | Reliance Electric Industrial Company | Industrial control system device |
US4965717A (en) | 1988-12-09 | 1990-10-23 | Tandem Computers Incorporated | Multiple processor system having shared memory with private-write capability |
US5121318A (en) | 1989-04-19 | 1992-06-09 | Westinghouse Electric Corp. | On-line plant operating procedure guidance system |
US5050165A (en) | 1989-06-01 | 1991-09-17 | Seiko Instruments Inc. | Bridge circuit for interconnecting networks |
US5136704A (en) | 1989-06-28 | 1992-08-04 | Motorola, Inc. | Redundant microprocessor control system using locks and keys |
US4991170A (en) | 1989-07-17 | 1991-02-05 | Ag Communication Systems Corporation | Circuit for interfacing a digital signal processor to a serial interface controller |
US5167010A (en) | 1989-08-03 | 1992-11-24 | Westinghouse Electric Corp. | Expert advice display processing system |
US5008805A (en) | 1989-08-03 | 1991-04-16 | International Business Machines Corporation | Real time, fail safe process control system and method |
US5138708A (en) | 1989-08-03 | 1992-08-11 | Unisys Corporation | Digital processor using current state comparison for providing fault tolerance |
US5513095A (en) | 1989-08-16 | 1996-04-30 | Siemens Aktiengesellschaft | Flexible automation system for variable industrial processes |
US5131092A (en) | 1989-09-01 | 1992-07-14 | Square D Company | Communication system enabling programmable logic controllers access to host computer tasks and host computer access to programmable logic controllers without polling |
ES2132175T3 (en) | 1989-09-01 | 1999-08-16 | Amdahl Corp | OPERATING SYSTEM AND DATABASE THAT HAVE AN ACCESS STRUCTURE FORMED BY A PLURALITY OF TABLES. |
US5115235A (en) | 1989-09-25 | 1992-05-19 | Cabletron Systems, Inc. | Flexible module interconnect system |
EP0422310A1 (en) | 1989-10-10 | 1991-04-17 | International Business Machines Corporation | Distributed mechanism for the fast scheduling of shared objects |
US5295258A (en) | 1989-12-22 | 1994-03-15 | Tandem Computers Incorporated | Fault-tolerant computer system with online recovery and reintegration of redundant components |
AU647086B2 (en) | 1990-01-30 | 1994-03-17 | Johnson Service Company | Networked facilities management system |
US5134574A (en) | 1990-02-27 | 1992-07-28 | The Foxboro Company | Performance control apparatus and method in a processing plant |
CA2034878C (en) | 1990-03-08 | 2002-04-02 | Craig S. Hyatt | Programmable controller communication module |
US5245704A (en) | 1990-03-22 | 1993-09-14 | Square D Company | System for sharing data between microprocessor based devices |
US5151978A (en) | 1990-03-22 | 1992-09-29 | Square D Company | Lan interface which permits a host computer to obtain data without interrupting a ladder program executing in the interface |
US5159673A (en) | 1990-03-22 | 1992-10-27 | Square D Company | Apparatus for networking programmable logic controllers to host computers |
GB9006661D0 (en) | 1990-03-24 | 1990-05-23 | Reflex Manufacturing Systems L | Network-field interface for manufacturing systems |
US5124908A (en) | 1990-04-23 | 1992-06-23 | Ellis Corporation | User interactive expert machine controller |
US5164894A (en) | 1990-04-26 | 1992-11-17 | Elsag International B.V. | Method of data entry into a plant loop |
US5251125A (en) | 1990-04-30 | 1993-10-05 | Eaton Corporation | User interface for a process control device |
US5271013A (en) | 1990-05-09 | 1993-12-14 | Unisys Corporation | Fault tolerant computer system |
US5140677A (en) | 1990-05-11 | 1992-08-18 | International Business Machines Corporation | Computer user interface with window title bar mini-icons |
US5168441A (en) | 1990-05-30 | 1992-12-01 | Allen-Bradley Company, Inc. | Methods for set up and programming of machine and process controllers |
US5202961A (en) | 1990-06-08 | 1993-04-13 | Apple Computer, Inc. | Sequential information controller |
US5163055A (en) | 1990-06-27 | 1992-11-10 | Telefonaktiebolaget Lm Ericsson | Communications system using a fault tolerant protocol |
US5122948A (en) | 1990-06-28 | 1992-06-16 | Allen-Bradley Company, Inc. | Remote terminal industrial control communication system |
US5151981A (en) | 1990-07-13 | 1992-09-29 | International Business Machines Corporation | Instruction sampling instrumentation |
US5150289A (en) * | 1990-07-30 | 1992-09-22 | The Foxboro Company | Method and apparatus for process control |
GB2247318B (en) | 1990-08-20 | 1994-08-10 | Rosemount Ltd | A transmitter |
US5168276A (en) | 1990-09-04 | 1992-12-01 | Motorola, Inc. | Automatic A/D converter operation using a programmable control table |
US5166685A (en) | 1990-09-04 | 1992-11-24 | Motorola, Inc. | Automatic selection of external multiplexer channels by an A/D converter integrated circuit |
US5162986A (en) | 1990-10-19 | 1992-11-10 | Allen-Bradley Company, Inc. | Remote downloading and uploading of motion control program information to and from a motion control I/O module in a programmable controller |
US5212784A (en) | 1990-10-22 | 1993-05-18 | Delphi Data, A Division Of Sparks Industries, Inc. | Automated concurrent data backup system |
JPH06266727A (en) | 1990-10-24 | 1994-09-22 | Osaka Gas Co Ltd | Method and equipment for displaying diagnosis |
US5297143A (en) | 1990-12-03 | 1994-03-22 | Echelon Systems, Corp. | Network communication protocol including a reliable multicasting technique |
JPH0727504B2 (en) | 1990-12-10 | 1995-03-29 | インターナショナル・ビジネス・マシーンズ・コーポレイション | System for defining network configuration, method for generating configuration parameters for network, and system for configuring network |
WO1992016895A1 (en) | 1991-03-18 | 1992-10-01 | Echelon Corporation | Networked variables |
AU1647392A (en) | 1991-03-18 | 1992-10-21 | Echelon Corporation | Programming language structures for use in a network for communicating, sensing and controlling information |
US5410717A (en) | 1991-03-22 | 1995-04-25 | Allen-Bradley Company, Inc. | Removable function card for a programmable controller processor |
US5517655A (en) | 1991-04-26 | 1996-05-14 | Hewlett-Packard Company | Method for monitoring transactions in an object-oriented environment |
US5303375A (en) | 1991-04-26 | 1994-04-12 | Hewlett-Packard Company | System and method for facilitating selection of running functional process in object-oriented environments |
US5335338A (en) | 1991-05-31 | 1994-08-02 | Micro Solutions, Inc. | General purpose parallel port interface |
US5233615A (en) | 1991-06-06 | 1993-08-03 | Honeywell Inc. | Interrupt driven, separately clocked, fault tolerant processor synchronization |
EP0524344B1 (en) * | 1991-07-26 | 1996-05-08 | Siemens Aktiengesellschaft | Configurable machine tool control |
GB2258725B (en) | 1991-07-30 | 1995-06-21 | Rosemount Ltd | A method of decoding a spectrally modulated light signal |
CA2062620C (en) | 1991-07-31 | 1998-10-06 | Robert Paff | Surveillance apparatus with enhanced control of camera and lens assembly |
US5272702A (en) | 1991-08-05 | 1993-12-21 | Fisher Controls International, Inc. | Integrity mapping in data communication system |
US5283729A (en) | 1991-08-30 | 1994-02-01 | Fisher-Rosemount Systems, Inc. | Tuning arrangement for turning the control parameters of a controller |
JPH0573697A (en) | 1991-08-30 | 1993-03-26 | Nec Corp | Microcomputer |
CA2068486C (en) | 1991-08-30 | 1998-09-15 | Stephen S. Fleming | System and graphical method for creating an object |
US5500934A (en) | 1991-09-04 | 1996-03-19 | International Business Machines Corporation | Display and control system for configuring and monitoring a complex system |
US5459839A (en) | 1991-09-05 | 1995-10-17 | International Business Machines Corporation | System and method for managing queue read and write pointers |
US5258999A (en) | 1991-10-03 | 1993-11-02 | Motorola, Inc. | Circuit and method for receiving and transmitting control and status information |
CA2073516A1 (en) | 1991-11-27 | 1993-05-28 | Peter Michael Kogge | Dynamic multi-mode parallel processor array architecture computer system |
US5359721A (en) | 1991-12-18 | 1994-10-25 | Sun Microsystems, Inc. | Non-supervisor mode cross address space dynamic linking |
US5289365A (en) | 1991-12-23 | 1994-02-22 | Donnelly Corporation | Modular network control system |
US5267240A (en) | 1992-02-20 | 1993-11-30 | International Business Machines Corporation | Frame-group transmission and reception for parallel/serial buses |
US5303392A (en) | 1992-02-27 | 1994-04-12 | Sun Microsystems, Inc. | Accessing current symbol definitions in a dynamically configurable operating system |
US5461710A (en) | 1992-03-20 | 1995-10-24 | International Business Machines Corporation | Method for providing a readily distinguishable template and means of duplication thereof in a computer system graphical user interface |
US5352033A (en) | 1992-03-27 | 1994-10-04 | Fisher-Rosemount Systems, Inc. | Operator work station having a monitor support assembly |
US5408603A (en) | 1992-03-31 | 1995-04-18 | Dow Benelux N.V. | Global process control information system and method |
CA2064541C (en) | 1992-03-31 | 1998-09-15 | Thomas A. Gray | Cycling error count for link maintenance |
JP3489123B2 (en) | 1992-04-15 | 2004-01-19 | 株式会社日立製作所 | Application binding method |
JP3050348B2 (en) | 1992-04-17 | 2000-06-12 | インターナショナル・ビジネス・マシーンズ・コーポレイション | Method and apparatus for user control in a process control system |
US5347181A (en) | 1992-04-29 | 1994-09-13 | Motorola, Inc. | Interface control logic for embedding a microprocessor in a gate array |
US5630152A (en) | 1992-05-18 | 1997-05-13 | Motorola, Inc. | Communication protocol between master and slave device with register information sharing |
DE4222043C1 (en) | 1992-07-04 | 1993-07-22 | Kloeckner Moeller Gmbh | |
US5581760A (en) | 1992-07-06 | 1996-12-03 | Microsoft Corporation | Method and system for referring to and binding to objects using identifier objects |
US5398331A (en) | 1992-07-08 | 1995-03-14 | International Business Machines Corporation | Shared storage controller for dual copy shared data |
US5303227A (en) | 1992-08-03 | 1994-04-12 | Motorola, Inc. | Method and apparatus for enhanced modes in SPI communication |
US5513192A (en) | 1992-08-28 | 1996-04-30 | Sun Microsystems, Inc. | Fault tolerant disk drive system with error detection and correction |
US5302952A (en) | 1992-08-28 | 1994-04-12 | Motorola, Inc. | Automatic A/D converter operation with pause capability |
US5434997A (en) | 1992-10-02 | 1995-07-18 | Compaq Computer Corp. | Method and apparatus for testing and debugging a tightly coupled mirrored processing system |
US5579487A (en) | 1992-10-02 | 1996-11-26 | Teletransaction, Inc. | Portable work slate computer with multiple docking positions for interchangeably receiving removable modules |
US5377315A (en) | 1992-10-06 | 1994-12-27 | Leggett; Andrew G. | Regeneration of process control flow diagrams for programmable logic controllers |
US5432711A (en) | 1992-10-16 | 1995-07-11 | Elcon Instruments, Inc. | Interface for use with a process instrumentation system |
US5437007A (en) | 1992-11-10 | 1995-07-25 | Hewlett-Packard Company | Control sequencer in an iconic programming system |
US5513354A (en) | 1992-12-18 | 1996-04-30 | International Business Machines Corporation | Fault tolerant load management system and method |
US5428734A (en) | 1992-12-22 | 1995-06-27 | Ibm Corporation | Method and apparatus for enhancing drag and drop manipulation of objects in a graphical user interface |
US5384910A (en) | 1992-12-31 | 1995-01-24 | International Business Machines Corporation | Method and apparatus for facilitating operator reconfiguration of a graphical user interface in a data processing system |
US5719761A (en) | 1993-01-15 | 1998-02-17 | Alaris Medical Systems, Inc. | Configuration control system for configuring multiple biomedical devices |
US5551047A (en) | 1993-01-28 | 1996-08-27 | The Regents Of The Univeristy Of California | Method for distributed redundant execution of program modules |
GB2275113B (en) | 1993-02-09 | 1996-04-03 | Rosemount Ltd | Displacement sensor |
US5450403A (en) | 1993-03-02 | 1995-09-12 | The Furukawa Electric Co., Ltd. | Method and apparatus for multiplex transmission |
US5676141A (en) | 1993-03-31 | 1997-10-14 | Nellcor Puritan Bennett Incorporated | Electronic processor for pulse oximeters |
JPH06331781A (en) | 1993-05-26 | 1994-12-02 | Toshiba Corp | Plant state display |
JP3365576B2 (en) | 1993-06-14 | 2003-01-14 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Object execution method and apparatus |
US5467264A (en) | 1993-06-30 | 1995-11-14 | Microsoft | Method and system for selectively interdependent control of devices |
US5513329A (en) | 1993-07-15 | 1996-04-30 | Dell Usa, L.P. | Modular host local expansion upgrade |
EP0636956B1 (en) | 1993-07-28 | 1999-06-02 | Siemens Aktiengesellschaft | Method of data loading |
US5594858A (en) | 1993-07-29 | 1997-01-14 | Fisher-Rosemount Systems, Inc. | Uniform control template generating system and method for process control programming |
WO1995004968A1 (en) | 1993-08-03 | 1995-02-16 | Forte Software, Inc. | Flexible multi-platform partitioning for computer applications |
US5880775A (en) | 1993-08-16 | 1999-03-09 | Videofaxx, Inc. | Method and apparatus for detecting changes in a video display |
US5452201A (en) | 1993-08-24 | 1995-09-19 | Allen-Bradley Company, Inc. | Industrial controller with highly distributed processing |
US5530643A (en) | 1993-08-24 | 1996-06-25 | Allen-Bradley Company, Inc. | Method of programming industrial controllers with highly distributed processing |
US5549137A (en) | 1993-08-25 | 1996-08-27 | Rosemount Inc. | Valve positioner with pressure feedback, dynamic correction and diagnostics |
US5504672A (en) | 1993-09-10 | 1996-04-02 | Hardiman; Ted L. | Industrial process controller and method of process control |
US5629949A (en) | 1993-09-21 | 1997-05-13 | Cirrus Logic, Inc. | Error correction verification method and apparatus using CRC check remainders |
US5576946A (en) | 1993-09-30 | 1996-11-19 | Fluid Air, Inc. | Icon based process design and control system |
US5450425A (en) | 1993-11-19 | 1995-09-12 | Multi-Tech Systems, Inc. | Protocol for communication of a data packet |
FI94680C (en) | 1993-11-26 | 1995-10-10 | Nokia Mobile Phones Ltd | Expanded PCMCIA interface and procedure for its identification |
US5664168A (en) | 1993-11-29 | 1997-09-02 | Motorola, Inc. | Method and apparatus in a data processing system for selectively inserting bus cycle idle time |
US5483660A (en) | 1993-11-29 | 1996-01-09 | Motorola Inc. | Method and apparatus for performing multiplexed and non-multiplexed bus cycles in a data processing system |
US5504902A (en) | 1993-12-01 | 1996-04-02 | Patriot Sensors And Controls Corporation | Multi-language generation of control program for an industrial controller |
US5572673A (en) | 1993-12-01 | 1996-11-05 | Sybase, Inc. | Secure multi-level system for executing stored procedures |
JP2867860B2 (en) | 1993-12-16 | 1999-03-10 | 日本電気株式会社 | Cross connect device |
US5555437A (en) | 1993-12-22 | 1996-09-10 | Adaptec, Inc. | Read-write state machine in a host interface for controlling read and write operations in a disk drive |
US5664101A (en) | 1993-12-22 | 1997-09-02 | Heidelberg Druckmaschinen Ag | Intelligent industrial local area network module for use in a distributed control system |
US5509811A (en) | 1994-01-12 | 1996-04-23 | Dell Usa, L.P. | Computer enclosure with embedded PCMCIA modem card |
US5485620A (en) | 1994-02-25 | 1996-01-16 | Automation System And Products, Inc. | Integrated control system for industrial automation applications |
US5459825A (en) | 1994-03-14 | 1995-10-17 | Apple Computer, Inc. | System for updating the locations of objects in computer displays upon reconfiguration |
US5664231A (en) | 1994-04-29 | 1997-09-02 | Tps Electronics | PCMCIA interface card for coupling input devices such as barcode scanning engines to personal digital assistants and palmtop computers |
US5805922A (en) | 1994-05-02 | 1998-09-08 | Motorola, Inc. | Queued serial peripheral interface having multiple queues for use in a data processing system |
US5841963A (en) | 1994-06-08 | 1998-11-24 | Hitachi, Ltd. | Dual information processing system having a plurality of data transfer channels |
US5587899A (en) | 1994-06-10 | 1996-12-24 | Fisher-Rosemount Systems, Inc. | Method and apparatus for determining the ultimate gain and ultimate period of a controlled process |
US5544008A (en) | 1994-06-30 | 1996-08-06 | International Business Machines Corporation | Computer expansion module apparatus |
US5627979A (en) | 1994-07-18 | 1997-05-06 | International Business Machines Corporation | System and method for providing a graphical user interface for mapping and accessing objects in data stores |
US5600845A (en) | 1994-07-27 | 1997-02-04 | Metalithic Systems Incorporated | Integrated circuit computing device comprising a dynamically configurable gate array having a microprocessor and reconfigurable instruction execution means and method therefor |
US5687316A (en) | 1994-07-29 | 1997-11-11 | International Business Machines Corporation | Communication apparatus and methods having P-MAC, I-MAC engines and buffer bypass for simultaneously transmitting multimedia and packet data |
US5555510A (en) | 1994-08-02 | 1996-09-10 | Intel Corporation | Automatic computer card insertion and removal algorithm |
US5598536A (en) | 1994-08-09 | 1997-01-28 | Shiva Corporation | Apparatus and method for providing remote users with the same unique IP address upon each network access |
US5621871A (en) | 1994-08-31 | 1997-04-15 | Jaremko; Mark | Automated system and method for annotation using callouts |
US5630056A (en) | 1994-09-20 | 1997-05-13 | Stratus Computer, Inc. | Digital data processing methods and apparatus for fault detection and fault tolerance |
US5611057A (en) | 1994-10-06 | 1997-03-11 | Dell Usa, L.P. | Computer system modular add-in daughter card for an adapter card which also functions as an independent add-in card |
US5519605A (en) | 1994-10-24 | 1996-05-21 | Olin Corporation | Model predictive control apparatus and method |
US5568378A (en) | 1994-10-24 | 1996-10-22 | Fisher-Rosemount Systems, Inc. | Variable horizon predictor for controlling dead time dominant processes, multivariable interactive processes, and processes with time variant dynamics |
US5793963A (en) | 1994-10-24 | 1998-08-11 | Fisher Rosemount Systems, Inc. | Apparatus for providing non-redundant secondary access to field devices in a distributed control system |
ATE187824T1 (en) | 1994-10-24 | 2000-01-15 | Fisher Rosemount Systems Inc | DEVICE THAT ALLOWS ACCESS TO FIELD DEVICES IN A DISTRIBUTED CONTROL SYSTEM |
US5704011A (en) * | 1994-11-01 | 1997-12-30 | The Foxboro Company | Method and apparatus for providing multivariable nonlinear control |
MY114883A (en) | 1994-11-14 | 2003-02-28 | Ibm | Method and apparatus for providing a remotely located outrigger card electrically coupled to a control card |
US5642511A (en) | 1994-12-16 | 1997-06-24 | International Business Machines Corporation | System and method for providing a visual application builder framework |
US5491791A (en) | 1995-01-13 | 1996-02-13 | International Business Machines Corporation | System and method for remote workstation monitoring within a distributed computing environment |
US5748467A (en) | 1995-02-21 | 1998-05-05 | Fisher-Rosemont Systems, Inc. | Method of adapting and applying control parameters in non-linear process controllers |
US5519701A (en) | 1995-03-29 | 1996-05-21 | International Business Machines Corporation | Architecture for high performance management of multiple circular FIFO storage means |
US5790791A (en) | 1995-05-12 | 1998-08-04 | The Boeing Company | 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 |
US5742762A (en) | 1995-05-19 | 1998-04-21 | Telogy Networks, Inc. | Network management gateway |
US5752246A (en) | 1995-06-07 | 1998-05-12 | International Business Machines Corporation | Service agent for fulfilling requests of a web browser |
US5701414A (en) | 1995-06-19 | 1997-12-23 | Motorola, Inc. | Controller for selective call receiver having memory for storing control information, plurality of addresses, status information, receive address information, and message |
US5555213A (en) | 1995-06-29 | 1996-09-10 | Rockwell International Corporation | Interface circuit, system and method for interfacing an electronic device and a synchronous state machine having different clock speeds |
US5659680A (en) | 1995-06-30 | 1997-08-19 | Micro Processor Systems, Inc. | PC compatible modular based diagnostic system |
US5617540A (en) | 1995-07-31 | 1997-04-01 | At&T | 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 |
US5781449A (en) | 1995-08-10 | 1998-07-14 | Advanced System Technologies, Inc. | Response time measurement apparatus and method |
US5680409A (en) | 1995-08-11 | 1997-10-21 | Fisher-Rosemount Systems, Inc. | Method and apparatus for detecting and identifying faulty sensors in a process |
US5872992A (en) | 1995-08-24 | 1999-02-16 | Motorola, Inc. | System and method for avoiding bus contention on a multiplexed bus by providing a time period subsequent to a read operation |
EP0760501B1 (en) | 1995-09-04 | 2002-02-20 | Hewlett-Packard Company, A Delaware Corporation | Data handling system with circular queue formed in paged memory |
DE19533961A1 (en) | 1995-09-13 | 1997-03-20 | Siemens Ag | Method for loading software in communication systems with non-redundant, decentralized devices |
US5774670A (en) | 1995-10-06 | 1998-06-30 | Netscape Communications Corporation | Persistent client state in a hypertext transfer protocol based client-server system |
US5764906A (en) | 1995-11-07 | 1998-06-09 | Netword Llc | Universal electronic resource denotation, request and delivery system |
US5930768A (en) | 1996-02-06 | 1999-07-27 | Supersonic Boom, Inc. | Method and system for remote user controlled manufacturing |
US6094600A (en) | 1996-02-06 | 2000-07-25 | Fisher-Rosemount Systems, Inc. | System and method for managing a transaction database of records of changes to field device configurations |
US5777874A (en) | 1996-02-12 | 1998-07-07 | Allen-Bradley Company, Inc. | Programmable controller backup system |
US5761518A (en) | 1996-02-29 | 1998-06-02 | The Foxboro Company | 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 |
US5752007A (en) | 1996-03-11 | 1998-05-12 | Fisher-Rosemount Systems, Inc. | System and method using separators for developing training records for use in creating an empirical model of a process |
US5844601A (en) | 1996-03-25 | 1998-12-01 | Hartness Technologies, Llc | Video response system and method |
US5754772A (en) | 1996-03-26 | 1998-05-19 | Unisys Corporation | Transaction service independent HTTP server-to-transaction gateway |
JP3146150B2 (en) | 1996-04-01 | 2001-03-12 | スター精密株式会社 | Surveillance camera system |
US5801942A (en) | 1996-04-12 | 1998-09-01 | Fisher-Rosemount Systems, Inc. | Process control system user interface including selection of multiple control languages |
US5838563A (en) | 1996-04-12 | 1998-11-17 | Fisher-Rosemont Systems, Inc. | System for configuring a process control environment |
US5862052A (en) | 1996-04-12 | 1999-01-19 | Fisher-Rosemount Systems, Inc. | Process control system using a control strategy implemented in a layered hierarchy of control modules |
US5828851A (en) | 1996-04-12 | 1998-10-27 | Fisher-Rosemount Systems, Inc. | Process control system using standard protocol control of standard devices and nonstandard devices |
US5768119A (en) | 1996-04-12 | 1998-06-16 | Fisher-Rosemount Systems, Inc. | Process control system including alarm priority adjustment |
US5727128A (en) | 1996-05-08 | 1998-03-10 | Fisher-Rosemount Systems, Inc. | System and method for automatically determining a set of variables for use in creating a process model |
US5854944A (en) | 1996-05-09 | 1998-12-29 | Motorola, Inc. | Method and apparatus for determining wait states on a per cycle basis in a data processing system |
US5752008A (en) | 1996-05-28 | 1998-05-12 | Fisher-Rosemount Systems, Inc. | Real-time process control simulation method and apparatus |
US5982362A (en) | 1996-05-30 | 1999-11-09 | Control Technology Corporation | Video interface architecture for programmable industrial control systems |
US5805442A (en) | 1996-05-30 | 1998-09-08 | Control Technology Corporation | Distributed interface architecture for programmable industrial control systems |
US6272556B1 (en) * | 1996-07-01 | 2001-08-07 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for migrating a client-server application (#5) |
US5768510A (en) | 1996-07-01 | 1998-06-16 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server application enabler system |
US5831669A (en) | 1996-07-09 | 1998-11-03 | Ericsson Inc | Facility monitoring system with image memory and correlation |
JP3115237B2 (en) | 1996-09-03 | 2000-12-04 | 株式会社東芝 | Control program creation device and control program creation method |
US5822220A (en) | 1996-09-03 | 1998-10-13 | Fisher-Rosemount Systems, Inc. | Process for controlling the efficiency of the causticizing process |
US5854750A (en) * | 1996-09-03 | 1998-12-29 | Insession, Inc. | System and method for processing transactions in an environment containing a number of object oriented applications |
US5726912A (en) | 1996-09-06 | 1998-03-10 | Honeywell Iac | Control system monitor |
US5797038A (en) | 1996-09-09 | 1998-08-18 | Ford Motor Company | Method and system for serially based host/peripheral communication |
US5784275A (en) | 1996-09-23 | 1998-07-21 | National Instruments Corporation | System and method for performing interface independent virtual instrumentation functions in a graphical data flow program |
US5970430A (en) | 1996-10-04 | 1999-10-19 | Fisher Controls International, Inc. | Local device and process diagnostics in a process control network having distributed control functions |
IL119454A (en) | 1996-10-21 | 2002-07-25 | Serconet Ltd | Distributed serial control system |
US5956487A (en) | 1996-10-25 | 1999-09-21 | Hewlett-Packard Company | Embedding web access mechanism in an appliance for user interface functions including a web server and web browser |
US5909586A (en) | 1996-11-06 | 1999-06-01 | The Foxboro Company | Methods and systems for interfacing with an interface powered I/O device |
US6035264A (en) | 1996-11-26 | 2000-03-07 | Global Maintech, Inc. | Electronic control system and method for externally controlling process in a computer system with a script language |
US5758073A (en) | 1996-12-02 | 1998-05-26 | Tritech Microelectronics International, Ltd. | Serial interface between DSP and analog front-end device |
US6139177A (en) | 1996-12-03 | 2000-10-31 | Hewlett Packard Company | Device access and control using embedded web access functionality |
US5732218A (en) | 1997-01-02 | 1998-03-24 | Lucent Technologies Inc. | 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 |
US5980078A (en) | 1997-02-14 | 1999-11-09 | Fisher-Rosemount Systems, Inc. | Process control system including automatic sensing and automatic configuration of devices |
US6195694B1 (en) * | 1997-03-13 | 2001-02-27 | International Business Machines Corporation | Server for reconfiguring control of a subset of devices on one or more kiosks |
US5994998A (en) | 1997-05-29 | 1999-11-30 | 3Com Corporation | Power transfer apparatus for concurrently transmitting data and power over data wires |
US5847957A (en) | 1997-06-16 | 1998-12-08 | Base Ten Systems, Inc. | Web access for a manufacturing execution system |
US5832418A (en) | 1997-06-23 | 1998-11-03 | Micron Electronics | Apparatus for testing a controller with random contraints |
US6282454B1 (en) | 1997-09-10 | 2001-08-28 | Schneider Automation Inc. | Web interface to a programmable controller |
US6151625A (en) | 1997-09-10 | 2000-11-21 | Schneider Automation Inc. | Internet web interface including programmable logic controller for controlling output devices based on status of input devices |
US6014612A (en) | 1997-10-02 | 2000-01-11 | Fisher Controls International, Inc. | Remote diagnostics in a process control network having distributed control functions |
US6055633A (en) | 1997-10-28 | 2000-04-25 | Honeywell Inc. | Method of reprogramming memories in field devices over a multidrop network |
US6085120A (en) * | 1997-11-17 | 2000-07-04 | International Business Machines Corporation | Data system processing and method for creating application extension |
US6049775A (en) | 1998-01-30 | 2000-04-11 | Bell & Howell Mail And Messaging Technologies Company | Systems, methods and computer program products for monitoring and controlling mail processing devices |
US5980090A (en) | 1998-02-10 | 1999-11-09 | Gilbarco., Inc. | Internet asset management system for a fuel dispensing environment |
US6115468A (en) | 1998-03-26 | 2000-09-05 | Cisco Technology, Inc. | Power feed for Ethernet telephones via Ethernet link |
US6002104A (en) * | 1998-04-17 | 1999-12-14 | Lincoln Global, Inc. | Electric arc welder and controller therefor |
US6201996B1 (en) | 1998-05-29 | 2001-03-13 | Control Technology Corporationa | Object-oriented programmable industrial controller with distributed interface architecture |
US6195774B1 (en) * | 1998-08-13 | 2001-02-27 | Xilinx, Inc. | Boundary-scan method using object-oriented programming language |
US6260187B1 (en) * | 1998-08-20 | 2001-07-10 | Wily Technology, Inc. | System for modifying object oriented code |
US6176421B1 (en) | 1999-02-04 | 2001-01-23 | Marconi Commerce Systems Inc. | Fuel dispenser architecture having server |
US6218930B1 (en) | 1999-03-10 | 2001-04-17 | Merlot Communications | Apparatus and method for remotely powering access equipment over a 10/100 switched ethernet network |
-
2000
- 2000-07-28 US US09/627,466 patent/US6510352B1/en not_active Expired - Lifetime
- 2000-07-28 AU AU66156/00A patent/AU6615600A/en not_active Abandoned
- 2000-07-28 WO PCT/US2000/020828 patent/WO2001009690A1/en active Application Filing
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8881039B2 (en) | 2009-03-13 | 2014-11-04 | Fisher-Rosemount Systems, Inc. | Scaling composite shapes for a graphical human-machine interface |
Also Published As
Publication number | Publication date |
---|---|
US6510352B1 (en) | 2003-01-21 |
AU6615600A (en) | 2001-02-19 |
WO2001009690A1 (en) | 2001-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2001009690A9 (en) | Methods and apparatus for object-based process control | |
US6788980B1 (en) | Methods and apparatus for control using control devices that provide a virtual machine environment and that communicate via an IP network | |
WO2000077592A2 (en) | Control device providing a virtual machine environment and an ip network | |
US8463964B2 (en) | Methods and apparatus for control configuration with enhanced change-tracking | |
US7617277B2 (en) | Internet object based remote operation of an industrial controller | |
US5909368A (en) | Process control system using a process control strategy distributed among multiple control elements | |
US5801942A (en) | Process control system user interface including selection of multiple control languages | |
US8122434B2 (en) | Methods and apparatus for control configuration control objects associated with a track attribute for selecting configuration information | |
US8127060B2 (en) | Methods and apparatus for control configuration with control objects that are fieldbus protocol-aware | |
US6098116A (en) | Process control system including a method and apparatus for automatically sensing the connection of devices to a network | |
US5995916A (en) | Process control system for monitoring and displaying diagnostic information of multiple distributed devices | |
US5862052A (en) | Process control system using a control strategy implemented in a layered hierarchy of control modules | |
US5828851A (en) | Process control system using standard protocol control of standard devices and nonstandard devices | |
US6032208A (en) | Process control system for versatile control of multiple process devices of various device types | |
US8538719B2 (en) | Method for testing device descriptions for field devices of automation technology | |
US20030105535A1 (en) | Unit controller with integral full-featured human-machine interface | |
US9124445B2 (en) | Apparatus for integrating device objects into a superordinated control unit | |
EP2146274A2 (en) | Methods and apparatus to bind properties in a process control system | |
WO1998036335A9 (en) | Process control system using a layered-hierarchy control strategy distributed into multiple control devices | |
US20090164989A1 (en) | Method for producing and application-specific installation package from device objects | |
US7702774B2 (en) | Method for operating an object-based configuration system for field devices of automation technology | |
US20060168245A1 (en) | Software component for a distributed control system, and method for designing a control system | |
Kapsalis et al. | Seamless integration of distributed real time monitoring and control applications utilising emerging technologies | |
Mahalik et al. | Flexible distributed control of production line with the LON fieldbus technology: a laboratory study | |
Yuan | Foundation Fieldbus and Its Interoperability |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
AK | Designated states |
Kind code of ref document: C2 Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: C2 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
COP | Corrected version of pamphlet |
Free format text: PAGES 1/17-17/17, DRAWINGS, ADDED |
|
122 | Ep: pct application non-entry in european phase | ||
NENP | Non-entry into the national phase |
Ref country code: JP |