SYSTEM AND APPARATUS FOR DISTRIBUTION OF BATCH AND CONTINUOUS PROCESS CONTROL DATA TO REMOTE DEVICES - Patent application
By implementing a secure real-time data communication system on mobile devices, the problem of difficulty in providing real-time and secure mobile device access in the prior art is solved, real-time monitoring and management of process control systems is realized, and production efficiency and security are improved.
Patent Information
- Application Number
- JP2018111141
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2017-10-02
- Filing Date
- 2018-06-11
- Publication Date
- 2025-04-04
- Estimated Expiration
- 2038-06-11
AI Technical Summary
Existing distributed process control systems are difficult to provide real-time and secure access to mobile devices, limiting the operator's ability to remotely monitor and manage process control systems, resulting in an impact on productivity and security.
By implementing a secure real-time data communication system on a mobile device, the system includes a mobile server that can receive and process real-time data from the process control system from the data server and transmit data to the mobile device over a secure network connection.
Real-time and secure mobile device access to the process control system is achieved, allowing operators to monitor and manage production processes at any time and place, improving production efficiency and safety.
Smart Images

Figure 0007657012000001 
Figure 0007657012000002 
Figure 0007657012000003
Abstract
Description
[Technical field]
[0001] The present disclosure relates generally to mobile monitoring of batch process control environments, and specifically to a system for providing customizable, real-time insight into batch and continuous process control systems on multiple mobile devices. [Background technology]
[0002] Distributed control systems (DCS) are used in a variety of process industries, including chemical, petrochemical, refining, pharmaceutical, food and beverage, power, cement, water and wastewater, oil and gas, pulp and paper, and steel, to control batch, fed-batch, and continuous processes operating at a single location or at remote locations. A process plant typically includes one or more process controllers communicatively coupled to one or more field devices via an analog, digital, or integrated analog / digital bus, or via a wireless communication link or network. Collectively, the various devices perform monitoring, control, and data collection functions to control processes, safety shutdown systems, fire and gas detection systems, machine health monitoring systems, maintenance systems, decision support, and other systems.
[0003] Field devices, which may be, for example, valves, valve positioners, switches, and transmitters (e.g., temperature, pressure, level, and flow rate sensors), are located within the process environment and generally perform physical or process control functions, such as opening or closing valves, measuring process parameters, and the like, to control one or more processes running within the process plant or system. Smart field devices, such as field devices conforming to the well-known Fieldbus protocol, may also perform control calculations, alarm functions, and other control functions typically implemented within controllers. Process controllers are also typically located within the plant environment and execute controller applications that execute different control modules that receive signals indicative of process measurements made by the field devices and / or other information regarding the field devices, e.g., make process control decisions, generate control signals based on the received information, and interface with control modules or blocks implemented in field devices, such as HART®, WirelessHART®, and FOUNDATION® Fieldbus field devices. The control modules of 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.
[0004] Information from the field devices and controllers is usually made available over a data highway to one or more other hardware devices, such as operator workstations, personal computers or computing devices, data historians, report generators, centralized databases, or other centralized computing devices, that are typically located in a control room or other location away from the more hostile plant environment. Each of these hardware devices is typically centralized throughout the process plant, or throughout portions of the process plant. These hardware devices are used by, for example, operators to control and / or perform functions related to the process, such as changing settings of process control routines, modifying the operation of control modules in controllers or field devices, viewing the current state of the process, viewing alarms generated by field devices and controllers, simulating the operation of the process for purposes of training personnel or testing process control software, and maintaining and updating configuration databases. or execute applications that may enable the processor to perform functions related to the operation of the process plant.
[0005] As an example, the DeltaV™ control system, sold by Emerson Process Management, includes multiple applications stored in and executed by different equipment located at various locations within a process plant. Configuration applications residing in one or more workstations or computing devices allow users to create or modify process control modules and download these process control modules over a data highway to dedicated distributed controllers. Typically, these control modules are composed of communicatively interconnected function blocks that are objects in an object-oriented programming protocol that perform functions within a control scheme based on inputs to them and provide outputs to other function blocks in the control scheme. The configuration application may also allow a configuration engineer to create or modify operator interfaces that are used by a viewing application to display data to an operator and to allow the operator to change settings such as set points within a process control routine. Each dedicated controller, and in some cases one or more field devices, stores and executes a respective controller application that executes the control modules assigned to them and downloaded to implement the actual process control functions. A viewing application may execute on one or more operator workstations (or one or more remote computing devices communicatively connected to the operator workstations and the data highway) and may receive data from the controller applications via the data highway and display this data to a process control system designer, operator, or user using a user interface to provide any of a number of different views, such as an operator's view, an engineer's view, a technician's view, etc.While the data historian application is typically stored on and executed by a data historian device that collects and stores some or all of the data provided over the data highway, the configuration database application may be executed on a more remote computer connected to the data highway to store the current process control routine configuration and associated data. Alternatively, the configuration database may be located in the same workstation as the configuration application.
[0006] In many distributed process control systems, each field device in a process plant is assigned a unique device tag. The unique device tag provides an easy means to reference the corresponding field device. The device tag can be used during configuration of the process control system to identify the source or destination, respectively, of an input or output to a function block in a control module. Each signal type has a specific format or set of information associated with it, and the device tag of a particular device may have a specific signal type associated with it, so that when the device tag is associated with an input or output of a function block, the function block knows the format and information associated with that signal. If a field device has multiple signals associated with it (e.g., a valve may measure and transmit both pressure and temperature), a device signal tag may be associated with each signal of that field device.
[0007] For a variety of reasons, access to process control system data has traditionally been available only while on the process plant premises and / or using devices connected to the data highways linking operator workstations, controllers, data historians, and other equipment. Security is a particular concern with process control systems, and therefore process control system operators are generally not permitted to access data from outside the process plant. Physically isolate the process control system from the external network environment (e.g., the Internet) to limit or prevent the opportunity for personnel to cause damage to the process control system, affect product quality or viability, or access or steal proprietary information.
[0008] More recently, a few mobile solutions have emerged that allow users to view some information from process control systems via mobile devices such as smartphones even when not directly connected to the process networks and data highways that make up the process plant. These solutions allow monitoring of a single data source, such as a data historian, and the available data is limited to the data stored in the data historian (i.e., a small subset of the total data in the process plant). Furthermore, even the data available via such systems is not available in real time (due to the frequency with which data is stored in the data historian). Furthermore, due to delays in data availability and the limited subset of data available, alarms are not generally available via currently offered mobile systems, and to the extent that alarm-like functionality may be available in some mobile systems, alarms are not "built into" the process control system (i.e., they are provided on top of the mobile system as a layer and require extensive and time-consuming engineering to implement) or lack the real-time and historical data necessary to evaluate and troubleshoot alarms. Summary of the Invention
[0009] Some aspects of the systems and methods described herein relate to secure and timely communication of process data from a process control system of a process plant to a remote computing device. The systems and methods may enable secure access in real time to any process data, including batch data, in a process control system via a mobile server that receives the process data from a data server that obtains the process data in real time from the process control system as the data values are generated or received by a controller in the process control system.
[0010] In one embodiment, a method for providing batch process data from a process control system of a process plant to a remote computing device includes receiving a request to create a list of batch data to be provided to the remote computing device. The method also includes presenting a selection interface to a user to facilitate selection of the batch data to be provided to the remote computing device and receiving at a first computing device via the selection interface a selection of a batch executive from which to provide the batch process data, the batch executive operating on a controller within the process plant. The method further includes receiving one or more filter criteria at the first computing device via the selection interface, applying the filter criteria at the first computing device to data available from the batch executive to determine a set of data to be included in the list of batch data to be provided to the remote computing device, and transmitting an indication of the set of data associated with the list of batch data to be provided to the mobile device to a mobile server.
[0011] In another embodiment, a tangible, non-transitory computer readable medium storing machine readable instructions optimized for a microprocessor on a mobile computing device, when executed by the microprocessor, displays a graphical user interface (GUI) and receives a selection of one or more items for viewing via the GUI, where each of the one or more items is The instructions cause the microprocessor to receive and transmit a selection of one or more items associated with a batch process running within the process control system to a mobile server over either the Internet or a cellular data connection. The instructions also cause the microprocessor to receive a plurality of real-time values corresponding to the selected one or more items from the mobile server over either the Internet or a cellular data connection and display the plurality of real-time values on the GUI. [Brief description of the drawings]
[0012] The features and advantages of the methods, apparatus, and systems described herein will be best understood by referring to the following detailed description and the accompanying drawings.
[0013] [Figure 1A] FIG. 1 is a block diagram of an example process control environment in accordance with the present disclosure. [Figure 1B] FIG. 1 is a flow diagram illustrating an example process in a process control environment. [Figure 1C] FIG. 1C is a block diagram of individual devices within the example process of FIG. 1B. [Figure 1D] 1D shows individual process control entities in the apparatus of FIG. 1C. [Figure 1E] FIG. 1C is a block diagram illustrating product flow through another process control entity in the example process of FIG. 1B. [Figure 1F] 3 illustrates two exemplary display graphics that may be displayed in accordance with the present invention. [Figure 1G] 1 illustrates an exemplary watchlist that may be displayed in accordance with the present invention. [Figure 1H] 1C illustrates an exemplary display showing data regarding a particular item in the watchlist of FIG. 1G. [Figure 1I] 1 illustrates an exemplary alarm list display in accordance with the present disclosure. [Figure 1J] 1A shows a display that may be generated for a particular alarm in the alarm list of FIG. 1I. [Figure 1K] 1C illustrates an alternative display of the information in FIG. 1H that may be shown when the device is rotated sideways. [Figure 1L] 1 shows a block diagram illustrating the overall architecture of a system for mobile information delivery in a process control environment according to the present disclosure. [Figure 1M] 1 illustrates an exemplary home screen that may be displayed on a mobile device. [Figure 1N] 1 illustrates a batch list that may be displayed to a user of a mobile device. [Figure 2A] FIG. 1 is a flow diagram of an example data list configuration method for a process control system of a process plant. [Figure 2B] FIG. 1 is a flow diagram of an example configuration data retrieval method in a process control system of a process plant. [Figure 2C] FIG. 1 is a flow diagram of an example data subscription method in a process control system of a process plant. [Figure 2D] FIG. 2 is a sequence diagram of an example data subscription communication sequence in a process control system of a process plant. [Figure 2E] FIG. 1 is a flow diagram of an example data server communication method in a process control system of a process plant. [Figure 2F] FIG. 2 is a sequence diagram of an example data server communication sequence in a process control system of a process plant. [Figure 2G]FIG. 1 is a flow diagram of an example mobile server communication method in a process control system of a process plant. [Figure 2H] FIG. 2 is a sequence diagram of an example mobile server communication sequence in a process control system of a process plant. [Figure 2I] FIG. 2 is a sequence diagram of an example view list subscription sequence in a process control system of a process plant. [Figure 2J] FIG. 1 is a block diagram of an example data server in a process control system of a process plant. [Figure 2K] FIG. 1 is a block diagram of an example mobile server in a process control system of a process plant. [Figure 2L] FIG. 1 is a block diagram of an example mobile server internal communication architecture in a process control system of a process plant. [Figure 2M] FIG. 1 is a flow diagram of an example alarm notification method in a process control system of a process plant. [Figure 2N] FIG. 2 is a sequence diagram of an example alarm transmission sequence in a process control system of a process plant. [Figure 2O] FIG. 1 is a block diagram of an example alarm notification architecture in a process control system of a process plant. [Figure 2P] FIG. 1 is a flow diagram of an example alarm response method in a process control system of a process plant. [Figure 2Q] FIG. 2 is a block diagram of an example web client implementation in accordance with the systems and methods described herein. [Figure 3A] 4 is a signal diagram of an exemplary GUI generation sequence operating on a mobile computing device. [Figure 3B] 1 is an exemplary representation of a list of list GUIs operating on a mobile computing device. [Figure 3C]1 is an exemplary representation of a list of list GUIs operating on a mobile computing device. [Figure 3D] 1 is an exemplary representation of a watchlist GUI operating on a mobile computing device. [Figure 3E] 1 is an exemplary representation of a watchlist item GUI operating on a mobile computing device. [Figure 3F] 1 is an exemplary representation of a watchlist item GUI operating on a mobile computing device. [Figure 3G] 1 is an exemplary representation of an alarm list GUI operating on a mobile computing device. [Figure 3H] 1 is an exemplary representation of an alarm item GUI operating on a mobile computing device. [Figure 3I] 11 is an exemplary representation of steps in a process of combining watchlist items via a watchlist GUI operating on a mobile computing device. [Figure 3J] 11 is an exemplary representation of steps in a process of combining watchlist items via a watchlist GUI operating on a mobile computing device. [Figure 3K] 11 is an exemplary representation of steps in a process of combining watchlist items via a watchlist GUI operating on a mobile computing device. [Figure 3L] 11 is an exemplary representation of steps in a process of combining watchlist items via a watchlist GUI operating on a mobile computing device. [Figure 3M] 11 is an exemplary representation of steps in a process of combining watchlist items via a watchlist GUI operating on a mobile computing device. [Figure 3N] 1 is a flow diagram of an exemplary list construction method implemented by a mobile computing device. [Figure 3P] 1 is an exemplary representation of a selection interface operational on a mobile computing device. [Figure 3Q] 1 is an exemplary representation of a search interface operating on a mobile computing device. [Figure 3R] 1 is an exemplary representation of a filter interface operating on a mobile computing device. [Figure 3S] 1 is a flow diagram of an example user access configuration method implemented by a mobile computing device. [Figure 3T] 1 is an exemplary representation of a user access interface operating on a mobile computing device. [Figure 4A] 1 is an exemplary display showing unit procedures associated with a particular batch. [Figure 4B] 1 is an exemplary display showing operations associated with a unit procedure. [Figure 4C] 1 is an exemplary display showing phases associated with an operation. [Figure 4D] 1 is an exemplary display showing parameters associated with an operation. [Figure 4E] 1 is an exemplary display showing phase details. [Figure 4F] 1 is an exemplary display showing equipment associated with a group of batches. [Figure 4G] 1 is an exemplary display showing phases associated with a piece of equipment. [Figure 4H] 1 is an exemplary display showing parameters associated with a piece of equipment. [Figure 4I] 1 is an exemplary display showing prompts associated with a group of batches. [Figure 4J] 1 is an exemplary display showing details of a prompt. [Figure 4K] FIG. 11 is a flow diagram illustrating a method for constructing a list of batch data. [Figure 4L] A user interface for enabling batch data submission to a mobile server. [Figure 4M] 11 is an exemplary interface for setting properties of a batch list. [Figure 4N] 1 is an exemplary interface for filtering to select data appearing on a mobile device. [Figure 4O] 1 is an exemplary interface for specifying parameters that appear on a mobile device. [Figure 4P] 11 is an exemplary interface for selecting users to receive notification of a prompt. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0014] As noted above, known distributed process control systems lack the ability to maintain situational awareness when operators, maintenance personnel, and others associated with the process control system are away from the operator workstation and / or away from the physical location of the process plant. As a result, plant personnel are unable to observe the operation of the process control system and process plant unless they are physically present there. Because process plants typically operate in multiple shifts, observations and operations of the process plant are handed off multiple times during the day. While plant personnel on a particular shift may make notes for subsequent shifts, these shift changes can result in discontinuities in the operation and management of processes and equipment, adversely affecting product quality, plant efficiency, maintenance, environmental safety, regulatory compliance, and other aspects of process plant management. Implementation of the systems, devices, and methods for mobile information delivery described herein addresses the discontinuities resulting from such shift changes and the associated problems. This can alleviate many of the problems that can arise from operating the plant, provide increased situational awareness to plant personnel, and provide additional benefits that will become apparent throughout the disclosure that follows.
[0015] 1A illustrates an example process plant network 10 that includes a mobile services infrastructure 12 for supporting a plurality of mobile devices 14 having access to data associated with the process plant, not necessarily located on the process plant premises. As described in detail herein, the mobile services infrastructure 12 facilitates real-time communication of any of the process plant data available within the process control plant network 10 to the mobile devices 14 while maintaining security of the process plant network 10. Each of the mobile devices 14 includes, among other elements, applications 16 executable by the mobile devices 14 to enable a user to interact with the process plant data via a graphical user interface (GUI) 18.
[0016] Generally, plant personnel utilize one or more applications 20 to supervise and control the operation of the process plant 10 and a distributed control system 22 implemented within the process plant 10. The viewing or monitoring application 20 generally includes a user interface application and uses a variety of different displays to graphically depict process graphics to operators and maintenance engineers, and / or other users at workstations, such as workstations 30 and 32, respectively.
[0017] The process plant environment of FIG. 1A also includes a graphical configuration system 34. The graphical configuration system 34 generally facilitates the creation of control and monitoring schemes for the control of the process plant, including graphical displays. The graphical configuration system 34 may include a configuration editor 35 that may be used, for example, to control modules, module templates, graphical displays and templates stored in a library, and other aspects of the control system, and may later be used to create instances or uses that are actually executed within the control of the process plant by downloading instances of control modules to a controller, or by executing instances of graphical displays during operation of the plant 10, for example, in a user display that is presented to operators and maintenance personnel. Of course, the graphical configuration system 34, configuration editor 35, and the various control modules, templates, and graphical displays may be stored in a tangible computer readable memory or medium and may operate on one or more processors to perform the functions described herein.
[0018] As is typically the case, the distributed process control system 22 shown in FIG. 1A has one or more controllers 40, each of which is connected to one or more field devices 44 and 46 (which may be smart devices) via an input / output (I / O) device or card 48, which may be, for example, a Fieldbus interface, a Profibus interface, a HART interface, a standard 4-20ma interface, or the like. The controllers 40 are also coupled to one or more host or operator workstations 30-32 via a data highway 54, which may be, for example, an Ethernet link. A process data database 58 may be connected to the data highway 54 and operates to collect and store process variables, process parameters, status, and other data associated with the controllers, the field devices, and any other devices in the plant 10. During operation of the process plant 10, the process data database 58 may receive process data from the controllers 40 and indirectly from the field devices 44-46 via the data highway 54.
[0019] The configuration database 60 stores the current configuration of the distributed control system 22 within the plant 10 that has been downloaded to and stored in the controllers 40 and field devices 44, 46. The configuration database 60 stores process control functions that define one or more control strategies of the distributed control system 22, configuration parameters of the devices 44, 46, assignments of the devices 44, 46 to process control functions, and other configuration data associated with the process plant 10. The configuration database 60 may further store graphical objects or user displays, as well as configuration data associated with these objects or displays that are described in more detail herein, to provide various graphical representations of elements within the process plant 10. Some of the stored graphical objects may correspond to process control functions (e.g., a process graphic developed from a particular PID loop) and other graphical objects may be device specific (e.g., a graphic corresponding to a pressure sensor).
[0020] The data historian 62 (another database) stores events, alarms, comments, and actions taken by operators. The events, alarms, and comments may relate to individual devices (e.g., valves, transmitters), communication links (e.g., wired Fieldbus segments, WirelessHART communication links), or process control functions (e.g., a PI control loop for maintaining a desired temperature set point). Additionally, the knowledge repository 64 stores references, operator logbook entries, help topics, or links to these and other documents that operators and maintenance engineers may find useful when overseeing the process plant 10. Still further, the user database 66 stores information about users, such as operators and maintenance engineers. For each user, the user database 66 may store, for example, their role within the organization, the user's span of control, the area within the process plant 10 in which the user is involved, work team affiliation, security information, system privileges, shift information, and the like.
[0021] Each of the databases 58-66 can be any desired type of data storage or collection unit having any desired type of memory, and any desired or known software, hardware, or firmware for storing data. Of course, the databases 58-66 need not reside in separate physical devices. Thus, in some embodiments, some of the databases 58-66 may be implemented on shared data processors and memories. In general, fewer or more databases may be utilized to store the data collectively stored and managed by the databases 58-66 in the example system of FIG. 1A.
[0022] While the controllers 40, I / O cards 48, and field devices 44, 46 are typically located deep within and distributed throughout a potentially harsh plant environment, the operator workstations 30 and 32, and databases 58-66 are typically located in a control room or other relatively non-harsh environments that are easily accessible to control, maintenance, and various other plant personnel. However, in some cases, these functions may be implemented using portable devices coupled to the data highway 54, and these portable devices are typically carried to various locations within the plant. Such portable devices, and in some cases operator workstations and other display devices, may be connected to the DCS 22 via wireless communication connections. These portable devices are distinguished from the mobile devices 14, because the mobile devices do not necessarily have to be present on the process plant premises and do not have to be directly coupled (via wired or wireless means) to the data highway 54.
[0023] As is known, the controller 40 may be, by way of example, a DeltaV™ controller sold by Emerson Process Management. Each stores and executes a controller application that implements a control strategy using any number of different independently executing control modules or blocks 70. Each of the control modules 70 may be made up of what are generally referred to as function blocks, each of which is a portion or subroutine of an overall control routine and operates with other function blocks (through communications called links) to implement a process control loop within the process plant 10. As is well known, a function block, which may be an object in an object oriented programming protocol, typically performs one of the following: 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 plant 10. Of course, hybrid and other types of complex function blocks exist, such as model predictive controllers (MPC), optimizers, etc. While the Fieldbus and DeltaV system protocols use control modules and function blocks designed and implemented in object oriented programming protocols, the control modules may be designed using any desired control programming scheme including, for example, sequential function blocks, ladder logic, etc., and are not limited to being designed and implemented using function blocks or any other particular programming technique. Each of the controllers 40 may also support the AMS® suite of applications sold by Emerson Process Management, which may use predictive intelligence to improve the availability and performance of production assets including machinery, electrical systems, process equipment, instruments, non-smart and smart field devices 44, 46, etc.
[0024] As noted, the DCS 22 includes one or more controllers 40 communicatively coupled to the workstation(s) 30, 32 in the control room. The controllers 40 automate the control of field devices 44, 46 in the process area by executing process control strategies implemented via the workstations 30, 32. An exemplary process strategy involves measuring pressure using a pressure sensor field device and automatically sending instructions to a valve positioner to open or close a flow valve based on the pressure measurement. The I / O cards 48 translate information received from the field devices 44, 46 into a format compatible with the controllers 40, and translate information from the controllers 40 into a format compatible with the field devices 44, 46.
[0025] Through the I / O card 48, the controller 40 may communicate with the field devices 44, 46 according to a control module 70 downloaded to the controller 40. The control module 70 is programmed using the configuration system 34. In the configuration system 34, an engineer may create the control module 70, for example, by instantiating one or more function blocks. As an example, a configuration engineer may instantiate an AI function block to receive an analog input from one of the field devices 44, 46, which may receive various values (e.g., signal values, alarm limits, signal status, etc.) associated with the analog output of the field device 44, 46. The AI function block may output a corresponding signal to another function block (e.g., a proportional-integral-dirivative (PID) control function block, a custom function block, a display module, etc.). When an instance of an AI function block is created, associating the function block with a unique device tag that is associated with a field device 44, 46 causes the function block to work with the appropriate I / O card 48 to process information from the correct field device 44, 46 when the function block is downloaded to the controller 40.
[0026] In the plant network 10 shown in FIG. The field devices 44, 46 may be standard 4-20ma devices, may be smart field devices such as HART, Profibus, or FOUNDATION Fieldbus field devices that include a processor and memory, or may be any desired type of device. Some of these devices, such as the Fieldbus field devices (labeled with reference number 46 in FIG. 1A), may store and execute modules or sub-modules, e.g., function blocks, that are associated with control strategies implemented in the controller 40 or that perform other actions within the process plant, such as data collection, trending, alarms, calibration, etc. The function blocks 72 shown disposed within the two different Fieldbus field devices 46 in FIG. 1A may be executed in conjunction with the execution of the control modules 70 within the controller 40 to perform process control, as is well known. Of course, the field devices 44, 46 may be any type of device, such as sensors, valves, transmitters, positioners, etc., and the I / O devices 48 may be any type of I / O devices that conform to any desired communication or controller protocol, e.g., HART, Fieldbus, Profibus, etc.
[0027] 1A , the workstations 30 and 32 may include various applications used for a variety of different functions performed by personnel within the plant 10. Each of the workstations 30 and 32 includes a memory 80 that stores various applications, programs, data structures, etc., and a processor 82 that may be used to execute any of the applications stored in the memory 80. In the example shown in FIG. 1A , the workstation 30 also includes one or more process controller configuration applications 84, in addition to the display and viewing application 20, which may include, for example, a control module creation application, an operator interface application, and other data structures that may be accessed by any interested configuration engineer to create control routines or modules, such as the control modules 70 and 72, and download them to the various controllers 40 and devices 46 of the plant 10. The configuration application 84 also includes a display or graphical configuration system 34 having a configuration editor 35 that may be used to create the control module 70.
[0028] Generally, the viewing application 20 allows an operator to view display modules configured to provide specific information about the operation of a particular area of the process plant 10 and to control the operation of the process plant 10 according to the information on the display modules. The display modules are rendered on the workstations 30, 32 and incorporate real-time process data received from the controller 40 and the field devices 44, 46. As used herein, "real-time" communication of data refers to electronic communication of data over an electronic communication network having normal delays for processing, routing, and transmission without unintentionally introducing additional non-trivial delays. In some embodiments, a trivial delay of less than 5 seconds (preferably less than 2 seconds) may be introduced to reduce network congestion when communicating data in real-time. The display modules may be any type of interface that allows an operator or other user to manipulate (e.g., read or write) data values to monitor or change the operation of the field devices 44, 46, the control modules 70, and the function blocks 72, as well as the DCS 22 and the process plant 10 as a whole. The display module may be stored in the memory 80 of the workstation 30 , 32 and may also be stored in the configuration database 60 .
[0029] The control module 70, and in some embodiments the display module, may be part of a configuration file 74 in the configuration database 60. That is, the control module 70 may be stored in the configuration file 74 together with the display module or separately from the display module. In any event, the configuration file 74 generally stores the entire configuration of the DCS 22, including devices, device tags, friendly names, data format information (e.g., scaling information, unit types, etc.), and the variables associated with each control loop, defined control strategies, etc. As previously indicated, the configuration file 74 may also be downloaded to the controller 40 to implement the control strategies defined in the configuration file 74.
[0030] As will be appreciated, the process plant 10 may include hundreds, thousands, or even thousands of signals, outputs from transmitters (i.e., sensors) on the hundreds or thousands of field devices 44, 46, and / or inputs to these field devices 44, 46 to cause the field devices 44, 46 to perform control functions according to control strategies programmed into the control module 70. The plant 10 may be divided into different areas, several of which may be controlled by a single controller 40, each of which may be controlled by a single controller or several controllers 40, or some combination. In any case, the field devices 44, 46 that make up the process plant 10 will likely be individually duplicated several times within the process plant 10 (e.g., there may be many of any type of valve, many pumps, many heaters, many tanks, etc.). The field devices 44, 46 may also be combined into functional groups within a physical area ("process area"), in which the field devices 44, 46 within that process area perform a particular portion of the overall process. For example, a particular process area may have equipment for generating steam for other parts of the process. Within a process area, there may be overlapping pieces or groups of equipment ("process equipment") that share similar structure and function. As an example, process equipment in a steam generation process area may include boilers and turbo generators, and the process area may include multiple instances of this process equipment.
[0031] As an example, Figure IB shows a flow diagram 100 illustrating a process for converting crude oil to other fuel oils. At the entry point to the refining process, a crude unit 102 separates components and distributes them for further downstream processing by other units. Each of the units may include various equipment such as pumps, compressors, heat exchangers, reactors, tanks, separation and distillation columns, as well as various valves, transmitters, pumps, etc. Many of the units may include common processing equipment. For example, heaters may be used in different units.
[0032] 1C, which illustrates a block diagram of the crude unit 102, the crude unit 102 includes a variety of field devices. Although FIG. 1C illustrates the desalter 104, the combustion heater 106, the fractionator 108, the pump 110, and the vessels 112, 114, the crude unit 102 also includes other field devices not illustrated in FIG. 1C, such as temperature, level, and pressure transmitters, valves, etc. Each of the field devices, each group of devices, each process unit, and / or each process area may have corresponding display graphics that are used in a display module to present it to an operator during operation of the process plant 10 and to include information specific to that operation. For example, the combustion heater 106 may be represented in the display module 116 with a limited set of parameters, as illustrated in FIG. 1D.
[0033] 1D, the combustion heater 106 is shown with six parameters. Of course, the parameters will be different for various pieces of equipment and in some cases different uses of the equipment (e.g., the parameters included in the combustion heater 106 used in a crude unit 102 may be different from the parameters included in a combustion heater used in a diesel hydrotreater), but the parameters shown on the display module 116 are O2 and NOx levels in the fuel gas (118, 120, respectively), output temperature 122, process flow rate 130, and output temperature 132. The pressures include the air flow rate 124 , the fuel gas pressure 126 , and the draft pressure 128 .
[0034] As another example, and referring back to FIG. 1B, diesel fuel output from the crude unit 102 flows to a hydrocracker 103. The components of the diesel hydrocracker 103 are shown in block diagram 130 in FIG. 1E and include a feed system 132, a heater and reactor set 134, a stripper 136, and a gas plant 138. Of course, each of the components shown in FIG. 1E may be made up of several (or many) subcomponents. For example, the heater and reactor set 134 may include a single reactor or multiple reactors. Thus, the display graphics corresponding to the reactor 134 may include a single reactor or multiple reactors and may be displayed differently depending on whether one reactor or multiple reactors are included, as shown in FIG. 1F. In FIG. 1F, display graphics 140 shows a single reactor, while display graphics 142 shows multiple reactors. Parameters associated with each of the display graphics 140 and 142 are also shown, with the understanding that these may vary depending on the particular arrangement and use of the device shown.
[0035] In general, the process plant 10 of FIG. 1 may be used to implement batch and / or continuous processes. For example, a pharmaceutical processing facility may implement a batch process. A pharmaceutical processing facility uses batch process techniques to produce large quantities of a particular substance, such as a drug, through a step-by-step process. This is in contrast to continuous process techniques, such as those used to control natural gas flow through a refinery, which involve a series of discrete, ordered steps, such as a recipe, that specifies the separate steps to produce a product. For example, in a batch process environment, a final or desired product is typically produced using a series of steps known as a control recipe. Each step may require the use of one or more pieces of equipment, such as heaters, conveyor belts, tanks, mixers, etc.
[0036] There are three types of recipes: procedures, unit procedures, and operations. Each recipe is a sequence of steps, some of which may run in parallel with others. A procedure contains one or more unit procedures as steps in a recipe. A unit procedure contains one or more operations as steps in a recipe. An operation contains one or more phases as steps in a recipe. A phase is available to run on a piece of equipment, also called a process device. To entrain a phase on a piece of equipment, a recipe must first "acquire" it, preventing other recipes from running those phases at the same time. Note that an equipment acquired by a unit procedure may have multiple operations (as steps of a unit procedure) that run phases in parallel on that equipment. Note that the same operation can also run phases in parallel on an equipment. A procedure may define multiple unit procedures to, for example, prepare a paint of a particular color. Each unit procedure may define a different mixing phase. For example, a first unit procedure may define a pre-mixing procedure used to mix base ingredients (e.g., latex, oil, solvents, etc.), a second unit procedure may be used to mix intermediate ingredients (e.g., binders, surfactants, etc.), and another unit procedure may be used to mix color pigments into the product.
[0037] Each unit procedure step is implemented using one or more operations, and each operation step is implemented using one or more process phases. A process phase may correspond to a specific piece of process equipment. An operation performs a phase for a single piece of equipment, not multiple pieces of equipment. So, this example should be rephrased as "an operation may involve using an ingredient addition phase, and an agitation phase, which corresponds to a mixer." An addition phase adds an ingredient to other ingredients already in the mixer. The agitation phase involves controlling the mixer to mix the ingredients. After the mixer has finished mixing the ingredients, the field devices 44, 46 are controlled to allow the mixture to flow from the mixer to a holding tank as part of a discharge phase of the mixer, which may be performed as part of the same or another operation.
[0038] A particular plant may also have multiple recipes that operate substantially in parallel. Typically, a manufacturing plant is logically separated into separate groups of equipment. Each group will contain specific equipment and will often be designated for a specific operation. Each control recipe will generally contain all the information (e.g., procedural structure, recipe parameters, required equipment, etc.) to control various groups of processes, including different process areas, equipment, loops, or equipment, to produce a particular product. For example, one recipe may require the use of a mixing trough, while another recipe involves heating in a storage vessel. These control recipes are instantiated into the operating "batch" by a batch executive or equivalent subsystem. The actual instantiation of the control recipe into the operating batch typically involves loading the control recipe into the batch executive's process, for example, by loading the recipe into memory resources used by the batch executive, which executes the control recipe using a processor and other computer resources, including various hardware and software resources.
[0039] As another example, one of the workstations 30, 32 or controller 40 executes a batch executive routine, which is generally a high-level control routine that directs the operation of one or more of the field devices 44, 46 (i.e., equipment) (as well as other equipment) to perform a series of different steps (commonly referred to as phases) required to produce a batch of a product, such as a particular type of salt. To implement the different phases, the batch executive routine uses a recipe that specifies the steps to be performed, the amount of material, the time associated with the step, and the sequence of the steps. The steps of one recipe may include, for example, filling a reaction vessel with the appropriate material or ingredients, heating the material in the reaction vessel to a particular temperature for a particular amount of time, emptying the reaction vessel, and then cleaning the reaction vessel to prepare it for the next batch run. Each of the steps defines a phase of the batch run, and the batch executive routine in the controller 40 will execute different control algorithms for each of these phases. Of course, the particular materials, amounts of material, heating temperatures, times, etc. may differ for different recipes, and as a result, these parameters may vary from batch run to batch run depending on the product being manufactured or produced and the recipe being used. Those skilled in the art will appreciate that although control routines and configurations for batch runs using particular equipment are described herein, the control routines may be used to control any desired devices to perform any other desired batch process runs, or to perform continuous process runs, if desired.
[0040] Personnel in a refinery or any process plant are typically not responsible for monitoring or controlling the entire process plant. Instead, personnel have different "spans-of-responsibility." With reference to the exemplary refining process above, for example, a particular operator may be responsible for a crude unit and one of several diesel hydrotreaters. Other operators may be responsible for other sets of the same equipment (e.g., another crude unit in the same process area, a crude unit in another process area, etc.), some operators may be responsible for different sets of equipment (e.g., a naphtha hydrotreater), and still other operators may be responsible for monitoring the process at a higher level (e.g., monitoring one or more characteristics of the entire refining process or the output products). Each operator may view, monitor, and / or operate different display modules according to the operator's scope of responsibility. Operators with similar scopes of responsibility, e.g., a crude unit, may each be responsible for one or more of the following: Two operators in charge can see identical looking display modules (each showing data for the crude unit for which each operator is responsible), while the other operator can see a different display module adapted (i.e., designed or configured) to enable monitoring and / or operation of parameters, devices, and processes corresponding to their respective areas of responsibility. It is noted that other personnel (e.g., non-operators) may be responsible for environmental operations within the process plant and may only be concerned with environmental parameters, alerts, and alarms associated with all equipment within the process plant or a subset of equipment that may or may not correspond to equipment within the area of responsibility of one of the operators.
[0041] Data and displays available in real time to operators and other personnel within the process plant, including real-time process variables and parameters, alarms, warnings, alerts, configuration information (e.g., from configuration files 74), control modules 70, display modules, batch information (for batch processes), etc., are collectively referred to throughout this specification as "process level data" and may include all data stored, processed, or communicated by the controller 40. Process level data is, of course, useful to operators, but also to maintenance personnel and other business personnel who may need or desire to monitor the real-time status of all or part of a process.
[0042] In the embodiments described herein, personnel may have access to the process level data (and in some embodiments, additional data as further described elsewhere herein) via the mobile device 14. This may be useful, for example, when an operator desires to monitor equipment within his or her area of responsibility during periods when he or she is not on duty (e.g., during a different shift) to keep an eye on a particular problem that occurred previously or to maintain some situational awareness for continuity between shift changes (i.e., to know what happened during a previous shift when he or she returns to that shift). Meanwhile, maintenance personnel may wish to be alerted to issues that need to be addressed upon his or her return to the process plant. Still further, personnel on the process plant premises (e.g., “on shift” operators) may collaborate with colleagues who are not currently on premises to receive help in diagnosing and / or resolving problems at the process plant, and having access to process level data while not physically present at the process plant may facilitate such collaboration. Of course, there are many other reasons why plant personnel may benefit from the availability of plant level data on the mobile device 14.
[0043] Generally, contemplated embodiments facilitate access to plant level data via a mobile device 14 by allowing a user of the mobile device 14 to configure view lists. View lists may include, by way of example and not limitation, watch lists, alarm lists, batch lists, silicate lists, system diagnostic lists, device alert lists, Key Performance Indicator (KPI) lists, decision support lists, and other derivations of the "list" concept. For example, FIG. 1M illustrates an exemplary home screen 143 that may be displayed on a mobile device 14 showing various view lists 145 accessible to a user. Each of the watch lists 145 includes a title / description 147, status information 149, and indicator icons 151. By way of example, the status information 149 includes, for an alarm list, the number of active, inactive, and suppressed alarms that are part of the alarm list, for a watch list, the number of items on the list and the number of items on the list that have an abnormal status, and for a batch list, the number of running batches on the list and the number of pending batches on the list. Meanwhile, indicator icons 151 indicate, in the case of an alarm list, whether there are active and / or not yet acknowledged alarms, in the case of a watch list, the presence of outliers among the watched parameters, and in the case of a batch list, the presence of prompts or faults (exclamation marks) among the batches on the list. The following may be indicated by different modifications to the icon, such as an exclamation point (!) and / or the presence of other symbols, or by color differences between the same icons, such as the use of a red exclamation point for a fault and a blue exclamation point for a prompt.
[0044] 1G illustrates an example watch list 144 for diesel hydrotreater 103 (labeled "DHT1"). The watch list for diesel hydrotreater "DHT1" includes a variety of items 146, which may be customized by a user of mobile device 14, including: listThe order of the items in 144 may also be customized by the user (described below). From the list 144, the user may select one of the watchlist items to obtain and view other information about that item, including historical values and other associated parameters, such as tags, module names, friendly names, information source paths, and other information that may depend on the item selected from the watchlist, as shown in view 148 in FIG. 1H. For example, for a control loop, the items may include the process variable itself, its set point, output, and scale, as well as any alarms and / or abnormal conditions associated with the process value. As described herein, much of the information displayed and the manner in which it is displayed is customizable by the user.
[0045] A user can quickly navigate from displayed data to related data just as a user can within a process plant, e.g., an operator workstation 30, 32. For example, by tapping on an alarm, the user can navigate to an alarm list 150 as shown in FIG. 1I and / or to an alarm view 152 (see FIG. 1J) from which the user can view details of the alarm, e.g., alarm name, description, date and time of the alarm, response time, functional classification, trends associated with the process value that triggered the alarm, recommended corrective actions, etc. This is similar to how an operator at a workstation 30, 32 can interact with an alarm by clicking on the alarm to see associated data.
[0046] The system may also provide the user with a list of major decisions that require attention. These lists may involve operations, planning, maintenance, asset management, etc. Decision priorities may reflect conditions that change rapidly and cannot be easily identified in advance (commonly referred to as unstructured and semi-structured decision problems). Decision support systems may be either fully computerized, human-powered, or a combination of both.
[0047] Additional information, in an embodiment, becomes available by rotating the mobile device 14 to landscape orientation, as shown in FIG. 1K, and the information can be navigated and viewed in more or less detail by zooming in and out using touch gestures.
[0048] On the other hand, different information may be displayed in a batch list than in a watch list and / or an alarm list. Figure 1N illustrates a batch list 153 that may be displayed to a user of a mobile device 14. The batch list 153 may include multiple batches selected by the user for inclusion in the batch list 153, as described herein. 153 The batch list 153 may display the batches a to e. 153 For each of a-e, a batch status 157 (e.g., whether the batch is pending, running, or completed, etc.), a total run time 159, a batch ID 161, a batch recipe 163, and an indication of the presence of prompts or faults 165 (prompts or faults are distinguished by a different color icon or a different icon altogether). The batch list 153 may also include three tabs 167a-c, respectively, that allow a user to switch between viewing batches selected for viewing, viewing devices associated with the batches selected for viewing, and viewing prompts for the batches selected for viewing.
[0049] Further features are described in detail with reference to infrastructure and system implementations.
[0050] System Architecture Referring now to FIG. 1L, a block diagram illustrates an overall architecture 152 of a system for mobile information distribution in a process control environment. The architecture may be generally divided into three levels: a plant / process level 154, a data services level 156, and a mobile services level 158, which collectively include four to six different networks. The plant / process level 154 includes a field network (not shown) that couples the controller 40 to the field devices 44, 46, as well as a control network (shown in FIG. 1A as the data highway 54) that couples the controller 40 to the workstations 30, 32, databases 58-66, and other components within the process control plant 10. The plant / process level 154 may optionally include an intermediate network 160 that may couple the control network 54 to other business level applications. The plant / process level 154 is coupled to the data services level 156 by a network 162. The data services level 156 is coupled to the mobile services level 158 by a network 164. The mobile service level 158 includes one or more other networks, such as the Internet and / or cellular / data networks. Each of the layers 154, 156, 158, and indeed each of the networks, may be separated from the others by hardware and / or software firewalls, in addition to other security measures. The layered architecture allows for separation between the various networks 54, 160, 162, 164, etc.
[0051] At the plant / process level 154, the communicator interface 170 provides an interface between the controllers 40 and the process plant 10 on one side, and the data service level 156 on the other side. Although in FIG. 1L a single communicator interface 170 is shown as communicating with a single controller 40 (and therefore with a single process plant 10), the communicator interface 170 may communicate with multiple controllers 40 controlling a single process plant, where various areas of the process plant 10 are controlled by separate controllers 40. It is also contemplated that in embodiments, multiple process control systems 10 may be coupled to the data service level 156 and to the mobile service level 158 by multiple communicator interfaces 170. In certain embodiments, a communicator interface 170 couples to each process control system 10, and a group of communicator interfaces 170 couples to the data service level 156. It is also envisioned that multiple control systems may be physically located in different locations (e.g., different chemical plants).
[0052] Communicator interface 170 may be part of a larger portal 171 that provides an overall interface to data and mobile service levels 156 and 158, respectively. Portal 171 may include functionality such as user information, device and system information, and facilitating configuration of software / hardware licenses.
[0053] Also at the plant / process level 154, a file interface 172 functions to transmit the configuration file 74 to the data services level 156. In some embodiments, the file interface 172 is part of a dedicated one of the workstations 30, 32 used to configure the process plant 10, including the graphical configuration system 34 and configuration editor 35, etc. In other embodiments, Alternatively, the file interface 172 may be part of the communicator interface 170. In any case, the file interface 172 couples to the data services level 156 and transmits configuration data for the process plant to the data services level 156.
[0054] At the data services level 156, the data server 174 includes several different data services 176 that collectively receive data from the communication interface 170 and the file interface 172 and communicate the received data to the mobile service level 158. The data received from the plant / process level 154 and communicated to the mobile service level 158 includes alarms, process parameters, diagnostics, historical data, and configuration data. The various data services 176 are also responsible for indexing the configuration files 74 received from the file interface 172. The indexing operation may include indexing for specific information such as module parameters and module hierarchy to support a detailed search capability that may allow a user to search for parameter names, device tags, alarms, or other data for the process plant 10.
[0055] The mobile server 178 is central to the mobile service level 158. The mobile server 178 supports connectivity to the mobile devices 14, supports configuration of various lists to which the mobile devices 14 are subscribed (e.g., alarm lists, watch lists, etc.), provides search capabilities, and manages mobile notifications. The mobile server 178 is also responsible for creating and maintaining subscriptions to various data from the data services 176. The mobile server 178 couples to the mobile devices 14 via any of a variety of wireless data technologies, some or all of which may utilize the Internet 180, which may include Wi-Fi (i.e., protocols in the IEEE 802.11 protocol suite) and / or mobile ("cellular") infrastructure, including but not limited to LTE services.
[0056] Mobile device 14 is Google (Registered Trademark) Developed by Android (Registered Trademark) Mobile devices running mobile operating systems, Apple (Registered Trademark) The mobile device may include a mobile device that runs the iOS mobile operating system developed by Android Inc., or any other operating system now known or developed in the future. (Registered Trademark) and / or in the case of a mobile device running the iOS mobile operating system, as will be readily understood by those familiar with the use of such services, the notice may be provided by Apple Inc. (Registered Trademark) Or Google (Registered Trademark) The notification may be delivered to the mobile device 14 via the notification service 182. The mobile server 178 facilitates configuration of the notification service at a system level and / or a user level.
[0057] With respect to configuration of mobile information delivery, the mobile server 178 provides several configuration services via a mobile device interface residing on the mobile device 14. The mobile server 178 also provides configuration options via a web page (i.e., using a web browser). As described below, various alarm and watch lists can be configured via the web interface using searches (i.e., searching the indexed data of the configuration file 74) and / or filters, and utilizing system hierarchy information, functional classifications, alarm priorities, alarm categories, etc. Further details of system configuration are provided in later sections of this specification.
[0058] The availability of configuration data at the mobile service level 158 serves to provide an especially rich mobile environment for end users, since the system has access not only to the data but also to the relationships between the data. As an example, instead of only having the status of an alarm (e.g., active) or the status of a parameter value (e.g., normal, high, low, etc.), the mobile server 178 has access to the contextual relationships between data and data types, through the configuration data from the configuration file 74. Thus, the system can know that a particular active alarm is the result of a "high" parameter status, and similarly, the parameter data value It may be determined that a parameter status is "high" because a parameter has exceeded a particular limit. As a result of this wealth of contextual information available to the mobile server 178, the user interface may be operable to present data in context, for example, alarms may be shown with real-time data and history, or process variables may be shown with current and past setpoint values, and optionally, related module relationships, which may enable a user to navigate from one data to other related data based on relationships between process control devices, function blocks, etc.
[0059] Process Data Structure and Communication As described more fully elsewhere herein, systems and methods are disclosed for providing process data associated with a process plant to a remote computing device. The process data may be received from a controller 40 via a communicator interface 170, data from a process database 58, or data from a process plant network 10. of In some embodiments, the data may include data communicated via the The process data may include or be augmented by the addition of additional data regarding the process plant, such as data stored in the data historian 62, the knowledge repository 64, or data received from the specialized server 186. The additional data may include historical data of past operations of the process plant, summary data associated with past or current operations of the plant, batch data associated with batches running or to be run in the process plant, scheduling data associated with the operation of the plant, maintenance data associated with the process plant, business data related to the economics or profitability of the process plant, or other information associated with the operation of the process plant. The process data (and the additional data, if applicable) may be generated by or derived from information generated by components in a process control system that controls the operation of some or all of the process plant, such as the DCS 22.
[0060] The process data (and any additional data) are provided to the remote computing devices through a data server 174 and a mobile server 178. The data server 174 may implement a data service 176 to obtain data via the process control network 162 and communicate with the mobile server 178 via a remote access network 164. These networks 162 and 164 may be separated by an existing firewall 166, thereby allowing for secure communication using an existing network architecture. To ensure network communication and protect the process control system from unauthorized access, in a particularly preferred embodiment, the data server 174 may only accept requested data lists from the mobile server 178. In such a preferred embodiment, the data server 174 may send a polling request for such lists to the mobile server 178. In response to the polling request, the mobile server 178 may send the list of requested data to the data server 174. In a further embodiment, the data server 174 may be configured to accept only requested data lists from the mobile server 178, and such lists may only be accepted in response to a polling request. For example, the data server 174 may be configured to accept requested data lists from a known mobile server 178 only for a predetermined time following transmission of each polling request to the mobile server 178. The mobile server 178 may similarly be configured to transmit only data request lists to the data server 174 only in response to receiving a polling request from the data server 174. .
[0061] Based on the received list of requested data, the data server 174 may obtain process data from the process control system over the process control network 162. This may include requesting or transmitting data streams from one or more components in the process control system, such as process data associated with a particular controller 40 or field device 46, 48. SubscribeIn some embodiments, the process data acquired by the data server 174 or communicated to the mobile server 178 may include only L1 data from the process control system. As used herein, "L1 data" refers to process data generated by or used by or within the workstations 30, 32 (e.g., display graphics and process entity visualization), controller 40, or field devices 44-46 of the process control system in controlling the operation of the process plant. In other embodiments, additional data may be included. If additional data is requested in the requested data list, the data server 174 may further acquire data from additional components through the process control network 10. Such additional data may include, by way of example and not limitation, one or more of the following: key performance indicators (KPIs), batch information, maintenance information, economic information, a knowledge base regarding information about equipment or conditions within the process plant, decision support information, or schedule information. The data server 174 thus acquires a plurality of data values from the process control system. The data values may represent specific process parameter values, such as sensor output values, process flow values, material input or output values, equipment operating condition values, derived or inferred values, control module parameter values, or any other value of the type of data generated by or maintained within the process control system, including graphic display elements that may be used on the operator workstations 30, 32. Once the data values are obtained from the process control system, the data server 174 may then identify or select any of the received data values that correspond to the requested data shown in a list to send to the mobile server 178. The data server 174 then communicates the identified data values to the mobile server 178 via the remote access network 164.In a preferred embodiment, the data server 174 receives the requested process data values and transmits them to the mobile server 178 in substantially real-time as they become available (i.e., as the process data values are generated within the process control system with only normal communication delays). 4 may receive multiple data streams from entities within the process control system and may further transmit one or more of the data streams to the mobile server 178 to establish a real-time data subscription.
[0062] Once the mobile server 178 receives the requested data values from the data server 174, the mobile server 178 further identifies one or more remote computing devices to receive the set of one or more data values. The mobile server 178 then communicates the set of data values to the respective remote computing devices over a mobile network, which may include the remote access network 164, the Internet 180, or other networks that facilitate communication between the mobile server 178 and the remote computing devices. In some embodiments, at least a portion of the mobile network may be an external network (e.g., the Internet 180) that is not associated with the process control system or process plant. In a particularly preferred embodiment, the mobile server 178 communicates the set of data values to the remote computing devices in substantially real-time as the data values are received from the data server 174. Thus, the remote computing devices may receive a data stream of process data values from the process control system. The remote computing devices may then communicate the set of data values to the respective remote computing devices over a mobile network, which may include the remote access network 164, the Internet 180, or other networks that facilitate communication between the mobile server 178 and the remote computing devices. In some embodiments, at least a portion of the mobile network may be an external network (e.g., the Internet 180) that is not associated with the process control system or process plant. In a particularly preferred embodiment, the mobile server 178 communicates the set of data values to the remote computing devices in substantially real-time as the data values are received from the data server 174. Thus, the remote computing devices may receive a data stream of process data values from the process control system. The remote computing device may be the mobile device 14 described above, e.g., a smartphone, a tablet computer, a wearable device such as a smart watch, or other advanced mobile computing device. The remote computing device may also include a notebook, netbook, desktop, or similar computer that is located remotely from the process plant and communicates with the mobile server 178 via a web client 198 (e.g., a web browser or an application running therein). In any case, the remote computing device communicates with the mobile server 178 over a mobile network to obtain process data values from the process control system. In a particularly preferred embodiment, the remote access device only receives process data from the mobile server 178 and does not communicate with the process control network in any other manner. Thus, in such an embodiment, the remote access device is not able to access the process control network 10 or the process control system other than in the limited manner through the mobile server 178 and the data server 174 described herein.
[0063] Such a configuration enhances the security of the process control system by limiting the access of remote computing devices to receiving requested data via the mobile server 178, which itself only receives data from the data server 174. These additional safeguards are important in a process control system because remote access (and especially remote control) of the controller 40 or other components of the process control system by an unauthorized user presents serious, potentially deadly dangers. If an unauthorized user gains control of equipment in the process plant, significant injury and damage to the process plant can occur. Even without control, an unauthorized user can exploit non-public information (which may include trade secrets) regarding process plant operations to cause commercial damage to the plant operator. In conventional process plants, these issues are partially addressed by physical security measures, such as limiting access to the workstations 30, 32 and other sensitive equipment. However, remote access requires new means of securing the process plant beyond its physical boundaries. While security can be achieved by limiting or eliminating access to process data from remote locations, such limitations may prevent information about the plant from reaching process plant personnel who need access to ensure proper operation of the plant.
[0064] To address both issues simultaneously, the systems and methods described herein allow remote computing devices to access process data via a mobile server 178 that communicates with a data server 174. To obtain data, the remote computing device requests a data value associated with a data list from the mobile server 178. The mobile server 178 then sends one or more lists of requested data to the data server 174 in response to the polling request. In some embodiments, the mobile server 178 may generate a consolidated list of requested data from the data lists received from multiple remote access devices. Once a data value is received from the data server 174, the mobile server 178 then determines, based on the data lists, which of the remote computing devices have the requested data that corresponds to the received data value. In any case, the mobile server 178 identifies the data value received from the data server 174 and communicates the appropriate data value to one or more remote computing devices over the mobile network. To identify the appropriate data value to communicate to each remote computing device, the mobile server 178 uses a data list associated with each remote computing device.
[0065] The data list may be received from a remote computing device or may be identified by a data list indicator received from the remote computing device. For example, the remote computing device may request data values associated with a given data list stored in the memory of the mobile server 178 by sending an indicator of the given data list to the mobile server 178. Such a request may be generated automatically by the remote computing device under certain conditions, or the request may be generated upon an action of a user of the remote computing device. The indicated data list may be a data list previously established by a user of the remote computing device, or may be a shared data list available to multiple remote access device users. The data list may be a watch list indicative of process parameters for monitoring the process control system, a view list associated with a data view for display on the remote computing device (which in certain, but not all, embodiments corresponds to an operator view available on a workstation), an alarm list indicative of alarms to monitor, or other types of data received at the remote computing device. Each list may include multiple entries identifying data sources (or additional data sources associated with additional data) within the process control system. An entry may be associated with an entity within the process control system that generates or otherwise provides process data or additional data associated with the process plant, such as a sensor, valve, control module, function block, controller, equipment device, process equipment, or area. An entry may also be associated with a process parameter associated with operation of the process plant by the process control system or a condition within the process plant. The entries may be hierarchically related, such that some parameters or entities may be a subset of data associated with a higher level parameter or entity.For example, an area of a process plant may include several process devices, each of which may further include one or more equipment devices, each of which may further be associated with one or more control modules. A control module may further be associated with multiple process parameters. Thus, a data list may directly or indirectly reference data received, for example, by requesting data for a higher level entity.
[0066] In a particularly preferred embodiment, the data list may be based on the same configuration data available to the on-site operators. Specifically, the data list may be generated based on a configuration file 74 from the process control system. Such a configuration file 74 may be received from the controller 40, the configuration database 60, or the file interface 172. The configuration file 74 may contain information regarding the configuration of the process control system that is used by the controller 40 of the workstations 30, 32 in the operation of the process control system. As a specific example, the configuration file may be an FHX configuration file used for the DeltaV™ control system sold by Emerson Process Management. The configuration data may include multiple entries associated with entities or parameters within the process plant. Each entry may include multiple items of information regarding the entry or parameter, and those items of information may be described by tags within the configuration data. Such tags may identify the entity or parameter, characteristics of the data values associated with them, and other similar information. The tags may further indicate association with other entities within the process control system, such as higher level entities. In some embodiments, the entries may be associated with area tags (e.g., PLANT_AREA, PLANT_PROPERTY ... NAME="AREA_A"), process equipment tag (e.g. PROCESS_CELL NAME="PROCESSCELL1"), equipment tag (e.g. BATCH_EQUIPMENT_UNIT NAME="UNIT1"), control module tag (e.g. , MODULE TAG="MODULE1"), or a separate tag such as a module block tag (e.g., MODULE_BLOCK NAME="MODULE1"). Thus, a module may have tags that associate the module with process plant areas and equipment devices, as well as the module. In further embodiments, the tags may include paths that associate entities or parameters with higher level entities. From these tags, the complete system architecture of the process control system can be determined. Thus, a remote computing device may request any process data within the process control system based on the configuration data.
[0067] In some embodiments, the data server 174 may obtain configuration data from the process control system via the process control network 156, which may include one or more configuration files 74. The data server 174 may then send the configuration data to the mobile server 178 via the remote access network 164. The configuration data may be sent periodically without a request from the mobile server 178. The mobile server 178 may then store the configuration data locally in the memory of the mobile server 178 for communication to or retrieval by a remote computing device. The configuration data may further be sent from the mobile server 178 to a remote computing device, or the remote computing device may retrieve the configuration data based on query parameters sent from the remote computing device to the mobile server 178. The remote computing device or the mobile server 178 may then generate a data list based on the configuration data. In embodiments where complete configuration data associated with the process control system (or portion thereof) is sent to the mobile server 178, a full authorized user of the remote computing device can access any information within the process control system (or portion thereof) completely as if the user were operating at a workstation 30, 32 within the process plant. However, as discussed above, in a preferred embodiment, the user may only be able to retrieve data from the process control system, but not control its operation. Nonetheless, full on-the-fly access from the remote computing device to retrieve process data and configure user displays enhances the operation of the process plant by allowing remote users to access the same data and displays that they can access on the process plant premises. Furthermore, as in the case of the workstations 30, 32, the relationships of the available data (which may be determined from the configuration file 74) drive the content of the information displayed on the mobile device.That is, both the particular parameters, values, status, and alarms indicated, and the presentation of those parameters, values, status, and alarms, are determined, optionally in part, by the logic and configuration of the process control system, and optionally in part, by the status of the system (e.g., based on alarm conditions, equipment states, etc.). Authorization via user credential verification (e.g., via certificates, logins, etc.) or device whitelisting may, of course, be used to limit user access to a portion of the total data generated by or related to the process data. Even so, the data available to each user via the remote computing device may be the same data that is available to the user from the workstations 30, 32 within the process plant.
[0068] Alarms, prompts, and other notifications of conditions within the process plant are of particular interest in this regard. Any alarm in the process control system may be selected simply by inclusion in a data list. Additionally, any process parameter in the process control system may similarly be monitored by inclusion in a data list. In some embodiments, a user of a remote computing device may select criteria to be monitored by inclusion in a data list or otherwise communicate such criteria to the mobile server 178. and setting notification or alarm criteria associated with any process data of the process control system. The mobile server 178 can then monitor the indicated process data and send any requested notifications, prompts, or alarms to the remote computing device when the corresponding criteria are met. Because the data server 174 sends requested process data values to the mobile server 178 in substantially real-time as they become available, the mobile server 178 can send requested notifications or alarms to the remote computing device in substantially real-time. This is particularly important because conditions within the process plant may require immediate attention from the process plant operator. For example, a critical alarm condition may require correction within minutes to avoid system failure that could result in injury or damage as well as significant plant downtime. The systems and methods described herein utilize existing network infrastructure when available and facilitate the presentation of alarms and notifications in real-time by providing access to process parameter level data rather than periodic updates of summary data. In further embodiments, the mobile server 178 may utilize a notification service to push notifications or alarms to the remote computing device. Such notification services may include third party services such as those associated with major operating system clearinghouses or mobile phone network operators. Such notification services may cause a remote computing device to receive and present notifications or alarms to a user, regardless of whether the user is currently interacting with an associated application or program on the remote computing device.
[0069] While the mobile server 178 may send requested notifications or alarms to the remote computing device in substantially real-time, the mobile server 178 may also, in embodiments, implement delayed notifications. For example, in embodiments, particularly (but not limited to) with respect to batch processes, the mobile server 178 may be programmed to send a notification of a particular prompt or alarm only if the prompt or alarm has not been acknowledged for a predetermined period of time. In a batch process, for example, a prompt may indicate to an operator that some action should be taken, that a phase or step has been completed, etc., as is commonly known. It may not be urgent for all operators or persons monitoring the batch via a remote computing device to be notified of a prompt immediately, since the operator currently responsible for operating the batch may promptly respond to the prompt. However, operators or other personnel not directly responsible for the batch at a given time may nevertheless wish to be notified of a prompt when the prompt has not been acknowledged for a predetermined period of time (e.g., five minutes) (perhaps indicating that the responsible operator is absent, has not been presented with the prompt, or has not responded to the prompt for some reason). Thus, the mobile server 178 may receive information about a prompt, and if the prompt remains pending unacknowledged for a predetermined (e.g., configured) time, the mobile server 178 may notify the user(s) of the remote computing device. In an embodiment, individual users may select which alarms and prompts they want to receive urgent notification for, which alarms and prompts they want to receive delayed notification for, and / or the time for the delay of the delayed notification.Additionally, the mobile server 178 may, by default, delay certain types or classes of notifications (e.g., prompts from a batch process, prompts from a particular recipe, prompts associated with a particular phase of one or more recipes, prompts associated with a particular piece of equipment, etc.) while sending immediate notification of other default or user-selected prompts, alerts, or alarms. Alternatively, the mobile server 178 may, by default, delay the sending of certain types or classes of notifications while delaying the sending of other default or user-selected prompts, alerts, or alarms. may send immediate notifications about classes.
[0070] These features of the systems and methods described herein are in contrast to prior art third party systems in which any data that may be viewed on a mobile device must be stored in an intermediate storage location accessed by third party software, thereby limiting the amount of information available to the user of the mobile device (e.g., the user may only access the stored data or the alarms recreated in the intermediate application) and the sample rate may be too slow, resulting in data lags between the data shown on the DCS (e.g., at the workstations 30, 32) and the data shown on the mobile device. Furthermore, in contrast to prior art third party systems, the systems and methods described herein provide a level of context for the data that is unavailable and unattainable in prior art systems because the user can navigate the data in the system by what is presented (e.g., select an alarm to see real-time and / or historical process variables, status, etc. that caused the alarm to be generated, or select an alarm to view related information available in the DCS (such as limits), module relationships (e.g., hierarchy), etc.).
[0071] To provide additional information regarding certain aspects of the above systems and methods, exemplary embodiments are described below. Although certain embodiments are described in detail to illustrate certain aspects, other configurations or processes are contemplated to be within the scope of this application. Additional, fewer, or alternative components or actions may be included in other embodiments.
[0072] Data List Configuration As discussed above, the remote computing device receives data from the process control system based on a data list that requests process data or additional data from the data server 174. In some embodiments, this may include generating or selecting a data list. In further embodiments, this may include retrieving and monitoring the process data as a data list. In either case, the entries in the data list may be selected based on configuration data received from the process control system. Unlike other techniques that provide a limited, predefined type of process data to the remote computing device, the method described below provides full access to any L1 data in the process control system. Additionally, because configuration data already used by the process control system is also used to generate the data list, system setup and configuration is simplified. As such, the systems and methods described herein require little initial configuration and ongoing maintenance while facilitating greater access to process data.
[0073] 2A illustrates an example data list configuration method 200 that uses configuration data from a process control system to obtain a data list that indicates process data to be communicated to a remote computing device. The data list configuration method 200 may be implemented by either the data server 174 or the mobile server 178, or both the data server 174 and the mobile server 178 may implement portions of the method 200. The method 200 begins at block 201, where the data server 174 orThe mobile server 178 receives configuration data from the process control system. The configuration data is indicative of multiple entities or parameters within the process control system or process plant (or a portion thereof). In some embodiments, the configuration data may be received from the configuration database or file interface 172 as one or more configuration files 74. The configuration files may include descriptions of the entities and parameters within the process control system, which may include information used by the process control system to control the operation of the process plant. The configuration data may include indications of various levels of entities, parameters, or other data within the process control system, including L1 data. In a particularly preferred embodiment, the configuration data may include sufficient information to build a complete hierarchy of all data levels for all L1 data in the process control system or a portion thereof. For example, the configuration file 74 may include entries for all parameters in the process control system, such as process parameters associated with function blocks within a module. Such entries in the configuration file 74 may further include associating these parameters with higher level entities in the process control system, such as control modules, equipment, or areas. Additionally or alternatively, configuration file 74 may further include additional entries for higher level entities, which may include indices of the entity and associated entities or parameters (e.g., an equipment entity entry may include indices of multiple control module entities associated with the equipment entity, which in turn may include indices of other control modules, function blocks, or parameters associated with the control module entity).
[0074] In block 202, the data server 174 or the mobile server 178 identifies multiple levels within the process control system (or a portion thereof) based on the configuration data. These levels may be associated with any or all of an area, a process device, equipment, a control module, a module block, or a parameter. An entity or parameter may be associated within a higher level entity, and a higher level entity may be associated with a lower level entity or parameter. Thus, the configuration of the process control system (or a portion thereof) may be described as a hierarchy of entities and parameters. Identifying the levels may include identifying tags associated with the levels for the entities and parameters in the configuration data. For example, each entry in the configuration data corresponding to an entity or parameter may include one or more tags indicating an association with a higher level entity. Such tags may be separated by level (e.g., area tag, equipment tag, control module tag) or may be combined into one tag that specifies a path within the process control system hierarchy (e.g., specifying the associated higher level entity within one tag value). In block 203, the data server 174 or mobile server 178 may further identify a number of control modules associated with the level in the configuration data. The control modules may be identified in a manner similar to that used to identify other levels, which may include identifying a control module tag in the process control data. The identification of the control module may further include identifying function blocks or parameters associated with the control module. In some embodiments, the identification of the level and the control module may be combined.
[0075] In block 204, the data server 174 or mobile server 178 generates a hierarchical list of the process control system (or portion thereof) based on the identified levels and control modules. Each entity or parameter may be placed in an ordered hierarchy that represents the configuration of the process control system (or portion thereof). The hierarchical list is generated using values of entities and parameters associated with the multiple levels and control modules identified in the configuration data. The configuration of the process control system (or portion thereof) may be described as a collection of nested sets, where each set contains elements that correspond to lower level entities or parameters, and some of these elements may be subsets that contain even lower level entities or parameters. In some embodiments, these sets or subsets may overlap, i.e., an element may be contained by multiple sets at the same level. In other embodiments, these sets or subsets may not overlap, which may result in a configuration of the process control system (or portion thereof). That is, each element belongs to at most one set at each level. Each set may be identified as a sublist or group of entries in the hierarchical list that have common values in some domain. Thus, a hierarchical list may contain entries for all L1 data in the associated process control system (or part thereof), which may be organized in a manner that provides roll-up categories, each representing a separate set or subset that is associated with a higher level entity. Thus, entities may be treated as roll-up categories for selection by a user or for generating view lists, watch lists, alarm lists, etc.
[0076] In some embodiments, one or more hierarchical lists are generated according to display objects in use in the process plant network 10. That is, the process plant network 10, and in particular the controller(s) 40 and / or the workstation(s) 30 or 32 and / or the configuration database 60, may be stored in corresponding memory devices, and a number of display objects govern the manner in which information is presented to an operator of the process plant network 10. In particular, each display object includes a depiction of and / or information corresponding to a number of process plant entities, such as the field devices 44, 46. For example, an overview display may include all of the data and / or parameters determined to be important in a section of the process plant. The display objects are part of the L1 data and / or part of the configuration file 74. Thus, in some embodiments, the method 200 may include creating one or more watch lists from the configuration file 74, and in particular creating one or more watch lists according to the display object data. A default watch list may be created to include all of the parameters / data associated with a particular display object. A set of default watchlists may be created, each containing parameters / data associated with a corresponding display object. Of course, the default watchlists may be editable as described herein. In a further embodiment, the watchlists are automatically updated when the configuration of the associated display object is updated in the configuration file 74, and in yet a further embodiment, the data / parameters that can be added to each watchlist are updated according to the updated configuration file 74.
[0077] Further, the user may select an area, unit, or cell of the process plant 10, and a watch list may be created to include some or all of the modules in the modular unit, area, or cell, or may include the module for which a limit alarm is configured.
[0078] Alarm lists may also be automatically created to match the alarm configuration of each individual operator station so that operators can monitor alarms that they have configured as important to their operational responsibilities even when they are not physically in the plant and / or at their workstations 30, 32. Alarm filter criteria, including alarm priority, functionality, and notification settings, specified in the configuration file 74 may also be used to automatically create alarm lists available for selection for monitoring in the mobile application. As a result, a mobile device user may select a given alarm list to monitor, edit a given list, create new lists of alarms to monitor, etc.
[0079] Of course, with respect to batch data that may be viewed or monitored in any of the watchlists, the alarm list and watchlist may each be automatically configured according to a particular batch, a particular recipe, a particular batch equipment set, and the like.
[0080] In block 205, the data server 174 or the mobile server 178 may communicate information regarding the hierarchical list to another computing device. Such information may be communicated periodically or when changes in the hierarchical list occur (e.g., addition of new entities or parameters, removal of existing entries, etc.). Such information may also be communicated in the form of a summary or as an indication of only the changed information. The other computing device may be a remote computing device or may be the mobile server 178. Once the hierarchical list is generated by the data server 174, the data server 174 may communicate information regarding the hierarchical list to the mobile server 178. In some embodiments, the data server 174 may communicate only changed entries in the hierarchical list when changes occur. In further embodiments, the data server 175 may communicate the complete hierarchical list periodically to check for accuracy, or the complete list may be communicated infrequently (e.g., once a day, once a week, once a month). Once the hierarchical list is generated by the mobile server 178, the mobile server 178 may communicate information regarding the hierarchical list to one or more remote computing devices (e.g., the mobile device 14). In some embodiments, the information may include a restricted list of entries in the hierarchical list. For example, the restricted list may include entries to which the user or remote computing device is authorized to access. As another example, the restricted list may include only high level entries (e.g., entries associated with an area or process equipment). As yet another example, the restricted list may include only entries associated with search parameters of a request or query from the remote computing device, for example, in response to a user query for a particular type of data (e.g., equipment operating status, temperature, malfunctioning valves, limit alarms, etc.). As yet another example, the restricted list may include only entries associated with an entity, for example, an entity preselected by a user of the remote computing device.
[0081] In block 206, the data server 174 or mobile server 178 receives a selection of one or more entries from the other computing device. The selection may indicate a set of entries in a hierarchical list requested by the other computing device. For example, the remote computing device may send an indication to the mobile server 178 to select a particular parameter or entity for which to receive process data. Continuing with the example, the mobile server 178 may further send an indication of the selected parameter or entity to the data server 174. In some embodiments, the selection may be received as an indication of a predefined set of entries (e.g., a predefined browsing list or watch list) stored in memory of the data server 174 or mobile server 178. For example, an identifier associated with a predefined browsing list may be received by the mobile server 178, and that data list may include the requested multiple entries.
[0082] block 207 The data server 174 or mobile server 178 may then communicate the data values corresponding to the selected entry to another computing device. This may include communicating the process data values from the data server 174 to the mobile server 178, or communicating the process data values from the mobile server 178 to a remote computing device. In some embodiments, this may include transmitting one or more streams of process data values to the data server 174 or mobile server 178. The mobile server 178 may transmit the process data values substantially in real time as they are received by the mobile server 178. To this end, the remote computing device may subscribe to one or more data streams associated with entities or parameters within the process control system. In some embodiments, the mobile server 178 may further communicate additional data or historical process data (e.g., process data associated with a selected entry for past hours, days, etc.). Such data may provide context to a user of the remote computing device and may be presented as discussed elsewhere herein. Communication of process data values is described in further detail elsewhere herein.
[0083] 2B illustrates an example configuration data retrieval method 210 for retrieving configuration data from a process control system to generate a data list indicative of process data to be communicated to a remote computing device. The data list configuration method 210 may be implemented by either the data server 174 or the mobile server 178, or both the data server 174 and the mobile server 178 may implement portions of the method 210. However, in a preferred embodiment, the method 210 is implemented by the mobile server 178, which receives the configuration data from the data server 174 and receives queries from the remote computing device. In such an embodiment, the mobile server further receives process data values from the data server 174 and transmits the process data values to the remote computing device based on the data list.
[0084] As described above with respect to block 201, the method 210 begins at block 211 where the data server 174 or mobile server 178 receives configuration data from a process control system. In block 212, the data server 174 or mobile server 178 receives a query from another computing device requesting process data, the query indicating one or more search parameters associated with the process data. The query may be generated by the other computing device in response to a user selection of the search parameters, for example, by a user directly entering search terms or by selecting common query parameters (e.g., current alarms, running batches, past days of process data for plant operations, etc.). The search parameters may specify particular entities or process parameters within the process control system, each of which may be identified, for example, by a user-friendly tag name or unique identifier number. Alternatively, the search parameters may indicate a type or class of entity, for example, a level, a process function, a type of equipment unit, a type of alarm, a type of control module, a type of sensor signal, etc. Besides identifying an entity or process parameter, the query parameters may specify other information. For example, the query parameters may specify particular values (or ranges of values) for process data values, a time frame for historical or summarized data (e.g., averages), other information to identify process data that was generated within the process control system, or additional non-process data that is associated with the process plant but not generated within the process control system.
[0085] In block 213, the data server 174 or mobile server 178 identifies one or more entities or process parameters associated with the process control system based on the search parameters of the received query. As discussed above, the configuration data may include tags that contain information about the entities or parameters in the process control system. The tag values may be used to identify process data or parameters that respond to the query, i.e., match the query parameters. For example, some of the search parameters may indicate values associated with tags of entities or parameters in the configuration data, such as values indicating a particular area, equipment unit, alarm condition, or type of data (e.g., "temperature", "pressure", etc.).
[0086] At block 214, the data server 174 or the mobile server 178 generates a list of entries based on the search parameters. The list of entries may include multiple entries that represent the identified entities or parameters. In some embodiments, the list includes entries that are associated with the identified entities or parameters. The list may further include an entry indicating a prescribed list (e.g., a shared browse list) that includes the identified entities or parameters. In further embodiments, the list may include related entries that are associated with the identified entities or parameters but do not individually match the search parameters. For example, each of the higher level entities associated with the matching entities or parameters may be included in the list. Because the related entries do not directly match the search parameters, the related entries may be marked in the list or included in a separate list to identify them as not directly responsive to the query. These related entries may then be presented to the user separately from the identified entities or parameters, or the related entries may be indicated by a pictorial or stylistic indicator in a graphical user interface. Creating the list may include determining a subset of the identified entities or parameters that the user or remote computing device is authorized to obtain. Such authorization may be determined based on the user ID of the user or the device ID of the remote computing device.
[0087] In block 215, the data server 174 or the mobile server 178 communicates the generated list to the requesting computing device (e.g., a remote computing device). In some embodiments, this may involve sending only a portion of the information about the entries to the requesting computing device, followed by additional information in response to further requests by the user. Upon receiving the list from the mobile server 178, the remote computing device may present at least a portion of the list information to the user. This may involve presenting a list of the entries, which may be organized or ordered to provide the most relevant or most frequently selected entries in a more prominent position on the display. When the user selects one or more sets of the entries (e.g., to add entries to a viewing list, to create a new watchlist, etc.), the remote computing device may communicate the selection of the set of entries back to the mobile server 178. In some embodiments, the mobile server 178 may communicate an indication of the selected set of entries to the data server in response to a polling request from the data server 174.
[0088] In block 216, the data server 174 or mobile server 178 receives a selection of a set of one or more entries from the list. As with other data list selections discussed herein, the selection may be received as a set of indicators of the entries or as one or more indicators of a predefined list. In response to receiving the selection, the data server 174 or mobile server 178 retrieves data values from the process control system and communicates the data values associated with the selected entries to the remote computing device in block 217. As discussed elsewhere herein, the mobile server 178 may request process data or further data from the process control system by sending an indication of the requested process data to the data server 174 in response to a polling request from the data server 174. The data server 174 retrieves the data values from the process control system and communicates the requested data values to the mobile server 178. The mobile server 178 then communicates the requested data values associated with the selected entries to the mobile computing device. Thus, a remote computing device may subscribe to one or more data streams associated with entities or parameters within the process control system using queries to identify and request data, as described above. In some embodiments, the mobile server 178 may further communicate additional data or historical process data (e.g., process data associated with a selected entry for past hours, days, etc.). Such data may provide context to a user of the remote computing device and may be presented as discussed elsewhere herein.
[0089] Process Data Subscription The following systems and methods may be used to securely subscribe a remote computing device to a process data stream and obtain additional data without compromising the security of the process control system. As discussed above, the remote computing device obtains data values from the mobile server 178, which in turn may obtain data values from the data server 174. The data server 174 obtains data values from the process control system, for example, from the controller 40 via the communicator interface 170, from the process database 58, the data historian 62, the knowledge repository 64, or from the specialized server 186. In a preferred embodiment, the data server 174 sends a polling request to the mobile server 178, which responds only to the polling request by sending a list of requested data to the data server 174. Such a list of requested data may include only modified data requests (i.e., indicators of new data not previously requested or indicators of data previously requested but no longer required), such as adding or removing data subscriptions. The subscription methods described herein provide access to L1 data from the process control system, since process data subscriptions may be configured as needed, as discussed above. Furthermore, process data may be communicated to remote computing devices in substantially real-time without compromising security protections in place in the process control system to protect the process plant from malicious or other unauthorized access. In addition, the mobile server 178 may reduce processing and storage requirements by retrieving only the data actually requested, while still providing access to the full L1 data. By establishing data subscriptions as needed while the process plant is in operation, initial setup and subsequent system reconfiguration is reduced. Thus, the systems and methods described herein facilitate broader and more timely access to process data, while requiring less initial configuration and ongoing maintenance.
[0090] 2C illustrates an example data subscription method 220 for selecting and acquiring process data at a remote computing device. The data subscription method 220 may be implemented repeatedly to establish, edit, adjust, or terminate data subscriptions for one or more remote computing devices, and the data subscription method 220 may be implemented in conjunction with one or more of the other methods described herein.
[0091] At block 221, the data server 174 receives a configuration file 74 or other configuration data from an entity within the process control system. The configuration file 74 may include configuration data for the process control system and may be received from the file interface 172 or the configuration database 60, as described elsewhere herein. At block 222, the data server 174 may communicate data associated with the configuration file 74 to the mobile server 178, which may involve sending the configuration file 74, a portion of the configuration data contained therein, or configuration data generated therefrom by the data server 174. At block 223, the mobile server 178 may provide access to the configuration data to one or more remote computing devices. Providing access to the remote computing devices may include sending a list of available data or establishing an interface for searching the configuration data. As discussed elsewhere herein, the mobile server 178 may provide access to less than all of the configuration data in some cases, such as by providing access to a portion of the configuration data for which a user is authenticated.
[0092] At block 224, the mobile server 178 receives one or more browse list indicators from the remote computing device over the mobile network to indicate the process data (and any additional data) requested by the remote computing device from the process control system. In some embodiments, a default browse list indicator may be automatically sent from the remote computing device to the mobile server 178 upon a user login event on the remote computing device. Such a default browse list indicator may be interpreted by the mobile server 178 as a request for the same data as last requested by the user. Upon receiving one or more browse list indicators, the mobile server 178 may determine or generate a list of requested data. Such a list of requested data may be a consolidated list of all data requested by multiple remote computing devices, which may be further compressed by removing redundant entries. The mobile server 178 may update such consolidated list of requested data each time a new indicator is received from any remote computing device, including an indicator of a remote computing device terminating a previous request. To facilitate subsequent transmission of the data values to the appropriate remote computing device, the mobile server 178 may further maintain one or more lists associating requested data with particular remote computing devices. In some embodiments, this association data may be included in the consolidated list of requested data. In further embodiments, the mobile server 178 may automatically generate a list of requested changes, which may include only entries indicating changes to the requested process data (or additional data) received from the remote computing device since a previous data request was sent to the data server 174. By transmitting such a list of requested changes rather than a full list of requested data, the mobile server 178 may communicate efficiently with the data server 174.
[0093] At block 225, the data server 174 sends a polling request to the mobile server 178 over the remote access network 164 requesting information regarding data requested by the remote computing device. The polling request may be sent periodically at intervals slower than updates of some process data values to reduce the total data sent over the remote access network 164. In response to receiving the polling request, the mobile server 178 then sends a list of requested data to the data server 174 over the remote access network 164 at block 226. As mentioned above, in some embodiments, the list of requested data may be a consolidated list or even a list of requested changes. In a preferred embodiment, the mobile server 178 may send the list only in response to receiving a polling request from the data server 178. In further embodiments, the data server 174 may be configured to accept the list of requested data only from the mobile server 178 and only for a predetermined interval after each polling request. Non-compliant requests may be ignored by the data server 174. In an alternative embodiment, the data server 174 may accept a list of requested data (particularly a list of changed requests) from the mobile server 178 at any time. Such an embodiment may be advantageous because it reduces the delay before data values are transmitted from the data server 174 to the mobile server 178.
[0094] In block 227, the data server 174 receives a stream of process data from the process control system via the process control network 162. The process data may be received from one or more data sources within the process control system, including one or more of the controller 40, the process database 58 via the communicator interface 170, or may be communicated via the process plant network 10. In some embodiments, the data server 174 performs a process query for a particular data from a data source. The mobile server 178 may subscribe to one or more data sources by communicating a request to the mobile server 178. Such requested subscription may further be generated based on the list of data requested from the mobile server 178. In further embodiments, the data server 174 may further obtain additional data requested by the mobile server 178 from the data historian 62, the knowledge repository 64, or the specialized server 186.
[0095] At block 228, the data server 174 identifies data values in the received data to be further transmitted to the mobile server 178. The data server 174 may identify process data values in the data stream that correspond to the requested data in the list of data requested from the mobile server 178. At block 229, the data server 174 then transmits the identified data values to the mobile server 178 over the remote access network 164. To reduce network traffic on the remote access network 164, the data server 174 may transmit only updated or changed data values associated with the requested process data. For example, data values that have not changed may not be transmitted or may be transmitted only as indicators of values that have not changed. In alternative embodiments, the data server 174 may transmit the data values in real time as they are received from the process control system or the data server 174 may transmit the data values in groups at intervals. If transmitted in real time, the data values may be transmitted as a data stream from the data server 174 to the mobile server 178. When transmitted at intervals, the data server 174 may group data values received from the process control system at various times over intervals that may be fixed or irregular. For example, the data server 174 may transmit data values to the mobile server 178 at fixed intervals (e.g., every second) unless a required amount of data (e.g., 5 MB) is received from the process control system prior to the periodic transmission.
[0096] At block 230, the mobile server 178 similarly identifies and transmits a subset of the received data values to the remote computing device over the mobile network. The mobile server 178 may select the subset based on entries in a viewing list presented by the remote computing device. In alternative embodiments, the mobile server 178 may transmit the subset of data values in real-time as they are received from the data server 174, or the mobile server 178 may transmit the data values in groups at intervals. For example, the data values may be grouped and transmitted periodically (e.g., every second) to reduce the number of transmissions over the cellular network. In further embodiments, the mobile server 178 may communicate the data values in real-time, but a third party network (e.g., a cellular network) may communicate the data values in groups on a periodic transmission schedule. However, once received by the mobile computing device, at least a portion of the subset of data values are presented to the user at block 231. Such presentation may include presentation as notifications, charts, icons, or other summary presentations based on portions of the data values.
[0097] 2D illustrates an exemplary data subscription communication sequence showing communication between a process control system (specifically, the file interface 172 and the communicator interface 170), a data server 174, a mobile server 178, and a remote computing device (specifically, the mobile device 14). The connections are shown linearly to better illustrate the salient features of the sequence, but it should be understood that intervening components may be involved. For example, the controller 40 may communicate configuration data to the data server 174 via the file interface 172 and may further communicate process data to the data server 174 via the communicator interface 170. Although variously described throughout this specification as being communicated from the controller 40 to the data server 174, it should be understood that in at least some embodiments, the configuration data 74 is stored in the configuration database 60 and communicated from the configuration database 60 to the data server 174 via the file interface 172. That is, the file interface 172 may retrieve the configuration data 74 from the configuration database 60 (or from the controller 40) and communicate the configuration data 74 to the data server 174. In any event, the communicator interface 170, the file interface 172, and the data server 174 communicate via the process control network 162. The data server 174 and the mobile server 178 communicate via the remote access network 164. The mobile server 178 and the mobile device 14 communicate via a mobile network, which may include a local network at the process plant (e.g., part of the remote access network 164), the notification service 196, or the Internet 180. Although the exemplary sequence shows only one of each of the file interface 172, data server 174, mobile server 178, and mobile device 14 for clarity, further embodiments may include more than one of any of these components, or all of them.
[0098] The exemplary communication sequence begins with the communication of the configuration file 74 from the file interface 172 to the data server 174 (line 232). Upon receiving the configuration file 74, the data server 174 determines and sends configuration data, which may be part of the information contained in the configuration file 74, to the mobile server 178 (line 233). The mobile server 178 then provides the configuration data, or a portion thereof, to the mobile device 14 (line 234). When a data request is received from the user or otherwise determined at the mobile device 14, the mobile device 14 sends a browse list indicator to the mobile server 178 (line 235). In the illustrated embodiment, the mobile server 178 receives the browse list indicator and waits for a polling request from the data server 174. After a time interval, the data server 174 sends a polling request to the mobile server 178 (line 236). In response to receiving the polling request, the mobile server sends the requested data list, or an indication of it, to the data server 174 (line 237). As shown, polling requests may be sent periodically or at intervals by the data server 174 (line 236), in response to each of which the requested data list or updates thereto may be returned by the mobile server 178.
[0099] The data server 174 receives process data associated with the controller 40 from the communicator interface 170 at various times (line 238), which may be periodic with one or more time periods or non-periodic (e.g., episodic). As indicated by line 238, the process data may be received even without a specific data request in some embodiments. When the process data is received at the data server 174, the data server 174 may determine whether the received process data values correspond to any requested data in a requested data list. When such requested data is identified, the data server 174 sends the requested data to the mobile server 178 (line 239). Upon receiving the requested data, the mobile server 178 may select data values that correspond to the view list data requested by the mobile device 14. The mobile server 178 then sends the requested view list data to the mobile device 14 (line 240). This sequence of communicating process data values from the communicator interface 170 to the data server 174 (line 238), from the data server 174 to the mobile server 178 (line 239), and from the mobile server 178 to the mobile device 14 (line 240) may be repeated during process plant operation until the mobile device 14 terminates the data subscription. The data subscription continues until an indicator of termination or a new browse list that does not request any process data is displayed. The communication of the indicator may be terminated.
[0100] 2E illustrates an example data server communication method 250 for providing process data from the data server 174 to the mobile server 178. The data server communication method 250 (or a portion thereof) may be implemented repeatedly by the data server 174 to provide a data stream or otherwise provide process data values from the process control system to the mobile server 178, and the method 250 may be implemented in conjunction with one or more of the other methods described herein. Although the method 250 is described as receiving and communicating process data, the data server 174 may also obtain and send additional data regarding the process plant to the mobile server 178 in some embodiments.
[0101] At block 251, the data server 174 receives configuration data from the process control system via the process control network 162. The configuration data may be received from the controller 40, the file interface 172, or the configuration database 60 as one or more configuration files 74, as discussed elsewhere herein. After receiving the configuration data, the data server 174 may further communicate the configuration data to the mobile server 178 at block 252. To communicate the configuration data, the data server 174 may determine a subset of the configuration data that has been changed or updated or may otherwise determine a subset of the configuration data to send to the mobile device 178. In further embodiments, the data server 174 may generate configuration information, such as by deriving summary or hierarchical list information from the configuration data received from the process control system, to send to the mobile server 178.
[0102] In block 253, the data server 174 sends a polling request to the mobile server 178 over the remote access network 164. The polling request may instruct the mobile server 178 to respond by communicating a requested data list to the data server 174. In response to the polling request, the mobile server 178 may send the requested data list to the data server 174 over the remote access network 164. The requested data list may include multiple requested data parameters and indicates entities or parameters from the process control system for which the mobile server 178 is requesting data. In some embodiments, the list may further include an indication of additional data associated with the process control system. In further embodiments, the list may include only entries for new, modified, changed, canceled, or updated requested data parameters.
[0103] In block 254, the data server 174 receives the list of requested data from the mobile server 178 via the remote access network 164. The data server 174 may then retrieve process data values associated with the list of requested data, and (if applicable) the data server 174 may further retrieve additional data if indicated in the list of requested data. In some embodiments, the data server 174 then subscribes to receive process data from one or more controllers 40 or communicator interfaces 170. In block 255, the data server 174 receives a plurality of process data values via the process control network 162, the process data values associated with a plurality of entities within the process plant. The process data values may include control values, measurements, or other parameter values generated or used within the process control system. In a preferred embodiment, the process data values may be received as one or more data streams from the process control system in real time as the process data values are generated or updated.
[0104] When the data server 174 receives the process data values, the data server 174 then identifies and transmits to the mobile server 178, at block 256, a subset of the process data values that correspond to the requested data parameters of the received list of requested data. Identifying the subset of process data values may involve identifying process data values that have been changed or updated, or those that are associated with newly requested process data by the mobile server 178. Similarly, in some embodiments, the identified subset may include indicators of process data values that have been updated but not changed. Thus, the subset of process data values may be identified for efficient communication to the mobile server 178. Once the subset of process data values is identified, the data server 174 communicates the subset of process data values to the mobile server 178, at block 257. In a preferred embodiment, the identification and communication of the subset of process data values may occur in real time as the process data values are received by the data server 174. Thus, the data server 174 may provide a streaming process data subscription to the mobile server.
[0105] 2F illustrates an exemplary data server communication sequence showing communications between a process control system (specifically, the file interface 172 and the communicator interface 170), a data server 174, a mobile server 178, and a remote computing device (specifically, the mobile device 14). The exemplary data server communication sequence focuses specifically on communications involving the data server 174. The connections are shown linearly to better illustrate the salient features of the sequence, but it should be understood that intervening components may be involved. For example, the controller 40 may communicate configuration data to the data server 174 via the file interface 172 and may further communicate process data to the data server 174 via the communicator interface 170. The controller 40 and the data server 174 communicate via the process control network 162. The data server 174 and the mobile server 178 communicate via the remote access network 164. The mobile server 178 and the mobile device 14 communicate over a mobile network, which may include a local network at the process plant (e.g., part of the remote access network 164), a notification service 196, or the Internet 180. Although the exemplary sequence shows only one of each of the file interface 172, communicator interface 170, data server 174, mobile server 178, and mobile device 14 for clarity, further embodiments may include more than one of any of these components, or all of them.
[0106] An exemplary communication sequence begins with the communication of a configuration data request (line 258) from the data server 174 to the file interface 172. The file interface 172 may obtain the configuration data from the configuration database 60. In response to the configuration data request, the file interface 172 sends the configuration data to the data server 174 (line 259), which may be sent as a configuration file 74 or in another manner. The data server 174 receives the configuration data, which may then be processed to determine and communicate further configuration data (e.g., a subset of the received configuration data, a set of lists based on the configuration data, etc.) to the mobile server 178. The data server 174 sends the configuration data or information associated therewith to the mobile server 178 (line 260). At some point thereafter, the data server 174 sends a polling request to the mobile server 178 (line 261). In response to the polling request, the mobile server 178 generates and communicates the requested data list to the data server 174 (line 262). The requested data list may include entries that indicate process data requested from the process control system by the remote computing device, as discussed elsewhere herein.
[0107] Based on the requested data list, the data server 174, in some embodiments, may send a process data request to the communicator interface 170 (line 263). The communicator interface 170 may obtain process data from one or more controllers 40 in the process control system. Regardless of whether an embodiment involves a process data request, the data server 174 receives the process data from the communicator interface 170 (line 264). Upon receiving the process data, the data server 174 selects the process data associated with the requested data list for communication to the mobile server 174 (line 265). The selection of process data may include identifying one or more sets or subsets of process data values, which may be identified as including updated or changed process data values, in some embodiments. The data server 174 then communicates the selected process data to the mobile server 178 (line 266). The mobile server 178 may then further communicate the selected process data (or a subset thereof) to the mobile device 14 as described elsewhere herein.
[0108] 2G illustrates an example mobile server communication method 270 for selecting, acquiring, and communicating process data to one or more remote computing devices. The mobile server communication method 270 (or a portion thereof) may be implemented repeatedly by the mobile server 178 to provide a data stream or otherwise provide process data values from the process control system to the remote computing devices, and the method 270 may be implemented in conjunction with one or more of the other methods described herein. Although the method 270 is described as receiving and communicating process data, the mobile server 178 may also, in some embodiments, acquire and transmit additional data regarding the process plant to the remote computing devices.
[0109] At block 271, the mobile server 178 receives configuration data associated with the process control system from the data server 174 via the remote access network 164. The configuration data may include one or more configuration files 74, information associated with such files, or other information describing available process data within the process control system. In some embodiments, the mobile server 178 may store a representation of the configuration of the process control system (or a portion thereof) in the memory of the mobile server 178 to improve retrieval speed by remote computing devices. The data server 174 may subsequently provide only updates or changes to the configuration data that the mobile server 178 may use to modify the stored representation of the configuration of the process control system. In some embodiments, at block 272, the mobile server 178 may communicate some or all of the configuration data to one or more remote computing devices over the mobile network. For example, the mobile server 178 may provide a list of entities, parameters, or related information in response to a request for a list of available process data or in response to a user query, as described elsewhere herein.
[0110] In block 273, the mobile server 178 receives an indication of a view list from at least one remote computing device over the mobile network. The indication may specify the process data in the view list by data source or parameter, such as by designation of an area, processing unit, or process parameter within the process control system. The indication may alternatively specify a pre-defined view list stored in memory of the mobile server 178, which may include entries associated with entities or parameters within the process control system. The mobile server 178 may receive multiple such view lists from multiple remote computing devices, in which case, in some embodiments, the mobile server 178 may further generate a consolidated list of the requested data. The mobile server 178 may update the view list by specifying an indication of changes in the requested process data. The mobile server 178 may further generate a list of requested changes that includes only the indicators. The mobile server 178 may continue to receive indications of the view list from the remote computing device and update the list until a polling request is received from the data server 174.
[0111] At block 274, the mobile server 178 receives a polling request from the data server 174 via the remote access network 164. In response to receiving the polling request, at block 275, the mobile server 178 determines a list of requested data based on one or more indicia of the browse list received from the remote computing device. The mobile server may identify process data requested by the remote computing device based on the indicia of the predefined list. In some embodiments, the mobile server 178 may further generate a consolidated list of data requested from multiple remote computing devices. The mobile server 178 may further generate a list of requested changes that includes only an indication of changes in the requested process data. In still further embodiments, the mobile server 178 may identify related process data for data that is requested based on the context but not specifically requested by the remote computing device. The list of requested process data may include an indication of such related process data to obtain further process data that is likely to be requested by a user of the remote computing device. In block 276, the mobile server 178 then transmits the determined list of requested process data to the data server 174 via the remote access network 164. The transmitted list of requested process data may be any of the lists previously described or other similar lists described herein.
[0112] At block 277, the mobile server 178 receives a plurality of process data values from the data server 174 via the remote access network 164. The process data values may include data generated by entities within the process control system and communicated to the data server 174 via the process control network 162. In some embodiments, the plurality of process data values may include data requested by a plurality of remote computing devices. Thus, at block 278, the mobile server 178 identifies a set of process data values from the received plurality of process data values that corresponds to data associated with a particular browse list. The mobile server 178 may identify a plurality of such sets of process data values, each associated with a browse list indicated by one or more of the remote computing devices. Each set of process data values includes data values that were requested directly or indirectly by the remote computing device based on an index of the browse list received from the remote computing device. Once a set of process data values is identified, the mobile server 178 communicates the set of process data values to the corresponding one or more remote computing devices via the mobile network at block 279. This may include communication via a notification service 196, which may be configured to push notifications to remote computing devices.
[0113] 2H illustrates an exemplary mobile server communication sequence showing communications between the process control system (specifically, the file interface 172 and the communicator interface 170), the data server 174, the mobile server 178, and the remote computing device (specifically, the mobile device 14). The exemplary mobile server communication sequence focuses specifically on communications involving the mobile server 178. The connections are shown linearly to better illustrate the salient features of the sequence, but it should be understood that intervening components may be involved. For example, the file interface 172 may communicate configuration data to the data server 174, and the communicator interface 170 may further communicate process data to the data server 174. The controller 40 and the data server 174 communicate over the process control network 162. The data server 174 and the mobile server 178 communicate over the remote access network 164. The mobile server 178 and the mobile device 14 communicate over a mobile network, which may include a local network at the process plant (e.g., part of the remote access network 164), a notification service 196, or the Internet 180. Although the exemplary sequence shows only one each of the file interface 172, communicator interface 170, data server 174, mobile server 178, and mobile device 14 for clarity, further embodiments may include more than one of any of these components, or all of them.
[0114] The exemplary communication sequence begins with communication of configuration data from the data server 174 to the mobile server 178 (line 280). In some embodiments, the mobile server 178 may further communicate the configuration data (or a portion thereof) to the mobile device 14 (line 281). The mobile device 14 may then communicate a view list index to the mobile server 178 (line 282), which may include entries associated with entities or parameters within the process control system, or may indicate a predefined list stored at the mobile server 178. The mobile server 178 may then wait for a polling request from the data server 174. The mobile server 178 receives a polling request from the data server 174, which may be sent from the data server 174 periodically (line 283). In response to the polling request, the mobile server 178 determines a list of requested data based at least in part on the view list index received from the mobile device 14 (line 284). In some embodiments, determining the list of requested data may include determining the viewing list entries, consolidating viewing list entries for multiple remote computing devices, and determining the requested changed or updated viewing list entries. When the list of requested data is determined, the mobile server 178 sends the list of requested data to the data server 174 (line 285).
[0115] The data server 174 receives the process data from the communicator interface 170 (line 286). At least a portion of the received process data is then transmitted from the data server 174 to the mobile server 178 based on the list of requested data (line 287). Upon receiving the process data from the data server 174, the mobile server 178 determines view list data including process data values associated with the entities or parameters of the view list (line 288). Determining the view list may include selecting a set of view list data values from the received process data for each view list associated with one or more mobile devices 14. The mobile server 178 then transmits the view list data to the mobile device 14 (line 289).
[0116] FIG. 2I illustrates an exemplary viewing list subscription sequence illustrating communication between various modules implemented by the mobile device 14 and / or the mobile server 178. Referring briefly to FIG. 2K, in an exemplary embodiment, the mobile server 178 may implement a watch list module 371, a mobile data services module 372, an application program interface (API) 373, a runtime cache 374, and a user viewing list subscription module 375. In an alternative embodiment, the watch list module 371 and the mobile data services module 372 may operate on the mobile device 14, while the runtime cache 374 and the user viewing list subscription module 375 may operate on the mobile server 178, and the API 373 may be split between the mobile device 14 and the mobile server 178. The viewing list subscription sequence illustrates selection of a viewing list, subscription to a data stream associated with the viewing list, and disconnection from the data stream.
[0117] A watch list selection begins with a user of the mobile device 14 selecting a watch list on the mobile device 14. An indication of the selection may be communicated by the mobile device 14 to the watch list module 371 (line 290). Because the indication of the watch list selection may not completely specify the data to be associated with the watch list, the watch list module 371 communicates the indication of the watch list selection to a mobile data service 372 (line 291), which further communicates the indication of the watch list selection to an API 373 (line 292). 292 ). The API 373 then accesses a database storing definitions of the selected watchlists and reads the watchlist definitions that specify the data to be associated with the watchlist (line 293). The watchlist definitions are then communicated to the mobile data services module 372 (line 294), which communicates the watchlist definitions to the watchlist module 371 (line 295). The watchlist module 371 may provide the watchlist definitions to the mobile device 14 or another module of the mobile device 14 to generate the user selected watchlist 296. The user selected watchlist 296 may be presented to the user or the values may be stored for later use.
[0118] Subscription to the corresponding data stream begins with the API communicating a subscription request to the user browse list subscription module 375 in response to the browse list selection (line 297). The user browse list subscription module 375 adds a subscription to process data values from the process control system based on the browse list selection (line 298). Adding a subscription may include requesting the process data values from the data server 174, as described elsewhere herein. Once the subscription is added, the user browse list subscription module 375 communicates approval of the subscription to the API 373 (line 299), and the user browse list subscription module 375 initiates communication of runtime values from the process control system to the runtime cache 374 (line 300). The runtime values may be process data values associated with entities or parameters within the process control system, as discussed elsewhere herein.
[0119] In an exemplary viewing list subscription sequence, the watchlist module 371 updates the runtime values periodically (e.g., every second) or occasionally (e.g., when a user selects an option to view a particular piece of data). To obtain the runtime values, the watchlist module 371 sends an update value request to the mobile data services module 372 (line 301), which is further communicated to the runtime cache 374 (line 303). Once the update value request is received at the runtime cache 374, the requested runtime values for the viewing list are collected (line 304) and communicated to the API 373 (line 305). The API 373 then communicates the runtime values for the viewing list to the mobile services module 372 (line 306), which communicates the runtime values to the watchlist module 371 (line 307). This sequence may be repeated each time a new runtime value is desired.
[0120] A stop updating request is sent from the watch list module 371 to the mobile data services module 372, resulting in a disconnect from the data stream (line 308) and further communicated to the API 373 (line 309). The API 373 communicates the stop updating request to the user viewing list subscription module 375 (line 310). Upon receiving the stop updating request, the user viewing list subscription module 375 may stop obtaining runtime values (i.e., process data values) for the viewing list. The user viewing list subscription module 375 also sends a stop updating acknowledgement message to the API 373 (line 311), which in turn communicates the stop updating acknowledgement message to the mobile data services module 372. The mobile data services module 372 further communicates a stop updating acknowledgement message to the watch list module 371 (line 313).
[0121] 2J illustrates an example data server 174 in a process control system. The data server 174 is communicatively connected to a server 178 via a remote access network 164. Additionally, the data server 174 is communicatively connected to multiple components within the process control system via a process control network 162. The process control network 162 connects the data server 174 to the controller 40, a communicator interface 170 associated with the controller 40, a configuration database 60, a file interface 172 that provides configuration data to the data server 174, and a data historian 62 that stores historical process data associated with the process plant.
[0122] The data server 174 facilitates communication by including a data service 176, which may include multiple specialized modules or routines. The data service 176 may include a data scanner 314, a configuration module 315, and a data module 316. The configuration module 315 communicates with the configuration database 60 or the file interface 172 to obtain configuration data for the process control system, such as the configuration file 74. The data module 316 may request and obtain data values from the data historian 62, the controller 40, or the communicator interface 170. The data module 316 may also select received data values for communication to the mobile server 178 according to methods discussed elsewhere herein. The data scanner 314 may passively receive streaming process data values from the controller 40 or the communicator interface 170 via the process control network 162. In some embodiments, the data scanner 314 may scan all process data communicated through the process control network 162, and a portion of the process data values may then be identified for communication to the mobile server 178. Additional, alternative, or fewer elements may be included in other embodiments of data server 174.
[0123] 2K illustrates an example mobile server 178 in a process control system. The mobile server 178 is communicatively coupled to the mobile device 14 or web client 198 to provide process data, which may include L1 data, to a remote user. The application API 317 handles communication of data lists (e.g., alarm lists, watch lists, etc.) and related data values between the mobile server 178 and the remote computing device (i.e., the mobile device 14 or web client 198). Additionally, the mobile server 178 may include a notification module 327 that communicates notifications to the mobile device 14 via the notification service 196, which may include notifications from Google Analytics. (Registered Trademark) Or Apple (Registered Trademark)Notifications may further be sent through a third party notification service 182 such as the notification service. The application API 317 further handles user authentication and personalization, and to this end, the application API 317 communicates with an authentication server 318 as well as various internal components of the mobile server 178. Internal components related to authentication and personalization may include a configuration database 321 and a user customization module 322. The configuration database 321 may further receive information from a user module 333, which may process configuration and personalization data received from a configuration unit 330 of the executive portal (expo) server 179 via a data connection 334.
[0124] In addition to the authentication and personalization components, the application API 317 may communicate with a search database 319, logging data 320, and a memory cache 323. The search database receives configuration data from a search module 332 and retrieves process control system information at the L1 data or summary data level, as discussed elsewhere herein. The search module 332 may facilitate searching for available process data within the system. The search module 332 may receive configuration data from a configuration file processor 331 of the expo server 179 via a data connection 334. The logging database 320 may store usage metrics for offline analysis. The memory cache 323 communicates with the application API 317 and the stream processor 325 to facilitate notifications and manage the stored list 324.
[0125] The stream processor 325 receives process data values from the process control system via the data connection 334 and the runtime scanner 326. The runtime scanner 326 further obtains the process data values from the communicator interface 170 of the portal 171 in the process control system via the data connection 334. The runtime scanner 326 may identify the process data values based on the configuration data from the configuration database 321. Upon receiving the process data values, the stream processor 325 evaluates the received data values to identify the requested data values associated with the parameters, entities, alarms, or notifications requested by the remote computing device. The user customization module 322 and the configuration database 321 may provide information regarding the data to be communicated to the remote computing device, which may be added to the memory cache 323. When the stream processor 325 determines that a notification should be sent, the notification information is sent to the notification module 327 to be pushed to the mobile device 14 via the notification service 196.
[0126] The expo server 179 may include an expo database 328 that stores information regarding users, devices, licenses, and system level information about the process control system. This may include configuration files 74 and information regarding user authentication to access process data. The expo database 328 may be configured by an expo configurator device 329 operating within the process control system. The expo database 328 then provides configuration and authentication data via a data connection 334 to a user module 333 via a configuration unit 330 and to a search module via a configuration file processor 331. Additional, alternative, or fewer elements may be included in other embodiments of the mobile server 178. For example, a data server 174 may be included between the mobile server 178 and both the expo server 179 and the communicator interface 170.
[0127] FIG. 2L illustrates an exemplary mobile server internal communications architecture within the mobile server 178. The exemplary architecture illustrates an alternative view of the logical connections within the mobile server 178. The mobile server 178 communicates with the mobile services 339 within Client-side scanner 336 and in expo server 338 Server Side Scanner 335 The mobile service 190 may further include a mobile service 339 and an expo server 338 that communicate via an asynchronous communication API such as the Windows Communication Foundation (WCF) framework (developed by Microsoft Corp.) between the mobile service 190 and the expo server 338. In the expo server 338, a server-side scanner 335 communicates with an expo communicator 337 to process configurations from the expo database 328. In the mobile service 339, a client-side scanner 336 communicates the received data to a watchlist item unit 324, which may further communicate to the mobile service 190. The mobile service 190 further manages communication with the mobile device 14.
[0128] Notifications and alarms In addition to other process data, the systems and methods described herein may be used to communicate alarms associated with a process plant to a user of a remote computing device. Because alarms are frequently time-sensitive and may be urgent, the real-time data communication feature of the systems and methods described herein can be used to quickly and easily communicate alarms to a user of a remote computing device. Alarms are particularly valuable with respect to the mobile system. Alarms may be included as L1 data generated by the process control system and may be included in process control data values communicated to the mobile server 178 via the data server 174. For example, alarms may be parameters defined in configuration data and may be included in process data associated with an entity such as a control module. Such alarms may be process parameters and may have an alarm status as a process parameter data value, which may be selected from a predefined set of alarm statuses (e.g., suppressed, disabled, acknowledged, operating without being acknowledged, operating with acknowledgement, and unacknowledged and down). The alarm status may be based on other parameters within the process control system or may otherwise indicate a condition within the process plant, such as the status of processed material in a portion of the process plant, an environmental condition in a portion of the process plant, or the status of a device (e.g., a field device 44-46 or an equipment unit) within the process plant. In some embodiments, a condition associated with an alarm may be monitored based on a process input or output associated with the condition, such as when the condition itself is not directly measured within the process (e.g., due to physical constraints within the process plant).
[0129] Like other process data, alarms may be selected for monitoring or subscription as part of an alarm list selected by a user of a remote computing device. To this end, the mobile server 178 receives the alarm status as part of the process data values transmitted from the data server 174. The mobile server 178 further processes the alarm status to determine whether a user should be alerted. Alternatively, the alarm may be implemented by the mobile server 178 based on the associated process data values from the process control system. For example, an alarm may specify a value range for one or more parameters associated with each of a plurality of alarm statuses. The mobile server 178 may then subscribe to the associated one or more parameters and determine the alarm status when the associated parameter values are received from the data server 174. Regardless of how they are generated, the alarms may be monitored to determine when to alert a user. When an alarm status meets one or more criteria for transmission, the mobile server 178 may communicate a notification or alert to the corresponding remote computing device for presentation to the user. Such alerts or notifications may be communicated over the mobile network like other process data values, or the alerts or notifications may be sent via a notification service 196 (which may also communicate with other services, e.g., Google (Registered Trademark) Or Apple (Registered Trademark) Further interaction with third-party notification services such as notification services 182 As such, the alarm and notification methods and systems described herein may be implemented by or in conjunction with other methods described elsewhere herein.
[0130] 2M illustrates an example alarm notification method 340 for monitoring a process control system and providing alarms to a remote computing device. The alarm notification method 340 may be implemented by the mobile server 178 to identify and send notifications or other alerts associated with the alarms. In block 341, the mobile server 178 establishes subscriptions to alarms in the process control system for one or more remote computing devices. As discussed elsewhere herein, such subscriptions may be established in response to a request for process data including alarms from the mobile server 178 to the data server 174, which may be sent in response to a selection of a data list (e.g., an alarm list or other list that includes alarms as process data entries) and a polling request. In block 342, the mobile server 178 receives process data from the data server 174 via the remote access network 164. Such process data may include a number of process data values, which are generated in real time as they are generated within the process control system. The process data may be received as one or more streams of process data values transmitted in a time stream.
[0131] Upon receiving the process data, the mobile server 178 identifies alarm data values in the received process data at block 343. The alarm data values may be alarm statuses associated with a condition being monitored within the process plant. Alternatively, the alarm data values may be other process data values associated with an alarm status. Based on the identified alarm data values, the mobile server 178 may determine and communicate to the remote computing device a notification associated with the alarm status.
[0132] At block 344, the mobile server 178 communicates a notification of the alarm data value to one or more remote computing devices. The notification may include the alarm status or may be an alternative notification. In some embodiments, the notification may further include additional information related to the alarm, such as a recommendation regarding resolution of the condition associated with the alarm, a time to resolve the condition, or notes regarding the condition. Such additional data may be obtained from the data historian 62 or knowledge repository 64 via the data server 174, or the additional data may be obtained by the mobile server 178 from the enterprise historian 188. The data server 178 may communicate the notification (including any additional data) to one or more remote computing devices based on a viewing list associated with the remote computing device, as discussed elsewhere herein. The communication of the notification may include sending the notification through a mobile network, such as the Internet 180 or a local network. The local network may be used, for example, to send the notification to the mobile device 14 via the remote access network 164 by the Wi-Fi access point 12a. In some embodiments, notifications may be communicated to remote computing devices via the notification service 196. The notification service 196 may push notifications to remote computing devices regardless of whether an application associated with the process data (e.g., a special purpose monitoring application or a web browser capable of receiving process data from the mobile server 178) is running on the remote computing device when the notification is communicated. Thus, a user may be alerted to an alarm even when the user is not viewing the process data. Upon receiving the notification, the remote computing device presents an alert corresponding to the notification to the user at block 345.
[0133] 2N illustrates an exemplary alarm transmission sequence illustrating the communication of an alert or notification from the mobile server 178 to the mobile device 14. In an exemplary embodiment, the mobile server 178 may implement a runtime notification service 326, a notification filter 325, and an application API 317. Once a notification is identified by the mobile server 178 for transmission to the mobile device 14, the notification may be generated by or communicated to the runtime notification service 326 of the mobile server 178. Alternatively, the runtime notification service 326 may identify the notification and transmit it to the mobile device 14. device 14. In either case, the runtime notification service 326 sends the notification to a notification filter 325, which may further determine how the notification is to be sent to the mobile device 14. The notification filter 325 then sends the notification to the application API 317 for further sending.
[0134] The application API 317 is a notification service 196 (e.g., Microsoft The notification service 196 may communicate with the Azure Notification Hub developed by Google Inc. via a notification channel 346. (Registered Trademark) Or Apple (Registered Trademark)The mobile device 14 may be further configured to send the notification to the mobile device 14 via a third party notification service 182, such as a notification service. Upon receiving the notification, the application API 317 sends the notification to the notification service 196. The notification service 196 selects a third party notification service 182 and sends the notification to the selected third party notification service 182. The third party notification service 182 receives the notification and sends it to a notification channel 346, which communicates the notification to the mobile device 14. The mobile device 14 may then present the notification to the user. In some embodiments, the mobile device 14 may receive a request to read pending notifications, which may include a selection of a notification by a user. In response to such a request, the mobile device 14 may provide additional information that is included with the notification or that is received separately from the mobile server 178. In further embodiments, the mobile device 14 may implement a process data application to retrieve process data associated with the notification in response to receiving a request from a user.
[0135] FIG. 2O illustrates an exemplary alarm notification architecture illustrating communication of a notification associated with an alarm to a mobile device 14. The exemplary architecture illustrates the main components involved in data communication between the mobile device 14 and a mobile server 178. The mobile server 178 includes a notification module 327 that sends notifications (e.g., alerts associated with an alarm) to the mobile device 14, but the notification module 327 does not receive communications back from the mobile device 14. The notification module 327 receives notifications to be sent to the mobile device 14 or determines such notifications based on process data received by the mobile server 178. Upon identifying a notification, the notification module 327 may send the notification to a notification service 196 via the Internet 180. The notification service 196 then processes notifications via the iCloud by Apple Inc. (Registered Trademark)The notification may be sent to a third party notification service 182, which may be a cloud-based service such as a third party notification service 182. The third party notification service 182 may then push the notification to the mobile device 14 for presentation to the user.
[0136] The application API 317 of the mobile server 178 both sends and receives data. As discussed above, the application API 317 may send configuration data and requested process data values to the mobile device 14 over a mobile network such as the Internet 180. The application API 317 also receives communications from the mobile device 14 over the mobile network, such as queries, requests for configuration data, or selections of process data (e.g., watch lists, alarm lists, etc.). The application API 317 provides an interface between the mobile device 14 and the mobile server 178 for general communications, while the notification module 327 pushes notifications, particularly for time-sensitive information (e.g., alerts associated with alarms). The mobile device 14 may implement various software applications, modules, or routines to send and receive data and present the data to a user via a GUI. For example, the mobile device 14 may include mobile and data services for handling communications (and in some embodiments, for receiving notifications) over the mobile network. The mobile and data services may provide data for input in a browse model, as well as store and retrieve data from local memory of the mobile device 14. The view model combines views selected or created by the user with process data values received from the mobile server 178 or local memory to present available information about the process plant to the user. The view model may further communicate data to the mobile and data service for storage or communication to the mobile server 178 as described elsewhere herein to indicate requests for configuration data or process data from the process control system.
[0137] FIG. 2P illustrates an exemplary alarm system for providing notification and additional data regarding an alarm in a process control system to a remote computing device, such as a mobile device 14. 3 illustrates a system response method 350. The method 350 may be implemented by the mobile server 178 to identify and send a notification or other alert associated with an alarm, receive a request for further information associated with such an alarm, and provide additional data associated with the alarm. In block 351, the mobile server 178 may receive a plurality of process data values from the data server 174 via the remote access network 164, as described elsewhere herein. Upon receiving the process data from the mobile server 174, the mobile server 178 may identify data associated with an alarm in the process control system. Identifying the alarm may include identifying an alarm status in the plurality of process data values received from the data server 174, or identifying the alarm may include determining an alarm status at the mobile server 178 from a parameter value among the plurality of process data values. The mobile server 178 may then generate or select a notification for transmission to the remote computing device, which may include the alarm status.
[0138] At block 352, the mobile server 178 communicates a notification associated with the identified alarm to the remote computing device. The notification is transmitted to the notification service 196 for further communication to the mobile device 14 via the third-party notification service 182. (Notification Hub 196)via the notification module 327 of the mobile server 178. After receiving the notification, the remote computing device may present the notification to a user and may also receive a user request for additional data related to the notification. The request for additional data may specify particular data associated with the alarm or a condition within the process plant associated with the alarm. For example, the user may select more detailed information from a list of related information available by selecting a representation of the notification. Alternatively, the request for additional information may simply request additional data available within the process control system and associated with a condition associated with the alarm.
[0139] At block 353, the mobile server 178 receives a request for additional data associated with the condition from the remote computing device. Such a request for additional data may be received by the mobile server 178 from the remote computing device over a mobile network and received by the application API 317 of the mobile server 178. For example, the mobile device 14 may send a message including the request for additional data to the application API 317 of the mobile server 178 over the Internet 180. After the mobile server 178 receives the request for additional data, at block 354, the mobile server 178 may identify additional data associated with the condition to be sent to the remote computing device. The mobile server 178 may identify the additional data from an indicator that specifies the additional data included in the request. Additionally or alternatively, the mobile server 178 may identify the additional data based on configuration data previously received from the data server 174, such as by identifying an area, a process device, an equipment unit, a control module, or a parameter associated with an alarm (or an input parameter of the alarm). For example, process data relating to an equipment unit associated with the parameter value that triggered the alarm may be identified as additional data relevant to the request. In further embodiments, the mobile server 178 may identify data relating to alarms or equipment that may be relevant to a condition in the process plant, such as recommendations or notes associated with the condition or an entity in the process control system associated with the condition. If available at the mobile server 178, the identified additional data may be sent to the remote computing device. If some or all of the identified additional data is not available at the mobile server 178, the mobile server 178 may retrieve the additional data. Retrieving the additional data may include requesting process data values associated with the additional data from the data server 174. Retrieving the additional data values may also include retrieving the additional data values from the data historian 62 or the knowledge repository 64. Once the mobile server 178 identifies the additional data, the mobile server 178 may communicate the identified additional data to the remote computing device over the mobile network. This may include sending one or more messages containing the additional data values from the application API 327 over the Internet 180 to the mobile device 14. The remote computing device may then present the additional data values to the user or store the additional data values for later presentation.
[0140] Web browser implementation Although the disclosure herein generally illustrates the remote computing device as a mobile device 14, it should be understood that other remote computing devices (e.g., a web client 198, such as a web browser or an application therein) may access process data over the Internet 180 or other unsecured networks using the disclosed systems and methods. In some embodiments, such remote computing devices may also communicate with the mobile server 178 over one or more secured networks. The processes described herein may nevertheless be used as an additional security measure. An exemplary web client implementation that may operate on a mobile device or a stationary computer connected to the mobile server 178 over an unsecured network is shown in FIG. 2Q.
[0141] FIG. 2Q illustrates an exemplary web client implementation for receiving process data from a mobile server 178 at a web client 198. The exemplary diagram illustrates communication between components of the web client 198 and the mobile server 178. The mobile server 178 may include a mobile service 190 that controls communication with remote computing devices, as discussed above. In a web client implementation, the mobile service 190 may communicate with an application API 317 within the mobile server 178. The application API 317 may send and receive information from the mobile service 190 by way of one or more application services 356 of the application API 317. The application API 317 may then use a view controller 357, web services 358, or WebSockets 359. The view controller 357 and web services 358 may provide data to the web client 198, while the WebSockets 359 may both send data to and receive data from the web client 359. The view controller 357 may send static files that outline the view to be displayed by the GUI of the web client 198 (e.g., HTML pages, CSS files, or JavaScript). The web services 358 may send process data values used in the static files to the web client 198. The web services 348 may be representational state transfer (REST) web services and may use JavaScript Object Notation (JSON) to efficiently transmit data values. WebSockets 359 may also use JSON to communicate between the mobile server 178 and the web client 198. Although not shown, the application API 317 may communicate with the web client 198 via the Internet 180 or other communications network.
[0142] The web client may include a data client device 360 that communicates with the mobile server 178 via a data service module 361. The data service module 361 may receive static files, data values, and any other data from the view controller 357 of the mobile server 178, web services 358, or WebSockets 359. The data service module 361 may also communicate with the mobile server 178 via WebSockets 359. The data client device 360 may communicate data to or from the data service 361. The data service 361 may communicate within the data client device 360 to generate or provide data to a GUI for a remote computing device. To present data to a user, the data client device 360 may combine components 364 with templates 365 based on indicators 366, including indicators from the user. Classes 362 and interfaces 363 may be used in communication between the data service 361, which receives data provided by the mobile server 178, and the user interface components 364. The web client implementation shown is exemplary only, and other embodiments of web client implementations may include additional, alternative, or fewer elements.
[0143] GUI generation As discussed above, applications running on mobile computing devices are used to allow users to remotely view process data and alarms of a process control system. In particular, the applications are configured to present various graphical user interfaces (GUIs) that represent the process data and / or alarms generated by the process control system. FIG. 3A illustrates a signal diagram detailing the interaction between a mobile server 178, a mobile computing device 14, an application 16 running on the mobile computing device 14, and a GUI 18 presented on a display of the mobile computing device 14. In general, the application 16 and the mobile computing device 14 interact through one or more APIs of the mobile computing device 14 to generate and display the GUI 18. In addition to the APIs of the mobile computing device 14, the mobile server 178 may also include one or more APIs for controlling communication between the mobile server 178 and the mobile computing device 14, as well as for controlling access to the process data and / or alarms generated by the process control system.
[0144] In one embodiment, the process illustrated in the signal diagram involves a user accessing a GUI 18 to log in 602 to an application 16. andThe login process begins when the user interacts with the application 16. As is commonly known, the login process involves the user providing a username and password. In one embodiment, the application 16 is a browser application running on the mobile computing device 14. In this embodiment, the user may log into a web portal that facilitates the functionality described herein. In another embodiment, the application 16 is an application specialized for interacting with a process control system. In this embodiment, the login process may occur when the user launches the specialized application. The application 16 receives the login information and generates an authentication request according to the API of the mobile server 178. The authentication request may include an indication of the identity of the user and / or an indication of the identity of the mobile computing device 14. The application 16 then communicates with the application 16 over the communications network to The authentication request is forwarded (604) to the mobile computing device 14 for transmission (606) to the mobile server 178. In the illustrated process, the mobile server 178 processes the authentication request and authorizes the user to access process data and / or alarms generated by the process control system (608). In some embodiments, access is limited to a set of process data and / or alarms specifically permitted in a user profile corresponding to the user. In some embodiments, a user may be authorized to access process data and / or alarms from multiple different process control systems. After granting access, the mobile server 178 sends (610) an acknowledgement to the mobile computing device 14 that the user was successfully authenticated. The mobile computing device 14 then notifies the application 16 (612) that the user was successfully authenticated.
[0145] Once the user is authorized to access the process data and / or alarms generated by the process control system, the user interacts with the GUI 18 to select (614) a view list of the process data and / or alarms. The view list may be an alarm list, a watch list, a batch list, or a list of lists (i.e., a list of alarm lists, watch lists, batch lists, and / or other lists). For example, upon logging into the application 16, the application 16 may generate an interface presenting multiple view lists to which the user has access. In this example, the selection may be a click, tap, or other user interaction with the GUI 18 that indicates a particular view list among the multiple view lists. Of course, the GUI 18 may be configured to detect the selection by other known user interface techniques, including the use of verbal commands and / or gestures. The application 16 then generates a request for data corresponding to the selected view list. In one aspect, the application 16 formats the request for data to include an indication of the view list according to the API of the mobile server 178. The application 16 then forwards (616) the request for the data to the mobile computing device 14 over the communications network for transmission (618) to the mobile server 178.
[0146] According to aspects described elsewhere herein, when the mobile server 178 receives a request for data, the mobile server 178 queries a view list database (not shown) to determine the parameters to be included in the indicated view list. In one embodiment, the mobile server 178 also determines the parameters associated with each item in the indicated view list. For example, if the indicated view list is an alarm list, the mobile server 178 determines the parameters associated with each item in the alarm list. In another example, if the indicated view list is a list of lists, the mobile server 178 determines the parameters associated with each list in the list of lists (and the parameters associated with the items therein).
[0147] The parameters are divided into two general categories: runtime parameters and non-runtime parameters. Runtime parameters include parameters generated by the field device 44 and / or control module 70 that indicate a current state of operation. To this end, runtime parameters may represent a “real-time” or current view of the state of the field device 44 and / or control module 70. By way of example, runtime parameters may include process values, limit values, output values, or alarm records. Non-runtime parameters, on the other hand, tend to represent generally static characteristics of the field device 44 and / or control module 70. By way of example, non-runtime parameters may include the name of the field device or control module, the tag of the field device or control module, the role of the item, the equipment associated with the runtime parameter, and the like. It should be understood that although non-runtime parameters are generally static, non-runtime parameters may still change from time to time (e.g., when new field devices are added to the process control system).
[0148] Based on these different characteristics of the runtime and non-runtime parameters, the mobile server 178 processes the request to retrieve data differently for the runtime and non-runtime parameters. To this end, the mobile server 178 queries (622) the configuration data (e.g., an FHX file) to retrieve the non-runtime parameters. The mobile server 178 then transmits (626) the retrieved non-runtime parameters to the mobile computing device 14. Conversely, with respect to the runtime parameters, the mobile server 178 retrieves data from the data stream containing the parameters. The mobile server 178 then subscribes the mobile computing device 14 to the data stream (620). In one embodiment, to subscribe the mobile computing device to the data stream, the mobile server 178 follows the steps of the data subscription method 220 shown in FIG. 2C. It should be understood that the data stream may also include references to some non-runtime parameters (e.g., names or tags of control modules or field devices) because the data stream may be hierarchically organized in some embodiments. As another example, some view lists may include a graphical representation of the historical trend of a parameter. In this example, the data stream may include multiple historical values for that parameter (e.g., values corresponding to each minute of the last 12 hours). Unlike the runtime parameters, these historical values are retrieved from a data historian (not shown) interconnected with the mobile server 178. After the mobile computing device 14 is subscribed to the data stream, the mobile server 178 may periodically transmit the data stream to the mobile computing device 14 (628). In some embodiments, the data stream may actually be an aggregate data stream that includes multiple different data streams from multiple different process control systems.
[0149] Additionally, according to an embodiment, application 16 retrieves 624 a template (e.g., a view model) in a template database (not shown) that corresponds to the selected view list. The template represents a GUI model in which the parameter values of the view list are displayed. The template may include a location on GUI 18 for the friendlyName parameter for the selected view list. As an example, if the template includes a title bar, the template may indicate a location on the title bar for the friendlyName parameter for the selected view list. In one scenario, the template is a default template for a particular type of view list. In another scenario, the template for the selected view list may be a customized template. For example, a user may customize whether the GUI 18 corresponding to the selected view list includes visualization of various parameters. To this end, a user may be able to customize which parameters (e.g., process values, set points, limits, etc.) are displayed in a graph presented on GUI 18, whether the graph includes a scale, whether the graph includes a line or bar chart, or even whether the graph is displayed on GUI 18 at all.
[0150] Once the mobile computing device 14 receives the data stream including the retrieved non-runtime parameters and the runtime parameters, the mobile computing device 14 provides the received data to the application 16. The application 16 then populates (632) the retrieved template with the data provided by the mobile computing device 14. To this end, the parameters included in the template and the parameters provided by the mobile computing device 14 may correspond to one another (e.g., both parameters have the same name). The application 16 then generates (634) a set of instructions that causes the mobile computing device 14 to display the populated template on the GUI 18. In one aspect, the set of instructions is formatted according to the API of the mobile computing device. For example, the mobile computing device 14 operating system may include multiple APIs related to presenting GUIs on the display of the mobile computing device 14.
[0151] In one aspect, as described above, the mobile server 178 may transmit to the mobile computing device 14 the parameters associated with each item in the selected view list. However, the template for the selected view list may not include the location of each parameter associated with each item therein. Parameters that are not included in the rate are not displayed on GUI 18. However, the user may be able to interact with GUI 18 to view another view list that corresponds to an item in the selected view list. To improve the speed with which templates corresponding to this other view list may be populated, application 16 may cache data provided by the mobile computing device. As a result, templates corresponding to this other view list may be populated without further communication between mobile computing device 14 and mobile server 178.
[0152] Further, as described above, once the mobile computing device 14 is subscribed to the data stream, the mobile server 178 periodically transmits (636) the data to the mobile computing device 14. The mobile computing device 14 then provides (638) the received data to the application 16. In some scenarios, the data stream may include updated data values for one or more of the parameters included in the view list displayed on the GUI 18. Accordingly, the application 16 updates (640) the template to include the updated data values included in the data stream. The application 16 then generates a set of instructions that causes the mobile computing device 14 to display (642) the updated template on the GUI 18.
[0153] At some point, the user may navigate away from the GUI 18 and / or interact with the mobile computing device 14 such that the application 16 no longer presents the GUI 18. In one scenario, the user has logged out of the application 16. Thus, the application 16 may detect the logout event and generate an unsubscribe message. The application 16 then forwards the unsubscribe message to the mobile computing device 14 for transmission to the mobile server 178. In response, the mobile server 178 unsubscribes the mobile computing device 14 from the data stream. In another scenario, the user may select a new view list to be displayed on the GUI 18. Thus, the application 16 may select this new view list. The application 16 then generates an unsubscribe message for the current view list and also a request to receive data corresponding to the new view list. The application 16 then forwards the unsubscribe message and the request to receive the data to the mobile computing device 14 for transmission to the mobile server 178. In response, the mobile server 178 unsubscribes the mobile computing device 14 and modifies the data stream to reflect parameters corresponding to the new view list.
[0154] Turning now to 3B-3H, exemplary GUIs corresponding to different view list types are shown. is3B-3H. FIG. 3C illustrates a GUI corresponding to a view list, FIG. 3D illustrates a GUI corresponding to a view list for a watchlist, FIGS. 3E and 3F illustrate a GUI corresponding to a view list for watchlist items, FIG. 3G illustrates a GUI corresponding to a view list for an alarm list, and FIG. 3H illustrates a GUI corresponding to a view list for alarm items. Each of the illustrated GUIs may be presented by a GUI 18 within an application 16 running on the mobile computing device 14. As discussed above, the placement of various GUI elements is governed by a template (e.g., a view model) corresponding to a particular view list. The template may include locations on the GUI 18 where multiple parameter values are to be displayed. To populate the template, the application 16 may be configured to generally follow the process values set forth in the signal diagram 600. In particular, the interfaces illustrated in FIGS. 3B-3H may be presented by the GUI 18 in response to a user selecting a respective view list at step 614 of the signal diagram 600. Additionally, the interfaces shown in Figures 3B-3H may be presented by GUI 18 in response to application 16 sending a set of instructions to mobile computing device 14 to populate respective templates for respective view lists and present the interfaces on GUI 18 at steps 632 and 634, respectively, of signal diagram 600.
[0155] With particular reference to Figures 3B and 3C, the GUI 18 is a list of lists. is View List of Presented in FIG. 6 are interfaces 644 and 646, respectively. Interfaces 644 and 646 include display areas that display visual representations of individual listings within a list of lists. In the example shown on interface 644, the individual listings are a DHT Area Alarm List, a DHT1 Watch List, a Utility Alarm List, a DHT2 Watch List, and a Safety Alarm List. Each of the visual representations of the lists may include a summary of the list. In particular, if the list is a watch list, the summary may include a summary of the watch list. It may include some watchlist items in the list and some watchlist items with abnormal conditions. On the other hand, if the list is an alarm list, the summary may include some active alarms in the alarm list that are not acknowledged, some inactive alarms in the alarm list that are not acknowledged, and some alarms in the alarm list that are suppressed. The visual representation of a list in a list of lists may also include a friendly name of the list (e.g., DHT Area Alarms), a tag of the module monitored by the list (e.g., FIC350112), and / or a particular alarm of the module (e.g., HI_HI). Additionally, the visual representation of a list in a watchlist includes an icon indicating the type of list (e.g., watchlist vs. alarm list) and the status of the list. In particular, for an alarm list, the status indicator corresponds to the highest priority alarm in the alarm list that is not acknowledged or suppressed, and for a watchlist, the status indicator corresponds to whether the watchlist includes a watchlist item that is in an abnormal condition.
[0156] Interfaces 644 and 646 also include a tab selection interface that allows a user of the mobile computing device 14 to select an information tab to display on the GUI 18. As shown on interfaces 644 and 646, the tab selection interface includes selection elements corresponding to a watchlist information tab, an alarm list information tab, or an all lists information tab. Although not shown in interfaces 644 or 646, the tab selection interface may also include a batch list information tab. Selection of a selection element of the tab selection interface applies a filter (or removes a filter) to the list displayed in the display area. For example, when the watchlist selection element is selected, only watchlists are displayed in the display area. In the scenario shown on interface 644, when the watchlist selection element is selected, the display area is filtered to include only the DHT1 watchlist and the DHT2 watchlist.
[0157] Additionally, interfaces 644 and 646 include a search interface that allows for searching for a particular item included within a list of lists. The search interface may be configured to receive user input indicating search criteria. For example, the user input may be characters entered via a virtual or physical keyboard, voice captured by a microphone of a mobile computing device, or other known techniques for receiving user input indicating search criteria. Results of the search are displayed within a display area of interfaces 644 and 646. According to an aspect, the search may be performed against a set of cached data received by mobile computing device 14 from mobile server 178. As a result, the search may be performed by application 16 without communicating with mobile server 178, reducing the time required to complete a search.
[0158] Additionally, interfaces 644 and 646 include a shared list toggle element. To this end, each list in a list of lists may be classified as either a personal list (e.g., a list where only the user may modify or configure the list) or a shared list (e.g., a list where multiple users may modify or configure the list). As shown on interface 646, when the shared list toggle element is active, the display area includes both a list of personal lists and a list of shared lists. Conversely, as shown on interface 644, when the shared list toggle element is inactive, the display area includes only a list of personal lists.
[0159] 3D, the GUI 18 presents a watchlist view list interface 648. In one scenario, the interface 648 is presented in response to a user selecting the DHT1 watchlist when the GUI 18 is presenting one of the interfaces 644 or 646. The interface 648 includes a display area that displays visual representations of individual watchlist items in the watchlist. In the example shown on the interface 648, the individual watchlist items are Sour Nap FCC, Furnace Out Temp, Flash Drum Press, Strp Reboiler Te[mp], Strp Bottoms Lev[el], and Primary ACN Status. Each of the visual representations of the watchlist items may include a friendly name of the watchlist item (e.g., Sour Nap FCC), a tag of the module monitored by the watchlist item (e.g., FIC350112), and / or a hierarchical location of the module monitored by the watchlist item (e.g., ...1 / COMM / PRI / OLINTEG). Additionally, the visual representation may include the parameter value (e.g., 89.2) as well as its units (e.g., bpd) for the watchlist item's primary role. For example, for a Furnace Out Temp watchlist item, the primary role is to monitor a process value corresponding to the furnace temperature. As another example, for a Primary ACN Status watchlist item, the primary role is to monitor the status of the Primary ACN.
[0160] Additionally, the visual representation of the watchlist item may also include a chart illustrating the trend of a parameter value (e.g., values for the past 20 minutes) corresponding to the primary role of the watchlist item. According to an embodiment, the chart may include a set point or other reference point overlaid on the chart. The visual representation of the watchlist item may also include a status area indicating the status of the watchlist item. For example, in the scenario shown on interface 648, the Sour Nap FCC watchlist item has an abnormal status. Thus, the status area of the Sour Nap FCC watchlist item includes an indicator of the abnormal status (e.g., an exclamation point). Conversely, the Furnace Out Temp watchlist item has a normal status. Thus, on the interface 646 shown, the status area of the Furnace Out Temp watchlist item is blank.
[0161] Additionally, interface 648 includes a search interface that allows for searching for specific items contained within the watchlist. The search interface may be configured to receive user input indicating search criteria. For example, the user input may be characters entered via a virtual or physical keyboard, voice captured by a microphone of the mobile computing device, or other known techniques for receiving user input indicating search criteria. Results of the search are displayed within a display area of interface 648. According to an embodiment, the search may be performed against a set of cached data received by mobile computing device 14 from mobile server 178. The results and Thus, searches can be performed by the application 16 without communicating with the mobile server 178, reducing the time required to complete a search.
[0162] 3E and 3F, GUI 18 presents watchlist item view list interfaces 650 and 652, respectively. In one scenario, interfaces 650 and 652 are presented in response to a user selecting the Sour Nap FCC watchlist item when GUI 18 presents interface 648. Interfaces 650 and 652 include a current parameter value display area that displays a visual representation of the current parameter value for one or more parameters monitored by the watchlist item. As shown on interfaces 650 and 652, the current parameter value display area includes parameter values corresponding to the process value (89.2), the setpoint value (50), and the output value (0.0). Of course, other interfaces may include additional, fewer, or alternative parameter values. Interfaces 650 and 652 also include a historical parameter value display area for displaying a graphical representation of the historical values of one or more parameters monitored by the watchlist item. As shown on interfaces 650 and 652, the graphical representations include graphs showing historical values for each of the process values, the setpoint values, and the output values.
[0163] In an aspect, watchlist item interfaces 650 and 652 correspond to different templates. In particular, interface 650 corresponds to a portrait mode template and interface 652 corresponds to a landscape mode template. Thus, application 16 is configured to detect the orientation of mobile computing device 14. Application 16 auto-populates into a portrait mode template to present interface 650 on GUI 18 when mobile computing device 14 is in portrait mode orientation. Similarly, application 16 auto-populates into a landscape mode template to present interface 652 on GUI 18 when mobile computing device 14 is in landscape mode orientation. As illustrated by interfaces 650 and 652, the landscape mode template includes a larger display area for historical parameter values and a smaller display area for current parameter values than the portrait mode template.
[0164] Additionally, the portrait mode template presented on interface 650 includes an identification display area and a status display area. As shown on interface 650, the identification display area includes an indication of the name of the watchlist item (e.g., Sour Nap FCC), a description of the watchlist item (e.g., "Diesel Hydrotreater Unit 1 Inlet Flow from FCC"), a tag (e.g., F1350112), and a path indicating the hierarchical location of the field device 44 and / or control module 70 (e.g., MySystemSiteName:DHT_AREA / DHT1 / ). As shown on interface 650, the status display area includes an indication of one or more conditions of the watchlist item (e.g., "PV Bad" and "Abnormal Mode").
[0165] 3G, the GUI 18 presents an alarm list view list interface 654. In one scenario, the interface 654 is presented in response to a user selecting an alarm list of DHT area alarms when the GUI 18 is presenting one of the interfaces 644 or 646. The interface 654 includes a display area that displays a visual representation of the individual alarm items in the alarm list. In the example shown on the interface 654, the individual alarm items are: HI_HI Sour Nap FCC alarm, LO Furnace Out Temp alarm, HI Flash Drum Press alarm, Bypass The alarm items are: Sour Nap FCC alarm, and Interlock DHT1 XFR Pump alarm. Each of the visual representations of the alarm items may include a friendly name of the alarm item (e.g., Sour Nap FCC), the tag of the module monitored by the watchlist item (e.g., FIC350112), and the particular alarm of the module that corresponds to the alarm item (e.g., HI_HI). Additionally, the display area may include a status icon (e.g., a red circle) for the alarm item in the alarm list. The status icon may correspond to the priority and / or state of the alarm item.
[0166] The interface 654 also includes a tab selection interface that allows a user of the mobile computing device 14 to select a tab of information to display on the GUI 18. As shown on the interface 654, the tab selection interface includes selection elements corresponding to an information tab for alarmed alarms and an information tab for suppressed alarms. Selection of a selection element of the tab selection interface applies a filter (or removes a filter) to a list that is displayed in the display area. For example, if the alarmed alarms selection element is selected, only alarmed alarms are displayed in the display area. In this example, the visual representation of the alarm item includes the amount of time since the alarm item was announced. On the other hand, if the suppressed alarms selection element is selected, only suppressed alarms are displayed in the display area. Thus, the visual representation of the alarm item includes the amount of time since the alarm item was suppressed.
[0167] Additionally, the interface 654 includes a search interface that allows for searching for a particular alarm item contained within the alarm list. The search interface may be configured to receive user input indicating search criteria. For example, the user input may be characters entered via a virtual or physical keyboard, voice captured by a microphone of the mobile computing device, or other known techniques for receiving user input indicating search criteria. Results of the search are displayed within a display area of the interface 654. According to an embodiment, the search may be performed against a set of cached data received by the mobile computing device 14 from the mobile server 178. As a result, the search may be performed by the application 16 without communicating with the mobile server 178, reducing the time required to complete a search.
[0168] 3H, GUI 18 presents an alarm item view list interface 656. In one scenario, interface 656 is presented in response to a user selecting the Sour Nap FCC HI_HI alarm when GUI 18 is presenting one of interfaces 654. Interface 656 includes an identification display area that displays information identifying the alarm item. As shown on interface 656, the identification display area may include an indication of the name of the alarm item (e.g., Sour Nap FCC), the module corresponding to the alarm item (e.g., FIC350112), a description of the alarm item (e.g., DHT Feed Rate Very High), and a functional classification of the module corresponding to the alarm item (e.g., Environmental Protection). The identification display area may include a status icon (e.g., a red circle) indicating the priority and / or status of the alarm item.
[0169] As shown on interface 656, interface 656 includes an alarm timer display area. The alarm timer display area displays an alarm timer corresponding to the alarm item. When the alarm item is an alarmed alarm, the alarm timer display area indicates the time the alarm item was alarmed and the time since the alarm was alarmed. When the alarm item is a suppressed alarm, the alarm timer display area indicates the time the alarm item was suppressed and the time since the alarm was suppressed.
[0170] Additionally, the interface 656 also includes a response display area. The response display area includes an indication of the consequences of not taking action (e.g., "Economic-Major: Potential loss of $100K to $500K") and a recommended action to respond to the alarm item (e.g., "Cross-check readings on L1-UT11..."). When the alarm item is an alarmed alarm, the response display area includes the time to respond to the alarm item (e.g., less than 15 minutes) and a timer representing the difference between the time the alarm item was alarmed and the time to respond (e.g., 00:13:24). When the alarm item is a suppressed alarm, the response display area includes the reason the alarm item was suppressed (e.g., chattering or fleeting behavior) and a timer representing the total amount of time the alarm item has been suppressed (e.g., 11:16:36).
[0171] The interface 656 also includes a historical parameter value display area for displaying a graphical representation of the historical values of the parameter corresponding to the alarm item. The graphical representation includes an identification of the parameter monitored by the alarm item (e.g., FIC350112 / PV). According to an embodiment, the graphical representation also includes alarm limit lines corresponding to the limits that triggered the alarm item.
[0172] It should be appreciated that a user of the mobile computing device 14 may customize the interfaces 644-656. For example, the user may be able to zoom or scale a graphical diagram or chart, rearrange the order in which items are displayed in the list, and / or modify the set of parameters that are displayed. One particular customization of a watchlist, such as the watchlist included on interface 648, includes the ability to reconfigure the watchlist to create a composite watchlist item that includes a composite graphical representation of parameter values for one or more watchlist items. This customization is illustrated across a series of watchlist view list interfaces 658-666 shown in Figures 3I-3M, respectively. The series of interfaces 658-666 are generated within an application 16 running on the mobile computing device 14.
[0173] The composite watchlist item process begins with interface 658 shown in FIG. 3I illustrating a user selecting an edit control of interface 658. In response, application 16 presents a watchlist edit interface on GUI 18, as shown on interface 660 of FIG. 3J. According to an embodiment, for each watchlist item, the watchlist edit interface allows the user to separately edit the position of the corresponding current parameter value and the corresponding graphical representation of the historical values. As shown on interface 660, each watchlist item includes an upper slider element corresponding to the position of the current parameter value and a lower slider element corresponding to the graphical representation of the historical values. The scenario shown in 3J illustrates a user beginning to drag a slider element corresponding to the graphical representation of the historical values for the Diesel Product Temp watchlist item. The dragging of the slider element ends with the scenario shown on interface 662, as shown in FIG. 3K. More specifically, interface 662 illustrates a user dragging a slider element to the bottom of the watchlist item. As shown on interface 662, dragging a slider element has separated the location of the current parameter value and the location of the graphical representation of the historical value for the Diesel Product Temp watchlist item in the watchlist.
[0174] As illustrated on interface 664 of FIG. 3L, the composite process involves a user of the mobile computing device 14 selecting a Kerosene Product Tem If the user drags the slider corresponding to the graphical representation of the historical values for the watchlist item to the bottom of the watchlist, it continues. As shown on interface 662, dragging the slider element has similarly separated the location of the current parameter value and the location of the graphical representation of the historical values for the Kerosene Product Temp watchlist item in the watchlist. To confirm the combination of the graphical representations of the historical values for the Diesel Product Temp and Kerosene Product Temp watchlist items, the user selects the "Done" element of interface 664. As FIG. 3M shows on interface 666, application 16 then selects the "Done" element of interface 664 to display the graphical representation of the historical values for the Diesel Product Temp and Kerosene Product Temp watchlist items. The graphical representations of the historical values for the Temp watchlist item are combined into a single graphical representation. It should be understood that any customization to the view list, including the combination of two watchlist items, modifies the template corresponding to the view list accordingly. As a result, any customization to the view list is stored on the mobile computing device 14 and can be easily accessed by the application 16 at a later point in time.
[0175] As another example, many users may be accustomed to viewing process values on interfaces generated by workstations 30 or 32. Generally, these interfaces were not designed with mobile computing devices in mind. As a result, the interfaces generated by mobile computing device 14 and workstations 30 or 32 may differ in some aspects. This may lead to user confusion or lack of adoption in using application 16. Thus, the view list may include a view mode switching element that uses a view list template that approximates a view that would be generated by workstation 30 or 32. In one embodiment, this view list template is generated based on data generated by an L1 display module, such as that shown in FIG. 1F.
[0176] Examples of interfaces that may be presented to a user of a mobile computing device 14 for batch process control will now be described with reference to Figures 4A-4P. Referring momentarily back to Figure 1N, a user may select several batches in a batch list 153. 153 A to e may be presented. 153Upon selecting a), the mobile device 14 may present a display 400 that provides information about the recipe for that batch. This information may include, for example, an indicator of a batch ID 402, an indicator of a batch status 404, an indicator of a batch recipe 406, an indicator of a start time of the batch 408, and / or an indicator of a run time of the batch 410 at the top of the display 400. The display 400 may also indicate how long the batch status has been in its current state, in an embodiment. Additionally, the display 400 may display the unit procedures associated with the batch recipe. For example, for the batch illustrated in FIG. 4A, there are eight unit procedures 412a-h associated with the batch. Each of the unit procedures 412a-h may have an indicator of a unit procedure status 414 and an indicator of a unit procedure recipe 416 associated with it. An indicator 418 may provide information regarding whether any faults or prompts exist for the unit procedure. Controls 420a-b may facilitate switching between viewing the recipes 412a-h and viewing the parameters associated with the batch ID, respectively.
[0177] Selecting one of the unit procedures 412a-h on the display 400 may drill down to a further display 422 illustrated in FIG. 4B. The display 422 may be associated with the user's selection of the unit procedure 412a, for example. An indicator 424 of the unit procedure may be illustrated at the top of the display 422. An indication 426 of the procedure and / or recipe being performed may be displayed, as may an indication of the unit procedure status 428, and an indication of the equipment on which the unit procedure is operating 430. An indication 432 of the operations associated with the unit procedure may be displayed, along with a status of each operation, and a respective indication (434 and 436, respectively) of the presence of any faults or prompts associated with the operation. Controls 438a-b may each facilitate switching between viewing the operations 432 and viewing the parameters associated with that operation.
[0178] When a user drills down to operation details, for example, by selecting operation 432 on display 422, the mobile device 14 may present a display 440, as shown in FIG. 4C. An indicator 442 of the operation may be included at the top of the display 440, as may indicators 444 of procedures, recipes, and unit procedures, and an indicator 446 of equipment. One or more phases 448 that make up the operation may be presented along with indicators 450 and 452, respectively, indicating the status of each phase and the time the phase is in that state. Indicator 454 may indicate the presence of a fault or prompt associated with the phase. Controls 456a-b may each facilitate switching between viewing the phases 448 and viewing the parameters associated with the phases 448. FIG. 4D illustrates a display 458 that may be presented on the mobile device 14 upon activation of control 456b on display 440. Display 458 shows various parameters associated with phase 448, which in this case include module parameter 460, PH, and its associated value 462, report parameter 464 and its associated value 466, and input parameter 468 and its associated value 470. Parameters 460, 464, and 468 are also associated with respective value range indicators 472.
[0179] By selecting a phase displayed on the display 440 (e.g., phase 448), the user may cause the mobile device 14 to display a display 474 providing details of the phase, as shown in FIG. 4E. The details may include a recipe stack 476 (i.e., information about the operation, unit procedure, recipe, and batch), phase parameters 478, and information 480 about any faults or prompts associated with the phase. Additionally, the display 474 may include an indication 482 of the time any faults or prompts were pending / unacknowledged. In an embodiment, the display 474 may also provide controls 484 that may enable the user to acknowledge a prompt or alarm from the mobile device 14.
[0180] Referring briefly again to FIG. 1N, a user can select control 167b on the display 153, causing the mobile device 14 to present a display 486 as shown in FIG. 4F. The display 486 can present a list 488 of equipment associated with the batches presented on the batch list (e.g., associated with batches 153a-e). For each piece of equipment, the associated batch ID, procedure, and unit procedure may be displayed (see 490), and an indicator 492 may indicate the number of phases that are active on that equipment. An indicator 494 for each piece of equipment may indicate whether there are any active faults or prompts. By selecting one of the equipment items 488 in the display 486, one can drill down to present a display 496 showing a detailed view of the equipment as shown in FIG. 4G. The detailed view of the equipment can present a path 498 to the equipment device in question, an indicator 500 of the batch ID, and an indicator 502 of the recipe. Additionally, the detailed view of the device in display 496 may include evidence 504 of the phases associated with the device, and for each phase, its status, the time it has been in that state, etc. Controls 506a-b may each facilitate switching between viewing the phases associated with the device (as in FIG. 4G) and viewing the parameters as shown in FIG. 4H. The display 508 shows parameters 510 associated with the selected device.
[0181] Alternatively, a user may select control 167c on display 153, causing the mobile device 14 to show display 512 as shown in FIG. 4I. Display 512 shows a list of prompts 514a-b associated with batches 153a-e in the batch list. Each of the prompts 514a-b includes a message 516 for the prompt, as well as information 518, such as the batch ID, recipe, and time the prompt is pending. Selecting one of the prompts 514a-b may cause the mobile device 14 to show display 520, shown in FIG. 4J. Display 520 shows a details view for the selected prompt. The phase details shown on display 520 of FIG. 4J include the same type of information as the phase details on display 474 of FIG. 4E.
[0182] In an embodiment, a display shown in any of FIGS. 4A-4J may include a control (not shown) in the form of a button or other link that may enable a user to send a notification to another mobile device. The notification sent to the second mobile device may allow the user of the device on which the control was activated to share the currently displayed view. That is, a user of a first device may wish to share the view currently shown on the mobile device with another user of a second mobile device. By activating a "share view" control, a user of a first device may cause the first device to send a notification to the second device that includes a link or other indicator that, when activated by a user of the second device, causes the second device to request a display associated with the link from a mobile server. The display associated with the link may be the same display that was shown on the first device when the control was activated, thereby allowing the second user to see what the first user was looking at when the control was activated, which may include a notification screen, alarm details, a watch list, etc. In embodiments, the notification received at the second device may include a screenshot or other image showing what the user would see upon activation of the link on the second device.
[0183] List Configuration 3N illustrates an example list configuration method 368 for configuring a list of process data items via an application, such as application 16, operating a mobile computing device, such as mobile computing device 14. The list configuration method 368 may be implemented on multiple mobile computing devices in communication with a mobile server 178. The list configuration method 368 may also be implemented in conjunction with one or more of the other methods described herein.
[0184] The method 368 begins at block 370, where the mobile computing device 14 receives an indication that a user of the mobile computing device 14 is configuring a list of process data items. In one embodiment, the application 16 includes a list configuration interface that allows the user to configure one or more lists associated with the user. The list configuration interface may be presented by the mobile computing device 14 in response to the user selecting an edit control on the watch list interface 348 or the alarm list interface 354, for example. Thus, the indication that the user is configuring a list of process data items may be an indication of presenting the list configuration interface.
[0185] In block 372, the mobile computing device 14 accesses a hierarchical list of available process data items. As described above, the hierarchical list of process data items may include a first hierarchical level representing an area in the process plant, a second hierarchical level representing a process unit within the area in the process plant, a third hierarchical level representing a module within the process unit, and / or a fourth hierarchical level representing a particular process control system from among a plurality of process control systems. In another scenario, the mobile computing device 14 accesses a local copy of the hierarchical list of available process data items stored at the mobile computing device 14. In another scenario, the mobile computing device 14 sends a request to the mobile server 178 for the mobile server 178 to retrieve and send to the mobile computing device 14 a hierarchical list of available process data items, or a portion thereof, in response to a query or search term. In this scenario, the requesting mobile computing device 14 may also include user credentials corresponding to a user of the mobile computing device 14. Based on the user credentials, the mobile server 178 may: aThe hierarchical list of all available process data items for the one or more process control systems is filtered to include only those available process data items for which the user has access permissions.
[0186] According to an embodiment, the hierarchical list of available process data items may include a set of existing selections corresponding to the list. To this end, the list may be pre-created and stored in a list database interconnected with the mobile server 178. The set of existing selections thus includes one or more selections of process data items that the list is currently configured to monitor. To receive this set of existing selections, the mobile computing device 14 transmits an indication of the list to the mobile server 178. In response, the mobile server 178 accesses the list in the list database and sends the set of existing selections to the mobile computing device 14. It should be understood that in an embodiment where the list is a shared list, some of the existing selections may be selected by users other than the user of the mobile computing device 14. Of course, when a user is configuring a new list, there are no existing selections corresponding to the list.
[0187] At block 374, the mobile computing device presents a selection interface for selecting a process data item from the hierarchical list of available process data items. With concurrent reference to FIG. 3P, interface 382 is an exemplary selection interface presented by the mobile computing device 14. To present the selection interface, the application 16 populates the hierarchical list of available process data items with existing selections such that the selection interface indicates that the existing selections are included in the list. In the scenario illustrated by interface 382, the watch list is populated with watch list items corresponding to O2 control, stream flow, gas flow, etc. The selection interface also allows the user to dynamically rearrange the order of items in the list, such as by dragging an item to a new location in the list. In one embodiment, one or more of the items displayed in the selection interface include a visualization of a current process value and / or a trend of a previous process value.
[0188] According to an embodiment, the selection interface may also include a search interface for filtering the hierarchical list of available process data items based on a search term. As shown in interface 382, the search interface may include a search box configured to receive a search term. With concurrent reference to FIG. 3Q, interface 384 is an example search interface showing search results. Interface 384 may be presented to a user who enters "Crude Tower Temp" into a search box presented in interface 382. Because the list shown in selection interface 382 is a watchlist, the search results include only modules that match the search term (in this case, modules located in a crude tower process unit and that include a temperature parameter). In one embodiment, selection of a module from the search results interface 384 allows the user to select a watchlist item that corresponds to a module parameter (e.g., a process value, a constant value, or an output value) included in a hierarchical list of available process data items. In an embodiment where the list is an alarm list, the search results interface 384 allows the user to select an alarm to be associated with the module. In either case, selection of a process data item to be associated with the module includes the process data in the selection of the set of process data items.
[0189] In another aspect, the selection interface may include a filter interface for filtering the hierarchical list of available process data items by entries included in a hierarchical level of the hierarchical list. With concurrent reference to FIG. 3R, interface 386 is an exemplary filter interface illustrating a filtered hierarchical list of available process data items. Interface 386 may be presented in response to a user selecting an additional control on interface 382 or by selection of a filter control on an alternative selection interface. As shown on interface 386, the filter interface allows for filtering of a location hierarchical level (e.g., location 1), an area hierarchical level (e.g., boiler area), a process equipment level (e.g., air), or a module hierarchical level (e.g., PIC-11-401). In addition to hierarchical level, the filter interface may allow for filtering of the hierarchical list of available process data items by functional classification (e.g., product quality or safety), priority (e.g., critical or advisory), and / or class (e.g., process or device) of the process data items. In one embodiment, the hierarchical list of available process data items may also be filtered based on access rights associated with the process data items (e.g., filtering based on the location of the user having access, the role of the user having access, or the shift worked by the user having access). On the illustrated interface 386, each process data item corresponds to a checkbox. Any selection (including an existing selection) of a process data item included in the list may include a check mark indicating that the list includes the process data item. A user may indicate a selection by checking a checkbox corresponding to an entry at a hierarchical level. Thus, the checked process data item and / or all process data items hierarchically stemming from the checked entry are included in the selection of the set of process data items.
[0190] At block 376, the application 16 receives a selection of process data items, e.g., a set of process data items selected via a search interface and / or a filter interface. Then, at block 378, the mobile computing device 14 transmits the set of process data items to the mobile server 178. In one embodiment, the mobile computing device 14 transmits the set of process data items as each selection is made. In another embodiment, the mobile computing device 14 transmits the set of process data items after the user indicates that they are finished configuring the list of process data items (e.g., by clicking the done control). In response, the mobile server 178 updates the list database to include the process data items included in the set of process data items transmitted by the mobile computing device 14.
[0191] At block 380, the mobile computing device 14 receives from the mobile server 178 the set of data values associated with the set of process data items. As described elsewhere herein, when the mobile server 178 updates the list as stored in the list database, the mobile server 178 updates the mobile computing device 14 with the set of data values associated with the set of process data items. In one embodiment, the mobile computing device 14 subscribes to a data stream of process values associated with process data items in the set of process data items such that a portion of the set of data values received at the mobile computing device are received as part of the data stream of process values.
[0192] In one scenario, the selection of the set of process data items received at block 376 includes an indication that a user has deselected a particular process data item included in the existing selection set. To this end, the user may have unchecked a box in the filter interface 386 and / or selected to remove a control corresponding to the process data item displayed in the selection interface 382. Thus, in response to the mobile computing device 14 sending the indication of deselection to the mobile server 178 at block 378, the mobile server 178 unsubscribes the mobile computing device 14 from the data stream associated with the deselected process data item. As a result, the set of data values received from the mobile server 178 at block 380 does not include the data value associated with the deselected process data item.
[0193] In one aspect, the selection interface includes a comment interface that allows a user of the mobile computing device 14 to enter comments corresponding to the list and / or the process data items contained in the list. For example, the comment interface may allow a user to include a comment at the list level where the user believes the boiler is overheating, followed by a comment at the process data item level for the process data item corresponding to the boiler temperature indicating the particular reason the user believes the boiler is overheating. In this example, the list level comment was entered into the comment interface while viewing the list view, and the process data item level comment was entered into the comment interface while viewing the process data item. It should be appreciated that because these comments are associated with the list, the comments are viewable to any user viewing the list (assuming the user has appropriate access rights as described below).
[0194] According to an aspect, a list corresponds to a set of access rights that control the ability of other users to interact with the list. For example, the access rights may include the right to view the list, the right to modify the list, the right to share the list, the right to view comments, etc. These access rights may vary between various users and between users. Thus, in addition to configuring the process data items included in the list, the selection interface may also include a user access interface for configuring access to the list.
[0195] 3S illustrates an example user access configuration method 388 for configuring access rights to a list via an application, such as application 16, operating a mobile computing device, such as mobile computing device 14. User access configuration 388 may be implemented on multiple mobile computing devices in communication with mobile server 178. List configuration method 368 may also be implemented in conjunction with one or more of the other methods described herein. stomach.
[0196] The method 388 begins at block 390, where the mobile computing device 14 receives a set of users and corresponding access rights from the mobile server 178. The corresponding access rights indicate a type of access to the listing for the corresponding user. Thus, the set of users may include a set of users having each type of access, for example, a set of users having view access rights and / or a set of users having modify access rights. To receive the set of users and corresponding access rights, the mobile computing device 14 Computing device 14 may transmit an index of the list, for example, an index transmitted to receive an existing selection set as described with respect to method 368.
[0197] At block 392, the mobile computing device 14 presents a user access interface on the GUI 18 of the mobile computing device 14. The user access interface may be presented in response to a user selecting a user control shown in interface 382 or 386. With concurrent reference to FIG. 3T, interface 398 is an exemplary user access interface displaying a set of users. As shown in interface 398, the user access interface allows a user of the mobile computing device 14 to configure access rights for individual users (e.g., Bob or Jenny) or groups of individuals (e.g., DHT Operator or Environmental). Although interface 398 shows only functional classification groups, the user access interface may also include groups arranged by location of users within the group, shifts worked by users within the group, and / or roles of users within the group.
[0198] On the illustrated interface 398, each user or group of users corresponds to a checkbox. Any selection of the user (including an existing selection) may include a check mark indicating that the list provides access rights to the user. Thus, the user may indicate an access right selection by checking a checkbox corresponding to a particular user or group of users. Although not illustrated in the interface 398, the user access interface may enable the user to set access rights separately for different types of access. To this end, the user access interface may include an access right selection interface that allows the user to switch between various configured access rights. In one scenario, a particular user has access rights to view the list but not to modify the list. In one aspect, the user access interface includes a search interface configured to filter the set of users based on a search term.
[0199] At block 396, the mobile computing device 14 receives a selection of the set of user access rights. More specifically, the mobile computing device 14 receives the set of user access rights selections made by the user during interaction with the user access interface.
[0200] In block 396, the mobile computing device 14 transmits the set of user access rights to the mobile server 178. In response, the mobile server 178 updates the record corresponding to the list in the list database according to the set of user access rights. If the set of user access rights thus includes new access rights for a particular user, the mobile server 178 transmits a set of data values associated with the set of process data items included in the list to the mobile computing device of the particular user. Additionally or alternatively, the mobile server 178 may transmit a notification to the mobile computing device of the particular user to inform the user of the new access rights. In one embodiment, the application 16 allows the user to send a notification from the mobile computing device 14, for example, via an SMS message or a messaging service supported by the application 16. In one aspect, the user access interface includes an interface for receiving a note (text and / or voice recording) for inclusion in the notification. As a result, regardless of how the notification is sent to the mobile computing device of the particular user, the notification includes the note.
[0201] Minor variations to the above configuration methods and displays may be necessary or desirable to configure the mobile device 14 to display the batch data, including faults and prompts, to a remote user. A method 700 for configuring a list of batch data via an application, such as application 16, is shown in FIG. 4K. Method 700 may be implemented on multiple mobile computing devices in communication with a mobile server 178. Method 700 may also be implemented in conjunction with one or more of the other methods described herein.
[0202] 4K-4P, in the method 700, a user enables provision of batch data to the mobile server 178 (block 702). With reference to FIG. 4L, enabling provision of batch data to the mobile server 178 may include selecting batch executive data as among the various types of data that the mobile server 178 is configured to access, as shown in FIG. 4L illustrates a computer interface 522 that allows a user to enable various types of process data for inclusion in the data provided to the mobile server 178. Specifically, the interface 522 includes a checkbox control 524 for enabling batch data.
[0203] The method 700 also includes receiving a selection of a batch executive source of batch data (block 704). When the user enables provision of batch data to the mobile server 178 (e.g., by selecting control 524), the interface prompts the user for one or more sources of batch data to include. Typically, the batch data will be sourced from a batch executive, so the user will enter a path to the location of that batch executive into an associated control (not shown). In an embodiment, the user may wish to include batch data from multiple batch executives. In such a case, the interface may include an option to add multiple batch executives to serve as data sources for the mobile server 178. Alternatively, a source of batch data may be configured for each configured batch list, as described below.
[0204] In response to enabling batch data provision to the mobile server 178, the user may select to configure a list of batch data items, such that the system may receive an indication that the user is doing so (block 706). Receiving the indication may include receiving a selection to create a new list, and specifically may include receiving a selection to create a new list of batch data. The interface 522 may then access a hierarchical list of available batch data, including batches, recipes, unit procedures, operations, phases, equipment, parameters, alarms, faults, prompts, and any other information that may be part of the batch executive (block 708), and may present the user with a selection interface that enables the user to configure the list of batch data (block 710).
[0205] One exemplary selection interface is shown in Figures 4M-4P. In the properties portion 530 (see Figure 4M) of the selection interface, the user may enter a name for the list of batch data in a first field 532 and, if desired, a description of the batch data included in the list in field 534. In the filters portion 540 (see Figure 4N) of the selection interface, the user may configure exactly which data should be included in the batch list. In doing so, the user may first select a batch executive, for example, using a control 542 (e.g., a pull-down list, a field in which the path to the batch executive is entered, etc.). Selection of a batch executive or provision of a path to a batch executive is provided in the selection interface in this example, but as noted above, other implementations may include the selection of a batch executive and the provision of a path to the batch executive. It should be understood that in some embodiments, the configuration may be provided elsewhere in the structure.
[0206] Once the batch executive path is configured, the user may provide filter criteria according to which data from the selected batch executive is selected for inclusion in the batch list. In an embodiment, the batch data available from the selected batch executive may be filtered according to criteria: an entry in the batch ID field 544 (to select batch data associated with a specific batch ID); an entry in the recipe field 546 (to select batch data associated with a specific recipe); an entry in the formula field 548 (to select batch data associated with a specific formula); an entry in the status field 550 (to select batch data having a specific status); an entry in the area field 552 (to select batch data associated with an area of the process plant); an entry in the equipment field 554 (to select batch data related to a specific equipment); an entry in the unit field 556 (to select batch data associated with a specific unit); an entry in the phase field 558 (to select batch data associated with a specific phase); and / or an entry in the fault field 560 (to select batch data associated with a specific fault type). Of course, a user may enter criteria into any one or more of fields 542-560 to effect selection of the particular batch data to be provided in the batch list. By way of example and not limitation, a user may enter a recipe into field 546, a phase into field 558, and leave all remaining fields (except batch executive field 542) blank (or enter an asterisk (*) to indicate "all data") to select batch data associated with a particular phase of a particular recipe, regardless of the batch, area, unit, etc. in which that recipe phase is being executed.
[0207] A user may also use the parameters portion 570 of the selection interface (see FIG. 4O) to add various parameters that should be viewable on the mobile device as data for a particular batch step according to the filter criteria. The parameter filtering interface shown in FIG. 4O may use various combinations of parameters to achieve the exact parameter groupings the user desires to see, similar to the filtering described with respect to FIG. 4N. For example, by entering values into the recipe field 572 and the module parameters field 576, but not into the unit field 574, a user may specify to receive data regarding a particular module parameter associated with a particular recipe, regardless of the unit on which the recipe is running.
[0208] Finally, the user may use the user selection portion 580 of the selection interface (see FIG. 4P) to configure which users and / or groups will receive prompts associated with the selected batch data, and, if a delay is implemented, how long to wait for the prompt to be recognized before sending notification of the prompt to the selected users. In FIG. 4P, for example, Yu Using user selection control 582, user Nick is selected to receive prompts related to the selected batch data. However, control 584 specifies that Nick should only receive notification of any given prompt if the prompt remains unacknowledged after five minutes.
[0209] In any event, once the interface receives a selection of batch data items from the user (block 712), the selected set of process data items is sent to the mobile server 178 (block 714), and the mobile server 178 receives a set of data values associated with the set of batch data items (block 716).
[0210] The following list of aspects reflects the various embodiments expressly contemplated by the present invention. Those of ordinary skill in the art will recognize that the following aspects are not intended to limit the embodiments disclosed herein. It will be readily understood that the above disclosure is not exhaustive of all of the embodiments that may be envisioned, but rather is exemplary in nature.
[0211] 1. A method for providing batch process data from a process control system of a process plant to a remote computing device, the method comprising: receiving at a first computing device a request to create a list of batch data to be provided to the remote computing device; presenting a selection interface to a user to facilitate selection of the batch data to be provided to the remote computing device; receiving at the first computing device via the selection interface a selection of a batch executive from which to provide the batch process data, the batch executive operating on a controller within the process plant; receiving at the first computing device via the selection interface one or more filter criteria; applying at the first computing device the filter criteria to data available from the batch executive to determine a set of data to be included in the list of batch data to be provided to the remote computing device; and transmitting to a mobile server an indication of the set of data associated with the list of batch data to be provided to the mobile device.
[0212] 2. The method of embodiment 1, wherein the filter criteria is selected from the group including batch ID, recipe, formula, status, area, facility, equipment, phase, and fault.
[0213] 3. The method of aspect 1, further comprising: applying filter criteria to data available from the batch executive to determine a set of data resulting in a set of data for which prompts and / or faults may be generated; and receiving one or more user selections to receive notification of the prompts and / or faults.
[0214] 4. The method of aspect 3, further comprising receiving a selection of a delay time, the delay time specifying the time the prompt should remain active before a notification is sent to the selected one or more users.
[0215] 5. A tangible, non-transitory computer readable medium storing machine readable instructions optimized for a microprocessor on a mobile computing device which, when executed by the microprocessor, causes the microprocessor to: display a graphical user interface (GUI); receive via the GUI a selection of one or more items for viewing, each of the one or more items associated with a batch process running within a process control system; transmit the selection of the one or more items to a mobile server via either the Internet or a cellular data connection; receive from the mobile server via either the Internet or a cellular data connection a plurality of real-time values corresponding to the selected one or more items; and display the plurality of real-time values on the GUI.
[0216] 6. The tangible, non-transitory computer-readable medium of aspect 5, wherein displaying the plurality of real-time values on the GUI includes displaying one or more batches being executed by the batch executive.
[0217] 7. The tangible, non-transitory computer-readable medium of aspect 5 or aspect 6, wherein displaying a plurality of real-time values on a GUI includes displaying status data for a plurality of batches.
[0218] 8. Aspect 7, wherein the status data includes an elapsed execution time for each of the plurality of batches. 2. A tangible, non-transitory computer readable medium as described above.
[0219] 9. The tangible, non-transitory computer-readable medium of aspect 7 or aspect 8, further comprising, for each of a plurality of batches in which a prompt or fault exists, displaying an indication that a prompt and / or fault exists.
[0220] 10. The tangible, non-transitory computer-readable medium of any one of aspects 7-9, further comprising, for each of the plurality of batches, displaying a batch recipe associated with the batch.
[0221] 11. The tangible, non-transitory computer-readable medium of any one of aspects 6-10, further comprising providing a control on the GUI to switch the display between displaying a plurality of batches, displaying a list of devices associated with the plurality of batches, and displaying a list of active prompts associated with the plurality of batches.
[0222] 12. The tangible, non-transitory computer-readable medium of any one of aspects 5-11, wherein displaying the plurality of real-time values on the GUI includes displaying one or more batches being executed by the batch executive, and further includes receiving a selection of one of the one or more batches, and, for the selected one of the batches, displaying a list of one or more unit procedures associated with the selected one of the batches.
[0223] 13. The tangible, non-transitory computer-readable medium of aspect 12, further comprising: receiving a selection of one of the one or more unit procedures; and, for the selected one of the unit procedures, displaying a list of one or more operations associated with the selected one of the unit procedures.
[0224] 14. The tangible, non-transitory computer-readable medium of aspect 13, further comprising: receiving a selection of one of the one or more operations; and, for the selected one of the operations, displaying a list of one or more phases associated with the selected one of the operations.
[0225] 15. The tangible, non-transitory computer-readable medium of aspect 14, further comprising receiving a selection of one of the one or more phases, and displaying phase details for the selected one of the phases, including at least a status of the phase, parameters of the phase, and / or prompts and / or obstacles associated with the phase.
[0226] 16. The tangible, non-transitory computer-readable medium of any one of aspects 5-15, further comprising: displaying a prompt associated with a batch process running within the process control system; and displaying a control to facilitate recognition of the displayed prompt by a user of the mobile device.
[0227] 17. The tangible, non-transitory computer-readable medium of any one of aspects 5 to 16, wherein displaying a plurality of real-time values on a GUI includes, for status data related to a batch, displaying a time when the status became active.
[0228] 18. The tangible, non-transitory computer-readable medium of any one of aspects 5-17, wherein displaying the plurality of real-time values on the GUI includes displaying details of the operation, the details of the operation including a device on which the operation is active.
[0229] 19. The tangible, non-transitory computer-readable medium of any one of aspects 5-18, wherein displaying the plurality of real-time values on the GUI includes displaying details of a unit procedure, the details of the unit procedure including an apparatus for which an operation is active.
[0230] 20. The tangible, non-transitory computer-readable medium of aspect 11, wherein when a control is selected to change the display to show a list of instruments associated with multiple batches, the display further indicates, for each instrument, how many phases are active on the instrument.
[0231] 21. The tangible, non-transitory computer-readable medium of aspect 11, wherein when a control is selected to cause the display to change to display a list of prompts associated with multiple batches, the display further indicates, for each prompt, the text of the prompt and the time the prompt is active.
Claims
1. 1. A method for securely providing real-time batch process data from a process control system of a process plant to a remote computing device, comprising: receiving, at a first computing device from a remote computing device, a request to create a list of real-time batch data to be provided to the remote computing device, the first computing device being a workstation included in the process control system; presenting a selection interface to a user to facilitate selection of real-time batch data to be provided to the remote computing device; receiving at the first computing device via the selection interface from the remote computing device a selection of a batch executive from which to provide the real-time batch process data, the batch executive running on a controller within the process plant; receiving one or more filter criteria at the first computing device via the selection interface from the remote computing device; applying, at the first computing device, the filter criteria to real-time data available from the batch executive to determine a set of real-time data to be included in the list of real-time batch data to be provided to the remote computing device; transmitting from the first computing device to a mobile server an indication of the set of real-time data associated with the list of real-time batch data provided to the remote computing device; transmitting, in response to a polling request transmitted from the data server to the mobile server, a list of the real-time batch data to be provided to the remote computing device from the mobile server to the data server; receiving, from the data server, real-time batch data associated with at least the list of real-time batch data to be provided to the remote computing device; transmitting from the mobile server to the remote computing device the real-time batch data selected for transmission to the remote computing device; A method comprising:
2. The method of claim 1 , wherein the filter criteria is selected from the group including batch ID, recipe, formula, status, area, facility, equipment, phase, and fault.
3. applying the filter criteria to the real-time data available to the batch executive to determine the set of data results in a set of data from which prompts and / or faults may be generated; The method of claim 1 or 2, further comprising receiving one or more user selections to receive notification of the prompt and / or fault.
4. 4. The method of claim 1, further comprising receiving a selection of a delay time, the delay time specifying a time a prompt should remain active before a notification is sent to the selected one or more users.
5. A tangible, non-transitory computer readable medium storing machine readable instructions optimized for a microprocessor on a mobile computing device, the instructions, when executed by the microprocessor, Displaying a graphical user interface (GUI); receiving, via the GUI, a selection of one or more items for viewing, each of the one or more items relating to a batch process running within a process control system, the selection of the one or more items being selected from all real-time data available at an operator workstation connected to a process control network; transmitting the selection of the one or more items to a mobile server over a second network that is securely separated from the process control network and includes either the Internet or a cellular data connection; receiving from the mobile server via the second network a plurality of real-time values corresponding to the selected one or more items; and displaying the plurality of real-time values on the GUI, providing a control on the GUI to switch the display between a display of a plurality of batches, a display of a list of equipment associated with the plurality of batches, and a display of a list of active prompts associated with the plurality of batches.
6. 6. The tangible, non-transitory computer readable medium of claim 5, wherein displaying the plurality of real-time values on the GUI comprises displaying one or more batches being executed by a batch executive.
7. The tangible, non-transitory computer readable medium of claim 5 or 6, wherein displaying the plurality of real-time values on the GUI includes displaying status data for a plurality of batches.
8. The tangible, non-transitory computer-readable medium of claim 7 , wherein the status data comprises an elapsed execution time for each of the plurality of batches.
9. 9. The tangible, non-transitory computer readable medium of claim 7 or 8, further comprising, for each of the plurality of batches for which a prompt or fault exists, displaying an indication that a prompt and / or fault exists.
10. The tangible, non-transitory computer readable medium of claim 5 , further comprising, for each of the plurality of batches, displaying a batch recipe associated with the batch.
11. displaying the plurality of real-time values on the GUI includes displaying one or more batches being executed by a batch executive; receiving a selection of one of the one or more batches; and displaying, for the selected one of the batches, a list of one or more unit procedures associated with the selected one of the batches.
12. receiving a selection of one of the one or more unit procedures; and displaying, for the selected one of the unit procedures, a list of one or more operations associated with the selected one of the unit procedures.
13. receiving a selection of one of the one or more operations; 13. The tangible, non-transitory computer-readable medium of claim 12, further comprising: for the selected one of the operations, displaying a list of one or more phases associated with the selected one of the operations.
14. receiving a selection of one of the one or more phases; 14. The tangible, non-transitory computer-readable medium of claim 13, further comprising: for the selected one of the phases, displaying phase details including at least a status of the phase, parameters of the phase, and / or prompts and / or obstacles associated with the phase.
15. displaying a prompt associated with a batch process running within the process control system; and displaying a control to facilitate recognition of the displayed prompt by a user of the mobile computing device.
16. 16. The tangible, non-transitory computer-readable medium of claim 5, wherein displaying the plurality of real-time values on the GUI includes, for status data related to a batch, displaying a time when the status became active.
17. 17. The tangible, non-transitory computer-readable medium of claim 5, wherein displaying the plurality of real-time values on the GUI includes displaying details of an operation, the details of the operation including a device on which the operation is active.
18. 18. The tangible, non-transitory computer readable medium of claim 5, wherein displaying the plurality of real-time values on the GUI includes displaying details of a unit procedure, the details of the unit procedure including an apparatus for which an operation is active.
19. 19. The tangible, non-transitory computer-readable medium of any one of claims 5 to 18, wherein when a control is selected to change the display to display a list of equipment associated with the plurality of batches, the display further indicates, for each equipment, how many phases are active on the equipment.
20. 20. The tangible, non-transitory computer-readable medium of claim 5, wherein when a control is selected to change the display to display a list of prompts associated with the plurality of batches, the display further indicates, for each prompt, the text of the prompt and the time the prompt is active.
Citation Information
Patent Citations
Method and system for generating batch process campaign, method and system for performing batch process campaign, method and system for editing batch process campaign, and system for managing batch process campaign
JP2002149214A
Data transmission method for control system and its program
JP2003150240A
Plant monitor / display device and program
JP2005235131A
Plant monitoring information display system and plant monitoring information generation device used for the same, portable terminal, plant monitoring information display method, and plant monitoring information display program
JP2011164958A
Nuclear power plant monitoring control system
JP2013229691A