Control system for a power application

A control system for a power application is provided, including a control module and a configuration tool. The control module is in communication with the power application. The control module includes control logic for controlling the power application by a plurality of frame states. All of the frame states are executed within a period of time referred to as a frame rate. The control module includes control logic for allotting an adjustable amount of time for each of the frame states. The configuration tool is in communication with the control module. The configuration tool includes control logic for modifying the adjustable amount of time of each of the plurality of frame states without modifying the frame rate.

BACKGROUND OF THE INVENTION

The subject matter disclosed herein relates to a system for controlling a power application, and more specifically to a system for controlling a power application having a configuration tool including control logic for modifying an adjustable amount of time of a frame state.

A control module is provided for operating a power application such as, for example, gas turbines, steam turbines, wind turbines, aero-derivative gas turbine, or plant distributed control systems (DCS). The control module includes control logic for reading inputs, executing an application, and writing outputs within a time period commonly referred to as a frame. The frame is defined into smaller units of time referred to as frame states. A frame state allows for the control module to perform one particular activity such as reading an input, executing the application, or writing an output. In one example there are four frame states, input, output, application and idle. The amount of time allotted for the execution of each frame state is referred to as a frame state timeout interval.

The frame state timeout intervals for each of the frame states are fixed and may not be changed. Thus, irrespective of the power application, the frame state timeout intervals each remain the same even though the size of the input and output points as well as the size of the application varies between power applications. For example, if the application frame state is relatively larger and more time consuming than the input, there is no way to utilize the extra input time that is allotted to accommodate the large application frame state. Moreover, even if the input, application, or outputs exceed the frame state timeout interval, there is usually no way to utilize the idle frame state timeout interval to accommodate the overrunning frame state timeout interval. As a result all of the input points may not be fetched, the application may not be executed accurately, or the output points may not be signaled correctly. Moreover, there is no simple approach for an end-user to monitor the control module as the application is executing. Thus, an end-user is usually unable to determine which frame state does not have sufficient time to execute, or which frame state has unused time.

In one approach, the frame state timeout intervals are modified by the control module system developers. Specifically, the system developers modify the frame state timeout intervals based on the specific requirements of a power application, re-build the firmware of the control module, re-release the software toolset for the control module, and make a release of the new firmware available to customers. This process is cumbersome, time consuming, and relatively expensive.

In another approach, the frame state timeout intervals are adjusted based on a specific site's requirements. For example, if a first site had an input frame state that was being timed out, then the system developers modify the input frame state such that more time is allotted to the input frame state. If a second site has an output frame that was being timed out, then the system developers modify the output frame state such that more time is allotted to the output frame state. If a third site has an application frame that was being timed out, then the system developers modify the frame state timeout interval corresponding to the application frame state such that more time is being allotted to the application frame state. All of these approaches are relatively time consuming and complex.

BRIEF DESCRIPTION OF THE INVENTION

According to one aspect of the invention, a control system for a power application is provided, including a control module and a configuration tool. The control module is in communication with the power application. The control module includes control logic for controlling the power application by a plurality of frame states. All of the frame states are executed within a period of time referred to as a frame rate. The control module includes control logic for allotting an adjustable amount of time for each of the frame states. The configuration tool is in communication with the control module. The configuration tool includes control logic for modifying the adjustable amount of time of each of the plurality of frame states without modifying the frame rate.

DETAILED DESCRIPTION OF THE INVENTION

As used herein the terms module and sub-module refer to an application specific integrated circuit (ASIC), an electronic circuit, a processor (shared, dedicated, or group) and memory that executes one or more software or firmware programs, a combinational logic circuit, and/or other suitable components that provide the described functionality.

Referring now toFIG. 1, an exemplary control system10is illustrated. The control system10includes a configuration tool20and a control module22. The control module22is in communication with a power application26. In the embodiment as illustrated, the power application26is a turbine such as, for example, a gas turbine, a steam turbine, a wind turbine, or an aero-derivative gas turbine. However, it is to be understood that the power application26may be a variety of applications, and the control system10may be employed in a variety of applications such as, for example, a plant distributed control system (DCS). The control system10exchanges messages between the control module22and the power application26over a data bus30. Specifically, in one embodiment the data bus30is in communication with production equipment such as, for example, fuel valves, sensors, actuators, electrical motors, or valves (not shown) of the power application26.

The control module22includes control logic for monitoring and controlling various functions of the power application26. In one embodiment, the control module22is a turbine controller that is employed for controlling various functions of a turbine (not shown) such as fuel and emissions control. The control module22includes an electrically erasable and reprogrammable memory such as, for example, flash memory that can be erased and reprogrammed repeatedly by the configuration tool20. The configuration tool20is selectively connected to the control module22through a data connection for diagnostics. The configuration tool20reconfigures the control module22, but does not alter the firmware of the control module22. In the exemplary embodiment as shown, the configuration tool20is a personal computer, however it is to be understood that other computing devices may be used as well.

The configuration tool20includes an interface32for allowing an end-user to enter input. In the embodiment as illustrated, the interface32is a keyboard and a mouse device. The configuration tool20further includes a display34. In one embodiment, the display34is a liquid crystal display (“LCD”) screen, and is used to display graphics and text. The configuration tool20is in communication with both the interface32and the display34, and includes control logic for generating a graphical signal that is shown on the display34.

FIG. 2is an exemplary illustration of a single frame38that includes a frame rate N. The frame rate N represents the amount of time that is allotted for the frame38to execute. In one embodiment, the frame rate N is measured in milliseconds. The frame38is defined into smaller units of time that are labeled as frame states40. The frame states40allow for the control module22to perform a particular activity such as, for example, reading an input, executing an application, or writing an output. In the example as shown, there are four frame states40which are labeled as ‘Input’, ‘Output’, ‘Application’, and ‘Idle’. An adjustable amount of time allotted for the execution of each frame state40is referred to as a frame state timeout interval42.

With reference to bothFIGS. 1-2, the control module22includes control logic for reading an input, executing the application, and writing an output within the amount of time allotted by the frame rate N. Although the frame rate N allotted by frame38is fixed, the frame state timeout intervals42have an adjustable amount of time that may be modified. That is, the configuration tool20includes control logic for modifying the frame state timeout interval42of the frame states40, based on the requirements of the power application26. Specifically, the configuration tool20includes control logic for creating one or more configuration files to the control module22that modify the frame state timeout interval42of the frame states40based on the requirements of the power application26. The configuration tool20includes control logic for transferring one or more configuration files to the control module22. The control module22includes control logic for accepting the configuration files, and upon acceptance, the control module22includes control logic for rebooting. During startup, the control module22includes control logic for reading and executing the modified frame state timeout intervals42of the frame states40. Specifically, the control module22executes the modified frame state timeout intervals42, without the need to change the overall execution period of the control system10.

FIG. 3is an exemplary illustration of a user interface graphic44. In one embodiment of the control system10, the control module22includes control logic for generating a graphic signal representing the user interface graphic44. The display34(FIG. 1) shows the graphic signal representing the user interface graphic44, which is viewable to an end-user. The user interface graphic44includes information regarding the frame state timeout intervals42(shown inFIG. 2) for the Input frame state40, the Application frame state40, and the Output frame state40. Specifically, the user interface graphic44displays a plurality of input fields46regarding the Input, the Application, and the Output frame states40. The plurality of input fields46display a modifiable amount of time that is allotted for each of the frame states40.

Referring now to bothFIGS. 1 and 3, an end-user enters an input using the interface32to modify one of the input fields46. For example, referring specifically toFIG. 3, one of the input fields46has been highlighted such that an end-user may modify the value ‘9’ that is currently located in the input field46corresponding to the Input frame state40. The user interface graphic44also includes a plurality of default fields48. Specifically, each of the Input, the Application, and the Output frame states40include a default field48that displays a default value of the respective frame state timeout intervals42(shown inFIG. 2). Once the input fields46have been updated, an end-user then selects an ‘OK’ button50. The configuration tool20then sends the modified frame state timeout intervals42as configuration files to the control module22. The control module22includes control logic for accepting the configuration files, and upon acceptance, the control module22includes control logic for rebooting. During startup, the control module22includes control logic for executing a program with the modified frame state timeout intervals42. Thus, the frame state timeout intervals42(shown inFIG. 2) may be modified by an end-user depending on the needs of the power application26(shown inFIG. 1). For example, in the event a specific power application26requires a relatively long frame state timeout interval42for the Input frame state40and a relatively short frame state timeout interval42for the Application frame state40, an end-user increases the frame state timeout interval42for the Input frame state40while at the same time decreasing the frame state timeout interval42for the Application frame state40.

With reference toFIGS. 1-3, modifying the frame state timeout intervals42affects the execution of the control system10. Therefore, in one embodiment of the control system10, the configuration tool20requires a password to obtain access to the user interface graphic44. That is, the configuration tool20includes control logic for providing password protection in the event at least one of the frame state timeout intervals42are to be modified. Password protection provides a level of protection against an unauthorized user that obtains access to the configuration tool20, and modifies the frame state timeout intervals42without the requisite knowledge that is needed to make such a modification.

With continued reference toFIGS. 1-3, both of the configuration tool20and the control module22each include control logic for protecting against incorrect timeout intervals as well. Specifically, the configuration tool20includes control logic for validating any modified values that are inputted into one or more of the input fields46(shown inFIG. 2). Specifically, the configuration tool20includes control logic for determining if the modified values of any of the frame state timeout intervals42would cause an incorrect timeout condition.

One example of an incorrect timeout example involves an end-user entering the value ‘12’ into the input field46corresponding to the Input frame state40(shown inFIG. 3). This means that twelve milliseconds are allotted for the frame state timeout interval42corresponding to the Input frame state40. However, if the frame rate N for the frame38is only ten milliseconds, this means that the other frame states40, such as the Application frame state40and the Output frame state40, are not executed. Thus, the configuration tool20includes control logic for determining if the modified values of any of the frame state timeout intervals42would cause an incorrect timeout condition. The configuration tool20further includes control logic for transferring the configuration files to the control module22only if the modified values of the frame state timeout intervals42do not create an incorrect timeout condition. The control module22also includes control logic for determining if any of the modified values of the frame state timeout intervals42create an incorrect timeout condition. In the event the control module22determines that any of the modified values of the frame state timeout intervals42create an incorrect timeout condition, then the control module22includes control logic for using the default values48for each of the Input, the Application, and the Output frame states40(which is shown inFIG. 3as the default field48). Thus, the control system10provides a double layer of protection to substantially prevent an incorrect timeout condition.

FIG. 4is an exemplary illustration of a frame state analysis52. In one embodiment of the control system10, the configuration tool20(shown inFIG. 1) includes control logic for generating a graphic signal representing the frame state analysis52, and the display34(shown inFIG. 1) shows the graphic signal representing the frame state analysis52. The frame state analysis52provides an end-user with the ability to view the frame state timeout intervals42as the control module22executes a program. In the exemplary embodiment as shown inFIG. 4, the frame rate N allotted for the frame38is about 10 milliseconds. The frame state analysis52displays a current frame state timeout interval54, which indicates the current amount of time that is allotted for each of the frame states40. In the example as illustrated, the Input frame state40is allotted about 1.0 millisecond, the Application frame state40is allotted about 7.0 milliseconds, and the Output frame state40is allotted about 9.0 milliseconds.

The control module22(shown inFIG. 1) includes control logic for monitoring the execution of the program and determining the actual duration of each of the frame states40. Specifically, a sequencer (not shown inFIG. 1) of the control module22calculates a minimum, average, and maximum amount of time that each frame state40actually takes to execute, and transfers this information to the configuration tool20(shown inFIG. 1). In the example as shown inFIG. 4, an ‘Actual Duration’ section is shown and is indicated with reference number58. The Actual Duration box58includes a column for displaying a minimum time58A, an average time58B, and a maximum time58C for each frame state40. In the embodiment as shown inFIG. 4, the Input frame state40has a minimum time58A of about 0.819 milliseconds, an average time58B of about 0.912 milliseconds, and a maximum time58C of about 1.123 milliseconds. The sequencer of the control module22may also determine the actual start and end times of the frame38, which is also sent to the configuration tool20.

The configuration tool20includes control logic for calculating a Recommended Timeout60(based in milliseconds) based on the minimum time58A, the average time58B, and the maximum time58C. Alternatively, in another embodiment the configuration tool20may include control logic for employing a standard deviation as well. The Recommended Timeout60provides an end-user with a guide as to how the modify the input field46of one or more of the frame states40using the user interface graphic44(shown inFIG. 3).

The frame state analysis52also includes a graphical indicator64illustrating the actual duration of each of the frame states40as the program executes. The graphical indicator64includes a plurality of tick or indication marks66which aid an end-user in determining if one or more of the frame states40have exceeded the current frame state timeout interval42. A plurality of timeout indicators are also illustrated, where the Input frame state40includes an Input timeout indicator70, the Application frame state40includes an Application timeout indicator72, and the Output frame state40includes an Output timeout indicator74. In the example as shown inFIG. 4, the Input timeout indicator70is at about 1 ms, the Application timeout indicator72is at about 7 ms, and the Output timeout indicator74is at about 9 ms.

FIG. 4illustrates the Input frame state40finishing execution at about 1.2 milliseconds. However, as shown in the current frame state timeout interval54, the Input frame state40is allotted about 1.0 millisecond, and is supposed to finish executing at 1.0 millisecond. Thus, as seen in the graphical indicator64, the Input frame state40exceeds the amount of time that is allotted by about 0.2 milliseconds. Because the Input frame state40exceeds the amount of time that has been allotted, the configuration tool20may include control logic for shading or coloring the Input frame state40to indicate an out of range condition. The Application frame state40finishes executing at about 4.4 milliseconds. However, as shown in the current frame state timeout interval54, the Application frame state40is allotted until about 7.0 milliseconds to execute. In the example as shown, the Output frame state40finishes executing at about 6.3 milliseconds. However, as shown in the current frame state timeout interval54, the Output frame state40is allotted until about 9.0 milliseconds to execute. As seen in the Recommended Timeout60, because the Input frame state40exceeds the frame state timeout interval42by about 0.2 milliseconds, the Recommended Timeout60suggests increasing the current frame state timeout interval54by about 0.5 milliseconds.

With reference toFIGS. 1-4, the control system10allows for an end-user to adjust the frame state timeout intervals42of the Input frame state40, the Application frame state40, the output frame state40, and the Idle frame state40. That is, the frame state timeout intervals42of the frame states40may be modified depending on the type of power application26, without the need to modify the firmware of the control module22. Some other types of control systems that are currently available usually require system developers to modify the frame state timeout intervals based on the specific power application and re-build the firmware of the control module, which becomes time consuming and costly. Moreover, the control system10also provides an end-user with the ability to provide one type of control module that is common among different power applications26(i.e., gas turbines, steam turbines, wind turbines, aero-derivative gas turbines, or DCS systems). In contrast, control systems that are currently available generally involve building different types of control modules to accommodate the needs of various types of power applications. Moreover, with reference toFIG. 4, the frame state analysis52also provides an end-user with the ability to monitor and observe the actual duration of each of the frame states40as the program executes on the control module22. Thus, an end-user has the ability to identify and address a potential frame state40time out condition before an issue arises.