The subject matter disclosed herein relates generally to industrial automation systems, and, more particularly, to a dynamic search engine capable of indexing and searching plant-wide industrial data across a range of different data source platforms and delivering search results using a layered map presentation.
The following presents a simplified summary in order to provide a basic understanding of some aspects described herein. This summary is not an extensive overview nor is intended to identify key/critical elements or to delineate the scope of the various aspects described herein. Its sole purpose is to present some concepts in a simplified form as a prelude to the more detailed description that is presented later.
In one or more embodiments, a system for searching industrial data is provided, comprising a search component configured to perform a search of a federated data model for a specified data item and to generate a set of search results identifying locations of the data item and correlated data items within an industrial environment, wherein the federated data model records respective locations of available data items distributed across multiple data sources of the industrial environment; a presentation component configured to format the set of search results as a layered map presentation that displays the set of search results as graphical representations on multiple presentation layers corresponding to different views of the set of search results; and a device interface component configured to send the layered map presentation to a client device.
Also, one or more embodiments provide a method for searching and displaying multi-platform industrial data, comprising receiving, by a system comprising a processor, query information specifying a data item; in response to the receiving, identifying, by the system, locations of the data item and other data items related to the data item within an industrial environment based on a search of a federated data model that indexes available data items located on multiple data sources of the industrial environment; generating, by the system, search result data based on the identifying; formatting, by the system, the search result data as a layered map presentation that graphically displays the search result data on multiple presentation layers corresponding to different views of the search result data; and sending, by the system, the layered map presentation to a client device.
Also, according to one or more embodiments, a non-transitory computer-readable medium is provided having stored thereon instructions that, in response to execution, cause a system to perform operations, the operations comprising, in response to receiving query information from a client device specifying a data item, identifying locations of the data item based on a search of a federated data model that indexes discovered instances of available data items located on multiple data sources of an industrial environment; generating a set of search results based on the identifying; formatting the set of search results as a layered map presentation that renders the set of search results as graphical representations on multiple presentation layers depicting respective different views of the search results; and sending the layered map presentation to the client device.
To the accomplishment of the foregoing and related ends, certain illustrative aspects are described herein in connection with the following description and the annexed drawings. These aspects are indicative of various ways which can be practiced, all of which are intended to be covered herein. Other advantages and novel features may become apparent from the following detailed description when considered in conjunction with the drawings.
The subject disclosure is now described with reference to the drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding thereof. It may be evident, however, that the subject disclosure can be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to facilitate a description thereof.
As used in this application, the terms “component,” “system,” “platform,” “layer,” “controller,” “terminal,” “station,” “node,” “interface” are intended to refer to a computer-related entity or an entity related to, or that is part of, an operational apparatus with one or more specific functionalities, wherein such entities can be either hardware, a combination of hardware and software, software, or software in execution. For example, a component can be, but is not limited to being, a process running on a processor, a processor, a hard disk drive, multiple storage drives (of optical or magnetic storage medium) including affixed (e.g., screwed or bolted) or removable affixed solid-state storage drives; an object; an executable; a thread of execution; a computer-executable program, and/or a computer. By way of illustration, both an application running on a server and the server can be a component. One or more components can reside within a process and/or thread of execution, and a component can be localized on one computer and/or distributed between two or more computers. Also, components as described herein can execute from various computer readable storage media having various data structures stored thereon. The components may communicate via local and/or remote processes such as in accordance with a signal having one or more data packets (e.g., data from one component interacting with another component in a local system, distributed system, and/or across a network such as the Internet with other systems via the signal). As another example, a component can be an apparatus with specific functionality provided by mechanical parts operated by electric or electronic circuitry which is operated by a software or a firmware application executed by a processor, wherein the processor can be internal or external to the apparatus and executes at least a part of the software or firmware application. As yet another example, a component can be an apparatus that provides specific functionality through electronic components without mechanical parts, the electronic components can include a processor therein to execute software or firmware that provides at least in part the functionality of the electronic components. As further yet another example, interface(s) can include input/output (I/O) components as well as associated processor, application, or Application Programming Interface (API) components. While the foregoing examples are directed to aspects of a component, the exemplified aspects or features also apply to a system, platform, interface, layer, controller, terminal, and the like.
As used herein, the terms “to infer” and “inference” refer generally to the process of reasoning about or inferring states of the system, environment, and/or user from a set of observations as captured via events and/or data. Inference can be employed to identify a specific context or action, or can generate a probability distribution over states, for example. The inference can be probabilistic—that is, the computation of a probability distribution over states of interest based on a consideration of data and events. Inference can also refer to techniques employed for composing higher-level events from a set of events and/or data. Such inference results in the construction of new events or actions from a set of observed events and/or stored event data, whether or not the events are correlated in close temporal proximity, and whether the events and data come from one or several event and data sources.
In addition, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or.” That is, unless specified otherwise, or clear from the context, the phrase “X employs A or B” is intended to mean any of the natural inclusive permutations. That is, the phrase “X employs A or B” is satisfied by any of the following instances: X employs A; X employs B; or X employs both A and B. In addition, the articles “a” and “an” as used in this application and the appended claims should generally be construed to mean “one or more” unless specified otherwise or clear from the context to be directed to a singular form.
Furthermore, the term “set” as employed herein excludes the empty set; e.g., the set with no elements therein. Thus, a “set” in the subject disclosure includes one or more elements or entities. As an illustration, a set of controllers includes one or more controllers; a set of data resources includes one or more data resources; etc. Likewise, the term “group” as utilized herein refers to a collection of one or more entities; e.g., a group of nodes refers to one or more nodes.
Various aspects or features will be presented in terms of systems that may include a number of devices, components, modules, and the like. It is to be understood and appreciated that the various systems may include additional devices, components, modules, etc. and/or may not include all of the devices, components, modules etc. discussed in connection with the figures. A combination of these approaches also can be used.
Industrial controllers and their associated I/O devices are central to the operation of modern automation systems. These controllers interact with field devices on the plant floor to control automated processes relating to such objectives as product manufacture, material handling, batch processing, supervisory control, and other such applications. Industrial controllers store and execute user-defined control programs to effect decision-making in connection with the controlled process. Such programs can include, but are not limited to, ladder logic, sequential function charts, function block diagrams, structured text, or other such platforms.
Industrial devices 120 may include both input devices that provide data relating to the controlled industrial systems to the industrial controllers 118, and output devices that respond to control signals generated by the industrial controllers 118 to control aspects of the industrial systems. Example input devices can include telemetry devices (e.g., temperature sensors, flow meters, level sensors, pressure sensors, etc.), manual operator control devices (e.g., push buttons, selector switches, etc.), safety monitoring devices (e.g., safety mats, safety pull cords, light curtains, etc.), and other such devices. Output devices may include motor drives, pneumatic actuators, signaling devices, robot control inputs, valves, and the like.
Industrial controllers 118 may communicatively interface with industrial devices 120 over hardwired or networked connections. For example, industrial controllers 118 can be equipped with native hardwired inputs and outputs that communicate with the industrial devices 120 to effect control of the devices. The native controller I/O can include digital I/O that transmits and receives discrete voltage signals to and from the field devices, or analog I/O that transmits and receives analog voltage or current signals to and from the devices. The controller I/O can communicate with a controller's processor over a backplane such that the digital and analog signals can be read into and controlled by the control programs. Industrial controllers 118 can also communicate with industrial devices 120 over a network using, for example, a communication module or an integrated networking port. Exemplary networks can include the Internet, intranets, Ethernet, DeviceNet, ControlNet, Data Highway and Data Highway Plus (DH/DH+), Remote I/O, Fieldbus, Modbus, Profibus, wireless networks, serial protocols, and the like. The industrial controllers 118 can also store persisted data values that can be referenced by the control program and used for control decisions, including but not limited to measured or calculated values representing operational states of a controlled machine or process (e.g., tank levels, positions, alarms, etc.) or captured time series data that is collected during operation of the automation system (e.g., status information for multiple points in time, diagnostic occurrences, etc.).
Industrial automation systems often include one or more human-machine interfaces (HMIs) 114 that allow plant personnel to view telemetry and status data associated with the automation systems, and to control some aspects of system operation. HMIs 114 may communicate with one or more of the industrial controllers 118 over a plant network 116, and exchange data with the industrial controllers to facilitate visualization of information relating to the controlled industrial processes on one or more pre-developed operator interface screens. HMIs 114 can also be configured to allow operators to submit data to specified data tags or memory addresses of the industrial controllers 118, thereby providing a means for operators to issue commands to the controlled systems (e.g., cycle start commands, device actuation commands, etc.), to modify setpoint values, etc. HMIs 114 can generate one or more display screens through which the operator interacts with the industrial controllers 118, and thereby with the controlled processes and/or systems. Example display screens can visualize present states of industrial systems or their associated devices using graphical representations of the processes that display metered or calculated values, employ color or position animations based on state, render alarm notifications, or employ other such techniques for presenting relevant data to the operator. Data presented in this manner is read from industrial controllers 118 by HMIs 114 and presented on one or more of the display screens according to display formats chosen by the HMI developer.
Industrial controllers 118 and HMIs 114 comprise two sources of information relating to the industrial processes and systems being controlled within the plant environment. Since HMIs 114 leverage data from industrial controllers 118 to facilitate visualization of the controlled systems, both the industrial controllers 118 and the HMIs 114 may contain information relating a common aspect of the industrial systems. For example, the control programming (e.g., ladder logic, sequential function chart, etc.) for controlling operation of a particular tank used in a batch process may execute on one of the industrial controllers 118, while the operator interface screens for viewing a graphical representation of the tank's current status and relevant setpoints (e.g., level setpoints, maximum flow setpoints, etc.) may be viewed on one of the HMIs 114. However, since these two sources of information are segregated cross two different data sources and platforms, operators and maintenance personnel are typically only able to view one source of information at a time. That is, operators may choose to view the operator interface screens for the tank of interest on the relevant HMI terminal (see operator 122), or may connect a personal computing device (e.g., a laptop computer) to the industrial controller to view the control programming used to control the tank's operation (see operator 124). In most cases, the operator must be in physical proximity to either the HMI terminal or the industrial controller in order to view the information on that particular data source. Consequently, during troubleshooting of maintenance issues involving the tank, personnel must travel to the source of the information (e.g., the HMI terminal or industrial controller, which are often located near the physical machine being controlled) and locally search each of the HMI and the industrial controller individually.
Some industrial environments may also include other sources of potentially relevant information relating to specific aspects of the controlled industrial systems. These may include, for example, a data historian 110 that aggregates and stores production information collected from the industrial controllers 118 or other data sources, or a device documentation store 104 containing electronic documentation for the various industrial devices making up the controlled industrial systems. Other information sources may include an inventory tracking system 102, a work order management system 106, an asset management system 126 containing an archive of configuration and application projects for various devices and components of the industrial control systems throughout the plant, repositories for machine or process drawings and documentation, vendor product documentation storage, vendor knowledgebases, internal knowledgebases, or other such systems, some or all of which may reside on an office network 108 of the industrial environment. These diverse information sources are spread across many locations and systems both within the plant environment and externally (e.g., on the Internet). When diagnosing problems, maintenance personnel are often required to search several of these sources of information individually, using several different software packages specific to the respective data sources being searched. Moreover, searching for information pertaining to a particular device or machine often requires an extensive knowledge of the overall industrial system in order to locate the data source (e.g., industrial controllers, HMIs, etc.), to be searched, as well as to identify the relevant operator screens and control program routines. Individually searching each of these data sources in connection with solving a system downtime issue or other problem can delay correction of maintenance issues, resulting in lost revenue and scheduling problems.
To address these and other issues, one or more embodiments of the present disclosure provide a multi-platform industrial search system that allows a user to search multiple disparate industrial data platforms for information of interest. The search system is built on a search platform that unifies plant-wide control system information from multiple diverse sources under a common namespace, or federated data model. The system can present search results using a layered map presentation rather than (or in addition to) a linear list of search results. An example layered map for presentation of search results may include one or more of a physical layer that graphically depicts a physical layout of industrial assets (e.g., machines, devices, etc.) relevant to the search query, a network layer illustrating the communication paths between the assets and associated network infrastructure devices, an alarm map depicting relevant alarm information generated by the various industrial assets within the plant environment, a controller layer that illustrates the controllers that supervise the machines and devices comprising the area depicted in the physical layer, one or more operational data or I/O layers illustrating statuses or telemetry information associated with respective machines or devices, or other such layers.
In some embodiments, the layers may correspond to tiered hierarchical views of the industrial environment; e.g., an enterprise view at the highest level, down through a plant view, a workcell view, a machine view, a device view, and an I/O view. The search system can present search results (and other relevant data determined to be relevant to the search query) within each of these defined layers, allowing the user to navigate up or down through the layers to view different aspects of an element being searched (e.g., a machine, a device, an alarm, etc.). For example, a search for a particular tank may return a layer depicting a physical view of the tank (e.g., a graphical representation of the tank indicating its location within the plant), a layer depicting the I/O devices associated with the tank (e.g., sensors, meters, actuating devices, controlled valves, etc.), a layer depicting network connections between the tank and other system components, and/or other layers. In some embodiments, the search system can launch separate applications for displaying the control programming or HMI screens associated with selected elements presented on the layered map presentations.
Layers can be viewed individually, or superimposed on one another such that selected layers can be added or removed by the user as desired. In some embodiments, the search system itself may select the layers determined to be most relevant to the search result, based both on the content of the search query and relevant context information (e.g., a current alarm situation, a previous search history, a maintenance history, etc.). For example, if a user submits a search for a particular device or machine to a namespace the system may turn off one or more layers of the presentation determined to be irrelevant to the search context based on such factors as a current state of the device being searched (e.g., whether the device is in an alarm state), a maintenance issue known by the system to be active, or other contextual factors.
In an example scenario, client device 204 may submit a search request for a particular data tag (e.g., Tank1) to the federated data model 202. Based on the indexed plant-wide information recorded in the model, the industrial search system can locate all instances of the specified data tag across the disparate data sources and deliver a set of search results identifying all discovered instances categorized according to data platform. The search results can be presented across multiple graphical views or layers that are each specific to a particular category or scope. In some embodiments, the system can allow a user to scroll through the different layers in order to view the results at a desired level or granularity. In addition or alternatively, the layers can be selectively superimposed to yield a composite search result presentation that displays multiple views of the search results simultaneously. For example, the search system may present a physical view of the search results that graphically represents physical locations of machines or devices that relate to a particular data tag being searched, an alarm view that displays active or historical alarms relating to the machines or to the data tag, and an I/O view that depicts status information for I/O devices associated with the machines and devices. The system may present these views individually based on user selection, or simultaneously as a composite view that allows the user to add or remove layers as desired. In one or more embodiments, the system may also generate a list view that lists thumbnail representations for the various available views of the search results, where selection of a view from the list causes the system to navigate to the selected view.
Other search result layers can include, but are not limited to, a network layer that depicts network infrastructure devices and communication connections between the machines or devices, an alarm layer that displays a set of active or historical alarms relevant to the data tag being searched, a controller layer that graphically depicts industrial controllers relevant to the search query (e.g., controllers that contain instances of a requested data tag or related information) and the machines or devices controlled by the industrial controller, a maintenance history view that displays active maintenance orders or maintenance history information for relevant machines or devices, and other such views.
One or more embodiments of the multi-platform search system may also include dynamic search and notification features. With a plant's industrial data indexed in the federated search model, one or more dynamic search engines can be configured to access the model automatically in the background to quickly identify issues requiring attention. When a maintenance issue is detected, the system can collect information about the issue and send a notification and the collected information to one or more plant employees determined to be suited to address the maintenance issue based on a record of the employees' skills, locations relative to the source of the issue, and/or availability.
Multi-platform industrial search system 302 can include an indexing component 304, a search component 306, a monitoring component 308, a notification component 310, a device interface component 312, a presentation component 314, an application launching component 316, one or more processors 318, and memory 320. In various embodiments, one or more of the indexing component 304, search component 306, monitoring component 308, notification component 310, device interface component 312, presentation component 314, application launching component 316, the one or more processors 318, and memory 320 can be electrically and/or communicatively coupled to one another to perform one or more of the functions of the multi-platform industrial search system 302. In some embodiments, components 304, 306, 308, 310, 312, 314, and 316 can comprise software instructions stored on memory 320 and executed by processor(s) 318. Multi-platform industrial search system 302 may also interact with other hardware and/or software components not depicted in
Indexing component 304 can be configured to gather information about an industrial automation system and to generate a federated data model defining locations and sources of data items throughout the industrial system, as well as relationships between the data items. For example, some embodiments of indexing component 304 may be configured to deploy a crawler entity that traverses a plant network and discovers the data items and their interdependencies. The resulting indexing information generated by the crawler can be returned to the indexing component 304, which builds a searchable federated data model (e.g., federated data model 202) capable of identifying and reporting sources of specific data items or tags, as well as relevant contextual data relating to a specified data item.
Search component 306 can be configured to submit search queries to the federated data model and retrieve search results identifying locations of requested data items throughout the industrial system. In some embodiments, search component 306 may additionally be configured to perform searches of external sources (e.g., web-based searches), or to off-load supplemental searches to such external sources, in order to supplement local search results with external information relevant to the search query. Search component 306 can be configured to classify the search results according to the platform of the respective data sources on which the results were found (e.g., control logic, HMI, etc.), as well as the network and/or physical location (e.g., production area) in which the information is located. For search results corresponding to web content (e.g., vendor knowledgebase websites), the search component 306 can generate links that facilitate direct navigation to the web content.
Monitoring component 308 can be configured to monitor the indexed data items for defined trigger conditions, and to submit automated queries to the federated data model in response to detection of a trigger condition. The defined trigger conditions can correspond to conditions indicative of a performance or operational issue relating to the industrial system (e.g., a downtime condition, an abnormal condition, a non-optimal operation condition, etc.). Notification component 310 can be configured to send notifications to one or more selected recipients in response to detection of a trigger condition by monitoring component 308. The notification can include additional information about the performance issue corresponding to the trigger condition, where the additional information is retrieved from the federated data model based on the automated search query submitted by the monitoring component 308 in response to the trigger.
Device interface component 312 can be configured to exchange information between the multi-platform industrial search system 302 and a client device having authorization to access the system. For example, the device interface component can receive search queries from the client device for submission to the federated data model, as well as deliver search results and notifications to the client device.
Presentation component 314 can be configured to format the search results into one or more graphical layers for presentation on the user's client device. Application launching component 316 can be configured to remotely launch appropriate platform-specific applications on the client device (or another device such as a standalone maintenance workstation) in response to selection of a search result or application-specific tab on a layered search result interface. The one or more processors 318 can perform one or more of the functions described herein with reference to the systems and/or methods disclosed. Memory 320 can be a computer-readable storage medium storing computer-executable instructions and/or information for performing the functions described herein with reference to the systems and/or methods disclosed.
Multi-platform industrial search system 302—which also resides on network 412 in this scenario—discovers and indexes data items that are available in the disparate data sources 404-410 as well as on the external networks 414. The system also indexes relationships between the data items. This can include, for example, recording instances of the same data item residing in multiple data sources (e.g., recording that a data tag corresponding to a particular temperature measurement within one of the industrial controllers 404 corresponds to a data tag within one of the HMIs 406 for displaying the temperature measurement on a display screen), observing that values of certain data items are a function of other data items (e.g., an output coil associated with a first data tag in a ladder logic program is set based on a value of a second data tag used as an output condition for the rung), or other such relationships. In this way, the multi-platform industrial search system 302 automatically inventories a customer's industrial environment by discovering the industrial assets in use and their associated available data items.
Search system can also discover relevant data on data sources residing on the external networks 414, including but not limited to device or machine vendor documentation, relevant online knowledgebase articles, vendor product release information, etc. In one or more embodiments, the search system can off-load supplemental search operations to one or more external search engines by sending the search criteria to those external engines. The external search engines can then perform asynchronous searches of their respective data sources based on the submitted criteria, and return the results to the search system 302 for integration with the local search results. This distributed search mechanism can permit multiple web-based data sources to be included in the final results presented to the user.
The search system 302 records the indexed information (that is, the discovered plant-wide data items and their relationships) as a federated data model 202, which can be remotely accessed and searched by a client device 402 to locate desired data items. Client device 402 can be any mobile device (e.g., mobile phone, laptop computer, tablet computer, wearable computer, etc.) or fixed location computer (e.g., desktop computer, server, operator interface, etc.) capable of remotely accessing search system 302. In some embodiments, multi-platform industrial search system 302 may be implemented on a web server, allowing client device 402 to access the federated data model via an Internet connection. The search system 302 may also be implemented on a networked local server accessible by the client device 402 via a wireless network connection. In yet another scenario, the search system 302 may be implemented on a cloud platform, where the search system executes as a cloud-based service.
In an example scenario, client device 402 may submit a search query for a particular data item (e.g., a data tag name) to the search system 302, which initiates a search of the federated data model 202 to facilitate location of the specified data item. The search system 302 then returns search result information to the client device 402 identifying all discovered locations of the data item across the various data sources 404-410. The search system 302 can present the search result information as multiple categorized graphical views, either simultaneously as a layered map presentation or as a scrollable set of views that can be viewed individually. For example, the presentation may include a controller view that presents a graphical representation of the industrial controllers (e.g., programmable logic controllers (PLCs) or other types of controllers) that contain programming (e.g., ladder logic, sequential function chart, etc.) that references a desired data item being searched, as well as the machines and/or devices that interface with these controllers. The presentation may also include a physical view that graphically represents the machines that contain or are influenced—either directly or indirectly—by the data item, as well as the locations of those machines within the plant (e.g., the workcell or production area). The system can also, in response to selection of a particular controller on the controller view, display the controller programming running on that controller and automatically navigate to a portion of the controller logic in which the data item of interest is referenced. An alarm view can also be invoked from either the physical view or the controller view by selecting a controller or machine of interest, where the selection causes the system to display a list of active or historical alarms for the selected unit. In some embodiments, the system may filter the alarms such that only those alarms relevant to the data item being searched are rendered. These layers and navigational paths are only intended to be exemplary, and it is to be appreciated that other navigational structures for transitioning between views of a layered map presentation are within the scope of one or more embodiments of this disclosure.
Multi-platform industrial search system 302 includes an indexing component 304 that collects information about available data items distributed across a customer's industrial environment, and generates a federated data model 202 representing a searchable unified view of the discovered data. The indexing component 304 is configured to discover data items on multiple disparate platforms, including but not limited to industrial controllers 404, HMIs 406, databases 408, electronic documentation libraries, inventory tracking systems, work order management systems, etc. In some embodiments, indexing component 304 can discover available data items by deploying discovery agents on network 412. These agents can traverse network 412 and identify devices in use throughout the plant, as well as the data items or tags, applications, and configuration information associated with those devices. Since a given industrial environment typically comprises a heterogeneous collection of devices of different types and vendors, and the data made available by these devices may comprise many different data types (e.g., controller tags, HMI tags, alarms, notifications, events, etc.), indexing component 304 can manage and deploy device-specific or platform-specific agents configured to extract and analyze information from specific types of devices or data platforms (e.g., controllers, HMIs, etc.). Some device-specific agents can be configured to locate application project files stored on particular device types (e.g., configuration and/or program files on an industrial controller, screen configuration files on an HMI, etc.) or in asset configuration archive databases that are separate from the devices themselves, and extract relevant information about the devices based on analysis of data contained in these project files. By leveraging device-specific and platform-specific agents, the indexing component 304 can discover and index data conforming to many different formats and platforms.
In order to unify this disparate heterogeneous data under a common platform for collective searching, the device-specific agents can transform the collected data to a format understandable by the indexing component 304 (e.g., extensible markup language or other format), and the indexing component 304 can index this transformed data using a common indexing format compatible with the common search platform. The indexing component 304 then encodes this normalized representation of the discovered data in the federated data model 202. By unifying the distributed data under this unified search platform, the system can allow client devices to search the plant-wide data without knowledge of the rules or protocols for reading the various data source platforms (e.g., industrial controllers, HMIs, etc.)
In addition to discovery of devices and their associated data via crawling of the plant network, some embodiments of indexing component 304 can also be configured to receive uploaded configuration information from devices that support self-identification functionality. In such scenarios, industrial devices (e.g., motor drives, industrial controllers, HMI terminals, etc.) that support self-identification to the multi-platform industrial search system can be configured to auto-discover the search system when the device is deployed (e.g., when the device is placed on the plant network). For example, the device may be pre-configured with the identification of the industrial search system to which the device is to provide its identity and configuration information (e.g., a name associated with the search system, a machine identifier, a cloud or web address, etc.), or may be configured to perform a search of the plant network for compatible industrial search systems that may be present on the network. Upon discovery of the search system, the device can then package and send relevant information about the device and its available data to the indexing component 304, which integrates the reported data items in federated data model 202. The information delivered by the device can include, for example, an identity of the device, the device's type and revision, available data items or tags, known contextual information (e.g., the device's location within the plant environment), or other relevant information.
Indexing component 304 can also discover and record relationships—both explicit and inferred—between discovered data items. In some embodiments, the indexing component 304 may record these relationships by tagging discovered data items and building the search index based on these tags, such that related data items share common tags. In some scenarios, these tags may be explicitly defined by a system developer such that the indexing component determines which predefined tags should be applied to newly discovered data items. The indexing component 304 may also auto-generate tags for a given data item based on contextual information, including but not limited to descriptive comments associated with a controller tag, learned interdependencies between a newly discovered data item and a previously discovered data item (e.g., learn that Pump5 is associated with Tank1, and tag Pump5 as being associated with Tank1, or tag both Tank1 and Pump5 according to the larger system in which they operate), or other discovered contextual information. The indexing component 304 can associate similarly tagged data items in the federated data model 202 regardless of the platform in which they were discovered. For example, the indexing component 304 can associate common or related data items discovered, respectively, in an industrial controller, an HMI, and a data historian.
Using some or all of these techniques, the indexing component 304 can automatically build a model of the customer's industrial environment, including the disparate and multi-platform devices in use throughout the plant, their associated available data items, and relationships between these data items. This eliminates the need for plant personnel to have full knowledge of the industrial assets in use throughout the plant, since indexing component 304 can automatically inventory a given industrial environment and record discovered devices and data in federated data model 202.
Once created by the indexing component 304, federated data model 202 can be searched by monitoring component 308 and search component 306. Search component 306 is configured to search federated data model 202 in response to a search query 502 submitted by a client device 402. Client device 402 can exchange data with the multi-platform industrial search system 302 via device interface component 312, which may comprise a wired or wireless network interface, a near-field communication interface, or other such device interface suitable for the particular platform on which the search system is implemented. Client device 402 may be located on-premise and access the device interface component 312 via a local wired or wireless connection, or may access the device interface component 312 via an Internet connection. In some scenarios, the client device 402 may use cellular communication to bridge to the Internet, and thereby access the search system. In some embodiments, device interface component 312 may be configured to verify an authorization of the client device 402 to access the search system prior to allowing search queries to be submitted by the client device. The device interface component 312 may authenticate the client device or its owner using password verification, biometric identification, cross-referencing an identifier of the client device with a set of known authorized devices, or other such verification techniques. In some embodiments, the client device 402 may access the search system use a virtual private network connection, which can enable secure communication with the search system.
In some embodiments, the device interface component 312 may be configured to serve an interface display or dashboard to the client device 402 when the client device requests access to the search system 302. The interface display can include interface elements that allow the user of client device 402 to manually enter and submit a search query 502 to the search system 302. For example, the display may allow the user to enter a keyword, term, or phrase as a search criterion. Example search terms may include identifiers of specific devices or machines, names of production areas within the plant, product names or codes, employee names, or other such criteria. Submitted search criteria may encompass complete or partial names, and may include wildcard characters that can be translated by the search system as encompassing any character in a given position within the text string, thereby enabling the user to locate information even if they are not fully aware of the exact name. In addition to manually entered search criteria, some embodiments of the device interface component 312 can be configured to translate barcodes or Quick response (QR) codes affixed to devices or machines. For example, a user may scan or photograph a barcode or QR code attached to a device, machine, or product (e.g., a pin-stamped or laser-etched barcode affixed to a workpiece during the production process) using client device 402, wherein the barcode contains identification information about the associated component. The client device 402 can then submit identification information extracted from the barcode to the device interface component 312 as a search criterion. In yet another example, client device 402 may extract information about an industrial device or its associated process directly from the device via near field communication (NFC) and submit the extracted information to the device interface component 312. This extracted information can include, but is not limited to, a device identifier, device status information read from a status word maintained on the industrial device, alarm data extracted from an alarm register, production statistics stored on one or more data tags, or other such information. In another example scenario, a near-field (e.g., Bluetooth) beacon can be used to extract information for submission to the search system.
Upon receipt of search query 502, device interface component 312 routes the query to search component 306, which searches federated data mode 202 for content relevant to the search query. Search query 502 may comprise, for example a data tag name (e.g., Tank1), a device or machine attribute, a device vendor, a name of a particular area of the industrial environment (e.g., a workcell or production line), a product name or identifier, or other such search criteria. Search component 306 searches the federated data model 202 for the search criteria identified by the search query 502, identifies data items corresponding to the search criteria, and returns a set of search results 504 to the presentation component 314 for formatting prior to delivery to the client device 402. Since the search results 504 may correspond to data items found on multiple disparate platforms throughout the plant environment (e.g., industrial controllers, HMIs, device documentation repositories, etc.), the device interface component 312 can classify the results according to the platforms on which the results were found, location of the results within the plant environment (e.g., production area, workcell, etc.), or other classification criteria.
In some embodiments, search component 306 can customize the search of the federated data model 202 based on one or more defined search rules 510 defined by a system administrator. These rules may define, for example, role-specific search parameters that dictate what types of data may be provided to a given user, or which layers of a layered map presentation may be presented to the user, based on the user's role (e.g., operator, plant engineer, plant manager, billing personnel, etc.).
In addition to processing search queries submitted by a user via a client device, some embodiments of the multi-platform industrial search system can also support automated dynamic searching. In such embodiments, multi-platform industrial search system 302 includes a monitoring component 308 configured to monitor one or more performance or operational metrics of an industrial system to identify issues requiring attention by an operator or maintenance expert. In response to detection of a performance or operational issue, the monitoring component 308 can perform an automated search of federated data model 202 to collect search results relevant to the detected issue. A notification component 310 can then deliver a notification of the detected issue together with the relevant search results to one or more client devices associated with selected plant personnel determined to be best suited to address the issue.
In an example embodiment, monitoring component 308 may monitor selected data items of industrial system 508 according to defined monitoring rules 506. Monitoring rules 506 can define, for example, which data tags of the various data platforms distributed across industrial system 508 are to be monitored, as well as criteria indicative of performance issues that, when determined to be true, will trigger an automated search and personnel notification. The monitoring rules 506 can also define which employees are to be notified in response to each type of detected performance issue. As an example criterion, a monitoring rule may define that, when a temperature value associated with data tag Tank3Temp exceeds a defined setpoint value, an automated search for Tank3Temp is to be performed on federated data model 202 is to be performed. The monitoring rules may also specify one or more crucial alarm tags that, when determined to be active, require an action to be taken by maintenance personnel. The rule may also define one or more other relevant data tags to be searched in order to provide additional context for the issues. The rule can also define one or more plant employees to whom the search results are to be sent in response to detection of the issue. The rule may specify the employees explicitly (e.g., be defining one or more user identities or user-specific client devices), or may specify a category of employee (e.g., a user role or area of expertise) such that specific plant personnel associated with the defined category can be identified and notified.
When the monitoring component 308 determines—based on monitoring of the defined data items—that a criterion indicative of a performance issue has been satisfied, the monitoring component generates a search query designed to collect information relevant to the detected performance or operational issue, as defined by the monitoring rules 506. This can include, for example, searching federated data model 202 for the one or more data tags or device attributes whose monitored values satisfied the defined criterion. The search may also include querying for related data items determined to be relevant to the detected performance or operational issue, including but not limited to other device statuses, telemetry values, or operator inputs that may have an effect on the data tag or device attribute being searched. These related data items may be explicitly defined by the monitoring rules for each defined performance issue, or may be dynamically identified based on the relationships between the data items defined in the federated data model 202. For example, when monitoring component 308 performs an automated search for Tank3Temp in response to detecting an excessive Tank 3 temperature, the system may locate a reference to this data tag on a rung of a controller logic program (a direct reference). The system can then identify other rungs and address within the program that affect the rung on which the Tank3Temp reference is found (indirect references). The monitoring component 308 may cycle through the indexed information recorded in the federated data model 202 multiple times in an iterative fashion until all such relationships determined to be relevant to the performance or operational issue are discovered.
When all relevant search results for a detected performance or operational issue have been collected, notification component 310 identifies one or more employees to be notified of the detected issue. The system may identify suitable recipients based on the monitoring rule definitions, as described above. In some embodiments, the system may narrow the list of suitable recipients further based on current context information, including but not limited to each potential recipient's current location or availability. For example, the search system 302 may determine each potential recipient's current location by tracking each user's respective client devices, and deliver notifications only to those users within a defined radius of the affected machine or device. The search system 302 may also interface with a separate availability tracking system that tracks each user's current availability based on work schedules, a current work activity reported by each user, or other such information. The search system can also access a personnel database to determine documented skills of each registered employee, including documented training or familiarity with a given piece of equipment relevant to the search, and select eligible recipients to be notified based on this information.
When all eligible recipients have been identified, the notification component 310 then delivers a notification of the detected issue to all client devices associated with the target recipients, together with the relevant search result links. In this way, the search system immediately alerts maintenance personnel when a system performance issue is detected, and provides relevant contextual information (layered map presentations, links to relevant HMI screens, sections of controller code, device documentation, etc.) that allows the maintenance personnel to immediately begin diagnosing and addressing the problem via their personal client device. Since the search system can launch HMI screens and control logic viewing applications on the user's client device, the system provides a means for maintenance personnel to remotely diagnose the maintenance issue via their client device without being physically present at the affected machine, device, or industrial system.
In general, relevant machines or stations to be included in the physical view can be determined by the search component 306 and/or the presentation component 314 based on the search criterion and relationships between the machines defined or inferred from the federated data model. In some embodiments, the search component 306 can also select which machines or units should be included in or omitted from the physical view based on additional contextual data that suggests that certain aspects of the industrial system relating to Tank1 should be given particular attention. For example, if an alarm or maintenance condition is currently active for a device or workstation having a relationship with Tank 1, the search system can include the affected device or workstation on the physical view along with Tank 1, and possibly omit other related elements in order to draw attention to this alarm condition.
Returning briefly to
The controller layer 706 can present a graphical depiction of the industrial controllers (e.g., PLCs or other type of industrial controllers) that interface with and make control decisions for the machines rendered in the physical layer, as well as the locations of these controllers within the plant or relative to the machines.
The I/O layer 708 can display I/O devices associated with each machine of the physical layer, as well as associated data.
As with previously described layers, the information regarding the I/O devices associated with each machine, as well as their locations relative to the machine, can be indexed in the federated data model 202 by indexing component 304 and leveraged by the presentation component 314 in order to accurately depict the I/O devices associated with each machine. In some embodiments in which live I/O data is continuously retrieved from the industrial controllers and indexed to the federated data model 202, the current status data used to populate the status boxes can also be retrieved from the federated data model 202 by the search component 306. Alternatively, the search system can link the user's client device to each relevant industrial controller and pass live data from the controller's data table to the client device in order to populate the status boxes, as described below in connection with
The network layer 710 can display a graphical depiction of network devices and connections making up a network segment for the rendered area of the plant facility.
Any of the layers described herein can support scaling or zooming functions that allow the user to expand or compress the views in order to see more or less detail. In some scenarios, if a particular device or machine is flagged as relevant to the search, fully expanded views may indicate a location of the flagged device or machine using a small generic indicator graphic. When the user zooms closer to the flagged device or machine, a more device- or machine-specific graphic indicator may become visible. In this way, the user can easily locate devices of interest even when zooming, scaling, or scrolling the views.
It is to be appreciated the layers depicted in
In addition to selecting search result information based on the content of the user's search request, some embodiments of the search component 306 or presentation component 314 may filter or prioritize search results presented in each layer based on additional context information. For example, the search component 306 may have awareness of a role associated with the user submitted the query. The system may determine the user's role based on login information submitted to the device interface component 312, identification of a client device from which the query was received, or by other determination means. When the search result information is retrieved by the search component 306, the presentation component 314 may customize the presentation of the search results based on the user role. For example, if search results are being presented to a machine operator, the presentation component 314 can present or make available only those layers that are relevant to machine operation (e.g., the controller and network layers will not be made available to the operator). Moreover, the presentation component 314 can filter alarms presented in the alarm layer so that only alarms relating to machine operation are presented. If the query is being submitted by an engineer or a maintenance person, other layers and alarms relevant to those roles will be made available (e.g., the controller and network views will be made available to those roles). In connection with these role-based presentation features, the search system may include tools that allow a system administrator to define (e.g., as part of the search rules 510) one or more user roles and to associate selected layers, data types, work areas, etc. with one or more of the defined user roles, and the presentation component 314 will enforce these role-specific presentation rules when delivering the layered search result presentations.
The presentation component 314 may also customize presentation of the search results and layers based on current machine or device statuses, such that system components that may require attention are made more prominent to the user. For example, upon retrieval of search results in response to a search query for Tank1, the search component 306 may determine that a photo-sensor that has a direct or indirect influence on Tank 1 operation is faulty (e.g., based on retrieved status information for the photo-sensor). Accordingly, based on this determination, the presentation component 314 may prioritize this information in the search results by enabling the I/O layer in the initial search result presentation provided to the user's client device, and rendering a “sensor faulted” status box for the faulty photo-sensor in a manner that distinguishes this status from the statuses of the other I/O devices (see, e.g., status box 1114 in
One or more embodiments of the search system can also access off-premise data sources, including but not limited to web-based content (e.g., vendor knowledgebases or technical notes), and present any information from these external sources deemed relevant to a given search on any of the result layers. Moreover, some embodiments of the search component 306 may be configured to correlate local search results (that is, search results located on data sources within the plant facility) with information available on web-based data sources. For example, if a local search result relates to a particular model of industrial device, the search component 306 may search external web-based data sources for additional information about that device (e.g., knowledgebase articles, on-line documentation, technical notes, information regarding the latest firmware revision for the device, etc.). The presentation component 314 can then present links to these external search results on its own layer (e.g., a web documentation layer) or on another layer. For example, if the presentation component 314 displays a faulted motor drive on the I/O or controller layer, the web documentation layer may be added that overlays an interactive link near the motor drive graphic that allows the user to navigate to the on-line documentation for the drive.
The search system may further customize the search result layers based on the current location of the user submitting the request. For example, the search component 306 may also be configured to filter search results and/or layers based on a current location of the client device 402 from which the search query was received. According to such embodiments, upon determining a set of search results in response to a search query, the search system may determine the location of the client device 402 (or the user of client device 402; e.g., using a location tracking badge carried by the user) and present only a subset of the total search results determined to be relevant to the user's present location. For example, if the user is determined to be located near a particular production line or within a particular workcell, the search component 306 may identify the subset of search results corresponding to industrial devices or machines located within that section of the plant facility and present those limited results to the presentation component 314 for delivery to the client device.
In some embodiments, as an optional or alternative presentation format, the presentation component 314 may deliver the search result layers using a tabbed interface rather than superimposing layers into a composite view.
For scenarios in which a physical view includes machines that are controlled by different industrial controllers or that reside on different networks, the presentation component 314 can allow the user to select a particular machine on the physical view under the “Physical” tab prior to navigation to another tab. With a particular machine selected, navigation to a different tab layer will render the related view for the selected machine. For example, if the user selects the Tank 1 graphic in the physical view and then navigates to the “Controller” tab, the control programming for Tank 1 will be displayed.
Interaction with certain display elements of the search result layers described above can cause the multi-platform industrial search system to render views requiring a separate application to be launched on the user's client device. For example, in some embodiments, if the indexing component 304 has discovered and indexed an HMI application installed near a given machine for viewing status and operational data associated with that machine, the presentation component 314 can configure the physical layer such that selection of a graphical representation of that machine causes an HMI application to be launched on the user's client device, and the particular HMI screen relating to the machine to be displayed. Similarly, if the indexing component 304 had discovered an industrial controller executing an industrial control program that controls one or more machines, the presentation component 314 can configure the physical and/or controller layers such that selection of a graphic representing the controller or one of the controlled machines causes a control program viewing or development application to be launched on the user's client device, and the control logic to be rendered on the application. In the tabbed presentation, selection of the “HMI” or “Controller” tabs cause similar operations (see
For scenarios in which the user's client device does not have the applications necessary to view the HMI or control logic screens installed locally, the multi-platform industrial search system can provide other means for viewing a selected search result. For example, the system may launch the necessary application on a workstation and provide an interactive remote view of the application. Alternatively, the system may launch the application on a different workstation, on which the user can view the content.
For example, if the user requests an HMI screen associated with a selected machine via appropriate interaction with the layered map, the application launching component 316 of search system 302 will remotely launch an instance of HMI viewer application 1718 on client device 1702, load the HMI application containing the HMI screen corresponding to the selected result, and navigate to the screen containing the reference of interest. In some embodiments, the search system 302 can serve a web-compatible version of the HMI viewer application on a browser application 1712 running on client device 1702. Similarly, if the user elects to view a control program executing on an industrial controller by selecting the appropriate controller graphic on the controller layer, the application launching component 316 can remotely launch an instance of the controller program development application 1716 on client device 1702. In some embodiments, the search system 302 can instantiate the controller program developer application as a remote node that allows the user to modify the controller programming remotely from client device 1702.
Once the appropriate application has been launched on client device 1702, the search system 302 can place the application 1714 on line with the necessary data source for populating the client-side application with live data 1708. For example, search system 302 can initiate a communication link to industrial controller 1710 and retrieve live data 1708 from the data tags needed to populate application 1714 (e.g., to display live data or drive graphic animation on an HMI screen, to provide a runtime view of controller logic, etc.). Other data sources can include, but are not limited to, motor drives (e.g., VFDs), cameras (e.g., vision cameras, 2D barcode readers, etc.), instrumentation and telemetry devices, or other such data sources. The presentation component 314 can use similar communication links to live plant floor data in order to drive near real-time data presentations on one or more of the layer maps (e.g., the alarm information on the alarm layer, I/O status information on the I/O layer, etc.).
Although
In some embodiments, the search system 302 may deliver the application to a different client device or computer (e.g., a desktop computer, a laptop computer, a workstation, etc.) other than that which initiated the launch request.
Although
In this example, the industrial search system 302 is configured to remotely launch a selected application file within its appropriate viewing context. For example, after industrial search system 302 has delivered a layered map presentation comprising a set of search results to the browser application 1904 of client device 1902, the user may interact with the layered map to request a view of an HMI application or controller program associated with a machine or controller, causing a launch request 1910 to be sent to search system 302. In response to receiving the launch request 1910, industrial search system 302 sends a launch instruction 1912 to the client device 1902 instructing the device which application (HMI viewer application 1906 or controller program developer 1908) to launch, as well as which application file should be loaded to facilitate viewing the selected search result. The launch instruction 1912 can also cause the selected application to navigate to the appropriate HMI screen or logic rung corresponding to the selected search result. Using this architecture, industrial applications are installed locally on each user's client device, and run remotely by the industrial search system 302.
In some embodiments, the layered map presentation generated by the presentation component 314 can be configured to process various types of feedback information provided by the user via interaction with the graphical elements presented on the layers.
In addition to the interactions described above in previous examples, the user can interact with the layered map presentation 2006 to provide other types of feedback information to the system, including but not limited to weight information 2008 or additional icon-based search queries 2010, as shown in
In a related aspect, the search system 302 may prioritize search results using inference as well as explicit priority definitions provided by the user. For example, the search system 302 may apply a higher priority to certain search results based on such factors as a number of submitted requests for those results, a number of instances of a given search result found across the industrial environment (e.g., a number of HMI screens on which a result appears, a number of ladder logic rungs on which a particular data tag is referenced in control logic, etc.), or other such criteria.
In some embodiments, in connection with marking the prioritized search results, the search system can allow the user to enter tag information and associate this information with selected results for viewing by other uses. For example, via interaction with the layered map, the user may flag a particular I/O device as a prioritized result, and enter tag information to be associated with the I/O device and displayed to other users of the system. This tag information can include, but is not limited to, an identifier of the user who applied the tag, a note from the user to be displayed when the I/O device is viewed by other users (e.g., a maintenance note), or other such information. In this way, the system provides a means for maintenance personnel addressing a given issue to convey information to one another through the use of virtual tags that can be stored to the federated data model and viewed by all users having access to the search system.
Some embodiments may also support icon-based searching, whereby subsequent search queries can be submitted to the search system 302 through selection of a graphical element on the layered map presentation. For example, upon receipt of the layered map presentation 2006 in response to a first search query, the user may select a graphical element relating to a particular machine, I/O device, work order, alarm, etc. for submission to the system as an icon-based search query 2010. The icon-based search query 2010 causes a search for the selected machine or device to be performed by search component 306, resulting in an updated layered map presentation that modifies the search results based on the new search criterion. The presentation component 314 can rank, prioritize, or filter the search results of this subsequent icon-based search based on the previously submitted search query that invoked the original layered map presentation 3006, which serves as context information for the icon-based search. For example, the presentation component 314 may prioritize results of this subsequent search that are common to both the original query and the subsequent icon-based search.
Some embodiments of the multi-platform industrial search system can also support integration of live or pre-recorded video information into the layered map presentations.
As described in previous examples, the search component 306 can provide search results 2106 to the presentation component 314 in response to a search query submitted by the user via client device 2118. In this example, the layered map presentation provided to the user includes interactive controls that allow the user to add live or historical video data 2108 to the presentation if such video information is available for a given work area, yielding a composite presentation 2110 that overlays video data over the relevant portions of the layered presentation.
One or more embodiments of the multi-platform search system can also depict employee or operator information on the layered map presentation. For example, some embodiments of the presentation component 314 can generate an employee congregation view that graphically depicts current or historical locations of employees throughout the plant facility. The presentation component 314 may present this information as heat map data overlaid on the layered map presentation.
For embodiments that support delivery of video information, the user may also choose to invoke live video of an area at which a large number of employees are currently congregated, as shown in
The heat map presentations depicted in
The multi-platform search system can support individual user profiles that allow each user to set and store individual preferences for interacting with the system. For example, the system can allow a user to curate personal views of the system by setting default viewing preferences. These preferences can include identifying specific layers to be included or omitted each time a set of search results is presented, tagging specific machines, devices, work areas, or other aspects of the industrial system for prioritization in connection with delivering search results, or other such individual preferences.
As noted above, one or more embodiments of the multi-platform industrial search system can be implemented on a cloud platform.
According to one or more embodiments, on-premise cloud agent devices 2508 can collect data from industrial devices 2510—or from other data sources, including but not limited to data historians, business-level systems, etc.—and make this data available to the indexing component 304 of search service 2504, which incorporates the collected data into federated data model 202 on the cloud platform 2502. Cloud platform 2502 can be any infrastructure that allows industrial search service 2504 to be accessed and utilized by cloud-capable devices. Cloud platform 2502 can be a public cloud accessible via the Internet by devices having Internet connectivity and appropriate authorizations to utilize the industrial search service 2504. In some scenarios, cloud platform 2502 can be provided by a cloud provider as a platform-as-a-service (PaaS), and the industrial search service 2504 can reside and execute on the cloud platform 2502 as a cloud-based service. In some such configurations, access to the cloud platform 2502 and the industrial search service 2504 can be provided to customers as a subscription service by an owner of the industrial search service 2504. Alternatively, cloud platform 2502 can be a private or semi-private cloud operated internally by the enterprise, or a shared or corporate cloud environment. An example private cloud can comprise a set of servers hosting the industrial search service 2504 and residing on a corporate network protected by a firewall.
If cloud platform 2502 is a web-based cloud, cloud agent devices 2508 at the respective industrial facilities 2506 may interact with industrial search service 2504 directly or via the Internet. In an example configuration, the industrial devices 2510 connect to the on-premise cloud agent devices 2508 through a physical or wireless local area network or radio link. In another example configuration, the industrial devices 2510 may access the cloud platform 2502 directly using integrated cloud agents.
Monitoring component 308, search component 306, indexing component 304, device interface component 312, and presentation component 314 perform similar functions to those described above in connection with
At 2704, the data items (and the relationships between the data items) discovered at step 2702 are indexed in a federated data model. At 2706, a search query specifying a data item of interest is received. The search query can specify, for example, a particular data tag, a device name, a machine name, or other such search criterion. At 2708, the federated data model is searched to discover locations of the specified data item (and related data items) on at least two different data platforms within the plant environment. For example, based on a search of the federated data model, it may be discovered that the specified data item is referenced on one or more rungs of a controller logic program executing on an industrial controller (a first platform), as well as on one or more display screens of an HMI (a second platform).
At 2710, additional related data items are identified based on results of the search performed at step 2708. For example, the search system may determine, based on examination of the search results, one or more data tags that affect the data item of interest (e.g., statuses of other devices, measured process variables involving other devices, etc.). The search system can perform additional searches on these newly discovered related data items in an iterative fashion until a defined completion criterion is met. Accordingly, at 2712, a determination is made regarding whether the iterative search is complete (e.g., based on satisfaction of the completion criterion). If the iterative search is not complete, the methodology returns to step 2710 and another search of the federated data model is performed using the specified data item and the additional related data items as search criteria. In this way, the search system iteratively cycles through the indexed information recorded in the federated data model until all relationships determined to be relevant to specified data item are found.
If it is determined at step 2712 that the iterative search is complete, the results of the iterative search (including, for example, instances of the data item of interest and the additional related data items) are prioritized at step 2714 based on past usage. For example, the system may prioritize search results based on a number of times each search result was selected by other users in connection with similar previously performed searches. At 2716, a search result presentation is generated at 2716 that graphically represents the prioritized search results—including the data item and the related data items—on layers of a layered map. For example, the search result presentation may comprise multiple layers of different scopes across which the search results are displayed. The layers can correspond to different hierarchical scopes (e.g., a physical layer, an alarms layer, a controller layer, an I/O layer, a network layer, etc.), where each layer displays at least a subset of the retrieved data items corresponding to the scope or granularity of that particular layer. The layers of the presentation can be viewed individually by navigating through the layers, or can be selectively added or removed from a composite presentation comprising multiple superimposed layers. The search results can be arranged or presented on the layers according to the priorities determined at step 2714 (e.g., by graphically presenting higher priority items more prominently than lower priority items).
At 2808, a selection of a graphic representing a machine, a device, or other element represented on the search result presentation is received via interaction with the search result presentation. At 2810, another search is performed of the federated data model using the machine, device, etc. selected at step 2808, as well as the original search query, as search criteria. In this way, the original search query can be refined by performing another search on the selected element using the original search query as additional context for the search. At 2812, the search result presentation is revised to render another set of data items based on the subsequent search of the federated data model. At 2814, the selection received at step 2808 is stored in association with the search query to be used to augment future similar searches. For example, if a similar search query is received at a future time, the system may augment the search query based on the machine or device previously selected at step 2808, without requiring the user to re-select the machine or device.
Embodiments, systems, and components described herein, as well as industrial control systems and industrial automation environments in which various aspects set forth in the subject specification can be carried out, can include computer or network components such as servers, clients, programmable logic controllers (PLCs), automation controllers, communications modules, mobile computers, wireless components, control components and so forth which are capable of interacting across a network. Computers and servers include one or more processors—electronic integrated circuits that perform logic operations employing electric signals—configured to execute instructions stored in media such as random access memory (RAM), read only memory (ROM), a hard drives, as well as removable memory devices, which can include memory sticks, memory cards, flash drives, external hard drives, and so on.
Similarly, the term PLC or automation controller as used herein can include functionality that can be shared across multiple components, systems, and/or networks. As an example, one or more PLCs or automation controllers can communicate and cooperate with various network devices across the network. This can include substantially any type of control, communications module, computer, Input/Output (I/O) device, sensor, actuator, instrumentation, and human machine interface (HMI) that communicate via the network, which includes control, automation, and/or public networks. The PLC or automation controller can also communicate to and control various other devices such as standard or safety-rated I/O modules including analog, digital, programmed/intelligent I/O modules, other programmable controllers, communications modules, sensors, actuators, output devices, and the like.
The network can include public networks such as the internet, intranets, and automation networks such as control and information protocol (CIP) networks including DeviceNet, ControlNet, and Ethernet/IP. Other networks include Ethernet, DH/DH+, Remote I/O, Fieldbus, Modbus, Profibus, CAN, wireless networks, serial protocols, near field communication (NFC), Bluetooth, and so forth. In addition, the network devices can include various possibilities (hardware and/or software components). These include components such as switches with virtual local area network (VLAN) capability, LANs, WANs, proxies, gateways, routers, firewalls, virtual private network (VPN) devices, servers, clients, computers, configuration tools, monitoring tools, and/or other devices.
In order to provide a context for the various aspects of the disclosed subject matter,
With reference to
The system bus 2918 can be any of several types of bus structure(s) including the memory bus or memory controller, a peripheral bus or external bus, and/or a local bus using any variety of available bus architectures including, but not limited to, 8-bit bus, Industrial Standard Architecture (ISA), Micro-Channel Architecture (MSA), Extended ISA (EISA), Intelligent Drive Electronics (IDE), VESA Local Bus (VLB), Peripheral Component Interconnect (PCI), Universal Serial Bus (USB), Advanced Graphics Port (AGP), Personal Computer Memory Card International Association bus (PCMCIA), and Small Computer Systems Interface (SCSI).
The system memory 2916 includes volatile memory 2920 and nonvolatile memory 2922. The basic input/output system (BIOS), containing the basic routines to transfer information between elements within the computer 2912, such as during start-up, is stored in nonvolatile memory 2922. By way of illustration, and not limitation, nonvolatile memory 2922 can include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable PROM (EEPROM), or flash memory. Volatile memory 2920 includes random access memory (RAM), which acts as external cache memory. By way of illustration and not limitation, RAM is available in many forms such as synchronous RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), and direct Rambus RAM (DRRAM).
Computer 2912 also includes removable/non-removable, volatile/nonvolatile computer storage media.
It is to be appreciated that
A user enters commands or information into the computer 2912 through input device(s) 2936. Input devices 2936 include, but are not limited to, a pointing device such as a mouse, trackball, stylus, touch pad, keyboard, microphone, joystick, game pad, satellite dish, scanner, TV tuner card, digital camera, digital video camera, web camera, and the like. These and other input devices connect to the processing unit 2914 through the system bus 2918 via interface port(s) 2938. Interface port(s) 2938 include, for example, a serial port, a parallel port, a game port, and a universal serial bus (USB). Output device(s) 2940 use some of the same type of ports as input device(s) 2936. Thus, for example, a USB port may be used to provide input to computer 2912, and to output information from computer 2912 to an output device 2940. Output adapters 2942 are provided to illustrate that there are some output devices 2940 like monitors, speakers, and printers, among other output devices 2940, which require special adapters. The output adapters 2942 include, by way of illustration and not limitation, video and sound cards that provide a means of connection between the output device 2940 and the system bus 2918. It should be noted that other devices and/or systems of devices provide both input and output capabilities such as remote computer(s) 2944.
Computer 2912 can operate in a networked environment using logical connections to one or more remote computers, such as remote computer(s) 2944. The remote computer(s) 2944 can be a personal computer, a server, a router, a network PC, a workstation, a microprocessor based appliance, a peer device or other common network node and the like, and typically includes many or all of the elements described relative to computer 2912. For purposes of brevity, only a memory storage device 2946 is illustrated with remote computer(s) 2944. Remote computer(s) 2944 is logically connected to computer 2912 through a network interface 2948 and then physically connected via communication connection 2950. Network interface 2948 encompasses communication networks such as local-area networks (LAN) and wide-area networks (WAN). LAN technologies include Fiber Distributed Data Interface (FDDI), Copper Distributed Data Interface (CDDI), Ethernet/IEEE 802.3, Token Ring/IEEE 802.5 and the like. WAN technologies include, but are not limited to, point-to-point links, circuit switching networks like Integrated Services Digital Networks (ISDN) and variations thereon, packet switching networks, and Digital Subscriber Lines (DSL). Network interface 2948 can also encompass near field communication (NFC) or Bluetooth communication.
Communication connection(s) 2950 refers to the hardware/software employed to connect the network interface 2948 to the system bus 2918. While communication connection 2950 is shown for illustrative clarity inside computer 2912, it can also be external to computer 2912. The hardware/software necessary for connection to the network interface 2948 includes, for exemplary purposes only, internal and external technologies such as, modems including regular telephone grade modems, cable modems and DSL modems, ISDN adapters, and Ethernet cards.
What has been described above includes examples of the subject innovation. It is, of course, not possible to describe every conceivable combination of components or methodologies for purposes of describing the disclosed subject matter, but one of ordinary skill in the art may recognize that many further combinations and permutations of the subject innovation are possible. Accordingly, the disclosed subject matter is intended to embrace all such alterations, modifications, and variations that fall within the spirit and scope of the appended claims.
In particular and in regard to the various functions performed by the above described components, devices, circuits, systems and the like, the terms (including a reference to a “means”) used to describe such components are intended to correspond, unless otherwise indicated, to any component which performs the specified function of the described component (e.g., a functional equivalent), even though not structurally equivalent to the disclosed structure, which performs the function in the herein illustrated exemplary aspects of the disclosed subject matter. In this regard, it will also be recognized that the disclosed subject matter includes a system as well as a computer-readable medium having computer-executable instructions for performing the acts and/or events of the various methods of the disclosed subject matter.
In addition, while a particular feature of the disclosed subject matter may have been disclosed with respect to only one of several implementations, such feature may be combined with one or more other features of the other implementations as may be desired and advantageous for any given or particular application. Furthermore, to the extent that the terms “includes,” and “including” and variants thereof are used in either the detailed description or the claims, these terms are intended to be inclusive in a manner similar to the term “comprising.”
In this application, the word “exemplary” is used to mean serving as an example, instance, or illustration. Any aspect or design described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, use of the word exemplary is intended to present concepts in a concrete fashion.
Various aspects or features described herein may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques. The term “article of manufacture” as used herein is intended to encompass a computer program accessible from any computer-readable device, carrier, or media. For example, computer readable media can include but are not limited to magnetic storage devices (e.g., hard disk, floppy disk, magnetic strips . . . ), optical disks [e.g., compact disk (CD), digital versatile disk (DVD) . . . ], smart cards, and flash memory devices (e.g., card, stick, key drive . . . ).