Abstract:
A method and apparatus for simultaneously controlling multiple control systems is provided. The resulting hybrid control system provides for sharing of inputs and outputs on a control surface membrane between the multiple distinct control systems. A unified tactile/LED interface for both systems is achieved, allowing for a single hybrid control system experience for operators in industrial, manufacturing and control-room environments.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     This disclosure relates generally to control of industrial systems and the like, and more particularly, to a method and apparatus for simultaneous use of multiple control systems. 
     2. Description of the Related Art 
     In control systems for industrial processes and the like, such as, for example, oil refineries and manufacturing plants, upgrades of the control system are a frequent occurrence. Such upgrades are due in part to advancements in technology, as well as changing needs in the industry. These upgrades result in changes being made to portions of the control system, while the overall system remains in place. However, upgrades are often less efficient than wholesale replacement of the control systems because of the need to work within the existing architecture of the system. 
     Where major changes are desired, wholesale replacement of the control system is often done. However, replacement of the control system is a costly venture in both implementation and training of the operator. 
     Accordingly, there is a need for a method and apparatus to implement a new or primary control system, which is cost effective. There is a further need for such a method and apparatus that allows for simultaneous use of the old or secondary system with the primary system. The method and apparatus described herein provides for simultaneous use of multiple process control systems and sharing of an operator interface between the systems. The method and apparatus described herein provides the technical effect of allowing operator control of more than one control system simultaneously, thereby more efficiently and effectively controlling a particular industrial process or facility. The technical effect includes, but is not limited to, enabling an existing large customer base to move toward utilization of next-generation control systems by providing a control-membrane solution that accommodates simultaneous interaction with two or more systems, which provides a unified hybrid-control experience. The technical effect further includes, but is not limited to, annunciation and control-membrane sharing between at least two distinct control systems thereby creating a single hybrid control system. 
     SUMMARY OF THE INVENTION 
     A method and apparatus for sharing inputs and outputs on a control surface membrane between at least two distinct control systems is provided. A unified tactile/LED interface for both systems is achieved, allowing for a single hybrid control system experience for operators in industrial, manufacturing and control-room environments. Alarm annunciations, such as, for example, console and system alarms, can be combined to reflect the highest level across both control systems. User-configurable annunciations may be filtered based on the system for which they are configured, including, but not limited to, having the primary system trump the secondary system. Control-membrane annunciation LED&#39;s can correspond to control-membrane keys. Operator control-membrane key-presses may be routed to either one, or the other, or all of the control systems. In the presence of only a single control system, all of the activity is owned by the present system. 
     In one aspect, a method of controlling at least a first control system and a second control system is provided that comprises providing an operator interface that is communicatively coupled to the first and second control systems; determining if a key-press from the operator interface is shared by the first and second control systems and communicating the key-press to the first and second control systems if the key-press is shared; and determining which of the first and second control systems owns the key-press if the key-press is not shared by the first and second control systems and communicating the key-press to the first or second control system that owns the key-press. 
     In another aspect, a method of modifying a first control system is provided that comprises communicatively coupling a control surface membrane to the first control system; communicatively coupling a second control system to the control surface membrane; determining if a key-press from the control surface membrane is shared by the first and second control systems and communicating the key-press to the first and second control systems if the key-press is shared; determining which of the first and second control systems owns the key-press if the key-press is not shared by the first and second control systems and communicating the key-press to the first or second control system that owns the key-press; generating an annunciation for either or both of the first and second control systems; determining if the annunciation is shared by the first and second control systems and communicating the annunciation to the control surface membrane if the annunciation is shared; and determining which of the first and second control systems owns the annunciation if the annunciation is not shared by the first and second control systems and communicating the annunciation to an indicator of the control surface membrane that corresponds to the first or second control system that owns the annunciation. 
     In a further aspect, a hybrid control system is provided that comprises a first control system, a second control system and a control processing unit. The control processing unit has an operator interface, and is in communication with the first and second control systems. The control processing unit determines if a key-press of the operator interface is shared by the first and second control systems and communicates the key-press to the first and second control systems if the key-press is shared. The control processing unit also determines which of the first and second control systems owns the key-press if the key-press is not shared by the first and second control systems and communicates the key-press to the first or second control system that owns the key-press. 
     In yet another aspect, a computer readable program embodied in an article of manufacture is provided that comprises computer readable program instructions for modifying a first control system with a second control system. The program comprises program instructions for causing a computer to determine if a key-press of an operator interface is shared by the first and second control systems and for causing the computer to communicate the key-press to the first and second control systems if the key-press is shared; and program instructions for causing the computer to determine which of the first and second control systems owns the key-press if the key-press is not shared by the first and second control systems and for causing the computer to communicate the key-press to the first or second control system that owns the key-press. 
     The method can also determine whether each of the first and second control systems are in an active state that allows for acceptance of communication of the key-press. The first control system would only accept the communication of the key-press when in the active state and the second control system would only accept the communication of the key-press when in the active state. The annunciation may be a first annunciation of the first control system and a second annunciation of the second control system. The communication of the annunciation to the operator interface can comprise caching the first and second annunciations and combining the first and second annunciations in a single communication to the operator interface. The annunciation may also be a plurality of annunciations that are cached, such that one of the plurality of annunciations is determined to be of higher priority than another of the plurality of annunciations, and that higher priority annunciation is communicated to the operator interface. The operator interface can be communicatively coupled to a control processing unit having a foreground application and a background application being processed therein. The key-press can be processed by the background application. 
     The above-described and other features and advantages of the present disclosure will be appreciated and understood by those skilled in the art from the following detailed description, drawings, and appended claims. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a flow chart illustrating communication utilizing an operator interface and a single control system; 
         FIG. 2  is a flow chart illustrating input communication utilizing an operator interface and primary and secondary control systems in an exemplary hybrid control system; 
         FIG. 3  is a flow chart illustrating output communication utilizing an operator interface and primary and secondary control systems in the exemplary hybrid control system of  FIG. 2 ; 
         FIG. 4  is a schematic illustration of a control surface membrane used for the operator interface with the hybrid control system of  FIGS. 2 and 3 ; 
         FIG. 5  is a schematic illustration of operator interface input processing for the control surface membrane of  FIG. 4  with the hybrid control system of  FIGS. 2 and 3 ; and 
         FIG. 6  is a schematic illustration of operator interface output processing for the control surface membrane of  FIG. 4  with the hybrid control system of  FIGS. 2 and 3 . 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Referring to the drawings, and in particular to  FIG. 1 , a control system  10  is shown in communication with a control-processing unit  50  (hereinafter “CPU”). CPU  50  is described herein by way of example as a control-processing unit. However, it is contemplated by the present disclosure for CPU  50  to include any programmable circuit, such as, but not limited to, computers, processors, microcontrollers, microcomputers, programmable logic controllers, application specific integrated circuits, and other programmable circuits, as well as any number of such devices. CPU  50  has an operator interface which is shown as control surface membrane or first keyboard  60 . However, alternative operator interfaces can also be used, one of which is shown as second keyboard  65 . The actuation of keys on keyboard  60  can provide inputs to the control system  10 , while annunciations from the control system can be provided back to the keyboard and, in particular, to indicators on the keyboard. 
     Referring to  FIGS. 2 and 3 , an additional control system, i.e., primary system  20 , can be implemented in conjunction with the already existing control system  10 . In the exemplary embodiment, the newly added control system  20  becomes the primary system as will be described hereinafter, while the existing control system  10  becomes the secondary control system. However, the present disclosure contemplates the newly added control system  20  taking a secondary or subservient role to the already existing control system  10 . Also, while the exemplary embodiment of  FIGS. 2 and 3  illustrate CPU  50  communicating with two control systems, the present disclosure contemplates the use of more than two control systems being in communication with CPU  50  and keyboard  60 . 
     Primary and secondary systems  20  and  10  function simultaneously, and are both in communication with CPU  50 . As such, the primary and secondary systems  20  and  10  may be considered subsystems of the resulting hybrid control system  30 . CPU  50  is in communication with primary and secondary control systems  20  and  10  through a physical connection. However, other methods and structures can be utilized to provide for the communication between the CPU  50  and the primary and secondary control systems  20  and  10 . The present disclosure refers to keys, key-presses, inputs and signals as the communication between various components of the hybrid system  30 , in particular between the keyboard  60  and the primary and secondary control systems  20  and  10 , and the form or type of such communication is not intended to be limited. 
     As shown in  FIG. 2 , operator control-membrane actuations, keystrokes or key-presses  70  (e.g., key-presses of first keyboard  60 ) and their corresponding signals are selectively routed to either one, the other, or both of control systems  20  and  10 . The routing of key-presses  70  is based upon determining ownership of the key-press, i.e., which of the primary or secondary systems  20  and  10  is intended to receive and process the information associated with the key-press. An operator can invoke commands on either or both of primary system  20  and secondary system  10  by selecting special-function keys on keyboard  60  or another control surface membrane. In step  210 , it is determined whether the control system is hybrid, i.e., having two or more control systems  20  and  10 . In the presence of only one control system, all activity is owned and processed by the present system as indicated in step  215 . However, where two or more systems are present resulting in the hybrid control system  30 , a determination is made in step  220  as to whether key-press  70  is a shared key. If key-press  70  is not a shared key, then step  230  determines to which of the control systems the input associated with the key-press is intended. The key-press  70  is then forwarded to the selected control system, which in this exemplary embodiment is either primary system  20  or secondary system  10 . 
     In steps  240  and  250 , where key-press  70  has been determined to be shared by the primary and secondary systems  20  and  10 , it is also determined if either or both of the primary and secondary system alarms are active. If the alarms are active, the key-press  70  is forward to the respective system. This may also include the situation where the alarms for both the primary and secondary systems  20  and  10  are active. If neither alarm is active, then the key-press  70  is not forwarded to either the primary or secondary systems  20  and  10 . 
     As shown in  FIG. 3 , when either or both of the primary and secondary systems  20  and  10  generate annunciations  80  and  85 , such as, for example, control-membrane LED outputs or indicators, these annunciations are compared, filtered and/or processed so as to provide a single hybrid control system experience. In steps  310  and  315 , it is determined whether the control system is hybrid, i.e., having two or more control systems  20  and  10 . As with the key-presses  70  of  FIG. 2 , in the presence of only one control system, the annunciations  80  and  85  will be forwarded to the keyboard  60 . 
     However, where two or more systems are present resulting in the hybrid control system  30 , a determination is made in step  320  as to whether annunciations  80  and  85  are shared. If annunciation  80  is not shared, then it is forwarded to the keyboard  60  as a primary system annunciation. If annunciation  85  is not shared, then it is determined in step  330  whether the annunciation is owned by the primary system  20 . If annunciation  85  is not owned by the primary system  20 , then it is forwarded to the keyboard  60  as a secondary system annunciation. If annunciation  85  is owned by the primary system  20 , then it is not forwarded to the keyboard  60 . 
     If in step  320  it is determined that annunciations  80  and  85  are shared, then the annunciations are cached and communicated as a combined signal representative of the annunciations. Preferably, alarm type annunciations, such as, for example, console alarms or system alarms, are combined to reflect the highest or most significant level across both the primary and secondary control systems  20  and  10 . User-configurable annunciations preferably are filtered based upon the control system for which they are configured, such as, for example, primary system annunciation  80  trumping secondary system annunciation  85 . Control membrane annunciation LED&#39;s or other indicators preferably correspond to the keys of control-membrane or keyboard  60 . 
     Referring to  FIGS. 4 through 6 , an exemplary embodiment of hybrid control system  30  will now be described with respect to the keyboard  60 . As described above, keyboard  60  is an example of an operator interface and, in particular, a control surface membrane, that can be used to implement hybrid control system  30 . However, the present disclosure contemplates the use of other operator interfaces, with similar and/or distinct functions for its keys that can be processed by the hybrid control system  30  for the simultaneous control of two or more control systems. 
     Hybrid control system  30  provides the means for an operator to retain the existing operational features and functions of secondary system  10  while utilizing the new features and functions available with primary system  20 . This is accomplished through sharing of the control surfaces, e.g., the screens and keyboard  60 . Screen surface management is provided via an operating system, such as, for example, WINDOWS®, and can be augmented with workspace display management software, such as, for example, SAFEVIEW®. The operating system provides focus-dependent sharing of standard keyboard keys by routing standard keystrokes to whichever application, software or computer program display has the foreground, i.e., is currently active and highlighted. Hybrid control system  30  provides a consistency of response, and minimizes operator confusion over how the control system responds to operator interactions. 
     Keyboard  60  provides additional primary control surfaces to the operator via smart or user programmable keys  410 , standard numeric keys  420 , system status buttons  430 , standard navigation buttons  440 , alarm function keys  450  and operator control or point manipulation keys  460 . The particular keys and their functions are detailed in tables 1 through 4: 
     
       
         
               
               
             
           
               
                 TABLE 1 
               
               
                   
               
               
                 Key 
                 Function 
               
               
                   
               
             
             
               
                 SYST 
                 Calls up the System Status Display for one or both control 
               
               
                 STATS 
                 systems based on cached alarm status. Key backlight blinks 
               
               
                   
                 when there is an unacknowledged system alarm and is steady 
               
               
                   
                 when alarm(s) is ACKnowledged. 
               
               
                 CONS 
                 Calls up the Console Status and Assignments Display for one or 
               
               
                 STATS 
                 both control systems based on cached alarm status. Key 
               
               
                   
                 backlight blinks when there is an unacknowledged Console 
               
               
                   
                 alarm and is steady when alarm(s) is ACKnowledged. 
               
               
                 RECRD 
                 Activates trend-pen recording of a selected point. Trend pen 
               
               
                   
                 recording is activated from the Operating Group Display by 
               
               
                   
                 pressing the RECRD key. This key is backlit while recording 
               
               
                   
                 is in progress. Pressing the key a second time terminates the 
               
               
                   
                 recording operation. 
               
               
                 FAST 
                 (1) Causes the update rate for Hiway-related display information 
               
               
                   
                 to increase to 2-second intervals instead of the standard 
               
               
                   
                 update rate of once every four seconds. (2) Can cause 
               
               
                   
                 certain parameters in custom displays to update twice a 
               
               
                   
                 second, if so configured. The key backlight comes 
               
               
                   
                 On for fast update. 
               
               
                 CANCL 
                 Used to abort any currently printing Trend on any printer in the 
               
               
                 PRINT 
                 console. When pressed, the prompt asks the operator to enter the 
               
               
                   
                 console-related printer number. Cancel Print does not function 
               
               
                   
                 across stations with different personalities. 
               
               
                 PRINT 
                 The display currently on the Native Window is printed on the 
               
               
                 DISP 
                 station&#39;s assigned printer. 
               
               
                 PRINT 
                 Activates trend printing for a selected point. Trends for all points 
               
               
                 TREND 
                 in an operating group can be printed on the Matrix Printer. 
               
               
                 SYST 
                 Calls up the System Menu Display. 
               
               
                 MENU 
               
               
                 LOAD 
                 Prepares the Universal Station for personality loading. 
               
               
                   
               
             
          
         
       
     
     
       
         
               
               
             
           
               
                 TABLE 2 
               
               
                   
               
               
                 Key 
                 Function 
               
               
                   
               
             
             
               
                 GROUP 
                 Calls up the Group Display; requires entry of Group Number. 
               
               
                 DETAIL 
                 Calls up the Detail Display for a given point; requires entry of a Tagname 
               
               
                   
                 (Point ID). 
               
               
                 UNIT 
                 Calls up the Unit Trend Display; requires entry of a Unit ID. 
               
               
                 TREND 
               
               
                 TREND 
                 Calls up the Group Trend Display from the Operating Group 
               
               
                   
                 Display, by selecting a point to be trended and pressing the Trend 
               
               
                   
                 Key. 
               
               
                 GO TO 
                 Used to select a point on the Group Display; requires entry of the 
               
               
                   
                 point&#39;s position (1–8) on the Group Display. 
               
               
                 SCHEM 
                 Calls up a graphic Schematic Display; requires entry of a 
               
               
                   
                 Schematic name. 
               
               
                 HELP 
                 Calls up a pre-configured operator Help display associated with the 
               
               
                   
                 current display. The Help display could take the form of a prompt, 
               
               
                   
                 a maintenance suggestion, or a reference to a related display for 
               
               
                   
                 additional information. 
               
               
                 HOUR 
                 Calls up the Hourly Averages Display from the Operating Group 
               
               
                 AVG 
                 Display. 
               
               
                 PRIOR 
                 Calls up the display that was shown immediately before the current 
               
               
                 DISP 
                 display. If pressed while viewing a Group Trend Display, it 
               
               
                   
                 cancels the Group Trend Display and returns to the Group Display. 
               
               
                 ASSOC 
                 Calls up the configured display associated with an item chosen 
               
               
                 DISP 
                 form the current display. 
               
               
                 DISP 
                 Calls up the next lower numbered display with the same type of 
               
               
                 BACK 
                 display as the current display. 
               
               
                 DISP 
                 Calls up the next higher-numbered display within the same type of 
               
               
                 FWD 
                 display as the current display. 
               
               
                 PAGE 
                 Calls up the next lower-numbered page of a multiple-page display. 
               
               
                 BACK 
               
               
                 PAGE 
                 Calls up the next higher-numbered page of a multiple-page display. 
               
               
                 FWD 
                 Both Page Forward and Page Back keys have a wraparound feature. 
               
               
                   
                 In other words, if Page Forward is requested from the last page of a 
               
               
                   
                 multiple-page display, the first page of the display is called up. 
               
               
                   
                 Wraparound also applies when paging in the opposite direction. 
               
               
                   
               
             
          
         
       
     
     
       
         
               
               
             
           
               
                 TABLE 3 
               
               
                   
               
               
                 Key 
                 Function 
               
               
                   
               
             
             
               
                 ACK 
                 (Alarm Acknowledge) Acknowledged all Process Alarms or 
               
               
                   
                 System Status Alarms for the console; must be used when an Alarm 
               
               
                   
                 or System Status Display is displayed. Silences the Audible Alarm, 
               
               
                   
                 if it has not already been silenced. 
               
               
                 SIL 
                 Silences all audible alarms in the console. 
               
               
                 MSG 
                 Calls up the Message Summary Display. The key is backlit, blinks 
               
               
                 SUMM 
                 whenever there are messages that require operator 
               
               
                   
                 acknowledgement. The key is lit steadily whenever all messages 
               
               
                   
                 have been acknowledged, but messages still exist that require 
               
               
                   
                 operator confirmation. 
               
               
                 ALM 
                 Calls up the Area Alarm Summary Display. The Alarm Summary 
               
               
                 SUMM 
                 Key lights whenever an Alarm Event is received by the Universal 
               
               
                   
                 Station, and remains lit as long as alarms exist in the area. There 
               
               
                   
                 are two backlights, red and yellow, that indicate the Priority and 
               
               
                   
                 Acknowledgement state of the alarms. 
               
               
                 ALM 
                 Calls up the Alarm Annunciation Display. 
               
               
                 ANNC 
               
               
                 MSG 
                 This key is associated with the Message Summary Display. 
               
               
                 CONFM 
                 Messages are acknowledged and/or confirmed (if necessary) from 
               
               
                   
                 this display. Position the cursor to any message desired on the 
               
               
                   
                 display (using Fast Raise/Lower keys) and press Message 
               
               
                   
                 Confirmation Key to confirm the message. Confirmation is 
               
               
                   
                 message by message. 
               
               
                 MSG 
                 This key is used to clear messages that have been acknowledged 
               
               
                 CLEAR 
                 and confirmed on the Message Summary Display. Clearing is page by page. 
               
               
                 UNIT 
                 Calls up the Unit Alarm Summary Display; requires entry of a Unit ID. 
               
               
                 ALM 
               
               
                 SUMM 
               
               
                   
               
             
          
         
       
     
     
       
         
               
               
             
           
               
                 TABLE 4 
               
               
                   
               
               
                 Key 
                 Function 
               
               
                   
               
             
             
               
                 MAN 
                 Places selected point in manual mode; Output is under operator 
               
               
                   
                 direct control. 
               
               
                 AUTO 
                 Places a selected point in automatic mode if configured for that 
               
               
                   
                 mode. In automatic mode, the Output (OP) value is calculated by 
               
               
                   
                 a pre-configured algorithm using an operator-entered setpoint 
               
               
                   
                 (SP). 
               
               
                 NORM 
                 Places the selected point in its normally configured mode. 
               
               
                 SP 
                 Permits changes to be made to setpoint values for a point. When 
               
               
                   
                 pressed, changes made via the numeric keys or by the 
               
               
                   
                 Raise/Lower keys. 
               
               
                 OUT 
                 Permits changes of Analog or Digital Output values. After the key 
               
               
                   
                 is pressed (e.g., while viewing a Detail Display), the Output value 
               
               
                   
                 can be changed by a keyboard entry, or by the Raise/Lower keys. 
               
               
                 SINGLE ARROW 
                 Digital State Change function: while viewing a Digital or Flag 
               
               
                 KEYS 
                 Point display, the Up-Arrow key can be configured to indicate an 
               
               
                   
                 ON or OFF state of a Digital Output point. The Down-Arrow is 
               
               
                   
                 configured for the opposite state. 
               
               
                   
                 The Slow Raise/Lower operation function: allows the operator to 
               
               
                   
                 increase or decrease a selected value or parameter shown on a 
               
               
                   
                 display. 
               
               
                 DOUBLE ARROW 
                 Pressing the double up-arrow key causes the selected parameter to 
               
               
                 KEYS 
                 be increased at the configured fast rate, and pressing the double 
               
               
                   
                 down-arrow key causes the parameter to be decreased at the 
               
               
                   
                 configured fast rate. 
               
               
                 CLR ENTR 
                 Clears an incorrect or unwanted operator entry at any time 
               
               
                   
                 BEFORE the ENTER key is pressed. When Native Window not 
               
               
                   
                 in focus, this key is DEL. 
               
               
                 SELECT 
                 Selects an item at the current cursor position. Target&#39;s function is 
               
               
                   
                 called up by pressing the SELECT key. 
               
               
                 TAB KEYS 
                 These four keys are used to position the cursor vertically or 
               
               
                   
                 horizontally to any point on the display. 
               
               
                   
               
             
          
         
       
     
     Additionally, the smart keys  410  function to perform a user-defined action. The standard numeric  420  provide for data via numeric values to be displayed on the screen in the data-entry field character-by-character and transmitted to the owner of the data, where the display is updated to reflect the new value. 
     Certain of the key-presses  70  of keyboard  60  are always routed to the foreground application and are defined as focus-dependent keys. Others of these keys are processed independent of which application currently has the foreground, and are defined as focus-independent keys. The hybrid system  30  utilizes a native window, which is the particular application that is providing universal station functionality (operator interface displays) for the secondary control system nodes. Hybrid system  30  utilizes an application called “station” to embody operator interface displays for interaction with the primary control system nodes. These applications represent the preferred embodiment of “foreground applications” for their respective control systems. Hybrid system  30  also has a secondary system faceplate, which provides for direct receipt of certain key-presses  70 , as will be discussed later. 
     As shown in  FIG. 5 , runtime key handling for keyboard  60  is preferably implemented by an input scheme  500  that has an operator automation interface  501 , a primary system station  502 , and first and second low-level system wide keyboard hooks or keyhooks  510  and  560 . Keyhook  510  routes certain keys to the native window  520  and  525  via secondary system commands  515  when it has focus, and directly to the secondary system faceplate  530  when it has focus. Keyhook  560  routes smart keys  410  based on the button configuration  565  of the primary control system  20 , and also routes focus-independent keys  575  directly to the primary system station  502 . A subset of the smart keys  410  may be routed to the native window for processing via a call to secondary system commands  515  based on the primary system button configuration  565 . Other focus dependent keys are passed through both of keyhooks  510  and  560 , and are processed per the default behavior of the operating system keystroke handling  580 , by any currently active window  585 . However, the primary control system  20  is responsible for LED annunciations for the focus-dependent keys of keyboard  60 . Therefore, these indications do not change to native window control even if the native window is selected. The existing secondary system  10  is preferably modified by the hybrid system  30  such that all LED output requests are processed by the primary system  20 , which then determines whether to allow such requests to proceed. 
     As shown in  FIG. 6 , through use of output or annunciation scheme  600 , hybrid control system  30  modifies the portion or subsystem of the secondary system  10  that drives the LED outputs directly from the processor board to the keyboard  60 , in order to output indirectly through calls made to the primary system station  502 . The primary system station  502  utilizes the automation server  610  to make LED annunciation outputs to the keyboard  60 . 
     Shown in tables 5 through 8 below, are the various keys or key-presses  70  of keyboard  60 , and how they are processed by hybrid system  30  based upon the possible window activation states, i.e., the window that has the foreground and is highlighted. Typically, a foreground application processes all keyboard inputs. However, hybrid system  30  modifies this behavior and provides for background applications, i.e., non-active or non-foreground applications, to process selected key-presses  70 . 
     
       
         
               
               
               
               
               
             
           
               
                 TABLE 5 
               
               
                   
               
               
                   
                   
                 primary 
                 secondary 
                 3 rd  Party 
               
               
                   
                 native 
                 system 
                 system 
                 or no 
               
               
                   
                 window has 
                 is 
                 faceplate is 
                 application 
               
               
                 Smart Keys 
                 foreground 
                 active 
                 selected 
                 active 
               
               
                   
               
             
             
               
                 Keys configured 
                 native 
                 native 
                 native 
                 native 
               
               
                 in primary system 
                 window 
                 window 
                 window 
                 window 
               
               
                 to be routed to 
               
               
                 native window 
               
               
                 Keys configured 
                 primary 
                 primary 
                 primary 
                 primary 
               
               
                 to be processed 
                 system 
                 system 
                 system 
                 system 
               
               
                 by primary system 
               
               
                   
               
             
          
         
       
     
     
       
         
               
               
               
               
               
             
           
               
                 TABLE 6 
               
               
                   
               
               
                   
                   
                   
                 secondary 
                   
               
               
                 Focus- 
                   
                   
                 system 
                 3 rd  Party or no 
               
               
                 Independent 
                 native window 
                 primary system 
                 faceplate is 
                 application 
               
               
                 Keys 
                 has foreground 
                 is active 
                 selected 
                 active 
               
               
                   
               
             
             
               
                 SYST 
                 primary system 
                 primary system 
                 primary system 
                 primary system 
               
               
                 STATS 
                 if primary 
                 if primary alarm 
                 if primary 
                 if primary 
               
               
                   
                 alarm active or 
                 active or native 
                 alarm active or 
                 alarm active or 
               
               
                   
                 native window 
                 window 
                 native window 
                 native window 
               
               
                   
                 (secondary 
                 (secondary 
                 (secondary 
                 (secondary 
               
               
                   
                 system) if 
                 system) if 
                 system) if 
                 system) if 
               
               
                   
                 secondary 
                 secondary alarm 
                 secondary 
                 secondary 
               
               
                   
                 alarm active; 
                 active; both 
                 alarm active; 
                 alarm active; 
               
               
                   
                 both primary 
                 primary system 
                 both primary 
                 both primary 
               
               
                   
                 system and 
                 and native 
                 system and 
                 system and 
               
               
                   
                 native window 
                 window if both 
                 native window 
                 native window 
               
               
                   
                 if both alarms 
                 alarms are 
                 if both alarms 
                 if both alarms 
               
               
                   
                 are active; 
                 active; native 
                 are active; 
                 are active; 
               
               
                   
                 native window 
                 window if 
                 native window 
                 native window 
               
               
                   
                 if neither alarm 
                 neither alarm is 
                 if neither alarm 
                 if neither alarm 
               
               
                   
                 is active 
                 active 
                 is active 
                 is active 
               
               
                 ALM 
                 primary system 
                 primary system 
                 primary system 
                 primary system 
               
               
                 SUMM 
               
               
                 UNIT ALM 
                 primary system 
                 primary system 
                 primary system 
                 primary system 
               
               
                 SUMM 
               
               
                 CONS 
                 primary system 
                 primary system 
                 primary system 
                 primary system 
               
               
                 STATS 
                 if primary 
                 if primary alarm 
                 if primary 
                 if primary 
               
               
                   
                 alarm active or 
                 active or native 
                 alarm active or 
                 alarm active or 
               
               
                   
                 native window 
                 window 
                 native window 
                 native window 
               
               
                   
                 (secondary 
                 (secondary 
                 (secondary 
                 (secondary 
               
               
                   
                 system) if 
                 system) if 
                 system) if 
                 system) if 
               
               
                   
                 secondary 
                 secondary alarm 
                 secondary 
                 secondary 
               
               
                   
                 alarm active; 
                 active; both 
                 alarm active; 
                 alarm active; 
               
               
                   
                 both primary 
                 primary system 
                 both primary 
                 both primary 
               
               
                   
                 system and 
                 and native 
                 system and 
                 system and 
               
               
                   
                 native window 
                 window if both 
                 native window 
                 native window 
               
               
                   
                 if both alarms 
                 alarms are 
                 if both alarms 
                 if both alarms 
               
               
                   
                 are active; 
                 active; native 
                 are active; 
                 are active; 
               
               
                   
                 native window 
                 window if 
                 native window 
                 native window 
               
               
                   
                 if neither alarm 
                 neither alarm is 
                 if neither alarm 
                 if neither alarm 
               
               
                   
                 is active 
                 active 
                 is active 
                 is active 
               
               
                 SYST 
                 primary system 
                 primary system 
                 primary system 
                 primary system 
               
               
                 MENU 
               
               
                 GROUP 
                 primary system 
                 primary system 
                 primary system 
                 primary system 
               
               
                   
                 but native 
                 but native 
                 but native 
                 but native 
               
               
                   
                 window if a 
                 window if a 
                 window if a 
                 window if a 
               
               
                   
                 group number 
                 group number 
                 group number 
                 group number 
               
               
                 DETAIL 
                 primary system 
                 primary system 
                 secondary 
                 primary system 
               
               
                   
                 but native 
                   
                 system 
               
               
                   
                 window if 
                   
                 faceplate 
               
               
                   
                 secondary 
               
               
                   
                 system point 
               
               
                 UNIT 
                 primary system 
                 primary system 
                 primary system 
                 primary system 
               
               
                 TREND 
               
               
                 SCHEM 
                 primary system 
                 primary system 
                 primary system 
                 primary system 
               
               
                   
                 but native 
                 but native 
                 but native 
                 but native 
               
               
                   
                 window if a 
                 window if a 
                 window if a 
                 window if an 
               
               
                   
                 native window 
                 native window 
                 native window 
                 native window 
               
               
                   
                 schem. 
                 schem. 
                 schem. 
                 schem. 
               
               
                 MSG 
                 primary system 
                 primary system 
                 primary system 
                 primary system 
               
               
                 SUMM 
               
               
                 SIL 
                 native window 
                 native window &amp; 
                 native window 
                 native window 
               
               
                   
                 &amp; primary 
                 primary system 
                 &amp; primary 
                 &amp; primary 
               
               
                   
                 system 
                   
                 system 
                 system 
               
               
                 ALM 
                 primary system 
                 primary system 
                 primary system 
                 primary system 
               
               
                 ANNC 
               
               
                 PRIOR 
                 native window 
                 primary system 
                 primary system 
                 primary system 
               
               
                 DISP 
               
               
                   
               
             
          
         
       
     
     
       
         
               
               
               
               
               
             
           
               
                 TABLE 7 
               
               
                   
               
               
                   
                   
                 primary 
                 secondary 
                 3 rd  Party 
               
               
                   
                 native 
                 system 
                 system 
                 or no 
               
               
                 Focus-Dependent 
                 window has 
                 is 
                 faceplate is 
                 application 
               
               
                 Keys 
                 foreground 
                 active 
                 selected 
                 active 
               
               
                   
               
             
             
               
                 Standard keyboard 
                 native 
                 primary 
                 secondary 
                 Per 3 rd  party 
               
               
                 &amp; function keys 
                 window 
                 system 
                 faceplate 
                 application 
               
               
                 ACK 
                 native 
                 primary 
                 secondary 
                 Per 3 rd  party 
               
               
                   
                 window 
                 system 
                 faceplate 
                 application 
               
               
                 TREND 
                 native 
                 primary 
                 secondary 
                 Per 3 rd  party 
               
               
                   
                 window 
                 system 
                 faceplate 
                 application 
               
               
                 MSG CONFM 
                 native 
                 primary 
                 secondary 
                 Per 3 rd  party 
               
               
                   
                 window 
                 system 
                 faceplate 
                 application 
               
               
                 MSG CLEAR 
                 native 
                 primary 
                 secondary 
                 Per 3 rd  party 
               
               
                   
                 window 
                 system 
                 faceplate 
                 application 
               
               
                 RECRD 
                 native 
                 primary 
                 secondary 
                 Per 3 rd  party 
               
               
                   
                 window 
                 system 
                 faceplate 
                 application 
               
               
                 CANCL PRINT 
                 native 
                 primary 
                 secondary 
                 Per 3 rd  party 
               
               
                   
                 window 
                 system 
                 faceplate 
                 application 
               
               
                 PRINT TREND 
                 native 
                 primary 
                 secondary 
                 Per 3 rd  party 
               
               
                   
                 window 
                 system 
                 faceplate 
                 application 
               
               
                 LOAD 
                 native 
                 primary 
                 secondary 
                 Per 3 rd  party 
               
               
                   
                 window 
                 system 
                 faceplate 
                 application 
               
               
                 GOTO 
                 native 
                 primary 
                 secondary 
                 Per 3 rd  party 
               
               
                   
                 window 
                 system 
                 faceplate 
                 application 
               
               
                 HELP 
                 native 
                 primary 
                 secondary 
                 Per 3 rd  party 
               
               
                   
                 window 
                 system 
                 faceplate 
                 application 
               
               
                 HOUR AVG 
                 native 
                 primary 
                 secondary 
                 Per 3 rd  party 
               
               
                   
                 window 
                 system 
                 faceplate 
                 application 
               
               
                 BATCH 
                 native 
                 primary 
                 secondary 
                 Per 3 rd  party 
               
               
                   
                 window 
                 system 
                 faceplate 
                 application 
               
               
                 ASSOC DISP 
                 native 
                 primary 
                 secondary 
                 Per 3 rd  party 
               
               
                   
                 window 
                 system 
                 faceplate 
                 application 
               
               
                 DISP BACK 
                 native 
                 primary 
                 secondary 
                 Per 3 rd  party 
               
               
                   
                 window 
                 system 
                 faceplate 
                 application 
               
               
                 DISP FWD 
                 native 
                 primary 
                 secondary 
                 Per 3 rd  party 
               
               
                   
                 window 
                 system 
                 faceplate 
                 application 
               
               
                 PAGE BACK 
                 native 
                 primary 
                 secondary 
                 Per 3 rd  party 
               
               
                   
                 window 
                 system 
                 faceplate 
                 application 
               
               
                 PAGE FWD 
                 native 
                 primary 
                 secondary 
                 Per 3 rd  party 
               
               
                   
                 window 
                 system 
                 faceplate 
                 application 
               
               
                 PRINT DISP 
                 native 
                 primary 
                 secondary 
                 Per 3 rd  party 
               
               
                   
                 window 
                 system 
                 faceplate 
                 application 
               
               
                   
               
             
          
         
       
     
     
       
         
               
               
               
               
               
             
           
               
                 TABLE 8 
               
               
                   
               
               
                   
                   
                   
                 secondary 
                   
               
               
                   
                 native 
                 primary 
                 system 
                 3 rd  Party or no 
               
               
                 Focus-Dependent 
                 window has 
                 system is 
                 faceplate is 
                 application 
               
               
                 Keys 
                 foreground 
                 active 
                 selected 
                 active 
               
               
                   
               
             
             
               
                 DISP SET 
                 native 
                 primary 
                 secondary 
                 per 3 rd  party 
               
               
                   
                 window 
                 system 
                 faceplate 
                 application 
               
               
                 FAST 
                 native 
                 primary 
                 secondary 
                 per 3 rd  party 
               
               
                   
                 window 
                 system 
                 faceplate 
                 application 
               
               
                 Numeric Keypad + ENTER 
                 native 
                 primary 
                 secondary 
                 per 3 rd  party 
               
               
                 key 
                 window 
                 system 
                 faceplate 
                 application 
               
               
                 MAN/AUTO/NORM 
                 native 
                 primary 
                 secondary 
                 per 3 rd  party 
               
               
                 SP/OUT 
                 window 
                 system 
                 faceplate 
                 application 
               
               
                 Raise/Lower/Fast- 
                 native 
                 primary 
                 secondary 
                 per 3 rd  party 
               
               
                 Raise/Fast-Lower 
                 window 
                 system 
                 faceplate 
                 application 
               
               
                 keys 
               
               
                 Tab Arrow keys 
                 native 
                 primary 
                 secondary 
                 per 3 rd  party 
               
               
                   
                 window 
                 system 
                 faceplate 
                 application 
               
               
                   
                   
                   
                   
                 (converted to std 
               
               
                   
                   
                   
                   
                 arrow keys) 
               
               
                   
               
             
          
         
       
     
     The Console Status key is preferably re-routed to the native window in all cases. The SILENCE key is processed by primary system  20 , but in order to notify other stations in the same console, this key is duplicated and routed explicitly to the native window by the low-level hook  510 . The System Status and Console Status keys are examples of shared annunciator keys as indicated in Table 6. 
     The secondary system faceplate control  530  provides for direct receipt of certain keys, such as, for example, Detail and PMK keys, when the secondary system faceplate window receives focus. The direct receipt by the secondary system faceplate control  530  is via a call to the existing keyhook logic as shown in  FIG. 5 , i.e., it registers itself. Upon de-activation, the secondary system faceplate control  530  unregisters from the direct receipt so as to allow multiple secondary system faceplates to operate simultaneously. 
     For example, where an operator selects a smart key  410 , the corresponding key-press  70  is processed by primary system  20  and determined to be forwardable to the native window. This key stroke is emulated via a call to secondary system commands  515  except where the smart key is configured for direct processing by the primary system  20 . 
     As another example, where an operator selects a fixed-function key with native window focus, such as, for example, the ACK key, the corresponding key-press  70  is processed by the native window due to the native window being the foreground application. 
     As yet another example, where an operator selects a secondary system faceplate  530 , it becomes highlighted to indicate an “active” status and registers to receive specific key-presses  70  directly from the low-level hook  510 . As long as the secondary system faceplate  530  is selected, it continues to receive these key-presses  70 . When the secondary system faceplate  530  is deselected by the operator, it unregisters so as not to receive these key-presses  70 . 
     As yet a further example, where an operator selects the SILENCE Key, the low-level hook  510  creates a duplicate SILENCE key message and forwards it to the native window. The native window processes the SILENCE key as normal and forwards the key-press  70  corresponding to the SILENCE key to the primary system  20  for processing. 
     It should be noted that the terms “first”, “second” and the like, are used herein to modify various elements. These modifiers do not necessarily imply a spatial, sequential, or hierarchical order to the modified elements unless specifically stated. 
     While the instant disclosure has been described with reference to one or more exemplary embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted for elements thereof without departing from the scope thereof. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the disclosure without departing from the scope thereof. Therefore, it is intended that the disclosure not be limited to the particular embodiment(s) disclosed as the best mode contemplated for carrying out this invention, but that the invention will include all embodiments falling within the scope of the appended claims.