This disclosure relates generally to process plant diagnostics and, more particularly, to collecting process data to support the development and implementation of process plant diagnostics.
Process control systems, like those used in chemical, petroleum or other processes, typically include one or more centralized or decentralized process controllers communicatively coupled to at least one host or operator workstation and to one or more process control and instrumentation devices such as, for example, field devices, via analog, digital or combined analog/digital buses. Field devices, which may be, for example, valves, valve positioners, switches, transmitters, and sensors (e.g., temperature, pressure, and flow rate sensors), are located within the process plant environment, and perform functions within the process such as opening or closing valves, measuring process parameters, increasing or decreasing fluid flow, etc. Smart field devices such as field devices conforming to the well-known FOUNDATION™ Fieldbus (hereinafter “Fieldbus”) protocol or the HART® protocol may also perform control calculations, alarming functions, and other control functions commonly implemented within the process controller.
The process controllers, which are typically located within the process plant environment, receive signals indicative of process measurements or process variables made by or associated with the field devices and/or other information pertaining to the field devices, and execute controller applications. The controller applications implement, for example, different control modules that make process control decisions, generate control signals based on the received information, and coordinate with the control modules or blocks being performed in the field devices such as HART and Fieldbus field devices. The control modules in the process controllers send the control signals over the communication lines or signal paths to the field devices, to thereby control the operation of the process.
Information from the field devices and the process controllers is typically made available to one or more other hardware devices such as operator workstations, maintenance workstations, personal computers, handheld devices, data historians, report generators, centralized databases, etc., to enable an operator or a maintenance person to perform desired functions with respect to the process such as, for example, changing settings of the process control routine, modifying the operation of the control modules within the process controllers or the smart field devices, viewing the current state of the process or of particular devices within the process plant, viewing alarms generated by field devices and process controllers, simulating the operation of the process for the purpose of training personnel or testing the process control software, diagnosing problems or hardware failures within the process plant, etc.
As is known, problems frequently arise within a process plant environment, especially a process plant having a large number of field devices and supporting equipment. These problems may take the form of broken or malfunctioning devices, logic elements, such as software routines, being in improper modes, process control loops being improperly tuned, one or more failures in communications between devices within the process plant, etc. These and other problems while numerous in nature, generally result in the process operating in an abnormal state (i.e., the process plant being in an abnormal situation) which is usually associated with suboptimal performance of the process plant. Many diagnostic tools and applications have been developed to detect and determine the cause of problems within a process plant and to assist an operator or a maintenance person to diagnose and correct the problems, once the problems have occurred and been detected. For example, operator workstations, which are typically connected to the process controllers through communication connections such as a direct or wireless bus, Ethernet, modem, phone line, and the like, have processors and memories that are adapted to run software, such as the DeltaV™ and Ovation control systems, sold by Emerson Process Management. These control systems have numerous control module and control loop diagnostic tools. Likewise, maintenance workstations, which may be connected to the process control devices, such as field devices, via the same communication connections as the controller applications, or via different communication connections, such as OPC connections, handheld connections, etc., typically include one or more applications designed to view maintenance alarms and alerts generated by field devices within the process plant, to test devices within the process plant and to perform maintenance activities on the field devices and other devices within the process plant. Similar diagnostic applications have been developed to diagnose problems within the supporting equipment within the process plant.
Thus, for example, software available commercially as the AMS™ Suite: Intelligent Device Manager from Emerson Process Management enables communication with and stores data pertaining to field devices to ascertain and track the operating state of the field devices. See also U.S. Pat. No. 5,960,214 entitled “Integrated Communication Network for use in a Field Device Management System”). In some instances, the AMS™ software may be used to communicate with a field device to change parameters within the field device, to cause the field device to run applications on itself such as, for example, self-calibration routines or self-diagnostic routines, to obtain information about the status or health of the field device, etc. This information may include, for example, status information (e.g., whether an alarm or other similar event has occurred), device configuration information (e.g., the manner in which the field device is currently or may be configured and the type of measuring units used by the field device), device parameters (e.g., the field device range values and other parameters), etc. Of course, this information may be used by a maintenance person to monitor, maintain, and/or diagnose problems with field devices.
Similarly, many process plants have included software applications such as, for example, RBMware provided by CSI Systems, to monitor, diagnose, and optimize the operating state of various rotating equipment. Maintenance personnel usually use these applications to maintain and oversee the performance of rotating equipment in the plant, to determine problems with the rotating equipment, and to determine when and if the rotating equipment must be repaired or replaced. Similarly, many process plants include power control and diagnostic applications such as those provided by, for example, the Liebert and ASCO companies, to control and maintain the power generation and distribution equipment. It is also known to run control optimization applications such as, for example, real-time optimizers (RTO+), within a process plant to optimize the control activities of the process plant. Such optimization applications typically use complex algorithms and/or models of the process plant to predict how inputs may be changed to optimize operation of the process plant with respect to some desired optimization variable such as, for example, profit.
These and other diagnostic and optimization applications are typically implemented on a system-wide basis in one or more of the operator or maintenance workstations, and may provide preconfigured displays to the operator or maintenance personnel regarding the operating state of the process plant, or the devices and equipment within the process plant. Typical displays include alarming displays that receive alarms generated by the process controllers or other devices within the process plant, control displays indicating the operating state of the process controllers and other devices within the process plant, maintenance displays indicating the operating state of the devices within the process plant, etc. Likewise, these and other diagnostic applications may enable an operator or a maintenance person to retune a control loop or to reset other control parameters, to run a test on one or more field devices to determine the current status of those field devices, or to calibrate field devices or other equipment.
While these various applications and tools are very helpful in identifying and correcting problems within a process plant, these diagnostic applications are generally configured to be used only after a problem has already occurred within a process plant and, therefore, after an abnormal situation already exists within the plant. Unfortunately, an abnormal situation may exist for some time before it is detected, identified and corrected using these tools, resulting in the suboptimal performance of the process plant for the period of time during which the problem is detected, identified and corrected. In many cases, a control operator will first detect that some problem exists based on alarms, alerts or poor performance of the process plant. The operator will then notify the maintenance personnel of the potential problem. The maintenance personnel may or may not detect an actual problem and may need further prompting before actually running tests or other diagnostic applications, or performing other activities needed to identify the actual problem. Once the problem is identified, the maintenance personnel may need to order parts and schedule a maintenance procedure, all of which may result in a significant period of time between the occurrence of a problem and the correction of that problem, during which time the process plant runs in an abnormal situation generally associated with the sub-optimal operation of the plant.
Additionally, many process plants can experience an abnormal situation which results in significant costs or damage within the plant in a relatively short amount of time. For example, some abnormal situations can cause significant damage to equipment, the loss of raw materials, or significant unexpected downtime within the process plant if these abnormal situations exist for even a short amount of time. Thus, merely detecting a problem within the plant after the problem has occurred, no matter how quickly the problem is corrected, may still result in significant loss or damage within the process plant. As a result, it is desirable to try to prevent abnormal situations from arising in the first place, instead of simply trying to react to and correct problems within the process plant after an abnormal situation arises.
One technique that may be used to collect data that enables a user to predict the occurrence of certain abnormal situations within a process plant before these abnormal situations actually arise, with the purpose of taking steps to prevent the predicted abnormal situation before any significant loss within the process plant takes place. This procedure is disclosed in U.S. patent application Ser. No. 09/972,078, now U.S. Pat. No. 7,085,610, entitled “Root Cause Diagnostics” (based in part on U.S. patent application Ser. No. 08/623,569, now U.S. Pat. No. 6,017,143). The entire disclosures of both of these applications are hereby incorporated by reference herein. Generally speaking, this technique places statistical data collection and processing blocks or statistical processing monitoring (SPM) blocks, in each of a number of devices, such as field devices, within a process plant. The statistical data collection and processing blocks collect process variable data and determine certain statistical measures associated with the collected data, such as the mean, median, standard deviation, etc. These statistical measures may then be sent to a user and analyzed to recognize patterns suggesting the future occurrence of a known abnormal situation. Once a particular suspected future abnormal situation is detected, steps may be taken to correct the underlying problem, thereby avoiding the abnormal situation in the first place.
Often, the identification of an abnormal situation amounts to only the beginning of the process to develop a technique for future detection of the abnormal situation. Detection techniques may still need to be developed to detect that an abnormal condition has occurred, or will occur, in a certain piece of process equipment. Even if the techniques to detect abnormal situations can be developed by experts, the resulting techniques are typically first tested and verified in the field before actual installation. Only after the tests in the field verify the detection technique are plant personnel likely to rely on the technique to monitor an actual operating plant.
Such field tests often involve the collection and storage of vast amounts of process data. Detailed data collection occurs during development, in which case the process parameters for which data should be collected may not be known with certainty. Moreover, one may not know when the abnormal situation will occur, thereby necessitating continuous and long-term data collection lasting, for example, several months. Furthermore, because some abnormal situations occur very quickly (e.g., on the order of seconds), it is often useful to store all of the process data at the fastest possible sampling rate. In this way, one ensures that the process data required for detection of the abnormal situation is available after its occurrence.
While process historians are available to store large amounts of process data, typical process historians are configured to collect data over long periods of time (e.g., years). As a result, historians are often configured to compress or reduce the collected data to significant extents. For instance, some process measurements may only be polled once per hour. Other measurements may not be collected unless the data value exceeds a deadband or other range. More generally, the manner or arrangement in which process historians store process data may also be unsuitable for monitoring process data generated during a field trial. Further, use of an available historian to store field trial data may be inappropriate, as the capacity of the historian could be quickly exhausted.
For the foregoing reasons, process historians and the data collected thereby are not suitable for process data collection in circumstances where either the cause, timing or effect of the abnormal situation is unknown.
In accordance with certain aspects of the disclosure, a number of techniques are disclosed to facilitate the monitoring of the implementation of a process control system and any elements thereof. Such monitoring generally includes or involves process data collection and capture, which may be useful in connection with the development of further aspects or elements of the process control system, such as diagnostic elements. The diagnostic functionality under development or testing may involve the implementation of modules, routines or other logic elements to detect and/or prevent abnormal situations or operation. The techniques disclosed herein may facilitate the development of such modules, routines or other logic elements via the collection of data during field or other testing situations or, more generally, any operational context. The process control systems may thus present large scale data capture requirements, and some aspects of the disclosure and embodiments thereof are directed to, or well suited for, automated or automatic configuration and data archiving, as well as data storage and handling techniques (e.g., buffering) for handling the extensive data involved. The configuration techniques may include automated scanning techniques for identifying or detecting those elements of the process control system for monitoring. The data storage and buffering techniques may include data storage arrangements directed to efficiently handling the process data collected.
Referring now to
Still further, maintenance systems, such as computers executing the AMS application or any other device monitoring and communication applications may be connected to the process control systems 12 and 14 or to the individual devices therein to perform maintenance and monitoring activities. For example, a maintenance computer 18 may be connected to the controller 12B and/or to the devices 15 via any desired communication lines or networks (including wireless or handheld device networks) to communicate with and, in some instances, reconfigure or perform other maintenance activities on the devices 15. Similarly, maintenance applications such as the AMS application may be installed in and executed by one or more of the user interfaces 14A associated with the distributed process control system 14 to perform maintenance and monitoring functions, including data collection related to the operating status of the devices 16.
The process plant 10 also includes various rotating equipment 20, such as turbines, motors, etc. which are connected to a maintenance computer 22 via some permanent or temporary communication link (such as a bus, a wireless communication system or hand held devices which are connected to the equipment 20 to take readings and are then removed). The maintenance computer 22 may store and execute known monitoring and diagnostic applications 23 provided by, for example, CSI (an Emerson Process Management Company) or other any other known applications used to diagnose, monitor and optimize the operating state of the rotating equipment 20. Maintenance personnel usually use the applications 23 to maintain and oversee the performance of rotating equipment 20 in the plant 10, to determine problems with the rotating equipment 20 and to determine when and if the rotating equipment 20 must be repaired or replaced. In some cases, outside consultants or service organizations may temporarily acquire or measure data pertaining to the equipment 20 and use this data to perform analyses for the equipment 20 to detect problems, poor performance or other issues effecting the equipment 20. In these cases, the computers running the analyses may not be connected to the rest of the system 10 via any communication line or may be connected only temporarily.
Similarly, a power generation and distribution system 24 having power generating and distribution equipment 25 associated with the plant 10 is connected via, for example, a bus, to another computer 26 which runs and oversees the operation of the power generating and distribution equipment 25 within the plant 10. The computer 26 may execute known power control and diagnostics applications 27 such as those provided by, for example, Liebert and ASCO or other companies to control and maintain the power generation and distribution equipment 25. Again, in many cases, outside consultants or service organizations may use service applications that temporarily acquire or measure data pertaining to the equipment 25 and use this data to perform analyses for the equipment 25 to detect problems, poor performance or other issues effecting the equipment 25. In these cases, the computers (such as the computer 26) running the analyses may not be connected to the rest of the system 10 via any communication line or may be connected only temporarily.
As illustrated in
Generally speaking, the abnormal situation prevention system 35 may communicate with abnormal operation detection systems (not shown in
By way of background, OPC is a standard that establishes a mechanism for accessing process data from the plant or process control system. Typically, an OPC server is implemented in a process control system to expose or provide process information from, for example, field devices. An OPC client creates a connection to an OPC server and writes or reads process information to or from a field device. OPC servers use OLE technology (i.e., Component Object Model or COM) to communicate with such clients so that the software applications implemented by the clients can access data from the field devices or other process plant equipment.
The portion 50 of the process plant 10 illustrated in
In any event, one or more user interfaces or computers 72 and 74 (which may be any types of personal computers, workstations, etc.) accessible by plant personnel such as configuration engineers, process control operators, maintenance personnel, plant managers, supervisors, etc. are coupled to the process controllers 60 via a communication line or bus 76 which may be implemented using any desired hardwired or wireless communication structure, and using any desired or suitable communication protocol such as, for example, an Ethernet protocol. In addition, a database 78 may be connected to the communication bus 76 to operate as a data historian that collects and stores configuration information as well as on-line process variable data, parameter data, status data, and other data associated with the process controllers 60 and field devices 64 and 66 within the process plant 10. Thus, the database 78 may operate as a configuration database to store the current configuration, including process configuration modules, as well as control configuration information for the process control system 54 as downloaded to and stored within the process controllers 60 and the field devices 64 and 66. Likewise, the database 78 may store historical abnormal situation prevention data, including statistical data collected by the field devices 64 and 66 within the process plant 10, statistical data determined from process variables collected by the field devices 64 and 66, and other types of data that will be described below.
While the process controllers 60, I/O devices 68 and 70, and field devices 64 and 66 are typically located down within and distributed throughout the sometimes harsh plant environment, the workstations 72 and 74, and the database 78 are usually located in control rooms, maintenance rooms or other less harsh environments easily accessible by operators, maintenance personnel, etc.
Generally speaking, the process controllers 60 store and execute one or more controller applications that implement control strategies using a number of different, independently executed, control modules or blocks. The control modules may each be made up of what are commonly referred to as function blocks, wherein each function block is a part or a subroutine of an overall control routine and operates in conjunction with other function blocks (via communications called links) to implement process control loops within the process plant 10. As is well known, function blocks, which may be objects in an object-oriented programming protocol, typically perform one of an input function, such as that associated with a transmitter, a sensor or other process parameter measurement device, a control function, such as that associated with a control routine that performs PID, fuzzy logic, etc. control, or an output function, which controls the operation of some device, such as a valve, to perform some physical function within the process plant 10. Of course, hybrid and other types of complex function blocks exist, such as model predictive controllers (MPCs), optimizers, etc. It is to be understood that while the Fieldbus protocol and the DeltaV™ system protocol use control modules and function blocks designed and implemented in an object-oriented programming protocol, the control modules may be designed using any desired control programming scheme including, for example, sequential function blocks, ladder logic, etc., and are not limited to being designed using function blocks or any other particular programming technique.
As illustrated in
Each of one or more of the field devices 64 and 66 may include a memory (not shown) for storing routines such as routines for implementing statistical data collection pertaining to one or more process variables sensed by sensing device and/or routines for abnormal operation detection, which will be described below. Each of one or more of the field devices 64 and 66 may also include a processor (not shown) that executes routines such as routines for implementing statistical data collection and/or routines for abnormal operation detection. Statistical data collection and/or abnormal operation detection need not be implemented by software. Rather, one of ordinary skill in the art will recognize that such systems may be implemented by any combination of software, firmware, and/or hardware within one or more field devices and or other devices.
As shown in
Generally speaking, the blocks 80 and 82 or sub-elements of these blocks, collect data, such as process variable data, from the device in which they are located and/or from other devices. Additionally, the blocks 80 and 82 or sub-elements of these blocks may process the variable data and perform an analysis on the data for any number of reasons. For example, the block 80, which is illustrated as being associated with a valve, may have a stuck valve detection routine which analyzes the valve process variable data to determine if the valve is in a stuck condition. In addition, the block 80 may include a set of one or more statistical process monitoring (SPM) blocks or units such as blocks SPM1-SPM4 which may collect process variable or other data within the valve and perform one or more statistical calculations on the collected data to determine, for example, a mean, a median, a standard deviation, a root-mean-square (RMS), a rate of change, a range, a minimum, a maximum, etc. of the collected data and/or to detect events such as drift, bias, noise, spikes, etc., in the collected data. Neither the specific statistical data generated, nor the method in which it is generated, is critical. Thus, different types of statistical data can be generated in addition to, or instead of, the specific types described above. Additionally, a variety of techniques, including known techniques, can be used to generate such data. The term statistical process monitoring (SPM) block is used herein to describe functionality that performs statistical process monitoring on at least one process variable or other process parameter, and may be performed by any desired software, firmware or hardware within the device or even outside of a device for which data is collected. It will be understood that, because the SPMs are generally located in the devices where the device data is collected, the SPMs can acquire quantitatively more and qualitatively more accurate process variable data. As a result, the SPM blocks are generally capable of determining better statistical calculations with respect to the collected process variable data than a block located outside of the device in which the process variable data is collected.
It is to be understood that although the blocks 80 and 82 are shown to include SPM blocks in
It is to be understood that although the blocks 80 and 82 are shown to include SPM blocks in
The block 82 of
Further details regarding the implementation and configuration of ASP systems and components thereof can be found in U.S. Pat. Publ. No. 2005/0197803, now U.S. Pat. No. 7,079,984 (“Abnormal situation prevention in a process plant”), U.S. Pat. Publ. No. 2005/0197806 (“Configuration system and method for abnormal situation prevention in a process plant”), and U.S. Pat. Publ. No. 2005/0197805 (“Data presentation system for abnormal situation prevention in the process plant”), each of which is hereby incorporated by reference for all purposes.
In the ASP systems and techniques described above and in the referenced documents, the SPM (or ASP) blocks 80, 82 may be associated with, or considered components of, one or more ASP modules. While ASP blocks may reside in a field device, where the faster-sampled data is available, ASP modules may reside in a host system or controller. The ASP modules may take data from one or more ASP blocks, and use the data to make a decision about the larger system. More generally, an ASP module may be developed and configured to receive data from one or more function blocks (e.g., ASP blocks) to support diagnostics for each type of field device, instrumentation or other equipment (e.g., valve, pump, etc.). Nonetheless, the function blocks associated with an ASP module may reside and be implemented by devices other than the specific equipment for which it was developed. In such cases, the ASP module has a distributed nature. Other ASP modules may be implemented entirely within one device, such as the process controller 60, despite being directed to diagnostics for a specific field device. In any event, a diagnostics routine or technique may be developed for each equipment type for detecting, predicting and preventing abnormal situations or operation of the equipment (or process). For ease in description only, the term “ASP module” will be used herein to refer to such routines or techniques. An ASP module is therefore responsive to a set of measurements needed to perform the diagnostics, and further includes (i) a set of abnormal conditions to be detected by the module, and (ii) a set of rules, which link a change in the measurements to a corresponding abnormal condition. Furthermore, references to ASP modules in the description of the disclosed techniques to follow are set forth with the understanding that the techniques may be utilized in conjunction with ASP blocks as well.
In some cases, the configuration application 38 or other component of the ASP system 35 may support the development or generation of a template for each ASP module. For example, the configuration and development platform provided by the DeltaV™ control system may be used to create specific instances, or instantiations, of ASP modules from corresponding composite template blocks.
More generally, the ASP module 90 need not be limited to the form shown in
In operation, the data structure underlying the OPC hierarchy 98 may be accessed to obtain process data and other information from the items in the various levels of the tree. For example, the OPC hierarchy 98 may be established and maintained by an OPC server, such as DeltaV™, and any third-party OPC client can obtain the data by reading or accessing the hierarchy items.
ASP Module Development and Testing
The development of ASP functionality through, for example, the ASP module 90, typically requires multiple stages, involving design and development steps as well as testing of prototypes in field trials. During design and development, the process measurements relevant to the ASP functionality are determined. Then the process measurement data may be analyzed to determine the changes in the process measurements that may be indicative of an abnormal situation. Following that determination, the calculations and logic necessary to detect those changes are specified. Typically, these determinations and development stages are revisited a number of times to make adjustments suggested by testing of prototypes in field trials. The field trials therefore provide for more robust and reliable ASP functionality.
During the prototyping and field trial stages of ASP module development, the relevant (and potentially relevant) process data is logged or otherwise collected for later analysis. When the prototype ASP module does not work correctly, the process data provides a mechanism for determining how the calculations, logic, and/or input parameters should be modified. Through multiple iterations of such testing and data logging, the ASP module is refined to accurately detect a specific abnormal situation.
Process Data Collection, Storage and Backup
The data capture application 106, or any portion thereof, may correspond with, or be integrated to any desired extent, with one or more of the applications 38, 40, and 42, described above. As a result, the data capture application 106, or any technique or routine implemented thereby, may form a part of, or be otherwise integrated with, a process control system. However, in some cases, the configuration of the data capture application 106 as a stand-alone application apart from the process control system and its applications may be desirable for a number of reasons. For example, a stand-alone data capture application may provide flexibility and clarity in selecting process parameters for monitoring. Furthermore, a stand-alone data capture application may more easily present one or more dedicated user interface displays to detect alarming and other information during field trials. Such dedicated displays may help avoid confusion for control system operators that would otherwise view the field trial data in the same user interface displays used for actual process control. In any event, the system 104, the data capture application 106, and any component thereof, may be configured to communicate with the process plant, the process control network, the process control system, etc., via any desired mechanism, medium and technique (e.g., Ethernet, wireless, etc.), including any one or more of the manners described above in connection with the applications 38, 40, 42, and in the referenced documents. To that end, the same or similar communication techniques may be utilized.
The data capture application 106 includes a number of components or modules directed to configuring and using the system 104 to capture process data for diagnostics development and testing, as well as other process control system monitoring. A data capture configuration module 112 is generally directed to supporting user configuration of the operation of the system 104 and the application 106 through a number of user interfaces described below. The data capture configuration module 112 may also include functionality for automated configuration of the application 106. Generally speaking, the configuration module 112 supports the process of identifying or selecting the process parameters for which process data will be logged, captured and stored.
Once the process parameters have been identified or selected, a data capture interface module 114 may be executed to implement a number of data collection, handling and other processing routines. The data capture interface module 114 may include or communicate with an OPC or other interface to facilitate the initial gathering and capture of the process data. The data capture interface module 114 may also control the processing or handling of the process data after it has initially been gathered. Specifically, the data capture interface module 114 may direct the operation of a data buffer 116 and its communications and other interactions with the database 108. The data capture interface module 114 may also control a backup interface 118 generally directed to facilitating the further storage of process data in the external media 110. Further details regarding the operation of the data capture interface module 114, the data buffer 116, and the backup interface 118, are provided below. Generally speaking, however, the operation of the data buffer 116 and the backup interface 118 may be automated to any desired extent, such that manual steps taken by an operator during the data collection procedure are kept to a minimum.
The data capture interface module 114 or, more generally, the data capture application 106, may control the storage of process data in the database 108. Alternatively or additionally, the database 108 may include dedicated database management functionality. In either case, the database 108 may be automatically and periodically maintained via a number of data management storage techniques and operations, as well as data purge operations, all of which are described below.
At any point during implementation of the data capture application 106, the process data collected in the database 108 or stored elsewhere in the system 104 may be accessed for analysis by a user. Such access may be desirable to view data trends or snapshots of specific process parameters involved in, or related to, an abnormal situation. To this end, the data capture application 106 may include a data retrieval interface module 120 in communication with the database 108 as shown in
During operation, the data capture application 106 may generate a user interface in which a number of display windows may be rendered and dedicated to supporting the functionality of the modules of the application 106. The user interface may include a main display window from which a user may access the display windows dedicated to the modules.
As described below, the process data associated with the monitored process parameters is gathered or collected at certain points during the monitoring process. The frequency and/or circumstances under which data is collected may be specified via a configuration of the data capture application 106, the details of which are also described further below. In some cases, and as shown in
From time to time, database backup and purge routines 146 and 148 may also be implemented during the runtime environment, as warranted. Alternatively or additionally, the database backup and purge routines 146 and 148 may be implemented upon user request, or in accordance with user-specified configuration criteria. In any event, the initiation of the routines 146 and 148 may be automated to any desired extent. Furthermore, the routines implemented by the blocks 146 and 148 may be executed any number of times at varying points in the flow shown in
These and other aspects of the routines 146 and 148 and other elements of the disclosed techniques may facilitate data collection and monitoring of an on-line process in a data-intensive manner. As long as the process remains on-line, process data continues to be generated. In some situations, such as field tests of ASP modules, the continued collection of process data from an on-line process over the entire duration of the tests (e.g., weeks, if not months) at time intervals suitable for development, analysis and qualification of the ASP module, would otherwise overwhelm the data storage capabilities of the process control system (e.g., the data historian). In contrast, the disclosed techniques support continued collection for all of the process parameters relevant to the ASP or other module being monitored or developed to handle the ongoing generation of process data from the operation of the process.
In some cases, the backup routine 146 may be automatically implemented in connection with the purge routine 148, and vice versa. For instance, initiation of the purge routine 148 may cause the data capture application 106 to facilitate a backup to the external media 110. In the exemplary embodiment shown in
With reference now to
In the embodiment shown in
After implementation of one or both of the selection procedures, control passes to a block 160 that adds any selected items or process parameters to a list or other identification of items or parameters to be monitored. The selected items or process parameters may be listed or identified in a display window that provides a user with an opportunity to remove or modify the list. For example, each listed item may be modified or customized in a block 162 via specification of an update rate or update basis, as well as an Area. The Area parameter supports the classification of process parameters according to the various areas, units or divisions of the plant. Using the classification, it is possible to view, plot, export, or backup process data corresponding to a single, specified area, rather than an entire database. The update rate and update basis determine the frequency and circumstances under which the process data for a process parameter or item being monitored is captured or gathered. After finalizing and customizing the list of items to be monitored, the user may elect to exit the configuration procedure by electing in a block 164 to add the listed items to a data collection hierarchy. In so doing, a number of ASP modules or other diagnostics components can be monitored for testing, etc.
The alternative to using the dialog window 166 may involve, as indicated above, and automated scan of the process parameters or items available for monitoring. Various scan procedures or methods may be used, as desired. For example, the OPC Automation 2.0 interface, specified by the OPC Foundation (www.opcfoundation.org) in its Data Access Automation Interface Standard, version 2.02, provides standard methods to browse the contents of an OPC server. These or other browser methods may be used to automatically traverse the OPC hierarchy. For further information regarding these and other techniques, please refer to the applications referenced above. In some embodiments, however, the scan procedure may be based on a format or configuration of ASP modules designed to provide an indication to a scanner or other automated technique. Further details regarding such scan procedures are set forth below.
Automated Backup and Other Archiving Procedures
Once a number of process parameters or items have been identified or selected for monitoring, the data capture application 106 (
The display window 180 may include a panel 182 directed to user specification of options, features, etc. available during an automatic, or periodic, backup procedure. The exemplary options panel 182 shown in
At this or any subsequent point during operation, a user may place one or more storage disks (or other containers) of the selected media type (e.g., CD, DVD, etc.) in a drive or other repository (e.g., disk carousel, etc.). When enough data has been collected by the application 106 (as specified via the options panel 182 or available on the disk, e.g., 640 MB for a CD), the application 106 begins the backup procedure to the external media 110. When the backup is complete, the disk may be ejected or otherwise moved, and the user may be prompted to take any one or more of a number of actions related to the backup procedure, including, for example, labeling the ejected disk and insertion of a new disk(s). Further information regarding the procedure is set forth below in connection with the exemplary flow of
At any time during the backup procedure, a decision block 194 may determine whether the external media 110 is full. And if so, control passes to a block 196 that prompts the user for a disk (or other media) change via the user interface display generated by the data capture application 106. Otherwise, control may pass to a decision block 198 to determine whether further data from the database is to be transferred. The steps associated with the blocks 194 and 198 may be implemented at any point in the backup procedure, and may constitute routines that are triggered independently of the remainder of the backup procedure.
Regardless of the circumstances of the launch of the window 200, the data capture application 106 may evaluate the size or amount of the process data currently stored in the database 108 for comparison with the capacity of the selected backup media (e.g., 640 MB for CD-ROM and 4.5 GB for DVD). As a result of this comparison, the display window 200 determines a number of backup sets or archive units to cover (or otherwise accommodate) the stored data. For example, if there is 1.8 GB of process data stored in the database 108, and selected media type is CD-ROM, then the display window 200 will list the three backup sets in a dialog window 202. Each backup set may contain the data for a given period of time. In this way, each backup set may be dedicated or directed to, for instance, archiving data for a certain number of days. The user may then select one of the listed backup sets in the window 202, and click a Burn button 204 to begin the process of copying process data from the specified time span to an available disk (i.e., a CD or DVD inserted in a disk drive).
The display window 200 may also include or present customization options to allow a user to specify or create new backup sets to replace or augment those sets established automatically by the data capture application 106. To that end, the display window 200 includes a button 206 that may be selected to initiate the generation of a further dialog window that prompts the user to establish a new backup set through specification of various parameters to define the set. Further customization alternatives for the backup procedure may be reached via selection of an options button 208, the selection of which may generate the panel 182 (or dialog window 180) of
In some embodiments, data may not be immediately purged from the database 108 or hard drive(s) on which the database 108 is recorded. Rather, a data purge operation may be implemented at a subsequent time once a maximum storage capacity is reached. In any event, the data capture application 106 may enable a user to manually initiate a data purge operation at any desired time.
Database Storage and Buffering Techniques
With reference again to
While these lists and, more generally, the database 108, may be structured and managed in accordance with relational database techniques commonly utilized in connection with commercially available database management systems (e.g., SQL Server and Oracle), the large amounts of process data collected via the techniques disclosed herein may benefit from a storage or database format having structural and other characteristics adapted to the process data collection context as described below. Generally speaking, the disclosed format can be easily expanded to include additional process parameters or items, and is well suited for capturing large amounts of data quickly and efficiently. The disclosed format is also well suited for accessing large amounts of data for a limited or small number of process variables such that, for example, the collected data for five process parameters may be easily displayed despite the, for example, tens or hundreds of thousands of samples of each variable. The disclosed format is still further well suited for copying subsets of the collected process data to external media for the reasons described above. For similar reasons, the disclosed format is well suited for occasionally or periodically purging, copying or otherwise extracting subsets of the collected process data to, for instance, generate trend and other views of a process data measurement over time.
Generally speaking, the disclosed data storage format includes a data structure that utilizes a number of separate and distinct files arranged in a data file hierarchy. As described below, data storage via the disclosed arrangement and technique reduce, minimize, if not eliminate, the need for complex database management techniques, such as indexing, to support large, multi-variable tables of data.
In the exemplary embodiment shown in
The database file structure in accordance with one aspect of the disclosure is now described in greater detail. Generally speaking, the hierarchy information defines the separate file groups 216. In one embodiment, the definition of the groups corresponds with a file folder arrangement, such that the files 218 within each group 216 are collectively disposed in respective file folders. The disposition of the files in folders may reflect a physical storage arrangement in which the data in each file is located within a memory, a memory space or memory area dedicated to a folder. Alternatively (or additionally), the arrangement may be representative of an association of such data with a folder. The association may be set forth in a file allocation table or other data set directed to organizing and/or managing the data files stored in the database.
In the alternative embodiment shown in
In either exemplary embodiment, each file contains 228 or 232 contains one day (or other desired standard time period) of data for a respective process parameter.
Data storage in accordance with these arrangements may be useful in connection with the processing of process parameter data in which data logging is ongoing, such that data backups and data purging steps are desired. To backup all data stored in accordance with the embodiment of
Each time a new sample of process data is received, the buffering technique helps efficiently process the data. Typically, the processing is not as straight forward as simply appending the data to the end of the appropriate data file 228, 232. At each sampling interval, a new set of samples is collected for the process variables. In an exemplary case, as many as 200 process variables are sampled at a rate of once per second. Each second therefore brings a new sample to be appended to each of 200 different data files. The data buffering technique described below efficiently processes these incoming samples, thereby minimizing the load on the file input/output hardware, software, etc., as well as the CPU. More generally, other data buffering techniques may be used in connection with the data storage arrangements and techniques described above.
In accordance with the disclosed buffering technique, separate arrays 236 temporarily store data for each process variable, respectively. In the exemplary embodiment shown in
Using the selector 238 and the above-described buffering technique, the database needs to only open and write to one file at a time, as opposed to opening and writing to many (e.g., 200) files at once.
Automated Scanning Techniques for ASP Module Identification
The interface display 242 generally supports configuring the scanning procedure. A dialog window 244 of the interface display 242 has data fields 246 and 248 to support user identification of a process control network node (e.g., process workstation or other machine) and server (e.g., OPC server) to be scanned. To that end, user selection controls (e.g., buttons) 250 and 252 are also provided to lead the user to further information regarding the network, its nodes, and the local machine (e.g., user workstation) on which the data capture configuration module 112 is being implemented. With these selections, a graphical, tree-based view of the hierarchy to be scanned is presented in a panel 254. Selection of one of the nodes depicted in the panel 254 determines the node in the hierarchy at which the scanning will start. In this exemplary case, the dialog window 244 also includes a panel 256 that lists all of the different types of ASP modules that have been defined. The panel 256 includes checkboxes to support user selection of the ASP modules for which the scanning procedure is to search. In other embodiments, the panel 256 may list other module types for selection.
When the user clicks on a button 258, the data capture application 106 (
When adding the modules to the data capture hierarchy, the user may organize the modules within defined areas. A button 264 provides the user with an opportunity to define additional areas. Once defined, the areas are made available to the user via a dropdown box in a data field 266. The modules found via the scan are then allocated to the area selected via the data field 266 when the user selects the “Add All Modules” button 262. The display window 244 also includes a data field 268 to provide status information on the module allocation process.
The steps and procedures implemented in accordance with one embodiment of the scanning technique are shown in
The data or information in the configuration file(s) may identify one or more function blocks, parameters or other elements utilized in each ASP module. In OPC hierarchies, the function blocks and process parameters utilized in the implementation of a module, such as an ASP module, are identified in the OPC hierarchy. The names of the blocks and parameters involved in a selected ASP module may then be used as criteria of the scan of the OPC hierarchy. The OPC hierarchy may be made available for such scans by accessing the process historian or other database of the process control system. Other embodiments may utilize other aspects or characteristics (i.e., indicia) of the ASP modules made available by the process control system. In any case, data representative of such indicia may then be stored in the configuration file(s) accessed by the block 270 to support the hierarchy scan.
Information regarding each detected instantiation of the ASP modules is obtained in a block 274. The implementation of the block 274 may be conducted either during the scan or following completion of the scan, or both, as desired. Once obtained, the information regarding each instantiation may then be used in a block 276 to create a data capture hierarchy for the data capture application 106. The data capture hierarchy facilitates the recordation and monitoring of process data once the data logging operations begin. To this end, alternative data arrangements or structures may be used, as desired.
With reference now to
Although described in connection with ASP modules, practice of the scan procedure is not limited to scanning for ASP modules, or any other type of module. On the contrary, the recursive nature of the procedure may be implemented in a variety of contexts, including, for instance, other arrangements in which elements of the process control system are organized in levels or layers, and/or arrangements in which process parameters are grouped or otherwise associated in accordance with a process control routine.
The recursive procedure begins in a block 278, the implementation of which initiates the scan at a user-specified level of the hierarchy. The level may be specified via the selection of a node via the panel 254 of the display interface 242 shown in
In this fashion, the scan procedure eventually reaches the lowest level of the hierarchy. At that point, the decision block 282 passes control to another decision block 292 that determines whether the last node at the level has been reached. If not, the block 292 passes control to the block 280 for evaluation of the next node. Otherwise, the scanning of the current level is complete, and control passes to a decision block 294 to determine whether the recursive nature of the procedure has brought the current level back up to the initial level yet. In that case, the scan procedure is finished. If not, then control passes to a block 296 that moves the current level one level up for evaluation of the next node. Through the operation of the blocks 280, 290 and 296, the scan procedure recursively proceeds throughout all of the nodes in the initial level and any nodes in levels depending therefrom.
Turning to
The user interface display 298 includes a display window 300 having a number of panels 302-306 directed to support the addition, deletion, and editing of configuration information for the scan procedure. Such configuration information may be stored in one or more configuration files that are subsequently accessed by the data capture configuration module 112 during the execution of an automated scan. In some embodiments, the configuration information defines the process parameters and, thus, the sub-folder names of the ASP modules or other elements. More generally, the configuration information defines one or more format or other characteristic indicia of the targets of the search. The characteristic indicia are then used during the search as search criteria.
The format or other characteristics of each target ASP module may be set forth in a respective configuration file. The data capture application 106 (
In some embodiments, each configuration file may also specify a level in the OPC hierarchy or other arrangement of process control elements within the process control system at which the indicia (e.g. search criteria or process variables) may be found. This level may be specified as a level relative to the top level (module name) of the ASP module. ASP modules may occupy multiple levels within the hierarchy. As a result, the folder associated with a process parameter may be at any level below the ASP module in some cases. A level item specified within the configuration file for each parameter may be accessed and utilized by the data capture configuration module 112 (
In the exemplary embodiment shown in
1. the name of the ASP module type, as shown in the panel 302;
2. the module characteristics, in this exemplary case, tag names (e.g., sub-folders) of function blocks to be used as search criteria to identify an ASP module, as shown in the panel 303 (the information displayed in the panel 303 corresponds with the ASP module selected in the panel 302);
3. the OPC items, such as process variable inputs, to capture for the selected ASP module, as shown in the panel 304;
4. the alarms (or other process variable outputs) to monitor for the selected ASP module, as shown in the panel 305;
5. any error messages associated with each possible value in the alarms, as shown in the panel 306; and
6. any process variables associated with each alarm (these variables may be used by the data capture monitoring module 122 (
In this example, the following information is specified in the form:
1. the name of this ASP Module type is “Hydro Cracker”;
2. the function block sub-folders that indicate or reveal a folder as an ASP Module are “REACTOR_ALERT” and “WABT1”;
3. the items to capture for each ASP module found are “reactor_alert” and “in_val_*” (in this case, the wild card character “*” is used to specify multiple items, such as OPC items “in_val—1”, “in_val—2”, etc.);
4. the name of the alarm variable for the ASP module is “reactor_alert”;
5. the alarm messages for the alarm variable are:
6. for each alarm message, the following data is also stored:
Wild card characters in addition to “*” and other codes may be used in the configuration file(s) to support scans for multiple parameters having similar names. Similarly, wild card characters may also be used to specify multiple items to capture during the data logging procedure.
The display window 298 may also provide a data field 308 to specify path and file name information for the configuration file. The data field 308 may be used to pull up the configuration information for a previously generated file for editing, viewing, etc. Alternatively or additionally, the data field 308 may be used to specify the path and file name information for a new file to be created using the panels 302-306. User selectable controls, or buttons, 310 and 312 are provided to that end to initiate and support the process, respectively.
With a help file specified for an alarm, the implementation of the data monitoring module 122 (
The following is an exemplary configuration file that specifies, in XML format, the characteristics of the hydrocracker reactor type of ASP module discussed above.
The XML script utilizes a number of elements to specify the characteristics of the ASP module, including “Name” (module name), “Point” (process parameter or variable to be captured), “Level” (the level in the hierarchy at which the folder is located, where level 1 may correspond with the current level), “UpLevel” (parameter indicative of a summary of the data at the next highest level), “FileName” (name of the help file for an error message), and “Severity” (element indicative of the severity level of the error message).
The steps taken in conjunction with the user interface display 298 (
The embodiment shown in
In some embodiments, some of the configuration information specified via the user interface display 298 and the configuration process of
The automated scan procedure described above, however, may be relied upon to detect and identify the ASP modules. Otherwise, a user may be forced to navigate and analyze the entire hierarchy of the process plant, which would typically be much more complex and extensive than the portion shown in
The interface display 328 may also be used to monitor the operation of the ASP (or other) modules of interest during, for example, a field test, or other on-line or runtime context. To this end, panels 332 and 334 are directed to showing status information for one or more process variables, alerts, messages or other parameters involved with the ASP (or other) modules being monitored by the data capture application 106 (
The interface display 328 may be useful in field test or other testing contexts where the user interfaces generated for operators of the process control system should not depict the errors and other status information of ASP (or other) modules. Such modules may be, for instance, under development and not qualified for use by the operators or otherwise relied upon in connection with an on-line process. A separate user interface, such as the interface display 328, thus supports the development and testing of ASP (and other) modules without confusing operators and other personnel monitoring the on-line process.
Selecting an item or error in either of the panels 332 and 334 may result in the generation of a further user interface item (e.g., a drop-down menu, window) that prompts for selection of one or more additional user interface options for providing further information regarding the selected item or error. Examples of additional user interface options include the display of trending data or other graphs, as well as help information.
More specifically, the error messages specified via the interface display 298 (
One of ordinary skill in the art will recognize that the exemplary systems and methods described above may be modified in various ways. For example, blocks may be omitted or reordered, additional blocks may be added, etc. For example, with regard to
The above-described examples involving ASP modules and ASP blocks are disclosed with the understanding that practice of the disclosed systems, methods, and techniques is not limited to such contexts. Rather, the disclosed systems, methods, and techniques are well suited for use with any diagnostics system, application, routine, technique or procedure, including those having a different organizational structure, component arrangement, or other collection of discrete parts, units, components, or items, capable of selection for monitoring, data collection, etc. Other diagnostics systems, applications, etc., that specify the process parameters being utilized in the diagnostics may also be developed or otherwise benefit from the systems, methods, and techniques described herein. Such individual specification of the parameters may then be utilized to locate, monitor, and store the process data associated therewith. Furthermore, the disclosed systems, methods, and techniques need not be utilized solely in connection with diagnostic aspects of a process control system, particularly when such aspects have yet to be developed or are in the early stages of development. Rather, the disclosed systems, methods, and techniques are well suited for use with any elements or aspects of a process control system, process plant, or process control network, etc.
The methods, processes, procedures and techniques described herein may be implemented using any combination of hardware, firmware, and software. Thus, systems and techniques described herein may be implemented in a standard multi-purpose processor or using specifically designed hardware or firmware as desired. When implemented in software, the software may be stored in any computer readable memory such as on a magnetic disk, a laser disk, or other storage medium, in a RAM or ROM or flash memory of a computer, processor, I/O device, field device, interface device, etc. Likewise, the software may be delivered to a user or a process control system via any known or desired delivery method including, for example, on a computer readable disk or other transportable computer storage mechanism or via communication media. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency, infrared and other wireless media. Thus, the software may be delivered to a user or a process control system via a communication channel such as a telephone line, the Internet, etc. (which are viewed as being the same as or interchangeable with providing such software via a transportable storage medium).
Thus, while the present invention has been described with reference to specific examples, which are intended to be illustrative only and not to be limiting of the invention, it will be apparent to those of ordinary skill in the art that changes, additions or deletions may be made to the disclosed embodiments without departing from the spirit and scope of the invention.
This application is related to the following patent applications, which are being filed as U.S. non-provisional applications on the same date as this application and which this application hereby expressly incorporates by reference herein in their entirety: “Process Data Storage for Process Plant Diagnostics Development” (Atty. Docket Nos. 3090 PT and 30203/41609) and “Process Data Collection for Process Plant Diagnostics Development” (Atty. Docket Nos. 3089 PT and 30203/41611).