The subject matter disclosed herein relates to control systems, and, more specifically, to configuring programmable controllers.
Control systems for processes, plants, and equipment, may include a wide variety of logic to configure how the control system monitors and controls the processes, plants and equipment. A control system may include one or more programmable controllers. In certain applications, the control system may include a redundant configuration of two, three, or more programmable controllers. Each controller may execute logic designed to monitor and control the process, plant, and/or equipment controlled by the controller. The controllers may be changed to optimize the process, plants, and equipment. Additionally, it may be useful to perform root cause analysis (RCA) and other analysis routines on the controllers in the event of unexpected behavior of the process, plants, or equipment or for diagnostic purposes.
Certain embodiments commensurate in scope with the originally claimed invention are summarized below. These embodiments are not intended to limit the scope of the claimed invention, but rather these embodiments are intended only to provide a brief summary of possible forms of the invention. Indeed, the invention may encompass a variety of forms that may be similar to or different from the embodiments set forth below.
In a first embodiment, a method includes receiving a command to save a state of a controller coupled to an industrial system, wherein the controller comprises a processor and a non-volatile memory, capturing the state of the controller during control and monitoring of the industrial system, and writing the captured state to the non-volatile memory of the controller
In a second embodiment, a system includes a controller that includes a processor and a non-volatile memory coupled to the processor. The non-volatile memory comprises instructions for capturing the state of the controller, wherein the controller controls and monitors an industrial system coupled to the controller and writing the captured state to the non-volatile memory of the controller, wherein the captured state comprises state variables and process variables of the controller
In a third embodiment, a method includes providing a command to a controller to capture a state of the controller, copying the captured state from the controller to a workstation, loading the captured state in a simulation of a virtual controller, wherein the virtual controller emulates the controller, and executing the simulation in the virtual controller.
These and other features, aspects, and advantages of the present invention will become better understood when the following detailed description is read with reference to the accompanying drawings in which like characters represent like parts throughout the drawings, wherein:
One or more specific embodiments of the present invention will be described below. In an effort to provide a concise description of these embodiments, all features of an actual implementation may not be described in the specification. It should be appreciated that in the development of any such actual implementation, as in any engineering or design project, numerous implementation-specific decisions must be made to achieve the developers' specific goals, such as compliance with system-related and business-related constraints, which may vary from one implementation to another. Moreover, it should be appreciated that such a development effort might be complex and time consuming, but would nevertheless be a routine undertaking of design, fabrication, and manufacture for those of ordinary skill having the benefit of this disclosure.
When introducing elements of various embodiments of the present invention, the articles “a,” “an,” “the,” and “said” are intended to mean that there are one or more of the elements. The terms “comprising,” “including,” and “having” are intended to be inclusive and mean that there may be additional elements other than the listed elements.
Embodiments of the present invention include a control system that captures the state of a controller during control and monitoring of a system. The captured state may include process variables, state variables, diagnostic information, event information, and alarm information. The captured state may be stored on a non-volatile memory of the controller. The captured state may be copied from one platform to another platform, such as a workstation. The captured state may be loaded in a virtual controller and simulation executing on the workstation. A model state appropriate for the captured state may be loaded from a database and a simulation of the captured state may be performed.
The illustrated process 14, turbine 16, and power generation component 18 may include any number of sensors 20 and actuators/motors 22. The sensors 20 may comprise any number of devices adapted to provide information regarding process conditions. For example, the sensors 20 may monitor temperature, pressure, speed, fluid flow rate, vibration, noise, exhaust emissions, power output, clearance, or any other suitable parameter The actuators 22 may similarly include any number of devices adapted to perform a mechanical action in response to an input signal. For example, the actuators 22 may control a fuel injection rate, a diluent or water injection rate, a coolant rate, a power output level, a speed, a flow rate, a clearance, and so forth
As illustrated, these sensors 20 and actuators 22 are in communication with the control system 12, such as through input/outputs 24. The control system 12 may include one, two, three, or more controllers 26 (e.g., programmable logic controllers) that may operate in any manner suitable for monitoring and controlling the system 10. For example,
The sensors 20 and actuators 22 may be in direct communication with any or all of the controllers 26 through the input/outputs 24. The input/outputs 24 may be packs, cards, or other devices coupled to or integral with the controllers 26. Additionally, the input/outputs 24 may be coupled to and communicate with the controller through suitable components, such as a network (e.g., Ethernet) and switches. These devices may be utilized to operate process equipment. Indeed, they may be utilized within process loops that are monitored and controlled by the control system 12 and the controllers 26. In certain embodiments, the controllers 26 may be separate and/or integral with the process 14, the turbine 16, and/or the power generation component 18. In one embodiment, the control system 12 may be a Mark VIe control system manufactured by General Electric Company of Salem, Va.
Additionally, the control system 12 may be coupled to and communicate with one or more work stations 28. The work stations 28 may include a desktop, laptop, or any other suitable electronic device. The workstations 28 may be coupled to the control system 12 through a wired or wireless network 30, such as wired or wireless Ethernet. The workstations 28 may be used as a human-machine interface (HMI) for the control system 12 may enable an operator or engineer to configure and, monitor the components of the control system 12, such as the controllers 26 and the input/outputs 24.
Additionally, as mentioned above, the controller 26 may include volatile memory 40 and non-volatile memory 42. The volatile memory 40 may include random access memory (RAM), such as DRAM. The non-volatile memory 42 may include flash memory, phase change memory, resistive memory, or any other suitable non-volatile memory. Additionally, in some embodiments the non-volatile memory 42 may include magnetic storage devices such as hard drives, tape drives, etc. As described below, the non-volatile memory 42 may, in response to a state capture operation of the controller 26, store the captured state information. The state information may be later accessed from the non-volatile memory 42 by the controller 26 or by other devices, such as the workstation 28.
Upon receiving a “capture state” command 43 (also referred to as “save state” command), the processor 32 of the controller 26 may write state information to the volatile memory 40 and then later write the state information to the non-volatile memory 42 to save a captured state 44. The “capture state” may be received over a wired or wireless network, such as through the network device 34. In some embodiments, the capturing of the state may be performed during the process of a reboot of the controller 26. In other embodiments, the state information may be first written to the non-volatile memory 42 without writing the state information in the volatile memory 40. The state capture may occur during operation of the controller 26 without rebooting the controller 26. The captured stated 44 may include the data received by the controller 26 from the components of the system 10. The captured state 44 may also include operational information from the controller 26, such as information that may be stored in volatile memory 40 and used by controller 26 to control and monitor the system 10. For example, as shown in
As shown in
As shown in
Next, the controller 26 of the control system 12 may be verified to be in a controlling state (block 64). If the controller 26 is in the controlling state, the state of the controller 26 may be captured (block 66), as further illustrated in expanded block 66. The expanded block 66 depicts a process 68 for another platform, such as the workstation 28, and a process 70 for the controller 26. A user may use an interface on the workstation 28 to connect to the controller 26 over the network 30 using a suitable network protocol, such as Telnet (block 70). The user may initiate a capture state command on the controller 26 (block 72). In response to the command, the controller 26 may capture the state of the controller 26 (block 74), such as by writing the state information to the volatile memory 40 and then to the non-volatile memory 42, or directly to the non-volatile memory 42. As described above, the captured state may include process variables, state variable, diagnostic information, alarm information, and event information. Additionally, in other embodiments, the captured state may include captured commands from the controller 26.
The controller 26 may save the captured state to a file stored in the non-volatile memory of the controller 26 (block 76). Next, the controller 26 may send a message to the workstation 28 indicating completion of the state capture (block 78). Upon receiving the completion message, the workstation 28 may copy or move the captured state file from the controller 26 (block 80) and end the captured state operation (block 82). In some embodiments, the state of the controller 28 may be continuously captured. In such an embodiment, the state capture on the controller (blocks 74 and 76) may be performed repeatedly to capture the state over a period of time. Each state captured by the controller 28 may be captured after a time delay, such as about every 1 second, 2 second, 3 second, 4 seconds, or every 5 seconds or above.
After receiving the captured state, the captured state may be restored in a simulation of the virtual controller 52 (block 84). The virtual controller 52 may choose an appropriate model state from the database 54 that matches the captured state (block 86). As mentioned above, this selection may be based on the state information of the captured state, including variables such as load, etc. ARTEMIS may load the model state from the database 54 into the simulation with the captured state information (block 88). The simulation may then be analyzed offline from the controller 26 (block 90). The simulation may be progressed to allow analysis of a part of the system 10 in a step-by-step or continuous manner. As discussed above, the captured state may also include commands executed on the controller 26, and these commands may be replayed in the virtual controller and the simulation. In some embodiments, the captured stated may be loaded before any commands executed on the controller to ensure proper correspondence with the state of the controller. The analysis may include root cause analysis (RCA), parameter turning, etc. After analysis of the simulation, configuration changes, such as optimizations, may be implemented in the controller 26 (block 92). In some embodiments, control constants of the virtual controller from the captured state may not be restored or may be changed to aid in turning of the system 10.
Technical effects of the invention include capturing of the real-time state of a controller for a system such as a process, turbine, or power generation system, without rebooting or interrupting operation of the controller. Moreover, the capturing of the real-time state may be performed during the process of a reboot. Additional technical effects include copying of the captured state from one platform, e.g., a controller, to another platform, e.g., a workstation, and loading of the captured state in a simulation of a virtual controller on the workstation.
This written description uses examples to disclose the invention, including the best mode, and also to enable any person skilled in the art to practice the invention, including making and using any devices or systems and performing any incorporated methods. The patentable scope of the invention is defined by the claims, and may include other examples that occur to those skilled in the art. Such other examples are intended to be within the scope of the claims if they have structural elements that do not differ from the literal language of the claims, or if they include equivalent structural elements with insubstantial differences from the literal language of the claims.