Patent Description:
Industrial devices generate a considerable amount of operational and diagnostic data. However, the process of extracting this data for use by visualization, analytic, or predictive maintenance systems can be complicated, requiring cooperative effort between both information technology (IT) and operational technology (OT) experts to ensure that the most relevant data for a given analytic application is collected from the devices and correctly interpreted and understood by the application. Moreover, much of the data available on a given set of industrial devices comprises uncontextualized, unstructured data (e.g., integer, real, or discrete values stored on the data table of an industrial controller) whose meaning must be defined by external applications used to visualize or analyze the data. <CIT> relates to an industrial device that supports device-level data modeling that pre-models data stored in the device with known relationships, correlations, key variable identifiers, and other such metadata to assist higher-level analytic systems to more quickly and accurately converge to actionable insights relative to a defined business or analytic objective. Data at the device level can be modeled according to modeling templates stored on the device that define relationships between items of device data for respective analytic goals (e.g., improvement of product quality, maximizing product throughput, optimizing energy consumption, etc.). This device-level modeling data can be exposed to higher level systems for creation of analytic models that can be used to analyze data from the industrial device relative to desired business objectives.

<CIT> relates to a smart gateway platform that leverages pre-defined industrial expertise to identify limited subsets of available industrial data deemed relevant to a desired business objective, and to collect and model this relevant data to apply useful constraints on subsequent artificial intelligence or machine learning analytics applied to the data. This approach can reduce the data space to which Al analytics are applied and assist data analytic systems to more quickly derive valuable insights and business outcomes. In some embodiments, the smart gateway platform can operate within the context of a multi-level industrial analytic system, feeding pre-modeled data to one or more Al or machine learning systems executing on one or more different levels of an industrial enterprise. The multi-level industrial analytic system can also further refine modeled industrial data as the data moves upward through the system (e.g., from the device level to higher levels).

<CIT> relates to a smart gateway platform that leverages pre-defined industrial expertise to identify limited subsets of available industrial data deemed relevant to a desired business objective, and to collect and model this relevant data to apply useful constraints on subsequent artificial intelligence or machine learning analytics applied to the data. This approach can reduce the data space to which Al analytics are applied, and assist data analytic systems to more quickly derive valuable insights and business outcomes. The smart gateway platform can operate within the context of a multi-level industrial analytic system, feeding pre-modeled data to one or more Al or machine learning systems executing on one or more different levels of an industrial enterprise.

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 it 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 is provided, comprising a user interface component configured to render configuration interfaces on client devices associated with respective different industrial enterprises and to receive, via interaction with the configuration interfaces, configuration input that defines properties of edge gateways to be executed on a cloud platform; wherein the system is configured to instantiate, based on the configuration input, the edge gateways on cloud storage allocations respectively assigned to the industrial enterprises, and an edge gateway of the edge gateways comprises: an edge gateway component configured to collect device data from data tags of industrial devices owned by an industrial enterprise of the industrial enterprises, and an egress component configured to contextualize the device data based on an information model to yield modeled data, and to store the modeled data in a cloud storage allocation, of the cloud storage allocations, assigned to the industrial enterprise.

Also, one or more embodiments provide a method, comprising rendering, by a system comprising a processor and executing on a cloud platform, configuration interfaces on client devices associated with respective different industrial enterprises; receiving, by the system via interaction with the configuration interfaces, configuration input that defines properties of edge gateways to be executed on a cloud platform; instantiating, by the system based on the configuration input, the edge gateways on cloud storage allocations respectively assigned to the industrial enterprises; collecting, by the edge gateways, respective sets of device data from data tags of industrial devices owned by the industrial enterprises; contextualizing, by the edge gateways, the respective sets of device data based on information models associated with the edge gateways to yield respective sets of modeled data; and storing, by the edge gateways, the respective sets of modeled data on the cloud storage allocations respectively assigned to the industrial enterprises.

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 executing on a cloud platform to perform operations, the operations comprising rendering configuration interfaces on client devices associated with respective different industrial enterprises; receiving, via interaction with the configuration interfaces, configuration input that defines properties of edge gateways to be executed on a cloud platform; instantiating, based on the configuration input, the edge gateways on cloud storage allocations respectively assigned to the industrial enterprises; collecting, by the edge gateways, respective sets of device data from data tags of industrial devices owned by the industrial enterprises; contextualizing, by the edge gateways, the respective sets of device data based on information models associated with the edge gateways to yield respective sets of modeled data; and storing, by the edge gateways, the respective sets of modeled data on the cloud storage allocations respectively assigned to the industrial enterprises.

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. It may be evident, however, that the subject disclosure can be practiced without these specific details.

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.

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, their associated I/O devices, motor drives, and other such industrial devices are central to the operation of modern automation systems. Industrial 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.

<FIG> is a block diagram of an example industrial control environment <NUM>. In this example, a number of industrial controllers <NUM> are deployed throughout an industrial plant environment to monitor and control respective industrial systems or processes relating to product manufacture, machining, motion control, batch processing, material handling, or other such industrial functions. Industrial controllers <NUM> typically execute respective control programs to facilitate monitoring and control of industrial devices <NUM> making up the controlled industrial assets or systems (e.g., industrial machines). One or more industrial controllers <NUM> may also comprise a soft controller executed on a personal computer or other hardware platform, or on a cloud platform. Some hybrid devices may also combine controller functionality with other functions (e.g., visualization). The control programs executed by industrial controllers <NUM> can comprise any conceivable type of code used to process input signals read from the industrial devices <NUM> and to control output signals generated by the industrial controllers, including but not limited to ladder logic, sequential function charts, function block diagrams, or structured text.

Industrial devices <NUM> may include both input devices that provide data relating to the controlled industrial systems to the industrial controllers <NUM>, and output devices that respond to control signals generated by the industrial controllers <NUM> 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. Some industrial devices, such as industrial device <NUM>M, may operate autonomously on the plant network <NUM> without being controlled by an industrial controller <NUM>.

Industrial controllers <NUM> may communicatively interface with industrial devices <NUM> over hardwired or networked connections. For example, industrial controllers <NUM> can be equipped with native hardwired inputs and outputs that communicate with the industrial devices <NUM> 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 <NUM> can also communicate with industrial devices <NUM> over the plant network <NUM> 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 <NUM> 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.). Similarly, some intelligent devices - including but not limited to motor drives, instruments, or condition monitoring modules - may store data values that are used for control and/or to visualize states of operation. Such devices may also capture time-series data or events on a log for later retrieval and viewing.

Industrial automation systems often include one or more human-machine interfaces (HMIs) <NUM> that allow plant personnel to view telemetry and status data associated with the automation systems, and to control some aspects of system operation. HMIs <NUM> may communicate with one or more of the industrial controllers <NUM> over a plant network <NUM>, 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 <NUM> can also be configured to allow operators to submit data to specified data tags or memory addresses of the industrial controllers <NUM>, 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 <NUM> can generate one or more display screens through which the operator interacts with the industrial controllers <NUM>, 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 <NUM> by HMIs <NUM> and presented on one or more of the display screens according to display formats chosen by the HMI developer. HMIs may comprise fixed location or mobile devices with either user-installed or pre-installed operating systems, and either user-installed or pre-installed graphical application software.

Some industrial environments may also include other systems or devices relating to specific aspects of the controlled industrial systems. These may include, for example, one or more data historians <NUM> that aggregate and store production information collected from the industrial controllers <NUM> and other industrial devices.

Industrial devices <NUM>, industrial controllers <NUM>, HMIs <NUM>, associated controlled industrial assets, and other plant-floor systems such as data historians <NUM>, vision systems, and other such systems operate on the operational technology (OT) level of the industrial environment. Higher level analytic and reporting systems may operate at the higher enterprise level of the industrial environment in the information technology (IT) domain; e.g., on an office network <NUM> or on a cloud platform <NUM>. Such higher level systems can include, for example, enterprise resource planning (ERP) systems <NUM> that integrate and collectively manage high-level business operations, such as finance, sales, order management, marketing, human resources, or other such business functions. Manufacturing Execution Systems (MES) <NUM> can monitor and manage control operations on the control level given higher-level business considerations. Reporting systems <NUM> can collect operational data from industrial devices on the plant floor and generate daily or shift reports that summarize operational statistics of the controlled industrial assets.

As industrial enterprises move toward cloud-based data collection and analytic solutions, on-premise edge devices are being used to aggregate data of interest from industrial devices and migrate that data to higher level systems for storage, visualization, or analysis. However, this approach requires each edge device to be individually configured to collect the relevant data items and to map those items to the high level or downstream applications. Configuring these edge devices to collect and migrate data of interest can require a considerable amount of time and effort, particularly if a given enterprise has deployed multiple edge devices at various geographically diverse plant facilities.

Moreover, much of the information available on a given set of industrial devices comprises uncontextualized, unstructured data (e.g., integer, real, or discrete values stored on the data table of an industrial controller) whose meaning must be defined by external applications used to visualize or analyze the data. This places a burden on the developers of such applications, who must designate the meaning of each item of unstructured data received and rendered by these applications so that the data will have meaning to the viewer (e.g., a product count, a production rate, a system temperature or pressure, a historical trend, etc.).

To address these and other issues, one or more embodiments described herein provide a cloud-based system that can be used to configure and manage a distributed set of edge devices using a centralized configuration interface. This cloud-based system supports a variety of edge management tools collectively referred to as Edge as a Service (EaaS), which allow users to centrally deploy, edit, and monitor edge device configurations using cloud-based services. The software services offered by the EaaS platform include edge gateway applications, which can be easily configured to collect data sets relevant to an analytic objective, contextualize the data based on cloud-level or device-level models, and egress the resulting modeled data t external applications such as predictive or prescriptive analytics applications. Edge gateway applications use device profiles to automatically discover and retrieve industrial device data tags or smart objects that are relevant to analytics objectives, and provide tools that allow a user to easily map these data tags or smart objects to information models for egress to external or high-level applications (e.g., visualization, work order management, predictive or prescriptive analytics, etc.).

<FIG> is a block diagram of an example Edge as a Service (EaaS) system <NUM> according to one or more embodiments of this disclosure. Aspects of the systems, apparatuses, or processes explained in this disclosure can constitute machine-executable components embodied within machine(s), e.g., embodied in one or more computer-readable mediums (or media) associated with one or more machines. Such components, when executed by one or more machines, e.g., computer(s), computing device(s), automation device(s), virtual machine(s), etc., can cause the machine(s) to perform the operations described.

EaaS system <NUM> can include a user interface component <NUM>, an edge gateway component <NUM>, a modeling component <NUM>, an analytics component <NUM>, an egress component <NUM>, one or more processors <NUM>, and memory <NUM>. In various embodiments, one or more of the user interface component <NUM>, edge gateway component <NUM>, modeling component <NUM>, analytics component <NUM>, egress component <NUM>, the one or more processors <NUM>, and memory <NUM> can be electrically and/or communicatively coupled to one another to perform one or more of the functions of the EaaS system <NUM>. In some embodiments, components <NUM>, <NUM>, <NUM>, <NUM>, and <NUM> can comprise software instructions stored on memory <NUM> and executed by processor(s) <NUM>. EaaS system <NUM> may also interact with other hardware and/or software components not depicted in <FIG>. For example, processor(s) <NUM> may interact with one or more external user interface devices, such as a keyboard, a mouse, a display monitor, a touchscreen, or other such interface devices.

User interface component <NUM> can be configured to exchange information between the EaaS system <NUM> and a client device having authorization to access the EaaS platform. In some embodiments, user interface component <NUM> can be configured to generate and deliver interface displays to the client device that allow the user to browse data tags or smart objects discovered on industrial devices, select data items to be mapped to an information model, deploy applications to devices at plant facilities, or perform other such interactions with the system <NUM>. User interface component <NUM> can also visualize collected data in various formats, including time-series plots, animated visualizations, results of predictive or prescriptive analytics applied to the data, or other such formats.

Edge gateway component <NUM> can be configured to discover industrial devices in service at a plant facility - e.g., industrial controllers, telemetry devices, motor drives, etc. - as well as data tags or smart objects available on those devices. In some embodiments, the edge gateway component <NUM> can leverage device profiles <NUM> to identify and retrieve data items that are relevant to specified types of analytics or business objectives. The edge gateway component <NUM> can also be configured to retrieve selected subsets of these data items during operation and contextualize this data using information models based on automated or user-defined bindings between the data and the information models.

Modeling component <NUM> can be configured to generate the information models used to contextualize the collected data and map the contextualized data to a target application. Analytics component <NUM> can be configured to apply machine learning models or other types of analytic models to the contextualized data. Egress component <NUM> can be configured to send the contextualized data to a target application in accordance with automatically generated or user-defined mappings between the data items and the information model.

The one or more processors <NUM> can perform one or more of the functions described herein with reference to the systems and/or methods disclosed. Memory <NUM> 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.

<FIG> is a diagram illustrating migration of plant floor data to one or more external applications <NUM> by an edge device <NUM>. In this example, the edge device <NUM> is a network infrastructure device that resides on the plant network <NUM> and communicatively links devices on the network <NUM> to external networks or systems, such as cloud-based applications <NUM>. The edge device <NUM> can aggregate device data <NUM> from industrial devices that make up one or more automation systems in operation within the plant facility. Some of this device data <NUM> can be obtained from data tags <NUM> defined on industrial controllers <NUM>, which store data generated internally by the control program being executed by the controller <NUM> as well as data generated by industrial devices (e.g., devices 120a and 120b) connected to the controller's I/O. The edge device <NUM> may also collect data from industrial devices or systems - such as industrial device 120c - that operate on the plant network <NUM> without being interfaced with the industrial controller <NUM> (e.g., motor drives, vision systems, etc.). Target applications <NUM> to which the edge device <NUM> can send the device data <NUM> can include, but are not limited to, cloud-based analytics applications, visualization systems that provide graphical views of the data <NUM>, work order management systems that automatically generate work orders when the device data <NUM> indicates a maintenance concern, reporting systems, ERP or MES systems, or other such consumers of industrial device data <NUM>.

To configure the edge device <NUM> to collect and migrate desired data items, a user must locally log onto and configure the edge device <NUM>; e.g., using a client device <NUM> that interfaces with the edge device <NUM> either via a direct connection or over the local network <NUM>. Configuring the edge device <NUM> may involve specifying which data tags <NUM> or data items are to be collected, defining a target application to which the data is to be sent, defining any data mappings between the selected data items and data containers of the target application, or defining other such data migration properties. If multiple edge devices <NUM> are deployed across geographically distributed plant facilities, engineers may have to spend considerable time and effort configuring and managing each edge device locally <NUM>. Moreover, when new industrial assets are commissioned at a given plant facility, the engineer must revisit the facility to reconfigure the edge device <NUM> to collect and migrate data from the new assets.

As an alternative to this approach, one or more embodiments of the EaaS system <NUM> can allow a user to remotely configure and manage multiple edge devices <NUM> using a single centralized interface that executes on a cloud platform. <FIG> is a diagram illustrating a general architecture comprising a cloud-based EaaS system <NUM> that is used to configure multiple edge devices <NUM> and that acts as a platform for mapping data from the edge devices <NUM> to external or cloud-based applications <NUM>. In general, the EaaS system <NUM> is a cloud-based platform that allows users to deploy various types of applications <NUM> to devices at their plant facilities and to manage these applications via a single cloud-based interface. Example applications <NUM> that can be deployed and managed via the EaaS system <NUM> can include, but are not limited to, instantiations of cloud-based edge gateways <NUM> (to be described in more detail herein), machine learning models, analytic models, office software, or other types of applications. In some embodiments, the EaaS platform can make these applications <NUM> available to users via a cloud-based application marketplace, allowing users to selectively purchase, deploy, and use these applications within their enterprises.

Edge devices <NUM> may reside at different locations within a plant facility or may be distributed across multiple plant facilities. As will be described in more detail below, collection of industrial device data from the edge devices <NUM> (or directly from the industrial controllers <NUM> and industrial devices <NUM>), contextualization of this data in the cloud, and mapping of the resulting contextualized data to one or more target applications can be configured using instances of edge gateways <NUM>, which can be deployed by the EaaS system <NUM> and centrally managed from the cloud platform. A user with suitable access permissions can remotely log into the EaaS system <NUM> to view and edit the edge gateways <NUM> associated with that user's industrial enterprise via the cloud platform. Edge gateways <NUM> can utilize device profiles <NUM> made available on the EaaS platform to automatically discover, retrieve, and model device data relevant to analytic or business objectives. Egress services supported by the edge gateways <NUM> allow the user to easily map the modeled data to target applications <NUM>.

Although the example architecture illustrated in <FIG> depicts the EaaS system <NUM> and its edge gateways <NUM> interfacing with the plant floor devices (controllers <NUM> and devices <NUM>) via edge devices <NUM> residing at the plant facilities, in some embodiments the EaaS system <NUM> may communicatively interface with the plant floor devices <NUM>, <NUM> without the use of physical edge devices <NUM> at the plant facilities. In such scenarios, the edge gateways <NUM> can remotely access data tags or smart objects <NUM> on the plant floor devices via other types of network infrastructure devices on the plant network, or via another communication channel between the cloud platform and the devices <NUM>, <NUM>.

In some embodiments, the edge gateways <NUM> can integrate with smart objects <NUM> defined on the industrial controllers <NUM> and devices <NUM>. These smart objects <NUM> are specialized data types supported by smart industrial devices that allow items of industrial data to be contextualized or modeled at the device level, allowing for streamlined integration with higher-level applications <NUM> and faster translation of the data into meaningful insights. In an example configuration scenario, a user can configure smart objects <NUM> in an industrial controller <NUM> or other industrial device <NUM> during control program development, along with other data tags to be used by the control program. <FIG> is a diagram illustrating configuration of smart objects <NUM> in a tag database <NUM> of an industrial controller <NUM> that supports smart objects <NUM>. Industrial controller <NUM> includes a tag database <NUM> that stores data tag definitions. The data tag definitions are configured by a user in tandem with development of control program <NUM> (e.g., a ladder logic program, a sequential function chart program, etc.), and define data tags <NUM> of various data types that are used to store and identify analog and digital data values generated and consumed by the control program <NUM>. Example standard data types that can be represented by data tags <NUM> can include, for example, integer data types, real data types, Boolean data types, etc. In addition to these standard data types, one or more of the data tags <NUM> can include smart objects <NUM> (or smart tags), which conform to data types that allow for device-level modeling or contextualization of data at the controller <NUM>.

In this example scenario, a user can configure both the control program <NUM> and the data tag definitions using a device configuration application <NUM> that executes on a client device <NUM> (e.g., a laptop computer, a desktop computer, a tablet computer, etc.) that is communicatively interfaced to the industrial controller <NUM>. Device configuration application <NUM> can execute a program development environment or integrated development environment (IDE) that can be used to develop control program <NUM> and its associated data tags <NUM>, including any smart objects <NUM> to be used as containers for contextualized or modeled data.

During development, the industrial controller <NUM> (or another type of industrial device <NUM> that generates data to be collected by the edge gateway <NUM>) can create smart objects <NUM> corresponding to any of various smart object data types (e.g., state data types, rate data types, odometer data types, event data types, or other supported data types) in accordance with smart object configuration input <NUM> downloaded to industrial controller <NUM> by client device <NUM>. Using device configuration application <NUM>, the user can also configure metadata associated with each smart object <NUM> defined in the tag database <NUM> in order to customize the smart objects <NUM> for a given industrial application.

For example, for a State smart object <NUM> associated with a bottle filling machine to be controlled by industrial controller <NUM>, the user may specify the various states to be represented by the tag (e.g., Running, Home, Abnormal, Idle, etc.). For a Rate smart object <NUM> representing a velocity of a conveyor that feeds bottles to the filling machine, the user can specify maximum and minimum values for the velocity value. Another Rate smart object <NUM> representing an average temperature may be configured to average multiple analog temperature input values specified by the user in the metadata. For an Odometer smart object <NUM> representing a product count (e.g., the number of filled bottles output by the filling machine), the user can configure the associated metadata to specify the data tag that triggers an increment of the odometer value (e.g., an input tag or another smart object <NUM> representing a "fill cycle complete" event), as well as daily shift start and shift end times between which the value of the Odometer smart object <NUM> will increment before being reset to zero. Metadata of an Event smart object <NUM> associated with a component of the filling machine can define an input address or data tag representing a state of a device (e.g., a push-button, a photo-sensor, etc.) that determines the event, or an alarm data tag corresponding to an alarm whose state (e.g., Abnormal, Normal, Acknowledged, Unacknowledged, etc.) determines the event. Other types of smart objects <NUM> and associated metadata are also within the scope of one or more embodiments.

Once the data tags (both standard tags and smart object <NUM>) are configured, the tag database <NUM> stores the configured data tags <NUM> on the industrial controller, where the data tags <NUM> are accessible by control program <NUM>. Data tags and smart objects <NUM> in tag database <NUM> are discoverable by edge gateways <NUM>.

Some industrial controllers <NUM> or devices <NUM> may also support creation of smart object information models, which define hierarchical relationships between industrial assets, associated industrial devices, production lines or areas, and data generated by the various devices associated with the industrial applications in terms of relationships between the defined smart objects <NUM>. <FIG> is a diagram illustrating creation and storage of one or more information models <NUM> on an industrial controller <NUM>. In some scenarios, smart object information models <NUM> can be defined using the same configuration application <NUM> or IDE that is used to program the controller <NUM>.

Configuration application <NUM> allows a user to define an information model <NUM> of an industrial automation application or a collection of industrial automation applications being monitored and controlled by the industrial controller <NUM>. An information model <NUM> defines hierarchical relationships between industrial assets, associated industrial devices, production lines or areas, and data generated by the various devices associated with the industrial applications. Using configuration application <NUM>, a user can define and download these information models <NUM> to industrial controllers <NUM> or devices <NUM> that support the use of smart objects <NUM>.

The information model <NUM> can be defined as a hierarchical arrangement of smart objects <NUM> defined on the controller <NUM>. In particular, the information model <NUM> can define, as nodes of the hierarchy, hierarchical elements of an industrial asset or collection of assets, and assign selected groups of smart objects <NUM> to respective elements with which the smart objects <NUM> are associated (e.g., a node associated with an industrial asset, a unit of equipment associated with the asset, or an industrial device associated with the asset). The information model <NUM> is thereby configured by the user to associate the respective smart objects <NUM> with selected industrial machines, devices, production lines, and/or plant facilities, as well as to define hierarchical relationships between these elements.

Some embodiments of configuration application <NUM> can include model building tools that allow the user to build information models <NUM> by browsing to selected smart objects <NUM> defined in the industrial controller <NUM>. The user can create nodes representing an industrial facility, production lines or areas within the industrial facility, industrial assets (e.g., industrial machine, industrial robots, etc.) within each production line, units of equipment associated with a given industrial asset (e.g., a loader, a pusher, a machining station, etc.), and/or industrial devices (e.g., controllers, drives, etc.) associated with each industrial asset. Selected smart objects <NUM> defined on the industrial controller <NUM> can then be associated with respective nodes defined in the information model <NUM> The information model <NUM> allows the user to define a hierarchical asset or plant architecture, and to group smart objects <NUM> within the framework in association with selected nodes representing plant production areas or production lines, industrial assets, and/or equipment and devices associated with the assets.

Information models <NUM> defined on industrial controllers <NUM> and device <NUM>, working in conjunction with the smart objects <NUM> defined on those devices, contextualize data generated by industrial applications at the device level. <FIG> is a graphical representation of an example information model <NUM>. Example information model <NUM> has a single plant node <NUM>, below which are multiple line nodes <NUM> (Line <NUM>, Line <NUM>, and Line <NUM>), which are child nodes relative to plant node <NUM>. Line nodes <NUM> represent various production lines within the plant represented by plant node <NUM>. Each line node <NUM> has a number of child machine nodes <NUM> representing machines deployed on the line represented by the associated line node <NUM> (e.g., Cartoner, Case Packer, Flow Wrap, Packaging System). Each machine node <NUM> is associated with a number of monitored values <NUM>, which are data values obtained from corresponding smart objects <NUM> configured on the industrial controller <NUM>. The monitored values <NUM> may correspond to production and operation statistics, such as a production rate (obtained from a Rate smart object <NUM>), operation and production states (obtained from State smart objects <NUM>), or line events (obtained from Event smart objects <NUM>). As can be seen in <FIG>, various groups of smart objects <NUM> - represented by the monitored values <NUM> - are respectively assigned to a selected machine and line within the plant, as defined by the information model <NUM>.

An example workflow for configuring data collection, contextualization, and mapping to an external application <NUM> using edge gateways <NUM> is now described. <FIG> is a diagram illustrating discovery of relevant plant floor data by the EaaS system <NUM>. A user can initiate the workflow for configuring data collection, contextualization, and egress (or mapping) by logging into the EaaS system <NUM> and invoking a configuration interface for configuring data collection and mapping.

In some embodiments, the edge gateway component <NUM> can leverage device profiles <NUM> to identify and retrieve relevant device information - in terms of data tags or smart objects <NUM> - from the industrial controllers <NUM> and devices <NUM> at the plant facility. Device profiles <NUM> can be created for respective different types of industrial devices, industrial assets, or control applications and can be made available on the EaaS platform so that users of the EaaS system <NUM> can access and utilize profiles <NUM> corresponding to their industrial assets. A given device profile <NUM> can define, for its corresponding device or industrial asset, a subset of data available from that device - or collection of devices that make up an industrial machine or asset - that is relevant to an analytic objective, business goal, or meaningful visualization of that device's performance. The data items specified by a device profile <NUM> may be less than a total number of data items available on its corresponding device or set of devices, being a filtered subset of data items known to be relevant to a given analytic application (e.g., assessment of the device's performance or health, predictive maintenance analysis that predicts future device failures based on trends of one or more key performance indicators, or other such analysis). The device profiles <NUM> can also include connectivity information that can be used by the edge gateway component <NUM> to locate the specified data items, including but not limited to tag names, smart object identifiers, register identifiers, communication paths, or other such information. Some device profiles <NUM> may also define relationships between the specified data items, which can be used to model the data at the cloud level.

When configuring an edge gateway <NUM> for data collection, the user may select one or more available device profiles <NUM> corresponding to industrial assets of interest; e.g., by selecting the device profile <NUM> from a set of profiles <NUM> made available on the EaaS platform. Alternatively, in some scenarios, the edge gateway component <NUM> may automatically query the user's plant network to discover devices and industrial assets deployed at the plant facility, and the user interface component <NUM> can present the discovered devices to the user as selectable assets. The user can then select a device from this list as a data source, causing the edge gateway component <NUM> to retrieve and utilize an appropriate device profile <NUM> corresponding to the selected device. In yet another example, the user may enter a communication path to a device that will act as a data source, and the edge gateway component <NUM> can discover the device on the network <NUM> and retrieve its corresponding device profile <NUM> to be used in subsequent configuration steps.

Based on information contained in the device profiles <NUM>, edge gateway component <NUM> - which can be an instantiated component of an edge gateway <NUM> - can submit a query to the industrial controllers <NUM> and devices <NUM> at the plant facility, either via an edge device <NUM> or via another interface between the industrial devices and the cloud platform. The query is directed to industrial controllers <NUM> and devices <NUM> having supported device profiles <NUM>, and is designed to discover and retrieve relevant data items specified by the device profiles <NUM>. In response to the query <NUM>, the edge gateway component <NUM> obtains a list of discovered data items <NUM> - e.g., data tags or smart objects <NUM> on the plant floor devices <NUM>, <NUM> - corresponding to data items specified by the device profiles <NUM>. The user interface <NUM> then presents this list of discovered data items to the user via model configuration interfaces <NUM>, to be described in more detail below.

<FIG> is a diagram illustrating an example workflow enabled by the EaaS system <NUM> for selecting and mapping data items from the plant floor devices <NUM>, <NUM> to analytic or predictive models <NUM> to yield an information model <NUM>. Once the edge gateway component <NUM> has discovered and retrieved relevant data items <NUM> from the industrial devices <NUM>, <NUM> (based on discovery information encoded in the device profiles <NUM>), the user interface component <NUM> displays the available data items on a model configuration interface <NUM> rendered on the user's client device <NUM>. The user can interact with the model configuration interface <NUM> to select an analytic or predictive model <NUM> to be applied to the data, and to submit data selections <NUM> and model bindings <NUM> that map selected subsets of the discovered data items <NUM> to the selected model <NUM>. A modeling component <NUM> of the EaaS system <NUM> generates an information model <NUM> based on the data selections <NUM> and model bindings <NUM> submitted by the user. In this way, the EaaS system <NUM> allows control engineers without conventional IT development skills to easily create information models <NUM> based on their knowledge of the underlying control systems.

<FIG> is an example model configuration interface <NUM> that can be generated by the user interface component <NUM> in one or more embodiments. Model configuration interface <NUM> comprises a tag section <NUM> that lists the data items <NUM> - e.g., data tags or smart objects <NUM> - discovered by the edge gateway component <NUM> using the device profiles <NUM>. The edge gateway component <NUM> can use a symbolic shortcut type to populate the tag section <NUM> with human-readable tag listings representing the data items, which can be easily read and interpreted by the user. The data items <NUM> that can be made available for selective mapping to an information model may include not only controller and device data that is directly related to performance of the associated automation system, but also internal diagnostic data for the controllers <NUM> and devices <NUM> themselves, such as device fault conditions, sensor transition times, or other such information.

Model configuration interface <NUM> also includes a model section <NUM> that allows the user to selectively add models to the current edge gateway project. The user can add a model by selecting an Add control in the model section <NUM>, which invokes a control that allows the user to either select from among a library of predefined models <NUM> (see <FIG>) made available by the EaaS system <NUM>, to import a custom model from another source, or to create a new model.

Substantially any type of model can be imported or created for use in the edge gateway <NUM>. Some models may be simple egress models designed to map items of industrial data to corresponding registers or data fields of an external application <NUM> (e.g., a work order management system, a visualization application that generates graphical views of industrial asset performance, external analytic applications, or other such applications). Other models may be analytic models designed to generate insights into asset performance based on analysis of selected sets of data generated by the devices <NUM>, <NUM> associated with the asset. Such analytic models can include, but are not limited to, predictive models designed to predict a failure or performance inefficiency of an industrial asset, prescriptive models designed to generate maintenance recommendations based on detected or predicted performance issues, or other such analytic models.

The EaaS system <NUM> can offer a variety of predefined models <NUM> that are specific to an industrial asset or device type, analytic functions (e.g., predictive maintenance, predictive business outcomes, performance assessment, energy consumption statistics, etc.), industrial verticals, or other such categories. Some predefined models <NUM> may also be specific to a target external or downstream application <NUM> to which device data can be egressed. Such models <NUM> may define data mappings to their corresponding applications <NUM>; that is, mappings to data fields or registers of those applications that are to be populated by collected device data during operation.

When a new model is added to an edge gateway <NUM>, the name of the model is displayed in the model section <NUM>. In the example illustrated in <FIG>, the user has added two models - an analytic model named "pf-analytic" and a preventative maintenance model named "pf-preventative. " Each data item displayed in the tag section <NUM>, as well as each model in the model section <NUM>, has an associated checkbox <NUM> that can be selectively toggled on or off by the user. The user can select which of the discovered data items are to be mapped to a model by selecting checkboxes <NUM> associated with the desired data items, and selecting the checkbox associated with the model to which the selected data items are to be mapped. In the example depicted in <FIG>, the user has mapped four motor status data items - active, at zero speed, ready, and running - to the pf-analytic data model. When the data items and model have been selected, the selected data items appear in the model section <NUM> below the model to which the data items have been mapped. Model configuration interface <NUM> thus allows the user to select, from among the data items discovered by the edge gateway component <NUM>, a relevant subset of the data items that are likely to be useful to the selected model. Based on these user-defined model bindings, the modeling component <NUM> generates an information model <NUM> that can be used by the EaaS system <NUM> to contextualize the selected data items and egress the resulting contextualized data to an external or downstream application <NUM>.

In some cases, the device profile <NUM> used to automatically discover and surface the available data items <NUM> can also be used to automatically create the information model <NUM>. In such scenarios, the device profile <NUM> may not only define the data items <NUM> that are relevant to a given analytic or business objective (e.g., predictive maintenance, energy consumption, mapping of data to an external application <NUM>), but can also define functional relationships or correlations between the data items that are relevant to the objective. Based on this device profile information, the edge gateway component <NUM> can discover the prescribed data items on the relevant industrial controllers <NUM> or devices <NUM>, and the modeling component <NUM> can generate the information model <NUM> to reflect the data correlations defined in the device profile <NUM> and map the relevant data items to the model <NUM>.

If a controller <NUM> or device <NUM> that supports smart objects <NUM> has a stored information model <NUM> (e.g., an information model <NUM> created as described above in connection with <FIG>), the edge gateway component <NUM> can also discover and retrieve this model <NUM> for use as the information model <NUM>. In this scenario, when the user instructs the edge gateway <NUM> to connect to the controller <NUM> or device <NUM>, the edge gateway component <NUM> can automatically detect the information model <NUM> defined on the device, and the modeling component <NUM> will import the discovered information model <NUM> as the information model <NUM> that will be used by the edge gateway <NUM>. The resulting information model <NUM> will pre-contextualize the device data prior to egress to an external application <NUM>. This approach can eliminate the need for the user to manually map data items to a selected model <NUM>, since the edge gateway <NUM> uses the data modeling that has already been defined at the device level. Instead, the user can simply map the predefined information model <NUM> imported from the plant floor device to the desired application <NUM>.

<FIG> is another view of model configuration interface <NUM> depicting an example scenario in which a device-level information model <NUM> has been imported by the edge gateway <NUM>. In this scenario, the modeling component <NUM> automatically generates the information model <NUM> to reflect the hierarchical relationships defined by the device-level information model <NUM>. As shown in the model section <NUM>, the imported model comprises a hierarchical organization of selected data organized according to line (Line <NUM>) and stations of the line (Mixer, Over, Palletizer, etc.), a format similar to that illustrated in <FIG>. This data organization reflects the contextualization defined by the information model <NUM> retrieved from the controller <NUM> or device <NUM>. In this way, the EaaS system <NUM> can automatically generate useful data models for export to target applications by leveraging predefined information models <NUM> stored on the industrial controllers <NUM> and devices <NUM> that act as the data sources.

These discovery and modeling tools supported by the EaaS system <NUM> allow a user to easily define asset analytics to be performed at the cloud level. The user can instruct an edge gateway <NUM> instantiated on the system <NUM> to connect to industrial controllers <NUM> and devices <NUM> at one or more plant facilities and to retrieve information from those devices to enable the desired analytic outcome, using device profiles <NUM> to automatically discover and map the relevant data items to information models <NUM>, which can be used to contextualize and egress the data to external or downstream applications <NUM>. Since the device models <NUM> can predefine the data subsets available on a given device that are relevant to a given analytic or business objective and present these data items in human-readable format, the user need not have preliminary knowledge of the underlying device data tags or the data requirements of the analytic model in order to create meaningful information models <NUM> that will be used by the edge gateway <NUM> to collect, contextualize, and egress the data.

<FIG> is a diagram illustrating deployment of a configured edge gateway <NUM> on the EaaS system <NUM> for collection and contextualization of device data <NUM> and egress of the resulting modeled data <NUM> to an external or downstream application <NUM>. With the information model <NUM> defined, the edge gateway <NUM> can be deployed used by the EaaS system <NUM> to collect, model, and export device data <NUM> collected from the plant floor devices <NUM>, <NUM>. An instance of an edge gateway <NUM> for a given data collection project can comprise instances of the edge gateway component <NUM>, egress component <NUM>, and analytics component <NUM> configured in accordance with the information model <NUM>. In some implementations, the edge gateway <NUM> can be deployed as a virtual machine that executes on the cloud-based EaaS platform.

At runtime, the information model <NUM> instructs the edge gateway component <NUM> as to what items of data are to be collected from the controllers <NUM> or devices <NUM> (e.g., data stored in data tags or smart objects <NUM> on those devices). The egress component <NUM> contextualizes this collected device data <NUM> using information model <NUM> and egresses the resulting modeled data <NUM> to one or more external or downstream applications <NUM>. Contextualizing the data <NUM> may involve, for example, populating the information model <NUM> with real-time values of the device data <NUM> referenced by the model <NUM> and mapping the resulting modeled data <NUM> to the destination or target application <NUM>. As noted above, the mapping of contextualized or modeled data <NUM> to an application <NUM> can be defined by the information model <NUM>, which instructs the egress component <NUM> as to how the modeled data <NUM> is to be mapped to the application (e.g., an identifier of the application <NUM>; mapping information defining which data containers, fields, or registers of the application <NUM> are to receive which items of modeled data <NUM>, etc.). Contextualizing the device data <NUM> may also involve adding metadata to selected data items defining functional or mathematical correlations between the data items, or defining conditions of the values of the data items (or trends in the values) that are indicative of predicted performance concern, asset failure, or other outcome.

Applications <NUM> to which the modeled data <NUM> can be mapped can include applications that reside and execute on the same cloud platform on which the EaaS system <NUM> executes as a service, including applications <NUM> hosted by the EaaS system <NUM> itself (see <FIG>). Applications <NUM> may also reside on external systems or platforms accessible via the cloud platform.

According to an example use case, a user may wish to monitor the fault status of multiple motor drives or other types of industrial devices that generate fault information or other such diagnostic information. To this end, the edge gateway <NUM> can be configured to collect real-time fault data <NUM> from the appropriate data registers of those motor drives. During configuration of the edge gateway <NUM>, device models <NUM> corresponding to the motor drives are used to automatically discover and present the data items relevant to fault monitoring for selective mapping to an information model <NUM>. The information model <NUM> defines a mapping between these data values and data fields of a notification application <NUM>, which delivers real-time notifications to specified users when the data <NUM> for any of the motor drives indicates a fault status. The egress component <NUM> sends the data to the notification application <NUM> in accordance with the mapping defined by the information model <NUM>.

The edge gateway <NUM> can also be used to pre-contextualize device data <NUM> for analysis by an external analytic application <NUM> and to send this modeled data <NUM> to the analytic application <NUM> (e.g., a predictive or prescriptive maintenance application or other such analytic application). With the information model <NUM> defining correlations or relationships between selected items of device data <NUM>, the edge gateway <NUM> can collect and transform the device data <NUM> in accordance with the information model <NUM> to yield modeled data <NUM>. Since the collected data is contextualized and structured based on relevant correlations and causalities defined by the model <NUM> - that is, correlations and causalities defined as being relevant to a particular business or analytic objective - these correlations and causalities are provided to the analytic application <NUM> as modeled data <NUM>, which may comprise the collected data values together with metadata defining the relationships or correlations between the data items. The egress component <NUM> can feed this modeled data <NUM> to the analytics application <NUM>.

Informing an analytic application <NUM> of relevant data correlations and causalities between the data items can apply useful constraints on data analysis performed by the analytic application <NUM>. These constraints can drive the analytic application <NUM> to useful insights more quickly relative to unconstrained big data analysis, significantly reducing the amount of time required for the analytic application <NUM> to discover insights and generate useful recommendations relative to the desired business objective. These predefined correlations and causalities can also mitigate discovery of spurious or irrelevant correlations between the data items by the analytic application <NUM>. By limiting the set of data supplied to the analytic application <NUM> to only those data items deemed relevant by the model <NUM>, and by structuring and contextualizing these data items based on predefined correlations and causalities, the edge gateway <NUM> narrows the data space to be analyzed by the analytic application <NUM>, assisting the analytic system <NUM> to discover useful insights and generate recommendations more quickly relative to unconstrained big data analysis.

In some configurations, the edge gateway <NUM> can also apply its own local analytics to the modeled data <NUM> using analytics component <NUM>. In such embodiments, the analytics component <NUM> may execute a machine learning model <NUM> or another type of analytics model. During runtime, the analytics component <NUM> can apply this machine learning model <NUM> to the incoming device data <NUM> or to the modeled data <NUM>, and the egress component <NUM> can export the modeled data <NUM> to a downstream application <NUM> together with results of the analytics applied by the analytics component <NUM>. Example machine learning models <NUM> that can execute on the edge gateway <NUM> can include, but are not limited to, predictive maintenance models designed to predict failures of industrial assets based on learned trends in selected items of device data.

In some embodiments, the edge gateway <NUM> can allow users to define the information model <NUM> by combining existing models to create a more comprehensive data model that can be leveraged by downstream application for analytics, visualization, reporting, or notification. For example, smart object information models <NUM> defined on the controllers <NUM> and devices <NUM> can be imported and further contextualized by the edge gateway <NUM> using device models <NUM>, machine learning models <NUM>, or other data models executed by the edge gateway <NUM>. These combined models can yield modeled data <NUM> that refines the device-level modeling with additional third-party models.

Some embodiments of the EaaS system <NUM> can provide cloud-based data managements services that store modeled data <NUM>, or data generated by downstream applications <NUM> based on analysis or processing of the modeled data <NUM>, in dedicated cloud storage allocated to an owner of the industrial assets from which the device data <NUM> was collected. The EaaS system <NUM> can allocate separate cloud storage spaces to registered industrial enterprises or asset owners, and allow each registered entity to configure and deploy edge gateways <NUM> as described above for collection, contextualization, and processing of device data <NUM> generated by their industrial assets. In addition to, or as an alternative to, sending the data to a target application <NUM> for analytics or visualization, the edge gateways <NUM> can archive the resulting modeled data <NUM> in cloud storage assigned to the data owner; e.g., as time-series archived data or in a cloud-based relational database. Additionally, data generated from target applications <NUM> based on processing of the modeled data <NUM> - e.g., machine fault or downtime logs, work order management logs, predictive maintenance insights, etc. - can be stored securely in the owner's cloud storage allocation for subsequent access.

Once modeled data <NUM> has been archived, asset owners with appropriate authentication credentials can access, view, or download their stored data via user interface component <NUM> or using any suitable data visualization or management application, including but not limited to industrial visualization or HMI applications, work order management applications, reporting applications, or other such applications.

The tools offered by embodiments of the EaaS system <NUM>, including services for easily configuring an edge gateway <NUM> on the cloud platform, can simplify the process of configuring data collection, contextualization, and egress to analytic and maintenance-related applications.

<FIG> illustrate a methodology in accordance with one or more embodiments of the subject application. While, for purposes of simplicity of explanation, the methodology shown herein is shown and described as a series of acts, it is to be understood and appreciated that the subject innovation is not limited by the order of acts, as some acts may, in accordance therewith, occur in a different order and/or concurrently with other acts from that shown and described herein. For example, those skilled in the art will understand and appreciate that a methodology could alternatively be represented as a series of interrelated states or events, such as in a state diagram. Moreover, not all illustrated acts may be required to implement a methodology in accordance with the innovation. Furthermore, interaction diagram(s) may represent methodologies, or methods, in accordance with the subject disclosure when disparate entities enact disparate portions of the methodologies. Further yet, two or more of the disclosed example methods can be implemented in combination with each other, to accomplish one or more features or advantages described herein.

<FIG> illustrates a first part of an example methodology 1300a for configuring a cloud-based edge gateway to collect, contextualize, and egress data from industrial controllers and devices to a target application. Initially, at <NUM>, selection of a device model is received at a cloud-based EaaS system. The device model can define data items of industrial devices that are relevant to an analytic or business objective. For example, the device profile may be defined for a specific type of device or industrial asset, and may specify data items that are relevant to predictive or prescriptive maintenance of the asset (e.g., predicting a future fault or performance concern based on historical trends of selected performance metrics), calculation of key performance indicators for the asset, visualization of the asset's performance metrics, or other such objectives.

At <NUM>, data items available on industrial controllers or devices deployed at a plant facility are discovered by the EaaS system based on the device model. The data items can be discovered by remotely polling the devices via the plant network on which the devices reside. If an edge device at the plant facility is used to interface the plant devices to the cloud platform, the EaaS system can poll the devices and discover the relevant data items via the edge device.

At <NUM>, a determination is made as to whether an information model is discovered on an industrial device as part of the data discovery process. The information model can be defined on an industrial device that supports the use of smart objects as containers for the device's measured and generated data. Such devices allow information models to be created that define relationships or correlations between the smart objects, effectively modeling the data at the device level for consumption by higher level applications or analytic systems.

If no information model is discovered on any of the industrial devices being polled (NO at step <NUM>), the methodology proceeds to step <NUM>, where a list of the discovered data items is presented on a user interface rendered by the EaaS system for selective mapping to an analytic or contextual model. The analytic or contextual model may be a model imported into the EaaS system to be applied to the device data, such as an organizational model that defines hierarchical or functional relationships between the data, a predictive or prescriptive maintenance model that defines useful data correlations relevant to a desired analytic outcome, or other such models. The model may also define mappings of data to an external or downstream application, such as a work order management system, a visualization system, a reporting system, an analytic model, or other such applications. Selection of data items from the list of discovered data items and mapping of the selected data to the model yields an information model that can be used by the edge gateway for data collection, contextualization, and egress.

Returning to step <NUM>, if an information model is discovered on an industrial device (YES at step <NUM>), the methodology proceeds to the second part 1300b illustrated in <FIG>. At <NUM>, the discovered information model is imported into the edge gateway. This imported information model can be used as the information model for the edge gateway as an alternative to, or in addition to, the information model created at step <NUM>. At <NUM>, a determination is made as to whether further data contextualization is to be configured. In this regard, the data contextualization represented by the imported information model can be combined with a third party or custom models to create a more comprehensive data model that contextualizes the data for use by downstream application for analytics, visualization, reporting, or notification. If further data contextualization is to be configured (YES at step <NUM>), the methodology proceeds to step <NUM>, where another contextualization model is imported into the edge gateway and combined with the imported information model to yield a refined information model.

The methodology then proceeds to step <NUM> in the first part 1300a of the methodology, where the edge gateway configured using the previous steps is deployed on the EaaS system based on the information model. In some embodiments, the edge gateway can execute as a virtual machine on the EaaS platform. The methodology then proceeds to the third part 1300c illustrated in <FIG>, which represents runtime operation of the edge gateway. At <NUM>, the edge gateway collects runtime data (e.g., which may be time-series data or event-driven data) from the data items that were mapped to the model at step <NUM> (or data items defined by the imported information model obtained from the industrial device at step <NUM>). At <NUM>, the runtime data is modeled or contextualized in accordance with the information model to yield modeled data. At <NUM>, the modeled data is sent to an external or downstream application. The target application may be, for example, a work order management system, a prescriptive or predictive maintenance system, an analytic system designed to generate insights into performance of industrial assets based on analysis of the modeled data, a visualization system that displays the modeled data - or analytic results obtained from applying analysis to the data - in a graphical or format, or other such systems.

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, <FIG> and <FIG> as well as the following discussion are intended to provide a brief, general description of a suitable environment in which the various aspects of the disclosed subject matter may be implemented.

With reference to <FIG>, an example environment <NUM> for implementing various aspects of the aforementioned subject matter includes a computer <NUM>. The computer <NUM> includes a processing unit <NUM>, a system memory <NUM>, and a system bus <NUM>. The system bus <NUM> couples system components including, but not limited to, the system memory <NUM> to the processing unit <NUM>. The processing unit <NUM> can be any of various available processors. Multi-core microprocessors and other multiprocessor architectures also can be employed as the processing unit <NUM>.

The system bus <NUM> 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, <NUM>-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 <NUM> includes volatile memory <NUM> and nonvolatile memory <NUM>. The basic input/output system (BIOS), containing the basic routines to transfer information between elements within the computer <NUM>, such as during start-up, is stored in nonvolatile memory <NUM>. By way of illustration, and not limitation, nonvolatile memory <NUM> can include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable PROM (EEPROM), or flash memory. Volatile memory <NUM> 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 <NUM> also includes removable/non-removable, volatile/nonvolatile computer storage media. <FIG> illustrates, for example a disk storage <NUM>. Disk storage <NUM> includes, but is not limited to, devices like a magnetic disk drive, floppy disk drive, tape drive, Jaz drive, Zip drive, LS-<NUM> drive, flash memory card, or memory stick. In addition, disk storage <NUM> can include storage media separately or in combination with other storage media including, but not limited to, an optical disk drive such as a compact disk ROM device (CD-ROM), CD recordable drive (CD-R Drive), CD rewritable drive (CD-RW Drive) or a digital versatile disk ROM drive (DVD-ROM). To facilitate connection of the disk storage <NUM> to the system bus <NUM>, a removable or non-removable interface is typically used such as interface <NUM>.

It is to be appreciated that <FIG> describes software that acts as an intermediary between users and the basic computer resources described in suitable operating environment <NUM>. Such software includes an operating system <NUM>. Operating system <NUM>, which can be stored on disk storage <NUM>, acts to control and allocate resources of the computer <NUM>. System applications <NUM> take advantage of the management of resources by operating system <NUM> through program modules <NUM> and program data <NUM> stored either in system memory <NUM> or on disk storage <NUM>. It is to be appreciated that one or more embodiments of the subject disclosure can be implemented with various operating systems or combinations of operating systems.

A user enters commands or information into the computer <NUM> through input device(s) <NUM>. Input devices <NUM> 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 <NUM> through the system bus <NUM> via interface port(s) <NUM>. Interface port(s) <NUM> include, for example, a serial port, a parallel port, a game port, and a universal serial bus (USB). Output device(s) <NUM> use some of the same type of ports as input device(s) <NUM>. Thus, for example, a USB port may be used to provide input to computer <NUM>, and to output information from computer <NUM> to an output device <NUM>. Output adapters <NUM> are provided to illustrate that there are some output devices <NUM> like monitors, speakers, and printers, among other output devices <NUM>, which require special adapters. The output adapters <NUM> include, by way of illustration and not limitation, video and sound cards that provide a means of connection between the output device <NUM> and the system bus <NUM>. It should be noted that other devices and/or systems of devices provide both input and output capabilities such as remote computer(s) <NUM>.

Computer <NUM> can operate in a networked environment using logical connections to one or more remote computers, such as remote computer(s) <NUM>. The remote computer(s) <NUM> 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 <NUM>. For purposes of brevity, only a memory storage device <NUM> is illustrated with remote computer(s) <NUM>. Remote computer(s) <NUM> is logically connected to computer <NUM> through a network interface <NUM> and then physically connected via communication connection <NUM>. Network interface <NUM> 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 <NUM>, Token Ring/IEEE <NUM> 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 <NUM> can also encompass near field communication (NFC) or Bluetooth communication.

Communication connection(s) <NUM> refers to the hardware/software employed to connect the network interface <NUM> to the system bus <NUM>. While communication connection <NUM> is shown for illustrative clarity inside computer <NUM>, it can also be external to computer <NUM>. The hardware/software necessary for connection to the network interface <NUM> 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.

<FIG> is a schematic block diagram of a sample computing environment <NUM> with which the disclosed subject matter can interact. The sample computing environment <NUM> includes one or more client(s) <NUM>. The client(s) <NUM> can be hardware and/or software (e.g., threads, processes, computing devices). The sample computing environment <NUM> also includes one or more server(s) <NUM>. The server(s) <NUM> can also be hardware and/or software (e.g., threads, processes, computing devices). The servers <NUM> can house threads to perform transformations by employing one or more embodiments as described herein, for example. One possible communication between a client <NUM> and servers <NUM> can be in the form of a data packet adapted to be transmitted between two or more computer processes. The sample computing environment <NUM> includes a communication framework <NUM> that can be employed to facilitate communications between the client(s) <NUM> and the server(s) <NUM>. The client(s) <NUM> are operably connected to one or more client data store(s) <NUM> that can be employed to store information local to the client(s) <NUM>. Similarly, the server(s) <NUM> are operably connected to one or more server data store(s) <NUM> that can be employed to store information local to the servers <NUM>.

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.

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.

Claim 1:
A system (<NUM>), comprising:
a memory (<NUM>) that stores executable components; and
a processor (<NUM>), operatively coupled to the memory, that executes the executable components, the executable components comprising:
a user interface component (<NUM>) configured to render configuration interfaces on client devices associated with respective different industrial enterprises and to receive, via interaction with the configuration interfaces, configuration input that defines properties of edge gateways (<NUM>) to be executed on a cloud platform;
wherein
the system is configured to instantiate, based on the configuration input, the edge gateways on cloud storage allocations respectively assigned to the industrial enterprises, and
an edge gateway of the edge gateways comprises:
an edge gateway component (<NUM>) configured to collect device data from data tags of industrial devices owned by an industrial enterprise of the industrial enterprises, and
an egress component (<NUM>) configured to contextualize the device data based on an information model to yield modeled data, and to store the modeled data in a cloud storage allocation, of the cloud storage allocations, assigned to the industrial enterprise.