Data sampling method for determining salient values in a large data stream

Techniques are disclosed for presenting users with relevant data and statistics related to the operations of an industrial system. Data obtained by a SCADA system may be stored in a real-time status database (which reflects the current process data of the industrial system) and a historian database (which archives the process data from the industrial system as it changes over time). A user may request from the SCADA system process data obtained during a specified period of time. The request may be subdivided into a plurality of time intervals, and process data associated with each time interval may be analyzed to determine one or more salient values that are representative of the interval. The salient values associated with each time interval then may be transmitted to the user in response to the process data request.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention generally relates to processing and transmitting data associated with a monitored industrial system.

2. Description of the Related Art

Generally, a pipeline system provides a continuous pipe conduit that includes a variety of components and equipment (e.g., valves, compressor stations, communications systems, and meters). A pipeline may be used to transport liquid or gaseous materials from one point to another, usually from one point (or points) of production or processing to another, or to points of use. For example, an air separation unit may be used to separate atmospheric air into gaseous components (e.g., oxygen gas (O2), nitrogen gas (N2), hydrogen gas (H2), Argon gas (Ar), etc.). At compressor stations, compressors maintain the pressure of the material in the pipeline as it is transported from one site to another. Similarly, for a liquid bearing pipeline, pumps may be used to introduce and maintain pressure for a liquid substance transported by the pipeline.

Running and maintaining a pipeline system can be expensive and complex, and the operations of a pipeline system are frequently coordinated and controlled from a central operations control center. At such a control center, an operator may monitor process data related to the operational state of the pipeline and each of its constituent elements using a SCADA (Supervisory Control and Data Acquisition) system. Other complex industrial systems and processes use a similar approach. For example, a petroleum refinery (at one end of a pipeline) may be monitored from a central control center using a real-time status database configured to receive data collected from the field devices of the refinery. Similarly, chemical production or processing facilities, steel mills, manufacturing plants, assembly lines, etc., are frequently monitored using a centralized operations control center.

Process data obtained by the SCADA system may be transmitted to users for analysis. However, due to network bandwidth limitations, local and remote users may wait long periods of time to receive the large amounts of data obtained by the SCADA system. As a result, data received for analysis may be stale, preventing analysts from identifying real-time trends or detecting trends, inefficiencies, malfunctions, etc. in a timely manner.

Accordingly, there is a need in the art for a more effective way of transmitting process data to local and remote users.

SUMMARY OF THE INVENTION

One embodiment of the present invention includes a method for fulfilling a request for process data related to the operations of a system. This method may generally include receiving, from an application program executing on a client computing system, a first selected interval granularity and a request for process data associated with a first time period and dividing the first time period into a first plurality of intervals based on the first selected interval granularity. This method may also include, for each interval in the first plurality of intervals, analyzing the process data of the monitored system to determine salient values. The salient values may include at least an initial value, a maximum value, a minimum value, and any local extrema of the process data of the monitored system. This method may also include transmitting the salient values associated with the first plurality of intervals to the application program. The application program is configured to render a graph of the process data according to the first selected interval granularity, wherein the graph preserves the salient values irrespective of the selected interval granularity.

Further embodiments provide a non-transitory computer-readable medium and a computing device to carry out the method set forth above.

DETAILED DESCRIPTION

Embodiments of the invention provide techniques for presenting users with relevant data and statistics related to the operations of an industrial system. Data obtained by a SCADA system may be stored in a real-time status database (which reflects the current process data of the industrial system) and a historian database (which archives the process data from the industrial system as it changes over time). A user may make a request to the SCADA system for process data obtained during a specified time period. The request may be subdivided into a plurality of intervals, and process data associated with each interval may be analyzed to determine one or more salient values that are representative of the interval. The salient values associated with each interval then may be transmitted to the user in response to the data request.

In one embodiment, the user may select an interval granularity, and the period of time for which process data is requested may be divided into a plurality of intervals based on the interval granularity. For example, the user may specify a desired number of intervals (e.g., 50, 400, 1000, etc.), a desired duration of each interval (e.g., 30 seconds, 5 minutes, 1 hour, etc.), and/or the desired number of data points (e.g., 10 samples, 500 samples, 1000 samples, etc.) for which salient values are to be determined. Additionally, the user may expand, reduce, shift, or otherwise alter the time period for which process data is to be analyzed. In response to receiving an updated time period and/or interval granularity from the user, process data may be re-analyzed for each of the updated intervals. Salient values determined for each time interval are then transmitted to the user. Doing so allows a user to efficiently control the amount of information received from the SCADA system.

The process data associated with each time interval may be analyzed to determine a variety of salient values, including, e.g., the initial value, maximum value, and minimum value obtained by the SCADA system during each interval. This analysis ensures that the peaks and valleys associated with each interval are captured and stored. Further, other types of values which accurately represent characteristics and/or trends of the process data associated with each interval, such as the average value, standard deviation, etc., may be determined and transmitted to the user. Prior to transmitting the salient values to the user, the salient values may be sorted, reordered, and/or compared to detect redundancy. In one embodiment, the salient values associated with each time interval may be typed, sorted, and arranged in a specified order. In addition, salient values associated with a particular interval may be compared to previous and/or subsequent intervals to detect redundant data. For example, the salient values associated with a particular interval may be compared to values associated with the previous interval to determine that the values are substantially the same. In response to such a determination, the salient values associated with the intervals may be consolidated, for example, by removing one or more salient values prior to transmitting the values to the user.

In sum, large amounts of process data related to the operations of an industrial system may be divided into discrete intervals and the process data associated with each interval may be analyzed to determine one or more salient values representative of the interval. The salient values then may be transmitted to the user in response to the request, as reflected in the time interval data. Accordingly, this approach enables users connected through a network having limited bandwidth to quickly and efficiently access and analyze industrial process data to identify real-time trends, malfunctions, inefficiencies, and the like.

FIG. 1illustrates a system100that includes a monitored pipeline network105and an operations control center130, according to one embodiment of the invention. As shown, monitored pipeline network105includes a production/processing facility107and delivery station1171-2. Facility107may represent, for example, a molecular gas generation plant that includes one or more air separation units used to purify gaseous substances from the ambient atmosphere. The resulting product is delivered to stations1171-2over a pressurized gas pipeline. Illustratively, pipeline105includes pipeline segments1091-5. Pipeline segments1091,1092, and1093, provide a path from facility107to delivery station1172and pipeline segments1091,1094and1095provide a path from facility107to delivery station1171. Additionally, pipeline105includes compressor stations110,115, and120used to maintain the pressure of gaseous substances transported over pipeline105.

Compressor stations110,115, and120may include sensor equipment used to monitor aspects of the operational state of the pipeline105. For a pressurized gas pipeline, for example, a wide variety of field devices and parameters may be monitored including, for example, inlet gas pressure, outlet gas pressure, gas temperature, cooling liquid temperature, flow rates, and power consumption, among others. Similarly, the operational state of various field devices, air separation units, and equipment at production facility107and delivery station117may be monitored by sensor equipment. Of course, for other industrial networks and systems, the sensors and monitoring equipment may be selected to suit the needs of a particular case.

In one embodiment, the results of the monitoring equipment are transmitted to the pipeline operations control center130. The pipeline operation control center130may employ a number of computer systems running application programs used to coordinate, monitor, and control the operations of pipeline105. Illustratively, pipeline operations control center130includes a SCADA (Supervisory Control and Data Acquisition) system135, a real-time database133, and a historian database134, and a local client170, each communicating over a network1392. Additionally, a remote client160communicates over a wide area network1391(e.g., the Internet) with the computer systems of the operations control center130. For example, a user may interact with an analysis tool162to access SCADA data over the network1391. The computer systems135,133,134,160and170are included to be representative of existing computer systems, e.g., desktop computers, server computers, laptop computers, tablet computers, and the like. However, embodiments of the invention are not limited to any particular computing system, application, device, architecture or network, and instead, may be adapted to take advantage of new computing systems and platforms as they become available. Additionally, one skilled in the art will recognize that the illustrations of computer systems135,133,134,160and170are simplified to highlight aspects of the present invention and that computing systems and networks typically include a variety of components not shown inFIG. 1.

As shown, SCADA system135includes a CPU131, storage132, and a memory136. Similarly, local client170includes a CPU175, storage176, and memory171. CPUs131and175are included to be representative of a single CPU, multiple CPUs, a single CPU having multiple processing cores, and the like. Memory136and171may be a random access memory. While the memory136and171is shown as a single entity, it should be understood that the memory136and171may comprise a plurality of modules, and that the memory136and171may exist at multiple levels, from high speed registers and caches to lower speed but larger DRAM chips. Storage132and176may be hard disk drive or solid-state drive storage devices. Storage132and176may also be a combination of fixed and/or removable storage devices, such as fixed disc drives, removable memory cards, or optical storage, etc.

As shown, the memory136of the SCADA system135includes a salient values engine137and one or more active sessions138. SCADA system135centralizes process data and allows remote monitoring and control of pipeline105. Illustratively, the SCADA135system is configured to gather data in real-time from remote locations in order to control equipment and monitor conditions in pipeline105. The monitored data may be stored in real-time database133. The real-time database133is generally used to store the last known value for each element or component of an industrial system (e.g., pipeline105) monitored using system100. That is, the real-time database133may store data values each representing a monitored parameter of pipeline105and the current operational value of that parameter. The data may be written into real-time database133periodically, where values are updated at regular intervals, or exception based, where a new values are written into real-time database133when the monitored value changes more than a predetermined value. SCADA system135may include both hardware and software components. The hardware gathers and feeds data into SCADA system135, which processes this data and presents it to a user on local client170. In one embodiment, a historian database134may be configured to retrieve (or receive) the values for monitored parameters from real-time database133. Thus, the historian database134provides an archive of values from the real-time database133.

In one embodiment, the salient values engine137manages process data requests received from a user of local client170(or remote client160). For example, a user seeking to remotely access a large volume of data located on the SCADA system135may interact with an analysis tool172on remote client160to connect to the salient values engine137executing on SCADA system135. The user then may request process data acquired during a particular time period. In response, the salient values engine137divides the time period into a plurality of intervals and returns process data that preserves the most salient values for each interval. Additionally, a user may update the time period for which process data is requested and/or specify a different interval granularity for which salient values are returned. In response, the salient values engine137returns updated salient values to the local client170. In one embodiment, the salient values engine137creates an active session138for each user, associates user-specified parameters (e.g., time period, interval granularity, salient value types, etc.) with each active session138, and provides updated salient values to each user when additional process data is received by the real-time database133.

The amount of process data returned to the user may depend on the interval granularity specified by the user. For example, when the interval granularity is increased, the time period may be divided into a greater number of intervals. As a result, more process data may be returned to the user. Conversely, when the interval granularity is decreased, the time period may be divided into fewer intervals, and less process data may be returned to the user. Thus, the user can adjust the interval granularity to refine the amount of process data returned by the SCADA system135. That is, when more process data is desired (e.g., for performing detailed analyses), the interval granularity may be increased, and when less process data is desired (e.g., to decrease latency and/or data transmission times if the user is connected to the SCADA system135through a network having limited bandwidth), the interval granularity may be decreased. At the same time, regardless of the amount of process data, the salient values are preserved in the data returned to a client. Accordingly, the techniques described herein dramatically improve upon conventional methods, which typically sample process data in a periodic manner and fail to capture relevant characteristics (e.g., data fluctuations, local minimum and maximum values).

When executed by the local client170(or remote client160), the analysis tool172may present a user with graphs, tables, statistics, etc. presenting the process data captured by the SCADA system135. The analysis tool172may be configured to preserve both current salient values received from the SCADA system135as well as and cached values177previously received from the SCADA system135and stored in storage176. In one embodiment, salient values may include an initial value, maximum value, and minimum value associated with each interval in the time period. The analysis tool172then may present the data for the each interval included in the specified time period, again preserving the salient values.

In one embodiment, the SCADA system135may monitor the gas temperature and gas pressure of a pipeline used to transport pressurized gas from production processing facility107to delivery station1171. In such a case, in response to a request from the analysis tool172for pipeline data acquired during a specified time period, the salient values engine137may divide the time period into a plurality of intervals corresponding to the time period. For each interval, the salient values engine137determines an initial value, maximum value, and minimum value and transmits the values to the analysis tool172. When received, the analysis tool172updates one or more graphs with the process data and displays the updated graphs and salient values to the user.

Transmitting a smaller volume of process data to the analysis tool172, while retaining salient values associated with the process data, significantly decreases the bandwidth requirements and latency associated with fulfilling requests from the local client170(and remote client160). In particular, a remote client160connected to the SCADA system135through a limited-bandwidth and/or high latency network may experience significant increases in the speed with which he or she is able to receive and navigate large amounts of process data. As a result, users are able to perform real-time analysis of trends, inefficiencies, and malfunctions associated with an industrial process. The types of salient values (e.g., initial, maximum, minimum, etc.) transmitted by the salient values engine137may be selected base on the categories of processes monitored by the operations control center130. Further, although real-time database133, historian system134, SCADA system135, and local client170, are shown as separate components, one of ordinary skill in the art will recognize that these components may be applications running on a single computer system, or on multiple computer systems, and further, that these components may be configured in a variety of ways.

FIG. 2illustrates process data acquired from an exemplary pipeline by the SCADA system135as a function of time. As shown, the time period210for which process data is acquired may be divided into a plurality of intervals2201-4. Each interval2201-4may correspond to a particular duration of time (e.g., seconds, minutes, hours, days, etc.), a particular number of data points, etc. In the exemplary process data shown inFIG. 2, it is assumed that each interval corresponds to one hour of data acquisition. Thus, although the exemplary flow rate data is shown as a continuous line for ease of illustration, the flow rate data may consist of a plurality of distinct data points (e.g., hundreds of data points or more for each interval).

Each interval2201-4may be separately analyzed by the salient values engine137, and one or more salient values associated with each interval2201-4may be transmitted to the analysis tool172(or analysis tool162). In an exemplary embodiment, the salient values transmitted to the analysis tool172include the initial value, maximum value, minimum value, and local extrema (e.g., local maxima and minima) associated with each interval2201-4of time period210. For example, the salient values engine137may analyze interval2201to determine that the initial flow rate occurs at point A, the minimum flow rate occurs at point A, and the maximum flow rate occurs at point B. The salient values engine137may further analyze the plurality of data points acquired from point A to point C and compute other statistics, such as the average value, the median value, the mode, etc. Similarly, the salient values engine137may analyze interval2202to determine that the initial flow rate occurs at point C, the minimum flow rate occurs at point F, and the maximum flow rate occurs at point E. The salient values engine137may further determine that a local extremum (i.e., a local minimum value) occurs at point D. These salient values then may be transmitted to the analysis tool172.

Intervals2203and2204may be analyzed by the salient values engine137to determine that the initial value, maximum value, and minimum value all correspond to the substantially the same value (i.e., flow rate G=flow rate H=flow rate I). In response to such a determination, the salient values engine137may consolidate process data for intervals2203and2204. For example, the salient values engine137may reduce the amount of process data transmitted while preserving the salient values associated with intervals2203and2204. As applied to intervals2203and2204illustrated inFIG. 2, the process data transmitted by the salient values engine137may correspond to a single flow rate which represents the initial value, maximum value, and minimum value for intervals2203and2204.

Additionally, in the response to a change in interval granularity, the salient values engine137may re-analyze the process data associated with time period210. For example, the interval granularity may be decreased such that time period210corresponds to a single interval220. In this case, the salient values engine137may analyze this interval220to determine that the minimum flow rate occurs at point A, the maximum flow rate occurs at point E, and local extrema occur at points B, D, F, and G. More specifically, points B and G may be determined to be local maxima, and points D and F may be determined to be local minima. Each of these salient values then may be transmitted to the analysis tool172in response to the change in interval granularity.

Thus, salient values may be preserved when interval granularity is modified, ensuring that important process data characteristics are not missed. Further, whereas conventional methods for responding to requests for process data may expend significant network resources (e.g., bandwidth) transmitting large amounts of data, the above-described method transmits a smaller volume of process data while retaining salient values associated with each of a plurality of intervals. Consequently, users connected to the SCADA system135through local and remote client devices170,160are able to quickly navigate through and refine searches associated with large amounts of process data while being presented with the most important aspects of the process data. In addition, by dividing each request into a plurality of intervals and separately analyzing the process data acquired for each interval, important process data, such as initial values, local minima, and local maxima, are not discarded. Moreover, by enabling the user to adjust and update the interval granularity, intervals may be sized in a manner appropriate for a given process or set of circumstances.

FIG. 3is a graph of raw flow rate data acquired for an industrial process over a time period of 31 days. The raw flow rate data may include thousands of individual data points acquired over a 31-day time period. As shown, the flow rate repeatedly fluctuates between a maximum value of 900.00 and a minimum value of 0.00 during the 31-day time period.

FIGS. 4A and 4Bare graphs presenting salient values determined from the raw flow rate data ofFIG. 3, as presented by the analysis tool172. Salient values are presented for a time period of 31 days inFIG. 4Aand a time period of 3 days inFIG. 4B. Each of the time periods illustrated inFIGS. 4A and 4Bare divided into 100 intervals, and salient values, including the initial value, minimum value, maximum value, and local extrema are presented for each interval. As shown, the graph of salient values determined for the 31-day time period includes significantly fewer data points, and is significantly easier to read, than the graph of raw data illustrated inFIG. 3. In addition, this graph retains the salient characteristics of the raw data, such as the local extrema (e.g., local maxima and minima) associated with each interval.

FIG. 4Billustrates a further refinement of the flow rate data, in which a user has specified a time period of 3 days and requested salient values for each of 100 intervals within the 3-day time period. As shown, the data continues to preserve the salient values, in particular, the maxima and minima associated with each interval, even though X has changed. Doing so allows users of analysis tool172to observe the oscillation of the flow rate without downloading and sorting through large amounts of data.

FIG. 5illustrates a method500for fulfilling a request for process data related to the operations of an industrial system, according to one embodiment of the invention. As shown, the method begins at step505, where a request for process data of a monitored industrial system is received by the salient values engine137from an application program (e.g., analysis tool172or162) executing on a client computing system (e.g., local client170or remote client160). The request may specify a time period for which process data is desired. The request may further specify the number of intervals into which the specified time period is to be divided and the order in which the salient values are to be returned. Alternatively, the request may specify the size of each interval in units of time or number of data points.

Next, at step510, the salient values engine137divides the time period into a number of intervals according to the specified interval granularity. At step515, process data associated with each interval is retrieved from the real-time database133and/or historian database134and analyzed to determine one or more salient values for each interval. Determining salient values may include sorting raw data, selecting values from raw data, or performing calculations with raw data. The salient values determined for each interval may include an initial value, a maximum value, a minimum value, local extrema, and the like.

At step520, the salient values engine137may process the salient values, as illustrated in further detail in the method600ofFIG. 6, discussed below. At step525, the SCADA system135transmits the salient values to the client system, and the analysis tool172(or analysis tool162) renders a display of each salient value. Finally, at step530, after receiving a request for process data and transmitting salient values to a client system, the salient values engine137may receive updated parameters from the user. For example, the user may modify the time period and/or interval granularity for which process data is requested. In response, the method500may return to step510, where the time period is divided into a plurality of intervals, each of which are analyzed to determine one or more salient values.

FIG. 6illustrates a method600for processing salient values related to the operations of an industrial system, according to one embodiment of the invention. The method begins at step605, where the salient values are read from the memory136of the SCADA system135. The salient values may include, without limitation, an initial value, a maximum value, a minimum value, and local extrema. At step610, the salient values may be arranged in a predetermined order. For example, the user may specify that, for each interval, the initial value is to be transmitted first, followed by the maximum and minimum values, and followed by local extrema. Thus, such a configuration may further increase the speed with which process data is requested and received from the SCADA system135, since the ordered salient values, and not labels or meta data associated with each salient value or interval, is transmitted to the client system.

Next, at step615, the salient values engine137may process the salient values to determine that the values associated with a plurality of consecutive intervals are identical or substantially the same. In response to this determination, the salient values engine137may consolidate the one or more salient values at step620. Consolidation may include, without limitation, removing one or more of the salient values, associating a single salient value with a plurality of intervals. Finally, at step625, the salient values engine137determines whether salient values are to be processed for another interval.

In sum, upon request, large amounts of process data related to the operations of an industrial system may be divided into discrete intervals, and the process data associated with each interval may be analyzed to determine one or more salient values representative of the interval. The salient values then may be transmitted to the user in response to the request. One advantage of this approach is that it enables users connected through a network having limited bandwidth to quickly and efficiently access and analyze industrial process data to identify real-time trends, malfunctions, inefficiencies, and the like.

The invention has been described above with reference to specific embodiments. Persons of ordinary skill in the art, however, will understand that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention as set forth in the appended claims. The foregoing description and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.

Therefore, the scope of embodiments of the present invention is set forth in the claims that follow.