Control systems control a variety of industrial processes. For example, a control system may control a power plant, a hydrocarbon processing facility, or a baked goods processing facility. Regardless of the type of industrial plant controlled, in addition to the computer systems that execute to the control algorithms, the control system may also comprise one or more computer systems that act as a historian unit, gathering data and storing data values regarding the controlled process.
With increasing size and/or complexity of the controlled process, the amount of data gathered and stored by the computer systems operating as historian units may be tremendous. Thus, any technology which reduces the amount of data that may need to be stored in historian units and/or increases the functionality associated with the historical information, would provide a competitive advantage to a distributed process control system manufacturer.
For a detailed description of exemplary embodiments, reference will now be made to the accompanying drawings in which:
Certain terms are used throughout the following description and claims to refer to particular system components. As one skilled in the art will appreciate, distributed process control companies may refer to a component by different names. This document does not intend to distinguish between components that differ in name but not function.
In the following discussion and in the claims, the terms “including” and “comprising” are used in an open-ended fashion, and thus should be interpreted to mean “including, but not limited to . . . .” Also, the term “couple” or “couples” is intended to mean either an indirect or direct connection. Thus, if a first device couples to a second device, that connection may be through a direct connection, or through an indirect connection via other devices and connections.
“Data mining” shall mean statistical and/or logical analysis of data sets to determine relationships between different streams of parameters of a physical process.
The following discussion is directed to various embodiments of the invention. Although one or more of these embodiments may be preferred, the embodiments disclosed should not be interpreted, or otherwise used, as limiting the scope of the disclosure, including the claims. In addition, one skilled in the art will understand that the following description has broad application, and the discussion of any embodiment is meant only to be exemplary of that embodiment, and not intended to intimate that the scope of the disclosure, including the claims, is limited to that embodiment.
Still referring to
Each distributed processing unit 16 executes control software relevant to its portion of the physical process 10. The control software may implement Boolean-based control schemes (sometimes implemented as “ladder logic”), or the control software may implement closed-loop control of a process, such as one or more proportional-integral-differential (PID) control loops. In yet still other embodiments, the control software may implement neural-network-based control of the physical process 10. Beyond controlling portions of the physical process 10, the distributed processing units 16, 18 may also execute programs that perform calculations such as water flow, steam flow, and gas flow, and these calculated values may be stored for later viewing and/or become input, feedback or feed-forward parameters used in the control software as executed in the distributed processing unit 16. The distributed processing unit 16 may be, for example, a DeltaV™ MD Controller available from Emerson Process Management of St. Louis, Mo.
Still referring to
In most situations, the data values monitored or calculated by a particular distributed processing unit, and likewise driven output values, are associated with the locally attached devices (i.e., I/O devices 12 in the case of illustrative processing unit 16, and meter devices 16 in the case of illustrative flow computer 18). However, the processing unit 16 and flow computer 18 may communicate with each other, and other devices, over the communication network 20. Thus, data values may be exchanged between the processing units to assist in performing assigned tasks related to the physical process 10. In accordance with at least some embodiments, the communication network 20 is an Ethernet-type network (i.e., Ethernet defining the physical and data link layers of the OSI model), with the precise protocol used for information exchange (i.e., layers above the data link layer of the OSI model) based on the particular system vendor. Stated otherwise, while most control systems utilize an Ethernet-based communication network 20, each vendor may utilize a proprietary high level protocol suited for the vendor's particular hardware and configuration.
Still referring to
In some embodiments, the historian unit 22 gathers the historical data values by polling the processing units, such as illustrative distributed processing unit 16 and flow computer 18. In other embodiments, the processing units are programmed to periodically send select data values to the historian unit 22. For example, data values for slowing moving process parameters may be sent by the processing units to the historian unit 22 every minute or more, while parameters whose values change quickly may be sent to the historian unit 22 with significantly shorter time spans (e.g., two seconds or less).
The illustrative control system 1000 of
The human/machine interface 28 may comprise a processing unit 30, which may be similar in form and construction to the processing unit 24 of the historian unit 22. The processing unit 30 may differ from the other processing units by the type and number of application programs and/or a different operating system. Processing unit 30 couples to a display device 32, such as a cathode ray tube (CRT) or liquid crystal display (LCD) display. Finally, the human/machine interface 28 may have a keyboard 34 and the pointing device 36 coupled thereto, to enable a user to interface with the application programs executing on the processing unit 30.
The human/machine interface 28 may be the mechanism by which a process engineer or other interested person views graphical representations of the physical processor 10 on the display device 32. The human/machine interface 28 may also be the mechanism by which the interested person obtains historical data valves from the historian unit 22 and produces trends or plots of one or more streams of data values on the display device 32. For example, a process engineer may request that the human/machine interface 28 produce a plot as a function of time of natural gas flow at some relevant portion of the physical process 10 (e.g., natural gas flow through a particular meter run of a set of parallel meter runs). The human/machine interface 28 makes a request for the data valves from the historian unit 22, and when the data is returned the human/machine interface 28 plots as a function of time of the illustrative natural gas flow on the display device 32.
In alternative embodiments, the programs that implement the human/machine interface functionality may be included on the historian unit 22, thus eliminating the need for separate human/machine interfaces and historian units 22. Such a combination may be particularly suited to limited complexity physical processes, such as when the control system 1000 is used in metering and monitoring of hydrocarbon flows.
In the related art, to the extent a user, such as a process engineer, wants to plot statistical data, the statistical data must be a data point for which the historian unit 22 stores historical data values. Stated otherwise, in the related art any parameter (statistical or otherwise) for which a user would like to see a trend plotted on the display device 32 requires historical data values for the parameter to reside in the historian unit 22. To the extent that the parameter is not a direct representation of a monitored or driven parameter of the physical process 10, in the related art the parameter is created based on the monitored and/or driven parameters of the physical process 10 (e.g., using a function block executing in the distributed processing unit 16), and the parameter stored as a stream of data values of the data point within the historian unit 22. Such an operating philosophy tends to increase the size of the historical database managed by the historian unit 22, and which size directly affects the speed at which the historian unit 22 operates, and the number and size of devices that implement the non-volatile storage 26.
In accordance with the various embodiments, the shortcomings noted with respect to the related art are addressed, at least in part, by a system that calculates statistical data based on streams of historical data values from the historian unit 22, without requiring the historian unit to actually store the statistical data. When a user wishes to view and/or analyze statistical data related to the physical process 10, the user makes a request for calculation of the statistical data by way of the human/machine interface 28. The historical data values are retrieved, the statistical data is calculated at any suitable location (e.g., the human/machine interface 28 or the historian unit 22), and the statistical data is presented on the display device 32 of the human/machine interface 28 (e.g., a bell curve, a scatter diagram, a plot as a function of time or other parameter). In this way, the amount of data stored in the historian unit 22 may be less than if the desired statistical data is stored as a stream of data values for a data point in the historian unit 22. Moreover, the user is not limited to only statistical data that happens to be stored in the historian unit 22, as suitable statistical data related to the monitored and/or driven parameters of the physical process 10 may be requested and displayed on the display device 32. The specification first discusses an illustrative mechanism to inform the human/machine interface 28 of the desired statistical data, and then the specification turns to a plurality of illustrative statistical calculations which may be implemented.
In accordance with the various embodiments, the calculation and plotting of statistical data may be configured using a “drag and drop” method similar to that discussed with respect to
Percentage error (%)=((Value 1−Value 2)/Value 1)*100 (1)
where Percentage Error is the percentage error between two corresponding values of the selected data points (e.g., data values corresponding in time), Value 1 is a particular data point placed within field 74, and Value 2 is a particular data point placed in the field 76. Stated otherwise, the human/machine interface 28 calculates a plurality of percentage error values based on the two streams of historical data values, and where those streams of historical data values are associated with either monitored, driven or calculated parameters of the physical process 10. Based on the calculations, the human/machine interface 28 plots the plurality of percentage error values in some form.
In the embodiments discussed to this point, the human/machine interface 28 retrieves the historical data values and performs the calculation of the statistical data desired. However, in other embodiments, the human/machine interface 28 may accept from the user an identification of the statistical data to be calculated (e.g., by selection of a form window for the particular calculation) and further the human/machine interface 28 may accept from the user the indications of the data points to be used in the calculations. However, in the alternative embodiments the human/machine interface 28 does not itself calculate the statistical data. Rather, the human/machine interface 28 communicates the desired statistical calculation and the data points to be used to the historian unit 22. The historian unit 22 retrieves the historical data valves associated with the indicated data points, calculates the statistical data requested, and then sends to the human/machine interface 28 the statistical data to be displayed on the display device 32. Stated otherwise, and from the perspective of the human/machine interface 28, the human/machine interface 28 receives from the user a request to calculate statistical data (where that statistical data is not tracked in the historian unit 22). The human/machine interface 28 sends the request regarding the calculation of statistical data to the historian unit 22. Thereafter, the human/machine interface 28 receives the statistical data from the historian unit 22 and plots the statistical data on the display device 32.
Regardless of the precise location where the statistical data is calculated, a user of the system is able to view and analyze the statistical data in spite of the fact that the statistical data is not a data point for which the historian unit 22 maintains historical data values.
The discussion to this point speaks of statistical data in general, and gives a particular example of calculating percentage error. However, calculation of percentage error is merely illustrative, as there are many statistical calculations that may be applied to historical data values held in the historian unit 22 which may be useful to a user of the human/machine interface 28. The specification now turns to further, though still non-limiting, examples of the statistical data which may be calculated in accordance with the various embodiments.
One illustrative example of statistical data which may be calculated in accordance with the various embodiments is the calculation of the standard deviation of a stream of historical data values held in the historian unit 22. In particular, and regardless of precisely where calculated, the standard deviation of a monitored, driven or calculated parameter may be calculated within any specified start and stop date and/or time. In yet still other embodiments, the illustrative standard deviation may be calculated over a moving window of historical data values, and the standard deviation calculated may be plotted on the display device 32. A high standard deviation for a parameter of the physical process 10 may indicate a shortcoming or difficulty in the physical process 10 that average values would not necessarily show. In other cases, a high standard deviation may indicate the impending failure of a monitoring device (e.g., a temperature transmitter, pressure transmitter).
As yet another example of statistical data which may be calculated, and regardless of the precise location where the calculation is performed, the mean of a set of historical data values within any specified start and stop date and/or time may be calculated, and in some cases the mean may be calculated within a moving window.
As yet another example, the statistical data may be a statistical estimation of unknown values of the physical process 10 using a stream of historical data values. The estimation of an unknown value may take place within any specified start and stop date and/or time, or the statistical estimation may take place over a moving window of data values. Although any statistical estimation technique may be used to estimate the unknown values of the physical process 10, in accordance with at least some embodiments the estimation may implement any of a plurality of systems to reduce error in the calculation. For example, the statistical estimation may use Bayes estimators and method-of-moments estimators. Further, other error reduction techniques may be implemented, such as maximum a posteriori (MAP), minimum variance unbiased estimators (MVUE), best linear unbiased estimators (BLUE), Markov Chain Monte Carlo (MCMC), Kalman Filters, Ensemble Kalman Filters (EnKF), Wiener Filters, and other statistical estimation techniques. An illustrative example of a statistical estimation is the situation of two parallel metering streams. If in most situations when the metering streams are operating properly there is a 45%/55% split of flow between the two metering streams, then in the event of a failure of one of the metering streams a statistical estimation may be made for the unknown values of flow through the failed metering stream.
As yet another example of the statistical data, data mining may be performed based on the historical information associated with two or more data points maintained in the historian unit 22. The data mining may determine whether any relationship exist between the plurality in different streams of historical data values.
As yet another example of the statistical data, in accordance with at least some embodiments the Pearson Product-Moment correlation may be calculated between corresponding values for any two data points maintained by the historian unit 22.
As yet another example of the statistical data that may be calculated, for any stream of data values associated with a data point maintained by the historian unit 22, a linear and/or non-linear regression analysis may be performed. For example, the analysis may include least-square curve fitting by using linear regression, Bayesian linear regression, minimization of absolute deviations, quintile regressions, and non-parametric regression, all from a specified start and stop date and/or time or within a moving window of values.
As yet another example of statistical data that may be calculated, the statistical calculation may comprise an analysis of variance (ANOVA) from within a specified start and stop date and/or time or within a moving window of values.
As yet another example of the statistical data that may be calculated, time series forecasting, in either the frequency or the time-domain, may be performed to forecast future values related to the historical data values held within the historian unit 22.
As a final set of examples, the statistical data may further comprise standardization testing, including calculations such as standard deviation, cumulative percentages, percentile equivalence, Z-scores, T-scores, standard 9's and percentages in standard 9's, all calculated from within a specified start and stop date and/or time, or within a moving window of values.
As illustrated by the discussion above, substantially any statistical calculation which may reveal information of interest to the user may be implemented in accordance with the various embodiments.
Regardless of the precise statistical data calculated, after calculation of the statistical data the computer-implemented method may plot the statistical data on a display device (block 620) and thereafter the method ends (block 624). While
The processor 722 couples to the bridge device of 726 by way of a processor bus 728, and memory 724 couples to the bridge device 728 by way of a memory bus at 730. Memory 724 is any volatile or any non-volatile memory device, or array of memory devices, such as random access memory (RAM) devices, dynamic RAM (DRAM) devices, static DRAM (SDRAM) devices, double-data rate DRAM (DDR DRAM) devices, or magnetic RAM (MRAM) devices.
The bridge to 726 comprises a memory controller and asserts control signals for reading and writing of the memory 724, the reading and writing both by processor 722 and by other devices coupled to the bridge device 726 (i.e., direct memory access (DMA)). The memory 724 is the working memory for the processor 722, which stores programs executed by the processor 722 and which stores data structures used by the programs executed on the processor 722. In some cases, the programs held in the memory 724 are copied from other devices (e.g., hard drive 734, discussed below) prior to execution.
Bridge device 726 not only bridges the processor 722 to the memory 724, but also bridges the processor 722 and memory 724 to other devices. For example, the illustrative processing unit 700 may comprise an input/output (I/O) controller 732 which interfaces various I/O devices to the processing unit 700. In the illustrative processing unit 700, the I/O controller 732 enables coupling and use of non-volatile memory devices such as a hard drive (HD) 734, “floppy” drive 736 (and corresponding “floppy disk” 738), and optical drive 740 (and corresponding optical disk 742) (e.g., compact disk (CD), digital versatile disk (DVD)), a pointing device or 744, and a keyboard 736. In the case of processing unit 700 being a processing unit associated with the human/machine interface 28, the keyboard 746 and pointing device 744 may correspond to the keyboard 34 and pointing device 36, respectively, of
Still referring to
Network adapter 750 enables the processing unit 700 to communicate with other processing units over the computer network 20 (
As discussed above, when the illustrative processing unit 700 is associated with the human/machine interface 28, the processing unit 700 may be the computer through which a user interacts with the distributed processing unit 16 (e.g., to program the control loops related to the control physical process 10), flow computer 18, and also historian unit 22. Moreover, programs implemented and executed to perform the illustrative methods discussed above may be stored and/or executed from any of the computer-readable storage mediums of the illustrative processing unit 700 (e.g., memory 724, optical device 742, “floppy” device 738 or hard drive 734).
The various embodiments discussed to this point are in reference to a control system; however, the functionality of reduced data being held in a historian as historical data values, and calculating statistical data based the historical data values, may be used in any situation where a historian unit couples to a processing unit.
In addition to performing a historian function with the respect to data generated by the ultrasonic flow meter 802, and in accordance with at least some embodiments, the illustrative diagnostic package 800 may also receive from the user a request to calculate statistical data that is not maintained as historical data values. In the embodiments shown in
Regardless of the precise mechanism by which the request is received, the statistical data is calculated by the diagnostic package 800. Thus, the embodiments of
From the description provided herein, those skilled in the art are readily able to combine software created as described with appropriate general-purpose or special-purpose computer hardware to create a computer system and/or other computer subcomponents in accordance with the various embodiments, to create a computer system and/or computer subcomponents for carrying out the methods for various embodiments, and/or to create a computer-readable storage medium or mediums for storing a software program to implement the method aspects of the various embodiments.
The above discussion is meant to be illustrative of the principles and various embodiments of the present invention. Numerous variations and modifications will become apparent to those skilled in the art once the above disclosure is fully appreciated. For example, the discussion and terminology above is based on distributed process control (DCS) systems; however, similar functionality is implemented in systems based on supervisory control and data acquisition (SCADA) units coupled to programmable logic controllers (PLCs), which may be known as SCADA systems. Systems using SCADA may comprise one or more SCADA units coupled to one or more PLC units over a backbone communication network. The PLC units control the physical process (e.g., discrete or Boolean control, and “continuous” control, such as proportion-integral-differential), and the SCADA units gather information about the physical process and provide supervisory control to a system user. Stated otherwise, once programmed, the PLC units act autonomously to control a portion or all the physical process, and the SCADA units store historical data and provide a window to the state of control that enables a user to make control changes (e.g., flow set point changes, level set point changes). Thus, it is seen that the functionality provided by a SCADA unit is very similar, if not identical, to the human/machine interface and historian units discussed above. Moreover, the functionality provided by a PLC is very similar, if not identical, to the distributed processing units discussed above. The differences in terminology between SCADA systems and DCS systems are, by and large, the industries to which the systems are applied. DCS system terminology is used in reference to industrial plants (e.g., hydrocarbon processing, power plants), and SCADA terminology is used in reference to factory automation. For purposes of this disclosure and claims, however, the inventive contributions discussed in this specification in terms of DCS systems are equally applicable to systems discussed under SCADA terminology, and thus the fact that a manufacturer refers to components by a different name (e.g., PLC rather than distributed processing unit, and SCADA rather than historian unit and/or human/machine interface) shall not obviate infringement. More broadly still, the inventive contribution is applicable to any SCADA, PLC, diagnostic and/or real time monitoring package that includes within its design a historian function. It is intended that the following claims be interpreted to embrace all such variations and modifications.