This disclosure relates generally to process control systems, and, more particularly, to methods and apparatus to provide a role-based user interface.
Process control systems, like those used in chemical, petroleum or other processes, typically include one or more process controllers and input/output (I/O) devices communicatively coupled to at least one host or operator workstation and to one or more field devices via analog, digital or combined analog/digital buses. The field devices, which may be, for example, valves, valve positioners, switches and transmitters (e.g., temperature, pressure and flow rate sensors), perform process control functions within the process such as opening or closing valves and measuring process control parameters. The process controllers receive signals indicative of process measurements made by the field devices and then process this information to generate control signals to implement control routines, to make other process control decisions, and to initiate process control system alarms. In this manner, the process controllers may execute and coordinate control strategies using the field devices via the buses and/or other communication links communicatively coupling the field devices.
Process information from the field devices and the controllers may be made available a system including to one or more applications (i.e., software routines, programs, etc.) executed by an operator workstation (e.g., a processor-based system) to enable an operator to perform desired functions with respect to the process, such as viewing the current state of the process (e.g., via a graphical user interface), changing settings of a process control routine, evaluating the process, modifying the operation of the process (e.g., via a visual object diagram), viewing alarms generated by field devices and/or process controllers, simulating the operation of the process for the purpose of training personnel and/or evaluating the process, etc. Many process control systems also include one or more application stations. Typically, these application stations are implemented using a personal computer, workstation, or the like that is communicatively coupled to the controllers, operator workstations, and other systems within the process control system via a local area network (LAN).
In some known process control systems, one or more operation terminals and/or application stations may execute one or more software applications that perform campaign management functions, maintenance management functions, virtual control functions, diagnostic functions, real-time monitoring functions, safety-related functions, configuration functions, etc. within the process control system. In addition, some known process control systems provide one or more operation terminals and/or application stations including a graphical user interface that displays the process control information including alarms generated by controllers or devices within the process, values of process variables, values of quality parameters associated with the process, process fault detection information, and/or process status information.
With some known process control systems, one or more of the process control-related applications include user interface functionality to enable the application(s) to interact directly with, for example, an operating system (e.g., a Windows-based operating system) of an operator station or a terminal providing a graphical interface to the process control system. Thus, in these systems, the various applications and, in particular, the graphical user interface portions thereof interact directly and independently (e.g., independent of other applications) with the operating system of the operator station. The management of these of these relatively independent graphical interfaces (e.g., displays or windows) is complicated by the fact that each of the displays may provide a different type of information (e.g., graphical, textual, trends, alarms, etc.) at different times. Furthermore, different personnel may value the information displayed via the graphical interfaces differently. For example, a graphical interface for a diagnostics management application may display information that is unusable to the user, thereby resulting in an overly complicated display.
Generally speaking, a software system for developing, monitoring, operating, and otherwise interacting with a process control environment provides role-dependent views of user interface to various users. More particularly, the software system may filter and organize engineering tools and information according to the role of the user in the corresponding organization (“organizational role” or simply “role”), which can be a production manager, a maintenance manager, a control system engineer, or an electrical and instrument engineer, to name just a few examples. More generally, an organizational role can correspond to any suitable set of responsibilities, access and other privileges, security clearance, skills the user is expected to have, etc. The software system then may provide the filtered information and tool selection to the user in a view that includes, for example, a certain user interface screen, several generations of user interface screens, a set of related user interface screen displayed simultaneously, etc. Thus, two users having different organization roles may see different selections and/or arrangements of software applications, libraries, assets, data trees, etc. upon logging in. Further, as these users make selections and invoke functions within the respective views, the computing environment may continue to filter and organize information according to the users' roles. As a result, users can find relevant information more quickly to facilitate taking appropriate corrective actions, performing analysis, and reducing potential human error associated with the cognitive overload (or stress) of having to discern between relevant information for their job role/task and unimportant data. In the context of a production plant environment, this saved time and reduction in human error can often save customers millions of dollars in lost production due to a mistake that results in lost production either due to a plant shutdown or product that does not meet specification. In extreme cases, the human error can result in the or loss of plant personnel or damage to expensive process equipment
A role-dependent view may include any suitable number of user interface screens with such information as, for example, (i) a visualization including a process display, a dashboard, various faceplates, machine views, etc., (ii) a logic display depicting control modules, phases, recipes, calculations, functions, etc., (iii) an instructions or “knowledge” display including standard operating procedures, device manuals, material handling nodes, loop diagrams, etc., (iv) a business information display illustrating orders, equipment tracking, material consumption, electrical consumption, etc., (v) a system health display including equipment status data, device alerts, vibration data, etc., and (vi) input/output (I/O) display illustrating I/O devices and signals. As one example, when a control system engineer logs in, the software system may generate process displays and dashboards as part of visualizations, control modules, phase, calculations, and functions as part of logic displays, loop diagrams as part of knowledge displays, etc. On the other hand, when an electrical and instrument engineer logs in, the software system may generate device dashboards as art of visualizations, calculations as part of logic, and device manuals as part of knowledge displays. When a role-dependent view includes multiple screens, navigation between the screens also may be role-dependent: thus, for example, if the computing environment displays equipment status to both process control engineers and electrical and instrumentation engineers, the software system may provide a link (e.g., a button in the toolbar, an option in a pull-down menu, an icon displayed next to a unit of equipment) to an electrical and instrumentation engineer to directly navigate to equipment tracking, and not provide this link to a process control engineer.
To generate role-dependent views, the software system may organize functions and data into layers, and map the layers to user roles, where each layer includes a collection of information from various sources (databases, devices reporting real-time signals, operator input, etc.). Mapping of layers to a user-dependent view may be specific to each software application operating as a respective component of the software system or the entire software system. In an example implementation, the software system retrieves the user's role from a database, identifies layers of information mapped to the user's role for the selected software application using a respective configuration file, and generates a role-dependent view. Because roles within an organization can be defined at any desired number of levels, the software system may overlay multiple layers of functions and data to generate a certain view. For example, the role a maintenance manager may correspond to multiple sub-roles depending on the area of technology for which the maintenance manager is responsible. In general, role definitions can include any number of tiers. A user may be allowed to further configure her view and in some cases override the mapping of layers to her role-dependent view.
Example embodiments of these techniques include a method and system to provide a role-based user interface are disclosed herein. An example system includes a display device to show a user interface and one or more processors. The one or more processors receive object information for an object in a process control system during a session, determine a user role based on the session, determine whether the object information is qualifying information based on the user role, and display the object information via the user interface when the object information is qualifying information.
Another example embodiment is a method that includes displaying a user interface, receiving object information associated with an object in a process control system during a session, and determining a user role based on the session. The method also includes determining whether the object information is qualifying information based on the user role, and displaying the object information via the user interface when the object information is qualifying information.
Although the following describes example methods and apparatus included, among other components, software and/or firmware executed on hardware, it should be noted that these examples are merely illustrative and should not be considered as limiting. For example, it is contemplated that any or all of the hardware, software, and firmware components could be embodied exclusively in hardware, exclusively in software, or in any combination of hardware and software. Accordingly, while the following describes example methods and apparatus, persons of ordinary skill in the art will readily appreciate that the examples provided are not the only way to implement such methods and apparatus.
Example Types of Information Related to a Process Control System/Environment
In some known systems, information related to a process control system is presented in a number of disparate ways across applications and environments. For example, an application running in an engineering environment may present diagnostic information in the form of status indication overlays or custom visualizations for each type of node in the physical network. A node is an object or device that is in wired and/or wireless communication with another device. For example, field devices, switches, firewalls, etc. may all be considered nodes. A second, different application running in the engineering environment may show control integrity diagnostic information in the form of status icons on a module diagram. An engineering environment is a software environment that presents information via standard software interfaces. Additionally, each of these above-noted different applications may include different levels of information that may or may not be useful to a particular user. For example, a maintenance technician charged with maintaining an asset (e.g., a smart device such as a valve) in a plant may be interested in very detailed information (e.g., diagnostic parameters, maintenance history, etc.) about the asset. An operator may be primarily concerned with whether or not the asset (e.g., the valve) is open or closed, and how much product is passing through the valve. A control system engineer may indirectly monitor the valve to determine if the asset is negatively impacting the engineer's control strategies or logic depending on signals from the asset. For example, the control system engineer may select not to display information about the valve, but still be alerted to changes in the status of the valve.
Among other types of information, the software system of this disclosure can present information related to objects that can correspond to any aspects of the process that can be presented to a user. In addition, an object may include one or more facets that describe certain characteristics of that object. An object may have any number of facets that describe that object. For example, process control object facets may include identifying information of the object (e.g., object name, tag, nick name, etc.), physical information of the object (e.g., construction material of a tank, size of a smart device, etc.), logical information regarding the object (e.g., instructions or executable code, sometimes referred to as functional blocks or modules), graphical information regarding the object (e.g., a process display presented using icons rather than logic), Input/Output information regarding the object (e.g., signals received by an asset, etc.), user task information regarding the object (e.g., relevant actions that can be performed by a user on the object, etc.), etc. Using the facets of the object, the information displayed to a user via a user interface can be filtered to customize the user interface to display information that is relevant to a particular user (e.g., maintenance technician, operator, reliability engineer, supervisor, control system engineer, control room operator, etc.).
The software system also provide information related to tasks, which are sequences of work performed by users. A task sequence can be as simple as filling in a form, or performing some function such as changing a value in the process control system. Tasks can also be more complicated such as initiating or starting a unit, or tuning a process loop. In some examples, tasks may be created and/or modified by users to better match the plant needs.
In the examples disclosed herein, each facet can have three sets of default tasks. Configuration tasks enable a user to configure features of an object. For example, configuration tasks may include downloading software or information, exporting information, updating information, testing an object, commissioning an instrumentation asset (e.g., a controller), running a method on an instrumentation asset, etc. Runtime edit tasks enable a user to edit content in the object at runtime. For example, if an object is a chart, the runtime edit tasks may provide a way to change the traces shown in the chart. Example runtime edit tasks include filtering columns, resizing an interface, hiding or showing facets, changing context (e.g., specifying or selecting a different object), changing views, and/or adding a trend trace. Runtime write/execute tasks enable a user to change runtime values. For example, a graphical block that can be used to visualize interlocks provides an interface to disable an interlock. Example runtime write/execute tasks include changing operating modes, changing an object set point, changing alarm limits, taking out or disabling a service, bypassing an interlock, acknowledging alarms, tuning an object or process, forcing a value, analyzing alarms, and/or responding to a system prompt.
In addition, a user may create additional (or custom) tasks that are matched to certain personnel or user roles. Example user-defined tasks include asking for input from a user, opening displays, dashboards and/or faceplates, starting another task, etc.
However, not all tasks are of equal value to a user. For example, a software application performing diagnostics functions can provide diagnostics information ranging anywhere from the health of the software code (or logical components) executing in a controller (e.g., controller loading, control module integrity, etc.) to the physical health of digital control system hardware (e.g., network switches, workstations, etc.), process equipment (e.g., heat exchangers, etc.), or a single instrument such as a temperature transmitter. Personnel such as, for example, process control operators, system engineers, configuration engineers, maintenance personnel, technical support, etc. may utilize various aspects of the example integrated graphical user interface described herein to perform their duties. Thus, the information or tasks presented to a user via the examples described herein may take into account the different responsibilities of the user or personnel such as, for example, between operators, configuration engineers, maintenance personnel and/or technical support. Unlike previous systems, the software system disclosed herein utilizes role-based filtering to filter and organize (e.g., customize) a user interface to provide a user experience to the user optimized for the responsibilities or duties of the user. That is, the information or tasks displayed to a user may be filtered based on the organizational role or responsibilities of the user, context or state of the object in the system and/or organized via default desktop arrangements, specific visualizations in the user interface or display layouts.
Further, a process graphic may be developed using objects that include a graphical component and an interface to one or several physical devices to update the graphical component in real time. Some of the objects may be dedicated to control strategies (e.g., an PID loop object), while some of the objects may be dedicated to devices (e.g., a temperature sensor object). The user interface filter data received by the objects from the process plant to display information relevant to the user's organizational role. Alternatively, a process graphic can be developed using hardcoded references to devices. When generating the supplemental display, software system of this dislcosure may retrieve configuration data that specifies relationships between control strategies and devices from one or several configuration databases, and automatically generate the operator supplemental display, the maintenance supplement display, or another supplemental display specific to a user role using the retrieved information.
In addition to filtering information based on the organizational role or responsibilities of the user, the software system of this disclosure may filter information displayed to a user based on user preferences. Examples of filtering information displayed to a user include presenting a default set of software applications based on the organizational role or responsibilities of the user, showing or hiding specific information in a software application (e.g., filtering the contents of hierarchy tree), changing the displayed name, title or description of an object, showing different perspectives of the interfacing connections of the physical components of the process, filtering the tasks that are presented to the user, determining which facets of an object are displayed, filtering which applications are available to a user, and/or determining what types of alerts and alarms are displayed to the user. In some examples, the system may utilize multiple filters to customize the user interface of a user display. In some such examples, the system may apply the filters in layers, levels or tiers. For example, a first layer filter may filter facets based on the organizational roles and/or responsibilities of the user, a second layer filter may filter facets based on particular assets (e.g., a valve), a third layer filter may filter facets based on priority (e.g., does an alarm meet a threshold amount to display?), and a fourth layer filter may filter facets based on user preferences.
As discussed in more detail below, the software system of this disclosure also can facilitate information filtering by organizing functions and data from multiple sources into role-specific layers, such as the maintenance layer, the operator layer, the control system engineering layer, etc.
Example Process Control Environment
In an example implementation, the role-based processor 102 implements the software system that generates views based on user's organizational roles, as outlined above. For ease of illustration, example functionality of the software system outlined above is discussed below with reference to the role-based processor 102.
The example process control system 104 may include any type of manufacturing facility, process facility, automation facility, safety instrumented facility, and/or any other type of process control structure or system. In some examples, the process control system 104 may include multiple facilities located at different locations. Additionally, the example process control environment 100 may include other process control systems (not shown) that may be included within the same facility and/or located at a different facility.
The example process control environment 100 is provided to illustrate one type of system within which the example methods and software systems described in greater detail below may be advantageously employed. However, the example methods and software systems described herein may, if desired, be employed in other systems of greater or less complexity than the example process control environment 100 and/or the process control system 104 shown in
The example process control system 104 of
In the illustrated example of
The example controller 108 of
In the example process control environment 100 of
The example of
The example LAN 110 may be implemented using any desired communication medium and protocol. For example, the LAN 110 may be based on a hardwired or wireless Ethernet communication scheme. However, any other suitable communication medium and protocol could be used. Furthermore, although a single LAN 110 is shown, more than one LAN and appropriate communication hardware within the workstation 106 may be used to provide redundant communication paths between the workstation 106 and a respective similar workstation (not shown).
The example workstation 106 and/or other workstations with access to the process control system 104 may be configured to view, modify, and/or correct one or more processes within the process control system 104. The example workstation 106 enables a user to review and/or operate one or more user display screens and/or applications that enable the user to view role-based process control system variables, view role-based process control system states, view role-based process control system conditions, view role-based process control system alarms, and/or change process control system settings (e.g., set points, operating states, clear alarms, silence alarms, etc.). An example manner of implementing the example workstation 106 is described below in connection with
The example workstation 106 includes and/or implements the role-based processor 102 to monitor the process control routine and/or process control information transmitted by the controller 108 to identify and/or determine status issues. The process control information may originate from a process control device that may include, for example, the field devices 112, the controller 108, a component within the process control system 104, etc. Alternatively, the process control information and/or status information may be generated by applications. The applications may utilize process control information from the field devices 112 and/or the controller 108 to calculate and/or determine status information and/or other process control information. For example, the DeltaV software suite sold by Emerson Process Management, includes applications that may collect tuning, status conditions, diagnostics and/or performance parameters or metrics generated by the field devices 112. Using the collected parameters, the application may display system-wide status information or more granular, specific role-based visualizations via a user interface.
Example Functionality of a Role-Based Processor
In some examples, the role-based processor 102 dynamically customizes information presented to a user via a role-based presentation interface (e.g., example role-based presentation interfaces of
In some examples, the role-based processor 102 determines whether information is qualifying information based on a comparison of the user role to a list of qualifying information stored in a data structure such as, for example, a lookup table. In some such examples, if the information matches qualifying information listed in the lookup table, the information is determined to be qualifying information. For example, the role-based processor 102 may display physical facets and graphical facets of an object (e.g., node or entity) in the process control system to a maintenance technician, while filtering out logical facets of the object based on the list of qualifying information stored in the lookup table.
In some examples, the role-based processor 102 may apply a user-controlled filter. In some such examples, the user-controlled filter may override qualifying information or preferred type of visualization. For example, a user may prefer information to be displayed as a table rather than as a pie chart or to view objects or facets that are typically not associated with the user role. In some such examples, qualifying information based on, for example, the organizational role or responsibilities of the user may be further filtered by the personal preferences of the user (e.g., a user-controlled filter).
The role-based processor 102 also can facilitate information filtering by organizing functions and data from one or more sources into role-specific layers, such as the maintenance layer, the operator layer, the control system engineering layer, etc. Each layer can correspond to a collection of data from one or several sources. For example, the role-based processor 102 can generate an instance of the maintenance layer that includes diagnostic parameters reported by field devices, maintenance history retrieved from a maintenance database, observations regarding field devices submitted by technicians, etc. The role-based processor 102 can display information for the maintenance layer when the user's organizational role is maintenance manager, for example, but not display the information for the maintenance layer when the role is control system engineer. In some implementations, the role-based processor 102 allows users to activate and deactivate a role-specific layer via a small set of commands, possibly a single command. Moreover, in some implementations, a role-specific layer also can specify the layout of the information related to the layer.
Further, the role-based processor 102 can facilitate navigation between informational screens based on the organizational role of the user. For example, when the role-based 102 displays equipment status information to both an instrument engineer and a configuration engineer, the role-based processor 102 can provide a control for directly navigating to equipment tracking screens to the instrument engineer but not the configuration engineer. The control can be, for example, a button on the toolbar, an option in a pull-down menu, an icon displayed next to the depiction of a unit of equipment, or any other suitable interactive indicator of a direct link. In this manner, the role-based processor 102 can help the user “walk the path” of relationships between functions and/or entities to better understand how information in the process control environment 100 is logically linked.
Still further, the role-based processor 102 can arrange links to information of various types into a hierarchical menu and “pivot,” or emphasize a subset of the links in the menu, according to the organizational role of the user to generate a particular perspective. An example menu can include list selectable assets, I/O points, logic entities, visualizations, etc. Depending on the user's organizational role, the role-based processor 102 can generate an asset-centric or a logic-centric view of the menu, for example.
More generally, the role-processor 102 can provide role-dependent views to all personnel involved in configuring, operating, supervising, etc. a process control environment. One such role may be that of an operator responsible for supervising process parameters such as flow, level, temperature, pressure, etc., monitoring events related to process control loops, and generally assuring accuracy of control logic implemented in the process plant. Another role may that of a maintenance technician responsible for monitoring and calibrating individual field devices, and generally supervising equipment used in the process control plant. Yet another role may be that of a network administrator responsible for network connectivity between workstations, controllers, data servers, databases, and other network devices, security of the plant network, installation of software updates, etc. As a more specific example, operator interface of the role-based processor 102 allows operators to supervise operation of a process plant, in which multiple field devices execute process control functions defining a control strategy. The role-based processor 102 may generate views with information specific to operators' roles rather than providing a generic operator view at an operator workstation. To this end, the role-based processor 102 may ask that an operator log in or otherwise identify his role. In addition to providing role-specific layers controls and information to an operator, the role-based processor 102 may support persistent (i.e., surviving across log-in sessions) user-specific configuration.
A role-dependent operator view may generate a graphical representation of a process plant (the “process graphic”) and display additional information for a selected portion of the process plant according to the operator's role. The process graphic can include, for example, graphic or schematic depictions of field devices (e.g., valves, pumps, sensors, transmitters) that participate in the corresponding process control function, equipment on which these field devices operate (e.g., tanks, mixers), connections for conducting process fluids between the field devices and the equipment (e.g., pipes), and electrical connections between the field devices (e.g., wires, wireless links). The role-based processor 102 may display the additional information via a supplemental display implemented, for example, as one or several separate windows, a graphic layer superimposed on the process graphic, or text and/or graphics on a banner disposed below, above, or next to the process graphic.
In some scenarios, the operator selects a location on the process graphic and activates a control on the user interface such as a button, for example, to request the supplemental display from the user interface. In other scenarios, the role-based processor 102 automatically activates the supplemental display in response to detecting an abnormal condition, according to a pre-configured schedule, or based on another event. The role-based processor 102 may interpret the location which the user selects according to the user's organizational role. Thus, by clicking on a location at or near a graphic illustrating a flow rate sensor, a maintenance technician can select the physical device (i.e., the flow rate sensor), whereas an operator can select a control loop in which the flow rate sensor operates.
For an operator, the supplemental display (or “the operator supplemental display”) may include a configuration display that depicts control logic implemented by a certain portion of the process plant as several interconnected logic blocks, for example. In some cases, the logic blocks are FoundationTM Fieldbus function blocks. The operator supplemental display may also include a parameter history display to illustrate the history of a certain process parameter (e.g., flow rate at an input to a certain processing stage). Further, the operator supplemental display may include a knowledge display that lists links to internal and external documentation available for the portion of the process plant, provides access to operator logbooks, suggests help topics, etc. Still further, the operator supplemental display may include a device dependencies display that lists identifies of the field devices used in the portion of the process plant to which the process graphic corresponds. The device dependencies display may retrieve device-specific graphics from a configuration database to display next to each identifier of a field device. If desired, the operator supplemental display may additionally include a detail display that provides detailed information related to devices used in the portion of the process plant to which the process graphic corresponds, interlocks associated with these devices and the corresponding interlock conditions, alarms generated for the portion of the process plant, tuning parameters, etc.
As yet another example, when the user is a maintenance technician or is otherwise associated with maintenance personnel, the supplemental display (or “the maintenance supplemental display”) may include a control dependencies display for a selected device that identifies a portion of the control strategy (e.g., a control loop) in which the device operates. The maintenance supplemental display may also include a knowledge display generally similar to the knowledge display generated for the operator. In particular, the knowledge display may list links to internal and external documentation available for the device, as well as links to operator logbooks, help topics, etc. Further, the maintenance supplemental display may include a diagnostic display to assist the maintenance technician with locating the physical device in the process plant, identifying the source of an alarm, and determining the relationship between the device and other equipment. The diagnostic display may, for example, depict a Fieldbus segment along with the several devices coupled to the Fieldbus segment, and identify the device from which an alarm has been received by highlighting the corresponding graphic, displaying an exclamation mark or other visual indicator next to the device, or in any other suitable manner. Still further, the maintenance supplemental display may include a device description display that includes, in some implementations, the device identification consistent the Extended Device Description Language (EDDL), device configuration and setup data, and device diagnostics data. In some cases, the device description display includes a so-called device faceplate implemented as a photograph or a drawing identical or similar to the actual physical appearance of the device and, if desired, several dials or meters to depict process data specific to the device (e.g., pressure setpoints, pressure measurement, percentage of valve movement). When the device is an intelligent valve executing corresponding valve software (e.g., AMS ValveLink application offered by Emerson Process ManagementTM as part of the PlantWeb® suite), the maintenance supplemental display may additionally include a valve software display updated with data output by the valve software.
The role-based processor 102 may functions for generating a primary display as well as functions for generating a supplemental display. The primary display can include a process graphic defined by a configuration engineer, for example, and the role-based processor 102 can automatically select and display, via the supplemental display, additional information in response to detecting an event in the process plant or receiving a command from the user interface. To generate the primary and/or the secondary display, the role-based processor 102 can obtain (i) real-time process data from the process control system 104, (ii) control strategy information such as control logic, device configuration data, process and device graphics, links between control strategies and devices, etc. from a configuration database (not shown to simply illustration), (iii) application data from one or several specialized applications, (iv) historical data related to process or device parameters from a historian, implemented in one or several databases (now shown), (v) reference information from a knowledge database (not shown), etc.
In some cases, the role-based processor 102 uses display structures that define several layers such as an operator layer, a maintenance layer, a network layer, etc. The role-based processor 102 may update information related to each layer using real-time process data irrespective of the organizational role of the user, but activate the display of only the selected one or several layers according to the currently relevant/selected view (e.g., operator, maintenance).
The supplemental display may be user-configurable, so that an individual user can specify that information should be included in the corresponding supplemental display. In some embodiments, the role-based processor 102 automatically switches an operator supplemental display to a maintenance supplemental display, or vice versa, in response to a command received from the user interface. While the examples disclosed herein relate to filtering the process control information based on user roles and objects, others methods of filtering are also possible. For example, the role-based processor 102 may filter information based on a comparison of permission or security clearance level, tags or metadata associated with the process control facet information or the context of the object within the control system.
Example Implementation of a Workstation that Provides Role-Based Views
To allow a user to interact with the example processor 200, the example workstation 106 of
The example operating system 204 of
To present process control system displays and/or applications, the example workstation 106 of
In some examples, facets of information filtered by the role-based processor 102 includes tasks and one or more sub-tasks to be performed by the user. For example, a task may include diagnosing the cause of a non-updating display element (e.g., a main task). Performing the main task may include determining which components are associated with the display element (e.g., a first sub-task), verifying the integrity of the input/output connections for that component (e.g., a second sub-task), etc.
In the illustrated example, the information is filtered based on criteria associated with user roles. Roles may be defined by one or more tasks or responsibilities typically performed by the personnel. An example role is a control room operator. Responsibilities and/or tasks associated with such an operator may include detecting issues (e.g., status issues) that could affect safety, the environment or equipment at and around near the plant, ensuring plant equipment performance and safety, performing planned startup/shutdown of production equipment, monitoring and controlling processes to ensure optimal performance, and/or watching key trends to identify potential process issues and taking corrective actions. Another example role is a control systems engineer having associated responsibilities and/or tasks including supporting production from a control system perspective (e.g., making sure the process is performing correctly) and/or controlling system configurations, designing, implementing and testing configurations, troubleshooting production problems to determine if the problems are control system related, determining alarm notifications (e.g., conditional alarms, limits, etc.) and/or maintaining control strategies. Responsibilities, goals, and/or tasks may be pre-assigned to a role, and modified (e.g., added, removed, adjusted, etc.) at a later time by, for example, by a user manager via, for example, a user manager software application.
For example, the role-based processor 102 may identify a number of roles, where each role includes a pre-assigned set of responsibilities, goals and/or tasks. For instance, the example role-based processor 102 may have different responsibilities, goals and/or tasks pre-assigned for a batch operator, a lead control room operator, a production manager, a reliability manager, a control system engineer, a process engineer, an instrument engineer, an instrument technician, a reliability maintenance technician, a technical support engineer, a unit maintenance technician, a control system administrator, a control room operator, etc. While a plant may have personnel performing the responsibilities, goals and/or tasks associated with each of the roles, the plant may not have the number of personnel to allow each person to have a different role. That is, in some plants, one person may perform the responsibilities, goals and/or tasks of multiple pre-assigned roles. Additionally, the same role may have different responsibilities, goals and/or tasks at different plants. Thus, a user manager software application may be used to customize the responsibilities, goals and/or tasks assigned to each role or specific to each person. For example, while a person at a plant may have the job title of Production Manager, the person may perform the tasks of a production manager, a process engineer and an instrument engineer. In some such examples, the user manager may customize the responsibilities, goals and/or tasks assigned to the person to include the tasks pre-assigned for a production manager, a process engineer and an instrument engineer. As a result, the person does not have to change roles in the system because of the different information the person desires to have displayed. Rather, the information available to a production manager, a process engineer and an instrument engineer are all available to the user at the same time without additional user initiated filtering (e.g., mouse clicks).
In some examples, the role-based processor 102 implements security via permissions on tasks. Users are granted permissions, and tasks have associated permission levels. Permission levels may be specified for tasks, modules, module parameters, parameter fields, instrumentation assets, digital control system hardware, and/or plant equipment. In some examples, the permission level for a main task does not override the permission level for any sub-task(s).
In some examples, personnel may be assigned a span of control. The span is all the tasks that a user can perform. The span of control may be geographically assigned or location-based (e.g., site-wide, an area of the plant, a cell of the plant, or a unit of the process). In some examples, the span of control may be object-based (e.g., limited to certain objects or facets of information regarding the object). For example, the span of control for a user may limit the user to calibrating controller instrumentation assets. In some other examples, the span of control may be a combination of location-based or geographically-based and object-based (e.g., a user is allowed to calibrate controller instrumentation assets located in a Reactors area portion of the plant). In some examples, the span of control may be application-based (e.g., a user is allowed to configure aspects of software applications performing security functions). In some other examples, the span of control may be applied to a workstation. For example, certain workstations included in a process control environment (e.g., the process control environment 100 of
While an example manner of implementing the example workstation 106 of
Examples of presentation interfaces
In some examples, the diagnostic tasks displayed in the tasks list 320 varies based on the personnel (e.g., the organizational role and/or responsibilities of a user). For example, as the Verbose Log and the Application Log tasks listed in the tasks list 320 pertain to debugging software applications (e.g., the example software application performing diagnostic functions), the role-based processor 102 may filter out the Verbose Log and/or the Application Log tasks when creating the role-based presentation interface 300 for a control systems engineer.
In some examples, the information displayed on the role-based presentation interface 400 depends on the personnel (e.g., the organizational role and/or responsibilities of a user). For example, the role-based processor 102 of
In some examples, the desktop arrangement and/or display layout may be determined by the role-based processor 102 based on the organizational role and/or the responsibilities of the user. For example, identifying that the workstation 106 includes a four monitor configuration, the role-based processor 102 may automatically create and/or define a different role-based presentation interface 210 for each of the monitors based on four common software applications utilized by the user role.
In some examples, the role-based presentation interface 500 includes a different combination and/or arrangement of monitors. For example, a two, three, or more monitor display may be arranged. In some examples, the role-based presentation interfaces 510, 512, 514, 516 for each of the monitors 502, 504, 506, 508 update or refresh based on changes or selections to information displayed in a different role-based presentation interface. For example, a user may select a valve control module on the role-based presentation interface 510, and the role-based presentation interface 512 may display a function block that contains the input/output point references for the valve control module, the role-based presentation interface 514 may display the primary control display for the valve control module with the valve highlighted, and the role-based presentation interface 516 may display detailed information for the valve. In some examples, whether one or more role-based presentation interfaces refresh or update based on changes or selections in a different role-based presentation interface may be configured for a user role and/or by the user.
The example role-based presentation interface 700 also includes an example resources tab 708 that is also in the collapsed state. The resources tab 708 provides information regarding system capacity for the selected object (e.g., a controller). When in the expanded state, the resources tab 708 displays information to the user regarding the system hardware/configuration against documented system fences. System fences limit the number of resources that may be attributed to an object. For example, a system fence for a controller may assign the maximum number of modules configurable for the controller. In some such examples, the system capacity information for the controller may display the number of modules currently configured for the controller. In some examples, the resource tab 708 may display a chart (e.g., a bar chart) of the data to help visualize capacity utilization. In some examples, the system capacity information displayed may be color coded according to capacity tiers. For example, when the number of modules is less than 75 percent of the system fence (e.g., the maximum number of modules configurable for the object), the display is green. In contrast, when the number of modules is greater than 90 percent of the system fence, the display may be orange.
In addition, the system capacity information displayed in the role-based presentation interface 700 may vary depending on the user. For example, the role-based processor 102 of
Example process and platform for generating role-based views
Alternatively, some or all of the example operations of
The process of
At block 806, the role-based processor 102 receives user criteria for determining whether to display or filter out information. For example, user criteria may be based on an organizational role or responsibilities of a user. In other examples, user criteria may correspond to certain types of objects, facets of information regarding objects, and/or relationships between objects. For example, asset or node descriptor information for a node may be displayed on a role-based presentation interface, while logic information relating to the node may be filtered out by the role-based processor 102. In some examples, when a user accesses the workstation 106, the user logs into an account and initiates a session, which is associated with a user role (e.g., as defined by a user manager software application). In some such examples, the role-based processor 102 receives default user criteria based on the organizational role and/or responsibilities of the logged in user.
At block 808, the role-based processor 102 determines whether the information meets the user criteria. For example, the role-based processor 102 may use the user role to compare the information to a list of qualifying information associated with the user role. In some examples, the list of qualifying information is stored in a data structure (e.g., a lookup table) in a memory (e.g., the example main memory 202 of
Otherwise, when role-based processor 102 determines the information does qualify at block 808, control proceeds to block 812, and the role-based processor 102 applies any user preferences atop the qualifying information. For example, the user may prefer certain visualizations (e.g., information displayed as a table rather than in a pie chart). In some examples, the user preferences may override displaying qualifying information. For example, a production manager who prefers to indirectly monitor an asset (e.g., a valve), may set a user preference to hide information regarding the valve by default. In some such examples, the user preference to hide (or not display) certain information overrides displaying qualifying information regarding the valve. At block 814, the role-based processor 102 displays the information. In addition, the role-based processor 102 generates and/or updates the role-based presentation interface 210 based on the determination made at blocks 808 and 812. Control then returns to block 802 to display the updated role-based presentation interface 210.
The processor platform 900 of the example of
The processor platform 900 also includes an interface circuit 914. The interface circuit 914 may be implemented by any type of interface standard, such as a USB interface, a Bluetooth interface, an external memory interface, serial port, general purpose input/output, etc. One or more input devices 916 and one or more output devices 918 are connected to the interface circuit 914. The input devices 916 and/or output devices 918 may be used to, for example, provide the role-based presentation interface 210 to the example output device 216 of
Example menus pivoted according to a role-based perspective
Generally speaking, pivoting a menu around a certain selected category of items or resources can include organizing items around the selected category, selecting a particular level of detail for one or more branches of the menu, providing visual emphasis to different items of the menu, applying different color or other styling parameters to different item, etc. The role-based processor 102 can utilize some categories of items in multiple views. For example, the role-based processor 102 can utilize plant areas, units, and process cells in both asset-centric and logic-centric presentations of the menu.
In the menu 1000, items 1002-1014 correspond to assets, items 1020-1024 correspond to logic items, items 1040-1048 correspond to I/O points; item 1060 corresponds to a graphical resource; item 1080 to a Key Performance Indicator (KPI). Because the menu 1000 is pivoted around assets, the items 1002-1014 provide the primary organization of the menu 1000, with the remaining items appearing as being subordinate, or otherwise related to, the respective assets.
While a role has a default primary perspective, such as the asset-centric perspective of
From the foregoing, it will be appreciated that an interactive menu for a same set of items related to various facets of a process control system can be organized primarily around assets (
Further Illustration of Role-Based Filtering
To provide an additional illustration of role-based filtering, a diagram 1200 of
The role-based processor 102 can select certain types of data within each of these categories as being most relevant to certain roles. For example, the role-based processor 102 can select process displays for display to a control system engineer, at least as a default option (in at least some of the implementations, the users in other roles can view process displays upon additional request). The role-based processor 102 can select dashboards for each of a control system engineer, an electrical and instrumentation engineer, and a production manager. As also illustrated in
Further, the role-based processor 102 can help the user “walk the path” of relationships between types of data. Referring to
In general, the role-based processor 102 can implement navigation paths for transitions between screens of information and/or controls, where the navigation paths are specific to users' organizational roles. In this manner, the role-based processor 102 can help the user better understand the “big picture” and relevant information available in the system.
Although certain example methods, apparatus and articles of manufacture have been described herein, the scope of coverage of this patent is not limited thereto. Such examples are intended to be non-limiting illustrative examples. On the contrary, this patent covers all methods, apparatus and articles of manufacture fairly falling within the scope of the appended claims either literally or under the doctrine of equivalents.
This application is a continuation-in-part of U.S. patent application Ser. No. 14/048,844, titled “Configurable Use Displays in a Process Control System” and filed on Oct. 8, 2013, which claims the benefit of U.S. Provisional Application No. 61/711,105, titled “Configurable Use Displays in a Process Control System” and filed on Oct. 8, 2012; and U.S. Provisional Application No. 61/711,110, titled “Process Plant Configurations Using Flexible Objects,” and filed on Oct. 8, 2012. The entire disclosures of these applications are hereby incorporated by reference herein.
Number | Name | Date | Kind |
---|---|---|---|
5241624 | Torres | Aug 1993 | A |
5564007 | Kazen-Goudarzi et al. | Oct 1996 | A |
5777616 | Bates et al. | Jul 1998 | A |
5812394 | Lewis et al. | Sep 1998 | A |
5950201 | Van Huben et al. | Sep 1999 | A |
6014612 | Larson et al. | Jan 2000 | A |
6211877 | Steele et al. | Apr 2001 | B1 |
6282175 | Steele et al. | Aug 2001 | B1 |
6577323 | Jamieson et al. | Jun 2003 | B1 |
6839852 | Pantuso et al. | Jan 2005 | B1 |
6942143 | Iida et al. | Sep 2005 | B1 |
6975966 | Scott et al. | Dec 2005 | B2 |
6990652 | Parthasarathy et al. | Jan 2006 | B1 |
7010450 | Law et al. | Mar 2006 | B2 |
7030747 | Scott et al. | Apr 2006 | B2 |
7043311 | Nixon et al. | May 2006 | B2 |
7089530 | Dardinski et al. | Aug 2006 | B1 |
7110835 | Blevins et al. | Sep 2006 | B2 |
7117052 | Lucas et al. | Oct 2006 | B2 |
7146231 | Schleiss et al. | Dec 2006 | B2 |
7237109 | Scott et al. | Jun 2007 | B2 |
7272815 | Eldridge et al. | Sep 2007 | B1 |
7330768 | Scott et al. | Feb 2008 | B2 |
7389204 | Eryurek et al. | Jun 2008 | B2 |
7421458 | Taylor et al. | Sep 2008 | B1 |
7526347 | Lucas et al. | Apr 2009 | B2 |
7647126 | Blevins et al. | Jan 2010 | B2 |
7680546 | Gilbert et al. | Mar 2010 | B2 |
7729789 | Blevins et al. | Jun 2010 | B2 |
7783370 | Nixon et al. | Aug 2010 | B2 |
7890927 | Eldridge et al. | Feb 2011 | B2 |
7904821 | Tertitski et al. | Mar 2011 | B1 |
7984420 | Eldridge et al. | Jul 2011 | B2 |
8028272 | Eldridge et al. | Sep 2011 | B2 |
8028275 | Eldridge et al. | Sep 2011 | B2 |
8060222 | Eldridge et al. | Nov 2011 | B2 |
8065131 | McDonald et al. | Nov 2011 | B2 |
8065202 | Ballaro et al. | Nov 2011 | B1 |
8127060 | Doll et al. | Feb 2012 | B2 |
8127241 | Blevins et al. | Feb 2012 | B2 |
8135481 | Blevins et al. | Mar 2012 | B2 |
8225271 | Eldridge et al. | Jul 2012 | B2 |
8229579 | Eldridge et al. | Jul 2012 | B2 |
8368640 | Dardinski et al. | Feb 2013 | B2 |
8473917 | Weatherhead et al. | Jun 2013 | B2 |
8896603 | Hammack et al. | Nov 2014 | B2 |
9043003 | Campney et al. | May 2015 | B2 |
9164647 | Ueno et al. | Oct 2015 | B2 |
9792004 | Hammack et al. | Oct 2017 | B2 |
10139812 | Jones et al. | Nov 2018 | B2 |
20020161772 | Bergelson et al. | Oct 2002 | A1 |
20030236576 | Resnick et al. | Dec 2003 | A1 |
20040075689 | Schleiss et al. | Apr 2004 | A1 |
20040153804 | Blevins et al. | Aug 2004 | A1 |
20040186927 | Eryurek et al. | Sep 2004 | A1 |
20040201602 | Mody et al. | Oct 2004 | A1 |
20040260408 | Scott et al. | Dec 2004 | A1 |
20050027376 | Lucas et al. | Feb 2005 | A1 |
20050027377 | Lucas et al. | Feb 2005 | A1 |
20050096872 | Blevins et al. | May 2005 | A1 |
20050125787 | Tertitski et al. | Jun 2005 | A1 |
20050251380 | Calvert et al. | Nov 2005 | A1 |
20060015195 | Lehman et al. | Jan 2006 | A1 |
20060071067 | Iida | Apr 2006 | A1 |
20060117268 | Talley et al. | Jun 2006 | A1 |
20060206860 | Dardinski et al. | Sep 2006 | A1 |
20060206866 | Eldrige et al. | Sep 2006 | A1 |
20070005266 | Blevins et al. | Jan 2007 | A1 |
20070132779 | Gilbert et al. | Jun 2007 | A1 |
20070139441 | Lucas et al. | Jun 2007 | A1 |
20070150081 | Nixon et al. | Jun 2007 | A1 |
20070156264 | Schleiss et al. | Jul 2007 | A1 |
20070165031 | Gilbert et al. | Jul 2007 | A1 |
20070168060 | Nixon et al. | Jul 2007 | A1 |
20070168065 | Nixon et al. | Jul 2007 | A1 |
20070168174 | Davari et al. | Jul 2007 | A1 |
20070171921 | Wookey et al. | Jul 2007 | A1 |
20070174225 | Blevins et al. | Jul 2007 | A1 |
20070208549 | Blevins et al. | Sep 2007 | A1 |
20080066004 | Blevins et al. | Mar 2008 | A1 |
20080163164 | Chowdhary | Jul 2008 | A1 |
20080188960 | Nixon et al. | Aug 2008 | A1 |
20080189638 | Mody et al. | Aug 2008 | A1 |
20090024656 | Wellman | Jan 2009 | A1 |
20090088875 | Baier | Apr 2009 | A1 |
20090118845 | Eldridge et al. | May 2009 | A1 |
20090118846 | Eldridge et al. | May 2009 | A1 |
20090125128 | Eldridge et al. | May 2009 | A1 |
20090125129 | Eldridge et al. | May 2009 | A1 |
20090125130 | Eldridge et al. | May 2009 | A1 |
20090125131 | Eldridge et al. | May 2009 | A1 |
20090132996 | Eldridge et al. | May 2009 | A1 |
20090177543 | Ram et al. | Jul 2009 | A1 |
20090210386 | Cahill | Aug 2009 | A1 |
20090217200 | Hammack et al. | Aug 2009 | A1 |
20100017746 | Husoy et al. | Jan 2010 | A1 |
20100082554 | Beatty et al. | Apr 2010 | A1 |
20100168874 | Lucas et al. | Jul 2010 | A1 |
20100188410 | Gilbert et al. | Jul 2010 | A1 |
20100191554 | Singh | Jul 2010 | A1 |
20100222899 | Blevins et al. | Sep 2010 | A1 |
20100222902 | Eldridge et al. | Sep 2010 | A1 |
20100223593 | Eldridge et al. | Sep 2010 | A1 |
20100228373 | Lucas et al. | Sep 2010 | A1 |
20100235767 | Hammack et al. | Sep 2010 | A1 |
20100275139 | Hammack et al. | Oct 2010 | A1 |
20100305720 | Doll et al. | Dec 2010 | A1 |
20100305721 | Kostadinov et al. | Dec 2010 | A1 |
20110016099 | Peer et al. | Jan 2011 | A1 |
20110029102 | Campney et al. | Feb 2011 | A1 |
20110230980 | Hammack et al. | Sep 2011 | A1 |
20120029661 | Jones et al. | Feb 2012 | A1 |
20120030089 | Ram et al. | Feb 2012 | A1 |
20120041570 | Jones et al. | Feb 2012 | A1 |
20120198547 | Fredette | Aug 2012 | A1 |
20120215464 | Daubney | Aug 2012 | A1 |
20130125007 | Chaudhri et al. | May 2013 | A1 |
20130145279 | Ricci | Jun 2013 | A1 |
20130145297 | Ricci et al. | Jun 2013 | A1 |
20130346908 | Zhang | Dec 2013 | A1 |
20140075371 | Carmi | Mar 2014 | A1 |
20140088776 | Brandt | Mar 2014 | A1 |
20140100668 | Jundt et al. | Apr 2014 | A1 |
20140100669 | Hammack et al. | Apr 2014 | A1 |
20140100676 | Scott et al. | Apr 2014 | A1 |
20140108985 | Scott et al. | Apr 2014 | A1 |
20140250420 | Smith et al. | Sep 2014 | A1 |
20140270888 | Yeum | Sep 2014 | A1 |
20150105878 | Jones et al. | Apr 2015 | A1 |
20150106753 | Tran et al. | Apr 2015 | A1 |
Number | Date | Country |
---|---|---|
1313966 | Sep 2001 | CN |
1702582 | Nov 2005 | CN |
1716137 | Jan 2006 | CN |
1950761 | Apr 2007 | CN |
1950771 | Apr 2007 | CN |
101095131 | Dec 2007 | CN |
102013045 | Apr 2011 | CN |
102033747 | Apr 2011 | CN |
102043403 | May 2011 | CN |
102419578 | Apr 2012 | CN |
102819425 | Dec 2012 | CN |
0 816 998 | Jan 1998 | EP |
2 482 186 | Aug 2012 | EP |
2 608 025 | Jun 2013 | EP |
2 801 941 | Nov 2014 | EP |
2 398 659 | Aug 2004 | GB |
02-208693 | Aug 1990 | JP |
06-309425 | Nov 1994 | JP |
11-282655 | Oct 1999 | JP |
2000-222184 | Aug 2000 | JP |
2001-195255 | Jul 2001 | JP |
2004-85243 | Mar 2004 | JP |
2004-133900 | Apr 2004 | JP |
2005-339494 | Dec 2005 | JP |
2006-252145 | Sep 2006 | JP |
2007-034456 | Feb 2007 | JP |
2007-157039 | Jun 2007 | JP |
2007-536648 | Dec 2007 | JP |
2008-118068 | May 2008 | JP |
2009-199597 | Sep 2009 | JP |
2010-257464 | Nov 2010 | JP |
2010-266915 | Nov 2010 | JP |
2011-118493 | Jun 2011 | JP |
2012-504291 | Feb 2012 | JP |
2012-73993 | Apr 2012 | JP |
2012-103978 | May 2012 | JP |
2015-536843 | Dec 2015 | JP |
WO-2010037145 | Apr 2010 | WO |
WO-2014058889 | Apr 2014 | WO |
Entry |
---|
Search Report for Application No. GB1521910.8, dated Jun. 2, 2016. |
Examination Report for Application No. GB1505495.0, dated Sep. 30, 2015. |
International Preliminary Report on Patentability for Application No. PCT/US2013/063914, dated Apr. 8, 2015. |
International Preliminary Report on Patentability for Application No. PCT/US2013/063894, dated Apr. 8, 2015. |
International Search Report and Written Opinion for Application No. PCT/US2013/063894, dated Jan. 7, 2014. |
International Search Report and Written Opinion for Application No. PCT/US2013/063914, dated Jan. 22, 2014. |
Examination Report for Application No. GB1505495.0, dated Sep. 28, 2016. |
Office Action for Chinese Application No. 201380063079.6, dated Sep. 1, 2016. |
Office Action for Chinese Application No. 201380063079.6, dated Jan. 23, 2017. |
Office Action for Chinese Application No. 201380064166.3, dated May 2, 2017. |
Office Action for Chinese Application No. 201380064166.3, dated Sep. 7, 2016. |
Combined Search and Examination Report for Application No. GB1917091.9, dated Mar. 5, 2020. |
Decision of Dismissal of Amendment for Japanese Application No. 2015-536840, dated Jun. 4, 2019. |
Decision of Refusal for Japanese Application No. 2015-246013, dated May 26, 2020. |
Examination Report for Application No. GB1505494.3, dated Jan. 29, 2019. |
Examination Report for Application No. GB1521910.8, dated Sep. 2, 2020. |
Extended European Search Report for Application No. 18187614.5, dated Jan. 18, 2019. |
Notice of Reasons for Rejection for Japanese Application No. 2015-246013, dated Nov. 12, 2019. |
Notice of Reasons for Rejection for Japanese Application No. 2018-196323, dated Oct. 21, 2019. |
Notice of Reasons for Rejection for Japanese Application No. 2018-196324, dated Oct. 21, 2019. |
Notification of First Office Action for Chinese Application No. 201510947366.4, dated Jun. 21, 2019. |
Office Action for Chinese Application No. 201611003855.5, dated Nov. 27, 2018. |
Office Action for Chinese Application No. 201710969588.5, dated Jul. 22, 2019. |
Office Action for European Application No. 18187614.5, dated Dec. 3, 2020. |
Second Office Action for Chinese Application No. 201510947366.4, dated Mar. 11, 2020. |
Second Office Action for Chinese Application No. 201611003855.5, dated Aug. 14, 2019. |
Third Office Action for Chinese Application No. 201510947366.4, dated Sep. 2, 2020. |
Third Office Action for Chinese Application No. 201611003855.5, dated Nov. 22, 2019. |
Notice of Reasons for Rejection for Japanese Application No. 2015-536840, dated Jan. 9, 2018. |
Notice of Reasons for Rejection for Japanese Application No. 2015-536843, dated Jan. 9, 2018. |
Office Action for Chinese Application No. 201380063079.6, dated Aug. 2, 2017. |
Office Action for Chinese Application No. 201380063079.6, dated Oct. 30, 2017. |
Fourth Office Action for Chinese Application No. 201510947366.4, dated Mar. 25, 2021. |
Notice of Reasons of Rejection for Japanese Application No. 2020-120245, dated Oct. 5, 2021. |
Notice of Reasons of Rejection for Japanese Application No. 2020-188734, dated Dec. 7, 2021. |
Number | Date | Country | |
---|---|---|---|
20150105878 A1 | Apr 2015 | US |
Number | Date | Country | |
---|---|---|---|
61711105 | Oct 2012 | US | |
61711110 | Oct 2012 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 14048844 | Oct 2013 | US |
Child | 14574025 | US |