Methods, apparatus and articles of manufacture to test process control systems

Example methods, apparatus and articles of manufacture to test process control systems are disclosed. A disclosed example method includes obtaining user inputs to a first process control system, obtaining process inputs and first process outputs of the first process control system, providing the user inputs and the process inputs to a second process control system to operate the second process control system, obtaining second process outputs of the second process control system operated with the user inputs and the process inputs, and comparing the first and second process outputs to determine whether the second process control system is implemented as intended.

FIELD OF THE DISCLOSURE

This disclosure relates generally to process control systems, and, more particularly, to methods, apparatus and articles of manufacture to test process control systems.

BACKGROUND

During the life cycle of a process plant, a process control system may need to be replaced, fixed, patched, upgraded, etc. However, any change of a process control system has the potential to disrupt operation of the process plant.

SUMMARY

Example methods, apparatus and articles to test process control systems are disclosed. A disclosed example method includes obtaining user inputs to a first process control system, obtaining process inputs and first process outputs of the first process control system, providing the user inputs and the process inputs to a second process control system to operate the second process control system, obtaining second process outputs of the second process control system operated with the user inputs and the process inputs, and comparing the first and second process outputs to determine whether the second process control system is implemented as intended.

Disclosed example machine-readable instructions, when executed, cause a processor to obtain user inputs to a first process control system, obtain process inputs and first process outputs of the first process control system, provide the user inputs and the process inputs to a second process control system to operate the second process control system, obtain second process outputs of the second process control system operated with the user inputs and the process inputs, provide the user inputs and the process inputs to a third process control system to operate the third process control system, obtain third process outputs of the third process control system operated with the user inputs and the process inputs, and compare the second and third process outputs to determine whether the third process control system is implemented as intended.

A disclosed example apparatus includes a data collector to obtain user inputs, process inputs and first process outputs of a first process control system and obtain second process outputs of a second process control system, a replayer to provide the user inputs and the process inputs to the second process control system to operate the second process control system, and a comparer to compare the first and second process outputs to determine whether the second process control system operated as intended.

DETAILED DESCRIPTION

Because of the complexity of modern process control systems and the limitless number of process plant configurations, it can be difficult to detect all defects before a process control system fix, patch, upgrade, etc. is released. Such undetected defects may only become apparent after and/or when the process control system is operated in connection with an actual process plant. To alleviate the need to replace, modify, patch, update and/or upgrade their process control system(s), some customers have instead elected to isolate their process control system(s) from other device(s) and/or network(s). While such actions may reduce the potential for disruptions, it also prevents process engineers from taking advantage of the features and/or capabilities available in newer versions of a process control system.

In general, the example apparatus, methods, and articles of manufacture described herein may be used to test a new and/or updated process control system using process data collected from a customer's actual process plant using their existing process control system(s) before the new and/or updated process control system is used to control the customer's process plant. In particular, user inputs (e.g., received via graphical user interfaces), process inputs (e.g., received from field devices) and process outputs (e.g., sent to field devices) of a first process control system are captured while the first process control system operates within the customer's process plant. The captured inputs are used to stimulate and/or operate a second process control system while its process outputs are captured. That is, the captured inputs from the first process control system are applied to operate the second process control system rather than the second process control system operating in response to user inputs and/or inputs received from field devices.

Using the methods, apparatus and articles of manufacture described herein, it is not necessary to define and/or implement a model of the process plant in order to test the second process control system. Instead, the process outputs captured from the two process control systems may be compared to determine whether the second process control system operated as intended. Because the data was captured while the first process control system operated within the customer's process plant, if the captured process outputs match, then process engineers can have confidence that the second process control system will operate as intended in the customer's process plant. Due to limited precision (e.g., quantization of time and/or quantization numeric values), the captured process outputs may not match exactly but should match sufficiently to enable a determination that the second process control system operated as intended.

The second process control system may be the first process control system after a fix, patch, upgrade, etc. has been applied but before the first process control system begins controlling the process plant. Additionally or alternatively, the second process control system may be implemented in a different environment and/or a different physical location such as at an in-house test facility and/or at a test or training facility associated with the vendor of the process control systems. Further, the first and/or the second process control systems may be a simulation and/or model of a process control system.

In some examples, the captured inputs are also used to stimulate and/or operate a third process control system while its process outputs are captured. That is, the captured inputs from the first process control system are applied to operate each of the second and the third process control systems. The process outputs of the second and third process control systems can be compared to determine whether the third process control system operated as intended. For instance, if second process control system is identical to the first process control system, differing only in that the second process control system is operated separately from the customer's process plant, and the third process control system is the second process control after a fix, patch, upgrade, etc. has been applied, by comparing the process outputs of the second and third process control systems, then process engineers can have confidence that the updated process control system will operate as intended in the customer's process plant.

The data captured from the first process control system may, additionally or alternatively, be used to detect and/or identify one or more scenarios that may recur in the process plant. For example, instead of applying the captured inputs to a second process control system, the original inputs and outputs captured from the first process control system can be compared to additional inputs and outputs captured from the first process control system. The original and additional inputs and outputs can be compared to detect and/or identify recurring scenarios. For example, when the original and additional inputs and outputs match, possibly within some tolerance(s), an operator of the process control system can be notified that the scenario associated with the originally captured inputs and outputs has and/or is occurring within the process plant.

Further still, the examples described herein may be used to implement training systems. For example, the inputs and outputs captured from the first process control system can be used to operate the second process control system while a trainee watches the second process control system operate and/or operates the second process control system in response to the previously captured inputs. In the later instance, the trainee's inputs may be compared with the captured user inputs to determine whether the trainee responded appropriately and/or promptly.

FIG. 1is a schematic illustration of an example process control system100that may be used to control all or any part(s) of, for example, a manufacturing process, a manufacturing system, a manufacturing plant and/or any other type of process plant. In the interest of brevity and clarity, throughout the following descriptions references will be made to the example process control system100ofFIG. 1. However, the methods, apparatus and articles of manufacture described herein to test process control systems are applicable to other process control systems. The example process control system100ofFIG. 1includes one or more process controllers (two of which are designated at reference numerals110and111), one or more operator stations (one of which is designated at reference numeral115), and one or more work stations (two of which are designated at reference numerals120and121). The example process controllers110and111, the example operator station115and the example work stations120and121are communicatively coupled via a bus and/or local area network (LAN)125, which is commonly referred to as an application control network (ACN).

The example operator station115ofFIG. 1allows a process plant operator to review and/or operate one or more operator display screens, graphical user interfaces and/or applications that enable the process plant operator to view process plant variables, view process plant states, view process plant conditions, view process plant alarms, and/or to provide user inputs such as those used to change process plant settings (e.g., set points and/or operating states, clear alarms, silence alarms, etc.). Such screens and/or applications are typically designed and/or implemented by process configuration engineers.

The example work stations120and121ofFIG. 1may be configured to implement any number and/or type(s) of application(s) and/or function(s). In the illustrated example ofFIG. 1, the work station120is configured to perform primarily process control-related applications, while the example work station121is configured to perform primarily communication applications that enable the process control system100to communicate with other devices or systems using any desired communication media (e.g., wireless, hardwired, etc.) and protocols (e.g., HTTP, SOAP, etc.). For example, the example application station121may implement one or more information technology applications, user-interactive applications and/or communication applications. The work station121will be referred to hereafter as the application station121. As described in more detail below, the example application station121ofFIG. 1includes and/or implements a test server TS that may be used to test a process control system such as any of example process control systems100,200and300ofFIGS. 1-3. An example manner of implementing the example test server TS is described below in connection withFIG. 4. Example processes that may be carried out by, for example, the example test server TS to test a process control system are described below in connection withFIGS. 5 and 6.

The example stations115,120and121may be implemented using any suitable computing systems and/or processing systems such as the example processor platform P100ofFIG. 7. The stations115,120and121could, for example, be implemented using single-processor and/or multi-processor computers.

The example LAN125ofFIG. 1may be implemented using any desired communication medium and protocol. For example, the LAN125may be based on a wired and/or wireless Ethernet communication scheme. However, any other suitable communication medium(s) and/or protocol(s) could be used. Further, although a single LAN125is illustrated inFIG. 1, more than one LAN and/or other alternative pieces of communication hardware may be used to provide redundant communication paths within the example process control system100ofFIG. 1.

The example controller110ofFIG. 1is coupled to a plurality of smart field devices130,131and132via a digital data bus135and an input/output (I/O) gateway140. The smart field devices130-132may be Fieldbus compliant valves, actuators, sensors, etc., in which case, the smart field devices130-132communicate via the digital data bus135using the well-known Foundation Fieldbus protocol. Of course, other types of smart field devices and communication protocols could be used instead. For example, the smart field devices130-132could instead be Profibus and/or HART compliant devices that communicate via the data bus135using the well-known Profibus and HART communication protocols. Additional I/O devices, which are different, similar and/or identical to the I/O gateway140, may be coupled to the controller110to enable additional groups of smart field devices, which may be Foundation Fieldbus devices, HART devices, etc., to communicate with the controller110. In addition to the example smart field devices130-132, one or more non-smart field devices133and134may be communicatively coupled to the example controller110. The example non-smart field devices133and134ofFIG. 1may be, for example, conventional 4-20 milliamp (mA) or 0-10 volts direct current (VDC) devices that communicate with the controllers110and111via respective links. While not shown inFIG. 1, the example controller111is also coupled to similar and/or different field devices and/or I/O gateways.

The example controllers110and111ofFIG. 1may be, for example, a DeltaV™ controller and/or a DeltaV Characterization Module (Charms) I/O card sold by Fisher-Rosemount Systems, Inc., an Emerson Process Management company. However, any other controller(s) could be used. Further, while two controllers110and111are shown inFIG. 1, additional controllers of any desired type and/or combination of types could be coupled to the LAN125. In any case, the example controllers110and111perform, carry out and/or implement one or more process control routines and/or modules associated with the process control system100that have been generated by a system engineer and/or other system operator using the operator station115and which have been downloaded to and/or instantiated in the controllers110and111.

To configure the control components of the example process control system100(e.g., the example controllers110and111, the example operator station115, the example work stations120and121, the example I/O gateway140and/or the example field devices130-134), the example process control system100ofFIG. 1includes a process control system configuration subsystem150. The example configuration subsystem150ofFIG. 1loads, configures, commissions and/or programs the actual (i.e., physical) process control components of the process control system100based on an operation database155. The example configuration subsystem150and the example operation database155ofFIG. 1are a part of the DeltaV process control system sold by Fisher-Rosemount Systems, Inc., an Emerson Process Management company. The example operation database155ofFIG. 1may be generated, defined, specified and/or populated using other tools and/or interfaces (not shown) of the DeltaV process control system.

To capture, record and/or log user or operator inputs, the example operator station115ofFIG. 1includes an event chronicler EC. As a user interacts with the example operator station115to provide and/or change, for example, setpoints or process variables, start an application, open and/or close a graphical user interface, etc., the example event chronicler EC ofFIG. 1records and/or captures the user's inputs into an event log. The example event chronicler EC ofFIG. 1may be, for example, the DeltaV Event Chronicle sold by Fisher-Rosemount Systems, Inc., an Emerson Process Management company. As shown inFIG. 1, the example work station120and the example application station121may also implement an event chronicler EC having substantially similar functionality.

To capture, record and/or log process inputs and process control outputs, one or more of the example operator station115, the example work station120and/or the example application station121include and/or implement a data historian DH. The example data historians DH ofFIG. 1capture and/or record process inputs received at the example controllers110and111into a data log. The data historians DH also record process control outputs generated by the example controllers110and111into the data log. The example data historians DH ofFIG. 1may be implemented by, for example, the DeltaV Continuous Historian sold by Fisher-Rosemount Systems, Inc., an Emerson Process Management company.

While in the illustrated example ofFIG. 1, the event chroniclers EC and the data historians DH are used to capture inputs and outputs of the example process control system100, additionally or alternatively, a redundant, duplicate and/or standby controller (not shown) could be used to capture the inputs and/or outputs. The redundant controller could be configured to synchronize its state to a monitored controller110,111and to record data, commands and/or information sent to and/or sent by the monitored controller110,111. The recorded information could be subsequently retrieved from the redundant controller and used, as described below, by the example test server TS to test a process control system. The state of the redundant controller could also be used to initialize the state of an under-test process control system prior to stimulation with recorded user and process inputs. In some examples, the data captured by the redundant controller may be captured with less fidelity (e.g., be quantized) to reduce the amount of data that must be transferred between the monitored and redundant controllers. When captured process outputs are subsequently compared differences in initial state and data due to quantization may be taken into consideration. The redundant controller may capture the data while installed in a customer's process control system and subsequently moved to a laboratory for analysis, training, and/or testing another process control system.

To access user inputs, process inputs and/or process outputs captured by the example event chroniclers EC and/or the example data historians DH, the example application station121ofFIG. 1includes and/or implements an access server AS. The example access server AS ofFIG. 1accesses the logged user inputs, process inputs and process outputs using any number and/or type(s) of methods implemented in accordance with any past, present and/or future object linking and embedding (OLE) for process control (OPC) standard and/or specification. The example access server AS ofFIG. 1enables other elements of the process control system100such as the example test server TS to access logged user inputs, process inputs and/or process outputs. The example access server AS also enables the example test server TS to provide user inputs and/or process inputs to the controllers110and111to, for example, cause the example controllers110and111ofFIG. 1to operate in the absence of the field devices130-134and/or the I/O gateway140, and/or even in the absence of a process plant. The example access server AS ofFIG. 1may be implemented by, for example, the DeltaV OPC History Server and/or the DeltaV OPC Events Server sold by Fisher-Rosemount Systems, Inc., an Emerson Process Management company.

To test a process control system such as any of the example process control systems100,200and300ofFIGS. 1,2and3, respectively, the example application station121ofFIG. 1includes the example test server TS. While the example process control system100ofFIG. 1operates, the example event chroniclers EC and the example data historians DH collect inputs and outputs of the controllers110and111. The example test server TS ofFIG. 1obtains via the example access server AS the collected inputs and outputs for subsequent use in operating the example process control system100ofFIG. 1and/or any other process control systems such as those depicted inFIGS. 2 and 3. To test a process control system, the example test server TS stimulates and/or operates the under-test process control system using the recorded inputs and outputs. That is, the captured inputs are applied directly to the under-test process control system to operate the under-test process control system instead of the under-test process control system operating in response to user inputs and/or inputs received from the operator station115, the field devices130-134and/or the I/O gateway140. The test server TS applies the captured inputs to the under-test process control system via the access server AS.

While the example test server TS ofFIG. 1operates the under-test process control system, the event chroniclers EC and the data historians DH collect user inputs and process inputs and/or outputs. The example test server TS may compare the process outputs captured from the two process control systems to determine whether the second process control system operated as intended. Because the data was captured while the first process control system operated within the customer's process plant, if the captured process outputs match, then test server TS and/or a user of the test server TS can determine with confidence that the under-test process control system should operate as intended in a customer's process plant. Due to limited precision (e.g., quantization of time and/or numeric values), the captured process outputs may not match exactly but should sufficiently match to enable a determination that the under-test process control system operated as intended. For example, analog values may be considered as matching if there difference does not exceed a user-definable threshold, and/or digital values may be considered as matching if they occur with a user-definable window relative to each other.

FIG. 2illustrates an example under-test process control system200that may be used to test the example process control system100ofFIG. 1. Because many of the elements illustrated inFIG. 2are identical to those discussed above in connection withFIG. 1, identical elements are designated with identical alpha-numeric references inFIGS. 1 and 2and the reader is the referred to the descriptions provided above in connection withFIG. 1for a description of identical elements.

In the illustrated example under-test process control system200ofFIG. 2, the example controllers110and111have been logically and/or physically disconnected from the example field devices130-134and/or the I/O gateway140. Accordingly, the example controllers110and111ofFIG. 2operate in response to previously captured process inputs and user inputs provided to the controllers110and111by the test server TS via the access server AS. As shown inFIG. 2, an actual process plant is not required to test the process control system200. Further, no model of the process plant is required. Instead, previously captured inputs are played-back into the under-test process control system200and the controllers110and111compute process control outputs as if they were operating in an actual process control plant. The example test server TS applies the inputs to the process control system200regardless of the outputs computed by the process control system200. Thus, if the originally captured inputs represent a stable operation of the process control system100, the outputs of the process control system200should likewise be stable.

It should be apparent that the example process control system200ofFIG. 2may be tested even before the operation database155contains I/O references such as, for example, during an early stage of process engineering. In such examples, inputs and outputs captured from a similar plant and/or inputs designed, modified and/or intended to test the process control system200may be applied by the example test server TS.

Because the example controllers110and111do not have any connected field devices130-134and/or I/O gateway140, the example operation database155of the process control system200needs to be modified to replace real I/O channel assignment information with logical and/or simulation input parameters. The replacement of I/O channel assignment information may be carried out using the DeltaV SimulatePro application sold by Fisher-Rosemount Systems, Inc., an Emerson Process Management company.

In some examples, a counter module (not shown) is added to the operation database155to enable sampling of the operation of the under-test process control system200at desired intervals and/or at a desired rate. An example sampling rate is one second, although any other rate supportable by the data transfer capabilities of the access server AS may be implemented. In some examples, any process control routines that operate at a rate higher than the sampling rate are also modified to operate at the sampling rate. Alternatively, buffered reads and/or buffered writes may be implemented by the access server AS to enable process control routines to operate at rates exceeding the sampling rate.

The example process control system200ofFIG. 1may be, for example, the process control system100after a fix, patch, upgrade, etc. has been applied but before the process control system200begins controlling the process plant. Additionally or alternatively, the process control system200may be implemented in a different environment and/or a different physical location such as at in-house test facility and/or at a test or training facility associated with the vendor of the process control system200. Further, as shown inFIG. 3, a simulation and/or model of a process control system may be used to implement the example process control system100, and/or a simulation and/or model of a process plant may be used to test the example process control system100.

FIG. 3illustrates another example under-test process control system300that may be used to test the example process control system100ofFIG. 1. Because many of the elements illustrated inFIG. 3are identical to those discussed above in connection withFIG. 1, identical elements are designated with identical alpha-numeric references inFIGS. 1 and 3and the reader is the referred to the descriptions provided above in connection withFIG. 1for a description of identical elements.

In the illustrated example under-test process control system300ofFIG. 3, the example controllers110and111are replaced by, modeled by and/or simulated by a simulator SIM. In the example process control system300ofFIG. 3, the example simulator SIM is implemented on the example operator station115. However, the simulator SIM may alternatively be implemented on the example application station121, on the example work station120and/or on any other processing or computing system. The example simulator SIM ofFIG. 3may be implemented using the DeltaV SimulatePro application sold by Fisher-Rosemount Systems, Inc., an Emerson Process Management company.

WhileFIGS. 1,2and3illustrate example process control systems100,200and300, respectively, within which the example apparatus, methods, and articles of manufacture to test process control systems may be advantageously employed, persons of ordinary skill in the art will readily appreciate that the apparatus, methods, and articles of manufacture described herein may, if desired, be advantageously employed in other process plants and/or process control systems of greater or less complexity (e.g., having more than two controllers, across more than one geographic location, etc.) than the illustrated examples ofFIGS. 1-3. Moreover, while not shown inFIGS. 1-3for clarity of illustration, there may be any number and/or type(s) of additional and/or alternative devices, components and/or systems included in a process plant and/or a process control system. For example, a process plant and/or a process control system may include and/or implement a firewall, a switch, a router, a hub, a power supply, and/or any other devices managed and/or controllable by a process control system, such as the DeltaV process control system sold by Fisher-Rosemount Systems, Inc., an Emerson Process Management company.

While example process control systems100,200and300have been illustrated inFIGS. 1,2and3, respectively, one or more of the interfaces, data structures, elements, processes and/or devices illustrated inFIGS. 1,2and3may be combined, divided, re-arranged, omitted, eliminated and/or implemented in any other way. Further, the example controllers110,111, the example stations115,120and121, the example field devices130-134, the example I/O gateway140, the example configuration subsystem150, the example event chroniclers EC, the example data historians DH, the example access server AS and/or the example test server TS may be implemented by hardware, software, firmware and/or any combination of hardware, software and/or firmware. Thus, for example, any of the example controllers110,111, the example stations115,120and121, the example field devices130-134, the example I/O gateway140, the example configuration subsystem150, the example event chroniclers EC, the example data historians DH, the example access server AS and/or the example test server TS be implemented by the example processor platform P100ofFIG. 7and/or one or more circuit(s), programmable processor(s), application-specific integrated circuit(s) (ASIC(s)), programmable logic device(s) (PLD(s)), field-programmable logic device(s) (FPLD(s)), field-programmable gate array(s) (FPGA(s)), fuses, etc. When any apparatus claim of this patent incorporating one or more of these elements is read to cover a purely software and/or firmware implementation, at least one of the example controllers110,111, the example stations115,120and121, the example field devices130-134, the example I/O gateway140, the example configuration subsystem150, the example event chroniclers EC, the example data historians DH, the example access server AS and/or the example test server TS hereby expressly defined to include a tangible article of manufacture such as a tangible computer-readable medium storing the firmware and/or software. Further still, the example process control systems100,200and/or300may include interfaces, data structures, elements, processes and/or devices instead of, or in addition to, those illustrated inFIGS. 1,2and/or3, and/or may include more than one of any or all of the illustrated interfaces, data structures, elements, processes and/or devices.

As used herein, the term tangible computer-readable medium is expressly defined to include any type of computer-readable medium and to expressly exclude propagating signals. As used herein, the term non-transitory computer-readable medium is expressly defined to include any type of computer-readable medium and to exclude propagating signals. Example tangible and/or non-transitory computer-readable media include a volatile and/or non-volatile memory, a volatile and/or non-volatile memory device, a compact disc (CD), a digital versatile disc (DVD), a floppy disk, a read-only memory (ROM), a random-access memory (RAM), a programmable ROM (PROM), an electronically-programmable ROM (EPROM), an electronically-erasable PROM (EEPROM), an optical storage disk, an optical storage device, magnetic storage disk, a magnetic storage device, a cache, and/or any other storage media in which information is stored for any duration (e.g., for extended time periods, permanently, brief instances, for temporarily buffering, and/or for caching of the information) and which can be accessed by a processor, a computer and/or other machine having a processor, such as the example processor platform P100discussed below in connection withFIG. 7.

FIG. 4illustrates an example manner of implementing any of the example test servers TS ofFIGS. 1,2and3. To collect data, the example test server TS ofFIG. 4includes a data collector405. The example data collector405ofFIG. 4interacts with the example access server AS (FIGS. 1-3) to obtain user inputs, process inputs and/or process outputs from a process control system. The example data collector405stores the captured inputs and outputs in a database410using any number and/or type(s) of data structure(s), file(s) and/or file format(s). In some examples, the data collector405interacts with the example access server AS to obtain the captured inputs and outputs in Microsoft® Excel® format. The example database410may be stored on any number and/or type(s) of volatile and/or non-volatile storage device(s), memory(-ies) and/or memory device(s).

To generate data suitable for stimulating and/or operating a process control system, the example test server TS includes a data modifier415. The example data modifier415combines user input information collected by the event chroniclers EC with process inputs collected by the data historians DH into a time-indexed data structure with each entry of the data structure corresponding to a sampling interval. The generated time-indexed data structure may be stored in the example database410. In some examples, Microsoft Excel is used to implement the example data modifier415and a Microsoft Excel file is used to implement the time-indexed data structure, however, any other data structure(s) may be used.

Some inputs captured by the data historians DH may not be in the same format in which they were received by the controllers110and111. For example, an analog input (Al) block of a proportional integral derivative (PID) control loop might scale or convert a process variable such as pressure into a value representative of a tank level. In such instances, the example data modifier415ofFIG. 4scales the captured process input(s) so that that scaled process input(s) represent the original input. For example, a tank level value could be scaled to represent a pressure value. In some examples, scaling of the captured process inputs is implemented using a bulk editing feature of an application such as Microsoft Excel. For example, scaling data may be obtained from the DeltaV configuration155and stored in a Microsoft Excel file. Machine-accessible instructions implemented, for example, as Microsoft Visual Basic (VBA) code may be used to carry out the scaling of the captured process inputs.

Additionally or alternatively, some captured process inputs may be represented by “named sets.” For example, a value of 1 may represent “open” or “closed” depending on whether the associated valve is “normally open” or “normally closed.” In such instances, the example data modifier415ofFIG. 4replaces the named set text (e.g., “closed”) captured by the event chroniclers EC and/or the data historians DH with the corresponding numeric value (e.g., “1”). In some examples, the replacement of named set text with numeric values is implemented using a bulk editing feature of an application such as Microsoft Excel. The associations of named set text to numeric values may be obtained by, for example, exporting named set information from the DeltaV Explorer sold by Fisher-Rosemount Systems, Inc., an Emerson Process Management company into, for example, a Microsoft Excel file. Machine-accessible instructions implemented, for example, as Microsoft Visual Basic (VBA) code may be used to replace named set text with numeric values.

In some examples, to reduce the amount of storage required, the example data modifier415condenses the time-indexed data structure. For example, it is not uncommon for data captured from a real process plant to have time intervals where no user inputs occur and/or no process inputs change. The example data modifier415ofFIG. 4replaces sequential entries where changes occurred with a single entry that represents a count of the sequential entries. In some examples, only sequences of unchanged inputs having lengths that exceed a user definable threshold are replaced.

To stimulate and/or operate a process control system, the example test server TS ofFIG. 4includes a replayer420. The example replayer420ofFIG. 4sends each input entry of the time-indexed data structure generated by the data modifier415to the respective logical and/or simulated I/O port(s) via the example access server AS. The inputs are provided at the timestamps associated the input entries. While the example replayer420ofFIG. 4stimulates the process control system, the example event chroniclers EC and the data historians DH collect user inputs, process inputs and process outputs.

To determine whether a process control system operated as intended, the example test server TS ofFIG. 4includes a comparer425. The example comparer425ofFIG. 4compares the originally captured process outputs with the process outputs captured while the replayer420stimulates the process control system to, for example, determine whether an under-test process control system operated as intended. Due to limited precision (e.g., quantization of time and/or numeric values), the captured process outputs may not match exactly and, thus, the comparer425uses one or more tolerances when comparing process output values.

Additionally or alternatively, the comparer425may be used to detect and/or identify one or more scenarios that may recur in a process plant. For example, instead of the replayer420applying captured inputs to a process control system, the comparer425can compare previously captured inputs and outputs to additional captured inputs and outputs captured to detect and/or identify recurring scenarios. For example, when the original and additional inputs and outputs match, possibly within some tolerance(s), an operator of the process control system can be notified that the scenario associated with the originally captured inputs and outputs has and/or is occurring within the process plant.

Further still, the comparer425may be used to implement training systems. For example, the inputs and outputs captured from a first process control system can be used to operate a second process control system while a trainee watches the second process control system operate and/or operates the second process control system in response to the previously captured outputs. In the later instance, the comparer425compares the trainee's inputs with the captured user inputs to determine whether the trainee responded appropriately and/or promptly.

While an example manner of implementing the example test servers TS ofFIGS. 1,2and/or3has been illustrated inFIG. 4, one or more of the elements, processes and/or devices illustrated inFIG. 4may be combined, divided, re-arranged, omitted, eliminated and/or implemented in any other way. Further, the example data collector405, the example database410, the example data modifier415, the example replayer420, the example comparer425and/or, more generally, the example test server TS ofFIG. 4may be implemented by hardware, software, firmware and/or any combination of hardware, software and/or firmware. Thus, for example, any of the example data collector405, the example database410, the example data modifier415, the example replayer420, the example comparer425and/or, more generally, the example test server TS could be implemented by the example process platform P100ofFIG. 7and/or one or more circuit(s), programmable processor(s), ASIC(s), PLD(s), FPLD(s), FPGA(s), fuses, etc. When any apparatus claim of this patent incorporating one or more of these elements is read to cover a purely software and/or firmware implementation, at least one of the example data collector405, the example database410, the example data modifier415, the example replayer420, the example comparer425and/or, more generally, the example test server TS are hereby expressly defined to include a tangible article of manufacture such as a tangible computer-readable medium storing the firmware and/or software. Further still, the example test server TS ofFIG. 4may include one or more elements, processes and/or devices in addition to, or instead of, those illustrated inFIG. 4, and/or may include more than one of any or all of the illustrated elements, processes and devices.

FIGS. 5 and 6are flowcharts representative of example processes that may be carried out to implement any or all of the example test servers TS ofFIGS. 1,2,3and/or4. A processor, a controller and/or any other suitable processing device may be used, configured and/or programmed to carry out the example processes ofFIGS. 5and/or6. For example, the example processes ofFIGS. 5 and 6may be embodied in coded or machine-readable instructions stored on a tangible computer-readable medium. Machine-readable instructions comprise, for example, instructions that cause a processor, a computer and/or a machine having a processor to perform one or more particular processes. Alternatively, some or all of the example processes ofFIGS. 5and/or6may be implemented using any combination(s) of ASIC(s), PLD(s), FPLD(s), FPGA(s), discrete logic, hardware, firmware, etc. Also, some or all of the example processes ofFIGS. 5and/or6may be implemented manually or as any combination of any of the foregoing techniques, for example, any combination of firmware, software, discrete logic and/or hardware. Further, many other methods of implementing the example operations ofFIGS. 5and/or6may be employed. For example, the order of execution of the blocks may be changed, and/or one or more of the blocks described may be changed, eliminated, sub-divided, or combined. Additionally, the blocks of any or all of the example processes ofFIGS. 5and/or6may be carried out sequentially and/or carried out in parallel by, for example, separate processing threads, processors, devices, discrete logic, circuits, etc.

The example process ofFIG. 5may be carried out to generate data for use in testing a process control system. The example process ofFIG. 5begins with the example data collector405obtaining process inputs and outputs via the example access server AS (block505), and obtaining user inputs via the example access server AS (block510). The example data collector405stores the obtained data in the example database410.

The example data modifier415generates an initial time-index dataset from the data obtained by the data collector405(block515). The data modifier415, as needed, scales any of the process inputs values and/or replaces named set text with numeric values (block520). The data modifier415condenses the time-indexed dataset to remove entries that do not represent changed inputs (block525). The condensed time-indexed dataset is stored in the database410, and control exits from the example process ofFIG. 5.

The example process ofFIG. 6may be carried out to test a process control system. The example process ofFIG. 6begins with the example test server TS initialize the state of the under-test process control system using for, a download in DeltaV Explorer or a restore in DeltaV SimulatePro (block605). The example replayer420executes, stimulates and/or operates the under-test process control system by sending the inputs values contained in the condensed time-indexed dataset to the process control system via the access server AS (block610).

The data collector405obtains user inputs, process inputs and process outputs captured by the event chroniclers EC and the data historians DH during the execution of block610(block615). The data collector405may, for example, obtain the data by carrying out the example process ofFIG. 5. The example comparer425compares the original and the additionally collected process outputs to determine whether the under-test process control system operated as intended (block620). Control then exits from the example process ofFIG. 6.

In some examples, the example process ofFIG. 6may be carried out more than once. For example, the process ofFIG. 6may be carried out a first time to verify the intended operation of a second process control plant that only differs from a first process control plant in that the second process control system is operated separately from the customer's process plant. The process ofFIG. 6could be carried out a second time to verify the intended operation of a third process control system that is the second process control after a fix, patch, upgrade, etc. has been applied.

FIG. 7is a block diagram of an example processor platform P100that may be used and/or programmed to implement the test servers TS, the example operator station115, the example work station120, the example application station121and/or to execute any or all of the example machine-accessible instructions and/or processes described herein. One or more general-purpose processors, processor cores, microcontrollers, etc. may be used to implement the processor platform P100. The processor platform P100can be, for example, a server, a personal computer, an embedded controller, and/or any other type of computing device.

The processor platform P100of the instant example includes at least one programmable processor P105. The processor P105executes coded instructions P110and/or P112present in main memory of the processor P105(e.g., within a RAM P115and/or a ROM P120). The processor P105may be any type of processing unit, such as a processor core, a processor and/or a microcontroller. The processor P105may be programmed to carry out the example processes ofFIGS. 5 and 6. Thus, the coded instructions P110, P112may represent the example processes ofFIGS. 5and/or6.

The processor P105is in communication with the main memory including a ROM P110and the RAM P115via a bus P125. The RAM P115may be implemented by Synchronous Dynamic Random Access Memory (SDRAM), Dynamic Random Access Memory (DRAM), RAMBUS Dynamic Random Access Memory (RDRAM) and/or any other type of RAM device. The ROM P110may be implemented by flash memory and/or any other desired type of memory device. Access to the memory P115and the memory P120may be controlled by a memory controller. The example memory P115may be used to, for example, store the example database410.

The processor platform P100includes an interface circuit P130. Any type of interface standard, such as an external memory interface, serial port, general-purpose input/output, as an Ethernet interface, a universal serial bus (USB), and/or a PCI express interface, etc., may implement the interface circuit P130.

One or more input devices P135may be connected to the interface circuit P130. The input device(s) P135can be implemented by, for example, a keyboard, a mouse, a touch screen, a track-pad, a trackball, isopoint and/or a voice recognition system. One or more output devices P140are also connected to the interface circuit1020. The output devices P140can be implemented, for example, by display devices (e.g., a liquid crystal display, a cathode ray tube display (CRT), a printer and/or speakers). The interface circuit P130may, thus, include a graphics driver card. The input device(s) P135and the output device(s) P136may, additionally or alternatively, be used to implement the example data collector405.

The interface circuit P130may also includes a communication device such as a modem, transceiver or network interface card to facilitate exchange of data with external computers via a network (e.g., the LAN125).

In some examples, the processor platform P100also includes one or more mass storage devices P145to storing software and data. Examples of such mass storage devices P145include a floppy disk drive, a hard disk drive, a solid-state hard disk drive, a CD drive, a DVD drive and/or any other solid-state, magnetic and/or optical storage device. The mass storage device P145may implement the example operation database155and/or the example database410.

The coded instructions described herein may be stored in the mass storage device P145, in the RAM P115, in the ROM P120, and/or on a removable storage medium such as a CD or a DVD.

From the foregoing, it will appreciate that the above disclosed methods, apparatus and articles of manufacture to test process control systems. Although certain example methods, apparatus and articles of manufacture have been described herein, the scope of coverage of this patent is not limited thereto. On the contrary, this patent covers all methods, apparatus and articles of manufacture fairly falling within the scope of the claims of this patent.