System and method for embedding web frames in process graphics - Patents.com
The graphical display configuration system addresses the complexity of operator HMI configurations by enabling real-time customization and updates within industrial process control systems, enhancing flexibility and ease of use.
Patent Information
- Application Number
- JP2023194334
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2018-09-04
- Filing Date
- 2023-11-15
- Publication Date
- 2025-04-30
- Estimated Expiration
- 2039-08-29
AI Technical Summary
Current operator HMI configurations in industrial process control systems are complex and difficult to develop, scale, and maintain, especially due to increased process complexity and the need for operators to monitor numerous process graphics.
A graphical display configuration system that includes a graphical display configuration application and a centralized configuration database, allowing for the creation, definition, and publication of operator HMIs. This system enables real-time updates and customization of display views on operator workstations without requiring them to stop execution or download new configurations.
The system provides a flexible and easy-to-use platform for designing and maintaining industrial process control HMIs, allowing for independent customization of display views by operators without affecting other users or requiring communication with the configuration environment.
Smart Images

Figure 0007670781000001 
Figure 0007670781000002 
Figure 0007670781000003
Abstract
Description
[Technical field]
[0001] The present disclosure relates generally to process control systems, and more particularly to a system and method for configuring graphics utilized by operators to display and respond to real-time conditions and their operation within an on-line industrial process plant. [Background technology]
[0002] Distributed process control systems are used in chemical, pharmaceutical, petroleum, oil and gas, metals and mining, pulp and paper, or other types of industrial process plants to generate or produce one or more physical products from raw materials and / or other types of raw materials by controlling one or more industrial processes. As such, a distributed process control system typically includes one or more process controllers and input / output (I / O) devices communicatively connected to at least one host or operator interface device and one or more field devices via an analog, digital or combination analog / digital bus or via a wireless communication link or network. The field devices, which may be, for example, valves, valve positioners, switches, and transmitters (e.g., temperature, pressure, level and flow sensors), are placed within the process environment and typically perform physical or process control functions, such as opening and closing valves, or measuring process parameters, to control one or more industrial processes running within the process plant or system. Smart field devices, such as field devices conforming to well-known Fieldbus protocols, can also perform control calculations, alarm functions, and other control functions typically implemented within a controller. Process controllers, which are also typically located within a plant environment, execute controller applications that execute different control modules that receive signals indicative of process measurements made by sensors or field devices and / or other information related to the field devices, e.g., make process control decisions and generate control signals based on the received information, and coordinate with control modules or blocks that execute in the field devices, such as HART®, WirelessHART®, and FOUNDATION® Fieldbus field devices. The control modules within the controllers send control signals over communication lines or links to the field devices, thereby controlling the operation of at least a portion of the process plant or system.
[0003] Information from the field devices and controllers is typically, but not always, made available to one or more other hardware devices via data highways, such as operator interfaces, personal computers or computing devices, data historians, report generators, centralized databases, or other centralized computing devices that are typically, but not always, located in a control room or other location away from the harsh plant environment. Each of these hardware devices is typically, but not always, centralized throughout the process plant or portions of the process plant. These hardware devices execute applications that allow operators, for example, to view the current state and operation of processes running within the plant, to change settings of process control routines, to change the operation of control modules in controllers or field devices, to view alarms generated by field devices and controllers, to simulate the operation of a process for purposes of training personnel or testing process control software, to maintain and update configuration databases, and the like. The data highways utilized by the hardware devices, controllers, and field devices may include wired communication paths, wireless communication paths, or a combination of wired and wireless communication paths.
[0004] As an example, the DeltaV™ control system sold by Emerson includes multiple applications stored and executed in different user interface devices at various locations within the process plant, and in some cases remote from the process plant. Each of these applications provides a user interface (UI) that allows a user (e.g., configuration engineer, operator, maintenance technician, etc.) to view and / or change aspects of the operation and configuration of the process plant. Throughout this specification, the phrase "user interface" or "UI" is used to refer to an application or screen that allows a user to view or change the configuration, operation, or status of the process plant. Similarly, the phrase "user interface device" or "UI device" is used herein to refer to a device on which a user interface is operating, regardless of whether the device is fixed (e.g., a workstation, a wall-mounted display, a process control device display, etc.) or portable (e.g., a laptop computer, a tablet computer, a smartphone, etc.).
[0005] Configuration applications residing on one or more user workstations or computing devices included in the configuration environment of the process plant operate in the process plant's operating environment (also interchangeably referred to herein as the process plant's "operating environment") and enable configuration engineers and / or other types of users to create or modify process control modules and download these process control modules via data highways to dedicated distributed controllers that control one or more processes during run-time or real-time operation. Typically, these control modules are comprised of communicatively interconnected function blocks that perform functions in a control scheme based on inputs and provide outputs to other function blocks in the control scheme. Each dedicated controller, and possibly one or more field devices, stores and executes a respective controller application that executes the assigned and downloaded control modules to implement the actual process control functions.
[0006] The configuration application also enables configuration engineers and / or other users to create or modify an operator's human-machine interface (HMI) or display views used by an operator display application to display data to an operator (e.g., as data is generated in real-time during run-time operation of the process plant) or to allow an operator to change various settings, such as set points, within a process control routine during run-time operation. An operator display application that provides an operator HMI or display view executes on one or more user interface devices (e.g., operator workstations, operator tablets, operator mobile devices, etc.) included in the process plant's operating environment (or on one or more remote computing devices in communication with the operator workstations and the data highway). The operator HMI or display view receives data from the controller application over the data highway and displays this data to the operator or other user using the UI of the user interface device. Similarly, the operator HMI or display view may also receive data (e.g., real-time data, etc.) from other control components or elements included in the process plant's operating environment other than the control modules, such as controllers, process controllers, field devices, I / O cards or devices, other types of hardware devices, units, areas, etc. While the data historian application is typically stored and executed on a data historian device that collects and stores some or all of the data provided across the data highway, the configuration database application may execute on yet another computer connected to the data highway to store the current process control routine configuration, the current operator display configuration, and associated data, or the configuration database may be located on the same workstation as the configuration application.
[0007] As discussed above, operator display applications typically execute on one or more operator user interface devices and provide an operator or maintenance personnel with an operator HMI or display view of the operational status of the control system, control components, and / or equipment within the plant while the plant is operating in real-time or run-time, for example, to control one or more industrial processes. Generally, the operator HMI or display view is used by an operator in the day-to-day operation (which may be, for example, 24 / 7 operation) of processes running in the process plant to view and respond to real-time conditions within the process plant and / or the process plant. At least some of these operator HMI or display views may take the form of, for example, alarm displays that receive alarms generated by controllers or equipment within the process plant, control displays that show the operational status of controllers and other equipment within the process plant, maintenance displays that show the operational status of equipment within the process plant, etc. The display views typically execute in the run-time or real-time operating environment of the process plant and are generally configured to display information or data received from process control modules, equipment, and / or other control objects also operating within the run-time or real-time operating environment of the process plant, in a known manner. In some known systems, the display views have graphical elements (e.g., graphical representations or graphics) associated with and communicatively coupled to physical or logical elements contained in the operating environment to receive data regarding the physical or logical elements and to be updated over time, such as during run-time operation of the process plant. The graphical elements can be configured or defined to dynamically change their appearance on the display screen based on the received data, such as to indicate that a tank is half full, to indicate the flow rate measured by a flow sensor, etc.Thus, as the data provided by the physical or logical elements within the operating environment of the process plant changes over time (e.g., is repeatedly or continually updated over time), the appearance of the corresponding graphical elements changes accordingly on the display screen.
[0008] In some currently known operator display configuration architectures for industrial process control systems, each operator workstation independently manages alarms and accesses real-time control data generated by process control modules, equipment, and / or other control objects. Thus, to customize an operator HMI or display view for a particular operator workstation, custom graphical properties, values, and / or configurations of the various display view elements (e.g., graphical and other types of elements) that are displayed in the runtime display view are defined and associated with the display view in a graphical configuration environment, and the display view definition or configuration is downloaded from the configuration environment to the particular operator workstation in the operating environment for execution. Often, custom scripts are programmed into the display view configuration such that the desired behavior and / or appearance of the various display view elements and / or the display view itself is executed at the particular operator workstation. Furthermore, if it is desired to modify or change the appearance or behavior of the display view for a particular operator workstation, typically changes must be applied to the display view configuration in the graphical configuration environment, and then the modified configuration must be downloaded from the configuration environment for execution at the particular operator workstation. In most cases, this requires the particular operator workstation to stop executing the current display view in order for the modified display view configuration to be received and executed at the particular operator workstation.
[0009] In other currently known operator display configuration architectures for industrial process control systems, a common configuration of a display view is downloaded from a graphical configuration environment to multiple operator workstations. However, to achieve a particular customized appearance and / or behavior of the display view at a particular operator workstation, during run-time, the particular operator workstation on which the display view is executing must query or otherwise communicate with the graphical configuration environment to obtain the necessary information (such as the particular configuration of various graphics, run-time values, and / or other information) to achieve or implement the desired customized appearance and / or behavior of the display view at the particular operator workstation. Because modern process plants may include hundreds of operator workstations, the messages sent and received between the operator workstations and the back-end display configuration server place a significant load on the process plant communication network.
[0010] Recently, the Center for Operator Performance (COP), a research consortium that addresses human capabilities and limitations in industrial process control operating environments through research, collaboration, and human factors engineering, and the International Society of Automation (ISA) have been working to help improve industrial process control system human machine interfaces (HMIs) and their usability, for example, by proposing human-centric design (HCD) improvements and guidelines. For example, the American National Standard ANSI / ISA-101.01.-2015, titled "Human Machine Interfaces for Process Automation Systems," approved on July 9, 2015, addresses the "philosophy, design, implementation, operation, and maintenance of human machine interfaces (HMIs) for process automation systems that include multiple work processes throughout the HMI life cycle...The standard defines the terminology and models to develop, and the recommended work processes to maintain the HMI effectively throughout its life cycle" (ANSI / ISA-101.01-2015, p. 9). Summary of the Invention [Problem to be solved by the invention]
[0011] As discussed above, typically, an operator's human-machine interface (HMI) or display view is used by an operator during run-time operation of a process to display and respond to conditions within the process and / or process plant. The effectiveness of a process plant operator to safely and effectively operate a process and to detect and respond to various process and process plant conditions often depends on how the operator HMI or display view is designed (e.g., by a configuration engineer or other operator HMI designer). However, recent changes in the way industrial process plants operate have had a significant impact on the design of operator HMIs. For example, continued competitive pressures in the process control industry have resulted in a significant expansion of the span of the portion of a process for which a single operator is responsible. This expansion has resulted in a several-fold increase in the number of process graphics that a single operator must monitor and utilize to safely and efficiently run a process. Indeed, in today's process plants, operators are typically expected to navigate hundreds of process graphics. Additionally, trends such as increased intelligence in plant equipment and automated, advanced control logic in the process control industry have resulted in a significant increase in the level of complexity of the portion of a process for which a single operator is responsible.
[0012] Additionally, the workspace utilized by a single operator may include one to many consoles or monitors of various sizes. Often, the number and size of the monitors and / or consoles is dictated by the size and complexity of the portion of the process being monitored by the operator. Additionally, when an operator's workspace includes multiple monitors, each monitor typically has a custom layout defined for each monitor's respective monitor size, location, and portion of the process being monitored. For example, the custom layout defines which displays should be open on which monitors, how displays on different monitors interact with each other, etc.
[0013] Furthermore, because no two process plants or operating sections within a plant are the same, in practice each process plant often develops and designs its own custom operating philosophy, graphics, and / or graphical standards for effective operation. Thus, to a great extent, operator HMI graphics, strategies, designs, layouts, navigation, and / or operator actions can be custom built for different operating sections and / or different process plants.
[0014] These and other factors have made the configuration engineer's task of designing operational HMIs even more difficult. Often, configuration engineers must create complex programmatic extensions to the operator HMI to customize or refine specific operational sections and / or various functions of the plant. Typically, configuration engineers must utilize programming languages such as Visual Basic or C, and / or other custom programs to create the desired operator HMI. This results in complex operator HMI suites that are difficult and time-consuming to develop, extend, troubleshoot, and maintain. [Means for solving the problem]
[0015] At least some embodiments of the novel graphical display configurations and usage systems and methods disclosed herein address these and other current HMI challenges and provide a platform for the design and use of industrial process control HMIs that is not only flexible, easy to use, and maintain, but also helps engineers design and implement process plant operating environment HMIs in accordance with current process automation HMI standards and best practices.
[0016] In one embodiment, a graphical display configuration and use system for an industrial process plant (also interchangeably referred to herein as a "graphical configuration system" or "graphical configuration and use system") includes a graphical display configuration application that executes in a configuration environment of the process plant. The graphical display configuration application includes a user interface through which various operator HMI or display views can be created, defined, designed, and / or published, for example, by a configuration engineer. The configured or defined display views, when downloaded and executed in the operating or operational environment of the process plant, provide an operator or other user with real-time (e.g., continuously or repeatedly updated) operational conditions and status of various components and operations associated with the process. As such, the display view typically includes respective links between one or more display view elements displayed in the display view and one or more control modules, devices, or control objects executing to control a process within the operating environment of the process plant, such that upon downloading and executing the published configuration of the display view on a user interface device (e.g., an operator workstation, a remote computing device, a mobile device, etc.) that is communicatively connected to the operating environment of the process plant, a respective display of one or more values or other data provided or generated by one or more control modules, devices, or control objects during execution in the operating environment of the process plant is displayed and updated repeatedly in the running display view, e.g., via the linked display view elements.
[0017] The graphical display configuration system also includes a centralized configuration database or library that stores published configurations or definitions of display views and published configurations or definitions of display view elements that are made available to be included in or otherwise associated with the various display views. In some embodiments, the centralized configuration database or library also stores draft configurations or definitions of the display views and / or display view elements. Examples of display view elements include graphics, properties, control modules, equipment, links to objects and / or other control components or elements disposed in the operating environment, global variables, parameters, areas or subsections of the display view, and / or other elements and / or parts of the display view. In one example, for a particular display view, the centralized configuration database or library stores a published configuration of the particular display view and, optionally, one or more working or draft configurations of the particular display view. The published configuration of a particular display view may include one or more published configurations of the various display view elements that are displayed in the running display view, and the published display view configurations are available for download and execution in the operating environment of the process plant. Meanwhile, one or more working or draft configurations of a particular display view are excluded from downloading and execution in the operating environment of the process plant, i.e., the working or draft configurations of the display views and display view elements are prevented from being downloaded and executed in the operating environment of the process and instead are maintained in the configuration environment, e.g., for editing, modification, testing, etc.
[0018] The published configuration or definition of a particular display view includes one or more user controls that allow an operator or user of a user interface device included in the operating environment of the process plant to modify the appearance of the display view running on the respective user interface device online during run-time operation. For example, an operator may modify, via one or more user controls of the respective user interface device, the appearance of a graphic, a property of a graphic, an area of the display view, properties, and / or the content of an area of the display view, the position of a graphic on the display view, specific data provided from a control module, device, or control object being displayed, and / or other appearance of an element, area, or portion of the running display view. Importantly, the graphics configuration system allows an operator workstation to modify the appearance of a display view running in the operating environment to be implemented at the operator workstation based solely on the content of the published configuration or definition of the display view running at the operator workstation. That is, the downloaded and published configurations of the display view allow an operator to customize or change the appearance of the display view at an operator's workstation while the display view is running online in the operating environment without the operator having to stop the display view from running, without having to download a different configuration of the display view, and without the display view and / or the operator workstation having to retrieve data from the configuration environment to implement the desired changes.
[0019] Thus, once a published configuration or definition of a particular display view is downloaded to multiple user interface devices or operator workstations included in the process plant operating environment, each operator or user can customize or modify the local appearance of the instance of the display view running at the workstation independently of other operators or users, without the workstation having to communicate with a graphical display configuration application and configuration library. Some operator-initiated changes or customizations may be implemented in a mutually exclusive manner at a particular workstation, e.g., the fill property of a graphic is selected by the operator to be either gray or blue, but not both gray and blue. Some changes may not be mutually exclusive at a particular workstation (e.g., changes may be applied cumulatively or independently), such as when an operator drags and drops a graphic representing a particular control element that the operator wants to actively (and easily) monitor an active monitor or watch window included in the display view.
[0020] In one embodiment, a method for configuring a graphical display for run-time or real-time operation of a process plant includes receiving a definition of a display view via a user interface of a graphical display configuration application executing in a configuration environment of the process plant. The display view typically includes various graphical elements representing respective control modules, devices, and / or other control components (also interchangeably referred to herein as control elements or control objects) that execute or operate in the operating environment of the process plant to control at least a portion of a process, such as, for example, controllers, process controllers, field devices, I / O cards or equipment, other types of hardware devices, units, areas, etc. The display view definition thus defines links between the graphical elements and the control components or objects displayed in the display view such that upon downloading and executing the display view in the operating environment of the process plant, one or more values or other data generated by the control components or control objects while executing in the operating environment of the process plant to control a process are repeatedly displayed and updated in the running display view via the linked graphical elements. The graphical elements may be, for example, graphics that show or represent a particular control module, device, or other control component or object.
[0021] Additionally, a definition of a display view typically includes definitions of each of the various other graphical portions, elements, or components (and / or combinations thereof) included in and / or otherwise associated with the display view, such as graphics, text, properties of the graphics and / or text (e.g., color, contrast, animation, etc.), global variables, parameters, different areas of the display view, the respective properties and / or content of the different areas of the display view, different locations of various graphics, text, and / or areas on the display view, and / or specific operational data supplied by control modules, devices, and / or other control objects, and links thereof to respective graphics or other elements on the display view, to name a few. Other such graphical portions, elements, and / or components that may be included in and / or otherwise associated with a display view may include, for example, a display view hierarchy, a display view layout, timers, embedded links, animation conversion functions, data references, project or plant standards, display themes, content language and / or its indication, application language and / or its indication, tab areas of a display view, tooltips and / or other context indications, indications of trends and other historical parameters, monitoring or active monitoring areas, and / or other features, aspects, and / or functionality provided by the present graphical configuration and use systems and methods described herein.Still other graphical portions, elements, and / or components that may be included in and / or otherwise associated with a display view may include custom and / or default graphic element module (GEM) configurations (e.g., as described in commonly owned U.S. patent application Ser. No. 15 / 692,450, filed Aug. 31, 2017, and titled "Derived and Linked Definitions with Overrides") and / or operator display switching preview configurations and / or objects associated therewith (e.g., as described in commonly owned U.S. patent application Ser. No. 15,243,176, filed Aug. 22, 2016, and titled "Operator Display Switching Preview").
[0022] In any event, for ease of reading this specification, such graphical portions, elements, or components (and combinations thereof) included in or otherwise associated with a display view will generally be referred to herein interchangeably as "graphical display view elements," "graphical elements," "graphical components," "display view elements," "display elements," or "display view components." Typically, each display view element can be defined or configured using its own individual object, which can be created, modified, stored, and exposed by the graphical configuration and usage systems and methods described herein.
[0023] Some of the definitions of display view elements may define mutually exclusive options, for example the color theme of the entire display view may be selectively changed by the operator between various defined color themes, or the language used in the display view may be switched between Arabic and French by the operator. Some of the definitions of display view elements may not be mutually exclusive, such as when the operator drags and drops a graphic representing a particular control element that the operator wants to actively (and easily) monitor an active monitor or watch window contained in the display view.
[0024] With particular reference to a display view configuration or definition that defines a plurality of properties selectable in an operating environment in a mutually exclusive manner for application to a particular portion of an executing display view, the method includes receiving, via a user interface of a graphical display configuration application, an indication of a selection of a subset of a plurality of user interface devices (e.g., operator workstations) that are included in the operating environment of the process plant and to which each instance of the display view definition is to be downloaded for execution. The selected subset of user interface devices may include multiple user interface devices, as desired. The method further includes downloading the display view definition (which may be a published definition) to each user interface device included in the selected subset of user interface devices for execution in the operating environment of the process plant, whereby the particular portion of the executing display view may be selectively changed in a mutually exclusive manner among the plurality of properties independently at each user interface device. Thus, each user interface device implements its respective change based solely on the content of the downloaded definition of the display view executed on the user interface device, without communicating with any other devices included in the configuration environment of the process plant to perform or implement the change. Thus, a first operator may select "blink" for a particular property of a particular graphic contained in the display view of his workstation, and another operator may select "no blink" for a particular property of a particular graphic contained in the display view of his workstation, both selections being fully supported and implemented solely by the respective downloaded definitions of the display view running on the workstation, without stopping execution of the display view on the workstation, without having to download different configurations of the display view to the workstation, and without the display view and / or the operator workstation obtaining data or other information from a configuration environment to implement the desired changes.
[0025] It should be noted that while the disclosure herein refers to graphical display views and graphical display view elements, this is for ease of explanation and discussion only and is not intended to be limiting. Indeed, any one or more of the aspects described herein with respect to graphical display views can be readily applied to, for example, a Graphical Element Module (GEM) class. Similarly, any one or more of the aspects described herein with respect to graphical display view elements can be readily applied to, for example, a GEM. As is well known, a GEM is linked to a graphically configurable shape that is reusable and can be combined with other shapes and / or behaviors. Typically, a GEM provides one or more visual representations or views of a configurable shape, and the definition or configuration of a GEM is stored separately from the definition or configuration of the usage / instance of that GEM in a particular display view and other objects (e.g., so that the definition / configuration of the GEM can be shared). Thus, the graphical configuration system and method described herein, and any one or more aspects thereof, can be readily applied to GEMs and GEM classes. [Brief description of the drawings]
[0026] [Figure 1A] FIG. 1A is a block diagram of a distributed process control network disposed within a process plant including the graphics configuration and use systems and methods of the present disclosure. [Figure 1B] FIG. 1B is a block diagram of the exemplary user interface device shown generally in FIG. 1A. [Figure 2A] FIG. 2A is a block diagram of an example implementation of a graphical display configuration and use system in a configuration and operating environment of a process plant, such as the process plant of FIG. 1A. [Figure 2B] FIG. 2B is a block diagram of an exemplary implementation of a graphical configuration library included in the graphical configuration and use of the system of FIG. 2A. [Figure 2C]FIG. 2C illustrates a block diagram of an exemplary snapshot in time of ongoing configuration of a display view using the graphical configuration and use system of FIG. 2A. [Figure 3A] FIG. 3A is an example diagram of a graphical display composition application for defining graphics and an example diagram of an operator application for presenting the graphics according to the definitions from the graphical display composition application. [Figure 3B] FIG. 3B is an exemplary detailed view of a graphical display composition application for defining graphics. [Figure 4] FIG. 4 is an exemplary view of a graphical display configuration application for defining a web browser within a display view. [Diagram 5] FIG. 5 is a flow diagram of an example method for configuring a web browser within a display view of a process plant. [Figure 6] FIG. 6 is a flow diagram of an example method for presenting an embedded web browser within a display view of a process plant. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0027] 1A is a block diagram of an example process control network or system 2 that may utilize embodiments of the novel graphical display configuration and usage system described herein and / or operate with a process control system or process plant 10. The process control network or system 2 may include a network backbone 5 that provides direct or indirect connectivity between various other devices. The devices coupled to the network backbone 5, in various embodiments, include one or more access points 7a, one or more gateways 7b (e.g., via an intranet or enterprise wide area network) to other process plants, one or more gateways 7c to external systems (such as the Internet), one or more user interface (UI) devices 8 that may be fixed (e.g., traditional operator workstations) or mobile computing devices (e.g., mobile device smartphones), one or more servers 12 (e.g., that may be implemented as a bank of servers, a cloud computing system, or other suitable configurations), a controller 11, input / output (I / O) cards 26 and 28, wired field devices 15-22, a wireless gateway 35, and a wireless communication network 70 in combination. The communication network 70 may include wireless devices 40-58, including wireless field devices 40-46, wireless adapters 52a and 52b, access points 55a and 55b, and a router 58. The wireless adapters 52a and 52b may be connected to non-wireless field devices 48 and 50, respectively. The controller 11 may include a processor 30, a memory 32, and one or more control routines 38. Although FIG. 1A shows only one portion of the devices directly and / or communicatively connected to the network backbone 5, it should be understood that each device may have multiple instances on the network backbone 5 and, in fact, the process plant 10 may include multiple network backbones 5.
[0028] The UI device 8 may be communicatively connected to the controller 11 and the wireless gateway 35 via the network backbone 5. The controller 11 may be communicatively connected to the wired field devices 15-22 via input / output (I / O) cards 26 and 28, and to the wireless field devices 40-46 via the network backbone 5 and the wireless gateway 35. The controller 11 may be operable to execute a batch or continuous process using at least some of the field devices 15-22 and 40-50. The controller 11, which may be, by way of example, a DeltaV™ controller sold by Emerson, is communicatively connected to the process control network backbone 5. The controller 11 may also be communicatively connected to the field devices 15-22 and 40-50 using any desired hardware and software associated with, for example, standard 4-20 mA devices, I / O cards 26, 28, and / or any smart communication protocol, such as FOUNDATION® Fieldbus protocol, HART® protocol, WirelessHART® protocol, etc. In the embodiment shown in FIG. 1A, the controller 11, field devices 15-22, 48, 50 and I / O cards 26, 28 are wired devices, and the field devices 40-46 are wireless field devices.
[0029] In operation of the UI device 8, the UI device 8, in some embodiments, may execute a user interface ("UI"), enabling the UI device 8 to accept input via an input interface and provide output on a display. The UI device 8 may receive data (e.g., process related data such as process parameters, log data, sensor data, and / or any other data that may be captured and stored) from the server 12. In other embodiments, the UI may be executed in whole or in part on the server 12, which may transmit display data to the UI device 8. The UI device 8 may receive UI data (which may include display data and process parameter data) over the backbone 5 from other nodes in the process control network or system 2, such as the controller 11, the wireless gateway 35, and / or the server 12. Based on the UI data received at the UI device 8, the UI device 8 provides output (i.e., visual representations or graphics, some of which may be updated during run-time) that represent aspects of a process associated with the process control network or system 2, allowing a user to monitor the process. A user may also affect control of the process by providing input at the UI device 8. To illustrate, the UI device 8 may provide graphics that represent a tank filling process, for example. In such a scenario, a user may read a tank level measurement and determine that the tank needs to be filled. The user may interact with an inlet valve graphic displayed on the UI device 8 and input a command to open the inlet valve.
[0030] In certain embodiments, the UI device 8 may implement any type of client, such as a thin client, a web client, or a thick client. For example, the UI device 8 may rely on other nodes, computers, UI devices, or servers for most of the processing required for the operation of the UI device 8, such as when the UI device is limited by memory, battery power, or the like (e.g., in a wearable device). In such an example, the UI device 8 may communicate with the server 12 or other UI device, which may communicate with one or more other nodes (e.g., servers) on the process control network or system 2, and may determine and transmit display data and / or process data to the UI device 8. Furthermore, the UI device 8 may pass any data associated with received user input to the server 12 so that the server 12 may process the data associated with the user input and act accordingly. In other words, the UI device 8 may do nothing more than render graphics, but may function as a portal to one or more nodes or servers that store data and execute routines required for the operation of the UI device 8. A thin-client UI device offers the advantage of minimal hardware requirements for the UI device 8.
[0031] In other embodiments, the UI device 8 may be a web client. In such an embodiment, a user of the UI device 8 may interact with the process control system through a browser in the UI device 8. The browser allows the user to access data and resources at other nodes or servers 12 (such as server 12) through the backbone 5. For example, the browser may receive UI data, such as display data or process parameter data, from the server 12, allowing the browser to render graphics for controlling and / or monitoring some or all of the process. The browser may also receive user input (such as a mouse click on a graphic). The user input may cause the browser to retrieve or access information resources stored on the server 12. For example, a mouse click may cause the browser to retrieve (from the server 12) and display information about the clicked graphic.
[0032] In yet other embodiments, most of the processing of the UI device 8 may occur in the UI device 8. For example, the UI device 8 may execute the UI described above. The UI device 8 may also store, access, and analyze data locally.
[0033] In operation, a user may interact with the UI device 8 to monitor or control one or more devices in the process control network or system 2, such as any of the field devices 15-22 or devices 40-50. A user may interact with the UI device 8, for example, to modify or change parameters associated with a control routine stored in the controller 11. The processor 30 of the controller 11 executes or oversees one or more process control routines (stored in memory 32), which may include a control loop. The processor 30 may communicate with the field devices 15-22 and 40-50, and other nodes communicatively connected to the backbone 5. It should be noted that portions of any control routines or modules described herein (including quality prediction and fault detection modules or function blocks) may be implemented or executed by different controllers or other devices, as appropriate. Similarly, the control routines or modules described herein implemented within the process control system may take any form, including software, firmware, hardware, etc. The control routines can be implemented in any desired software format, such as using object-oriented programming, ladder logic, sequential function charts, functional block diagrams, or using other software programming languages or design paradigms. In particular, the control routines can be defined and implemented by a user via the UI device 8. The control routines may be stored in any desired type of memory, such as random access memory (RAM) or read-only memory (ROM) of the controller 11. Similarly, the control routines may be hard-coded, for example, in one or more EPROMs, EEPROMs, application specific integrated circuits (ASICs), or other hardware or firmware elements of the controller 11. Thus, the controller 11 can be configured (in certain embodiments by a user using the UI device 8) to implement (e.g., receive, store, and / or execute) a control strategy or control routine in any desired manner.
[0034] In some embodiments of the UI device 8, a user can interact with the UI device 8 to define and implement control strategies in the controller 11 using what are commonly referred to as function blocks, where each function block is an object or other portion (e.g., a subroutine) of an overall control routine and operates in conjunction (through communications called links) with other function blocks to implement a process control loop within the process control system. Control-based function blocks typically perform either an input function, such as those associated with a transmitter, sensor, or other process parameter measurement device, a control function, such as those associated with a control routine that performs control, such as PID, fuzzy logic, etc., or an output function that controls the operation of some device, such as a valve, to perform some physical function within the process control system. Of course, hybrid and other types of function blocks exist. The function blocks can have graphical representations provided in the UI device 8, allowing a user to easily change the type of function block, the connections between the function blocks, and the inputs / outputs associated with each function block implemented in the process control system. The function blocks may be downloaded to, stored in, and executed by the controller 11, as is the case for, or associated with, some types of smart field devices, such as standard 4-20 mA devices and HART devices, or may be stored and implemented in the field device itself, as may be a Fieldbus device. The controller 11 may include one or more control routines 38 that may implement one or more control loops. Each control loop, typically referred to as a control module, may be implemented by executing one or more function blocks.
[0035] 1A, the wireless field devices 40-46 communicate in a wireless network 70 using a wireless protocol, such as the WirelessHART protocol. In certain embodiments, the UI device 8 may be able to communicate with the wireless field devices 40-46 using the wireless network 70. Such wireless field devices 40-46 may communicate directly with one or more other nodes of the process control network or system 2 that are also configured to communicate wirelessly (e.g., using a wireless protocol). To communicate with one or more other nodes that are not configured to communicate wirelessly, the wireless field devices 40-46 may utilize a wireless gateway 35 connected to the backbone 5. Of course, the field devices 15-22 and 40-46 may conform to any other desired standard or protocol, such as any wired or wireless protocol, including any standard or protocol developed in the future.
[0036] The wireless gateway 35 may provide access to various wireless devices or nodes 40-46, 52-58 of the wireless communication network 70. In particular, the wireless gateway 35 provides a communication coupling between the wireless devices 40-46, 52-58 and other nodes of the process control network or system 2 (including the controller 11 of FIG. 1A). The wireless gateway 35 provides the communication coupling by routing, buffering, and timing services (e.g., address translation, routing, packet segmentation, prioritization, etc.) to lower layers of the wired and wireless protocol stacks during tunneling of one or more shared layers of the wired and wireless protocol stacks in some implementations. In other cases, the wireless gateway 35 may translate commands between wired and wireless protocols that do not share a protocol layer.
[0037] Like the wired field devices 15-22, the wireless field devices 40-46 of the wireless network 70 may perform physical control functions within the process plant 10, such as opening or closing a valve or measuring a process parameter. However, the wireless field devices 40-46 are configured to communicate using the wireless protocol of the network 70. Thus, the wireless field devices 40-46, the wireless gateway 35, and the other wireless nodes 52-58 of the wireless network 70 are producers and consumers of wireless communication packets.
[0038] In some scenarios, the wireless network 70 may include non-wireless devices 48, 50, which may be wired devices. For example, the field device 48 in FIG. 1A may be a legacy 4-20mA device, and the field device 50 may be a conventional wired HART device. To communicate within the network 70, the field devices 48 and 50 may be connected to the wireless communication network 70 via respective wireless adapters (WA) 52a, 52b. Furthermore, the wireless adapters 52a, 52b may support other communication protocols, such as Foundation® Fieldbus, PROFIBUS, DeviceNet, etc. Furthermore, the wireless network 70 may include one or more network access points 55a, 55b, which may be separate physical devices in wired communication with the wireless gateway 35 or may include the wireless gateway 35 as an integrated device. The wireless network 70 may also include one or more routers 58 for forwarding packets from one wireless device to another within the wireless communication network 70. Wireless devices 40 - 46 and 52 - 58 can communicate with each other and with wireless gateway 35 via wireless links 60 of wireless communication network 70 .
[0039] In certain embodiments, the process control network or system 2 may include other nodes connected to the network backbone 5 that communicate using other wireless protocols. For example, the process control network or system 2 may include one or more wireless access points 7a that utilize other wireless protocols, such as WiFi or other IEEE 802.11 compliant wireless local area network protocols, mobile communication protocols such as Worldwide Interoperability for Microwave Access (WiMAX), Long Term Evolution (LTE) or other ITU-R compatible protocols, short wavelength wireless communications such as Near Field Communication (NFC) and Bluetooth, and / or other wireless communication protocols. Typically, such wireless access points 7a enable handheld or other portable computing devices to communicate over respective wireless networks that are different from the wireless network 70 and that support different wireless protocols than the wireless network 70. In some embodiments, the UI devices 8 communicate over the process control network or system 2 using the wireless access points 7a. In some scenarios, in addition to the portable computing devices, one or more process control devices (e.g., controller 11, field devices 15-22, or wireless devices 35, 40-46, 52-58) may also communicate using the wireless network supported by access point 7a.
[0040] Additionally or alternatively, the process control network or system 2 may include one or more gateways 7b, 7c to systems external to the instantaneous process control system. In such an embodiment, the UI device 8 may be used to control, monitor, or otherwise communicate with said external systems. Typically, such systems are customers and / or suppliers of information generated or acted upon by the process control system. For example, the plant gateway node 7b may communicatively connect the instantaneous process plant 10 (with its own respective process control data network backbone 5) with other process plants with their own respective network backbones. In an embodiment, a single network backbone 5 may serve multiple process plants or process control environments.
[0041] In another example, the plant gateway node 7b may communicatively connect the immediate process plant to a legacy or prior art process plant that does not include a process control network or system 2 or backbone 5. In this example, the plant gateway node 7b may convert or translate messages between a protocol utilized by the process control big data backbone 5 of the plant 10 and a different protocol utilized by the legacy system (e.g., Ethernet, Profibus, Fieldbus, DeviceNet, etc.). In such an example, the UI device 8 may be used to control, monitor, or otherwise communicate with the systems or networks of said legacy or prior art process plant.
[0042] The process control network or system 2 may include one or more external system gateway nodes 7c to communicatively connect the process control network or system 2 to a network of external public or private systems, such as laboratory systems (e.g., laboratory information management systems or LIMS), personnel round databases, material handling systems, maintenance management systems, product inventory management systems, production scheduling systems, weather data systems, shipping and handling systems, packaging systems, the Internet, process control systems of other providers, and / or other external systems. The external system gateway nodes 7c may, for example, facilitate communications between the process control system and personnel outside the process plant (e.g., personnel at home).
[0043] 1A illustrates a single controller 11 with a finite number of communicatively connected field devices 15-22, 40-46, and 48-50, as an exemplary and non-limiting embodiment. Any number of controllers 11 may be included in the process control network or system 2, and any controller 11 may communicate with any number of wired or wireless field devices 15-22, 40-50 to control the process of the plant 10. Furthermore, the process plant 10 may also include any number of wireless gateways 35, routers 58, access points 55, wireless process control communication networks 70, access points 7a, and / or gateways 7b, 7c.
[0044] FIG. 1B illustrates a block diagram of an exemplary UI device 8 that may be utilized in conjunction with embodiments of the novel graphical display configuration and usage system described herein. The UI device 8 may be a desktop computer, such as a traditional operator workstation, a control room display, or a mobile computing device, such as a laptop computer, a tablet computer, a mobile device, a smart phone, a personal digital assistant (PDA), a wearable computing device, or other suitable client computing device. The UI device 8 may execute graphical display configuration applications utilized by configuration engineers of a configuration environment to create, generate, and / or edit various display view definitions or configurations, as well as to create, generate, and / or edit various display view element definitions or configurations. The UI device 8 may also execute operator applications utilized by operators to monitor, observe, and react to various states and conditions of processes within the operating environment. The UI device 8 may include a display 72. Additionally, UI device 8 includes one or more processors or CPUs 75, memory 78, random access memory (RAM) 80, input / output (I / O) circuitry 82, and a communication unit 85 for transmitting and receiving data over a local area network, a wide area network, and / or other suitable network, which may be wired and / or wireless. UI device 8 may communicate with controller 11, server 12, and / or any other suitable computing device.
[0045] The memory 78 can include an operating system 88, applications that run on the operating system 88, such as a graphical display configuration application and an operator application, and a control unit 90 that controls the display 72 and communicates with the controller 11 to control the on-line operation of the process plant. In some embodiments, the server 12 can transmit a graphical representation of a portion of the process plant to the UI device 8, and the control unit 90 can then cause the display 72 to present the graphical representation of the portion of the process plant. Additionally, the control unit 90 can obtain user input from the I / O circuitry 82, such as user input from an operator or configuration engineer (also referred to herein as a user), and translate the user input into a request to present a graphical display view in a particular language, a request to include graphics showing a particular control element in an active monitor or watch window included in the display view, a request to display adjustments of a process parameter included in one of the process sections, etc.
[0046] In some embodiments, the control unit 90 can communicate the converted user input to the server 12, which can generate and send the requested UI to the UI device 8 for display. In other embodiments, the control unit 90 can generate a new UI based on the converted user input and present the new UI on the display 72 of the UI device 8. If the converted user input is a request to display an adjustment of a process parameter included in one of the process sections, the control unit 90 can adjust the process parameter value on the display 72 according to the user input from the operator and provide instructions to the controller 11 to adjust the process parameter of the process plant. In other embodiments, the control unit 90 can communicate the converted user input to the server 12, which can generate and send the adjusted process parameter value to the UI device 8 for display and provide instructions to the controller 11 to adjust the process parameter of the process plant.
[0047] 2A illustrates a high-level block diagram illustrating one possible way of implementing embodiments and / or aspects of the graphical display configuration and use system 100 described herein within a configuration environment 102 and an operating or operational environment 105 of a process plant or process control system, such as that of the process plant 10 of FIG. 1A. The configuration environment 102 of the process control system is referred to interchangeably herein as the "offline" or "back-end" environment 102 of the process control system, and the operational environment 105 of the process control system is referred to interchangeably herein as the "operational," "online," "front-end," or "field" environment 105 of the process control system.
[0048] As shown in FIG. 2A, the configuration environment 102 includes a graphical display configuration application 110 that includes a user interface through which a configuration engineer or user can create, generate, and / or edit various display view definitions or configurations 112, as well as create, generate, and / or edit various display view element definitions or configurations 115. For example, the graphical display configuration application 110 can be executed on an instance of the user device 8 of FIG. 1A and / or FIG. 1B. Each display view configuration 112 and each display view element configuration 115 can be implemented, for example, as a respective object. In general, a display view definition 112 can be configured to include one or more display element definitions 115 (among other components). Typically, a display view definition 112 is configured in the operating environment 105 to include at least one display element (e.g., a graphical element) that is linked to a particular control module, device, or other type of control object such that runtime data associated with the particular control module, device, or control object can be represented in a manner that is, for example, continuously or repeatedly updated, via the linked display element on the running display view. A particular control module, device, or control object is typically defined in a control configuration database 118 (e.g., its configuration is stored in the control configuration database 118) and may be represented in the display view definition 112, for example, by a designated control tag or other suitable indicator. As shown in Figure 2A, the display view related definitions or configurations 112, 115 are stored in a centralized graphical configuration database or library 120 such that the graphical display related configurations 112, 115 are available for download and execution in the operating environment 105 to enable an operator or user to monitor, observe, and react to various states and conditions of a process within the operating environment 105.It should be noted that although the graphical configuration database 120 and the control configuration database 118 are shown in FIG. 2A as separate databases within the configuration environment 102 of the process control system 10, in some implementations at least a portion or all of the configuration databases 120, 118 may be implemented together as a single database or library.
[0049] Regardless, in FIG. 2A , the display view configuration 112 can be defined to specify one or more control objects 118 associated with or tied to each display view element 115 included in the display view 112, and the definitions of the display view elements 115 and their respective tied control objects 118 are instantiated and provided (e.g., downloaded) to one or more different operator workstations or user interface devices 122 included in the operating environment 105 of the process plant 10. In one example, the user interface device or workstation 122 can take the form of the user interface device 8 of FIG. 1B. The instantiated display view 112 executing on the user interface device 122 communicates with a control module runtime environment 125 that may be executing on controllers and field devices associated with the process, for example, to access or otherwise obtain data or other information from the control module runtime environment 125 defined by the tied control objects 118 of the display view 112. The user interface device 122 can communicate with the control module runtime environment 125 using any desired or pre-configured communication network, such as the data highway 5 and / or wireless communication network 70 of FIG. 1A.
[0050] In some embodiments, the user interface device 122 uses the download script parser 128 to parse at least a portion of the downloaded display view configuration 112 during its execution (e.g., to perform just-in-time object code conversion), although use of the download script parser 128 by the user interface device 122 is not needed or required, for example, if the downloaded display view configuration 112 does not contain any script.
[0051] In some embodiments, the user interface devices 122 use the rule-based execution engine 130 to execute process flow algorithms or other rule-based procedures (e.g., provided by the process flow runtime environment 132) that are indicated by or associated with the display view element objects 115 and / or the display view objects 112, such as when one or more of the display view element objects 115 are smart process objects. Generally, smart process objects are defined or configured to include data storage for storing data relating to and received from other entities in the process plant 10, for example to detect plant or equipment conditions, as well as inputs and outputs for communicating with other smart process objects and methods executable on the stored and received data. In some configurations, the smart process objects are communicatively connected to each other to provide display views of plant entities, such as areas, equipment, elements, modules, etc., and to create process flow modules that implement a set of rules, which are executed at runtime by the process flow runtime environment 132, for example, by using the execution engine 130. For example, it should be noted that if the downloaded display view configuration 112 does not include smart process objects, then use of the execution engine 130 by the user interface devices 122 is not needed or required. Additionally, it should be noted that other methods of integrating display views and display view elements with runtime control objects in the operating environment 105 beyond those described herein are additionally or alternatively possible and can be utilized by the graphical display composition and use system 100. For ease of discussion, the instantiated display views executed or provided on the user interface devices 122 of the operating environment 105 are generally referred to herein as operator or operation applications 135.
[0052] FIG. 2B illustrates a detailed block diagram of an embodiment of a graphical configuration library 120 included in the graphical display configuration and use system 100 of FIG. 2A. As shown in FIG. 2B, the graphical configuration library 120 stores both display view definitions or configurations 112 and display view element definitions or configurations 115. Each definition or configuration 112, 115 may be associated with a published version stored in the library 120 and, optionally, one or more draft versions (also interchangeably referred to herein as “in progress” or “work in progress” versions). As shown in FIG. 2B, view 1 has two corresponding draft configurations and one corresponding published configuration stored in the graphical configuration database 120. Additionally, the graphical configuration database 120 is shown as storing one draft configuration and two published configurations for view 2, one published configuration and no draft configurations for view 3, and m draft configurations and one published configuration for view N. In general, only published configurations or definitions are made available or permitted for download from the graphical configuration library 120 or elsewhere in the configuration environment 102 to the operating environment 105. A draft configuration or definition, in some embodiments, can be maintained, stored, and edited only within the configuration environment 102. If a draft configuration or definition is stored within the configuration environment 102, the draft is prevented from being downloaded to the operating environment 105. When a configuration engineer is satisfied with a draft display-related configuration or definition 112, 115, the engineer can explicitly publish (e.g., change its state to “published”) the display-related configuration or definition 112, 115 so that it is made available for download and execution in the runtime process plant 10. In some embodiments, a single user control may implement both publishing and the subsequent download of the publication. In other embodiments, the publish user control or command and the download user control or command are different and separate user controls provided by the configuration application 110.
[0053] Thus, multiple configuration engineers can create, modify, and test graphical configurations and definitions (possibly simultaneously) without affecting the runtime operation of the target configuration, as illustrated, for example, by the m draft configurations of view N and the published configuration of view N. Additionally, different versions of the same display view can be published and made available for runtime operation, for example, if the same display view is configured to have different combinations of operator customizations that are downloaded to different areas of the plant, as illustrated, for example, by the two publications of view 2. (Of course, the graphical display configuration system 100 allows the configuration engineer to rename the different publications of view 2 as separate views, instead of different publications of the same view, if desired.) In some embodiments, at least some of the published display views and published display view elements are immediately available; that is, at least some of the published display views and published display view elements are provided as defaults in the library 120. Such default views and elements can be edited or modified by the configuration engineer using the graphical display configuration application 110, and the modified views or elements can be published as additional or alternative published versions of the default objects 112, 115.
[0054] A particular display view configuration is defined by a configuration engineer or user, for example, via the graphical display configuration application 110, and may include (e.g., refer to, point to, or reference) one or more display view element configurations, among other components. Similarly, in some cases, a particular display view element configuration can be defined to include (refer to, point to, or reference) one or more other display view elements. Importantly, the various display-related configurations or definitions (whether of display views and / or display view elements) can each define a set of operator-selectable customizations that are made available to an operator to modify the appearance of the corresponding display view or display view element during run-time, when the operator desires, without the need to create and / or download modified configurations, and without the need for the display view, display view element, or user interface device on which the display view is executing to obtain additional configuration data indicating changes from another computing device (e.g., from a computing device or database included in the configuration environment 102, or from a computing device or database included in the operating environment 102 that stores the configuration data or a copy thereof locally). Additionally, in some embodiments, a particular display view configuration may also include one or more global variables or scripts, in addition to other display view elements referenced therein.
[0055] For purposes of illustration, FIG. 2C shows a snapshot of an exemplary display view 150 being configured by a user on a canvas provided by the graphical display configuration application 110. At this point during configuration, the display view 150 is defined as including several display view elements 152a-168a. In particular, the display view 150 includes a tabbed display element 152a including four tabs 152a-1, 152a-2, 152a-3, and 152a-4, where tab 152a-1 includes a graphic of a tank 155a including an input flow connection 158a and an output flow connection 160a. Additionally, the tank graphic 155a includes a filling animation 162a through which the liquid level within the tank is represented. The presentation of the display view 150 may be influenced at least in part by one or more user controls included therein, such as, for example, a language user control 165a and a theme user control 168a, which can be manipulated by an operator for customization at the workstation or user interface 8. Additionally or alternatively, one or more similar user controls 165a, 168a may be provided on the workstation or user interface 8 via an operator application 135 executing the display view 150 on the workstation 8 (not shown in FIG. 2C).
[0056] The configuration of the exemplary display view 150 is captured or defined in a corresponding display view object 172a, which in FIG. 2C is a draft, work in progress, or in-progress configuration object 172a (or not published). Similarly, the configuration of each display view element 152a-168a is captured or defined in one or more respective display view element objects 152b-170b (which may or may not be published individually or as a whole by the display view 150, respectively, at the time illustrated by FIG. 2C). For example, tabs 152a-1, 152a-2, 152a-3, and 152a-4 are defined by a graphical tab display element 152a, which is itself defined by an instance of a tab object 152b, with each tab object instance configured, for example, to display a different text string in the respective tab 152a-1, 152a-2, 152a-3, 152a-4, and include other display characteristics and properties (not shown). In some embodiments, each tab 152a-1, 152a-2, 152a-3, and 152a-4 can be configured to change its appearance (e.g., indicators, background color, text color, animation, etc.) in response to live data, thereby linking to one or more control elements in the operating environment 105 of the process plant 10. The tank graphic 155a is defined by an instance of a tank object 155b, which is specifically configured to be associated with a particular control tag LT123. Furthermore, the filling animation 162a is defined by an instance of a filling animation object 162b that specifies that the filling animation is bottom-to-top filling. Furthermore, the color of the filling animation 162a is defined by an instance of a filling color object 170b to be operator selectable between blue, red, white, and green colors. For example, the filling color may be individually selectable or may be operator selectable by selecting a particular theme that defines the filling color.
[0057] 2C, the configuration of a graphical object instance can be defined using other graphical objects and / or object instances. For example, an instance of a tab object 152b defining a tab 152a-1 is defined to include an instance of a tank graphic object 155b defining a tank graphic 155a thereon (including, among other things, a specification therein of a control tag LT123). Similarly, an instance of a tank graphic object 155b defining a tank graphic 155a is itself defined to include an instance of a fill animation object 162b for a fill animation 162a, the instance of the fill animation object 162b being specifically configured in this example of a bottom-to-top fill animation. Furthermore, an instance of a fill animation object 162b defining a fill animation 162a is itself defined to include an instance of a fill color object 170b defining operator selectable fill colors (e.g., blue, red, white, and green) therein and further defining mutually exclusive selections and application thereof.
[0058] In general, a first graphic element object is defined or configured to reference (e.g., point to, refer to, etc.) a second graphic element object, and the configuration of the second graphic element object defines the appearance and / or behavior of the first graphic element object. In some embodiments, the configuration or definition of the first graphical element object may further include one or more object property values and / or scripts, as appropriate. The first and second graphical element objects are independent and separate objects; that is, the first and second graphical element objects are not included in the same object class, are not derived from each other, are not related by a parent / child object relationship, or the like. Indeed, the second graphic element object may be suitably configured to be referenced by other graphic element objects, thereby defining the appearance and / or behavior of the other graphic element objects.
[0059] In some scenarios, the second graphical element object may itself reference a third graphical element object, the configuration of which defines the appearance and / or behavior of the second graphical element object. Optionally, the configuration of the second graphical element object may further include one or more object property values and / or scripts.
[0060] In any event, returning to FIG. 2C, an instance of the display view object 172a defining the view 150 can be configured to display one or more user controls 165a, 168a. (As noted above, in some embodiments, one or more of the user controls 165a, 168a may be provided by an operator application 135 executing the display view object 172a configured in a user interface device 8 within the operating environment 105, not shown in FIG. 2C.) In any event, whether provided by the display view object 172a and / or the operator application 135, each of the user controls 165a, 168a can be defined, at least in part, by a respective object 165b, 168b. In particular, as shown in FIG. 2C, the language user control 165a is defined by an instance of a multilingual object 165b configured in this example to allow text to be expressed in English, Arabic, or French. Thus, during runtime, an operator can manipulate the language user control 165a to selectively change the language displayed in the display view 150 to English, Arabic, or French. Similarly, theme user control 168a is defined by an instance of theme object 168b, which in this example is defined to allow an operator to selectively change the theme of display view 150 from among Theme 1, Theme 2, and Theme 3 during runtime. Thus, during runtime, an operator can manipulate theme user control 168a on operator application 135 to change the theme displayed in display view 150 from among Theme 1, Theme 2, and Theme 3. Each of the languages and themes may be defined elsewhere in graphical configuration database 120, for example, in a manner described elsewhere in this disclosure.
[0061] Further, the display view 150 may be included in various other display view elements 115. For example, a particular layout 1 (e.g., may be configured as a particular instance of a layout object) may be defined to present the display view 150 in a first region, e.g., by linking the configuration 172a of the display view 150 to a graphical object that defines a first region of the layout 1. Another particular layout 2 (e.g., may be configured as another particular instance of a layout object) may be defined to present the display view 150 in a second region, e.g., by linking the display view configuration 170 to a graphical object that defines a second region of the layout 2. In additional or alternative implementations, an instance of the display view object 172a may reference one or several layouts (e.g., may be configured as a particular instance of a layout object) that include the display view 150. Each layout that includes the display view 150 may be specifically configured to be presented or not presented to an operator when presenting the display view 150 during execution in the runtime environment. In other words, while executing in the runtime environment, the operator application 135 may present the display view 150 according to one of the layouts based on the configuration of the display view objects 172a. Further discussion of the layouts that may be provided by the graphical display configuration system 100 is provided elsewhere in this disclosure. Similarly, the display views 150 may be linked or otherwise associated with various display hierarchies, and additional discussion of the display hierarchies provided by the graphical display configuration system 100 is also provided elsewhere in this disclosure.
[0062] Returning to FIG. 2C, once the configuration engineer is satisfied with the display view object 172a, which defines the content, appearance, and behavior of the display view 150 in the runtime environment 105, the configuration engineer can publish the display view object as represented in FIG. 2C by reference numeral 172b.
[0063] In embodiments in which display view element objects can be published individually, upon publishing of display view object 172b, display view element objects 152b-170b that are not already in a published state can be automatically published, and / or the user can be prompted to manually publish display view element objects that are in a draft or in progress state. That is, in such embodiments, in order for display view object 172a to be published, display element objects contained therein or linked to it must also be in a published state.
[0064] In other embodiments where the display view element objects are not published individually, upon publication of the display view object 172b, the published configuration 172b of the display view 150 is stored in the graphical configuration database 120, thereby making the published configuration 172b available for downloading to the operating environment 105 of the process plant 10, as shown in Figure 2C. In some embodiments, upon publication of the display view object 172, the published configuration 172b is automatically downloaded to the operating environment 105.
[0065] The published configuration of display view objects 172b can be downloaded to one or more user interface devices included in operating environment 105 for execution, as represented in FIG. 2C by user interface devices UI-1, UI-2, UI-3. Each of user interface devices UI-1, UI-2, UI-3 can take the form of, for example, user interface device 8 or user interface device 122, and the particular set of user interface devices to which published display view configuration 172b is to be downloaded (and executed) can be specified by a user, for example, via graphical display configuration application 110 or other user interface of configuration environment 120. Thus, each downloaded instance of published display view configuration 172b can execute independently in runtime environment 105 on its respective host user interface device UI-1, UI-2, UI-3.
[0066] Importantly, the exposed display view configurations 172b, when executed on the host devices UI-1, UI-2, UI-3, allow an operator or user to customize the appearance and behavior of each running display view 150 as desired within the runtime environment 105, independent of the runtime customizations of other users. As shown in FIG. 2C, in UI-1, the user of UI-1 has changed the color of the filling animation 162a of the tank graphic 155 on the display view 150 to blue, selected that the text displayed in the display view 150 be presented in French, and selected that the display view 150 be presented using Theme 3. In UI-2, the user has changed the color of the filling animation 162a to white, selected that the text be presented in Arabic, and selected Theme 1. In UI-3, the user has changed the color of the filling animation 162a to red, selected that the text be presented in English, and selected Theme 2. User selections and customizations implemented in user interface devices UI-1, UI-2, and UI-3 are made using only the respective published display view configurations 172b executed in host devices UI-1, UI-2, and UI-3, respectively. That is, none of UI-1, UI-2, or UI-3 need to obtain additional configuration data from a configuration environment or any other computing device to implement the operator's desired changes. Furthermore, updated configurations of display view 150 need not be downloaded and executed to implement the operator's desired changes. Rather, each operator simply implements the desired changes along with the runtime execution of display view 150 in user interface devices UI-1, UI-2, UI-3, for example, without the need to stop and restart display view 150.For example, if a user of UI-1 subsequently wishes to change the displayed theme from Theme 3 to Theme 2, the user can simply select to do so via a theme user control 168a executed on UI-1 (which may be provided by the operator application 135 or the display view 150, as described above), and in response, the executing display view 150 will perform the change without having to communicate, for example, with any other computing devices included in the configuration environment 102 and / or any other computing devices that have access to the configuration data 120 or copies thereof.
[0067] Of course, the exemplary scenario depicted in Figure 2C is intended to be illustrative, but not limiting, and is merely one of many possible usage scenarios for the graphical display configuration and use system 100. Indeed, as demonstrated within this disclosure, the graphical display configuration and use system 100 simultaneously provides a flexible, intuitive, and easy-to-maintain configuration environment 102 while providing an operational experience that supports independent online operator customization of the display views and / or the display elements contained therein. Various features and aspects of the graphical display configuration and use system 100 (either alone or in combination) that provide these and other advantages are described in more detail below.
[0068] Viewing the navigation hierarchy
[0069] Referring now to FIG. 3A, examples of the types of display view elements provided by the graphical display configuration and use systems and methods described herein are hierarchical display view elements and layout display view elements. As described above, to generate graphics in a process control system, the graphical display configuration application 110 of the configuration environment 102 includes graphical user controls for defining hierarchies and layouts, thereby allowing a configuration engineer to graphically define the hierarchies and layouts. Each display view can be composed of display view elements that define the display view. For example, a “main tank” display view can include several display view elements, each representing a different tank. Display view elements in one display view can also be the subject of other display views at a higher level of detail with their own display view elements. In this way, a plant operator can navigate from a display view that shows a general overview of the process plant at the lowest level of detail to a display view that shows a single alarm or device in the process plant at one of the highest levels of detail.
[0070] In some embodiments, the display view shows a section of a process plant and the display view elements include graphical representations of process plant entities such as tanks, mixers, valves, pumps, and / or other suitable equipment in the process plant. The display view elements may also include graphical representations of process plant connection entities that connect one piece of equipment to another, such as pipes, electrical wires, conveyor belts, etc.
[0071] In some embodiments, a configuration engineer may define the alarms, trends, and / or process parameter values in a display view at a particular level of detail. In other embodiments, a configuration engineer may define the number of alarms, trends, and / or process parameter values in a display view at a particular level of detail. The graphical display configuration application 110, or an operator or operation application 135 executing on the operator user interface device 122, can then automatically determine which alarms, trends, and / or process parameter values to include in the display view based on the priority level of each alarm, trend, and / or process parameter value. For example, a configuration engineer may indicate that five process parameter values are to be displayed at a particular location in the display view. Each of the process parameter values corresponding to the display view may be ranked according to the priority level, and the top five ranked process parameter values may be presented in the display view. The priority level can be determined by a configuration engineer, an operator, or can be determined automatically based on a set of rules, such as whether a particular process parameter value triggers an alarm.
[0072] To create a hierarchy of display views for navigating from a display view showing a general overview of the process plant to a display view showing a section of the process plant in more detail, the graphical display configuration application 110 includes graphical user controls for defining relationships or links between the display views. The graphical display configuration application 110 may present a user interface or a portion thereof for creating the hierarchy. The hierarchy UI may include a representation of each display view defined in the configuration environment. The configuration engineer may then drag and drop the display views into the hierarchy pane (or use other suitable graphical user controls) to define relationships or links between the display views. For example, by dragging and dropping a representation of the "Tank 1" display view (e.g., name "Tank 1", icon, etc.) onto a representation of the "Main Tank" display view, the graphical display configuration application 110 may determine that Tank 1 is a subview at a higher level of detail than the "Main Tank" display view. In another example, by dragging and dropping a representation of the "Tank Feed" display view above or below a representation of the "Main Tank" display view in the hierarchy pane, the graphical display configuration application 110 may determine that the "Tank Feed" and "Main Tank" display views are at the same level of detail in the hierarchy.
[0073] A display view hierarchy can also be created for trend display views that represent historical process parameter values. For example, a process parameter such as flow rate through a valve can depend on one or more input or output process parameters, such as the inlet pressure of the valve and the outlet pressure of the valve. A level 1 trend display view can show the flow rate through the valve over time, and a level 2 trend display sub-view of the level 1 trend display view can show the inlet and outlet pressures of the valve over time. A configuration engineer can create trend display view hierarchies in the configuration environment 102, and an operator can navigate (e.g., via navigation buttons) between the resulting trend display views and sub-views within the operating environment 105 with increasing and decreasing levels of detail.
[0074] In some embodiments, the display view hierarchy may resemble a tree structure, with the display view at the lowest level of detail (e.g., level 1) being the root node of the tree structure. The display view at the second lowest level of detail (e.g., level 2) may be a child node to the root node, and each may have its own child node at the third lowest level of detail (e.g., level 3), which may be a grandchild node to the root node. A configuration engineer may create multiple display view hierarchies, each corresponding to a different area within a process plant or different process plants. In this way, each operator may view a display view hierarchy that represents his or her area of responsibility.
[0075] In addition to defining the display view hierarchy, the graphical display configuration application 110 includes graphical user controls for defining layouts. As used herein, a "layout" can refer to a manner in which a display screen area of an operator workstation is divided to present several display views on a display screen or multiple display screens for the operator workstation. For example, an operator workstation can include multiple monitors or display screens, and a layout can cause the operator workstation to present a different display view on each display screen so that an operator can view several display views at once. In another example, an operator workstation can include a single monitor or display screen, and a layout can cause the operator workstation to divide the display screen into several regions (e.g., frames, subareas, or portions) and present a different display view in each region of the display screen. The graphical display configuration application 110 can include graphical user controls for selecting the number of display screens and display regions within each display screen for a layout. For example, a configuration engineer can generate a first layout having two display screens, each display screen being divided into two display regions. A configuration engineer can then define the display view type for each partitioned display area, such as watch area, alarm list, historical parameters, faceplate, hierarchical level (eg, level 1, level 2, level 3), etc.
[0076] Furthermore, a layout may include relationships or links between display areas in the layout. For example, a first display area in the layout may present a display view of a hierarchy level 1 type, and a second display area in the layout may present a display view of a hierarchy level 2 type. The second display area may be configured to display a display view of hierarchy level 2 when an operator navigates away from hierarchy level 1 in the first display area. The display view of the second display area depends on the operator's activity on the first display area, and the first display area continues to display a display view of hierarchy level 1 type. In another example, a display area in the layout showing an alarm list or a historical parameter display view may depend on a display area in the layout showing a control module, such that the alarm list or historical parameter display view includes alarms or parameters displayed in the control module.
[0077] FIG. 3A illustrates an example side-by-side view 300 of a graphical display configuration application UI 302 (which may be, for example, an instance of the graphical display configuration application 110) and an operator application UI 304 (which may be, for example, an instance of the operator application 135) showing display view elements during runtime defined in the graphical display configuration application UI 302. More specifically, the graphical display configuration application UI 302 includes a hierarchy pane 310 that shows a hierarchy of a set of display views. For example, the "Tank Overview" display view may be at level 1 of the display view hierarchy, and the "Tank Feed" and "Main Tank" display views may be at level 2. The "FeedHt X" and "FeedMixr" display views may be subviews of the "Tank Feed" display view, and the "Tank 1", "Tank 2", and "Surge" display views may be subviews of the "Main Tank" display view at level 3. Additionally, the "T2SOP" display view may be a subview of the "Tank 2" display view at level 4. As described above, a configuration engineer can define a display view hierarchy by dragging and dropping indications of display views into the hierarchy pane 310 presented by the graphical display configuration application 110, or using other suitable graphical user controls. The appearance of a new display view can also be defined in the display view hierarchy before the corresponding display view is created. The configuration engineer can define where the new display view will be placed in the display view hierarchy before creating the new display view.
[0078] In addition to depicting the hierarchy pane 310, the graphical display configuration application UI 302 illustrates a layout 312 that divides the display into four display screens and four display areas 314a-d (also interchangeably referred to herein as "display sub-areas" or "display portions"), each of which has a corresponding display view type. For example, the upper left corner display area 314a is defined to present a hierarchy level 1 display view. The lower left and lower right corner display areas 314b-c are defined to present hierarchy level 2 and level 3 display views, and the upper right corner display area 314d is defined to present an alarm list display view. The layout 312 also defines relationships or links between the display areas. For example, the lower left corner display area 314b automatically presents a hierarchy level 2 display view in response to an operator navigating from the hierarchy level 1 display view of the upper left corner display area 314a to the hierarchy level 2 display view. In another example, the upper right corner display area 314d may automatically display an alarm list of alarms included in one or more of the display views in the other display areas 314a-c.
[0079] The operator application UI 304 includes a layout 312 defined by the graphical display configuration application 110 that divides the operator workstation display into four display screens and four display areas 318a-d. The display area 318a in the upper left corner presents a hierarchical level 1 display view. The display areas 318b-c in the lower left and right corners present hierarchical level 2 and level 3 display views, and the display area 318d in the upper right corner presents an alarm list display view. The operator application UI 304 may present the display views according to the hierarchy, layout, and / or other display view elements defined by the graphical display configuration application 110.
[0080] The graphical display configuration application UI 302 also includes an administration section 316 (which may be related to managing the operational applications / environments 304, for example) for assigning hierarchies, layouts, and / or themes to a particular operator workstation or set of operator workstations. In this manner, an operator workstation for an operator overseeing one section of the process plant can present the hierarchy associated with that section and restrict access to the hierarchy associated with other sections of the process plant. In some embodiments, a configuration engineer assigns all hierarchies and layouts to each operator workstation via the administration section 316, and the operators can select the layouts and hierarchies to present on their respective operator workstations.
[0081] 3B illustrates a home tab 350 of the graphical display configuration application 110 for generating display views executed on an operator workstation. The home tab 350 includes a new display button 352 for creating a display view, a new layout button 354 for creating a layout, and a new display hierarchy button 356 for creating a hierarchy of display views. The home tab 350 also includes a configuration canvas 366 for configuring display view elements within a display view. The display view elements can be displayed in a configuration mode upon selection of a configuration button (not shown) and / or in a preview mode upon selection of a preview button 364. In an alternative embodiment, a draft or working configuration of the display view elements can be presented on the canvas provided by the configuration application 110 (e.g., presented by default or continuously) and only the preview button 364 can be displayed (e.g., as shown in FIG. 3B), whose activation causes a preview of the display view to be displayed in another area or window of the user interface provided by the configuration application 110. The preview mode or separate display of the preview presents a preview of the display view that will be displayed during runtime so that a configuration engineer can see how the display view and the display view elements will appear to an operator. For example, the display view elements can be presented with a selected theme, color, etc. in the configuration mode. A configuration engineer can manipulate graphical user controls, such as a navigation bar, tab bar, etc., of the display view in the preview mode to see how the display view changes in response to user interactions.
[0082] To create a display view, the home tab 350 includes graphical user controls for selecting display view elements such as basic display element buttons 360, such as shapes such as rectangles, squares, circles, etc., arrows, connectors, text boxes, charts, or other suitable basic display elements. A display view element selection pane or palette 370 may also be included for selecting display view elements such as faceplate elements, tab elements, bar graph elements, data elements, data link elements, write elements, buttons, sliders, alarm elements, alarm details elements, function block elements, navigation bar elements, GEM elements (such as those described in co-owned U.S. patent application Ser. No. 15 / 692,450, filed Aug. 31, 2017, entitled “Derived and Linked Definitions with Overrides,” the disclosure of which is incorporated herein by reference in its entirety), or any other suitable display view element. The configuration engineer may select a display view element by dragging and dropping the display view element onto the configuration canvas 366 or using other suitable graphical user controls. For example, in FIG. 3B, the configuration engineer can select new display button 352 to create a display view of Display 1 (reference numeral 368 ) and drag and drop rectangle 374 from basic display elements button 360 onto the configuration canvas 366 .
[0083] When the rectangle 374 is selected, the properties of the rectangle 374 are presented in an edit pane 380. The edit pane 380 may show several properties of the rectangle, such as the name of the rectangle (Rectangle 1), fill color (white), fill percentage (100%), line color (black), line thickness (1 pt), and line style (solid). Each property may be adjusted in the edit pane 380 via a graphical user control, such as a drop-down menu or a free-form text field. For example, the line thickness property may include a drop-down menu for selecting one of several line thickness values, such as 0.5pt, 1pt, 1.5pt, etc. The fill color property may include a color palette for selecting one of several colors, or a free-form text field for entering an RGB color value. In some embodiments, the properties may also be adjusted via a graphical user control of the rectangle 374, such as a pop-up menu in response to a right-click or double-click of the rectangle 374. The properties included in the edit pane 380 are just a few example properties of the rectangle 374. Additional or alternative adjustable properties may also be presented.
[0084] Furthermore, relationships or links between display view elements can be established, for example, by connecting the display view elements via lines or other connectors. Relationships or links can also be established by referencing other display view elements in the properties of the display view elements. For example, a first display view element can represent a tank of a process plant. A second display view element can represent a process parameter value of the tank, such as a fill percentage. In some scenarios, a configuration engineer can reference a first display view element in the properties of a second display view element such that the first and second display view elements are associated and included in one or more display views. In some embodiments, each of the linked display view elements associated with a process plant entity or process control element may reference a control module, node, device (e.g., field device), and / or control tag that references a signal received and / or a signal transmitted by a device, control module, or node corresponding to the process plant entity.
[0085] In any event, the home tab 350 also includes a publish button 358 that publishes the graphics (display view, layout, or display view hierarchy) to the graphical configuration database 120. The published graphics can then be provided to a set of operator workstations and presented to corresponding operators during run-time.
[0086] Embedded web browser with graphical display view of process plant
[0087] Although process plant networks are not typically directly connected to the Internet, web technology has become a widely used means of delivering critical plant related information to plant operators, with internal control servers and web browsers acting as internal clients for the web-delivered data. However, in currently known process control systems, the web browser runs as a separate application process from the operational HMI or display views, and may even run from a different computing device or operator workstation due to performance, robustness, and security concerns. Thus, web browsers can be considered to provide a cumbersome user experience for plant operators.
[0088] More specifically, a separate web browser application may degrade the performance of an operational HMI or display view because the web browser application process may consume a large amount of computer memory or processor resources. Furthermore, failures occurring in the web browser application process may adversely affect the availability of operator workstations. Additionally, the web browser application process may present external and internal threat vectors to the system security of the process plant.
[0089] Thus, the graphical display configuration and use systems and methods described herein, and more particularly the graphical display configuration application 110, include a web browser object for configuring web browser display view elements that may be included as part of a display view. The web browser object includes several properties that can be defined to restrict and limit the functions performed by external web sources and operator access to the external web sources and data, thereby reducing the risk of external and internal threat vectors to system security. Furthermore, the web browser object can be defined to include system and local source whitelists, further restricting access to web sources and data to those explicitly defined in the whitelists. These restrictions can reduce the amount of computer memory or processor resources used by the web browser and can improve the performance of the display view that displays the graphical representation of the control elements along with the web browser. This improves the user experience of the plant operator, as web content can be displayed along with the graphical representation of the control elements of the process plant without compromising the performance, availability, or security of the operational HMI or display view.
[0090] For example, a display view may include a graphical representation of a section of a process plant, a process plant entity, a control module, a function block, an alarm list, historical parameters, etc. A configuration engineer may select a web browser object via the graphical display configuration application 110 to include a web browser display view element in the display view along with a graphical representation of a section of a process plant, a process plant entity, a control module, a function block, an alarm list, historical parameters, etc.
[0091] During configuration, when a web browser object is selected, the graphical display configuration application 110 may include graphical user controls for defining display parameters of the web browser display view element that are presented when a display view including the web browser display view element is presented during runtime execution in the operating environment 105 of the user interface device 8. More specifically, the graphical display configuration application 110 may include graphical user controls for defining a source address for presenting web content to the web browser. The source address may be defined as a static source address (e.g., "https: / / www.processplant.com") or may be dynamically defined, where one of several source addresses is selected as the source address for presenting web content to the web browser during runtime based on a particular condition or set of conditions. The graphical display configuration application 110 may also include graphical user controls for defining the size, position, and other visual attributes of the web browser within the display view. Additionally, the graphical display configuration application 110 may include graphical user controls for defining a sandbox or sandbox attributes that indicate limitations of functionality executed within the web browser. Additionally, the graphical display configuration application 110 may include graphical user controls for defining a source whitelist that specifies web addresses that are allowed to be set as source addresses for presenting web content in a web browser or web addresses from which data can be retrieved and presented.
[0092] The presentation parameters of the web browser display view elements are then downloaded to the user interface device 8 running the operator application 135 in the operating environment. Then, during run-time, the operator application 135 can present a display view including a graphical representation of the control elements in the process plant in conjunction with the web browser.
[0093] Furthermore, the operator application 135 may present the web browser according to presentation parameters. For example, the operator application 135 presents the web browser in a display view according to the position, size (e.g., height and width), and other visual attributes defined in the composition environment 102. Other visual attributes may include a line thickness that defines the boundaries of the web browser, a line color, a fill color of the web browser, scroll bars of the web browser when the web content does not fit within the boundaries of the web browser, a toolbar for navigating to various web addresses within the web browser, and the like. The operator application 135 also presents web content from source addresses defined in the composition environment 102 to the web browser and restricts functionality within the web browser according to sandboxes or sandbox attributes defined in the composition environment 102. Furthermore, when the operator navigates to a new web address via user controls of the web browser, the operator application 135 compares the new web address to a list of web addresses included in a system source whitelist defined in the composition environment 102. If the new web address is included in the system source whitelist, the operator application 135 presents web content from the new web address to the web browser. If not, the operator application 135 may restrict access to the new web address in the web browser and not present web content from the new web address in the web browser, instead, the operator application 135 may continue to present web content from the current web address in the web browser.
[0094] 4 illustrates an example view 400 of the graphical display configuration application 110 for configuring a web browser display view element 402 within a display view 410 on a configuration canvas 414. The display view 410 includes the web browser display view element 402 and a graphical representation of a section of a process plant 404. In this example, the process plant section 404 includes display view elements of a tank 406 and a pump 408, which respectively represent a tank and a pump within the operating environment 105 of the process plant. The graphical display configuration application 110 also includes several graphical user controls for defining various presentation parameters of the web browser display view element 402. More specifically, the graphical display configuration application 110 includes graphical user controls for determining the size of the web browser display view element 402, for example, by clicking and dragging one of the corners 412 of the web browser display view element 402. The graphical display configuration application 110 also includes graphical user controls for positioning the web browser display view element 402 within the display view, for example, by clicking on the web browser display view element 402 and dragging the web browser display view element 402 to a desired location within the display view 410.
[0095] Furthermore, the position and / or size of the web browser display view element 402 may be defined via graphical user controls in an edit pane 420 of the web browser display view element 402. The edit pane 420 may include graphical user controls such as free-form text fields or drop-down menus for defining the position of the web browser display view element 402 within the display view 410, such as the pixel location of the top left corner of the web browser display view element 402 within the display view 410. The edit pane 420 may also include graphical user controls for defining the pixel height and pixel width of the web browser display view element 402. Additionally, the edit pane 420 may include graphical user controls for defining other visual attributes of the web browser display view element 402. These graphical user controls may include a drop-down menu 422 for selecting a line color for a border or frame around the web browser display view element 402, a drop-down menu 424 for selecting a line thickness for the border or frame, and a drop-down menu for selecting a background fill color for displaying the web content. The graphical user controls for defining the visual attributes of the web browser display view element 402 may also include a checkbox 426 for selecting whether to include scroll bars in the web browser display view element 402 if the web content does not fit within the bounds of the web browser display view element 402, and a checkbox 428 for selecting whether to include a navigation toolbar 413 for navigating to various web addresses within the web browser. The navigation toolbar 413 may include several user controls for navigating in the operator application 135 within the web browser during runtime, such as a refresh button, a back button, and a forward button.
[0096] Additionally, the edit pane 420 may include graphical user controls 430, such as a free-form text field or drop-down menu for defining a source address for presenting the web content. The edit pane 420 may also include graphical user controls for defining a sandbox 432 or sandbox attributes 434-444 that indicate limitations of functionality executed within a web browser in the operator application 135 during runtime.
[0097] More specifically, when a graphical user control 434 for defining sandbox attributes that restrict scripts and autoplay is selected, the web browser disables scripts and other features that trigger automatically. Thus, during runtime, the web browser is configured not to execute scripts or other features, such as autoplay of videos, included in the web content provided from the source address or other web addresses. When a graphical user control 436 for defining sandbox attributes that restrict pop-ups is selected, the web browser disables pop-ups. Thus, during runtime, the web browser is configured not to create new windows or dialogs. When a graphical user control 438 for defining sandbox attributes that restrict form submission is selected, the web browser prevents forms from being submitted. Thus, during runtime, the web browser is configured not to submit forms. When a graphical user control 440 for defining sandbox attributes that restrict pointer lock is selected, the web browser disables application programming interfaces (APIs), such as the pointer lock API, that provide access to raw mouse movement data that passes through the web browser's boundaries. Thus, during runtime, the web browser is configured not to call or execute APIs included in the web content provided from the source address or other web addresses. When the graphical user control 442 for defining sandbox attributes for loading using a unique origin is selected, the web browser prevents access to the server content and treats the web content as coming from the unique origin. Thus, during runtime, a web browser with limited storage capabilities is configured not to access data stored in cookies or other storage mechanisms.When the graphical user control 444 for defining a sandbox attribute to only navigate within itself is selected, the web browser cannot navigate to a top-level parent browsing context and cannot display web content in a new window outside the web browser's frame. In other words, during runtime, an operator cannot navigate out of the web browser's frame and display web content in a new window.
[0098] When a graphical user control for defining sandbox 432 is selected, the web browser is configured to include all of the restrictions contained in sandbox attributes 434-444. Thus, if a configuration engineer wants to configure web browser displayed view element 402 to include all restrictions, the configuration engineer can select sandbox graphical user control 432. On the other hand, if a configuration engineer wants to configure web browser displayed view element 402 to include a specific set of restrictions, the configuration engineer can select one or some of sandbox attribute graphical user controls 434-444 to identify the appropriate restrictions for web browser displayed view element 402.
[0099] Additionally, the edit pane 420 may include graphical user controls 446, such as free-form text fields, drop-down menus, or buttons with expandable windows for defining source whitelists. The source whitelist specifies web addresses that are allowed to be set as specific source addresses for web content or web addresses where data may be retrieved and displayed in the web browser. During runtime, the operator application 135 compares the web addresses included in the source whitelist to the source address, and presents only the web content from the source address in the web browser if the source address is included in the source whitelist. And when the operator navigates to another web address (e.g., by clicking a link displayed as part of the web content or by selecting a user control in the navigation toolbar 413), the other web address is compared to the source whitelist. The operator application 135 presents the web content from the other web address in the web browser only if the other web address is included in the source whitelist. In addition to comparing the source or other selected web address to the source whitelist, if the web content pulls data from a different web address than the source address, the different web address is compared to the source whitelist. The operator application 135 presents data pulled from different web addresses only if the different web addresses are included in the source whitelist.
[0100] Also, in some embodiments, the graphical display configuration application 110 may include graphical user controls for defining local source whitelists and system source whitelists. A local source whitelist may be applied to the particular instance of the web browser object for which it is configured. For example, in the exemplary view 400, the web browser display view element 402 is labeled Web Browser 1. A local source whitelist configured in the edit pane 420 of Web Browser 1 may be applied to Web Browser 1, meaning that during runtime, the operator application 135 compares source addresses that display content for Web Browser 1 to the web addresses included in the local source whitelist for Web Browser 1.
[0101] Additionally, the graphical display configuration application 110 may include graphical user controls for defining a system source whitelist. The system source whitelist may be applied to each instance of a web browser object executed within the process plant during runtime. For example, multiple display views representing various sections, control modules, function blocks, etc. of the process plant may be created to represent a graphical configuration of the process plant. Some display views may include web browser display view elements. An operator application 135 executing on the user interface device 8 compares the source address for presenting content in each of the web browser display view elements to the web addresses included in the system source whitelist. In some embodiments, if a web address is included in both the web browser's local source whitelist and the system source whitelist, the operator application 135 presents only web content from the source address in the web browser.
[0102] Furthermore, in response to receiving a request to navigate to another web address other than the source address, the operator application 135 may compare the other web address to a list of web addresses included in the system source whitelist. In response to determining that the other web address is included in the system source whitelist, the operator application 135 presents web content from the other web address to the web browser. If not, the operator application 135 restricts access to the other web address in the web browser and does not present web content from the other web address in the web browser. Instead, the operator application 135 may continue to present web content from the source address in the web browser.
[0103] Also, in some embodiments, graphical display configuration application 110 may retrieve the system source whitelist from graphical configuration database 120. When a configuration engineer adds or removes a web address from the system source whitelist via graphical display configuration application 110, the web address is provided to graphical configuration database 120 for inclusion in an updated system source whitelist for the web browser object. The updated system source whitelist may also be downloaded to operator application 135 so that operator application 135 can compare the source addresses of each web browser to the updated system source whitelist.
[0104] 5 illustrates a flow diagram of an example method 500 for configuring a web browser within a display view of a process plant. The method 500 may be performed by a graphical display configuration application 110, an operator application 135, or any suitable combination thereof running on one or more UI devices 8.
[0105] At block 502, a position of the web browser display view element within the display view can be defined. For example, the graphical display configuration application 110 can include graphical user controls for selecting a web browser object and defining a position of the web browser display view element within the display view. In addition to defining the position of the web browser display view element, the graphical display configuration application 110 can include graphical user controls for defining a size of the web browser display view element, such as its height and width. Next, at block 504, a selection of a source address of the web browser display view element is received. For example, the graphical display configuration application 110 can include graphical user controls, such as a free-form text field or a drop-down menu, for defining a source address for presenting the web content. The source address can be defined as a static source address (e.g., "https: / / www.processplant.com") or can be dynamically defined, where one of several source addresses is selected as the source address for presenting the web content to the web browser based on a particular condition or set of conditions. For example, if the selected source address is "https: / / www.processplant.com", the web browser display view element can be configured to display the home page of "https: / / www.processplant.com" during runtime.
[0106] At block 506, a source whitelist is configured for the web browser display view element that specifies the web addresses that are enabled to be set as specific source addresses for web content or that can retrieve and present data in the web browser. During runtime, the operator application 135 compares the web addresses included in the source whitelist to the source address, and if the source address is included in the source whitelist, presents only the web content from the source address in the web browser. In addition to comparing the source or other selected web address to the source whitelist, if the web content pulls data from a web address different from the source address, the different web address is also compared to the source whitelist.
[0107] At block 508, a selection of restrictions for the web browser display view element is received. For example, the graphical display configuration application 110 may include graphical user controls for defining a sandbox or sandbox attributes. The sandbox attributes may include script and autoplay restrictions, popup restrictions, form submission restrictions, pointer lock restrictions, load by unique origin, and navigation within only. When the graphical user control for defining a sandbox is selected, the web browser is configured to include all restrictions included in the sandbox attributes.
[0108] At block 510, a selection of visual attributes of the web browser display view element is received. For example, the graphical display configuration application 110 may include graphical user controls for selecting whether to include scroll bars in the web browser display view element when the web content does not fit within the bounds of the web browser display view element, and for selecting whether to include a navigation toolbar for navigating to various web addresses within the web browser. The navigation toolbar 413 may include several user controls for navigating in the operator application 135 within the web browser during runtime, such as a refresh button, a back button, and a forward button. The graphical display configuration application 110 may also include graphical user controls for selecting a line color for a border or frame around the web browser display view element, selecting a line thickness for the border or frame, and selecting a background fill color for presenting the web content.
[0109] If the web browser display view elements are configured in the display view via the graphical display configuration application 110, the resulting display view with the configured web browser display view elements is downloaded to a user interface device for execution (block 512), e.g., as an instance of the operator application 135 in the process plant operating environment 105. The resulting display view includes a web browser along with a graphical representation of the control elements (sections of the process plant, process plant entities, control modules, function blocks, alarm lists, historical parameters, etc.). In this manner, an operator can view, e.g., a schematic diagram of a process equipment with process parameter values from the runtime environment along with a live camera feed of the process equipment. Thus, an operator can view the actual process equipment as it operates, e.g., by adjusting set points via a graphical representation of the piece of process equipment depicted in the display view.
[0110] 6 illustrates a flow diagram of an example method 600 for presenting an embedded web browser within a display view of a process plant. The method 600 may be performed by a graphical display configuration application 110, an operator application 135, or any suitable combination thereof running on one or more UI devices 8.
[0111] At block 602, an instance of a web browser object for presenting web content in a web browser is received. For example, the operator application 135 can obtain an instance of the web browser object in a display view, where the instance of the web browser object includes a source address for presenting the web content. In a first portion of the display view, a graphical representation of a control element is presented, such as a display of a section of a process plant, a process plant entity, a control module, a function block, an alarm list, historical parameters, etc. (block 604). A web browser display view element defined by the instance of the web browser object is also presented in a second portion of the display view with the web content from the source address (block 606). For example, the operator application 135 can present a schematic diagram of a process equipment next to a web browser presenting a live camera feed of the process equipment.
[0112] In some embodiments, the web browser display view element includes one or several presentation parameters, such as the size and position of the web browser within the display view, the line thickness that defines the bounds of the web browser, the line color, and the fill color of the web browser. The presentation parameters can also include whether the web browser includes scroll bars if the web content does not fit within the bounds of the web browser, and whether to include a toolbar for navigating to various web addresses within the web browser. Furthermore, the presentation parameters can include restrictions on functions that are executed within the web browser, such as a sandbox or sandbox attributes. The presentation parameters can also include a source whitelist that specifies web addresses that are allowed to be set as source addresses for displaying web content or web addresses that data can be searched for and displayed in the web browser.
[0113] The operator application 135 presents the web browser according to each presentation parameter. For example, the operator application 135 presents the web browser in a display view according to the position, size (e.g., height and width), and other visual attributes defined in the presentation parameters. The operator application 135 also presents the web content from the source address to the web browser and restricts functionality within the web browser according to the sandbox or sandbox attributes defined in the presentation parameters.
[0114] In any event, in response to receiving a request to navigate to another web address within the web browser (e.g., receiving a selection of a navigation button within a toolbar, receiving a selection of a link displayed in web content, etc.) (block 608), the operator application 135 compares the new web address to a list of web addresses contained within the web browser's source whitelist (block 610). If the new web address is included in the source whitelist, the operator application 135 presents the web content from the new web address to the web browser (block 614). If not, the operator application 135 restricts access to the new web address within the web browser and continues to present the web content from the current web address within the web browser (block 606).
[0115] Implementations of the techniques described in this disclosure may include any number of the following aspects, either alone or in combination:
[0116] 1. A method for embedding a web browser in a graphical display view of a process plant, comprising: configuring a web browser object via a user interface of a computing device executing a graphical configuration application in a configuration environment of the process plant to present web content from a source address in the graphical display view to the web browser; and downloading the configured web browser object from the configuration environment to the user interface device via the graphical configuration application for execution in the operating environment of the process plant such that during runtime execution on the user interface device, the graphical display view presents (i) a web browser having the web content from the source address, and (ii) a display of one or more process control elements including at least one of a control module, a function block, a process plant entity, or a process section of the process plant.
[0117] 2. The method of aspect 1, wherein configuring the web browser object includes configuring one or more restrictions on web content presented during runtime execution on the user interface device.
[0118] 3. The method of any one of the preceding aspects, wherein configuring the one or more restrictions includes configuring at least one of: restrictions on pop-ups within the web browser, restrictions on execution of application programming interfaces (APIs) within the web browser, restrictions on execution of scripts within the web browser, restrictions on submission of forms within the web browser, restrictions on access to server content within the web browser, or restrictions on navigation to top-level browsing contexts via one or more user controls presented by the graphical configuration application.
[0119] 4. The method of any one of the preceding aspects, wherein configuring the web browser object includes configuring a source whitelist that specifies web addresses that are allowed to be set as source addresses of web content or web addresses from which data can be retrieved and presented in the web browser.
[0120] 5. The method of any one of the preceding aspects, wherein configuring the source whitelist includes configuring a system source whitelist that is applied to each of a plurality of web browser objects included in each of a plurality of graphical display views representing the process plant.
[0121] 6. The method of any one of the preceding aspects, wherein configuring the source whitelist includes configuring a local source whitelist that is applied to the web browser object.
[0122] 7. The method of any one of the preceding aspects, wherein configuring the Web browser object includes selecting, via user controls presented by the graphical configuration application, whether to include a toolbar for navigating Web content within the Web browser.
[0123] 8. The method of any one of the preceding aspects, wherein configuring the web browser object includes configuring a size and position of the web browser object within the graphical display view.
[0124] 9. A method for presenting an embedded web browser in a graphical display view of a process plant, the method comprising: receiving, in a user interface device included in an operating environment of the process plant, an instance of a web browser object for presenting web content in the graphical display view in the web browser, the instance of the web browser object including a source address for presenting the web content and having one or more presentation parameters; and presenting, during runtime of the process plant, in the user interface device, the graphical display view including (i) the web browser with the web content from the source address presented in accordance with the one or more presentation parameters, and (ii) a display of one or more process control elements including at least one of a control module, a function block, a process plant entity, or a process section of the process plant.
[0125] 10. The method of aspect 9, wherein receiving an instance of a web browser object includes receiving an instance of a web browser object having a presentation parameter among one or more presentation parameters indicating a source whitelist that specifies web addresses that are allowed to be set as source addresses of web content or web addresses where data can be retrieved and presented in the web browser.
[0126] 11. The method of any one of aspects 9 or 10, wherein the source whitelist includes a local source whitelist configured during configuration of the web browser object and a system source whitelist configured for each of a plurality of web browser objects included in each of a plurality of graphical display views representing the process plant.
[0127] 12. The method of any one of aspects 9-11, further comprising: receiving, at a user interface device via a user control within a web browser, a request to navigate to another web address other than the source address; comparing the other web address with one or more web addresses included in a system source whitelist; and, in response to determining that the other web address is included in the system source whitelist, presenting web content from the other web address to the web browser.
[0128] 13. The method of any one of aspects 9-12, further comprising, in response to determining that the other web addresses are not included in the system source whitelist, not presenting web content from the other web addresses to the web browser.
[0129] 14. The method of any one of aspects 9-13, wherein receiving an instance of a web browser object includes receiving an instance of a web browser object having presentation parameters of one or more presentation parameters indicating one or more restrictions on web content to be presented during runtime execution, and presenting a graphical display view including a web browser having web content from a source address in accordance with the one or more presentation parameters includes presenting a graphical display view including a web browser having one or more restrictions on the web content.
[0130] 15. The method of any one of aspects 9-14, wherein the one or more restrictions on web content include at least one of: restrictions on pop-ups within a web browser, restrictions on execution of application programming interfaces (APIs) within a web browser, restrictions on execution of scripts within a web browser, restrictions on submission of forms within a web browser, restrictions on access to server content within a web browser, or restrictions on navigation to a top-level browsing context.
[0131] 16. A user interface device for inclusion in an operating environment of a process plant for presenting an embedded web browser in a graphical display view of the process plant via an operator application, the user interface device comprising: a processor; a display coupled to the processor; and a memory coupled to the processor, the memory storing: (i) an instance of a web browser object configured to present web content from a source address in the graphical display view to the web browser, the instance of the web browser object having one or more presentation parameters; and (ii) computer-executable instructions that, when executed by the processor during runtime, cause the operator application to present a graphical display view including (i) a display of one or more process control elements, including at least one of a control module, function block, process plant entity, or process section of the process plant, and (ii) a web browser with the web content from the source address presented in accordance with the one or more presentation parameters.
[0132] 17. A user interface device as described in aspect 16, wherein the one or more presentation parameters include a presentation parameter indicating a source whitelist that specifies web addresses that are allowed to be set as source addresses of web content or web addresses where data can be searched and presented in a web browser.
[0133] 18. The user interface device of aspect 16 or 17, wherein the instructions further cause the operator application to receive, via a user control within the web browser, a request to navigate to another web address other than the source address, compare the other web address with one or more web addresses included in the source whitelist, and, in response to determining that the other web address is included in the source whitelist, cause the web browser to present web content from the other web address.
[0134] 19. A user interface device according to any one of aspects 16-18, wherein the one or more presentation parameters include a presentation parameter indicating one or more restrictions on web content presented during runtime execution.
[0135] 20. A user interface device as described in any one of aspects 16-19, wherein the one or more restrictions on web content include at least one of: restrictions on pop-ups within a web browser, restrictions on execution of application programming interfaces (APIs) within a web browser, restrictions on execution of scripts within a web browser, restrictions on submission of forms within a web browser, restrictions on access to server content within a web browser, or restrictions on navigation to a top-level browsing context.
[0136] Furthermore, the foregoing aspects of the disclosure are illustrative only and are not intended to limit the scope of the present disclosure.
[0137] The following additional considerations apply to the above description: Throughout this specification, actions described as being performed by a device or routine generally refer to actions or processes of a processor that manipulates or transforms data according to machine-readable instructions. The machine-readable instructions can be stored in and retrieved from a memory device communicatively coupled to the processor. That is, the methods described herein can be embodied by a set of machine-executable instructions stored in a computer-readable medium (i.e., a memory device), as shown in FIG. 1B. The instructions, when executed by one or more processors of a corresponding device (e.g., a server, a user interface device, etc.), cause the processor to perform the method. When instructions, routines, modules, processes, services, programs, and / or applications are stored or saved in a computer-readable memory or computer-readable medium herein, the terms "stored" and "stored" are intended to exclude transitory signals.
[0138] Additionally, terms such as "operator," "employee," "person," "user," "technician," and the like are used to describe persons in a process plant environment who may use or interact with the systems, apparatus, and methods described herein, but these terms are not intended to be limiting. When a particular term is used in the description, that term is used, in part, for a traditional activity engaged in by plant employees, but is not intended to limit the employees who may engage in that particular activity.
[0139] Additionally, throughout this specification, multiple instances may implement components, operations, or structures described as a single instance. Although individual operations of one or more methods are illustrated and described as separate operations, one or more of the individual operations may be performed simultaneously, and the operations need not be performed in the order illustrated. Structures and functions presented as separate components in example configurations may be implemented as combined structures or components. Similarly, structures and functions presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements are within the scope of the subject matter of this specification.
[0140] Unless otherwise noted, descriptions herein using words such as "processing," "computing," "calculating," "determining," "identifying," "presenting," "causing to be presented," "causing to be displayed," and the like, can refer to the action or process of a machine (e.g., a computer) that manipulates or transforms data represented as physical (e.g., electronic, magnetic, biological, or optical) quantities in one or more memories (e.g., volatile memory, nonvolatile memory, or a combination thereof), registers, or other mechanical components that receive, store, transmit, or display information.
[0141] When implemented in software, any of the applications, services, and engines described herein can be stored in tangible, non-transitory computer-readable memory, such as a magnetic disk, laser disk, solid-state memory device, molecular memory storage device, or other storage medium in the RAM or ROM of a computer or processor. It should be noted that while the exemplary systems disclosed herein are disclosed as including software and / or firmware running on hardware, among other components, such systems should be considered merely exemplary and not limiting. For example, it is contemplated that any or all of these hardware, software, and firmware components can be embodied exclusively in hardware, exclusively in software, or in any combination of hardware and software. Thus, one skilled in the art will readily appreciate that the examples provided are not the only way to implement such a system.
[0142] Thus, while the invention has been described with reference to specific examples, it will be apparent to those skilled in the art that this is for purposes of illustration only and not limitation, and that modifications, additions and deletions may be made to the disclosed embodiments without departing from the spirit and scope of the invention.
[0143] It should also be understood that unless a term is expressly defined in this patent using the sentence "As used herein, the term "__" is hereby defined to mean ___" or a similar sentence, there is no intention to expressly or impliedly limit the meaning of the term beyond its plain or ordinary meaning, and such term should not be construed to limit the scope based on any reference made in any section of this patent (other than the claim language). To the extent any term recited in the claims at the end of this patent is referred to in this patent in a manner consistent with a single meaning, it is done solely for clarity so as not to confuse the reader, and it is not intended that such claim term be limited, implicitly or otherwise, to that single meaning. Finally, unless a claim element is defined by reciting the word "means" and a function without reciting any structure, it is not intended that the scope of any claim element be construed based on application of 35 U.S.C. 112(f) and / or 35 U.S.C. (pre-AIA) 35 U.S.C. 112, paragraph 6.
[0144] Furthermore, although the foregoing text describes detailed descriptions of many different embodiments, it should be understood that the scope of this patent is defined by the words of the claims set forth at the end of this patent. The detailed description should be construed as exemplary only and does not describe every possible embodiment, as describing every possible embodiment would be impractical, if not impossible. Numerous alternative embodiments can be implemented using either current technology or technology developed after the filing date of this patent, and still fall within the scope of the claims.
Claims
1. 1. A method for presenting an embedded web browser in a graphical display view of a process plant, comprising: receiving, from a user interface device in an operating environment of a process plant, an instance of a web browser object for presenting web content embedded within a graphical display view to a web browser, the instance having one or more presentation parameters including a source address for presenting the web content and including at least one presentation parameter indicating one or more restrictions on the web content presented during runtime execution, the one or more restrictions on the web content including at least one of: a restriction on pop-ups within the web browser, a restriction on execution of application programming interfaces (APIs) within the web browser, a restriction on execution of scripts within the web browser, a restriction on submission of forms within the web browser, a restriction on access to server content within the web browser, or a restriction on navigation to a top-level browsing context; During run-time of the process plant, the user interface device presents the graphical display view, the graphical display view including: (i) the web browser having the web content from the source address presented according to the one or more presentation parameters having the one or more restrictions on the web content; and (ii) a display of one or more process control elements including at least one of a control module, a function block, a process plant entity, or a process section of the process plant, the web content being associated with the one or more process control elements; A method for providing the above.
2. 2. The method of claim 1, wherein receiving the instance of the web browser object includes receiving the instance of the web browser object having, among the one or more presentation parameters, a presentation parameter indicating a source whitelist that specifies web addresses that can be set as the source address of the web content or web addresses where data can be retrieved and presented in the web browser.
3. 3. The method of claim 2, wherein the source whitelist comprises a local source whitelist configured during configuration of the web browser object and a system source whitelist configured for each of a plurality of web browser objects included in each of a plurality of graphical display views representing the process plant.
4. receiving, via a user control within the web browser, a request by the user interface device to navigate to a web address other than the source address; comparing the other web address to one or more web addresses included in the system source whitelist; presenting web content from the other web address to the web browser in response to determining that the other web address is included in the system source whitelist; and The method of claim 3 further comprising:
5. in response to determining that the other web address is not included in the system source whitelist, not presenting web content from the other web address to the web browser; The method of claim 4 further comprising:
6. 1. A user interface device in an operating environment for a process plant for presenting an embedded web browser to a graphical display view of the process plant via an operator application, the user interface device comprising: A processor; a display coupled to the processor; a memory coupled to the processor, (i) an instance of a web browser object configured to present web content from a source address embedded within the graphical display view to a web browser, the instance having one or more presentation parameters including at least one presentation parameter indicating one or more restrictions on the web content presented during runtime execution, the one or more restrictions on the web content including at least one of: a restriction on popups within the web browser; a restriction on execution of application programming interfaces (APIs) within the web browser; a restriction on execution of scripts within the web browser; a restriction on submission of forms within the web browser; a restriction on access to server content within the web browser; or a restriction on navigation to a top-level browsing context; (ii) when executed by the processor during runtime, the operator application causing the web browser to present the graphical display view comprising: (i) a representation of one or more process control elements, including at least one of a control module, a function block, a process plant entity, or a process section of the process plant; and (ii) the web browser having the web content from the source address presented in accordance with the one or more presentation parameters having the one or more restrictions on the web content. computer executable instructions; A memory for storing Equipped with the web content is related to the one or more process control elements; User interface device.
7. The user interface device of claim 6, wherein the one or more presentation parameters include a presentation parameter indicating a source whitelist that specifies web addresses that can be set as the source address of the web content or web addresses from which data can be retrieved and presented in the web browser.
8. 8. The user interface device of claim 7, wherein the source whitelist includes a local source whitelist configured during configuration of the web browser object and a system source whitelist configured for each of a plurality of web browser objects included in each of a plurality of graphical display views representing the process plant.
9. The instructions to the operator application further include: receiving, via a user control within the web browser, a request to navigate to a web address other than the source address; comparing the other web addresses to one or more web addresses included in the source whitelist; in response to determining that the other web address is included in the source whitelist, causing the web browser to present web content from the other web address. The user interface device according to claim 8.
10. The instructions to the operator application further include: in response to determining that the other web address is not included in the system source whitelist, not causing the web browser to present web content from the other web address; The user interface device according to claim 9.
11. 1. A non-transitory computer readable medium storing an operator application, the operator application, when executed by one or more processors, causing the one or more processors to: a user interface device in the process plant operating environment for presenting web content embedded within a graphical display view in a web browser, storing an instance of a web browser object having one or more presentation parameters including a source address for presenting the web content and including at least one presentation parameter indicating one or more restrictions on the web content presented during runtime execution, the one or more restrictions on the web content including at least one of: a restriction on pop-ups in the web browser, a restriction on execution of application programming interfaces (APIs) in the web browser, a restriction on execution of scripts in the web browser, a restriction on submission of forms in the web browser, a restriction on access to server content in the web browser, or a restriction on navigation to a top level browsing context; causing, during run-time of the process plant, the user interface device to present the graphical display view comprising: (i) the web browser with the web content from the source address presented in accordance with the one or more presentation parameters having the one or more restrictions on the web content; and (ii) a representation of one or more process control elements including at least one of a control module, a function block, a process plant entity, or a process section of the process plant, the web content being associated with the one or more process control elements. Computer-readable medium.
12. 12. The computer-readable medium of claim 11, wherein the one or more presentation parameters include a presentation parameter indicating a source whitelist that specifies web addresses that can be set as the source address of the web content or web addresses from which data can be retrieved and presented in the web browser.
13. 13. The computer-readable medium of claim 12, wherein the source whitelist comprises a local source whitelist configured during configuration of the web browser object and a system source whitelist configured for each of a plurality of web browser objects included in each of a plurality of graphical display views representing the process plant.
14. The operator application may further include, on the one or more processors: receiving, via a user control within the web browser, a request to navigate to a web address other than the source address; comparing the other web addresses to one or more web addresses included in the source whitelist; in response to determining that the other web address is included in the source whitelist, causing the web browser to present web content from the other web address.
14. The computer-readable medium of claim 13.
15. The operator application may further include, on the one or more processors: in response to determining that the other web address is not included in the system source whitelist, not causing the web browser to present web content from the other web address; 15. The computer-readable medium of claim 14.
Citation Information
Patent Citations
Process monitoring and control device
JP2005222197A
Terminal device, server device, system, information processing method, and program
JP2016091420A
Techniques for providing authentication information to external and embedded web browsers
US20180176203A1