The present invention generally relates to the field of programmable/configurable computerized control systems. More particularly, the invention concerns application programs including graphical human-machine interfaces for monitoring the status of and/or exercising supervisory control over continuous and/or discrete controlled processes. Such interfaces often provide multiple screens tied to data representing the status of the controlled processes.
Industry increasingly depends upon highly automated data acquisition and control systems to ensure that industrial processes/operations run efficiently, safely and reliably while lowering overall costs. In such systems, data acquisition begins with sensors measuring current values/status of process variables representing the status/operation of an industrial process or operation. The measurements are communicated to programmed controllers and data collection/management systems. The data collection/management systems, generally including process databases and data processing routines, manage and maintain the measurement data. Such data management and maintenance includes further processing the data (e.g., filtering), storing the data, and distributing the data to a variety of client applications. Such client applications include both automated and manual supervisory control processes and display/monitor user interfaces.
Industrial process/operation measurements come in a wide variety of forms and are used by industrial process control systems to regulate a variety of operations, both with respect to continuous and discrete manufacturing processes. 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 number of bottles filled per hour, a tallied inventory of packages waiting in a shipping line, or a photograph of a room in a factory. Often, sophisticated automated process management and control hardware/software examine acquired process/operation measurement data, and respond by sending messages/signals to actuators/controllers that adjust the operation of at least a portion of the industrial process. However, the data produced by the sensors is also provided to human-machine interface (HMI) applications. The HMI applications support a variety of views that enable 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 (alarm), and take remedial actions such as shut down a process or move equipment into and out of service as required.
Highly advanced HMI/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.
One aspect of HMI applications is management of potentially hundreds of different supported views of controlled processes within a plant. In relatively small controlled processes, the amount of information provided and displayed on HMI screens is relatively small and is handled by a relatively small number of screens/views. However, many industrial processes are very complex. Such processes contain potentially include thousands of sensors and control elements (e.g., valve actuators) monitoring/controlling all aspects of a multi-stage process within an industrial plant. The number of screens/views required to present the relevant data to operators via the HMI application is potentially very large.
Known HMI applications utilize drop-down menus to provide access to the various screens for a particular control application. In one instance, the menu comprises a flat list of supported screens. Another known process control HMI organizes the supported screens as cascaded drop-down menus wherein menu entries represent a view and a link to potentially child views (identified as items within a cascade menu). Once a selection is made, the menu disappears and the selected screen is rendered. In yet other known methods for accessing views, child, parent, and left-right sibling view buttons are hard-coded onto each view. This method of providing hierarchically arranged views requires that the hierarchy be configured into each view in a visualization project.
Furthermore, 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. Once alarms requiring human intervention are received at a workstation, it is important that an operator be able to quickly identify the problem and, if needed, take remedial action.
Another challenge faced when providing a visualization interface for monitoring an industrial process is how to provide access to detailed information associated with particular control blocks—the greatest degree of detail. In known systems, details were simply restricted to specific critical pieces of information. Alternatively, an expanded set of details are provided by a full screen display. In yet other instances, a separate engineering tool provided the detailed information on the control block in a completely separate window.
In accordance with the present invention a human machine interface (HMI) application for executing a visualization project for a process control system is described. The invention is particularly useful in the case where the visualization project comprises a set of hierarchically arranged views.
The HMI application includes a process control data interface for communicating with a source of runtime process information associated with the set of hierarchically arranged views and a graphical user interface for presenting the views in accordance with the runtime process information. More particularly the graphical user interface includes a process graphic area for displaying a selected view of the set of hierarchically arranged views and a navigation bar for displaying a set of graphical representations corresponding to selectable views of the set of hierarchically arranged views.
The navigation bar is arranged to provide representations of views as a set of levels and includes a first linearly arranged set of graphical representations corresponding to sibling view choices for a first level of the set of hierarchically arranged views, and a second linearly arranged set of graphical representations corresponding to sibling view choices arising from selection of a view represented in the first linearly arranged set of representations.
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:
An HMI application supporting interaction between an operator and runtime control processor information is described herein below by reference to figures illustratively depicting an exemplary embodiment of the invention. In accordance with the illustrative embodiment, the HMI application provides graphical user interface-driven functionality including, among other things supporting a horizontal, persistent, hierarchical view selection menu. Furthermore, visual alarm indicators associated with the view selection menu guide an operator through each view selection level to a view showing an alarm's source. The horizontal view selection menu is traversable by both a graphical pointer and keyboard strokes (e.g., dynamically assigned function keys).
Another aspect of the HMI application user interface comprises a faceplate with detailed overlays. Faceplates are rendered within a portion of the HMI application user interface. In an illustrative embodiment, the faceplates provide access to detailed information from a control block such as alarm limits and tuning parameters. Such detailed information is accessed by first exposing a menu of detailed information, and thereafter rendering the detailed information within a work area of the faceplate separate from the menu from which the detailed information type is selected for the control block. This mode of providing detailed information about a control element enables a user to persist the faceplates within the HMI application 200 window without excessively obscuring a main view area.
Before, describing a process control system HMI application embodying the present invention, an exemplary process control network environment/facility is briefly described. The present invention is potentially incorporated in a variety of process control facility arrangements, and other physical process control arrangements will be known to those skilled in the art in view of the disclosure contained herein. Turning to
The workstation 102 comprises any of a variety of hardware/operating system platforms. For example, the workstation 102 comprises a personal computer running any of a variety of operating systems such as: Microsoft Windows XP, Unix, Linux, Solaris, Mac OS-X, etc.
In an illustrative embodiment, the HMI application requires very fresh information. To avoid delays due to retrieval from less direct data sources, the workstation 102 receives process data directly from a control module assembly 108 described further herein below. In an exemplary embodiment, a data access server application, to which the HMI application subscribes, receives the process data from the control module assembly 108 on behalf of the HMI application. The HMI application presents a set of views of the controlled process that are driven by the data values retrieved from the control module assembly 108. Alternatively, process control information is retrieved, for example, from a runtime database maintained by a database server 104.
In the illustrative example, the workstation 102 is connected via an Ethernet interface/wiring to an Ethernet switch 106 via a network link 105. Alternatively, a redundant mesh network provides a communicative path between workstations, database servers, and the switch 106. The Ethernet switch 106 can be any of a variety of commercially available switches. By way of example the Ethernet switch 106 is one provided, for example, by Allied Telesyn (e.g., model AT-8088/MT). While not specifically depicted in
The switch 106, and potentially other non-depicted switches, is also communicatively coupled to the control module assembly 108. The control module assembly 108 comprises one or more control modules (also referred to as control processors) that execute control programs driven by process sensor data values and render output values to devices (e.g., valves, motors, etc.) controlling a plant process. An illustrative example of such control module is a FOXBORO CP model FCP270, by Invensys Systems, Inc. In other embodiments, process control functionality is carried out in any of a variety of control modules—even by control programs incorporated into the workstations, intelligent transmitters, or virtually any communicatively coupled device capable of executing control programs, loops, scripts, etc.
In an embodiment where the control module assembly 108 is the FOXBORO FCP270, workload is divided, within the FCP270, between controlling data communications and executing control programs (blocks). The FCP270 processes data received from an I/O module assembly 110 in parallel using the two distinct hardware modules—a block processor module and a field communications module. The block processor module repeatedly executes control programs, created by the process control program development facility residing on the workstation 102, according to a relatively long block processing cycle period (e.g., 100 ms). The output values of the control programs executed within the block processor module are driven by process data received by the control module assembly 108 from the I/O module assembly 110. The I/O module assembly 110 comprises, by way of example, INVENSYS FBM207 and/or FBM217 fieldbus modules that pass digital input values to the control module assembly 108. Both the process data and the output values calculated by the control programs on the control module assembly 108 are provided to applications executing on the workstation 102. In an exemplary embodiment, the process data provided by the control module assembly 108 is incorporated into an HMI application providing a set of views supporting interaction between an operator and runtime control processor information.
With regard to the above-mentioned data communications task carried out by the control module assembly 108, in the illustrative example the field communications module within the FCP270 receives data from the I/O module assembly 110. The received data is passed to both the above-mentioned block processor module (within the control module assembly 108) and to process data subscribers (e.g., data access servers such as those running on the workstation 102 and the database server 104) according to an appropriate network communication protocol (e.g., TCP/IP) via the network link 105. The protocols/mechanisms used to provide data to various subscribers varies in accordance with particular embodiments of the invention.
With continued reference to
I/O module assemblies, in general, incorporate one or more of a variety of specialized interfaces for communicating directly and/or indirectly to a variety of device types, including sensors/actuators embodying particular communications protocols, located at distributed locations in a plant. In the illustrative example, the I/O module assembly 110 comprises a Foundation Fieldbus I/O module (e.g., an Invensys field bus module model FBM228) that supports communications between the control module assembly 108 and field devices coupled to a Foundation Fieldbus network 111. In the illustrative embodiment, a set of representative intelligent field devices 114 and 116, containing multiple application-dependent configurable parameters, are connected to the Foundation Fieldbus network 111. The field devices 114 and 116 operate at the lowest level of a control system to measure (transmitters) and control (positioners, motor switches, etc.) plant activity. A termination assembly 112 communicatively couples the I/O module assembly 110 to the field devices 114 and 116. The termination assembly 112 provides power and power conditioning to the extent needed by the field devices 114 and 116 on the network 111.
Having described an exemplary network environment within which an HMI application 200 embodying the present invention is potentially incorporated, attention is directed to
The HMI application 200 also supports sharable/reusable applets and/or components (e.g., Active X controls, Java applets, etc.) within the views. The view configurator 202 also supports modifying the defined views presented by the HMI application 200. The view configurator 202 supports defining a variety of aspects of each view including: display objects (e.g., windows, overlays, popups, etc.), ActiveX controls for alarm viewing, local and remote tags that identify data of interest to the view, scripts and functions associated with buttons, windows, overlays, and the application as whole, and runtime properties. The HMI application 200 interacts with the database of the view configurator 202 to process user requests to present faceplates, windows, and overlays; to process operator requests through button clicks; and to process scripts, display ActiveX controls, etc.
The HMI application 200 receives updates for connected parameters through a process control data interface 204. The interface 204, in turn, communicates with data sources, such as the control module assembly 108, via the network link 105 to obtain process data (e.g., sensor data, alarms, etc.). The process control data interface also supports operator requests to set control parameters, including validating the source of such requests, that are transmitted to a control processor running, for example, on the control module assembly 108.
In embodiments of the invention, alarm reception and initial processing is handled by a separate and distinct alarm sub-system (not shown). An alarm provider receives alarm messages from the control module assembly 108 (control processor), formats the alarm information for the HMI application 200, and sends the alarm information to an alarm subsystem of the HMI application. Thereafter the alarm information is retrieved by alarm consumers on the HMI application 200 operating according to a previously loaded visualization project.
A user, via a navigation configurator 206 and associated database, specifies a navigation tree that defines the hierarchical relationships of the views that make up a visualization project/application for monitoring and executing supervisory control over an associated process. The tree defines parent, child, and (indirectly) sibling relationships among the views defined in the configurator 202's database 202. In an exemplary embodiment, the hierarchy tree supports three levels with twelve buttons at each level. However, the number of supported hierarchical levels (at least two) and the number of buttons at each level differs in alternative embodiments of the invention.
The navigation configurator 206 also supports assigning alarms to particular views of the hierarchy of views for a process visualization project. When an alarm associated with a particular view is set (e.g., a sensor reading is outside a specified range), the particular view is set to an alarm state, resulting in a display state change of a corresponding view button in a horizontal navigation bar 308 (described herein below) and any higher level view buttons through which the view button is reached in a hierarchical arrangement of views. In a particular embodiment, alarms are associated with views at the lowest level of the view navigation hierarchy. When an alarm associated with a particular view is set, the associated button on the horizontal navigation bar 308 flashes in a distinct color (e.g., red). As noted above, the alarm state propagates through each parent view (and associated button on the horizontal navigation bar 308), allowing a user to drill down from an highest level set of views down to the lowest level of views where the alarm originated.
In an exemplary embodiment, the database of the navigation configurator 206, in addition to storing the aforementioned hierarchical relationships, maintains a runtime data structure identifying views that are either labeled “favorites” or most recently used. The navigation configurator also 206 also includes a report generator enabling a user to establish a report of the view hierarchy for a visualization project and list any user-built views that have not been included in the hierarchy.
Turning to
The HMI application 200's user interface includes, by way of example, three on-demand display areas. A horizontal navigation bar area 308 displays a set of user selectable buttons corresponding to available views at various levels of the hierarchy of views supported by a particular loaded visualization project loaded on the HMI application 200. Buttons on the horizontal navigation bar 308 associated with a next lower level in the hierarchy of views are assigned to a particular set of child views in response to selection of one of the buttons representing a view among a set of displayed sibling views. A vertical navigation bar displays the views in the form of expandable/selectable tree having nodes corresponding to the hierarchically arranged views. An overlay area 312 is used to display a variety of user interface components including: an alarm panel, detail display panel and watch panel. A process graphic area 314 that includes the on-demand areas that are shared with the horizontal navigation bar 308, the vertical navigation bar 310, and the overlay area 312 is reserved for displaying the content of the selected views of the visualization project.
Navigating HMI Application Views
Having described a general environment within which an HMI application operates in accordance with a provided visualization project and associated hierarchically specified views, attention is now directed to navigating the hierarchically specified views in accordance with an illustrative embodiment of the present invention. As noted previously above, the views of a process visualization project are arranged, through the navigation configurator 206, into a hierarchical tree arrangement wherein lower level sets of sibling views present detailed views of particular aspects of a portion of a controlled process represented in a related higher level (parent) view associated with a higher level node in the view selection hierarchy.
In an exemplary embodiment the display interface of the HMI Application 200 and associated view data structures support visualization project view hierarchies including up to 12 area views at a highest level of the view hierarchy, up to 12 unit views at an intermediate level, and up to 12 loop views at a lowest level. In an exemplary embodiment, the horizontal navigation bar 308 includes at least enough buttons to display each of the available views at each level of the view hierarchy (e.g., an array of buttons comprising 3 rows and 12 buttons per row). In an exemplary embodiment, wherein the (tri-level) horizontal navigation bar 308 supports up to 12 entries (and associated node-specific views) at each of the three levels, allowing for the organization of up to 144 intermediate level unit views and 1728 views at the loop level. However, the number of buttons/supported child views at each level differs in alternative embodiments.
The illustrative display layout depicted in
A second way utilizes a graphical (e.g., mouse) pointer to select graphical representations on the horizontal navigation bar 308 and the vertical navigation bar 310. The horizontal navigation bar 308 comprises, by way of example, a three-by-twelve element two-dimensional array of buttons representing up to twelve view choices at each of three hierarchical levels of a view tree for a visualization project. Selecting one of the button fields (corresponding to a view) within a navigation bar opens a view corresponding to the button and populates a next lower level (if available) of the horizontal navigation bar with a set of child views under the selected view. HMI application 200 also supports a version of the horizontal navigation bar 308 wherein only a single level (containing the currently displayed view) is displayed. The single bar style covers less of the view display area than the multiple row version of the horizon navigation bar 308. The vertical navigation bar 310 is similar to a vertically arranged set of nodes in known file directory tree controls. In an exemplary embodiment, all of the above described view hierarchy navigation mechanisms are available to the user at any time.
In addition to the aforementioned view selection modes, the HMI application 200 includes a “Most Recently Used” list, providing direct access to a set of (e.g., 12) most recently accessed views. The HMI application 200 also supports a designated “Favorites” list, providing direct access to a designated set of views in the hierarchy without traversing the view hierarchy of the visualization project. The “Favorites” list is stored according to logged on user.
Turning to
Turning to
In an exemplary embodiment, each selectable button in the hierarchy is associated with a corresponding view and potentially own alarms associated with the view. However, only a view at the lowest level of the hierarchy of views is automatically displayed within the process graphic area 314 in response to a user's selection of a corresponding button on the navigation bar 608. Therefore, in the illustrative embodiment, a set of buttons 610 labeled “Area” and “Group” are provided that enable a user to request the HMI application 200 to display a view corresponding to a presently registered selection at either of the top two selection rows (e.g., the Areas and Groups) within the three-level horizontal navigation bar 608. In an alternative embodiment, the HMI application 200 automatically commences presenting a view associated with a selected button in the horizontal navigation bar 308. Turning to
Turning to
Turning to
It is noted that in addition to the above-described horizontal navigation bar, the system supports selection of particular views, without displaying the horizontal navigation bar 308, by selecting particular keys on a keyboard (e.g., Control+Function #) to traverse down the view hierarchy to an intended view.
Having described an exemplary user interface for the HMI application 200 incorporating a horizontal navigation bar for traversing a set of hierarchically arranged views of a visualization project, attention is directed to
At step 1002, the HMI application 200 detects a user's selection of one of the sibling views. In response, during step 1004 if the selection is of a view at the bottom of the view hierarchy for the visualization project, then control passes to step 1004. At step 1004 the HMI application 200 acquires a view corresponding to the user's selection and renders the selected view in the process graphic area 314.
Otherwise, if the selection does not correspond to a bottom level view, then control passes to step 1006 wherein the HMI application 200 displays a set of child view buttons, for the selected parent view, within a next lower level on the horizontal navigation bar 308. At step 1008, that may alternatively be performed before step 1006, the HMI application 200 associates the view corresponding to the button detected during step 1002 with an appropriate one of the view register buttons 610 (e.g., Area and Group). The registration of the view enables a user to request display of the view by selecting the button.
The above-described exemplary steps correspond to presenting a set of buttons representing sibling views in a current row, and then processing an operator's selection of one of the siblings. The process summarized in
Faceplates For Accessing/Displaying Detailed Block Information
Another aspect of the HMI application 200 that provides for an enhanced user experience is the presence of faceplates including detailed display of control block information. The faceplates are generated as graphics (potentially complex data-driven animated displays) that are thereafter associated with a control block executed by a control processor in a runtime process control environment. Faceplates are small views of the control block information. Because of their reduced size, a number of faceplate overlays can be displayed on the screen at one time. However, they also have less area to present information than known full size detail display interfaces for control block information.
The faceplates are called into the HMI application 200's display in any of a number of ways. A control block corresponding to the information of interest is specified by, for example: entering the control block name in a data entry field on the HMI application's user interface; selecting an updating field within a faceplate, or process graphic; or selecting a previously selected control block from a drop down list of the previously accessed control blocks. After a control block has been selected, a user opens a Faceplate Location Dialog by selecting a Faceplate button on a toolbar of the HMI application 200. From the Faceplate Location Dialog, the user selects a location for displaying the faceplate for the selected control block.
After the faceplate location is selected, a faceplate overlay for a selected control block is displayed in the selected location. The type of faceplate overlay is based on the type of block selected.
The relatively compact size generally limits the information provided by the faceplate overlay for a selected control block. However, in accordance with an aspect of the exemplary embodiment of the HMI application 200, detailed information is selectively displayed from an initially hidden menu of detailed information overlays. Turning to
Turning to
The exemplary embodiment supports further dividing a top-level detailed display into sub-displays. For example, in the illustrative embodiment, the information associated with the CNTRL detailed information overlay has been further divided into four sub-displays that are accessed via a set of sub-display buttons 1304 (i.e., MEAS, SPT, BIAS and OUT) within the detailed information pane 1302. The arrangement for providing sub-displays differs from the above-described hierarchical arrangement of views within a visualization project since there is no generalized “detailed information display” associated with the selection of the CNTRL button 1300. Instead, a default sub-display of the four sub-displays is rendered (e.g., MEAS).
The MEAS sub-display button has been selected in the illustrative example in
A user hides a selected detailed information overlay by selecting one of the detailed information overlay buttons (CNTRL, ALARMS, and TUNE) rendered on the right side of the faceplate overlay. Selecting the active CNTRL button 1300 deselects the previous selection and returns the detailed information pane 1302 to its initial state (depicted in
Turning briefly to
Turning to
At step 1504, in response to a user's selection of one of the displayed detailed information overlay choices (e.g., CNTRL), the HMI application 200 replaces a portion of the faceplate overlay (e.g., the region occupied by pane 1302) with the selected detailed information overlay. The exemplary embodiment of the detailed information overlays, depicted in
During step 1506, in response to the user's selection of one of the non-default sub-display buttons (e.g., BIAS in
It is noted that the above set of graphical user interfaces and summarized steps for providing control block details in the form of a set of selectable detail overlays displayed within a faceplate overlay are merely exemplary. Those skilled in the art will appreciate, in view of the disclosure herein, that there are a variety of ways to present choices, within a faceplate for a control block.
The structures, techniques, user interfaces and associated benefits discussed above are merely exemplary embodiments of the invention. The exemplary interfaces are carried out by software, stored on computer-readable media in the form of computer executable instructions. 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. 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.