Abstract:
A genset controller that is configurable for controlling a variety of types of gensets, as well as a method of configuring a genset controller for controlling a genset, are disclosed. The genset controller includes a memory for storing a plurality of software routines, a personality profile data set, and a user-settable data set, and further includes a processor coupled to the memory for executing the software routines and reading data from the personality profile data set and the user settable data set to control the genset. The genset controller additionally includes an input port coupled to the memory for enabling changes to the personality profile data set and the user-settable data set to be downloaded into the memory. The personality profile data set and the user-settable data set include data that configures the genset controller for operation with a particular genset.

Description:
FIELD OF THE INVENTION 
     The present invention relates to the control of electric generator sets (gensets) including an engine and an alternator. In particular, the present invention relates to the configuration of controllers that are used to control and monitor such gensets. 
     BACKGROUND OF THE INVENTION 
     Electric generator sets (or “gensets”) are widely used to provide electric power. A genset typically includes an engine coupled to an alternator, which converts the rotational energy from the engine into electrical energy. The terminal voltage of a genset is proportional to both the magnetic flux density within the alternator, and the speed of the engine. The magnetic flux density is typically determined by controlling an armature voltage or field current on the alternator, while the speed of the engine is typically determined by an engine governor. 
     It is known to employ a genset controller to control and monitor the operation of a genset, including the operation of the engine and alternator of the genset. In the past, genset controllers have been designed to control and operate with particular respective gensets. Because many gensets have had standard configurations and options, it was in some circumstances also possible to design genset controllers that could control and operate with multiple gensets, including gensets designed and manufactured by different companies. 
     Recently however, the variety of types and configurations of, and options available on, different gensets has increased such that it is becoming more difficult to design a “one-size fits all” genset controller. At the same time, because of an increased variety of genset manufacturers, it no longer suffices for the manufacturers of particular genset controllers to design genset controllers for use with only particular gensets. Clearly, a more flexible genset controller that is capable of being adapted for operation with a variety of different types and configurations of gensets, and/or a variety of options available on the gensets, is necessary in a modern marketplace in which many different gensets and genset configurations are available. 
     One example of the need for a more flexible genset controller relates to a new invention in the controlling of gensets concerning a thermal protection subroutine, which is described in a related patent application filed on the same date herewith, entitled “METHOD AND APPARATUS FOR PREVENTING EXCESSIVE HEAT GENERATION IN AN ALTERNATOR OF A GENERATOR SET”, which is hereby incorporated by reference herein. This invention allows a genset controller to monitor the currents flowing within the alternator of the genset and to prevent the flowing of excessive currents within the alternator, which can lead to excessive heat exposure and damage the alternator. 
     By employing this new invention, a circuit breaker is no longer necessary within the alternator itself to prevent excessive currents within the alternator, as it is with many conventional alternators. However, despite this invention, alternators without circuit breakers will continue to be manufactured, and so it will be desirable for genset controllers to have the capability to operate both with alternators that have circuit breakers and with alternators that do not have circuit breakers. 
     Many other examples of variable features of gensets also exist. For example, some gensets are now controlled in their operation (at least in part) by engine control modules (ECMs). Depending upon whether the gensets are controlled by such ECMs, more or less control is exercised by the genset controllers to control the operation of the gensets. Further, the control signals provided by the genset controllers depend at least in part upon whether the control signals are provided to ECMs that are coupled in between the genset controllers and the gensets, rather than provided directly to the genset controllers. Also, certain additional information concerning the operation of the gensets is available to be provided to genset controllers when ECMs are employed that is unavailable otherwise. For all of these reasons, therefore, it would be desirable for genset controllers to be capable of being configured to operate with gensets that both are and are not controlled by ECMs. 
     Further, because of the variation in the configurations of different gensets that exists today, the control signals that should be provided by a genset controller to one genset to produce optimal performance by that genset are often different from the control signals that should be provided to a second genset to produce optimal performance by that genset. This is particularly the case with respect to the regulation of the field volts (or current) or excitation level of the alternator, which influences the output voltage of the alternator, and which is often performed by a voltage regulator of the genset controller. When a genset controller is not well-tailored to the genset being controlled, the genset controller often is less able to accurately and quickly measure or respond to feedback from the genset concerning changes in the performance of the genset due to changes in the load or other factors, with the result being less than optimal performance of the genset. Consequently, it would be desirable for genset controllers to be capable of being configured to vary in their operation depending upon the genset being controlled so that, regardless of the genset, optimal performance would result. 
     It would therefore be advantageous if a genset controller was developed which was capable of being configured to control and operate with a variety of gensets of different types and configurations and having a variety of different options, where control is understood broadly to encompass operations such as monitoring operations. It would particularly be advantageous if the genset controller could be configured to operate both with gensets having alternators that included circuit breakers to preclude excessive current flow within the alternators, and with gensets that required control by a genset controller having a thermal protection capability. It would further be advantageous if the genset controller could be configured to operate with gensets being controlled by ECMs as well as gensets without control by ECMs. It would additionally be advantageous if the genset controller could be configured to operate in conjunction with a variety of gensets having a variety of different performance parameters and qualities. It would further be advantageous if the genset controller could be easily configured both at the factory and in the field, and if the genset controller was limited in its configurability to assure that improper configuration did not occur. 
     SUMMARY OF THE INVENTION 
     The present inventors have discovered that a genset controller can be programmed with a variety of parameters to configure the genset controller for operation with a variety of different gensets and genset options, including gensets operating both with and without ECMs. The genset controller, which is programmed with application software that governs the operation of the genset and does not vary in dependence upon the genset being controlled, is further programmed with personality profile data and user-settable data which does vary depending upon the genset being controlled. The personality profile data is typically programmed at the time of manufacture of the genset at the factory and cannot be modified thereafter, except for modifications by representatives of the manufacturer or the manufacturer&#39;s distributors in the field, while the user-settable data can be programmed at the factory and then reprogrammed by end users in the field. 
     In particular, the present invention relates to a genset controller that is configurable for controlling a variety of types of gensets. The genset controller includes a memory for storing a plurality of software routines, a personality profile data set, and a user-settable data set, and further includes a processor coupled to the memory for executing the software routines and reading data from the personality profile data set and the user settable data set to control the genset. The genset controller additionally includes an input port coupled to the memory for enabling changes to the personality profile data set and the user-settable data set to be downloaded into the memory. The personality profile data set and the user-settable data set include data that configures the genset controller for operation with a particular genset. 
     The present invention further relates to a genset controller that is configurable for controlling a variety of types of gensets. The genset includes a memory means for storing a plurality of software routines, and a plurality of characteristic data, a processor means coupled to the memory means for executing the software routines in order to control a genset, and an input means coupled to the memory means for receiving the plurality of characteristic data. The characteristic data is stored separately from the software routines in the memory means so that the characteristic data can be downloaded without impacting the software routines. 
     The present invention additionally relates to a method of configuring a genset controller for controlling a genset. The method includes storing a plurality of software routines, a personality profile data set, and a user-settable data set, and operating the genset by executing the software routines which employ the personality profile data set and the user-settable data set. The method further includes downloading changes to the personality profile data set at a first time to alter the manner in which the genset is operated by execution of the software routines, and downloading changes to the user-settable data set at at least one of the first time and a second time subsequent to the first time to alter the manner in which the genset is operated by execution of the software routines. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram showing a genset including an alternator, an engine control module, and a genset controller capable of being configured for operation with a variety of gensets in accordance with one embodiment of the present invention; 
     FIG. 2 is a detailed block diagram of the genset controller of FIG. 1; 
     FIG. 3 is a detailed block diagram of synchronous software tasks that are performable by the genset controller of FIG. 1; and 
     FIG. 4 is a detailed block diagram of asynchronous software tasks that are performable by the genset controller of FIG.  1 . 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     Referring to FIG. 1, a generator set controller (or genset controller)  100  is shown coupled to a generator set (genset)  150 . Genset controller  100  can be located remotely from genset  150  (up to 40 feet) or attached to the genset directly by way of an engine harness. Genset  150  includes an engine  152  and an alternator (or synchronous generator)  154 , and has a typical power rating of between 20 KW and 2000 KW or more. Engine  152  is typically an internal combustion engine that is powered by gasoline, diesel fuel, methane gas or other fuels, for example, the Series 60, Series 2000 or Series 4000 engines manufactured by Detroit Diesel Company of Detroit, Mich. Engine  152  rotates a rotor (not shown)of alternator  154 , which outputs electrical power. Alternator  154  is typically a three-phase machine, such as the Model 5M4027 alternator manufactured by Marathon Electric Company. 
     Genset controller  100  operates to control and monitor the operation of genset  150 . As shown in FIGS. 1 and 2, genset controller  100  is a microprocessor-based (or otherwise computer-driven) system having a processor  101  and a memory  102 . Referring to FIG. 2, memory  102  includes a 512 K FLASH memory  232 , a 128 K SRAM memory  234 , and an 8 K EEPROM memory  236 . Processor  101  includes a microcontroller or microprocessor  240  (e.g., a MC68332 processor manufactured by Motorola, Inc. of Schaumburg, Ill.), and also a field-programmable gate array (FPGA)  238 . FPGA  238  allows for memory allocation among memories  232 - 236 . Processor  101  and memory  102  are coupled to one another and other elements of the genset controller  100  by an internal bus structure  290 . 
     Genset controller  100  employs several interfaces to provide control and monitoring of genset  150 , including a CAN interface  103 , a three-phase input interface  104 , a voltage regulator interface  105 , an analog input/output interface (analog I/O)  106  and a digital input/output interface (digital I/O)  107 . Three-phase input interface  104 , voltage regulator interface  105  and digital I/O  107  each are coupled directly to FPGA  238  of processor  101 , which allows for signal sampling, signal multiplexing, and control of peripheral devices (such as operator interface devices, discussed below). CAN interface  103  and analog I/O  106  are coupled to processor  101  by way of internal bus  290 . Input and output ports for each of interfaces  104 - 107  are provided on an interconnect board  220  of genset controller  100 . 
     The processor  240  operates under the direction of stored program instructions to read in information through the three-phase input interface  104  regarding the operation of the alternator  154  in the genset  150 . Referring to FIGS. 1 and 2, the three-phase alternator output voltages are applied to system voltage inputs  224 , and the three-phase alternator output currents are coupled through a current transformer  158  to system current inputs  225 . These six analog input signals are filtered by respective voltage and current conditioning circuits  242  and  246  and are digitized by respective voltage and current analog-to-digital converters  244  and  248 . These digitized indications of alternator output voltages and currents are read by the processor  240  and used to monitor genset performance. This information may be displayed and it may be used to calculate other genset operating parameters, such as output power, reactive power, power factor and alternator duty level and frequency. 
     The digitized alternator output signals are also used as the basis for controlling the operation of the alternator  154 . As will be described below, the processor  101  is programmed to provide command signals to the voltage regulator interface  105 . These commands operate a pulse width modulation (PWM) unit  250  which outputs pulse-width modulated signals to PWM output  226  of interconnect board  220 . These PWM signals are applied to alternator  154  to control the voltage, current, and power output levels of the alternator. In particular, voltage regulator interface  105  provides an approximately 10 KHz PWM signal to adjust the field current on alternator  154  to control the armature voltage and maintain the output voltage at a particular level. The voltage regulator interface  105  may also provide a 1 KHz PWM signal for governing engine speed  152 , if an ECM is not employed. 
     In addition to providing control and monitoring of alternator  154 , genset controller  100  also provides control and monitoring of engine  152 . Although in certain embodiments genset controller  100  directly controls engine  152 , in the preferred embodiment genset controller  100  does not directly control the engine. Rather, the operation of engine  152  is directly controlled by an engine control module (ECM)  160 , which typically is physically attached to the engine. ECM  160  can control engine speed (and other engine operating parameters), and thereby control the output power of alternator  154 . ECM  160  also monitors a variety of engine characteristics, for example, fuel consumption, oil pressure, emissions levels, coolant temperature, time delay engine cool down information, and time delay engine start information. 
     The genset controller  100  controls and monitors the ECM  160  through CAN interface  103  which connects to the CAN serial link  170 . CAN serial link  170 , employs the SAE J1939 protocol which is an industry standard protocol for serial communications. By way of CAN databus  170 , genset controller  100  receives the information about the operation of engine  152  that has been collected by ECM  160 , and provides commands to the ECM  160  to influence the operation of the engine. In particular, upon determining the occurrence of system faults, genset controller  100  provides commands to engine  152  via ECM  160  causing the engine to shutdown, by turning off both the ignition fuel control valve and the cranking of the engine. 
     The genset controller  100  includes analog I/O  106  and digital I/O  107  which enable it to communicate with a variety of devices. The analog I/O  106  receives up to sixteen separate analog input signals at inputs  229  on interconnect board  220 . These analog signals are filtered by conditioning circuit  258 , and applied to an A/D converter  262  through a multiplexer  260 . The processor  101  can thus sequentially scan the analog inputs and read in digitized signals indicative of engine parameters such as engine temperature, gas emissions and engine battery charge. 
     The digital I/O  107  receives 24 single-bit TTL signals at digital inputs  227 , and produces 34 single-bit TTL signals at digital outputs  228  on interconnect board  220 . Digital inputs  227  are coupled to a digital input signal conditioning unit  252 , which conditions the input signals and provides the signals to FPGA  238  via buffers  254 . Three of the inputs  227  are dedicated to signals relating to emergency stopping, remote starting, and low coolant level of genset  150 . The remaining inputs are definable inputs, which can be enabled or disabled, and are coupled to a variety of discrete sensors. The discrete sensors are capable of indicating various types of engine characteristics, warning conditions, and system faults relating to low fuel, or high oil temperature, as well as switchgear conditions concerning the synchronization of the power output of genset  150  with power lines to which the genset is being connected. 
     Genset controller  100  is capable of performing a variety of functions in response to the signals received at analog inputs  229  and digital inputs  227 . In particular, genset controller  100  is capable of scaling the signals, monitoring genset parameters through the use of the signals, detecting system faults, and providing system warnings or system shutdowns in response to the signals. As will be discussed in more detail below, genset controller  100  is also capable of displaying (in real-time) information obtained from the signals, providing relay driver outputs (RDOs)in response to the signals, and relaying information in the signals to remote control and monitoring stations. 
     The  34  digital outputs  228  are driven by digital output drivers  256 . The digital outputs  228  are controlled by the processor acting through FPGA  238 . Three digital outputs are dedicated to a Controller Panel Lamp Relay, a Controller Engine Crank Relay, and a Controller Engine Fuel Relay. The remaining digital outputs are definable, and typically are RDOs that determine the on/off status of a variety of indication/warning lamps within a remote control station. The definitions of these digital outputs typically correspond to particular system warnings, shutdowns or other conditions. For example, the definable digital outputs can be RDOs corresponding to “NFPA-110” functions such as overspeed, overcranking, low oil pressure, or high coolant temperature of engine  152 . The definable digital outputs can also be RDOs corresponding to loss of signal functions, including a loss of communications with ECM  160 . Additionally, the definable digital outputs can be RDOs corresponding to one of many system fault conditions concerning the genset  150  or the genset controller  100  itself. 
     As shown in FIGS. 1 and 2, genset controller  100  also includes a number of operator interface devices, by which an operator can both provide commands to the genset controller and receive information from the genset controller. The operator interface devices are included on a front panel Man Machine Interface (MMI)  210 , which is situated on a controller box. One of the operator interface devices is an emergency stop button  130 . Emergency stop button  130  allows an operator to immediately stop the genset  150  by pressing a pushbutton. 
     A second operator interface device is a keypad/display  120 , which includes 16 individual keypads  122  and a vacuum flourescent display (VFD)  124 . Keypad/display  120  is coupled to a keypad/display interface  212  in front panel MMI  210 , which in turn is coupled to internal databus  290 . Keypads  122  allow an operator to enter a variety of information and commands to genset controller  100 . VFD  124  is an alphanumeric display, and allows genset controller  100  to display various information concerning system operation and system faults to an operator. A VFD is employed because it provides good visibility over a large range of temperatures and from a wide range of viewing angles. 
     The operator interface devices further include a control switch  110 , which can be rotatably set to one of three positions: an Automatic (Auto) position  112 ; an Off/Reset position  114 ; and a Run position  116 . Setting the control switch to Run position  116  causes genset controller  100  to send a signal via ECM  160  to start and run the genset  150 . Setting control switch  110  to Auto position  112  allows the genset  150  to be started and controlled from a remote location. This mode of operation also allows for time-delayed engine starting and cool-down. Setting control switch  110  to Off/Reset position  114  initiates the immediate shutdown of genset  150  and also results in a resetting of the software of genset controller  100 . If a fault occurs that precipitates a system shutdown, an operator must move control switch  110  to Off/Reset position  114  to clear the fault before genset  150  can be started again. 
     Genset controller  100  also includes other devices which provide information to an operator, including several light-emitting diodes(LEDs) and an alarm horn (not shown). These devices are used to provide system status information to an operator, as well as to alert the operator to the existence of system faults. During the occurrence of some faults, a message concerning the fault or related warning/shutdown condition is displayed on VFD  124 , an appropriate warning LED on front panel MMI  210  is turned on, the alarm horn is activated, and a corresponding RDO is produced at a digital output  228 . 
     As shown in FIG. 1, genset controller  100  is capable of communication with other remote control and monitoring devices via both a K-BUS interface  109  and a second serial interface  108 . K-BUS interface  109  provides serial communications using the proprietary K-BUS serial communications protocol. Second serial interface  108  provides serial communications using any of a variety of other “open” serial communications protocols, including the Modbus™ protocol. Each of K-BUS interface  109  and second serial interface  108  is configurable to use either the RS-232 or RS-485 standards. 
     In the preferred embodiment shown in FIG. 2, the structures associated with K-BUS interface  109  and second serial interface  108  include a first dual universal asynchronous receiver/transmitter (DUART)  270  that is coupled to two RS-485 conversion units  272  and  274 , and a second DUART  280  that is coupled to an RS-485 conversion unit  282  and an RS-232 conversion unit  284 . Each of DUARTs  270 ,  280  is coupled to internal databus  290  and is controlled in response to program instructions executed by microcomputer  240 . 
     The microprocessor  240  operates the genset under the direction of programs illustrated in FIGS. 3 and 4. The programs include scheduled tasks which, as illustrated in FIG. 3, are performed one at a time under the direction of a task scheduler program  302 . The programs also include asynchronous tasks as illustrated in FIG.  4 . The asynchronous tasks are performed in response to interrupts that are managed by a real time, asynchronous program  402 . 
     Referring to FIGS. 3 and 4, two block diagrams  300 ,  400  are provided showing software based subsystems (or tasks) that are performed by microprocessor  240  of genset controller  100 . Through the operation of these subsystems, microprocessor  240  is capable of monitoring genset  150  (as well as capable of monitoring the operation of genset controller  100 ), receiving operator commands, detecting system faults, providing system warnings and shutdowns when necessary, displaying information at keypad/interface  120  (and at other operator interface devices), and conducting communications with genset  150 , ECM  160  and other devices via K-BUS interface  108  and second serial interface  109 . The subsystems of block diagrams  300 ,  400  are self-contained routines that control specific aspects of genset controller  100 . Each subsystem is an independent, modular unit with well-defined input/output protocols to communicate with other subsystems. 
     Block diagram  300  shows scheduled subsystems, which are scheduled according to a task scheduler subsystem  302 . The task scheduler subsystem is capable of invoking any subsystem at a rate of up to 100 times a second, and is able to handle transitions between subsystems and to monitor the execution times of subsystems to make sure that subsystems do not exceed their time allotments. As shown, other scheduled subsystems (which are scheduled by task scheduler subsystem  302 ) include a user interface subsystem  304 , a state machine subsystem  306 , a metering subsystem  308 , a voltage regulator subsystem  310 , a display subsystem  312 , a digital inputs subsystem  314 , and a fault detection/handling subsystem  316 . Further, the scheduled subsystems include a load disturbance detection subsystem  318 , a Modbus™ (or other serial communications) subsystem  320 , a K-BUS subsystem  322 , a thermal protection subsystem  324 , an analog inputs subsystem  326 , and an EEPROM data storage subsystem  328 . 
     Block diagram  400  shows asynchronous subsystems. As shown in block  402 , these subsystems operate in real time, asynchronously, with respect to the scheduled subsystems (i.e., operate in the “background” of the scheduled subsystems). The asynchronous subsystems also provide data when the scheduled subsystems require such data. The asynchronous subsystems are interrupt-driven modules and can take advantage of special features of microprocessor  240  (such as the embedded time processing unit within the microprocessor). The asynchronous subsystems include a serial communications subsystem  404 , a timer subsystem  406 , a real time math subsystem  408  (which employs a time processing unit of microprocessor  240 ), and a SAE J1939 interface subsystem  409 . 
     The scheduled and unscheduled tasks of FIGS. 3 and 4 which govern the operation of the genset controller  100  constitute application software that is stored within the memory  102  of the genset controller and is not modifiable by the user. Additionally stored within the genset controller  100 , however, is a first set of data called a personality profile and a second set of data that is user-settable. The personality profile and user-settable data concerns the genset  150  or its contents (e.g., the engine/alternator combination within the genset), and is stored within the 512 K FLASH memory  232 . Both types of data can be repeatedly modified. 
     Both the personality profile data and the user-settable data can be loaded onto the genset controller  100  by way of one of the ports of the serial interface  108 , particularly the RS-232 port  284 . Additionally, the user-settable data can be loaded onto the genset controller  100  by way of the keypad/display  120 , from a Modbus™ communication link, or from a remote location using a Windows Monitor II program by Kohler Company. By storing the personality profile and user-settable data separately from the application software, it is possible to quickly and easily restore information concerning the control of a particular genset, by downloading it from a central database, without having to download, modify, or otherwise interact with the application software. 
     The personality profile data includes data that varies depending upon the genset  150  that is coupled to the genset controller  100 , i.e., the “personality” of the genset. In particular, such data includes data regarding the alternator  154  of the genset  150  such as a transient open circuit time constant of the alternator, the number of alternator poles, a fixed voltage flag if the genset operates at one fixed voltage only, and a maximum power rating for a fixed voltage alternator. Where the alternator can have variable outputs, e.g., depending upon the frequency of operation and other variables, multiple maximum power ratings are included within the personality profile data. Additionally, alternator current limits can be specified for various voltage settings. 
     In addition to data regarding the alternator  154 , the personality profile data also includes voltage regulator gain constants, a speed sensor constant that can be used to determine engine RPM, and data regarding the engine  152  such as a default gain for the regulator of the engine and multiple engine speed warning and shutdown settings. The engine speed warning and shutdown settings can be used for operation of the genset at several speed settings such as idle and rated speed. Additionally, certain identification information is stored as part of the personality profile data, including a genset serial number, an alternator model number, and an engine model number. Depending upon the embodiment, the personality profile data can include a variety of other types of information as well, such as the engine shutdown oil pressure. In the present embodiment, the personality profile data is specifically stored within a data structure for genset-embedded constants, within the 512 K FLASH memory  232 . 
     The personality profile data is data specifying significant features of the genset  150  to which it is necessary for the genset controller  100  to be tailored in its operation. Consequently, the personality profile data is loadable only at the factory by the manufacturer or by representatives of the manufacturer&#39;s distributors in the field, by way of the serial interface  108  or in alternate embodiments by way of the K-BUS interface  109 , to assure that the personality profile data is properly installed. The genset controller  100  is configured to be able to receive new personality profile data in the field in case there is a problem in the field that necessitates reloading of the personality profile data. 
     The personality profile data allows for more precise control of a given genset  150  by the genset controller  100  than would otherwise be the case. For example, the maximum power ratings are specific to the given genset  150  under various operational circumstances such as various frequencies of operation, and allow for proper voltage regulation of the genset. Also in certain embodiments, through the use of the serial number information or other information, the genset controller  100  can determine whether the genset  150  is to be controlled by an ECM  160 , and whether the ECM is to be coupled in between the genset controller and the genset. By obtaining this information, the genset controller  100  can provide more accurate control and more complete monitoring of the genset  150  by taking advantage of any additional control and monitoring capabilities that are available due to the existence of the ECM  160 . 
     Additionally, based upon the serial number information as well as the type of maximum power rating information that is provided in the personality profile data, the genset controller  100  can determine whether the alternator  154  within the genset  150  to be controlled includes any circuit breakers for preventing excessive currents and heat generation. Thus, the genset controller  100  can determine whether it should employ, in the absence of such circuit breakers, a thermal protection subroutine such as that discussed in the patent application entitled “METHOD AND APPARATUS FOR PREVENTING EXCESSIVE HEAT GENERATION IN AN ALTERNATOR OF A GENERATOR SET” referred to above. Thus, the personality profile data assures proper control of the excitation level of the alternator  154  so that excessive currents and heat exposure do not occur within the alternator. 
     Further, the personality profile data provides the genset controller  100  with various failsafes to preclude improper operation of the genset  150 . To begin, the genset controller  100  is able to compare the serial numbers of the personality profile data with serial numbers that are entered as part of the user-settable data, as discussed below. If two serial numbers do not match upon powerup of the genset  150 , a serial number mismatch warning is issued to the fault detection/handling subsystem  316 . Additionally, if personality profile data is entirely absent from the memory  102  of the genset controller  100  upon powerup of the genset  150 , a warning is issued to the fault detection/handling subsystem  316  that prevents the starting of the engine  152 . 
     Turning to the user-settable data, this data is loadable at the factory and in the field, and is loadable both by representatives of the manufacturer/distributors and by users themselves. As discussed, the user-settable data can be loaded by way of the keypad/display  120 , by way of the Modbus™ communication link, and from a remote location using the Windows Monitor II program by Kohler Company, in addition to loading by way of the serial interface  108 . Thus, in the present embodiment, the genset controller  100  is designed to facilitate the ability of users to update or modify their genset controller  100  for controlling an updated or new genset  150 . The amount of data that is user-settable depends upon the embodiment of the invention, although in the present embodiment, the user-settable information includes approximately 3000 bytes of information. 
     In the present embodiment, the user-settable data includes data concerning the output voltage and frequency of operation of the genset  150 . This data signifies to the genset controller  100  the expected levels of operation of the genset  150  in terms of voltage and frequency, which information is utilized by the genset controller  100  in controlling the genset  150 . Additionally, the user-settable data includes information specifying the identities of several of the analog inputs  229  and digital inputs  227 . This information allows the genset controller  100  to obtain additional information regarding the operation of the genset  150  for monitoring and control purposes. The user-settable data also includes certain identification information which is compared to the identification information of the personality profile data, as discussed above. 
     Aside from the identification information, in general the user-settable information is less critical to proper operation of the genset  150  than is the personality profile data. Whereas, generally speaking, improper personality profile data would render the genset controller  100  incapable of operating a given genset  150 , improper user-settable data will merely reduce the accuracy and performance of the genset controller  100  in its control and monitoring of the genset  150 . Consequently, the entry of the user-settable data is made more flexible to users by allowing input of the data by way of keyboard/display  120 . 
     While the foregoing specification illustrates and describes the preferred embodiments of this invention, it is to be understood that the invention is not limited to the precise construction herein disclosed. The invention can be embodied in other specific forms without departing from the spirit or essential attributes of the invention. Accordingly, reference should be made to the following claims, rather than to the foregoing specification, as indicating the scope of the invention.