WO2006058090A2 - Message management facility for an industrial process control environment - Google Patents

Message management facility for an industrial process control environment Download PDF

Info

Publication number
WO2006058090A2
WO2006058090A2 PCT/US2005/042491 US2005042491W WO2006058090A2 WO 2006058090 A2 WO2006058090 A2 WO 2006058090A2 US 2005042491 W US2005042491 W US 2005042491W WO 2006058090 A2 WO2006058090 A2 WO 2006058090A2
Authority
WO
WIPO (PCT)
Prior art keywords
message
messages
alarm
management facility
command
Prior art date
Application number
PCT/US2005/042491
Other languages
French (fr)
Other versions
WO2006058090A3 (en
Inventor
Irvine William Wilson
Markus Stephan Paul
Ewald Gerhard Weiss
Original Assignee
Invensys Systems, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Invensys Systems, Inc. filed Critical Invensys Systems, Inc.
Priority to CN2005800462866A priority Critical patent/CN101128812B/en
Priority to EP05852079A priority patent/EP1836594A4/en
Publication of WO2006058090A2 publication Critical patent/WO2006058090A2/en
Publication of WO2006058090A3 publication Critical patent/WO2006058090A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/4184Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by fault tolerance, reliability of production system
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • G05B23/0205Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
    • G05B23/0259Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the response to fault detection
    • G05B23/0267Fault communication, e.g. human machine interface [HMI]
    • G05B23/027Alarm generation, e.g. communication protocol; Forms of alarm
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1895Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for short real-time information, e.g. alarms, notifications, alerts, updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31438Priority, queue of alarms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Definitions

  • the present invention generally relates to the field of networked computerized process control systems. More particularly, the present invention relates to supervisory process control and manufacturing information systems. Such systems generally execute above a control layer in a process control system to provide guidance to lower level control elements such as, by way of example, programmable logic controllers.
  • Data acquisition begins when a number of sensors measure aspects of an industrial process and periodically report their measurements back to a data collection and control system.
  • Such measurements come in a wide variety of forms.
  • the measurements produced by a sensor/recorder include: a temperature, a pressure, a pH, a mass/volume flow of material, a tallied inventory of packages waiting in a shipping line, or a photograph of a room in a factory.
  • a sensor/recorder include: a temperature, a pressure, a pH, a mass/volume flow of material, a tallied inventory of packages waiting in a shipping line, or a photograph of a room in a factory.
  • process management and control software examines the incoming data, produces status reports, and, in many cases, responds by sending commands to actuators/controllers that adjust the operation of at least a portion of the industrial process.
  • the data produced by the sensors also allow an operator to perform a number of supervisory tasks including: tailor the process (e.g., specify new set points) in response to varying external conditions (including costs of raw materials), detect an inefficient/non-optimal operating condition and/or impending equipment failure, and take remedial actions such as move equipment into and out of service as required.
  • tailor the process e.g., specify new set points
  • external conditions including costs of raw materials
  • detect an inefficient/non-optimal operating condition and/or impending equipment failure and take remedial actions such as move equipment into and out of service as required.
  • Typical industrial processes are extremely complex and receive substantially greater volumes of information than any human could possibly digest in its raw form.
  • sensors and control elements e.g., valve actuators
  • These sensors are of varied type and report on varied characteristics of the process. Their outputs are similarly varied in the meaning of their measurements, in the amount of data sent for each measurement, and in the frequency of their measurements. As regards the latter, for accuracy and to enable quick response, some of these sensors/control elements take one or more measurements every second. When multiplied by thousands of sensors/control elements, this results in so much data flowing into the process control system that sophisticated data management and process visualization techniques are required.
  • Highly advanced human-machine interface/process visualization systems exist today that are linked to data sources such as the above-described sensors and controllers. Such systems acquire and digest (e.g., filter) the process data described above.
  • the digested process data in-turn drives a graphical display rendered by a human machine interface.
  • Such data includes mode changes, events, and alarm messages rendered by process controllers in response to a variety of detected process conditions/circumstances.
  • Process alarm messages are traditionally sent from plant control processors to alarm displays on workstations to notify operators of plant upsets.
  • alarm messages are issued by control processors when a measured or calculated value is rendered outside a pre-configured range.
  • the plant controller transmits the generated alarm to one or more operator workstations coupled to a separate (e.g., application) network. Detection, generation and transmission of alarms can potentially place a heavy load on a controller.
  • Known process control systems support a variety of alarm ordering techniques including assigning alarm priorities and filtering alarm messages according any of a variety of characteristics.
  • the alarm prioritization/filtering functionality carried out by the control processor assists operators in assessing plant/process status and facilitates expedited correction of problems as they arise in a plant process.
  • the alarm priorities are relatively fixed and are changed through human intervention. Prioritizing alarms/messages alone will not avoid overwhelming an operator with a shower of alarm messages during a major plant failure or succession of cascading process/plant component failures. Overlooking a particular alarm or class of alarms, during an alarm shower can lead to harm to both humans and the plant itself.
  • the present invention provides a method and facility for managing messages, for example alarms, that pass from control processors to a variety of destinations (e.g., workstations, printers, historians/databases) associated with supervisory control of an industrial process.
  • Managing messages is carried out by interposing appropriate management functionality between sources of messages (e.g., control processors) and the message's final destinations. Such arrangement facilitates executing a variety of functions on the message stream.
  • a message management facility routes a stream of messages received from the control processor to a set of supervisory destinations.
  • the facility includes a message receiver for receiving a message including a message group ID field.
  • the facility also includes message routing information comprising a set of message routing entries. Each of such routing entries includes a message group ID value, and a set of message routing destinations for received messages specifying the message group ID.
  • the facility also includes a destination server for transmitting the message received by the message receiver to one or more network destinations based on an ID specified in the message group ID field and a set of message routing destinations specified in a corresponding routing entry of the message routing information.
  • the facility also carries out a message monitor role wherein the facility monitors a stream of messages received from a control processor and initiates executing a command in response to detecting particular identified messages in the stream of messages.
  • the message monitor includes a message table including a set of message table entries. Each entry comprises a message ID and a command ID.
  • a message ' receiver of the facility includes a message monitoring functionality for receiving a message including a message ID value, and identifying a categorized message by locating an entry in the message table corresponding to the received message.
  • a command execution functionality initiates executing a command associated with the command ID, of the entry in the message table for the categorized message, in association with the message receiver identifying the categorized message.
  • the facility also carries out a status message monitor roles wherein the facility initiates executing a command in response to detecting status changes contained within messages in the stream of messages.
  • the message monitor includes a message receiver including a message monitoring functionality for identifying status changes relating to modes/events specified in a received message.
  • the facility also initiates executing actions in accordance with a current mode/events status in view of the received message. The actions comprise, for example, setting a new priority for an alarm.
  • the facility monitors the volume of messages passing over a period of time, and in response to detecting a message (e.g., alarm shower) the facility operates to restrict messages passed to intended destinations by applying a suppression criterion on the steam of messages. For example, when a shower is detected, messages/alarms that do not meet a message priority threshold are discarded by the facility.
  • a message e.g., alarm shower
  • Other criterions are contemplated in alternative embodiments of the invention.
  • Figure 1 is schematic network diagram showing an exemplary process control environment comprising both a control network and an application/supervisory network suitable for carrying out an embodiment of the present invention
  • Fig. 2 is a schematic diagram of a message management facility incorporated into a node comprising interfaces to both the control network and application/supervisory network;
  • FIG. 3 is an exemplary list of types of information stored in a configuration file used to build a configuration database that governs the runtime operation of the exemplary message management facility depicted in FIG. 2;
  • FIG. 4 graphically depicts relationships between configuration information relating to command categories used by a message manager to initiate commands as a result of receiving particular messages
  • FIG. 5 graphically depicts relationships between configuration information relating to parameter action categories used by a message manager to initiate certain pre- configured actions in response to notifications of events/mode changes;
  • FIG. 6 graphically depicts the sources of information that supply information used to build application object connections used by a message manager to pass a parameter value to a particular target control block;
  • FIG. 7 is an exemplary graphical user interface for configuring general information relating to a message management facility configuration
  • FIG. 8 is an exemplary graphical user interface for configuring contents of a message table
  • FIG. 9 is an exemplary graphical user interface for configuring contents of a command categories table
  • FIG. 10 is an exemplary graphical user interface for configuring commands corresponding to the commands identified in the command categories table
  • FIG. 11 is an exemplary graphical user interface for configuring an action trigger table identifying a set of action category IDs
  • FIG. 12 is an exemplary graphical user interface for configuring matrices corresponding to the action category IDs referenced in the action trigger table
  • FIG. 13 is an exemplary graphical user interface for configuring parameter actions specifying particular parameter/value combinations associated with a particular parameter action ID potentially listed in a cell within a matrix of a set of matrices making up the action categories;
  • FIG. 14 is a flowchart summarizing steps, associated with processing, by a message manager, a received message from the control network;
  • FIG. 15 is a flowchart summarizing steps associated with maintaining alarm shower status in view of configured alarm shower parameter values
  • FIG. 16 is a flowchart summarizing steps associated with processing, by a message manager, a categorized message.
  • FIG. 17 is a flowchart summarizing steps associated with processing, by a message manager, an event/mode change message.
  • a workstation configured to receive/route messages issued by control processors on a control network also monitors alarm flow. While monitoring alarm flow, a workstation applies previously configured policies to particular alarm messages, hi response to detecting an identified alarm in a received message, the message management facility invokes particular actions/functions/programs on a workstation.
  • a configurator application and user interface enables a user to design/customize the message management facility to invoke a program upon detecting a pre-conf ⁇ gured alarm being routed to a destination.
  • the invoked program can perform any of a variety of functions including, by way of example, issuing a voice message (stored as an MP3 or WAV file), sending an email message, or generating output to a printer, historian, etc.
  • a voice message stored as an MP3 or WAV file
  • the responses are created, identified, and stored in command databases that are customized via the configurator application.
  • the message management facility dynamically updates (and modifies if necessary) alarm priorities based upon changes to a current status of the process control system.
  • the status is defined, by way of example by a mode and/or event(s).
  • dynamically assignable priorities of a particular alarm are defined, for example, in a matrix comprising mutually exclusive modes and non-mutually exclusive events. For each mode/event combination within the matrix, an alarm priority is potentially specified for the alarm.
  • the message management facility responds to events and mode transitions by looking up a potentially new priority for each alarm for which priorities are potentially dynamically re-assigned.
  • mode transitions and/or events are defined/associated with simple state alarms.
  • the state alarms are, for example, hard wired to key switches.
  • the state alarms are also potentially soft alarms generated within the process control system based upon certain sensed plant conditions or control logic output.
  • an alarm shower suppression functionality counts alarms flowing per time slice to detect a potentially overwhelming quantity of alarms. It compares the count value in the time slice to a pre-configured limit. If the limit is exceeded, then an alarm shower state is entered and alarms having a priority lower than a pre-configured priority are not passed on to a destination workstation and are thus suppressed until a subsequent count of alarms over a period of time falls to a point where the alarm shower state can be exited. Thus, during an alarm "shower" only the most important/critical alarms are forwarded to an intended workstation. In this way, the most important/critical alarms will not be masked or delayed by lower priority alarms.
  • a message management facility 100 executes as an application on one or more specially configured nodes having physical network interfaces supporting connections to nodes on both a control network 102 and an application network 104.
  • Such networks are implemented, by way of example, according to the ETHERNET standard local area network protocols.
  • the connections over the networks 102 and 104 are implemented by any of a variety of forms through separate network communications services executing on the same network node(s) as the message management facility 100.
  • the message management functionality can be carried out by multiple active message managers running on separate nodes, coupled to the control network 102 and application network 104, and handling particular identified/specified ones of the alarms generated by control processors on the control network 102.
  • the message management facility 100 carries out a variety of functions. Such functions include, by way of example, receiving messages including mode changes, , events, and alarms from message delivery services running on nodes on the control network 102; modifying the messages (e.g., adding an alias to a message); and dispatching alarm messages to designated destinations (e.g., alarm management subsystems on operator workstations, alarm logs/databases, alarm printers, etc.).
  • the alarm messages drive graphical user interface displays and alarm annunciation components that generate an audible/verbal alarm message.
  • the message management facility 100 is capable of: dynamically adjusting alarm priorities in response to messages identifying sensed events and operation mode (e.g., standby, startup, run, etc.) transitions; invoking a command (performed either locally or on another node coupled to the application network 104) in response to a particular received alarm message; and commencing an action resulting in issuance of an audible (e.g., verbal) message based upon a particular received alarm message.
  • identifying sensed events and operation mode e.g., standby, startup, run, etc.
  • the message management facility 100 is presented in a redundant form including an active message manager 100a and a standby message manager 100b.
  • the redundancy can be implemented in any of a variety of ways in accordance with various embodiments of the invention, hi an exemplary embodiment, the redundant message managers 100a and 100b synchronize and monitor status of their redundant partners by communications transmitted via the control network 102. However, in alternative embodiments synchronization is carried out via the application network 104 or even a third physical network (requiring a third network interface for each of the redundant message managers 100a and 100b). In the event the currently active partner fails, the standby message manager automatically takes on the active role previously held by the failed partner.
  • Each of the message managers 100a and 100b of the message management facility 100 are associated with network connections to one or more of a set of N control processors 106 on the control network 102.
  • the control processors 106 execute a variety of automated distributed process control programs (loops), carried out in the form of compounds and blocks, that facilitate receiving data from sensors/devices deployed in a plant, analyzing the received data in view of current set points, and issuing control commands to actuators on plant equipment.
  • the set points are provided, for example, by automated supervisory process control programs as well as human input via the application network 104.
  • the control processors 106 are communicatively coupled to one or more sub-networks that host communications between the control processors 106 and sources of field data.
  • the sub-networks include, for example, a plurality of field communication modules.
  • the field communication modules in turn, comprise a portion of a field device sub-network/bus including various sensors and actuators that facilitate automated control of a industrial/plant process.
  • the active and standby message managers 100a and 100b receive alarm messages issued by a message delivery server (MDS) executing on each of the control processors 106. Both active and standby message managers 100a and 100b process messages received from the control processors 106 concurrently. However, as explained further herein below, processing alarm messages on the standby message manager 100b does not include issuing messages to devices configured in the message manager's device database.
  • MDS message delivery server
  • the message management facility 100 establishes connections to one or more of a set of operator workstations on the application network 104.
  • a set of operator workstations on the application network 104.
  • only the active partner of the redundant message managers 100a and 100b establishes connections to the devices on the application network 104.
  • the active partner of the message management facility 100 forwards/routes the received messages to a variety of destinations on the application network 104, and if specified in a set of message management tasks, invoking an operation.
  • the destinations to which the alarms are forwarded by the message management facility 100 include, by way of example, an alarm management subsystem executing on one of a set of M operator workstations 108, an alarm printer 112, an alarm database/historian 110, etc.
  • the message management facility 100 is carried out in alternative network topologies.
  • the node executing the message management facility 100 incorporates the functionality of other nodes of the application network 104.
  • the alarm database and workstation functionality is incorporated into a node connected to the control network 102 that also runs the message manager 100b.
  • multiple instances of the message management facility 100 are provided to share message management responsibilities for a set of devices coupled to the application network 104. Still other embodiments will be contemplated by those skilled in the art in view of the disclosed embodiments described herein.
  • FIG. 2 depicts a set of functional components of, and data flow within, the message manager 100a that operates to process messages received from the control processors 106 on the control network 102.
  • a packet receiver process 200 on the message manager 10Oa 5 comprising device database threads and message delivery server threads (one thread per control processor message delivery server to which the packet receiver 200 connects), receives and unpacks message packets, containing potentially many messages to reduce overhead, issued by the message delivery server (MDS) running on each control processor 106x (including control processor 106a or any other source of message packets) on the control network.
  • MDS message delivery server
  • a configuration database 204 contains configuration information, extracted from a configuration (see FIG. 3 below) defined via a message management facility configurator (described further herein below), that governs the runtime operation of the message manager 100a.
  • the configuration database 204 contains: a Table of Message Attributes, Table of Category (command/action) Attributes, Matrix and Variable Definition, and Alarm shower Parameters.
  • the following describes an exemplary set/sequence of operations supported by an exemplary messaging interface between the message manager 100a and a message delivery server (MDS) on the control processor 106a.
  • MDS message delivery server
  • the message manager 100a uses inter-process communication services to initialize a connection between a dedicated message delivery server thread within the packet receiver process 200 and the MDS running on the control processor 106a.
  • the message manager 100a issues a START_SESSION message to the MDS to register the control processor 106a and waits for a START_SESSION_REPLY message from the MDS.
  • the MDS After sending a START_SESSION_REPLY message, the MDS sends message group device definitions to a corresponding dedicated MDS thread of the packet receiver 200.
  • the group device definitions include device information from connected MDS's on the set of control processors 106.
  • the device information maintained in a device database 202, indicates which devices (e.g., workstations, printers, alarm databases on the application network 104) receive certain identified messages.
  • the device information is, in effect, the routing information (destinations) for subsequently received messages.
  • the packet receiver 200 stores the extracted device (message routing) information in the device database 202.
  • the device database 202 holds a set of group device definition entries. Each entry contains, by way of example, the following fields:
  • String consisting of a concatenated MDS ID and Message Group ID.
  • the String is used as a search key into the device database 202.
  • the device database 202 is also capable of being updated during normal runtime of the message manager.
  • the MDS sends a message to the message manager specifying new message destination information.
  • the packet receiver 200 recognizes the type of message and updates the appropriately keyed entry within device database 202 accordingly.
  • a device server process 220 is notified when updated to the device database 202 occur in view of the possibility that a new threads may needed or old threads terminated in view of the device database 202 update.
  • the MDS threads of the message manager 100a obtain current status information by sending a CURKENT_STATE_REQUEST to the MDS on the control processor 106a.
  • the MDS returns message packets containing current alarm and contact input (CIN) states, which are associated with mode and event variables, present on the control processor 106a as MES SAGEJDATA messages.
  • the responses from the MDS also include any MESSAGE_DATA messages buffered by the MDS on the control processor 106a before initialization operations.
  • the message manager 100a acknowledges each packet with a RECEIPT_CONFIRMATION message. The current state data transfer/acknowledgement cycles are repeated until a CURRENT_STATE_END message is received by the message manager.
  • the packet receiver 200 issues a MESSAGE_MAINTENANCE_REQUEST to the MDS and waits for the MDS to issue a MESSAGE_MAINTENANCE_REPLY message.
  • AU messages are transmitted by the MDS in the form of MESSAGE_DATA messages within message packets, and the message manager 100a acknowledges each packet by transmitting a RECEIPT J ⁇ ONFIRMATION message to the MDS on the control processor 106a.
  • the packet receiver 200 extracts messages from the MESSAGE_DATA message packets and places the messages into one of: a variable determination messages queue 206, a categorized messages queue 208, a modified messages queue 210, and the device database 202.
  • the packet receiver 200 executes alarm shower detection according to a set of alarm shower parameters provided by a configuration database 204.
  • alarm shower detection is characterized by a specified number of alarms received within a time period and an alarm priority value.
  • the alarm priority value establishes a priority threshold for alarms passed to devices, such as the workstations 108 on the application network 104, in the event that an alarm shower is detected. Alarms having insufficiently high priority are discarded by the packet receiver 200.
  • Configuring alarm shower behavior for the message management facility 100, including the message manager 100a is described further herein below.
  • the standby message manager 100b though assigned a passive role in forwarding alarm messages to devices, also registers/initializes with the same MDSs as the active message manager 100a to ensure that all messages are received by both of the redundant message managers.
  • the message manager 100a detects a connection failure
  • the message manager 100a attempts to re ⁇ establish the connection to the MDS on the control processor 106a. If an initial attempt fails, further attempts are initiated every second.
  • the messages received by the packet receiver 200 are parsed and stored, after potential modification, within an appropriate one of the message queues 206, 208 and 210.
  • the modified messages queue 210 is used to pass data from the packet receiver 200 to a device server process 220.
  • Each entry in the modified messages queue 210 includes, by way of example, the following fields:
  • the device server process 220 reads messages from the modified messages queue 210 and routes the retrieved messages to appropriate device (e.g., workstation, alarm database, printer, etc.) destinations according to routing information provided by the device database 202.
  • the device server process 220 contains destination-specific threads that convert the retrieved messages to a format- specified for the particular device type of the identified destination residing on the application network 104.
  • the messages destined for the alarm database 110 pass through an alarm database collector 222.
  • the collector 222 communicates with the alarm database 110 via the application network 104 to place the alarm data in the database 110. However, if the alarm database 110 is unavailable, then the alarm data is buffered in a temporary alarm data buffer 223.
  • the buffered alarm data is retrieved from the buffer 223 and passed to the collector 222 before placing current alarm data in the database 110.
  • device data can be updated during normal runtime operation of the message manager 100a.
  • the device server 220 dynamically creates and deletes connections to devices via the application network 104 according to updates to the information placed by the packet receiver 200 in the device database 202.
  • communications between the message manager 100a and an alarm management subsystem (AMS) on the workstations 108 proceed as follows.
  • AMS alarm management subsystem
  • the message manager 100a After initializing, the message manager 100a sends an initialization message specifying a socket where the message manager 100a listens for AMS resynchronization messages.
  • the message manager 100a waits for an initialization request from an AMS.
  • the message manager 100a starts sending alarms and events to the AMS over the connected communication.
  • AMS server threads within the device server process 220 operate as message collectors for specific corresponding AMSs on the workstations 108.
  • Each AMS server thread packs messages together so that a packet of messages is sent rather than single messages.
  • a timer function ensures that messages are sent after a time period even if a message packet is not full. The time (e.g. 500ms) and the number of messages (e.g. 3) will vary according to various implementations.
  • AU alarm messages are time stamped.
  • the message manager 100a includes a redundancy control subsystem 224 that facilitates exchanging information between the message manager partners of a redundant message management facility configuration. Examples of functions carried out by the redundancy control subsystem 224 include declaring a role and synchronizing configuration data.
  • the redundancy related data passes between the partners via the control network 102. However, such data can be passed via the application network 104 or even a third (e.g., dedicated) network link.
  • redundancy control subsystem 224 is customized according to a set of redundancy parameters stored in a system configuration file 226. During normal operation, threads within the device server 220 inform the redundancy control subsystem 224 about current status of connections to associated devices.
  • the message manager 100a includes a calculation and dynamic filtering process 228.
  • the calculation and dynamic filtering process 228 relies on information from the configuration database 204 (described herein below with reference to FIG. 3).
  • the process 228 reads information stored within a set of related tables/matrices, and mode- and event definitions maintained in the configuration database 204.
  • Such information is, by way of example, provided in the form of an XML file rendered by a message manager configurator (described herein below).
  • the calculation and dynamic filtering process 228 retrieves a categorized message (previously placed by the packet receiver 202) from the categorized message queue 208 and initiates executing any commands associated with parameters provided in the categorized message (e.g., initiate a voice alarm, send a message, start a specified executable file, etc.).
  • the parameters of the categorized message queue 208 entries include: a message ID (e.g., compound/block/alarm type combination) and a category ID (specifying a command to be invoked and/or action commenced).
  • handling a message stored in the categorized message queue 208 is distinguished from handling of messages stored in the modified messages queue 210 (that are passed via the device server 220 to a particular destination based upon routing information in the device database 202).
  • the calculation and dynamic filtering process 228 also reads a message, previously placed by the packet receiver 202, from the variable definition messages queue 206 to identify changes in mode and/or event variables.
  • An entry from the variable definition message queue 206 includes a single alarm state message associated with a mode or event variable.
  • the process 228 initiates executing configured parameter actions on one or more specified control block parameters.
  • the configured parameter actions include setting new alarm priority values based upon mode/event priority matrices provided for identified alarms.
  • the new priorities for particular alarms are transmitted by the message manager 100a to the control processor 106a in the form of an application object parameter action identifying a compound, block, and parameter/value.
  • the calculation and dynamic filtering process 228 reads category attributes and variable definitions from the configuration database 204.
  • the calculation and dynamic filtering process 228 reads the variable determination message queue 206 and the categorized messages queue 208 and takes the following actipns.
  • a variable determination message is read from the queue and a new value for a mode or event variable is determined.
  • the first messages in the variable determination message queue 206 are the CURRENT STATE messages from contact input (CIN) blocks that determine the values of mode and event variables.
  • the values of the mode/event variables are applied to a set of category action matrices to determine actions on parameters (e.g., assign a new priority to an alarm parameter) in view of the change to the mode/event state.
  • a mode or event variable changes when a mode or event variable changes, a table of action trigger message attributes is reviewed, and parameter values (e.g., alarm priorities) affected by the mode/event change are detected.
  • the new value e.g., priority
  • a mutual exclusivity indicator defining whether an event is mutually exclusive or not, is taken into account. In such cases, the most recently received event is the only one taken into account when determining parameter actions. In the case of non-mutually exclusive events, the highest priority is used when more than one event is simultaneously set.
  • an internal monitor process 230 is provided to oversee the operational status of each process of the message manager 100a.
  • the monitor process 230 reads a list of message manager processes and parameters, describing the operation of the message manager, from the configuration database 204.
  • the internal monitor process 230 detects monitored process failures and attempts to re-start the monitored process without re-starting the entire message manager.
  • MDSs message delivery servers
  • AMSs alarm management subsystems
  • the data structures described below are exemplary MDS and MM message structures.
  • the structures represent messages sent from the MDS to the MM and messages sent from MM to the MDS.
  • MDS_CONCAT_MSG the structure of message packets exchanged between the MM and MDS. This data structure contains the following fields:
  • MDS_CONCAT_MSG_HEADER the data structure contains common information pertaining to all the concatenated messages in the buffer, including:
  • the data structures described in this section represent incoming messages to the MM from the MDS.
  • the MDS concatenates multiple messages, up to a specified value (MAX_MSG_PER_P ACKET), in one message packet and then sends the packet to the MM.
  • the maximum size of a packet is specified by a value MAX_PACKET_SIZE.
  • the MDS_MAX_MSG_PER_P ACKET (initially 10) and MDS_MAX_PACKET_SIZE (initially 5000) are configurable.
  • FROM_MDS_MSG defines the various types of a single message delivered to the MM from MDS, and contains the following information:
  • MDS_START_SESSION_REPLY_MSG used for the message block type MM_START_SESSION_REPLY MDS_CLffiNT_SIMPLE_REPLY_MSG: used for the message block types
  • MM_END_SESSION_REPLY MDSJD ATA_MSG used for the message block type
  • MDS J3TART_SESSIONJREPLY JvISG defines the data structure of the reply to a start session message received by the MM and contains the following:
  • MDS_CLIENT_SIMPLE_REPLY_MSG defines the data structure sent to the MM, is used for EndGurrentStateUpdate, MessageMaintenanceReply,
  • MDS_DATA_MSG defines the data structure of data messages, and contains the following:
  • Message buffer (limited to, for example, 256 bytes) The content of the message buffer depends on the message mode. If the message mode is MsgGroupDefinitionMode, then the buffer contains an array of device names. If the message mode is CurrentStateMode or MessageMaintenanceMode, then the buffer contains messages provided by a control processor or a data provider.
  • MESSAGEJTYPE defines message types sent by the MDS to the MM. E.g., PROCESS_ALARM_MSG, CONTROL_MSG and MSGGROUP_DEFINITI0N_MSG
  • MESSAGE_MODE_TYPE defines all modes during which data messages are sent by the MDS to the MM.
  • the data structures described herein below represent outgoing messages from the MM to the MDS.
  • the MM sends only one message in a message packet.
  • FROM_MM_MSG defines the various types of a single message delivered from MM to MDS, and contains the following:
  • MDS_START_SESSION MDS_CLIENT_REQUEST_MSG: used for the message block types MDS_START_CURRENT_STATE_UPDATE, MDS_MESSAGE_MAITENANCE, MDS_TEMPORARY_DISCONNECT, MDS_RECONNECT_REQUEST and MDS_END_SESSION
  • MDS_RECEIPT_CONFIRMATION_MSG used for the message block type MDS_RECEIPT_CONFIRMATION MDS_START_SESSION_MSG
  • MDS_START_SESSION_MSG defines the data structure sent by the MM to indicate a session start, and contains the following:
  • MDS_CLIENT_REQUEST_MSG defines the data structure sent by the MM. It is used for StartCurrentStateUpdate, MessageMaintenance, TemporaryDisconnect, ReconnectRequest, EndSession and ConfigQuery messages, and contains the following:
  • MDS_RECEIPT_CONFIRMATION_MSG defines the data structure sent by the MM to confirm receipt of a data message packet, and contains the following:
  • MDS_MSG defines the data structure received by the MM and provided by a Control Processor or a Data Provider through MDS. These messages are received by the packet receiver 202. MDS_MSG is used to format a buffer in MDS__DATA_MSG if the message mode is CurrentStateMode or MessageMaintenanceMode, and contains the following:
  • MDS_MSG_HEADER defines the header for data messages delivered by the MDS and contains the following:
  • MDS_ALARM_MSG is a process alarm-specific part of a Data Message for a Process Alarm Message type, and contains the following information:
  • the following describes a set of exemplary message structures used to send messages from the MM to the AMSs running on the Workstations 108. These message structures represent messages sent from the MM to an Alarm Alert (AA) task.
  • the Alarm Alert task is the part of the AMS that communicates with the MM via the application network 104.
  • the data structures described herein below represent incoming messages to the AA from the MM.
  • the MM concatenates multiple messages, up to MAX_MS GJPER-P ACKET, in one message packet and then sends the packet to the AA.
  • the maximum size of a packet will be MAX_P ACKET_SIZE.
  • the MAX_MSG_PER_P ACKET is equal to 3
  • the MAX_PACKET_SIZE is equal to 2048, but both values can be altered.
  • AMS-CONC AT_MS G used in defining the message packets.
  • This data structure contains the following:
  • AMS_CONCAT_MSG_HEADER contains information pertaining to the concatenated messages in the buffer.
  • the common header includes:
  • AMS_MM_MSG defines the delivered message and contains the following:
  • AMS-MES S AGE_HE ADER defines the data items common to all types of alarm messages and contains the following:
  • MM_TO_AMS_MSG defines the various types of messages delivered from the MM to the AA. This data structure is the union of the different types of messages (described herein below); namely:
  • AMS_MM_BSfITIALIZATION_MSG defines the initialization message format sent from the MM to the AA task. This is the first message sent by the MM after the MM connects to the AA and the AA accepts that connection, and contains the following: "
  • AMS_MM_CPSTATUS_MSG defines the message format associated with control processor (CP) status messages. These messages are sent from MM to the AA task when a CP stops sending alarms or resumes sending alarms to the MM, and contains the following:
  • AMS_PROCESS_ALARMJVISG defines the process alarm message format sent from the MM to the AA task, and contains the following: • Alarm message type; used primarily for process alarm messages (e.g. HIABS, INFO)
  • Alarm type text e.g. "HIABS", "INFO"
  • Alarm priority e.g. 1, 2, 3, 4, 5
  • AMS_SYSTEM_ALARM_MSG defines the system alarm message format sent from the MM to the AA task, and contains the following:
  • Alarm message type e.g. STATN, DEVICE, DISABL
  • Alarm priority e.g. 1, 2, 3, 4, 5
  • AMSJTO JVIMJVISG defines the messages delivered from the AMS to the MM. This data structure is the union of the different types of messages. By way of example, an not limitation, one message type is an initialization message. However any of a variety of message types are contemplated.
  • AMS_AA_INITIALIZATION_MSG defines the initialization request sent from the AA to the MM 3 is a request for the MM to begin delivering messages to restore the AA database with missed alarm messages, and contains the following fields:
  • Packet ID i.e. >0 - ID of the last packet processed by the, AA task; -1 - Recover all alarms from the CPs; -2 — Do not recover; just send new alarms
  • the following message formats are utilized to send alarm messages from the MM to the AA task running on a workstation. These message formats are also used to send process and system alarm messages to a printer (as a print command with an attached buffer containing the alarms to be printed).
  • ALARM_MSG a buffer defined in a header definition (e.g., alarmmsg.h) is used to send process alarm messages from the MM to the AA (or alarm printer).
  • S_APRNF a buffer defined in a header definition (e.g., aprintf.h) is used to send user defined messages via APRINT to an alarm printer.
  • the message manager configurator enables specifying the following:
  • action triggers assigning action categories to blocks or any other appropriate process control structure maintained by a control processor (or process controller),
  • parameter actions set new values to parameters, e.g. for reprioritization
  • mode/event matrices of parameter actions
  • the configurator output referred to as a "message manager configuration set" is stored in the form of an XML file.
  • the message manager configuration set that is used to build the configuration database 204 includes a message table 300, command categories table 310, command table 320, action trigger table 330, action category table 340, parameter action table 350, and general information table 360.
  • the general information 360 includes: a configuration name, a definition of modes, a definition of events, and alarm shower parameters.
  • the message manager 100a utilizes alarm states of CBSf blocks to determine current values for mode and event variables.
  • the numbers of configured modes and events define a 2-dimensional matrix organizing up to 32 fields (cells) for specifying resulting parameter actions.
  • the parameter actions are potentially utilized for reprioritization, inhibition, and disablement of alarms.
  • the data within the general information 360 contains the following information:
  • the alarm shower parameters include, in addition to an alarm shower detection enabled/disabled toggle variable, parameters defining when an alarm shower is occurring.
  • the shower detection parameters stored in the configuration database 204 include: o number of unacknowledged alarms o period in which the unacknowledged alarms have to occur
  • a threshold alarm priority parameter specifies an alarm priority level required for passing an alarm, by the message manager, to connected devices while in the alarm shower mode of operation. During an alarm shower, alarms having a priority below the threshold priority are not forwarded by the message manager to connected devices on the application network 104. Such alarm messages are instead discarded by the packet receiver 200 of the message manager 100a.
  • the above-identified alarm shower parameters are one example of many potential ways to suppress a sudden surge of alarms so that only ones meeting a particular priority threshold are passed along to devices. For example one may instead measure a shower based upon alarms passed to a particular device rather than all received alarm messages. Such modification, addresses the differing capabilities of various specific destinations on the application network 104 to handle high volumes of alarm messages. Also, the alarm threshold may be applied in a stepped manner such that as the number of unacknowledged alarms increases, the threshold priority raises (as a guard against setting too low a threshold priority). Furthermore, a further parameter facilitates specifying a minimum time period within which shower suppression will be turned on, once activated, to avoid excessive toggling between on/off shower suppression states.
  • the message table 300, command categories table 310, and command table 320 facilitate specifying particular commands that are invoked by the (active) message manager 100a in response to receiving messages having a particular message ID.
  • the message table 300 includes a set of n message entries wherein each entry includes a set of message attributes that belong to a particular identified alarm message. Each entry contains, by way of example, the following information:
  • Command Category ID that specifies a command categories table 310 entry associated with the message (including indicator for "not configured” if none is specified). The category ID is added to the received message before adding the message to the categorized messages queue 208.
  • the command category ID facilitates adding executable commands invoked through the message manager to the normal activity of forwarding alarm messages to designated destinations on the application network.
  • only one command category ID is assignable to a message.
  • the properties of a single identified command category if specified, can apply to a particular message table entry.
  • the command categories table 310 is populated by a set of m entries wherein each entry specifies attributes (e.g., executable commands) for each identified command category.
  • attributes e.g., executable commands
  • each entry in the table contains the following:
  • Command Category ID that acts as unique key for specifying the particular command category
  • the command table 320 contains a set of j entries corresponding to the various commands invoked by the message manager 100a on occurrence of particular alarms specifying a particular command BD.
  • Each command table 320 includes, for example, the following information:
  • the action triggers table 330, action categories table 340 and parameter actions table 350 contain configuration information relating to dynamically re-assigning priorities of particular alarms in accordance with mode changes or events received by the message manager 100.
  • the action triggers table 330 includes a set of r entries corresponding to particular blocks, for which actions (e.g., setting a new alarm priority) are to be invoked when the mode or event changes. Each entry contains the following information:
  • Action category ID specifying an alarm priority matrix within the action categories table 340 that is evaluated to determine one or more parameter actions.
  • the s matrices within the action categories table 340 contain parameter action IDs.
  • a particular cell is accessed, within a matrix (corresponding to a specified action category ID), based upon a current mode and/or event, and the parameter action ID within the selected cell determines a group of one or more parameter actions accessed within the parameter actions table 350.
  • Each matrix entry is associated with:
  • the parameter actions table 350 contains t entries specifying groups of m parameter actions, that have to be performed when a state alarm occurs which is configured to change the value of a mode or event variable.
  • Each of the t entries in the table contains the following information:
  • Parameter Action ID (there may be multiple "m” entries in the parameter actions table having the same parameter action ID resulting in the execution of multiple parameter actions on a particular specified compound and block in response to an event or mode change),
  • FIG. 6 illustratively depicts the construction of an application object connection name corresponding to an application object connection.
  • the application object connection name is thereafter used by the message manager 100a to pass a value invoking a parameter action on a specifically identified parameter (e.g., set a new alarm priority value on a particular compound/block/alarm combination).
  • each application object connection name 600 is established from the following application object connection configuration information:
  • a configuration name 610 which is unique for each message management facility 100 (including, for example, a redundant pair of Message Managers),
  • the configuration name appended to the compound number makes up a unique application identification
  • the block name comprises the object part
  • the parameter name comprises the attribute part of the whole application object connection name which is specified in the form of A:O.
  • A applicationiobjectattribute
  • configuration data included within such files is provided herein below, hi the illustrative example, the configuration information is presented in the form of comma separated values (CSV) which are readily parsed and used by a number of editor programs.
  • CSV comma separated values
  • the general information 360 includes four keyword lines containing special keywords as the first entry in the line. Each of these four key- word lines mark the beginning of a particular section of the general information 360.
  • the first line of the general information contains a first keyword line that specifies whether alarm shower detection is switched on.
  • the two alternatives comprise, for example, "ALARM_SHOWER_DETECTION_ON" and
  • alarm shower detection is specified to be on, the first keyword line is followed by a line, before the second keyword line, having three values.
  • the three values represent the alarm shower parameters: number of unacknowledged alarms (range 1 to 10,000), time period in milliseconds (range 1000 to 60000) and threshold alarm priority (range 1 to 5).
  • the second keyword line of the four keyword lines determines whether the modes , are displayed in rows or columns of an action categories matrix (displaying priorities for, an alarm according to present mode/event status). This display option facilitates displaying the mode/event matrices based on the number of modes and the number of events.
  • the content of the second keyword line is either
  • a third keyword line determines whether listed events are mutually exclusive.
  • the content of the second keyword line is either ⁇ VENTS_MUTUALLY_EXCLUSrVE" or
  • a forth keyword line determines whether the matrices are one-dimensional or two-dimensional.
  • One-dimensional matrices are defined either by only modes or by only events, two-dimensional matrices contain cells defined by both modes and events.
  • the text of the fourth keyword line is either ONLY_MODES, ONLY_EVENTS or MODES_AND_EVENTS. If ONLY_MODES is specified, then an error is generated at validation time if there are any lines (defining events) between the third and the fourth keyword lines. Similarly, if ONLY_EVENTS is specified, then an error is generated at validation time if there are any lines (defining modes) between the second and the third keyword lines.
  • the message table file 300 contains five entries per line separated by commas. All four separators (commas) are mandatory. Entries may be empty for data exchange, but may be required later for correct validation.
  • the first three entries in a line contain the message ID including: a compound ID, a block ID and alarm type ID.
  • the fourth entry specifies a command category ID for the message.
  • the fifth entry represents the alias name. As shown in the first line of the example below, if the alias name contains any comma this entry is quoted. If the alias contains any quote symbol, the whole alias is quoted and the internal quote is doubled.
  • the command categories table 310 contains three entries per line separated by commas. The separators are mandatory. Entries may be empty for data exchange, but may be required later for correct validation. The first entry specifies a command category ID. The second and third entries identify up to two commands (by name/identifier) to be executed for alarms specifying the command category ID identified in the first entry of the line.
  • the command table 320 contains three entries per line separated by commas. Both separators are mandatory. Entries may be empty for data exchange, but may be required later for correct validation.
  • the first entry contains the command ID (specified by entries of the command category table 310).
  • the second entry contains the hostname of a network node that will execute the command/action.
  • the third entry contains command line text (including any parameter values needed to invoke a desired action). If the command line contains a comma, then the command line entry is quoted. If the command line contains any quote symbol, the command line is quoted and the internal quote is doubled.
  • the action triggers table 330 contains three entries per line separated by commas. Both separators are mandatory. Entries may be empty for data exchange, but may be required later for correct validation.
  • the first entry contains a compound ID and the second entry identifies a block ID for which actions have to be triggered when a mode or event changes.
  • the third entry contains an action category ID specifying an entry within the action categories table 340.
  • the action categories table 340 contains a variable number of entries dependent on the number of modes and the number of events.
  • the total number of entries per line is equal to (number-of-events * number-of-modes) + 1. All separators are mandatory. Entries may be empty during data exchange, but may be required later for correct validation.
  • the first entry contains the action category ID (referenced by entries in the action triggers table 330).
  • AU the remaining entries of the line (from the second to the last) contain the parameter action IDs (corresponding to entries in the parameter actions table 350) that are stored in a matrix corresponding to the action category ID.
  • the number of modes and the number of events depend on the current configuration in the general information file where the modes and events are defined.
  • the number of modes and events must already be configured as needed for the action categories in the file. If the general information table 360 is empty, then a file containing the general information is read to obtain a number of events and number of modes. The data is thereafter stored within a table mode by mode including all events for each mode.
  • Example Action Categories Table (note: the names assigned to the first line such as MxEy are chosen to demonstrate the how the elements of each mode/event matrix are stored rather than the actual values stored at the location.):
  • the parameter actions table 350 contains three entries per line separated by commas. Both separators are mandatory. Entries may be empty for data exchange, but may be required later for correct validation.
  • the first entry contains a parameter action ID referenced by a matrix entry from the action categories table 340.
  • the second entry contains a parameter name.
  • the third entry contains a new value for the parameter identified in the third entry.
  • the parameters for which new values are set include, by way of example, alarm priorities. However, any parameter value is potentially modified using this mode/event-driven value selection procedure.
  • FIG. 7 an exemplary graphical user interface depicts the information associated with the general information table 360.
  • the page displaying the contents of the general information table 360 comprises four groups of data: a configuration name (e.g., MMGRPl), the presently configured alarm shower parameters (unacknowledged alarms - 50, unacknowledged alarm counting period — 100 milliseconds, and threshold priority - 2), a set of mode definitions, and a set of event definitions).
  • Alarm shower detection is activated/de-activated by toggling the checkbox next to the text "Alarm shower Detection" and then applying the new configuration to the message management facility 100.
  • a list of contact input (CIN) blocks defines the modes used for parameter actions (to set new values to parameters).
  • Each entry in the list contains a compound and block supplemented with a mode name used as a title for a row/column of a mode/event matrix.
  • the compound can be selected from a list of all compounds available in the system, or typed in directly. Once a compound is entered the block is similarly selected.
  • the number of elements in the mode list defines the number of modes and thus one dimension of the mode/event matrix used for determination of parameter actions.
  • the check box "Only Modes" at the bottom of the mode list allows specifying the matrices for parameter actions to be one-dimensional and defined only by modes (no event can be defined).
  • the mode/event matrices are limited to 32 cells. Therefore, if "Only Modes" is checked, the number of modes must be less or equal than 32. If “Only Modes” is unchecked the product of multiplying the number of modes by the number of events specified in the general information for a particular configuration is less or equal than 32. So the maximum number of supported modes is limited by a previously configured number of events. Appending and inserting modes is disabled when the maximum allowed modes is reached.
  • a list of CIN blocks defines the events used for parameter actions (to set new values to parameters).
  • Each entry in the list contains a compound and block supplemented with an event name used as a title for a row/column of the mode/event matrix.
  • the compound can be selected from a list of all compounds available in the system, or typed in directly. Once a compound is entered the block is similarly selected.
  • the number of elements in the list defines the number of events and thus one dimension of the mode/event matrix used for determination of parameter actions.
  • the check box "Only Events” at the bottom of the list allows specifying the matrices for parameter actions to be one-dimensional and defined only by events (no mode can be defined).
  • the mode/event matrices are limited to 32 cells. Therefore, if "Only Events” is checked, the number of events must be less or equal than 32. If “Only Events " is unchecked the product of multiplying the number of modes by the number of events specified in the general information for the particular configuration is less or equal than 32. So the maximum number of supported events is limited by a previously configured number of modes. The buttons to append or insert further events are disabled as soon as the maximum is reached.
  • the message table 300 specifies a command category and/or an alias name for a message. Each message is uniquely identified by compound, block and alarm type. All three sub-fields must be filled out to avoid a validation error.
  • a command category ED and/or an alias name is assigned to each displayed message entry. If a command category is not filled, then no command category is assigned to the message. If a command category ID is configured it is used as a search key for an entry within the command categories table 310.
  • the compound name for a message entry is specified from a list of all compounds which are available in the system, or alternatively, typed in directly. Once a compound is entered a block is similarly selected. Thereafter, an alarm associated with the selected block is similarly designated.
  • the command category E) may either be selected from a list or typed in directly.
  • an optional alias name (a text message describing an alarm), if configured, is added by the packet receiver 200 in the message manager 100a to a received message at runtime.
  • the command categories table 310 includes a set of entries corresponding to classes of messages having a same behavior with regard to invoking specific commands (up to two) for execution.
  • Examples of commands initiated by the message manager 100a injesponse to received messages include voice messages and external commands (directed to another machine such as one of the workstations 108 on the application network 104.
  • a command is invoked on a media player with an appropriately identified voice file (e.g., a .wav file stored on the target system). Configuring voice messages is handled in the same way as other executable commands.
  • Each entry in the exemplary command categories graphical user interface depicted in FIG. 9 includes up to two command IDs for each listed command category BD.
  • the actual command commands corresponding to the command IDs are stored in the command table 320.
  • Each cell in the columns "Command IdI” and "Command Id2" of the command category table allows alternatively the selection of an already defined command from a previously defined list or the direct input of a command identifier to be defined later.
  • an exemplary graphical user interface displayed by the configurator displays a list of command entries stored within the command table 320.
  • the command table defines commands triggered by reception of a particular message specifying a command category ID that in turn specifies a particular command ID corresponding to that command.
  • Each command entry is identified by a unique name that is displayed in the Command ID column of the user interface.
  • An Executing Host column displays the name assigned to the host designated to execute the command (e.g., play the voice message). If no host is specified, then the host is the local host upon which the message manager executes.
  • the Command column displays a command line executed by the identified host. Entries are edited (added, deleted, modified) manually by a user via the exemplary user interface.
  • an exemplary configurator graphical user interface is depicted that facilitates viewing and editing entries within the action triggers table 330.
  • the action triggers table facilitates attaching action categories to blocks for which parameter actions (e.g., specifying a new alarm priority value) are performed when a mode or event changes.
  • a Compound column and Block column together uniquely identify a block upon which the parameter action is to be performed.
  • An Action Category ID column specifies a unique action category ID that specifies a particular action category (matrix) to be evaluated to determine a parameter action ID that, in turn specifies one or more parameter actions performed on the specified compound:block combination.
  • an exemplary configurator graphical user interface displays the contents of a set of entries within the action category table 340.
  • each entry of the action category table 340 defines a mode/event matrix having cells specifying parameter action IDs (further defined in the parameter actions table 350).
  • a list of all currently configured action category matrices is depicted under the section of the user interface entitled "Action Category ID”.
  • the illustrative matrix for the currently selected ACtg-1 action category is a two-dimensional matrix including four modes (identified in the column headings) and five events (identified at the head of each row) - resulting in a total of 20 potential cells for specifying a parameter action ID.
  • the matrix is one-dimensional, if either "Only Modes” or “Only Events” is checked on the "General" page of the configurator user interface. If “Only Modes” is checked, one cell for each mode is displayed and there is no event title above or before the cells. If “Only Events” is checked, one cell for each event is displayed and there is no mode title above or before the cells.
  • the graphical user interface allows selecting a previously defined parameter action from a list box or directly inputting a parameter action identifier — which is defined later.
  • an exemplary configurator graphical user interface is displayed for accessing/editing the contents of the parameter actions table 350.
  • the values of parameters associated with a particular block on one of the control processors 106 can be changed by the message management facility 100 in response to a change to the value of a mode or event variable.
  • Setting a parameter values on the block is referred to herein as a parameter action.
  • One use of such parameter actions is setting a new priority on an alarm parameter for a block.
  • a parameter action ID column of the exemplary user interface identifies parameter action IDs for parameter actions stored in the parameter actions table 350.
  • the parameter action ID values are not unique and thus a single parameter action ID can result in changing multiple parameters on a block.
  • a group of parameter actions invoked at a same time are assigned a same parameter action ID.
  • a user may write all values directly into the parameter action table cells.
  • the configuration information described herein above is stored in the form of an XML file.
  • the message manager 100a parses the XML file rendered by the configurator and stores resulting alarm and message management configuration information in the configuration database 204.
  • FIG. 14 a set of steps summarize the processing of received messages including alarms.
  • the packet receiver process 200 initially applies alarm shower detection/suppression procedures to determine whether to discard the received message (a discarded alarm message will not be passed on to its intended destination on the application network 104).
  • alarm shower detection i.e., detected/not detected
  • control passes to step 1410 wherein an alarm shower state (i.e., detected/not detected) parameter value is determined (see, FIG. 15 for an exemplary method for determining an alarm shower state).
  • step 1410 a priority of the received alarm message is compared to an alarm priority threshold value. If the priority of the received alarm message does not meet the alarm priority threshold value, then control passes to step 1425 wherein the alarm message is discarded instead of passing the alarm message to the intended destination (e.g., a workstation on the application network 104). However, if the priority assigned the received message exceeds the threshold priority, then control passes from step 1420 to step 1430 wherein further tests are commenced to determine which of the available message queues to place the received message. If at step 1400, alarm shower detection is disabled, then control passes directly to step 1430. Furthermore, if at step 1410 an alarm shower detected state has not been set, then control passes to step 1430.
  • the packet receiver 200 consults the message table 300 to determine whether a corresponding message entry can be found. If at step 1430 the received message's ID cannot be located in the message table 300, then control passes to step 1435 wherein the received message is placed within the modified messages queue 210 without modifications by the packet receiver 200. As previously mentioned, the device server 220 retrieves the messages from the modified messages queue 210 and passes them to one or more destinations in accordance with destinations identified in the device database 202. If, at step 1430, the received message's ID is located in the message table 300, then control passes to step 1440.
  • an alias (if provided in the entry within the message table 300) is added to the received message before adding the entry to the modified messages queue 210.
  • the packet receiver 200 determines the received message is associated with a category (i.e., the corresponding entry in the message table 300 includes a category ID), then control passes to step 1455.
  • an additional copy of the received message, along with its associated category ID (obtained from an entry in the message table 300), is placed in the categorized messages queue 208.
  • Processing of an entry from the categorized messages queue 208 results in the invocation of a command/executable program by the message manager (e.g., message manager 100a).
  • Such command/executable program can be of virtually any type. However, one example of such command results in the initiation of a voice message stream play sequence by a set of nodes on the application network 104 to provide an audible warning when a particular alarm message is received.
  • step 1450 determines whether the message is associated with a category ID. If the message is associated with a category ID, then control passes from step 1450 to step 1460 (also entered from step 1435 described herein above).
  • step 1460 if the received message is a variable determination message (i.e., one providing notification of an event/mode change), then control passes to step 1465 wherein a copy of the received variable determination is placed in the variable determination messages queue 206 for further processing. Processing entries retrieved from the variable determination messages queue, e.g., updating alarm priorities in response to events/mode changes, is discussed further herein below with reference to FIG. 17. Finally, if the message is not a variable determination message, then control passes from step 1460 to the End.
  • a variable determination message i.e., one providing notification of an event/mode change
  • FIG. 15 a set of steps are summarized that describe an exemplary way of carrying out the alarm shower detection aspect of an exemplary message management facility.
  • the shower detection procedure is responsible for setting an "alarm shower detected" parameter under certain circumstances. Once detected, the packet receiver discards alarm messages that do not meet a pre-set threshold priority.
  • control passes to step 1500 wherein an alarm counter value for the just completed period is determined.
  • step 1510 if the alarm counter value exceeds a configured number of alarms (a maximum number of received alarms permitted in the alarm count period by the message manager without triggering an alarm shower condition), then control passes to step 1520 wherein the alarm shower detection parameter is set to indicate the presence of an alarm shower.
  • the alarm shower detection parameter is set to indicate the presence of an alarm shower.
  • messages with a priority lower than a currently configured threshold priority are discarded by the message manager 100a.
  • step 1540 the alarm counter is reset and a next alarm count period is started. Thus, the alarm shower "detected" status is maintained for at least one alarm count period once detected.
  • step 1510 if the alarm counter value does not exceed the configured number of alarms, then control passes from step 1510 to step 1530.
  • the alarm shower detection parameter is reset to indicate that alarm shower conditions were not present in the just completed alarm count period.
  • Control then passes to step 1540 wherein a next alarm count period is commenced.
  • the alarm shower parameter state is based upon a just completed count period, and a current alarm shower parameter state will persist until a next count period is completed.
  • step 1600 the calculation and dynamic filtering process 228 retrieves a categorized message from the categorized messages queue 208 and the associated command category ID is determined. Thereafter, at step 1610 the command category ID is applied to the contents of the command categories table 310 to identify one or more executable command IDs (see FIG. 9 for exemplary table 310 contents). Next, at step 1620 the command IDs identified during step 1610 are applied to the contents of the command table 320 (see FIG. 10 for exemplary table 320 contents).
  • step 1630 the calculation and dynamic filtering process 228 initiates execution of a command line (or any other executable command) in accordance with the contents of entries in the command table 320 corresponding to the command IDs identified during step 310.
  • the command can be a locally executed command (on the message manager 100a) or alternatively on a host identified in the "executing host" sub-field of an entry in the commands table 320.
  • FIG. 17 a set of steps are summarized for processing messages retrieved from the variable determination messages queue 206.
  • the calculation and dynamic filtering process 228 retrieves a variable determination message from the variable determination messages queue 206 and an event/mode change (current event/mode state) is determined.' Thereafter, the steps identified in FIG.
  • WMJe the present example comprises initiating changes to parameter (e.g., priority) values on identified control blocks maintained by control processors 106, this activity can be generalized to any particularized actions invoked in response to events/mode changes that render a particular event/mode state.
  • parameter e.g., priority
  • the action category ID specified for a particular entry in the action triggers table 330 is applied to the action categories table 340 to locate a particular mode/event matrix corresponding to the action category ID (see FIG. 12).
  • the present mode/event state is applied to the particular referenced mode/event matrix to determine a parameter action ID, if any, corresponding to a cell within the referenced mode/event matrix corresponding to the present mode/event state.
  • a highest priority event determines the selection of a cell in the mode/event matrix. Otherwise, the most recently registered event controls.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Manufacturing & Machinery (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Testing And Monitoring For Control Systems (AREA)

Abstract

A message management facility (100) is described herein that is hosted by a networked node, in a process control network environment (102), that is separate from a control processor (106). The message management facility (100) routes a stream of messages received from the control processor (106) to a set of destinations on a supervisory network. By interposing the message management facility (100) on a node that is interposed, in a message steam, between alarm message sources (control processors (106)) and alarm message sinks (workstations (108), printers (112), historians (110)), a number of additional functions can be implemented to carry out a number of advanced functions. Examples of such functions include: table-based routing of a single alarm to a number of destinations on an application network, suppressing alarm showers by applying a criterion to received messages when shower conditions have been sensed, invoking commands based upon a configured category assigned to particular identified messages prior to delivery of the message to its final destination, and invoking actions in response to event/mode status changes (including re-prioritizing alarms).

Description

MESSAGE MANAGEMENT FACILITY FOR AN INDUSTRIAL PROCESS
CONTROL ENVIRONMENT
FIELD OF THE INVENTION
The present invention generally relates to the field of networked computerized process control systems. More particularly, the present invention relates to supervisory process control and manufacturing information systems. Such systems generally execute above a control layer in a process control system to provide guidance to lower level control elements such as, by way of example, programmable logic controllers.
BACKGROUND
Industry increasingly depends upon highly automated data acquisition and control systems to ensure that industrial processes are run efficiently, safely and reliably while lowering their overall production costs. Data acquisition begins when a number of sensors measure aspects of an industrial process and periodically report their measurements back to a data collection and control system. Such measurements come in a wide variety of forms. By way of example the measurements produced by a sensor/recorder include: a temperature, a pressure, a pH, a mass/volume flow of material, a tallied inventory of packages waiting in a shipping line, or a photograph of a room in a factory. Often sophisticated process management and control software examines the incoming data, produces status reports, and, in many cases, responds by sending commands to actuators/controllers that adjust the operation of at least a portion of the industrial process. The data produced by the sensors also allow an operator to perform a number of supervisory tasks including: tailor the process (e.g., specify new set points) in response to varying external conditions (including costs of raw materials), detect an inefficient/non-optimal operating condition and/or impending equipment failure, and take remedial actions such as move equipment into and out of service as required.
Typical industrial processes are extremely complex and receive substantially greater volumes of information than any human could possibly digest in its raw form. By way of example, it is not unheard of to have thousands of sensors and control elements (e.g., valve actuators) monitoring/controlling aspects of a multi-stage process within an industrial plant. These sensors are of varied type and report on varied characteristics of the process. Their outputs are similarly varied in the meaning of their measurements, in the amount of data sent for each measurement, and in the frequency of their measurements. As regards the latter, for accuracy and to enable quick response, some of these sensors/control elements take one or more measurements every second. When multiplied by thousands of sensors/control elements, this results in so much data flowing into the process control system that sophisticated data management and process visualization techniques are required.
Highly advanced human-machine interface/process visualization systems exist today that are linked to data sources such as the above-described sensors and controllers. Such systems acquire and digest (e.g., filter) the process data described above. The digested process data in-turn drives a graphical display rendered by a human machine interface. Such data includes mode changes, events, and alarm messages rendered by process controllers in response to a variety of detected process conditions/circumstances.
Process alarm messages are traditionally sent from plant control processors to alarm displays on workstations to notify operators of plant upsets. Generally, alarm messages are issued by control processors when a measured or calculated value is rendered outside a pre-configured range. The plant controller transmits the generated alarm to one or more operator workstations coupled to a separate (e.g., application) network. Detection, generation and transmission of alarms can potentially place a heavy load on a controller.
Known process control systems support a variety of alarm ordering techniques including assigning alarm priorities and filtering alarm messages according any of a variety of characteristics. The alarm prioritization/filtering functionality carried out by the control processor assists operators in assessing plant/process status and facilitates expedited correction of problems as they arise in a plant process. In general, the alarm priorities are relatively fixed and are changed through human intervention. Prioritizing alarms/messages alone will not avoid overwhelming an operator with a shower of alarm messages during a major plant failure or succession of cascading process/plant component failures. Overlooking a particular alarm or class of alarms, during an alarm shower can lead to harm to both humans and the plant itself. SUMMARY OF THE INVENTION
The present invention provides a method and facility for managing messages, for example alarms, that pass from control processors to a variety of destinations (e.g., workstations, printers, historians/databases) associated with supervisory control of an industrial process. Managing messages is carried out by interposing appropriate management functionality between sources of messages (e.g., control processors) and the message's final destinations. Such arrangement facilitates executing a variety of functions on the message stream.
More particularly, a message management facility routes a stream of messages received from the control processor to a set of supervisory destinations. The facility includes a message receiver for receiving a message including a message group ID field. The facility also includes message routing information comprising a set of message routing entries. Each of such routing entries includes a message group ID value, and a set of message routing destinations for received messages specifying the message group ID. The facility also includes a destination server for transmitting the message received by the message receiver to one or more network destinations based on an ID specified in the message group ID field and a set of message routing destinations specified in a corresponding routing entry of the message routing information.
The facility also carries out a message monitor role wherein the facility monitors a stream of messages received from a control processor and initiates executing a command in response to detecting particular identified messages in the stream of messages. In this regard, the message monitor includes a message table including a set of message table entries. Each entry comprises a message ID and a command ID. A message' receiver of the facility includes a message monitoring functionality for receiving a message including a message ID value, and identifying a categorized message by locating an entry in the message table corresponding to the received message. Finally, a command execution functionality initiates executing a command associated with the command ID, of the entry in the message table for the categorized message, in association with the message receiver identifying the categorized message.
The facility also carries out a status message monitor roles wherein the facility initiates executing a command in response to detecting status changes contained within messages in the stream of messages. In this regard, the message monitor includes a message receiver including a message monitoring functionality for identifying status changes relating to modes/events specified in a received message. The facility also initiates executing actions in accordance with a current mode/events status in view of the received message. The actions comprise, for example, setting a new priority for an alarm.
In yet another role, the facility monitors the volume of messages passing over a period of time, and in response to detecting a message (e.g., alarm shower) the facility operates to restrict messages passed to intended destinations by applying a suppression criterion on the steam of messages. For example, when a shower is detected, messages/alarms that do not meet a message priority threshold are discarded by the facility. Other criterions are contemplated in alternative embodiments of the invention.
BRIEF DESCRIPTION OF THE DRAWINGS
While the appended claims set forth the features of the present invention with particularity, the invention, together with its objects and advantages, may be best understood from the following detailed description taken in conjunction with the accompanying drawings of which:
Figure 1 is schematic network diagram showing an exemplary process control environment comprising both a control network and an application/supervisory network suitable for carrying out an embodiment of the present invention;
Fig. 2 is a schematic diagram of a message management facility incorporated into a node comprising interfaces to both the control network and application/supervisory network;
FIG. 3 is an exemplary list of types of information stored in a configuration file used to build a configuration database that governs the runtime operation of the exemplary message management facility depicted in FIG. 2;
FIG. 4 graphically depicts relationships between configuration information relating to command categories used by a message manager to initiate commands as a result of receiving particular messages;
FIG. 5 graphically depicts relationships between configuration information relating to parameter action categories used by a message manager to initiate certain pre- configured actions in response to notifications of events/mode changes;
FIG. 6 graphically depicts the sources of information that supply information used to build application object connections used by a message manager to pass a parameter value to a particular target control block;
FIG. 7 is an exemplary graphical user interface for configuring general information relating to a message management facility configuration;
FIG. 8 is an exemplary graphical user interface for configuring contents of a message table;
FIG. 9 is an exemplary graphical user interface for configuring contents of a command categories table;
FIG. 10 is an exemplary graphical user interface for configuring commands corresponding to the commands identified in the command categories table; FIG. 11 is an exemplary graphical user interface for configuring an action trigger table identifying a set of action category IDs;
FIG. 12 is an exemplary graphical user interface for configuring matrices corresponding to the action category IDs referenced in the action trigger table;
FIG. 13 is an exemplary graphical user interface for configuring parameter actions specifying particular parameter/value combinations associated with a particular parameter action ID potentially listed in a cell within a matrix of a set of matrices making up the action categories;
FIG. 14 is a flowchart summarizing steps, associated with processing, by a message manager, a received message from the control network;
FIG. 15 is a flowchart summarizing steps associated with maintaining alarm shower status in view of configured alarm shower parameter values;
FIG. 16 is a flowchart summarizing steps associated with processing, by a message manager, a categorized message; and
FIG. 17 is a flowchart summarizing steps associated with processing, by a message manager, an event/mode change message.
DETAILED DESCRIPTION
Structural and functional features of exemplary embodiments of the present invention are described herein with regard to configuration and runtime aspects of a message management facility. At runtime, the functionality of transmitting ("routing") alarm messages, from control processors residing on a control network to one or more operator workstations (or other nodes) residing on an application network, has been extracted from the control processors and placed in one or more message management components executing on nodes coupled to a control network that hosts the control processors. The message management nodes are coupled to both the control network and the application network. Detecting and generating alarms takes place in the control processors (as before). Placing alarm routing functionality in a workstation or other node coupled to the application network reduces the computational and memory load on the control processor. Furthermore, placing routing functionality in a separate (e.g., application workstation) node facilitates supplementing base routing functionality with enhanced alarm message handling capabilities.
For example, in addition to routing alarm messages, a workstation configured to receive/route messages issued by control processors on a control network also monitors alarm flow. While monitoring alarm flow, a workstation applies previously configured policies to particular alarm messages, hi response to detecting an identified alarm in a received message, the message management facility invokes particular actions/functions/programs on a workstation. To this end a configurator application and user interface enables a user to design/customize the message management facility to invoke a program upon detecting a pre-confϊgured alarm being routed to a destination. The invoked program can perform any of a variety of functions including, by way of example, issuing a voice message (stored as an MP3 or WAV file), sending an email message, or generating output to a printer, historian, etc. The responses are created, identified, and stored in command databases that are customized via the configurator application.
Another feature incorporated into the message management facility described herein is automatic reprioritization of alarms in response to events and operation mode transitions. In the exemplary embodiment the message management facility dynamically updates (and modifies if necessary) alarm priorities based upon changes to a current status of the process control system. The status is defined, by way of example by a mode and/or event(s). During configuration, dynamically assignable priorities of a particular alarm (or alternatively a class/group of alarms) are defined, for example, in a matrix comprising mutually exclusive modes and non-mutually exclusive events. For each mode/event combination within the matrix, an alarm priority is potentially specified for the alarm. The message management facility responds to events and mode transitions by looking up a potentially new priority for each alarm for which priorities are potentially dynamically re-assigned. In an exemplary embodiment, mode transitions and/or events are defined/associated with simple state alarms. The state alarms are, for example, hard wired to key switches. The state alarms are also potentially soft alarms generated within the process control system based upon certain sensed plant conditions or control logic output.
In accordance with yet another feature of the exemplary message management facility, an alarm shower suppression functionality counts alarms flowing per time slice to detect a potentially overwhelming quantity of alarms. It compares the count value in the time slice to a pre-configured limit. If the limit is exceeded, then an alarm shower state is entered and alarms having a priority lower than a pre-configured priority are not passed on to a destination workstation and are thus suppressed until a subsequent count of alarms over a period of time falls to a point where the alarm shower state can be exited. Thus, during an alarm "shower" only the most important/critical alarms are forwarded to an intended workstation. In this way, the most important/critical alarms will not be masked or delayed by lower priority alarms.
Turning to an exemplary runtime arrangement depicted in FIG. 1, a message management facility 100 executes as an application on one or more specially configured nodes having physical network interfaces supporting connections to nodes on both a control network 102 and an application network 104. Such networks are implemented, by way of example, according to the ETHERNET standard local area network protocols. The connections over the networks 102 and 104 are implemented by any of a variety of forms through separate network communications services executing on the same network node(s) as the message management facility 100. It is further noted that while a single active message manager handles all messages in the illustratively depicted arrangement in FIG. 1, the message management functionality can be carried out by multiple active message managers running on separate nodes, coupled to the control network 102 and application network 104, and handling particular identified/specified ones of the alarms generated by control processors on the control network 102.
The message management facility 100 carries out a variety of functions. Such functions include, by way of example, receiving messages including mode changes, , events, and alarms from message delivery services running on nodes on the control network 102; modifying the messages (e.g., adding an alias to a message); and dispatching alarm messages to designated destinations (e.g., alarm management subsystems on operator workstations, alarm logs/databases, alarm printers, etc.). In the case of an alarm management subsystem, the alarm messages drive graphical user interface displays and alarm annunciation components that generate an audible/verbal alarm message. In addition to passing alarm messages to designated destinations, the message management facility 100 is capable of: dynamically adjusting alarm priorities in response to messages identifying sensed events and operation mode (e.g., standby, startup, run, etc.) transitions; invoking a command (performed either locally or on another node coupled to the application network 104) in response to a particular received alarm message; and commencing an action resulting in issuance of an audible (e.g., verbal) message based upon a particular received alarm message.
In the illustrative example, the message management facility 100 is presented in a redundant form including an active message manager 100a and a standby message manager 100b. The redundancy can be implemented in any of a variety of ways in accordance with various embodiments of the invention, hi an exemplary embodiment, the redundant message managers 100a and 100b synchronize and monitor status of their redundant partners by communications transmitted via the control network 102. However, in alternative embodiments synchronization is carried out via the application network 104 or even a third physical network (requiring a third network interface for each of the redundant message managers 100a and 100b). In the event the currently active partner fails, the standby message manager automatically takes on the active role previously held by the failed partner.
Each of the message managers 100a and 100b of the message management facility 100 are associated with network connections to one or more of a set of N control processors 106 on the control network 102. The control processors 106, by way of example, execute a variety of automated distributed process control programs (loops), carried out in the form of compounds and blocks, that facilitate receiving data from sensors/devices deployed in a plant, analyzing the received data in view of current set points, and issuing control commands to actuators on plant equipment. The set points are provided, for example, by automated supervisory process control programs as well as human input via the application network 104. While not shown in the drawing, the control processors 106 are communicatively coupled to one or more sub-networks that host communications between the control processors 106 and sources of field data. The sub-networks include, for example, a plurality of field communication modules. The field communication modules, in turn, comprise a portion of a field device sub-network/bus including various sensors and actuators that facilitate automated control of a industrial/plant process.
The active and standby message managers 100a and 100b, by way of example, receive alarm messages issued by a message delivery server (MDS) executing on each of the control processors 106. Both active and standby message managers 100a and 100b process messages received from the control processors 106 concurrently. However, as explained further herein below, processing alarm messages on the standby message manager 100b does not include issuing messages to devices configured in the message manager's device database.
The message management facility 100 establishes connections to one or more of a set of operator workstations on the application network 104. In the illustrative redundant message manager configuration depicted in FIG. 1, only the active partner of the redundant message managers 100a and 100b establishes connections to the devices on the application network 104. Thereafter, the active partner of the message management facility 100 forwards/routes the received messages to a variety of destinations on the application network 104, and if specified in a set of message management tasks, invoking an operation. The destinations to which the alarms are forwarded by the message management facility 100 include, by way of example, an alarm management subsystem executing on one of a set of M operator workstations 108, an alarm printer 112, an alarm database/historian 110, etc.
Having described an exemplary runtime environment including the message management facility 100, it is noted that in alternative embodiments, the message management facility 100 is carried out in alternative network topologies. For example, in a minimal network environment, the node executing the message management facility 100 incorporates the functionality of other nodes of the application network 104. For example, the alarm database and workstation functionality is incorporated into a node connected to the control network 102 that also runs the message manager 100b. In yet other embodiments, multiple instances of the message management facility 100 are provided to share message management responsibilities for a set of devices coupled to the application network 104. Still other embodiments will be contemplated by those skilled in the art in view of the disclosed embodiments described herein.
Having described a general runtime arrangement of a process control environment including the (redundant) message management facility 100, attention is directed to FIG. 2, that depicts a set of functional components of, and data flow within, the message manager 100a that operates to process messages received from the control processors 106 on the control network 102. A packet receiver process 200 on the message manager 10Oa5 comprising device database threads and message delivery server threads (one thread per control processor message delivery server to which the packet receiver 200 connects), receives and unpacks message packets, containing potentially many messages to reduce overhead, issued by the message delivery server (MDS) running on each control processor 106x (including control processor 106a or any other source of message packets) on the control network.
A configuration database 204 contains configuration information, extracted from a configuration (see FIG. 3 below) defined via a message management facility configurator (described further herein below), that governs the runtime operation of the message manager 100a. The configuration database 204, by way of example, contains: a Table of Message Attributes, Table of Category (command/action) Attributes, Matrix and Variable Definition, and Alarm Shower Parameters.
The following describes an exemplary set/sequence of operations supported by an exemplary messaging interface between the message manager 100a and a message delivery server (MDS) on the control processor 106a. Initially, at startup, the message manager 100a uses inter-process communication services to initialize a connection between a dedicated message delivery server thread within the packet receiver process 200 and the MDS running on the control processor 106a. After initializing the connection, the message manager 100a issues a START_SESSION message to the MDS to register the control processor 106a and waits for a START_SESSION_REPLY message from the MDS.
After sending a START_SESSION_REPLY message, the MDS sends message group device definitions to a corresponding dedicated MDS thread of the packet receiver 200. The group device definitions include device information from connected MDS's on the set of control processors 106. The device information, maintained in a device database 202, indicates which devices (e.g., workstations, printers, alarm databases on the application network 104) receive certain identified messages. The device information is, in effect, the routing information (destinations) for subsequently received messages. The packet receiver 200 stores the extracted device (message routing) information in the device database 202.
In an exemplary embodiment, the device database 202 holds a set of group device definition entries. Each entry contains, by way of example, the following fields:
• String, consisting of a concatenated MDS ID and Message Group ID. The String is used as a search key into the device database 202.
• Array, comprising up to 32 device names
• Number, identifying the quantity of defined devices specified in the Array.
The device database 202 is also capable of being updated during normal runtime of the message manager. In this case, the MDS sends a message to the message manager specifying new message destination information. The packet receiver 200 recognizes the type of message and updates the appropriately keyed entry within device database 202 accordingly. A device server process 220, described herein below, is notified when updated to the device database 202 occur in view of the possibility that a new threads may needed or old threads terminated in view of the device database 202 update.
During initialization and in response to update requests from alarm management subsystems (AMSs) on the workstations 108, the MDS threads of the message manager 100a obtain current status information by sending a CURKENT_STATE_REQUEST to the MDS on the control processor 106a. In response the MDS returns message packets containing current alarm and contact input (CIN) states, which are associated with mode and event variables, present on the control processor 106a as MES SAGEJDATA messages. The responses from the MDS also include any MESSAGE_DATA messages buffered by the MDS on the control processor 106a before initialization operations. The message manager 100a acknowledges each packet with a RECEIPT_CONFIRMATION message. The current state data transfer/acknowledgement cycles are repeated until a CURRENT_STATE_END message is received by the message manager.
During the normal operation mode of the message manager 100a, the packet receiver 200 issues a MESSAGE_MAINTENANCE_REQUEST to the MDS and waits for the MDS to issue a MESSAGE_MAINTENANCE_REPLY message. AU messages are transmitted by the MDS in the form of MESSAGE_DATA messages within message packets, and the message manager 100a acknowledges each packet by transmitting a RECEIPT J^ONFIRMATION message to the MDS on the control processor 106a.
The packet receiver 200, extracts messages from the MESSAGE_DATA message packets and places the messages into one of: a variable determination messages queue 206, a categorized messages queue 208, a modified messages queue 210, and the device database 202.
While operating in this normal mode, the packet receiver 200 executes alarm shower detection according to a set of alarm shower parameters provided by a configuration database 204. In the illustrative embodiment, alarm shower detection is characterized by a specified number of alarms received within a time period and an alarm priority value. The alarm priority value establishes a priority threshold for alarms passed to devices, such as the workstations 108 on the application network 104, in the event that an alarm shower is detected. Alarms having insufficiently high priority are discarded by the packet receiver 200. Configuring alarm shower behavior for the message management facility 100, including the message manager 100a is described further herein below.
It is noted that the standby message manager 100b, though assigned a passive role in forwarding alarm messages to devices, also registers/initializes with the same MDSs as the active message manager 100a to ensure that all messages are received by both of the redundant message managers.
Finally, in the event that the message manager 100a detects a connection failure, the message manager 100a, after the cause of the failure has be eliminated, attempts to re¬ establish the connection to the MDS on the control processor 106a. If an initial attempt fails, further attempts are initiated every second.
The messages received by the packet receiver 200 are parsed and stored, after potential modification, within an appropriate one of the message queues 206, 208 and 210.
The modified messages queue 210 is used to pass data from the packet receiver 200 to a device server process 220. Each entry in the modified messages queue 210 includes, by way of example, the following fields:
• Single Data Message as received by the Packet Receiver Process
• Identification of the MDS where the message come from
• Alias name, added by the packet receiver 200 to the initially received message from the MDS
The device server process 220 reads messages from the modified messages queue 210 and routes the retrieved messages to appropriate device (e.g., workstation, alarm database, printer, etc.) destinations according to routing information provided by the device database 202. The device server process 220 contains destination-specific threads that convert the retrieved messages to a format- specified for the particular device type of the identified destination residing on the application network 104. The messages destined for the alarm database 110 pass through an alarm database collector 222. The collector 222 communicates with the alarm database 110 via the application network 104 to place the alarm data in the database 110. However, if the alarm database 110 is unavailable, then the alarm data is buffered in a temporary alarm data buffer 223. When the alarm database 110 becomes available, the buffered alarm data is retrieved from the buffer 223 and passed to the collector 222 before placing current alarm data in the database 110. As previously noted, device data can be updated during normal runtime operation of the message manager 100a. The device server 220 dynamically creates and deletes connections to devices via the application network 104 according to updates to the information placed by the packet receiver 200 in the device database 202.
In an exemplary embodiment, communications between the message manager 100a and an alarm management subsystem (AMS) on the workstations 108 proceed as follows.
• At startup, the message manager 100a initializes with AMS targets.
• After initializing, the message manager 100a sends an initialization message specifying a socket where the message manager 100a listens for AMS resynchronization messages.
• The message manager 100a waits for an initialization request from an AMS.
• Depending on the initialization request the message manager 100a starts sending alarms and events to the AMS over the connected communication.
• If the message manager 100a detects a connection failure, the connections will be cleaned up and then the message manager tries with a 1 second cycle to re-establish the lost connection to the workstation.
In an exemplary embodiment, AMS server threads within the device server process 220 operate as message collectors for specific corresponding AMSs on the workstations 108. Each AMS server thread packs messages together so that a packet of messages is sent rather than single messages. A timer function ensures that messages are sent after a time period even if a message packet is not full. The time (e.g. 500ms) and the number of messages (e.g. 3) will vary according to various implementations. AU alarm messages are time stamped.
The message manager 100a includes a redundancy control subsystem 224 that facilitates exchanging information between the message manager partners of a redundant message management facility configuration. Examples of functions carried out by the redundancy control subsystem 224 include declaring a role and synchronizing configuration data. In the illustrative embodiment, the redundancy related data passes between the partners via the control network 102. However, such data can be passed via the application network 104 or even a third (e.g., dedicated) network link. The operation 5 042491
of the redundancy control subsystem 224 is customized according to a set of redundancy parameters stored in a system configuration file 226. During normal operation, threads within the device server 220 inform the redundancy control subsystem 224 about current status of connections to associated devices.
The message manager 100a includes a calculation and dynamic filtering process 228. The calculation and dynamic filtering process 228 relies on information from the configuration database 204 (described herein below with reference to FIG. 3). In particular, the process 228 reads information stored within a set of related tables/matrices, and mode- and event definitions maintained in the configuration database 204. Such information is, by way of example, provided in the form of an XML file rendered by a message manager configurator (described herein below). The calculation and dynamic filtering process 228 retrieves a categorized message (previously placed by the packet receiver 202) from the categorized message queue 208 and initiates executing any commands associated with parameters provided in the categorized message (e.g., initiate a voice alarm, send a message, start a specified executable file, etc.). The parameters of the categorized message queue 208 entries include: a message ID (e.g., compound/block/alarm type combination) and a category ID (specifying a command to be invoked and/or action commenced). By invoking a command rather than merely pass the message/alarm to an identified destination device for the message on the application network 104, handling a message stored in the categorized message queue 208 is distinguished from handling of messages stored in the modified messages queue 210 (that are passed via the device server 220 to a particular destination based upon routing information in the device database 202).
In addition to the above-mentioned command execution function, the calculation and dynamic filtering process 228 also reads a message, previously placed by the packet receiver 202, from the variable definition messages queue 206 to identify changes in mode and/or event variables. An entry from the variable definition message queue 206 includes a single alarm state message associated with a mode or event variable. hi response to events and mode transitions specified by a retrieved entry from the variable definition message queue 206, the process 228 initiates executing configured parameter actions on one or more specified control block parameters. By way of example, and not limitation, the configured parameter actions include setting new alarm priority values based upon mode/event priority matrices provided for identified alarms. In a particular embodiment, the new priorities for particular alarms are transmitted by the message manager 100a to the control processor 106a in the form of an application object parameter action identifying a compound, block, and parameter/value.
During initialization the calculation and dynamic filtering process 228 reads category attributes and variable definitions from the configuration database 204. The calculation and dynamic filtering process 228 reads the variable determination message queue 206 and the categorized messages queue 208 and takes the following actipns. A variable determination message is read from the queue and a new value for a mode or event variable is determined. The first messages in the variable determination message queue 206 are the CURRENT STATE messages from contact input (CIN) blocks that determine the values of mode and event variables. The values of the mode/event variables, in turn, are applied to a set of category action matrices to determine actions on parameters (e.g., assign a new priority to an alarm parameter) in view of the change to the mode/event state.
In view of the functionality performed by the calculation and dynamic filtering process 228 in conjunction with mode/event change messages retrieved from the variable determination message queue 206, when a mode or event variable changes, a table of action trigger message attributes is reviewed, and parameter values (e.g., alarm priorities) affected by the mode/event change are detected. For these parameters the new value (e.g., priority), configured in a table of action category attributes in the database 204, are determined and sent to the control processors in the form of parameter values on identified control blocks executing on the control processors. In processing event messages retrieved from the variable determination message queue 206, a mutual exclusivity indicator, defining whether an event is mutually exclusive or not, is taken into account. In such cases, the most recently received event is the only one taken into account when determining parameter actions. In the case of non-mutually exclusive events, the highest priority is used when more than one event is simultaneously set. 05 042491
In closing, with regard to FIG. 2, it is noted that in the exemplary embodiment that a set of processes are utilized to carry out the message manager 100a. This arrangement ensures that when one of the processes fails, the other processes continue to function. Furthermore, an internal monitor process 230 is provided to oversee the operational status of each process of the message manager 100a. At startup, the monitor process 230 reads a list of message manager processes and parameters, describing the operation of the message manager, from the configuration database 204. The internal monitor process 230 detects monitored process failures and attempts to re-start the monitored process without re-starting the entire message manager.
Having described the general functional components that make up an exemplary message manager, attention is directed to a set of exemplary data structures utilized by the message manager to communicate with message delivery servers (MDSs) on the control processors 106 and alarm management subsystems (AMSs) on the workstations 108. MDS / Message Manager (MM) Message Format
The data structures described below are exemplary MDS and MM message structures. The structures represent messages sent from the MDS to the MM and messages sent from MM to the MDS.
MDS_CONCAT_MSG: the structure of message packets exchanged between the MM and MDS. This data structure contains the following fields:
• Header for all message packets (MDS_CONCAT_MSG_HEADER)
• Buffer for a set of concatenated messages
(the type for an incoming message is FROMJVIDSJVISG, the type for an outgoing message is FROM_MM_MSG)
MDS_CONCAT_MSG_HEADER: the data structure contains common information pertaining to all the concatenated messages in the buffer, including:
• A unique packet ID
• An array of indexes to the second through last messages in the buffer
Format for Messages Received by the Message Manager 5 042491
The data structures described in this section represent incoming messages to the MM from the MDS. The MDS concatenates multiple messages, up to a specified value (MAX_MSG_PER_P ACKET), in one message packet and then sends the packet to the MM. The maximum size of a packet is specified by a value MAX_PACKET_SIZE. The MDS_MAX_MSG_PER_P ACKET (initially 10) and MDS_MAX_PACKET_SIZE (initially 5000) are configurable.
FROM_MDS_MSG: defines the various types of a single message delivered to the MM from MDS, and contains the following information:
Type of the message block (type of the union variant)
Union of the different types (described further herein below), namely.
MDS_START_SESSION_REPLY_MSG: used for the message block type MM_START_SESSION_REPLY MDS_CLffiNT_SIMPLE_REPLY_MSG: used for the message block types
MM_END_CURRENT_STATE_UPDATE,
MM_MESSAGE_MAITENANCE_REPLY,
MM_TEMPORARY_DISCONNECT_REPLY,
MM_RECONNECT_REPLY and
MM_END_SESSION_REPLY MDSJD ATA_MSG: used for the message block type
MM_DATA_MESSAGE
MDS J3TART_SESSIONJREPLY JvISG: defines the data structure of the reply to a start session message received by the MM and contains the following:
• Error code
• Client Id generated by MDS
MDS_CLIENT_SIMPLE_REPLY_MSG: defines the data structure sent to the MM, is used for EndGurrentStateUpdate, MessageMaintenanceReply,
TemporaryDisconnectReply, ReconnectRequestReply and EndSessionReply messages, and contains the following:
• Error code
MDS_DATA_MSG: defines the data structure of data messages, and contains the following:
• Message type (MES SAGEJTYPE) • Message mode type (MESSAGE_MODE_TYPE)
• union containing the variants:
Number of lost messages, if the message mode is CurrentStateMode or
MessageMaintenanceMode; Group Id, if the message mode is MsgGroupDefinitionMode
• Message size
• Message buffer (limited to, for example, 256 bytes) The content of the message buffer depends on the message mode. If the message mode is MsgGroupDefinitionMode, then the buffer contains an array of device names. If the message mode is CurrentStateMode or MessageMaintenanceMode, then the buffer contains messages provided by a control processor or a data provider.
MESSAGEJTYPE: defines message types sent by the MDS to the MM. E.g., PROCESS_ALARM_MSG, CONTROL_MSG and MSGGROUP_DEFINITI0N_MSG
MESSAGE_MODE_TYPE: defines all modes during which data messages are sent by the MDS to the MM.
E.g., MESSAGE_MAINTENANCE_MODE, CURRENT_STATE_UPDATE_MODE and MSGGROUP_DEFINITION_MODE
Format of Messages sent by the MM
The data structures described herein below represent outgoing messages from the MM to the MDS. The MM sends only one message in a message packet.
FROM_MM_MSG: defines the various types of a single message delivered from MM to MDS, and contains the following:
• Type of the message block (type of the union variant)
• Union of the different types; namely MDS_START_SESSION_MSG: used for the message block type
MDS_START_SESSION MDS_CLIENT_REQUEST_MSG: used for the message block types MDS_START_CURRENT_STATE_UPDATE, MDS_MESSAGE_MAITENANCE, MDS_TEMPORARY_DISCONNECT, MDS_RECONNECT_REQUEST and MDS_END_SESSION
MDS_RECEIPT_CONFIRMATION_MSG: used for the message block type MDS_RECEIPT_CONFIRMATION MDS_START_SESSION_MSG
MDS_START_SESSION_MSG: defines the data structure sent by the MM to indicate a session start, and contains the following:
• Name of the MM
MDS_CLIENT_REQUEST_MSG: defines the data structure sent by the MM. It is used for StartCurrentStateUpdate, MessageMaintenance, TemporaryDisconnect, ReconnectRequest, EndSession and ConfigQuery messages, and contains the following:
• Client Id generated by the MDS
MDS_RECEIPT_CONFIRMATION_MSG: defines the data structure sent by the MM to confirm receipt of a data message packet, and contains the following:
• Client Id generated by the MDS
• Packet Id
Data Messages received by the MM provided by the Control Processor or a Data Provider
MDS_MSG defines the data structure received by the MM and provided by a Control Processor or a Data Provider through MDS. These messages are received by the packet receiver 202. MDS_MSG is used to format a buffer in MDS__DATA_MSG if the message mode is CurrentStateMode or MessageMaintenanceMode, and contains the following:
• Header containing type, time and group id 0
• Union of the different message types (described herein below); namely 42491
Process Alarm Messages (MDS_ALARM_MSG)
MDS_MSG_HEADER: defines the header for data messages delivered by the MDS and contains the following:
• Message type
• Time / date of occurrence in 64-bit UTC
• Message group ID
MDS_ALARM_MSG: is a process alarm-specific part of a Data Message for a Process Alarm Message type, and contains the following information:
• Alarm type
• Control Processor name
• Alarm tag name
• Alarm type message
• Point number (valid for BLNALM and PID blocks only)
• Statement number (valid for sequence blocks only)
• Operational error (valid for sequence blocks only)
• Parameter name
• Inhibit print option
• Length of the loop ID field at the end of the message
• Alarm Acknowledgement State
• Monotonic time counter
• Time is valid flag
• Priority
• Step number (valid for sequence blocks only)
• Subroutine number (valid for sequence blocks only)
• Exception number (valid for sequence blocks only)
• Alarm limit (threshold)
• Value of the parameter causing the alarm condition
• Length of the block descriptor field at the end of the message • Length of the alarm message text field at the end of the message
• Length of the in/out field at the end of the message
• Length of the engineering units field at the end of the message
• Length of the state text field at the end of the message
• Text buffer holding the loop ID, block descriptor, alarm message text, in/out field, engineering units, and state text (not all are present for all messages)
Messages Sent from the MM to AMSs Running on Workstations
The following describes a set of exemplary message structures used to send messages from the MM to the AMSs running on the Workstations 108. These message structures represent messages sent from the MM to an Alarm Alert (AA) task. The Alarm Alert task is the part of the AMS that communicates with the MM via the application network 104. The data structures described herein below represent incoming messages to the AA from the MM. The MM concatenates multiple messages, up to MAX_MS GJPER-P ACKET, in one message packet and then sends the packet to the AA. The maximum size of a packet will be MAX_P ACKET_SIZE. By way of example, the MAX_MSG_PER_P ACKET is equal to 3, and the MAX_PACKET_SIZE is equal to 2048, but both values can be altered.
AMS-CONC AT_MS G: used in defining the message packets. This data structure contains the following:
• Common header for all MM to AA messages (AMS_CONCAT_MSG_HDR)
• Buffer for the concatenated messages (AMS_MM_MSG)
AMS_CONCAT_MSG_HEADER: contains information pertaining to the concatenated messages in the buffer. By way of example, the common header includes:
• Unique packet E)
• Array of indexes to the second through last messages in the buffer
AMS_MM_MSG: defines the delivered message and contains the following:
• Common header for all alarm messages (AMS_MESSAGE_HEADER) • Alarm message content (MM_TO_AMS_MSG)
AMS-MES S AGE_HE ADER: defines the data items common to all types of alarm messages and contains the following:
• Overall message type; 100 - process alarm message, 200 — system alarm message, or 500 - initialization message; 510 - CP status message
• Time/date of alarm occurrence represented in binary UTC
MM_TO_AMS_MSG: defines the various types of messages delivered from the MM to the AA. This data structure is the union of the different types of messages (described herein below); namely:
• Initialization messages (AMS_MM_INITIALIZATION_MSG ) . CP status messages (AMS_MM__CPSTATUS_MSG)
• Process alarm messages (AMS_PROCESS_ALARM_MSG)
With regard to each of the above-identified messages:
AMS_MM_BSfITIALIZATION_MSG: defines the initialization message format sent from the MM to the AA task. This is the first message sent by the MM after the MM connects to the AA and the AA accepts that connection, and contains the following: "
• MM name
• MM connectionless socket; AA will use this to send back its initial message
AMS_MM_CPSTATUS_MSG: defines the message format associated with control processor (CP) status messages. These messages are sent from MM to the AA task when a CP stops sending alarms or resumes sending alarms to the MM, and contains the following:
• CP address/name
• CP Status (0 - CP stopped sending alarms; 1 - CP resumed sending alarms)
• MM connectionless socket (used by the AA to send back its initial message)
AMS_PROCESS_ALARMJVISG: defines the process alarm message format sent from the MM to the AA task, and contains the following: • Alarm message type; used primarily for process alarm messages (e.g. HIABS, INFO)
• Address/Name of the CP generating the message
• Alarm tag name; support for nested compounds
• Tag name alias configured in MM
• Alarm name text
• Alarm type text (e.g. "HIABS", "INFO")
• Parameter that caused the alarm to occur
• Acknowledged state
• Alarm priority (e.g. 1, 2, 3, 4, 5)
• Analog alarms only; the alarm threshold for the parameter causing the, alarm condition
• Analog alarms only; the actual value for the parameter causing the alarm condition
• BLNALM and PID blocks only; point number
• Sequence blocks only; stmno, caseno, or timeout
• Sequence blocks only; operational error
• Sequence blocks only; step number
• Sequence blocks only; subroutine number
• Sequence blocks only; exception handler number
• Length of the Loop E) - Batch (max = 32)
• Length of the Block Description (max = 32)
• Length of the Alarm Text (max = 32)
« Length of the Engineering Units (max = 32)
• Length of the State Text (max = 32)
• Buffer for Loop ID, Block Description, Alarm Text, Engineering Units, and State Text
AMS_SYSTEM_ALARM_MSG: defines the system alarm message format sent from the MM to the AA task, and contains the following:
• Alarm message type (e.g. STATN, DEVICE, DISABL)
• ID of the station generating the message
• Alarm tag name; support for nested compounds
• System Monitor name
• Device ID
• Subsystem ID
• Acknowledged state
• Alarm priority (e.g. 1, 2, 3, 4, 5) • Length of the Alarm Text (max = 80)
• Length of the Extra Info (max = 80)
• Buffer for Alarm Text and Extra Info
Messages from AMS (Workstations) to the MM
The message structures described herein below are utilized by the AA tasks to send messages to the MM.
AMSJTO JVIMJVISG: defines the messages delivered from the AMS to the MM. This data structure is the union of the different types of messages. By way of example, an not limitation, one message type is an initialization message. However any of a variety of message types are contemplated. The AMS_AA_INITIALIZATION_MSG initialization message structure, supported by the more general AMS_TO_MM_MSG structure, is described herein below.
AMS_AA_INITIALIZATION_MSG: defines the initialization request sent from the AA to the MM3 is a request for the MM to begin delivering messages to restore the AA database with missed alarm messages, and contains the following fields:
• Identification (name/address) of a workstation upon which the AA resides
• Packet ID (i.e. >0 - ID of the last packet processed by the, AA task; -1 - Recover all alarms from the CPs; -2 — Do not recover; just send new alarms)
As an alternative to the above-described AMS/MM message formats, the following message formats are utilized to send alarm messages from the MM to the AA task running on a workstation. These message formats are also used to send process and system alarm messages to a printer (as a print command with an attached buffer containing the alarms to be printed).
ALARM_MSG: a buffer defined in a header definition (e.g., alarmmsg.h) is used to send process alarm messages from the MM to the AA (or alarm printer). S_APRNF: a buffer defined in a header definition (e.g., aprintf.h) is used to send user defined messages via APRINT to an alarm printer.
Having described the general functional components and message structures associated with the message management facility 100, attention is directed to a message manager configurator that is used to specify/tune the operation of the message management facility 100. The message manager configurator enables specifying the following:
• alarm messages in a message table, assigning aliases and command categories to process alarms,
• command categories, groups of alarms with the same behavior with respect to execution of external commands (see below),
• commands to be executed on occurrence of alarm messages, including the output of voice messages,
• action triggers, assigning action categories to blocks or any other appropriate process control structure maintained by a control processor (or process controller),
• action categories, building groups of blocks with the same behavior with respect to parameter actions on mode or event changes (see below),
• parameter actions (set new values to parameters, e.g. for reprioritization) and mode/event matrices of parameter actions,
• named modes and events assigned to CIN Blocks,
• mutually exclusive events,
• alarm shower parameters, and
• a name identifying the configured data set for message managers.
The configurator output, referred to as a "message manager configuration set", is stored in the form of an XML file. With reference to FIG. 3, the message manager configuration set that is used to build the configuration database 204 includes a message table 300, command categories table 310, command table 320, action trigger table 330, action category table 340, parameter action table 350, and general information table 360.
General Information 360 In an exemplary embodiment, the general information 360 includes: a configuration name, a definition of modes, a definition of events, and alarm shower parameters. As mentioned previously above, the message manager 100a utilizes alarm states of CBSf blocks to determine current values for mode and event variables. The numbers of configured modes and events define a 2-dimensional matrix organizing up to 32 fields (cells) for specifying resulting parameter actions. The parameter actions are potentially utilized for reprioritization, inhibition, and disablement of alarms. The data within the general information 360 contains the following information:
• matrix definition (one list defining the logical names and the CIN block associations for the different modes and one list defining the logical names and the CIN block associations for the different events)
• an indicator defining whether the events are mutually exclusive;
• indicators for the definition, including whether the matrices are one-dimensional (only modes or only events) or two-dimensional (both modes and events);
• the alarm shower parameters include, in addition to an alarm shower detection enabled/disabled toggle variable, parameters defining when an alarm shower is occurring. By way of example, the shower detection parameters stored in the configuration database 204 include: o number of unacknowledged alarms o period in which the unacknowledged alarms have to occur A threshold alarm priority parameter specifies an alarm priority level required for passing an alarm, by the message manager, to connected devices while in the alarm shower mode of operation. During an alarm shower, alarms having a priority below the threshold priority are not forwarded by the message manager to connected devices on the application network 104. Such alarm messages are instead discarded by the packet receiver 200 of the message manager 100a.
The above-identified alarm shower parameters are one example of many potential ways to suppress a sudden surge of alarms so that only ones meeting a particular priority threshold are passed along to devices. For example one may instead measure a shower based upon alarms passed to a particular device rather than all received alarm messages. Such modification, addresses the differing capabilities of various specific destinations on the application network 104 to handle high volumes of alarm messages. Also, the alarm threshold may be applied in a stepped manner such that as the number of unacknowledged alarms increases, the threshold priority raises (as a guard against setting too low a threshold priority). Furthermore, a further parameter facilitates specifying a minimum time period within which shower suppression will be turned on, once activated, to avoid excessive toggling between on/off shower suppression states.
With reference to FIG. 4, the message table 300, command categories table 310, and command table 320 facilitate specifying particular commands that are invoked by the (active) message manager 100a in response to receiving messages having a particular message ID. Message Table 300
The message table 300 includes a set of n message entries wherein each entry includes a set of message attributes that belong to a particular identified alarm message. Each entry contains, by way of example, the following information:
• Message ID (Compound, Block and Alarm type) which acts as a unique key;
• Alias name (enabling an alias to be assigned to an alarm messages before forwarding to a set of configured destinations on the application network); and
• (optional) Command Category ID that specifies a command categories table 310 entry associated with the message (including indicator for "not configured" if none is specified). The category ID is added to the received message before adding the message to the categorized messages queue 208.
The command category ID facilitates adding executable commands invoked through the message manager to the normal activity of forwarding alarm messages to designated destinations on the application network. In accordance with an exemplary embodiment, only one command category ID is assignable to a message. Thus, the properties of a single identified command category, if specified, can apply to a particular message table entry.
Command Categories Table 310 The command categories table 310 is populated by a set of m entries wherein each entry specifies attributes (e.g., executable commands) for each identified command category. By way of example, each entry in the table contains the following:
• Command Category ID, that acts as unique key for specifying the particular command category; and
• Up to two command IDs identifying entries in the command table 320 associated with particular executable commands (e.g., output a voice message) (including a "not configured" indicator).
Command Table 320
The command table 320 contains a set of j entries corresponding to the various commands invoked by the message manager 100a on occurrence of particular alarms specifying a particular command BD. Each command table 320 includes, for example, the following information:
• Command ID, that acts as unique key,
• Host where the command is executed (including a "not configured" indicator), and thus a separate entry is included for each host where a command is potentially executed; and β Command line to be executed including options and arguments (including a "not configured" indicator).
With reference to FIG. 5, the action triggers table 330, action categories table 340 and parameter actions table 350 contain configuration information relating to dynamically re-assigning priorities of particular alarms in accordance with mode changes or events received by the message manager 100. Action Triggers Table 330
The action triggers table 330 includes a set of r entries corresponding to particular blocks, for which actions (e.g., setting a new alarm priority) are to be invoked when the mode or event changes. Each entry contains the following information:
• Compound and Block, that together function as a unique key for a table entry (also function as the target compound and block for a parameter action specified 1
in an application object specified in an action category matrix evaluated in view of a current event/mode state);
• Action category ID specifying an alarm priority matrix within the action categories table 340 that is evaluated to determine one or more parameter actions.
Action Categories (Matrices') Table 340
The s matrices within the action categories table 340 contain parameter action IDs. A particular cell is accessed, within a matrix (corresponding to a specified action category ID), based upon a current mode and/or event, and the parameter action ID within the selected cell determines a group of one or more parameter actions accessed within the parameter actions table 350. Each matrix entry is associated with:
• An Action Category ID, that acts as a unique key for a selected matrix;
• Up to 32 mode/event-specific cells with parameter action IDs (e.g., specifying a new priority for an alarm) (including a "not configured" indicator)
Parameter Actions Table 350
The parameter actions table 350 contains t entries specifying groups of m parameter actions, that have to be performed when a state alarm occurs which is configured to change the value of a mode or event variable. Each of the t entries in the table contains the following information:
• Parameter Action ID (there may be multiple "m" entries in the parameter actions table having the same parameter action ID resulting in the execution of multiple parameter actions on a particular specified compound and block in response to an event or mode change),
• Name of the parameter, which has to be changed,
• value, to which the parameter has to be changed
List of Application Object Connections QFIG. 6)
During runtime of the message manager 100a, parameter actions within the parameter actions table 350 are accessed/triggered, by changes to a mode and/or event state, to change values on target parameter instances maintained by control processors 106. Such parameter actions are carried out, for example, using application objects. FIG. 6 illustratively depicts the construction of an application object connection name corresponding to an application object connection. The application object connection name is thereafter used by the message manager 100a to pass a value invoking a parameter action on a specifically identified parameter (e.g., set a new alarm priority value on a particular compound/block/alarm combination). In an exemplary embodiment, each application object connection name 600 is established from the following application object connection configuration information:
• a configuration name 610, which is unique for each message management facility 100 (including, for example, a redundant pair of Message Managers),
• a unique number identifying a compound 620 (that is also identified by name),
• a name identifying a block 630, and
• a name of a parameter 640.
In the exemplary embodiment the configuration name appended to the compound number makes up a unique application identification, the block name comprises the object part, and the parameter name comprises the attribute part of the whole application object connection name which is specified in the form of A:O. A (applicationiobjectattribute). Changes in a previously saved configuration potentially removes parameter actions from the parameter action table 350. In response to such removal, corresponding application object connections are also removed. Removing an existing application object connection is done by overwriting a previously configured application object connection entry in the configuration database 204 with a default value.
Having described a set of components making up a message management facility configuration file with reference to FIGs. 3-6, a set of examples of configuration data included within such files is provided herein below, hi the illustrative example, the configuration information is presented in the form of comma separated values (CSV) which are readily parsed and used by a number of editor programs.
The general information 360 includes four keyword lines containing special keywords as the first entry in the line. Each of these four key- word lines mark the beginning of a particular section of the general information 360. The first line of the general information contains a first keyword line that specifies whether alarm shower detection is switched on. The two alternatives comprise, for example, "ALARM_SHOWER_DETECTION_ON" and
"ALARM_SHOWER_DETECTION_OFF." If alarm shower detection is specified to be on, the first keyword line is followed by a line, before the second keyword line, having three values. The three values represent the alarm shower parameters: number of unacknowledged alarms (range 1 to 10,000), time period in milliseconds (range 1000 to 60000) and threshold alarm priority (range 1 to 5).
The second keyword line of the four keyword lines determines whether the modes , are displayed in rows or columns of an action categories matrix (displaying priorities for, an alarm according to present mode/event status). This display option facilitates displaying the mode/event matrices based on the number of modes and the number of events. The content of the second keyword line is either
"DISPLAY_MODES_IN_ROWS" or "DISPLAY_MODES_IN_COLUMNS". After the second keyword line and before the third keyword line, multiple lines are inserted that contain three values defining the supported modes (one mode per line).
A third keyword line determines whether listed events are mutually exclusive. The content of the second keyword line is either ΕVENTS_MUTUALLY_EXCLUSrVE" or
"MULTIPLE_EVENTS_AT_THE_SAME_TIME)". Between the third keyword line and the fourth keyword line, multiple lines are provided that contain three values defining the events (one event per line).
A forth keyword line determines whether the matrices are one-dimensional or two-dimensional. One-dimensional matrices are defined either by only modes or by only events, two-dimensional matrices contain cells defined by both modes and events. The text of the fourth keyword line is either ONLY_MODES, ONLY_EVENTS or MODES_AND_EVENTS. If ONLY_MODES is specified, then an error is generated at validation time if there are any lines (defining events) between the third and the fourth keyword lines. Similarly, if ONLY_EVENTS is specified, then an error is generated at validation time if there are any lines (defining modes) between the second and the third keyword lines. General Information Example:
ALARM__SHOWER_DETECTION_ON 50,100,2
DISPLAY_MODES_IN_COLUMNS MODECOMPOUND,BLOCKMAINT,MAINTENANCE MODECOMPOUND,BLOCKSTART,START MODECOMPOUND,BLOCKNORMAL,NORMAL MODECOMPOUND,BLOCKSHUT,SHUTDOWN EVENTS_MUTUALLY_EXCLUSIVE EVNTCOMPOUND,BLOCKO01,TRIGGER EVNTCOMPOUND,BLOCKOO2,STOP EVNTCOMPOUND,BLOCK003,HIGH PRIORITY EVNTCOMPOUND,BLOCKOO4,NOTICE EVNTCOMPOUND,BLOCKOO5,SPECIAL EVENT MODES_AND_EVENTS
The message table file 300 contains five entries per line separated by commas. All four separators (commas) are mandatory. Entries may be empty for data exchange, but may be required later for correct validation. The first three entries in a line contain the message ID including: a compound ID, a block ID and alarm type ID. The fourth entry specifies a command category ID for the message. The fifth entry represents the alias name. As shown in the first line of the example below, if the alias name contains any comma this entry is quoted. If the alias contains any quote symbol, the whole alias is quoted and the internal quote is doubled.
Message Table Example:
IACOMPOUNDOI1BLOCKNAMEOOI7HIOU^AOOI, "Alias, incl. "", "" (commas&quotes) " IACOMPOUNDOl.BLOCKNAMEO02,LOABS,CATEG003,Alias name without any comma IACOMPOUNDO2,BLOCKNAMEO01,HIABS, ,No category defined IACOMPOUNDO3,NEWBLOCK,LODEV,NOALIAS, IACOMPOUNDOS1BLOCKNAMEOOI7HHABS7COOS,Alias Text for this Alarm.
The command categories table 310 contains three entries per line separated by commas. The separators are mandatory. Entries may be empty for data exchange, but may be required later for correct validation. The first entry specifies a command category ID. The second and third entries identify up to two commands (by name/identifier) to be executed for alarms specifying the command category ID identified in the first entry of the line. Command Categories Table Example:
CATEGOOS7APPLICATIONA7VOICEMSGOI
AO01,APPLICATIONS,
CO03, ,VOICEMSGO2
CO04,APPLICATIONC,VOICEMSG03
C005, ,VOICEMSG04
NOALIAS,APPLICATIOND,
A002, ,
A003 , , VOICEMSGO 5
STRING-15-CHARS , ,
The command table 320 contains three entries per line separated by commas. Both separators are mandatory. Entries may be empty for data exchange, but may be required later for correct validation. The first entry contains the command ID (specified by entries of the command category table 310). The second entry contains the hostname of a network node that will execute the command/action. The third entry contains command line text (including any parameter values needed to invoke a desired action). If the command line contains a comma, then the command line entry is quoted. If the command line contains any quote symbol, the command line is quoted and the internal quote is doubled.
Command Table Example:
VOICEMSG01,WP07Cl,C:\Prog\WinMediaPl\mplayer2.exe/Play CheckAlarm01.wav VOICEMSG02,AWXNTl,C:\Prog\WinMediaPl\mplayer2.exe/Play HighPriority.wav VOICEMSG03,AWXNT2,C:\Prog\WinMediaPl\mplayer2.exe /Play Horn.wav VOICEMSG04,WPO8D2,C:\Prog\WinMediaPl\mplayer2.exe /Play Attention.wav VOICEMSG05,WPAAOO,C:\Prog\WinMediaPl\mplayer2.exe /Play Music.wav APPLICATIONA,WPABO0, "C:\Prog\AppendLogEntry.exe""AlarmTypeOlOccurred""" APPLICATIONS,AWClDl, "C:\Prog\AppendLogEntry.exe""AlarmType02Occurred""" APPLICATIONC,AWC2D1, "C:\Prog\AppendLogEntry.exe""AlarmType03Occurred""" APPLICATIOND,AWC3D1, "C:\Prog\CopyLog.exe»
The action triggers table 330 contains three entries per line separated by commas. Both separators are mandatory. Entries may be empty for data exchange, but may be required later for correct validation. The first entry contains a compound ID and the second entry identifies a block ID for which actions have to be triggered when a mode or event changes. The third entry contains an action category ID specifying an entry within the action categories table 340.
Action Triggers Table Example: IACOMPOUNDOl , BLOCKNAMEOOl , TABLEAOl IACOMPOUNDOl , BLOCKNAME002 , TABLECOl IACOMPOUNDOl , BLOCKNAME003 , EXCEPTIONTABLE IACOMPOUNDOl , BLOCKNAME 004 , TABLEDOl
The action categories table 340 contains a variable number of entries dependent on the number of modes and the number of events. The total number of entries per line is equal to (number-of-events * number-of-modes) + 1. All separators are mandatory. Entries may be empty during data exchange, but may be required later for correct validation. The first entry contains the action category ID (referenced by entries in the action triggers table 330). AU the remaining entries of the line (from the second to the last) contain the parameter action IDs (corresponding to entries in the parameter actions table 350) that are stored in a matrix corresponding to the action category ID. The number of modes and the number of events depend on the current configuration in the general information file where the modes and events are defined. Therefore, for the import of the action categories table 340 into the message management facility 100, the number of modes and events must already be configured as needed for the action categories in the file. If the general information table 360 is empty, then a file containing the general information is read to obtain a number of events and number of modes. The data is thereafter stored within a table mode by mode including all events for each mode.
Example Action Categories Table (note: the names assigned to the first line such as MxEy are chosen to demonstrate the how the elements of each mode/event matrix are stored rather than the actual values stored at the location.):
TABLEAOl,MlEl,M1E2,M1E3,M1E4,M1E5,M2E1,M2E2,M2E3,M2E4,M2E5,M3E1,M3E2,
M3E... TABLEBO1,REPRl,NOINHIB, , , ,REPR2, ,R2NOD0, ,INHALMGRP2,REPR3,INHIB, , , ,
REPR4... TABLECO1,REPRl,INHIB,RlNODO, INHALMGRP1,INHALM2,REPR2, ,R2NOD0, , INHALM2,
REPR3, ...
EXCEPTIONTABLE, REPRl , REPR2 , REPR3 , REPR4 , REPR5 , , , , , , , , , , , , , , , TABLEDOl , , INHIB , , , , , NOINHIB , , , , , INHIB , , , , , NOINHIB , , ,
The parameter actions table 350 contains three entries per line separated by commas. Both separators are mandatory. Entries may be empty for data exchange, but may be required later for correct validation. The first entry contains a parameter action ID referenced by a matrix entry from the action categories table 340. The second entry contains a parameter name. The third entry contains a new value for the parameter identified in the third entry. The parameters for which new values are set include, by way of example, alarm priorities. However, any parameter value is potentially modified using this mode/event-driven value selection procedure.
Parameter Actions Table Example:
MlEl,HHAPRI,3 MlEl,OUTPRI,2 M1E2,HHAPRI,1 M1E3,HHAPRI,2 M1E4,HHAPRI,4 „ MlE5,MEASPR,2
M4E1,MEASPR,2 M4E2,MEASPR,3 M4E3,OUTPRI,1 M4E4,OUTPRI,2 M4E5,MEASPR,4 REPRl,MEASPR7I REPR2,MEASPR,2 REPR3,MEASPR,3 REPR4,MEASPR,4 REPR5,MEASPR, 5 INHALMGRPl,INHIB, 0 INHALMGRP1,INHALM,48 INHALMGRP2,INHIB,1 INHALMGRP2,INHOPT,1 INHALM2, INHIB, 1 INHALM2,INHOPT,2 RlNODO,MEASHL,80 R2NOD0,MEASLL,10 R3YESD2,MEASPR,3 R3YESD2, INHIB,1 R3YESD2, INHOPT,2 INHIB, INHIB,1 NOINHIB, INHIB, 0
Having described the set of configuration tables created/edited by a message manager configurator for the message management facility 100, attention is directed to a set of graphical user interfaces associated with the message manager configurator that displays the above-described configuration tables in a readily understood manner for a system developer/engineer. In the illustrative example, the tables are accessed by selecting one of a set of correspondingly named tabs on the configurator application's main window. The content of each exemplary graphical user interface has been previously described and therefore will not be repeated here. Turning initially to FIG. 7 an exemplary graphical user interface depicts the information associated with the general information table 360. The page displaying the contents of the general information table 360 comprises four groups of data: a configuration name (e.g., MMGRPl), the presently configured alarm shower parameters (unacknowledged alarms - 50, unacknowledged alarm counting period — 100 milliseconds, and threshold priority - 2), a set of mode definitions, and a set of event definitions). Alarm shower detection is activated/de-activated by toggling the checkbox next to the text "Alarm Shower Detection" and then applying the new configuration to the message management facility 100.
With regard to the portion of the graphical user interface depicted in FIG. 7, identified by "Mode Definition", a list of contact input (CIN) blocks defines the modes used for parameter actions (to set new values to parameters). Each entry in the list contains a compound and block supplemented with a mode name used as a title for a row/column of a mode/event matrix. The compound can be selected from a list of all compounds available in the system, or typed in directly. Once a compound is entered the block is similarly selected. The number of elements in the mode list defines the number of modes and thus one dimension of the mode/event matrix used for determination of parameter actions.
The check box "Only Modes" at the bottom of the mode list allows specifying the matrices for parameter actions to be one-dimensional and defined only by modes (no event can be defined). In an exemplary embodiment, the mode/event matrices are limited to 32 cells. Therefore, if "Only Modes" is checked, the number of modes must be less or equal than 32. If "Only Modes" is unchecked the product of multiplying the number of modes by the number of events specified in the general information for a particular configuration is less or equal than 32. So the maximum number of supported modes is limited by a previously configured number of events. Appending and inserting modes is disabled when the maximum allowed modes is reached.
With regard to the portion of the graphical user interface depicted in FIG. 7, identified by "Event Definition", a list of CIN blocks defines the events used for parameter actions (to set new values to parameters). Each entry in the list contains a compound and block supplemented with an event name used as a title for a row/column of the mode/event matrix. The compound can be selected from a list of all compounds available in the system, or typed in directly. Once a compound is entered the block is similarly selected. The number of elements in the list defines the number of events and thus one dimension of the mode/event matrix used for determination of parameter actions.
The check box "Only Events" at the bottom of the list allows specifying the matrices for parameter actions to be one-dimensional and defined only by events (no mode can be defined). As mentioned above, in an exemplary embodiment, the mode/event matrices are limited to 32 cells. Therefore, if "Only Events" is checked, the number of events must be less or equal than 32. If "Only Events " is unchecked the product of multiplying the number of modes by the number of events specified in the general information for the particular configuration is less or equal than 32. So the maximum number of supported events is limited by a previously configured number of modes. The buttons to append or insert further events are disabled as soon as the maximum is reached.
Turning to FIG. 8, an exemplary graphical user interface for displaying/specifying the contents of the message table 300 is depicted. As explained above, the message table 300 specifies a command category and/or an alias name for a message. Each message is uniquely identified by compound, block and alarm type. All three sub-fields must be filled out to avoid a validation error.
With regard to filling out the fields of an entry within the message table 300, a command category ED and/or an alias name is assigned to each displayed message entry. If a command category is not filled, then no command category is assigned to the message. If a command category ID is configured it is used as a search key for an entry within the command categories table 310. The compound name for a message entry is specified from a list of all compounds which are available in the system, or alternatively, typed in directly. Once a compound is entered a block is similarly selected. Thereafter, an alarm associated with the selected block is similarly designated. The command category E) may either be selected from a list or typed in directly. Furthermore, an optional alias name (a text message describing an alarm), if configured, is added by the packet receiver 200 in the message manager 100a to a received message at runtime.
Turning to FIG. 9, an exemplary graphical user interface for displaying/specifying the contents of the command categories table 310 is depicted. As explained above, the command categories table 310 includes a set of entries corresponding to classes of messages having a same behavior with regard to invoking specific commands (up to two) for execution. Examples of commands initiated by the message manager 100a injesponse to received messages include voice messages and external commands (directed to another machine such as one of the workstations 108 on the application network 104. With regard to playing a voice message, a command is invoked on a media player with an appropriately identified voice file (e.g., a .wav file stored on the target system). Configuring voice messages is handled in the same way as other executable commands.
Each entry in the exemplary command categories graphical user interface depicted in FIG. 9 includes up to two command IDs for each listed command category BD. The actual command commands corresponding to the command IDs are stored in the command table 320. Each cell in the columns "Command IdI" and "Command Id2" of the command category table allows alternatively the selection of an already defined command from a previously defined list or the direct input of a command identifier to be defined later.
Turning to FIG. 10, an exemplary graphical user interface provided by the configurator displays a list of command entries stored within the command table 320. As explained above, the command table defines commands triggered by reception of a particular message specifying a command category ID that in turn specifies a particular command ID corresponding to that command. Each command entry is identified by a unique name that is displayed in the Command ID column of the user interface. An Executing Host column displays the name assigned to the host designated to execute the command (e.g., play the voice message). If no host is specified, then the host is the local host upon which the message manager executes. The Command column displays a command line executed by the identified host. Entries are edited (added, deleted, modified) manually by a user via the exemplary user interface.
Turning to FIG. 11, an exemplary configurator graphical user interface is depicted that facilitates viewing and editing entries within the action triggers table 330. As explained above, the action triggers table facilitates attaching action categories to blocks for which parameter actions (e.g., specifying a new alarm priority value) are performed when a mode or event changes. A Compound column and Block column together uniquely identify a block upon which the parameter action is to be performed. An Action Category ID column specifies a unique action category ID that specifies a particular action category (matrix) to be evaluated to determine a parameter action ID that, in turn specifies one or more parameter actions performed on the specified compound:block combination.
Referring to FIG. 12, an exemplary configurator graphical user interface displays the contents of a set of entries within the action category table 340. As described above, each entry of the action category table 340 defines a mode/event matrix having cells specifying parameter action IDs (further defined in the parameter actions table 350). In the illustrative graphical user interface, a list of all currently configured action category matrices is depicted under the section of the user interface entitled "Action Category ID".
When a user selects one of the listed entries under the Action Category ID, a corresponding mode/event matrix is displayed in the right-side panel of the graphical interface. The illustrative matrix for the currently selected ACtg-1 action category, is a two-dimensional matrix including four modes (identified in the column headings) and five events (identified at the head of each row) - resulting in a total of 20 potential cells for specifying a parameter action ID.
The matrix is one-dimensional, if either "Only Modes" or "Only Events" is checked on the "General" page of the configurator user interface. If "Only Modes" is checked, one cell for each mode is displayed and there is no event title above or before the cells. If "Only Events" is checked, one cell for each event is displayed and there is no mode title above or before the cells. With regard to editing the content of the matrices, the graphical user interface allows selecting a previously defined parameter action from a list box or directly inputting a parameter action identifier — which is defined later.
With reference to FIG. 13, an exemplary configurator graphical user interface is displayed for accessing/editing the contents of the parameter actions table 350. As explained previously above, the values of parameters associated with a particular block on one of the control processors 106 can be changed by the message management facility 100 in response to a change to the value of a mode or event variable. Setting a parameter values on the block is referred to herein as a parameter action. One use of such parameter actions is setting a new priority on an alarm parameter for a block.
A parameter action ID column of the exemplary user interface identifies parameter action IDs for parameter actions stored in the parameter actions table 350. As indicated in the illustrative example, the parameter action ID values are not unique and thus a single parameter action ID can result in changing multiple parameters on a block. A group of parameter actions invoked at a same time are assigned a same parameter action ID. During configuration, a user may write all values directly into the parameter action table cells.
In an embodiment, the configuration information described herein above is stored in the form of an XML file. At startup, the message manager 100a parses the XML file rendered by the configurator and stores resulting alarm and message management configuration information in the configuration database 204.
Having described the general functional components, data structures and configuration interfaces for a message management facility, attention is now directed to steps performed by the message management facility to process received messages. Turning initially to FIG. 14, a set of steps summarize the processing of received messages including alarms. In response to receiving a message, the packet receiver process 200 initially applies alarm shower detection/suppression procedures to determine whether to discard the received message (a discarded alarm message will not be passed on to its intended destination on the application network 104). In particular, at step 1400 if alarm shower detection is enabled, then control passes to step 1410 wherein an alarm shower state (i.e., detected/not detected) parameter value is determined (see, FIG. 15 for an exemplary method for determining an alarm shower state). If the alarm shower parameter indicates that an alarm shower was indeed detected, then control passes from step 1410 to step 1420. At step 1420 a priority of the received alarm message is compared to an alarm priority threshold value. If the priority of the received alarm message does not meet the alarm priority threshold value, then control passes to step 1425 wherein the alarm message is discarded instead of passing the alarm message to the intended destination (e.g., a workstation on the application network 104). However, if the priority assigned the received message exceeds the threshold priority, then control passes from step 1420 to step 1430 wherein further tests are commenced to determine which of the available message queues to place the received message. If at step 1400, alarm shower detection is disabled, then control passes directly to step 1430. Furthermore, if at step 1410 an alarm shower detected state has not been set, then control passes to step 1430.
At step 1430 the packet receiver 200 consults the message table 300 to determine whether a corresponding message entry can be found. If at step 1430 the received message's ID cannot be located in the message table 300, then control passes to step 1435 wherein the received message is placed within the modified messages queue 210 without modifications by the packet receiver 200. As previously mentioned, the device server 220 retrieves the messages from the modified messages queue 210 and passes them to one or more destinations in accordance with destinations identified in the device database 202. If, at step 1430, the received message's ID is located in the message table 300, then control passes to step 1440.
At step 1440, an alias (if provided in the entry within the message table 300) is added to the received message before adding the entry to the modified messages queue 210. Next, at step 1450 if the packet receiver 200 determines the received message is associated with a category (i.e., the corresponding entry in the message table 300 includes a category ID), then control passes to step 1455. At step 1455 an additional copy of the received message, along with its associated category ID (obtained from an entry in the message table 300), is placed in the categorized messages queue 208. Processing of an entry from the categorized messages queue 208 (described herein below with reference to FIG. 16) results in the invocation of a command/executable program by the message manager (e.g., message manager 100a). Such command/executable program can be of virtually any type. However, one example of such command results in the initiation of a voice message stream play sequence by a set of nodes on the application network 104 to provide an audible warning when a particular alarm message is received.
If the message is not associated with a category ID, then control passes from step 1450 to step 1460 (also entered from step 1435 described herein above). At step 1460 if the received message is a variable determination message (i.e., one providing notification of an event/mode change), then control passes to step 1465 wherein a copy of the received variable determination is placed in the variable determination messages queue 206 for further processing. Processing entries retrieved from the variable determination messages queue, e.g., updating alarm priorities in response to events/mode changes, is discussed further herein below with reference to FIG. 17. Finally, if the message is not a variable determination message, then control passes from step 1460 to the End.
Turning to FIG. 15, a set of steps are summarized that describe an exemplary way of carrying out the alarm shower detection aspect of an exemplary message management facility. The shower detection procedure is responsible for setting an "alarm shower detected" parameter under certain circumstances. Once detected, the packet receiver discards alarm messages that do not meet a pre-set threshold priority.
The set of steps described herein below are intended to describe an exemplary way in which to detect alarm shower conditions — as well as persist an alarm shower condition parameter value once such shower conditions have been detected. Those skilled in the art will readily appreciate that there are a variety of ways in which to carry out such shower detection and persist a shower detection parameter value once a particular shower state is detected. In the exemplary method, at the end of an alarm count period (determined by the alarm period parameter discussed herein above) control passes to step 1500 wherein an alarm counter value for the just completed period is determined. Thereafter, at step 1510 if the alarm counter value exceeds a configured number of alarms (a maximum number of received alarms permitted in the alarm count period by the message manager without triggering an alarm shower condition), then control passes to step 1520 wherein the alarm shower detection parameter is set to indicate the presence of an alarm shower. As noted above in the description of FIG. 14, when the alarm shower detection parameter is set, messages with a priority lower than a currently configured threshold priority are discarded by the message manager 100a. At step 1540 the alarm counter is reset and a next alarm count period is started. Thus, the alarm shower "detected" status is maintained for at least one alarm count period once detected.
Alternatively, if the alarm counter value does not exceed the configured number of alarms, then control passes from step 1510 to step 1530. At step 1530 the alarm shower detection parameter is reset to indicate that alarm shower conditions were not present in the just completed alarm count period. Control then passes to step 1540 wherein a next alarm count period is commenced. Thus, in the exemplary embodiment, the alarm shower parameter state is based upon a just completed count period, and a current alarm shower parameter state will persist until a next count period is completed.
Turning to FIG. 16, a set of steps summarize processing a categorized message which is used to invoke one or more commands on a particular identified host (including the message manager 100a in the event that no host is specified). During step 1600 the calculation and dynamic filtering process 228 retrieves a categorized message from the categorized messages queue 208 and the associated command category ID is determined. Thereafter, at step 1610 the command category ID is applied to the contents of the command categories table 310 to identify one or more executable command IDs (see FIG. 9 for exemplary table 310 contents). Next, at step 1620 the command IDs identified during step 1610 are applied to the contents of the command table 320 (see FIG. 10 for exemplary table 320 contents). Thereafter, at step 1630 the calculation and dynamic filtering process 228 initiates execution of a command line (or any other executable command) in accordance with the contents of entries in the command table 320 corresponding to the command IDs identified during step 310. The command can be a locally executed command (on the message manager 100a) or alternatively on a host identified in the "executing host" sub-field of an entry in the commands table 320. Turning to FIG. 17, a set of steps are summarized for processing messages retrieved from the variable determination messages queue 206. The calculation and dynamic filtering process 228 retrieves a variable determination message from the variable determination messages queue 206 and an event/mode change (current event/mode state) is determined.' Thereafter, the steps identified in FIG. 17, are performed to apply the current event/mode state to each entry in the action triggers table 330 (see FIG. 11 for a representative set of action trigger table entries) to render and execute a set of parameter actions on corresponding compound/block/parameter combinations on the control processors 106 of the control network 102. WMJe the present example comprises initiating changes to parameter (e.g., priority) values on identified control blocks maintained by control processors 106, this activity can be generalized to any particularized actions invoked in response to events/mode changes that render a particular event/mode state.
At step 1700, the action category ID specified for a particular entry in the action triggers table 330 is applied to the action categories table 340 to locate a particular mode/event matrix corresponding to the action category ID (see FIG. 12). Thereafter, at step 1710 the present mode/event state is applied to the particular referenced mode/event matrix to determine a parameter action ID, if any, corresponding to a cell within the referenced mode/event matrix corresponding to the present mode/event state. As mentioned above, in the case where events are not mutually exclusive, a highest priority event determines the selection of a cell in the mode/event matrix. Otherwise, the most recently registered event controls.
At step 1720, if the accessed cell in the mode/event matrix is empty, then control passes to the End. Otherwise, control passes to step 1730 wherein the parameter action ID determined during step 1710 is applied to the parameter actions table 350 (see FIG. 13) to identify one or more entries (corresponding to the parameter action ID) that specify the identified parameter action ID. Thereafter, during step 1740, the calculation and dynamic filtering process 228 initiates executing application objects specifying parameter/value combinations in accordance with the contents of entries in the parameter actions table 350 identified during step 1730. When building application objects the source of a designated compound/block is the entry in the action triggers table 330 accessed during step 1700. Upon completing processing of the particular action trigger table entry, control passes to the End.
With regard to the steps described in association with FIG. 17, it is noted that while virtually any type of parameter can be set on a control block (or similar control processor program module/structure), a particularly useful application of the ability to designate certain parameter values for certain mode/event combinations is modifying alarm priorities. Furthermore, the functionality of using mode/event changes to drive responsive parameter actions initiated by the message manager 100a can be generalized to performing any of a variety of actions, including invoking executable commands, thereby creating/supporting a dynamic process monitoring/control environment.
The structures, techniques, and benefits discussed above are merely exemplary embodiments of the invention. In view of the many possible embodiments to which the principles of this invention may be applied, it should be recognized that the embodiments described herein with respect to the drawing figures are meant to be illustrative only and should not be taken as limiting the scope of invention. For example, those of skill in the art will recognize that some elements of the illustrated embodiments shown in software may be implemented in hardware and vice versa or that the illustrated embodiments can be modified in arrangement and detail without departing from the spirit of the invention. Moreover, those of skill in the art will recognize that the disclosed principles are not limited to any particular local area network protocols and/or topologies. Therefore, the invention as described herein contemplates all such embodiments as may come within the scope of the following claims and equivalents thereof.

Claims

What is claimed is:
1. A message management facility within a node, in a process control network environment, separate from a control processor for routing a stream of messages received from the control processor to a set of supervisory destinations, the message management facility comprising: a message receiver for receiving a message including a message group ID field; message routing information comprising a set of message routing entries, wherein each routing entry includes: a message group ID value, and a set of message routing destinations for received messages specifying the message group ID; and a destination server for transmitting the message received by the message receiver to one or more network destinations in accordance with an ID specified in the message group ID field and a set of message routing destinations specified in a corresponding routing entry of the message routing information.
2. The message management facility of claim 1 wherein the messages comprise alarm messages generated by the control processor.
3. The message management facility of claim 1 wherein the control processor and a message routing destination are located on two distinct networks, and wherein the alarm management facility bridges the two distinct networks.
4. The message management facility of claim 3 wherein the message management facility operates on a networked node comprising at least a control network interface for receiving messages from the control processor via a control network, and an application network interface for transmitting messages to message routing destinations.
5. The message management facility of claim 4 wherein the routing destination is a workstation.
6. The message management facility of claim 4 wherein the routing destination is a message printer.
7. The message management facility of claim 4 wherein the routing destination is a message database.
8. The message management facility of claim 4 wherein the received messages comprise alarm messages, and wherein the alarm messages are received by the control network interface within message packets comprising potentially multiple alarm messages.
9. The message management facility of claim 1 further comprising a message definition table, wherein an entry in the message definition table includes an alias field supporting designating a text string for a received message having a message ID corresponding to the entry in the message definition table.
10. The message management facility of claim 1 further comprising a message definition table, wherein an entry in the message definition table includes an command category ID field supporting designating executable commands for a received message having a message ID corresponding to the entry in the message definition table.
11. The message management facility of claim 10 further comprising a command category processor that initiates executing a command specified for a received message having a message ID value corresponding to an entry within the message definition table.
12. The message management facility of claim 11 further comprising a command table comprises a set of executable command entries, and wherein an executable host field within an entry in the set of executable command entries specifies a host upon which a specified command is executed.
13. The message management facility of claim 1 further comprising an event/mode status message processor that initiates executing a set of actions based upon a change in event/mode specified in a received event/mode status message.
14. The message management facility of claim 13 wherein individual actions of the set of actions comprise specifying a parameter value on an application object maintained by the control processor.
15. The message management facility of claim 1 wherein the message management facility further comprises alarm shower suppression functionality that monitors quantity of alarm messages received from a control network and applies a criterion to limit passing alarm messages to destinations in response to detecting an alarm shower condition.
16. A message monitor within a node, in a process control network environment, separate from a control processor for monitoring a stream of messages received from the control processor and initiate executing a command in response to detecting particular identified messages in the stream of messages, the message monitor comprising: a message table including a set of message table entries, each entry comprising: a message ID5 and a command ID; a message receiver including a message monitoring functionality for: receiving a message including a message ID value, and identifying a categorized message by locating an entry in the message table corresponding to the received message; and command execution functionality that initiates executing a command associated with the command ID, of the entry in the message table for the categorized message, in association with the message receiver identifying the categorized message.
17. The message monitor of claim 16 wherein identifying the categorized . message is carried out by comparing the message ID value of the received message and a message ID value specified by an entry in the message table.
18. The message monitor of claim 16 wherein the message monitor additionally includes message routing functionality for routing the stream of messages received from the control processor to a set of supervisory destinations.
19. The message monitor of claim 16 wherein the command ID comprises a command category ID that corresponds to a set of executable commands identified in a corresponding entry within a command category table.
20. The message monitor of claim 19 further comprising a command table that includes a set of executable command entries referenced by entries in the command category table.
21. The message monitor of claim 20 wherein the executable command entries include an executable host field that identifies a host upon which a specified command is executed.
22. The message monitor of claim 16 wherein the command specifies launching an executable program.
23. The message monitor of claim 16 wherein the command specifies playing a stored voice message.
24. The message monitor of claim 16 wherein the messages comprise alarm messages issued by control processors.
25. A status message monitor within a node, in a process control network environment, separate from a control processor for monitoring a stream of messages received from the control processor and initiate executing a command in response to detecting particular identified status messages in the stream of messages, the message monitor comprising: a message receiver including a message monitoring functionality for identifying status changes relating to modes/events specified in a received message; and initiating executing actions in accordance with a current mode/events status in view of the received message.
26. The status message monitor of claim 25 wherein the actions executed in accordance with the current mode/events status comprise reprioritizing alarms issued by the control processor.
27. The status message monitor of claim 26 wherein reprioritizing alarms is carried out by the status message monitor specifying a parameter value on an application object maintained by the control processor.
28. The status message monitor of claim 25 wherein the received message comprises a state alarm issued by the control processor.
29. The status message monitor of claim 25 further comprising a table of matrices that define categories of actions initiated when a particular mode/event state is entered.
30. The status message monitor of claim 29 wherein the actions comprise parameter actions that modify the values of specified control blocks hosted by the control processor.
31. A message management facility within a node, in a process control network environment, separate from a control processor for regulating flow of a stream of messages, received from the control processor to a set of supervisory destinations, in response to sensing a message shower condition, the message management facility comprising: a message receiver for receiving a stream of messages including a priority value; a destination server for transmitting messages from the stream of messages received by the message receiver to one or more network destinations; and a message shower condition detector for detecting message shower conditions, and wherein a message shower suppression criterion, invoked in response to detecting message shower conditions, is applied to the stream of messages to limit passing messages to the network destinations via the destination server.
32. The message management facility of claim 31 wherein the message shower suppression criterion requires discarding messages from the control processor having a priority below a threshold priority.
33. The message management facility of claim 31 wherein the messages comprise alarm messages generated by the control processor.
34. The message management facility of claim 31 wherein the control processor and the one or more network destinations of the received messages are located on two distinct networks, and wherein the alarm management facility bridges the two distinct networks.
35. The message management facility of claim 34 wherein the message management facility operates on a networked node comprising at least a control network interface for receiving messages from the control processor via a control network, and an application network interface for transmitting messages to message routing destinations.
36. The message management facility of claim 35 wherein the routing destination is a workstation.
37. The message management facility of claim 31 wherein message shower conditions are detected by counting alarm messages received by the message receiver during a message count period and comparing the number of received alarm messages during the period to a shower threshold count.
38. The message management facility of claim 37 wherein a message shower detected state, once entered, persists until a next message count period completes.
PCT/US2005/042491 2004-11-26 2005-11-23 Message management facility for an industrial process control environment WO2006058090A2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN2005800462866A CN101128812B (en) 2004-11-26 2005-11-23 Message management facility for an industrial process control environment
EP05852079A EP1836594A4 (en) 2004-11-26 2005-11-23 Message management facility for an industrial process control environment

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/998,202 2004-11-26
US10/998,202 US20060168013A1 (en) 2004-11-26 2004-11-26 Message management facility for an industrial process control environment

Publications (2)

Publication Number Publication Date
WO2006058090A2 true WO2006058090A2 (en) 2006-06-01
WO2006058090A3 WO2006058090A3 (en) 2007-06-14

Family

ID=36498503

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2005/042491 WO2006058090A2 (en) 2004-11-26 2005-11-23 Message management facility for an industrial process control environment

Country Status (4)

Country Link
US (2) US20060168013A1 (en)
EP (1) EP1836594A4 (en)
CN (1) CN101128812B (en)
WO (1) WO2006058090A2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8269620B2 (en) 2008-12-19 2012-09-18 Honeywell Internatonal Inc. Alarm trend summary display system and method
US9355477B2 (en) 2011-06-28 2016-05-31 Honeywell International Inc. Historical alarm analysis apparatus and method
WO2017146875A1 (en) 2016-02-26 2017-08-31 Honeywell International Inc. System and method for smart event paging
US10635096B2 (en) 2017-05-05 2020-04-28 Honeywell International Inc. Methods for analytics-driven alarm rationalization, assessment of operator response, and incident diagnosis and related systems
US10747207B2 (en) 2018-06-15 2020-08-18 Honeywell International Inc. System and method for accurate automatic determination of “alarm-operator action” linkage for operator assessment and alarm guidance using custom graphics and control charts

Families Citing this family (127)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11244545B2 (en) 2004-03-16 2022-02-08 Icontrol Networks, Inc. Cross-client sensor user interface in an integrated security network
US11811845B2 (en) 2004-03-16 2023-11-07 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
US10339791B2 (en) 2007-06-12 2019-07-02 Icontrol Networks, Inc. Security network integrated with premise security system
GB2428821B (en) 2004-03-16 2008-06-04 Icontrol Networks Inc Premises management system
US20170118037A1 (en) 2008-08-11 2017-04-27 Icontrol Networks, Inc. Integrated cloud system for premises automation
US11201755B2 (en) 2004-03-16 2021-12-14 Icontrol Networks, Inc. Premises system management using status signal
US10237237B2 (en) 2007-06-12 2019-03-19 Icontrol Networks, Inc. Communication protocols in integrated systems
US10156959B2 (en) 2005-03-16 2018-12-18 Icontrol Networks, Inc. Cross-client sensor user interface in an integrated security network
US11489812B2 (en) 2004-03-16 2022-11-01 Icontrol Networks, Inc. Forming a security network including integrated security system components and network devices
US10142392B2 (en) 2007-01-24 2018-11-27 Icontrol Networks, Inc. Methods and systems for improved system performance
US11582065B2 (en) 2007-06-12 2023-02-14 Icontrol Networks, Inc. Systems and methods for device communication
US9141276B2 (en) 2005-03-16 2015-09-22 Icontrol Networks, Inc. Integrated interface for mobile device
US20090077623A1 (en) 2005-03-16 2009-03-19 Marc Baum Security Network Integrating Security System and Network Devices
US10721087B2 (en) 2005-03-16 2020-07-21 Icontrol Networks, Inc. Method for networked touchscreen with integrated interfaces
US9531593B2 (en) 2007-06-12 2016-12-27 Icontrol Networks, Inc. Takeover processes in security network integrated with premise security system
US12063220B2 (en) 2004-03-16 2024-08-13 Icontrol Networks, Inc. Communication protocols in integrated systems
US9729342B2 (en) 2010-12-20 2017-08-08 Icontrol Networks, Inc. Defining and implementing sensor triggered response rules
US11343380B2 (en) 2004-03-16 2022-05-24 Icontrol Networks, Inc. Premises system automation
US11368429B2 (en) 2004-03-16 2022-06-21 Icontrol Networks, Inc. Premises management configuration and control
US7711796B2 (en) 2006-06-12 2010-05-04 Icontrol Networks, Inc. Gateway registry methods and systems
US20160065414A1 (en) 2013-06-27 2016-03-03 Ken Sundermeyer Control system user interface
US10200504B2 (en) 2007-06-12 2019-02-05 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
US11916870B2 (en) 2004-03-16 2024-02-27 Icontrol Networks, Inc. Gateway registry methods and systems
US11159484B2 (en) 2004-03-16 2021-10-26 Icontrol Networks, Inc. Forming a security network including integrated security system components and network devices
US11316958B2 (en) 2008-08-11 2022-04-26 Icontrol Networks, Inc. Virtual device systems and methods
US11277465B2 (en) 2004-03-16 2022-03-15 Icontrol Networks, Inc. Generating risk profile using data of home monitoring and security system
US10522026B2 (en) 2008-08-11 2019-12-31 Icontrol Networks, Inc. Automation system user interface with three-dimensional display
US11677577B2 (en) 2004-03-16 2023-06-13 Icontrol Networks, Inc. Premises system management using status signal
US11113950B2 (en) 2005-03-16 2021-09-07 Icontrol Networks, Inc. Gateway integrated with premises security system
EP2677691A1 (en) * 2004-05-25 2013-12-25 Rockstar Consortium US LP Connectivity Fault Notification
US20060168173A1 (en) * 2004-12-15 2006-07-27 Cisco Technology, Inc. Method and apparatus for conditional application of management commands
KR100683853B1 (en) * 2005-02-04 2007-02-16 삼성전기주식회사 Pre-compiling device
US11496568B2 (en) 2005-03-16 2022-11-08 Icontrol Networks, Inc. Security system with networked touchscreen
US20110128378A1 (en) 2005-03-16 2011-06-02 Reza Raji Modular Electronic Display Platform
US9306809B2 (en) 2007-06-12 2016-04-05 Icontrol Networks, Inc. Security system with networked touchscreen
US10999254B2 (en) 2005-03-16 2021-05-04 Icontrol Networks, Inc. System for data routing in networks
US20170180198A1 (en) 2008-08-11 2017-06-22 Marc Baum Forming a security network including integrated security system components
US20120324566A1 (en) 2005-03-16 2012-12-20 Marc Baum Takeover Processes In Security Network Integrated With Premise Security System
US11700142B2 (en) 2005-03-16 2023-07-11 Icontrol Networks, Inc. Security network integrating security system and network devices
US11615697B2 (en) 2005-03-16 2023-03-28 Icontrol Networks, Inc. Premise management systems and methods
US7483757B2 (en) * 2005-07-22 2009-01-27 Honeywell International, Inc. Control system migration
US7734590B2 (en) * 2005-09-30 2010-06-08 Rockwell Automation Technologies, Inc. Incremental association of metadata to production data
US20070093919A1 (en) * 2005-10-20 2007-04-26 Dominique Ciechanowski Remote control system for tubs
US12063221B2 (en) 2006-06-12 2024-08-13 Icontrol Networks, Inc. Activation of gateway device
US10079839B1 (en) 2007-06-12 2018-09-18 Icontrol Networks, Inc. Activation of gateway device
WO2008003118A1 (en) * 2006-07-07 2008-01-10 Sure Technologies Pty Limited A redundant data path system
US7613840B2 (en) * 2006-08-17 2009-11-03 General Electric Company Methods and apparatus for dynamic data acquisition configuration parameters
US7612661B1 (en) 2006-09-29 2009-11-03 Rockwell Automation Technologies, Inc. Dynamic messages
US11706279B2 (en) 2007-01-24 2023-07-18 Icontrol Networks, Inc. Methods and systems for data communication
US7633385B2 (en) 2007-02-28 2009-12-15 Ucontrol, Inc. Method and system for communicating with and controlling an alarm system from a remote server
US8451986B2 (en) 2007-04-23 2013-05-28 Icontrol Networks, Inc. Method and system for automatically providing alternate network access for telecommunications
US11218878B2 (en) 2007-06-12 2022-01-04 Icontrol Networks, Inc. Communication protocols in integrated systems
US10523689B2 (en) 2007-06-12 2019-12-31 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
US11212192B2 (en) 2007-06-12 2021-12-28 Icontrol Networks, Inc. Communication protocols in integrated systems
US11237714B2 (en) 2007-06-12 2022-02-01 Control Networks, Inc. Control system user interface
US11089122B2 (en) 2007-06-12 2021-08-10 Icontrol Networks, Inc. Controlling data routing among networks
US11423756B2 (en) 2007-06-12 2022-08-23 Icontrol Networks, Inc. Communication protocols in integrated systems
US12003387B2 (en) 2012-06-27 2024-06-04 Comcast Cable Communications, Llc Control system user interface
US11316753B2 (en) 2007-06-12 2022-04-26 Icontrol Networks, Inc. Communication protocols in integrated systems
US11601810B2 (en) 2007-06-12 2023-03-07 Icontrol Networks, Inc. Communication protocols in integrated systems
US11646907B2 (en) 2007-06-12 2023-05-09 Icontrol Networks, Inc. Communication protocols in integrated systems
US10223903B2 (en) 2010-09-28 2019-03-05 Icontrol Networks, Inc. Integrated security system with parallel processing architecture
US11831462B2 (en) 2007-08-24 2023-11-28 Icontrol Networks, Inc. Controlling data routing in premises management systems
DE102007053255B4 (en) * 2007-11-08 2009-09-10 Continental Automotive Gmbh Method for editing messages and message processing device
US11916928B2 (en) 2008-01-24 2024-02-27 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
DE102008014151A1 (en) * 2008-03-14 2009-09-17 Abb Technology Ag Method and device for storing data, which in each case belong to an alarm or event message containing multiple attributes
US20170185278A1 (en) 2008-08-11 2017-06-29 Icontrol Networks, Inc. Automation system user interface
US11258625B2 (en) 2008-08-11 2022-02-22 Icontrol Networks, Inc. Mobile premises automation platform
US11758026B2 (en) 2008-08-11 2023-09-12 Icontrol Networks, Inc. Virtual device systems and methods
US11792036B2 (en) 2008-08-11 2023-10-17 Icontrol Networks, Inc. Mobile premises automation platform
US10530839B2 (en) 2008-08-11 2020-01-07 Icontrol Networks, Inc. Integrated cloud system with lightweight gateway for premises automation
US11729255B2 (en) 2008-08-11 2023-08-15 Icontrol Networks, Inc. Integrated cloud system with lightweight gateway for premises automation
US8719385B2 (en) * 2008-10-28 2014-05-06 Honeywell International Inc. Site controller discovery and import system
US8850347B2 (en) 2010-09-30 2014-09-30 Honeywell International Inc. User interface list control system
US20110093493A1 (en) 2008-10-28 2011-04-21 Honeywell International Inc. Building management system site categories
US8819562B2 (en) 2010-09-30 2014-08-26 Honeywell International Inc. Quick connect and disconnect, base line configuration, and style configurator
US20100106543A1 (en) * 2008-10-28 2010-04-29 Honeywell International Inc. Building management configuration system
US9471202B2 (en) * 2008-11-21 2016-10-18 Honeywell International Inc. Building control system user interface with pinned display feature
US8572502B2 (en) * 2008-11-21 2013-10-29 Honeywell International Inc. Building control system user interface with docking feature
US8638211B2 (en) 2009-04-30 2014-01-28 Icontrol Networks, Inc. Configurable controller and interface for home SMA, phone and multimedia
US8554714B2 (en) * 2009-05-11 2013-10-08 Honeywell International Inc. High volume alarm management system
US8224763B2 (en) 2009-05-11 2012-07-17 Honeywell International Inc. Signal management system for building systems
US20110022197A1 (en) * 2009-07-27 2011-01-27 Rec Advanced Silicon Materials Llc Process control application development environment and features
US9557735B2 (en) * 2009-12-10 2017-01-31 Fisher-Rosemount Systems, Inc. Methods and apparatus to manage process control status rollups
US8352047B2 (en) 2009-12-21 2013-01-08 Honeywell International Inc. Approaches for shifting a schedule
US20110196539A1 (en) * 2010-02-10 2011-08-11 Honeywell International Inc. Multi-site controller batch update system
US8640098B2 (en) * 2010-03-11 2014-01-28 Honeywell International Inc. Offline configuration and download approach
US8890675B2 (en) 2010-06-02 2014-11-18 Honeywell International Inc. Site and alarm prioritization system
US8648706B2 (en) 2010-06-24 2014-02-11 Honeywell International Inc. Alarm management system having an escalation strategy
WO2012003862A1 (en) * 2010-07-06 2012-01-12 Siemens Aktiengesellschaft Device for synchronizing two processes of a redundant control system of an industrial automation arrangement
US8836467B1 (en) 2010-09-28 2014-09-16 Icontrol Networks, Inc. Method, system and apparatus for automated reporting of account and sensor zone information to a central station
US11750414B2 (en) 2010-12-16 2023-09-05 Icontrol Networks, Inc. Bidirectional security sensor communication for a premises security system
US9147337B2 (en) 2010-12-17 2015-09-29 Icontrol Networks, Inc. Method and system for logging security event data
US9213539B2 (en) 2010-12-23 2015-12-15 Honeywell International Inc. System having a building control device with on-demand outside server functionality
US8818940B2 (en) * 2011-03-29 2014-08-26 Salesforce.Com, Inc. Systems and methods for performing record actions in a multi-tenant database and application system
US9927788B2 (en) * 2011-05-19 2018-03-27 Fisher-Rosemount Systems, Inc. Software lockout coordination between a process control system and an asset management system
US20120310373A1 (en) * 2011-05-31 2012-12-06 General Electric Company Systems and methods for alert capture and transmission
FR2978577B1 (en) * 2011-07-26 2020-04-03 Ip Leanware DEVICE AND METHOD FOR DIAGNOSING A DEVELOPABLE INDUSTRIAL PROCESS
US11474958B1 (en) * 2011-11-28 2022-10-18 Pure Storage, Inc. Generating and queuing system messages with priorities in a storage network
US20130148509A1 (en) * 2011-12-09 2013-06-13 Aidan N. Low Network device with audio-alert notification capability
US9223839B2 (en) 2012-02-22 2015-12-29 Honeywell International Inc. Supervisor history view wizard
US9529349B2 (en) 2012-10-22 2016-12-27 Honeywell International Inc. Supervisor user management system
US20140277612A1 (en) * 2013-03-14 2014-09-18 General Electric Company Automatic generation of a dynamic pre-start checklist
US9116519B2 (en) * 2013-03-15 2015-08-25 Gridpoint, Inc. Method for implementing quality alarms in an energy management system
US9244453B2 (en) * 2013-06-05 2016-01-26 General Electric Company Dynamic wizard execution
US9999398B2 (en) * 2013-09-04 2018-06-19 Roche Diabetes Care, Inc. Presenting data generated by a continuous glucose monitor
US9971977B2 (en) 2013-10-21 2018-05-15 Honeywell International Inc. Opus enterprise report system
US9305383B2 (en) * 2013-10-22 2016-04-05 Honeywell International Inc. Chart layout which highlights event occurrence patterns
KR102160252B1 (en) * 2013-12-18 2020-09-25 삼성전자주식회사 Method and Apparatus for Controlling Virtual Switching
US11146637B2 (en) 2014-03-03 2021-10-12 Icontrol Networks, Inc. Media content management
US11405463B2 (en) 2014-03-03 2022-08-02 Icontrol Networks, Inc. Media content management
US9720404B2 (en) * 2014-05-05 2017-08-01 Honeywell International Inc. Gateway offering logical model mapped to independent underlying networks
US9933762B2 (en) 2014-07-09 2018-04-03 Honeywell International Inc. Multisite version and upgrade management system
JP5680784B1 (en) * 2014-08-04 2015-03-04 株式会社テイエルブイ Management method of steam utilization equipment and steam utilization equipment
US10148485B2 (en) 2014-09-03 2018-12-04 Honeywell International Inc. Apparatus and method for on-process migration of industrial control and automation system across disparate network types
US9875640B2 (en) * 2015-04-08 2018-01-23 General Electric Company Method and system for managing plant alarm systems
US9705924B2 (en) * 2015-06-24 2017-07-11 International Business Machines Corporation Determining a number of users allowed to access message based on message objective
US10209689B2 (en) 2015-09-23 2019-02-19 Honeywell International Inc. Supervisor history service import manager
US10362104B2 (en) 2015-09-23 2019-07-23 Honeywell International Inc. Data manager
CN107819801A (en) * 2016-09-13 2018-03-20 株式会社日立制作所 A kind of method of batches of subscription/issue
CN108303955B (en) * 2017-11-15 2020-06-16 大连佳峰自动化股份有限公司 Method and system for batch production of products
CN112005220B (en) * 2018-04-27 2024-07-19 三菱电机株式会社 Data processing apparatus, monitoring method, and recording medium
US10742483B2 (en) 2018-05-16 2020-08-11 At&T Intellectual Property I, L.P. Network fault originator identification for virtual network infrastructure
US10503161B1 (en) * 2018-10-08 2019-12-10 CrossnoKaye Industrial process control coordination and implementation
CN111787057B (en) * 2020-05-26 2023-02-17 广西农业职业技术学院 Automatic management system for data center machine room of campus network machine room
US11645154B2 (en) 2021-06-08 2023-05-09 International Business Machines Corporation Enhanced recovery from externally initiated adjunct processor queue reset
US11556345B2 (en) 2021-06-08 2023-01-17 International Business Machines Corporation Detecting and recovering lost adjunct processor messages

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04245751A (en) * 1991-01-31 1992-09-02 Nec Corp Event processing distributing type network monitoring system
US6131112A (en) * 1996-05-17 2000-10-10 Cabletron Systems, Inc. Method and apparatus for integrated network and systems management
US5923848A (en) * 1996-05-31 1999-07-13 Microsoft Corporation System and method for resolving names in an electronic messaging environment
US5991806A (en) * 1997-06-09 1999-11-23 Dell Usa, L.P. Dynamic system control via messaging in a network management system
GB2327571B (en) * 1997-07-18 2002-01-09 Orange Personal Comm Serv Ltd Mobile communications
US6404743B1 (en) * 1997-11-04 2002-06-11 General Instrument Corporation Enhanced simple network management protocol (SNMP) for network and systems management
US6170005B1 (en) * 1997-11-04 2001-01-02 Motorola, Inc. Synchronization and information exchange between communication components using a network management operations and control paradigm
FR2777723B1 (en) * 1998-04-15 2000-06-23 Bull Sa METHOD AND SYSTEM FOR ADMINISTERING NETWORKS AND SYSTEMS
US7103511B2 (en) * 1998-10-14 2006-09-05 Statsignal Ipc, Llc Wireless communication networks for providing remote monitoring of devices
US6725377B1 (en) * 1999-03-12 2004-04-20 Networks Associates Technology, Inc. Method and system for updating anti-intrusion software
US6775707B1 (en) * 1999-10-15 2004-08-10 Fisher-Rosemount Systems, Inc. Deferred acknowledgment communications and alarm management
KR20010045237A (en) * 1999-11-03 2001-06-05 오길록 Management method of the group membership in the internet multicast applications
DE19962230A1 (en) * 1999-12-22 2001-06-28 Siemens Ag Industrial control and monitoring of machine tools, robots and finishing machinery, so that automatic condition reporting and alarm signals can be converted into messages or e-mail and immediately sent to the appropriate personnel
US6571285B1 (en) * 1999-12-23 2003-05-27 Accenture Llp Providing an integrated service assurance environment for a network
US6353385B1 (en) * 2000-08-25 2002-03-05 Hyperon Incorporated Method and system for interfacing an intrusion detection system to a central alarm system
US7313614B2 (en) * 2000-11-02 2007-12-25 Sun Microsystems, Inc. Switching system
US7325049B2 (en) * 2000-12-29 2008-01-29 Intel Corporation Alert management messaging
US7075894B2 (en) * 2001-03-14 2006-07-11 Fair Isaac Corporation Algorithm for prioritization of event datum in generic asynchronous telemetric streams
GB0124014D0 (en) * 2001-10-05 2001-11-28 Abb Ab Communication of messages in a system
DE60326938D1 (en) * 2002-02-19 2009-05-14 Postini Inc EMAIL MANAGEMENT SERVICES
FR2840139B1 (en) * 2002-05-23 2004-12-17 Cit Alcatel DEVICE AND METHOD FOR CLASSIFYING ALARM MESSAGES RESULTING FROM A BREACH OF SERVICE LEVEL AGREEMENT IN A COMMUNICATIONS NETWORK
US20040093401A1 (en) * 2002-11-13 2004-05-13 International Business Machines Corporation Client-server text messaging monitoring for remote computer management
US20040103178A1 (en) * 2002-11-25 2004-05-27 Dell Products L.P. Information handling system and method for multilevel command implementation
US7401360B2 (en) * 2002-12-03 2008-07-15 Tekelec Methods and systems for identifying and mitigating telecommunications network security threats
US7873371B2 (en) * 2002-12-12 2011-01-18 Abb Research Ltd. Control system controlling a plurality of real world objects, and a method for handling messages from a mobile user connected to the control system
US7103427B2 (en) * 2003-02-28 2006-09-05 Fisher-Rosemont Systems, Inc. Delivery of process plant notifications
US7148810B2 (en) * 2004-03-30 2006-12-12 Honeywell International, Inc. Evacuation systems providing enhanced operational control
US7818631B1 (en) * 2004-04-30 2010-10-19 Sprint Communications Company L.P. Method and system for automatically generating network trouble tickets
US20050265308A1 (en) * 2004-05-07 2005-12-01 Abdulkadev Barbir Selection techniques for logical grouping of VPN tunnels

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
None
See also references of EP1836594A4

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8269620B2 (en) 2008-12-19 2012-09-18 Honeywell Internatonal Inc. Alarm trend summary display system and method
US9355477B2 (en) 2011-06-28 2016-05-31 Honeywell International Inc. Historical alarm analysis apparatus and method
WO2017146875A1 (en) 2016-02-26 2017-08-31 Honeywell International Inc. System and method for smart event paging
CN108702308A (en) * 2016-02-26 2018-10-23 霍尼韦尔国际公司 System and method for intelligent event paging
EP3420683A4 (en) * 2016-02-26 2019-10-02 Honeywell International Inc. System and method for smart event paging
CN108702308B (en) * 2016-02-26 2021-11-30 霍尼韦尔国际公司 System and method for intelligent event paging
US10635096B2 (en) 2017-05-05 2020-04-28 Honeywell International Inc. Methods for analytics-driven alarm rationalization, assessment of operator response, and incident diagnosis and related systems
US10747207B2 (en) 2018-06-15 2020-08-18 Honeywell International Inc. System and method for accurate automatic determination of “alarm-operator action” linkage for operator assessment and alarm guidance using custom graphics and control charts

Also Published As

Publication number Publication date
US20060168013A1 (en) 2006-07-27
CN101128812B (en) 2011-12-07
EP1836594A2 (en) 2007-09-26
US20130297748A1 (en) 2013-11-07
CN101128812A (en) 2008-02-20
US9560109B2 (en) 2017-01-31
WO2006058090A3 (en) 2007-06-14
EP1836594A4 (en) 2011-06-22

Similar Documents

Publication Publication Date Title
US9560109B2 (en) Message management facility for an industrial process control environment
EP1800194B1 (en) Maintaining transparency of a redundant host for control data acquisition systems in process supervision
US7818615B2 (en) Runtime failure management of redundantly deployed hosts of a supervisory process control data acquisition facility
EP2530542B1 (en) Systems and methods for alert device removal
CN101076736B (en) Device and method for configuring redundancy in a supervisory process control system
US7836217B2 (en) Associating and evaluating status information for a primary input parameter value from a Profibus device
EP2530548A2 (en) Systems and methods for alert visualization
JP2005251195A (en) Method and system for integrating alarm in process control system
JP2005531864A (en) System event filtering and notification to OPC clients
CN104598300A (en) Distributive business process customization method and system
US9231779B2 (en) Redundant automation system
EP2911026B1 (en) Implementing alarm presentation standardized behaviors in a hosting device
JP2001069159A (en) Method for applying backup link active schedule and system for controlling communication while using link active schedule
EP2530539A2 (en) Systems and methods to configure alerts for fieldbus foundation devices
CN114531373A (en) Node state detection method, node state detection device, equipment and medium
JP2013137704A (en) Equipment management device and equipment management method
CN113965494A (en) Method for fault detection and role selection in a redundant process network
EP2038714B1 (en) Method, computer readable medium and system for guaranteed batch event delivery in a process control system
CN113010379A (en) Electronic equipment monitoring system
JP2009515474A (en) Independent message store and message transport agent
CN115280729B (en) Method, computer storage medium and computer for establishing time sensitive communication
CN106257362B (en) Event and data activity reporting
CN114356958B (en) Device data query method, device, server and computer readable storage medium
US6944520B2 (en) System and method for communication between machine controllers
JP2000020427A (en) Monitoring server/client system

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KN KP KR KZ LC LK LR LS LT LU LV LY MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

REEP Request for entry into the european phase

Ref document number: 2005852079

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2005852079

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 200580046286.6

Country of ref document: CN

WWP Wipo information: published in national office

Ref document number: 2005852079

Country of ref document: EP