U.S. patent application number 13/725543 was filed with the patent office on 2013-08-15 for real-time tracking of product using a cloud platform.
This patent application is currently assigned to Rockwell Automation Technologies, Inc.. The applicant listed for this patent is Rockwell Automation Technologies, Inc.. Invention is credited to Sujeet Chand, David W. Farchmin, Joseph A. Harkulich, Rainer Hessmer, Douglas C. Lawson, Douglas J. Reichard.
Application Number | 20130211870 13/725543 |
Document ID | / |
Family ID | 48946280 |
Filed Date | 2013-08-15 |
United States Patent
Application |
20130211870 |
Kind Code |
A1 |
Lawson; Douglas C. ; et
al. |
August 15, 2013 |
REAL-TIME TRACKING OF PRODUCT USING A CLOUD PLATFORM
Abstract
A cloud-based product tracking system is provided. The product
tracking system runs on a cloud platform and collects data from
multiple devices throughout a supply chain, the data relating to
production, transportation, storage, and sales of a product.
Related subsets of the collected data are aggregated and correlated
at the cloud platform based on contextual metadata associated with
the data, a data model of the supply chain and systems therein, or
other such factors. The cloud-based tracking system analyzes the
correlated information to determine a status of a product within
the supply chain. The tracking system also leverages the correlated
data to analyze product flow, identify inefficiencies within the
supply chain, and generate recommendations for modifying portions
of the supply chain to mitigate the identified inefficiencies.
Inventors: |
Lawson; Douglas C.;
(Silverado, CA) ; Reichard; Douglas J.; (Fairview
Park, OH) ; Harkulich; Joseph A.; (Willoughby,
OH) ; Hessmer; Rainer; (Rancho Santa Margarita,
CA) ; Chand; Sujeet; (Brookfield, WI) ;
Farchmin; David W.; (Grafton, WI) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Rockwell Automation Technologies, Inc.; |
|
|
US |
|
|
Assignee: |
Rockwell Automation Technologies,
Inc.
Mayfield Heights
OH
|
Family ID: |
48946280 |
Appl. No.: |
13/725543 |
Filed: |
December 21, 2012 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
61587531 |
Feb 9, 2012 |
|
|
|
61642964 |
May 4, 2012 |
|
|
|
Current U.S.
Class: |
705/7.25 |
Current CPC
Class: |
H04L 67/125 20130101;
Y02P 90/80 20151101; H04L 43/045 20130101; H04L 43/04 20130101;
H04L 67/10 20130101; G06F 21/64 20130101; G05B 2219/33148 20130101;
G05B 19/41855 20130101; H04L 67/2804 20130101; H04L 67/306
20130101; Y02P 90/02 20151101; H04L 67/12 20130101; G06Q 10/06315
20130101; H04L 12/66 20130101; H04L 43/14 20130101; G05B 2219/31151
20130101 |
Class at
Publication: |
705/7.25 |
International
Class: |
G06Q 10/06 20120101
G06Q010/06 |
Claims
1. A product tracking system, comprising: a memory that stores
computer-executable components; a processor operatively coupled to
the memory that executes computer-executable components, including:
a device interface component configured to receive supply chain
data from devices of a supply chain, wherein the device interface
component receives the supply chain data on a cloud platform; a
correlation component configured to aggregate and correlate subsets
of the supply chain data to yield correlated data; and a tracking
component configured to determine a status of a product within the
supply chain based on the correlated data.
2. The product tracking system of claim 1, further comprising a
client interface component configured to serve a display screen to
a client device and to visualize information regarding the status
of the product on the display screen.
3. The product tracking system of claim 1, wherein the correlation
component determines a correlation between subsets of the supply
chain data based in part on a data model that models at least a
portion of the supply chain.
4. The product tracking system of claim 1, wherein the tracking
component is further configured to identify a product flow
inefficiency associated with a portion of the supply chain based on
an analysis of the correlated data over a time range.
5. The product tracking system of claim 4, wherein the tracking
component is further configured to generate a recommendation for
adjusting at least one supply chain process to mitigate the product
flow inefficiency.
6. The product tracking system of claim 1, wherein the tracking
component is further configured to predict a level of demand for
the product based on an analysis of the supply chain data.
7. The product tracking system of claim 6, wherein the tracking
component is further configured to generate a recommended
modification to at least one supply chain process based on the
level of demand.
8. The product tracking system of claim 7, wherein the recommended
modification comprises a modification predicted to adjust an
inventory level for the product to a level that satisfies the level
of demand.
9. The product tracking system of claim 6, wherein the tracking
component is further configured to generate or alter an order for
materials based on the level of demand.
10. The product tracking system of claim 3, wherein the tracking
component is further configured to output an estimated time of
arrival for the product to reach a specified point in the supply
chain based on the status and latency information modeled by the
data model.
11. A method for tracking product through a supply chain,
comprising: receiving, at a cloud platform, supply chain data from
a plurality of devices within a supply chain; aggregating and
correlating subsets of the supply chain data yielding correlated
data; and identifying a status of a product within the supply chain
based on the correlated data.
12. The method of claim 11, further comprising: delivering a
display screen to a client device via the cloud platform; and
rendering information regarding the status on the display
screen.
13. The method of claim 11, wherein the aggregating and correlating
comprises determining a correlation between subsets of the supply
chain data based in part on a data model of at least a portion of
the supply chain.
14. The method of claim 11, further comprising identifying an
inefficiency in a product flow through the supply chain based on an
analysis of the correlated data over a time range.
15. The method of claim 14, further comprising outputting a
recommended adjustment to at least one supply chain process
predicted to mitigate the inefficiency.
16. The method of claim 11, further comprising predicting a demand
level for the product based on an analysis of the supply chain
data.
17. The method of claim 16, further comprising outputting a
recommended adjustment to at least one supply chain process
predicted to maintain an inventory level that satisfies the demand
level.
18. The method of claim 16, further comprising generating or
adjusting an order for materials based on the demand level.
19. The method of claim 13, further comprising outputting an
estimated time at which the product will arrive at a specified
point in the supply chain based on the status and latency
information read from the data model.
20. A computer-readable medium having stored thereon
computer-executable instructions that, in response to execution,
cause a computing system to perform operations, including:
collecting, from multiple devices within a supply chain, data
relating to a product in the supply chain; storing the data in
storage associated with a cloud platform; aggregating and
correlating subsets of the data at the cloud platform to yield
correlated data; and generating first output information
identifying a status of the product within the supply chain.
21. The computer-readable medium of claim 20, wherein the status
comprises at least one of a current location of the product within
the supply chain, an estimated time of arrival of the product at a
specified point within the supply chain, identification of whether
the product is in production, identification of whether the product
is in transit, an inventory level for the product, or a demand
level for the product.
22. The computer-readable medium of claim 20, further comprising
generating second output information identifying a product flow
inefficiency associated with a system within the supply chain based
on an analysis of the correlated data.
Description
RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional
Patent Application Ser. No. 61/587,531, filed on Feb. 9, 2012, and
entitled "INDUSTRIAL AUTOMATION CLOUD COMPUTING SYSTEMS AND
METHODS," and U.S. Provisional Patent Application Ser. No.
61/642,964, filed May 4, 2012, and entitled "CLOUD GATEWAY FOR
INDUSTRIAL AUTOMATION INFORMATION." This application is also
related to U.S. patent application Ser. No. 10/162,315, filed on
Jun. 4, 2002 (which issued as U.S. Pat. No. 7,151,966 on Dec. 19,
2006), and entitled "SYSTEM AND METHODOLGY PROVIDING OPEN INTERFACE
AND DISTRIBUTED PROCESSING IN AN INDUSTRIAL CONTROLLER
ENVIRONMENT." The entireties of these applications are incorporated
herein by reference.
TECHNICAL FIELD
[0002] The subject application relates generally to industrial
automation, and, more particularly, to tracking of products through
a manufacturing and supply chain using a cloud platform.
BACKGROUND
[0003] 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
programming structures.
[0004] Manufacturing operations, including control of industrial
processes by the industrial controllers described above, represent
one component of a larger business enterprise. On a higher level,
business operations such as financial analysis, marketing, sales,
order management, long term business planning, resource management,
inventory management, and the like collectively represent another
element of the enterprise. Moreover, the plant-floor and business
level operations of the manufacturing facility collectively
represent only one entity of a larger product supply chain that can
also include entities such as material suppliers, inventory or
warehousing, shipping, and retail. All of these supply chain
entities are capable of generating vast amounts of near real-time
and historical data. On the manufacturing side, this data can
include production statistics, data relating to machine health,
alarm statuses, operator feedback, electrical or mechanical load
data, and other such manufacturing data. Warehouses typically track
incoming and outgoing shipments in order to maintain accurate
inventory records. Sales data maintained by a retail entity can be
used to drive production schedules, inventory levels, and purchase
planning at the manufacturing and supplier sides.
[0005] Although operations at the various supply chain entities are
related to and often dependent upon one another, data generated at
the various supply chain entities--or even at different areas
within the same entity--is often only loosely integrated, with slow
(e.g., non-real-time, non-automated) information exchange between
the entities. Consequently, analyzing potential correlations
between data sets generated at the various stages of the supply
chain can be challenging. Moreover, the lack of integration between
the supply chain entities can render accurate, near real-time
product tracking through the supply chain difficult.
[0006] The above-described deficiencies of today's industrial
control and business systems are merely intended to provide an
overview of some of the problems of conventional systems, and are
not intended to be exhaustive. Other problems with conventional
systems and corresponding benefits of the various non-limiting
embodiments described herein may become further apparent upon
review of the following description.
SUMMARY
[0007] 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.
[0008] One or more embodiments of the present disclosure relate to
the use of cloud-based services to facilitate near real-time
product tracking through a supply chain. To this end, a cloud-based
product tracking system running as a service on a cloud platform
can receive product data from various supply chain entities and
leverage the collected data to provide product tracking or supply
chain analysis information. Data received by the product tracking
system can include industrial data received from one or more
industrial automation systems; inventory data; near real-time
shipping information; business-level data including sales, finance,
and purchasing information; and other such supply chain
information.
[0009] The supply chain data can be provided to the cloud-based
product tracking system by cloud-capable industrial devices located
at the respective industrial systems or supply chain entities. The
data can also be provided by cloud gateways that gather data from
industrial devices, business servers, and the like, and push the
data to the product tracking system. In this manner, the
cloud-based product tracking system can collect product-related
data from multiple entities, potentially at different geographic
locations, and store, filter, associate, correlate, and/or
aggregate the collected data in meaningful ways according to the
needs of the user. The product tracking system can generate
displays screens for rendering near real-time tracking information
based on the collected data, and deliver the displays to authorized
Internet-capable display devices via the Internet. Thus, the
cloud-based product tracking system can allow authorized users to
remotely track products through the supply chain using any suitable
computing device having access to the Internet (e.g., phone,
desktop computer, laptop computer, tablet computer, etc.).
[0010] The product tracking system can allow near real-time product
information to be compared with business-level metrics. For
example, personnel can use product tracking data provided by the
cloud-based product tracking system to compare a sales order with a
current location of a product within a supply chain. The product
tracking system can also apply cloud-side analytics to the
collected data to identify actual or potential bottlenecks or other
inefficiencies in the supply chain, and provide guidance regarding
possible modifications to production or supply chain processes that
may mitigate such inefficiencies. In some embodiments, the product
tracking system can also be integrated with business-level systems
to dynamically modify orders for supplies, shipping orders, or
other business-level operations based on current supply chain
information.
[0011] 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.
BRIEF DESCRIPTION OF THE DRAWINGS
[0012] FIG. 1 is a high-level overview of an industrial enterprise
that leverages cloud-based services.
[0013] FIG. 2 is a block diagram of a cloud-based product tracking
system.
[0014] FIG. 3 illustrates an exemplary cloud-based architecture for
tracking product through an industrial supply chain.
[0015] FIG. 4 is a block diagram illustrating components of an
exemplary cloud-based product tracking system.
[0016] FIG. 5 illustrates an exemplary configuration in which an
industrial device acts as a cloud proxy for other industrial
devices comprising an automation system.
[0017] FIG. 6 illustrates transformation of raw industrial data
into contextualized data.
[0018] FIG. 7 illustrates an embodiment in which a firewall box
serves as a cloud proxy for a set of industrial devices.
[0019] FIG. 8 illustrates an exemplary cloud gateway configuration
for sending data from a mobile system to a cloud platform.
[0020] FIG. 9 illustrates exemplary configuration data for a cloud
interface component.
[0021] FIG. 10 illustrates an exemplary organizational hierarchy
that can be used as a basis for a data model of a manufacturing
entity within a supply chain.
[0022] FIG. 11 illustrates an exemplary supply chain.
[0023] FIG. 12 illustrates an exemplary architecture for issuing
supply chain management instructions from a cloud platform.
[0024] FIG. 13 is a high-level overview depicting synchronization
of a device clock with a cloud clock.
[0025] FIG. 14 illustrates an exemplary cloud-based notification
architecture.
[0026] FIG. 15 is a flowchart of an example methodology for
tracking product through a supply chain using a cloud platform.
[0027] FIG. 16 is a flowchart of an example methodology for
identifying inefficiencies in a supply chain using a cloud
platform.
[0028] FIG. 17 is an example computing environment.
[0029] FIG. 18 is an example networking environment.
DETAILED DESCRIPTION
[0030] 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.
[0031] 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 removably 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.
[0032] 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.
[0033] 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.
[0034] 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.
[0035] 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.
[0036] FIG. 1 illustrates a high-level overview of an exemplary
industrial enterprise that leverages cloud-based services,
including but not limited to the product tracking services
described herein. The enterprise comprises one or more industrial
facilities 104, each having a number of industrial devices 108 and
110 in use. The industrial devices 108 and 110 can make up one or
more automation systems operating within the respective facilities
104. Exemplary automation systems can include, but are not limited
to, batch control systems (e.g., mixing systems), continuous
control systems (e.g., PID control systems), or discrete control
systems. Industrial devices 108 and 110 can include such devices as
industrial controllers (e.g., programmable logic controllers or
other types of programmable automation controllers); field devices
such as sensors and meters; motor drives; human-machine interfaces
(HMIs); industrial robots, barcode markers and readers; vision
system devices (e.g., vision cameras); smart welders; or other such
industrial devices.
[0037] Exemplary automation systems can include one or more
industrial controllers that facilitate monitoring and control of
their respective processes. The controllers exchange data with the
field devices using native hardwired I/O or via a plant network
such as Ethernet/IP, Data Highway Plus, ControlNet, Devicenet, or
the like. A given controller typically receives any combination of
digital or analog signals from the field devices indicating a
current state of the devices and their associated processes (e.g.,
temperature, position, part presence or absence, fluid level,
etc.), and executes a user-defined control program that performs
automated decision-making for the controlled processes based on the
received signals. The controller then outputs appropriate digital
and/or analog control signaling to the field devices in accordance
with the decisions made by the control program. These outputs can
include device actuation signals, temperature or position control
signals, operational commands to a machining or material handling
robot, mixer control signals, motion control signals, and the like.
The control program can comprise any suitable type of code used to
process input signals read into the controller and to control
output signals generated by the controller, including but not
limited to ladder logic, sequential function charts, function block
diagrams, structured text, or other such platforms.
[0038] Although the exemplary overview illustrated in FIG. 1
depicts the industrial devices 108 and 110 as residing in
stationary industrial facilities 104, the industrial devices may
also be part of a mobile control application, such as a system
contained in a truck or other service vehicle.
[0039] According to one or more embodiments of this disclosure,
industrial devices 108 and 110 can be coupled to a cloud platform
to leverage cloud-based applications. That is, the industrial
device 108 and 110 can be configured to discover and interact with
cloud-based computing services 112 hosted by cloud platform 102.
Cloud platform 102 can be any infrastructure that allows shared
computing services 112 to be accessed and utilized by cloud-capable
devices. Cloud platform 102 can be a public cloud accessible via
the Internet by devices having Internet connectivity and
appropriate authorizations to utilize the services. Alternatively,
cloud platform 102 can be a private cloud operated internally by
the enterprise. An exemplary private cloud can comprise a set of
servers hosting the cloud computing services 112 and residing on a
corporate network protected by a firewall.
[0040] Cloud services 112 can include, but are not limited to, data
storage, data analysis, product tracking, control applications
(e.g., applications that can generate and deliver control
instructions to industrial devices 108 and 110 based on analysis of
near real-time system data or other factors), visualization
applications such as cloud-based HMIs, reporting applications,
Enterprise Resource Planning (ERP) applications, notification
services, or other such applications. If cloud platform 102 is a
web-based cloud, industrial devices 108 and 110 at the respective
industrial facilities 104 may interact with cloud services 112 via
the Internet. In an exemplary configuration, industrial devices 108
and 110 may access the cloud services 112 through separate cloud
gateways 106 at the respective industrial facilities 104, where the
industrial devices 108 and 110 connect to the cloud gateways 106
through a physical or wireless local area network or radio link. In
another exemplary configuration, the industrial devices may access
the cloud platform directly using an integrated cloud
interface.
[0041] Providing industrial devices with cloud capability can offer
a number of advantages particular to industrial automation. For
one, cloud-based storage offered by the cloud platform can be
easily scaled to accommodate the large quantities of data generated
daily by an industrial enterprise. Moreover, multiple industrial
facilities or supply chain entities at different geographical
locations can migrate their respective automation data to the cloud
for aggregation, collation, collective analysis, and
enterprise-level reporting without the need to establish a private
network between the facilities. Industrial devices 108 and 110
having smart configuration capability can be configured to
automatically detect and communicate with the cloud platform 102
upon installation at any facility, simplifying integration with
existing cloud-based data storage, analysis, or reporting
applications used by the enterprise. In another exemplary
application, cloud-based diagnostic applications can monitor the
health of respective automation systems or their associated
industrial devices across an entire plant, or across multiple
industrial facilities that make up an enterprise. Cloud-based lot
control applications can be used to track a unit of product through
its stages of production and collect production data for each unit
as it passes through each stage (e.g., barcode identifier,
production statistics for each stage of production, quality test
data, abnormal flags, etc.). These industrial cloud-computing
applications are only intended to be exemplary, and the systems and
methods described herein are not limited to these particular
applications. The cloud platform 102 can allow builders of
industrial applications to provide scalable solutions as a service,
removing the burden of maintenance, upgrading, and backup of the
underlying infrastructure and framework.
[0042] FIG. 2 is a block diagram of a product tracking system that
can be implemented on a cloud platform to facilitate tracking a
status of a product through a supply chain. 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.
[0043] Product tracking system 202 can include a device interface
component 204, a client interface component 206, a correlation
component 208, a tracking component 210, one or more processors
212, and memory 214. In various embodiments, one or more of the
device interface component 204, client interface component 206,
correlation component 208, tracking component 210, one or more
processors 212, and memory 214 can be electrically and/or
communicatively coupled to one another to perform one or more of
the functions of the product tracking system 202. In some
embodiments, components 204, 206, 208, and 210 can comprise
software instructions stored on memory 214 and executed by
processor(s) 212. Product tracking system 202 may also interact
with other hardware and/or software components not depicted in FIG.
2. For example, processor(s) 212 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.
[0044] Device interface component 204 can be configured to receive
industrial data or other product related data sent by one or more
cloud-capable industrial device, cloud gateways, or other sources
of product data. Client interface component 206 can be configured
to receive a request for product data from a remote client device
via an Internet connection, and to deliver the requested data to
the client device. This can include delivery of pre-configured
display screens to the remote devices and rendering the product
data via the displays screens. Correlation component 208 can be
configured to aggregate and correlate subsets of the data received
by device interface component 204. Tracking component 210 can be
configured to determine a current status of a product within an
industrial supply chain based on the data received by device
interface component 204 and correlations determined by correlation
component 208. The one or more processors 212 can perform one or
more of the functions described herein with reference to the
systems and/or methods disclosed. Memory 214 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.
[0045] FIG. 3 illustrates an exemplary cloud-based architecture for
tracking product through an industrial supply chain. An exemplary
simplified supply chain can include a supplier 304, a manufacturing
facility 306, a warehouse 308, and a retail entity 310. However,
the supply chain can comprise more or fewer entities without
departing from the scope of this disclosure. For simplicity, FIG. 3
depicts a single block for each supply chain entity. However, it is
to be appreciated that a given supply chain can comprise multiple
entities for each entity type. For example, a manufacturing
facility may rely on materials provided by multiple suppliers.
Likewise, the supply chain may include multiple warehouse entities
to provide storage for various products produced by the
manufacturing facility, and multiple retail entities for selling
the products to end customers.
[0046] The various supply chain entities can generate a large
amount of data in connection with their roles in the supply chain.
For example, supplier 304 and manufacturing facility 306 can
include plant floor devices that generate near real-time and
historical industrial data relating to production of the materials
or products, as well as business-level information relating to
purchase orders, intakes, shipments, enterprise resource planning
(ERP), and the like. Warehouse 308 can maintain records of incoming
and outgoing product and track inventory levels for respective
products. Retail entity 310 can track sales, retail inventory,
financial information, demand metrics, and other such information.
Additional information relating to transportation of materials or
products between stages of the supply chain can also be generated,
including but not limited to geographical location obtained from
global positioning systems.
[0047] According to one or more embodiments of the present
disclosure, data sources associated with each of the supply chain
entities can provide industrial or business data to a cloud
platform 302 to facilitate cloud-based tracking of products through
the supply chain. Cloud platform 302 can execute product tracking
services that aggregate and correlate data provided by the various
supply chain stages, and provide information about a product's
state within the supply chain based on the analysis. These
cloud-based services can include, but are not limited to, tracking
the product's physical location within the supply chain,
dynamically managing inventory based on demand data and current
production statuses, dynamically managing orders for materials or
products based on comparisons between pending orders and a current
state of an ordered product, providing metrics relating to the flow
of products through the supply chain, or identifying and
trouble-shooting inefficiencies in product flows through the supply
chain. These and other services will be described in more detail
below.
[0048] FIG. 4 is a block diagram illustrating components of an
exemplary cloud-based product tracking system. As described in
previous examples, cloud-based product tracking system 402 can
reside on a cloud platform and receive data from respective data
generating devices 404. In one or more embodiments, the cloud-based
product tracking system 402 can reside and execute on the cloud
platform as a cloud-based service, and access to the cloud platform
and product tracking system 402 can be provided to customers as a
subscription service by a provider of the product tracking
services.
[0049] Devices 404 can comprise substantially any type of device
that contains, collects, or generates data relating to a product or
material within a supply chain. For example, industrial devices
404.sub.1 and 404.sub.2 can be plant floor devices that are part of
respective automation systems at supply and manufacturing entities
of the supply chain. These devices can include, but are not limited
to, industrial controllers, sensors, meters, motor drives, HMI
terminals, industrial robots, or other such industrial devices.
Industrial devices 404.sub.1 and 404.sub.2 can be configured with
cloud capabilities that allow the devices to be communicatively
coupled to the cloud platform and exchange data with services
residing thereon. Alternatively, industrial devices 404.sub.1 and
404.sub.2 can provide their data to the cloud platform via
respective cloud proxy devices or other cloud gateways that collect
data from multiple devices and move the data to the cloud platform
for storage and processing. These various configurations are
described in more detail below.
[0050] As illustrated in FIG. 4, data from an inventory server
404.sub.3 at a warehouse stage of the supply chain can also provide
data to product tracking system 402. Inventory server 404.sub.3 can
maintain, for example, current inventory levels for various
products, records of product intakes and shipments, product order
information, available warehouse capacity, and other such
information. It is to be appreciated that other types of devices
can provide data to product tracking system 402 in addition to
devices 404.sub.1-404.sub.3. For example, mobile cloud gateways can
be embedded on cargo vehicles that transport materials and product
between supply chain entities. These cloud gateways can provide GPS
information to the cloud indicating a current geographical location
of a product shipment as the shipment is being transported through
the supply chain. Additionally, sales and demand information can be
provided to product tracking system 402 by retail servers
associated with retail outlets. At the supply and manufacturing
stages, higher level business systems (e.g., ERP systems, reporting
applications, financial systems, etc.) can provide business data
relating to operations of the respective facilities. Devices 404
can be associated with respective automation systems at
geographically diverse industrial facilities, or at different areas
within the same facility which may or may not reside on a common
local area network.
[0051] Data provided by devices 404 can be received by product
tracking system 402 via a device interface component 414. Devices
404 can send their respective data to cloud-based product tracking
system 402 at a frequency defined by the product tracking system
402. For example, an administrator or other user with suitable
administrative privileges can define an upload frequency
individually for the respective devices 404, and device interface
component 414 can provide corresponding configuration instructions
to the respective devices 404 configuring the upload frequencies
accordingly. Alternatively or in addition, product tracking system
402 may dynamically select a suitable upload frequency for the
respective devices 404 during operation. For example, in order to
control costs associated with cloud resource utilization, an
administrator can, in one or more embodiments, configure a maximum
total bandwidth usage for the cloud-based product tracking system
402, such that the total instantaneous bandwidth usage for data
traffic between the devices 404 and cloud-based product tracking
system 402 is not to exceed the configured maximum bandwidth. In
such embodiments, cloud-based product tracking system 402 can
monitor the total bandwidth utilization substantially in real-time,
and dynamically reduce the upload frequency of one or more devices
404 in response to a determination that the total bandwidth usage
is approaching the defined maximum bandwidth.
[0052] In another example, an administrator can configure a limit
on the total amount of cloud storage to be utilized. Accordingly,
if the product tracking system 402 determines that this storage
limit is being approached, the product tracking system can begin
deleting the oldest data from cloud storage according to a
preconfigured deletion routine. In an alternative approach, the
product tracking system 402 can send an instruction to one or more
devices 404 to reduce their upload frequencies in response to
determining that the storage limit is being approached, thereby
slowing the consumption of cloud storage resources. The cloud-based
product tracking system 402 can select which devices 404 are to be
adjusted based on respective criticalities of the control systems
associated with the devices 404. For example, cloud-based product
tracking system 402 can maintain individual device profiles (not
shown) defining relative priorities of the industrial systems
associated with each of the devices 404, and can leverage this
information in connection with determining which devices 404 are to
be selected for reduced upload frequency in the event that one or
more cloud resources are being used at an excessive rate.
[0053] The supply chain data from devices 404 are received at
device interface component 414, which can store the received data
on cloud storage 426. In one or more embodiments, the received
supply chain data can first be filtered by a filter component 416,
which can be configured to remove redundant or unnecessary data
prior to storage. Filter component 416 can filter the data
according to any specified filtering criterion, which may be
defined by a filter profile or filter configuration data associated
with product tracking system 402. For example, valid data ranges
can be defined for selected items of data received from devices
404, and filter component 416 can be configured to delete data
values that fall outside these defined ranges. In this way, outlier
data indicative of faulty data measurements can be filtered out
prior to storage on the cloud platform. Filter component 416 can
also be configured to identify redundant data collected from two or
more of devices 404, and discard redundant instances of the same
data. In some embodiments, filter component 416 can leverage
contextual information associated with the data to identify such
instances of redundant data. Note that server-side filtering will
accrue data transition costs and affect available bandwidth even
though the data is not actively used. However, this approach is
necessary if the used gateway does not offer corresponding
client-side filtering. For more capable gateways, client-side
filtering as described below is the preferred option.
[0054] Cloud storage 426 can comprise a subset of the cloud
platform's storage resources provisioned to an end user entity
(e.g., an industrial enterprise) for the purpose of storing the
received supply chain data. For example, cloud storage 426 can be
provided to an industrial enterprise as part of a subscription
service that includes access to the cloud-based product tracking
system 402 and its associated cloud services.
[0055] As noted above, product or supply chain data can be provided
to the cloud platform by cloud-capable industrial devices (e.g.,
industrial controllers, meters, historians, etc.) or through cloud
proxy devices that collect data from such industrial devices and
provide the data to the cloud platform. Turning briefly to FIG. 5,
an exemplary configuration is illustrated in which an industrial
device acts as a cloud proxy for other industrial devices
comprising an automation system. In the present example, an
automation system (as might be part of a supply or manufacturing
entity of a supply chain) comprises a plurality of industrial
devices 506.sub.1-506.sub.N which collectively monitor and/or
control one or more controlled processes 502. The industrial
devices 506.sub.1-506.sub.N respectively generate and/or collect
process data relating to the controlled process(es) 502. For
industrial controllers such as PLCs or other automation
controllers, this can include collecting data from telemetry
devices connected to the controller's I/O, generating data
internally based on measured process values, etc.
[0056] In the configuration depicted in FIG. 5, industrial device
506.sub.1 acts as a proxy for industrial devices
506.sub.2-506.sub.N, whereby data 514 from devices
506.sub.2-506.sub.N is sent to the cloud via proxy industrial
device 506.sub.1. Industrial devices 506.sub.2-506.sub.N can
deliver their data 514 to proxy industrial device 506.sub.1 over
plant network or backplane 512 (e.g., a Common Industrial Protocol
network or other suitable network protocol). Using such a
configuration, it is only necessary to interface one industrial
device to the cloud platform (via cloud interface component 508).
Accordingly, proxy industrial device 506.sub.1 can include a
transformation component 510 for applying suitable transformations
to the collective data 514 collected from industrial devices
506.sub.2-506.sub.N, as well as its own control data. Such
transformations can include, for example, filtering, pruning,
re-formatting, summarizing, or compressing the data prior to moving
the data to the cloud platform. Since data is being gathered from
multiple industrial devices according to this configuration, there
is a possibility that redundant data may be provided to industrial
device 506.sub.1 from more than one source. Accordingly,
transformation component 510 may be configured to filter such
redundant data prior to delivering the refined data to the
cloud-based application. Transformation component 510 may also be
configured to summarize the gathered data 514 according to defined
summarization criteria. The transformed data can then be pushed to
the cloud as cloud data 504 via cloud interface component 508.
[0057] In some embodiments, transformation component 510 can apply
contextual metadata to the received data 514. Turning briefly to
FIG. 6, transformation of raw industrial data into contextualized
data by the transformation component is illustrated. Transformation
component 604 receives raw industrial data 602 and enhances the
data 602 with one or more pieces of context data to yield
contextualized data 606. For example, transformation component 604
can apply a time stamp to the raw data 602 indicating a time, a
date, and/or a production shift when the data was generated. The
applied context data may also identify a production area that
yielded the data, a particular product that was being produced when
the data was generated, and/or a state of a machine (e.g., auto,
semi-auto, abnormal, etc.) at the time the data was generated. Such
data can be leveraged by the cloud-based product tracking system to
identify when a product or lot has passed through a particular
production area of a supplier or manufacturing facility. Other
examples of context information include an employee on shift at the
time the data was generated, a lot number with which the data is
associated, or an alarm that was active at the time the data was
generated. Transformation component 604 can also apply an
actionable data tag to the raw data if it is determined that the
data requires action to be taken by plant personnel or by the
cloud-based application.
[0058] Transformation component 604 an also apply contextual
information to the raw data 602 that reflects the data's location
within a hierarchical organizational model. Such an organization
model can represent an industrial enterprise in terms of multiple
hierarchical levels. In an exemplary organizational model, the
hierarchical levels can include--from lowest to highest--a workcell
level, a line level, an area level, a site level, and an enterprise
level. Devices that are components of a given automation system can
be described and identified in terms of these hierarchical levels,
allowing a common terminology to be used across the entire
enterprise to identify devices, machines, and data within the
enterprise. Some exemplary organizational models may also define
relationships between various supply chain entities (e.g.
suppliers, manufacturers, inventory, retail, etc.). In some
embodiments, the organizational model can be known to the
transformation component 604, which can stamp raw data 602 with a
hierarchical identification tag that indicates the data's origin
within the organizational hierarchy (e.g.,
Company:Marysville:DieCastArea:#1Headline:LeakTestCell).
[0059] While the proxy device illustrated in FIG. 5 is depicted as
an industrial device that itself performs monitoring and/or control
of a portion of controlled process(es) 502, other types of devices
can also be configured to serve as a cloud proxies for multiple
industrial devices according to one or more embodiments of this
disclosure. For example, FIG. 7 illustrates an embodiment in which
a firewall box 712 serves as a cloud proxy for a set of industrial
devices 706.sub.1-706.sub.N. Firewall box 712 can act as a network
infrastructure device that allows plant network 716 to access an
outside network such as the Internet, while also providing firewall
protection that prevents unauthorized access to the plant network
716 from the Internet. In addition to these firewall functions, the
firewall box 712 can include a cloud interface component 708 that
interfaces the firewall box 712 with one or more cloud-based
services, such as the cloud-based product tracking system described
herein. In a similar manner to proxy industrial device 506.sub.1 of
FIG. 5, the firewall box 712 can collect industrial data 714 from
industrial devices 706.sub.1-706.sub.N, which monitor and control
respective portions of controlled process(es) 702. Firewall box 712
can also include a transformation component 710 that applies
suitable transformations to the gathered industrial data 714 prior
to pushing the data to the cloud-based application as cloud data
704. As described in previous examples, these transformations can
include, but are not limited to, compression, truncation,
summarization, filtering, aggregation, addition of contextual
metadata, or other such transformations in accordance with
user-defined or cloud-defined requirements. Beneficially, firewall
box 712 can allow industrial devices 706.sub.1-706.sub.N to
interact with the cloud platform without directly exposing the
industrial devices to the Internet.
[0060] As noted above, in addition to receiving data from
fixed-location industrial systems or supply chain entities, the
cloud-based product tracking system can also collect data from
mobile systems, such as control and/or monitoring systems embedded
in a truck or other cargo vehicle that transports products between
supply chain entities. FIG. 8 illustrates an exemplary cloud
gateway configuration that can be used to send data from such
mobile systems to a cloud platform for tracking purposes. In the
present example, it will be assumed that data is to be collected
from a machine health monitoring system running on board a truck,
which can provide useful information regarding a transportation
status of products loaded on the truck. However, it is to be
understood that the systems and methods described are applicable
for collecting data from any mobile control and/or monitoring
system and sending the data to a cloud platform. For example, these
techniques can also be applied to product health monitoring
applications to determine whether an inventory server behaves
correctly.
[0061] A transportation vehicle can be provided with a local
computer 802 running a cloud gateway service 810. Local computer
802 may be a ruggedized computer having a reinforced casing
designed to withstand the vibration and turbulence that can be
experienced during travel on-board the truck. Cloud gateway service
810 can perform similar functions to cloud interface components 508
and 708 of FIGS. 5 and 7. Communication services 812, also running
on local computer 802, can facilitate communication with a
controller 814, which is used to monitor and/or control the
on-board machine health system. The local computer 802 can also
optionally include a local human-machine interface (HMI) 808 for
local visualization of controller data at the truck.
[0062] In one or more embodiments, the cloud gateway service 810
can be a service (e.g., a Windows service) that runs on local
computer 802 on-board the truck. The cloud gateway service 810 is
responsible for pushing local controller data from controller 814
to cloud platform 806 via the web services exposed by a cloud
application. The cloud gateway service 810 can also support
store-and-forward logic used when the connection between the truck
and the cloud platform 806 is temporarily interrupted. In some
embodiments, the data collected by the cloud gateway service 810
can be pushed to the cloud via a wireless radio 804 on-board the
truck (e.g., 3G wireless radio).
[0063] In one or more embodiments, the cloud gateway service 810
can periodically read data from the controller 814 and a global
positioning system (GPS, cell tower triangulation, etc.) location
provider (not shown) on-board the truck and send both the
controller data and the location data to the cloud application
residing on cloud platform 806. The cloud gateway service 810 can
also receive information from a cloud application residing on cloud
platform 806 that indicates how often data should be sent to the
cloud and how the gateway should handle disconnects (store and
forward behavior).
[0064] The upload frequency (slow poll mode versus fast poll mode)
can be controlled by the product tracking system on the cloud
platform 806 on a per truck basis. For example, an object
representing a given truck in the product tracking system may have
a property indicating the upload mode for the given truck's cloud
gateway. The cloud gateway service 810 can ping the cloud platform
806 at a pre-defined frequency (e.g., once per minute) to upload
the controller data and/or to check for a change in the upload mode
(fast poll mode versus slow poll mode).
[0065] Devices that send industrial, product, or transportation
data to the cloud platform can determine which subsets of available
data are to be sent to the cloud by reading configuration data
associated with the devices' cloud interface components (e.g.,
cloud interface components 508 or 708). Exemplary configuration
data for a cloud interface component is now described with
reference to FIG. 9. Configuration data 902 resides locally on its
associated cloud-capable device, and instructs the device as to
which data should be collected and sent to the cloud platform, a
destination cloud platform for the data, and other such specifics.
Configuration data 902 comprises a number of configurable data
fields 904 that allow a user to easily configure the parameters of
the cloud interface component. The exemplary configuration data 902
illustrated in FIG. 9 includes fields for the System ID, the
Controller ID, one or more controller tags, a cloud URL (uniform
resource locator), and a maximum local storage, where the values of
the respective fields can be set by the user. It is to be
appreciated that the fields illustrated in FIG. 9 are only intended
to be exemplary, and that configuration data 902 may include any
suitable set of configuration fields without departing from the
scope of this disclosure.
[0066] The System ID field can be an identifier of the control
system for which the data is to be collected. For example, the
System ID can identify a production area, a machine, an assembly
line, or other system designation. In another example, the
cloud-capable device may be used to collect data from a mobile
control and/or monitoring system residing on a truck (e.g., a
system health monitoring system on a cargo or service vehicle), and
the System ID can be a truck identifier. In this way, data from
multiple trucks comprising a fleet can be collected using
respective cloud gateways on board each truck, and the source of
the data can be identified by the cloud application by each cloud
gateway's System ID.
[0067] The Controller ID field can identify an industrial
controller from which the data is to be collected (e.g., a
controller associated with the control system identified by the
System ID field), and the Controller Tag fields can identify the
particular controller tags holding the data. These can include both
discrete controller tags containing digital data values as well as
analog tags containing integer or real data values. The Cloud URL
field can identify the address of the cloud platform to which the
data will be sent. The maximum local storage field can be used to
configure a maximum amount of local device storage space that is to
be used for local data storage when communication to the cloud
platform has been lost.
[0068] Returning now to FIG. 4, data received by product tracking
system 402 from devices 404 is optionally filtered by filter
component 416 and moved to cloud storage 426. To facilitate near
real-time product tracking, product tracking system 402 can include
a correlation component 406 configured to aggregate and correlate
subsets of the collected data to determine a product's status
within the supply chain. Correlation component 406 can leverage the
data in cloud storage 426 in a number of ways to generate product
tracking information. In one exemplary scenario, product units or
product lots can be associated with a unique identification number
so that the products can be identified at certain points within the
supply chain. For example, products may be stamped with a unique
two-dimensional (2D) barcode at the supply or manufacturing entity
(e.g., using a pin-stamper or laser marker). As the individual
product units progress through various production stages at the
supply or manufacturing entities, the barcode can be read at
various points using mounted or hand-held barcode readers, and
production data generated for the product unit on the plant floor
can be tied to the unique identifier before being sent to the cloud
platform.
[0069] For instance, a machined part may pass through a leak test
station at a manufacturing facility where a fluid pressure test is
applied to the part to ensure that the porosity of the part will
not cause undesirable fluid leaks. After the pressure readings have
been taken for the part, the part may advance to a barcode reading
stage at the end of the leak test station so that the part's 2D
barcode can be read. The leak test data, the identifier read from
the barcode, and a timestamp indicating a time when the data was
measured can then be sent to the product tracking system 402 on the
cloud platform, providing a record of when the part passed through
the leak test station. The bundled data can be moved to the cloud
using any of the exemplary techniques described above. For example,
a cloud-capable industrial controller that monitors and controls
the process can receive the data from the leak test equipment and
barcode reader and send the data to the cloud platform using an
integrated cloud interface component. In another example, the data
can be sent to a cloud proxy device (e.g., a dedicated cloud proxy
device, a peer industrial device as illustrated in FIG. 5, a
cloud-capable firewall device or other network infrastructure
device as illustrated in FIG. 6, or other such proxy device), which
then sends the data to the cloud platform.
[0070] In a similar fashion, product lots can be tracked through
portions of the supply chain using radio frequency identification
(RFID) tags physically attached to the lots. The RFID tag for a
given lot can be read at various stages of the supply chain and
sent to the cloud-based product tracking system 402 together with a
time-stamp to provide a record of the lot's progress through the
chain. Using these or similar techniques, a product's progress
through the various plant-floor processes at the supplier and
manufacturing entities of the supply chain can be tracked at the
cloud platform.
[0071] Additionally, cloud-based product tracking system 402 can
collect data regarding a product's progress between supply chain
entities as the products are being transported. For example, GPS
systems embedded in a cargo vehicle can measure a current
geographical location and/or speed of the vehicle, and a controller
on-board the vehicle can bundle this location information with a
product identifier or lot number for products loaded on the
vehicle. The controller can also associate a time-stamp for the
bundled data. The controller can then send this bundled data to the
cloud platform for storage and analysis. Moreover, when the cargo
has reached its destination (e.g., a warehouse or retail outlet),
the unique product or lot identifiers can be read as the products
are received (e.g., by hand-held readers), and a time-stamped
record of the receipt can be sent to the cloud platform. Sales and
returns of a product at a retail outlet can also be recorded by
product tracking system 402. For example, sales data can be stored
in a server at the retail outlet having access to the cloud
platform, and the server can provide sales records to product
tracking system 402 according to a defined frequency (e.g., daily,
when a new record is added, etc.).
[0072] Given the diverse supply chain data maintained in cloud
storage 426, correlation component 406 can identify relationships
between data sets that facilitate tracking a status of a product
(or group of products) through the supply chain. For example,
correlation component 406 can aggregate data sets associated with a
common product identifier and arrange the aggregated data into a
chronological order based on time-stamps associated with the
records, providing a time-series record of the product's progress
through the supply chain.
[0073] Correlation component 406 may also identify correlations
between data sets based in part on a data model 422 that models at
least a portion of the supply chain or entities within the supply
chain. An exemplary data model 422 can represent an industrial
enterprise in terms of multiple hierarchical levels, where each
level comprises units of the enterprise organized as instances of
types and their properties. Exemplary types can include, for
example, assets (e.g., pumps, extruders, tanks, fillers, welding
cells, utility meters, etc.), structures (e.g., production lines,
production areas, plants, enterprises, production schedules,
operators, etc.), and processes (e.g., quality audit, repairs,
test/inspection, batch, product parameters, shifts, etc.).
[0074] Turning briefly to FIG. 10, an exemplary organizational
hierarchy that can be used as a basis for data model 422 is
illustrated. In this exemplary organizational model, the
hierarchical levels can include--from lowest to highest--a workcell
level 1002, a line level 1004, an area level 1006, a site level
1008, and an enterprise level 1010. The type instances described
above--representing units of the enterprise--can be defined for
respective levels of this hierarchical structure. In one or more
embodiments, the cloud-based product tracking system described
herein can provide a standard set of types that allow the user to
model entities of a supply chain (e.g., supplier facilities,
manufacturing facilities, etc.) in terms of these standard types.
The product tracking system can also allow custom types to be
created, allowing users to represent their particular business or
manufacturing processes using a combination of standard and
user-defined types.
[0075] Data model 422 can allow devices of an automation system and
data items stored therein to be described and identified in terms
of these hierarchical levels, allowing a common terminology to be
used across the entire enterprise to identify devices and data
associated with those devices. Data model 422 can represent
industrial controllers, devices, machines, or processes as data
structures (e.g., type instances) within this organizational
hierarchy to provide context for data generated and stored
throughout the enterprise relative to the enterprise as a whole.
Moreover, so that product tracking system 402 may more accurately
predict estimated times of arrival for products given the products'
current location in the supply chain, data model 422 can include
estimated or average processing times for respective production
lines or production areas. That is, for various production areas,
machines, or supply chain entities, data model 422 can model an
estimated or average time required for a product to be processed
(e.g., machined, manufactured, transported, checked in, etc.) by
the respective areas, machines, or entities.
[0076] In addition to modeling the plant facilities within a supply
chain entity, data model 422 can also model the larger supply chain
in order to more accurately determine a current or predicted status
of a product within the supply chain. Turning briefly to FIG. 11,
an exemplary supply chain that can be modeled by data model 422 is
illustrated. This simplified model includes supply entities 1102,
manufacturing entities 1104, warehouse entities 1106, and retail
entities 1108. In one or more embodiments, data model 422 can
define valid supply chain paths between the entities. For example,
the single manufacturing entity of the present example may receive
supplies from two suppliers--Supplier 1 and Supplier 2--and provide
finished products to three warehouses--Warehouses 1-3. Warehouse 1
supplies products to Retail Outlets 1 and 2, Warehouse 2 supplies
products to Retail Outlet 2 only, and Warehouse 2 supplies products
to Retail Outlets 1 and 3. Some embodiments of data model 422 may
model these valid supply chain paths, distances between the paths,
and other relevant supply path information. Such information can be
leveraged by the cloud-based product tracking system 402 to provide
current and predicted status information for products within the
supply chain, as will be described in more detail below.
[0077] Thus, in embodiments in which data model 422 is used,
correlation component 406 can leverage data model 422 to identify
correlations between subsets of data in cloud storage 426. This can
include, for example, associating a subset of data for a given
product with a particular path through the supply chain (e.g., one
of the supply paths illustrated in FIG. 10) so that product flow
analysis can be performed on the path based on the identified
subset of data. In another example, correlation component 406 can
correlate inventory data for a particular product received from a
retail outlet with product flow data received from a particular
warehouse or manufacturing entity from which the product was
received.
[0078] Product tracking system 402 can include a tracking component
412 configured to analyze supply chain data stored in cloud storage
426, as well as additional correlation data generated by
correlation component 406, to generate historical, current, or
predicted status data for products in the supply chain. Tracking
component 412 can provide such tracking data to authorized
cloud-capable client devices 410 via a client interface component
408. For example, in response to a request for current status
information from a client device, tracking component 412 can search
the supply chain data on cloud storage 426 and identify the most
recent data received for the specified product (e.g., data
associated with a unique barcode number, RFID tag, etc.). Tracking
component 412 can identify the current location of the product
based on, for example, a location of origin for the most recent
data (e.g., a particular production line within a manufacturing
facility, a geographical location reported by a cargo vehicle
transporting the product, invoice information indicating receipt of
the product at a warehouse or retail outlet, etc.). In addition to
the location, tracking component 412 may identify a current status
of the product based on related production or transportation data
that has been correlated with the product by correlation component
406. For example, if the most recent data received for a specified
product indicates that the product is currently at a product
palletizing area of a manufacturing facility, but the most recent
machine status data received for a palletizing machine that stacks
and wraps product for shipment indicates that the palletizing
machine is in an abnormal downtime state, tracking component 412
can determine based on this information that the product is
currently stalled at the palletizing area and report this status to
the client device.
[0079] Like correlation component 406, tracking component 412 can
reference data model 422 in connection with determining a status of
products in the supply chain. For example, one of the client
devices 410 may request an estimated time that a specified product
or lot will arrive at a particular point in the supply chain.
Tracking component 412 can reference the supply chain data in cloud
storage 426 to determine a current location and status of the
product. Tracking component 412 can then reference data model 422
to determine estimated processing times associated with each entity
in the supply chain path between the current location and the
specified destination. Based on this information, tracking
component 412 can estimate the time of arrival for the product and
report this estimate to the client device. Tracking component 412
may adjust such estimated arrival times based on current machine
status information. For example, if tracking component 412
determines that the product is stalled at a particular production
area because of a machine downtime event (e.g., the faulty
palletizing machine in the example described above), tracking
component 412 may apply an adjustment to the estimated arrival time
to allow for the unplanned machine outage. Users of client devices
410 can compare such information with pending sales orders to
facilitate order management and planning.
[0080] In addition to providing information regarding current and
predicted status of products within the supply chain, tracking
component 412 can also analyze historical supply chain data to
identify product flow trends, potential bottlenecks, or
inefficiencies in product flow through the supply chain. For
example, tracking component 412 can analyze historical supply chain
data over a range of time and calculate an average amount of time
that products spend at respective segments of the supply chain.
This can include determining an average time spent at each supply
chain entity, time spent traversing supply chain path segments
between entities, time spent being processed by respective
production stages within a given manufacturing entity, or other
such metrics. Based on these results, tracking component 412 can
identify segments of the supply chain having high latencies and
present these potential supply chain bottlenecks to a user (e.g.,
via client devices 410). In one or more embodiments, tracking
component 412 can perform this latency analysis on a per-product
basis, since different products may be processed differently by the
various supply chain entities and production areas. Accordingly,
tracking component 412 can independently assess potential latency
issues for each type of product in the supply chain.
[0081] Client interface component 408 can report results of these
assessments to authorized client devices 410 having access to the
cloud platform. In some embodiments, tracking component 412 can
also generate recommendations for eliminating identified latency
issues based on these results. In an exemplary scenario, tracking
component 412 may identify one or more segments of the supply chain
having latencies above a defined threshold, signifying a potential
bottleneck in the supply chain. Tracking component 412 can then
generate a recommendation for reducing the latencies of the
identified segments based in part on data model 422, which models
relationships between the various segments of the supply chain. For
example, based on the relationship information provided by data
model 422, tracking component 412 may determine that a high latency
observed at a first production area is due to a high number of
machine outages at a second production area that supplies product
or materials to the first production area. Accordingly, tracking
component 412 may generate a recommendation that a focused
maintenance effort on the unreliable machine in the second
production area would increase product throughput at the first
production area. In one or more embodiments, product tracking
system 402 can be interfaced with a maintenance scheduling system
on the plant floor and proactively schedule maintenance on the
machines or devices associated with the identified bottleneck
area.
[0082] Tracking component 412 can also analyze historical supply
chain data to obtain metrics on supplier performance. For example,
if a manufacturing facility receives materials, parts, or products
from multiple suppliers, tracking component 412 can analyze subsets
of the supply chain data separately for each supplier to determine
metrics on the respective suppliers, such as average turn-around
time between ordering and receipt of materials. This information
can be used by plant personnel to identify the most reliable
suppliers of a given material or part.
[0083] In another exemplary application, the collected supply chain
data can be used to manage inventory. In one exemplary technique,
tracking component 412 can quantify a demand for a product based on
an analysis of pending sales orders and historical sales data
received from one or more retail entities of the supply chain. As
described in previous examples, this sales data can be received at
the cloud platform from cloud-capable business servers at the
respective retail entities and stored on cloud storage 426. Cloud
storage 426 may also contain current warehouse inventory data for
the product (received from respective cloud-capable servers at one
or more warehouses). Based on an analysis of this data, tracking
component 412 can determine a level of demand for the product, and
determine whether current inventory levels and production rates
will ensure that the demand will always be met. In making this
determination, tracking component 412 may consider expected
latencies at multiple segments of the supply chain and assess the
demand in view of these expected latencies.
[0084] For example, tracking component 412 may determine a rate at
which the product is sold at the retail entities, and assess
whether present and future inventory levels will meet this demand
based on current inventory level, an estimated amount of time
required to transport the product from the warehouse entities to
the retail entities, an estimated amount of time required to
manufacture the product at the manufacturing entity and to
transport the finished product to the warehouse entities, or other
estimated latency values. Tracking component 412 can then generate
a recommendation for altering one or more supply chain processes if
it is determined that the current rates of product manufacture,
product consumption, and inventory replenishment will eventually
result in depletion of inventory levels and unsatisfied demand. The
recommendation may be directed toward any segment of the supply
chain. For example, tracking component 412 may generate a
recommendation to maintain a higher warehouse inventory level
calculated to ensure that the demand seen at the retail entities
will be met. Additionally or alternatively, tracking component 412
may generate a recommendation to increase a rate of production at a
manufacturing entity calculated to maintain suitable inventory
levels at the warehouse entities, based in part on the estimated
latencies calculated for the relevant production areas and
transportation paths used to transport the product from the
manufacturing entities to the warehouse entities. In another
example, tracking component 412 may also determine that one or more
supply entities must increase production of a raw material or part
required by the manufacturing entity to fabricate the product in
order to maintain necessary inventory levels downstream. Thus,
cloud-based product tracking system can recommend modifications to
processes at any portion of the supply chain to guarantee that an
observed demand at a retail entity will always be met. Similar to
previous examples, tracking component 412 can make these
determinations based in part on supply chain interdependencies
identified by correlation component 406 and/or data model 422.
[0085] One or more embodiments of product tracking system 402 may,
in addition to or instead of providing recommendations, dynamically
alter supply chain processes in response to detected inefficiencies
or deficiencies. In such embodiments, product tracking system 402
may issue instructions to one or more devices 404 via the cloud
platform to implement the necessary changes. This can include, for
example, altering a shipping schedule maintained in a warehouse
server to schedule more or fewer shipments of a particular part or
product, altering a production schedule maintained in a plant
server to increase the number of shifts during which a particular
product will be manufactured, modifying a supplier order for a raw
material or part used to manufacture the product, or other dynamic
modifications to supply chain processes. Turning briefly to FIG.
12, an exemplary architecture for issuing supply chain management
instructions from a cloud platform is illustrated. As in previous
examples, a cloud platform hosts product tracking services,
including a tracking component 1202 that analyzes supply chain data
stored on cloud storage 1208 in view of data model 1206 (similar to
data model 422) that models hierarchical, geographical, and/or
temporal relationships between supply chain entities. The product
tracking system can exchange data with devices in a plant facility
via device interface component 1204. In the present exemplary
configuration, device interface component 1204 exchanges data with
control-level devices 1214 (e.g., industrial controllers, VFDs,
etc.) on a plant network 1216 and business-level devices 1228
(e.g., business servers, financial systems, order management
servers, etc.) on a business network 1226 via a cloud proxy device
1220 (e.g., a firewall box or other network infrastructure device
that acts as a cloud proxy, as illustrated in FIG. 7). Cloud proxy
device 1220 is communicatively coupled to the cloud platform via
cloud interface component 1222. If tracking component 1202
determines that a modification must be made to one or more supply
chain processes on the plant-floor or business-level side of the
enterprise, tracking component 1202 can instruct device interface
component 1204 to send supply chain management data 1212 to the
cloud proxy device 1220 to be directed to the appropriate
control-level or business-level device. Cloud proxy device 1220 can
relay supply chain management data to the respective devices
according to the particular communication protocol used by the
target device. For example, cloud proxy device 1220 can send
management instructions to the control-level devices 1214 using
Common Industrial Protocol (CIP), and to the business-level systems
using TCP/IP protocol.
[0086] Visualization of tracking information at the client devices
is now discussed with reference to FIG. 4. To visualize tracking
information, recommendations, and other information generated by
product tracking system 402, client interface component 408 can
serve predesigned interface displays 424 to any Internet-capable
client devices 410 having access privileges to product tracking
system 402, and render tracking data via the display screens using
the client device's native display capabilities. To this end, a set
of preconfigured display screens 424 can be stored on cloud storage
associated with product tracking system 402, and the client
interface component 408 can deliver selected display screens 424 in
response to invocation by the client device 410. The display
screens 424 can be developed, for example, using a development
environment provided by product tracking system 402. In one or more
embodiments, product tracking system 402 can provide this
development environment as a cloud service, allowing a developer to
remotely access a set of cloud-side interface screen development
tools to facilitate design of interface screen layouts, data links,
graphical animations, and navigation links between screens. In such
embodiments, the interface screen development environment can allow
the developer to leverage cloud resources (e.g., cloud storage and
processing resources) to develop a set of display screens 424 for a
given operator interface application to be run on product tracking
system 402. Alternatively, some embodiments of product tracking
system 402 can allow display screens developed by external display
development applications to be uploaded to the cloud platform and
executed by the product tracking system 402 during runtime.
[0087] Each of the display screens 424 can include display tags
defining which data items are to be displayed on the respective
screens, formats for the respective data items, desired graphical
animations to be associated with the respective data items,
graphical elements to be included on the respective display screens
(e.g., externally defined graphical elements definitions), and
other such configuration information. Some display screens 424 can
also be configured to render alarm or informational messages in
response to determinations that subsets of the supply chain data
have met certain conditions (e.g., in response to a determination
that a given industrial parameter has exceeded a defined setpoint,
or that a defined production goal has been met). Since supply chain
data can be received from multiple industrial systems and supply
chain entities (possibly at diverse geographical locations),
alarms, notification events, animation triggers, and the like can
be defined in terms of composite data values for multiple supply
chain entities, allowing the entities to be viewed and analyzed
from a high-level enterprise perspective. For example, consider a
scenario in which a particular product is being produced at three
different facilities. Respective devices 404 can deliver production
statistics to the device interface component 414, and the product
tracking system 402 can aggregate these production statistics
substantially in real-time to yield composite data (e.g., a total
production count for all three facilities) even though the three
facilities may not be communicatively networked together over a
data network. One or more of the displays screens 424 can be
configured to display these composite production statistics,
trigger alarms or graphical animations as a function of the
composite statistics, etc. Client interface component 408 can
deliver these display screens to authorized client devices 410
having Internet access and suitable authorization credentials,
providing owners of the client devices 410 with an enterprise-level
view of the multiple industrial systems and supply chain entities
monitored by product tracking system 402.
[0088] The cloud-based product tracking system 402 can support
conditional display of supply chain and tracking data based on
defined user roles having different levels of access privileges.
Accordingly, product tracking system 402 can allow multiple user
roles to be defined (e.g., operator, plant manager, finance,
accounting, administrator, etc.), and customize the presentation of
tracking data for the respective user roles. For example, an
administrator or other user with administrative privileges can
associate a given user role with a subset of display screens 424
that users belonging to that user role are allowed to access. In
another example, selected data displays on the display screens 424
can be configured with visibility links that render the selected
data visible only to users associated with certain authorized user
roles.
[0089] One or more embodiments of the cloud-based product tracking
system 402 can allow individual users to subscribe to selected
real-time data feeds from one or more industrial systems or supply
chain entities. For example, a maintenance engineer may be
interested in monitoring a particular performance metric of a
specific machine at a plant facility. Product tracking system 402
can allow the engineer to identify the machine and the performance
metric (e.g., a temperature of a die cast oven) and add this data
feed to one of the existing display screens 424 as a user
preference. Alternatively, product tracking system 402 can create a
new custom screen in response to the subscription request. In
either case, the subscription information can be stored in a user
profile associated with the engineer, and the client interface
component 408 can render a live feed of the selected performance
metric to the engineer's client device upon request.
[0090] Since the operator interface displays can be served to
diverse types of client devices (e.g., desktop computers, mobile
phones, tablet computers, laptop computers, HMI terminals,
television monitors, etc.), the cloud-based product tracking system
402 can render a given display screen in a format suitable for
display on the device invoking the screen, and in a manner that
makes efficient use of the device's resources. For example, if the
product tracking system 402 receives a request for a display screen
from a cellular phone, client interface component 408 can deliver
the requested display screen to the cellular phone in a format
adapted to the display capabilities of the phone (e.g., at a
display ratio and resolution suitable for display on the phone's
screen).
[0091] In some embodiments, client applications 410 can run
software applications designed to interact with product tracking
system 402. For example, a product tracking client application can
be provided that, when installed and executed on an
Internet-capable client device, provides access to product tracking
data residing on the cloud platform. Such client applications can
include configuration menus that allow the device owner to identify
the cloud platform and/or product tracking data to be accessed
(e.g., a URL of the cloud platform). Once communication is
established, the client application can provide pre-defined views
of selected subsets of the stored product tracking data. These
pre-defined views can include, for example, position charts that
trace a product's path through the supply chain, graphs
representing latencies of a product at respective stages of the
supply chain, inventory levels of a product at respective warehouse
facilities, scheduling screens showing estimated times of arrival
for products, notification screens providing alerts that a current
rate of flow through the supply chain is not sufficient to meet a
current demand for a product, or other such pre-defined
visualizations.
[0092] To accurately represent temporal relationships between
supply chain events reported by diverse industrial devices,
industrial and supply chain data provided by devices 404 should be
time-stamped using a common synchronized time standard.
Accordingly, in order to accurately determine when an event at a
first supply chain entity occurred relative to an event at a second
supply chain entity, the internal device clocks used by the
respective devices 404 to time-stamp the data should be
synchronized. To this end, data sourcing devices can include time
stamp components configured to synchronize the internal clocks with
a common clock maintained on the cloud platform.
[0093] FIG. 13 is a high-level overview depicting synchronization
of a device clock with a cloud clock. In the present example,
industrial devices 1308.sub.1 and 1308.sub.2 are configured to
provide data to a cloud platform 1302 (e.g., over an Internet
layer) for use by product tracking services 1316 residing on the
cloud platform 1302. Industrial devices 1308.sub.1 and 1308.sub.2
can reside at different locations (Location 1 and Location 2). For
example, industrial devices 1308.sub.1 and 1308.sub.2 may be
located at different plant facilities or at different areas within
the same plant facility. In some cases, industrial devices
1308.sub.1 and 1308.sub.2 may be located in different time zones.
To ensure that data received from industrial devices 1308.sub.1 and
1308.sub.2 are time stamped according to a common time reference,
internal device clocks 1312.sub.1 and 1312.sub.2 can be
synchronized to global clock via an atomic clock receiver or a GPS
receiver. Alternatively, internal device clocks 1312.sub.1 and
1312.sub.2 can be synchronized to a common cloud clock 1306
maintained by the cloud platform 1302, as illustrated in FIG. 13.
Time stamp components 1310.sub.1 and 1310.sub.2 associated with
industrial devices 1308.sub.1 and 1308.sub.2 can then apply time
stamps to their respective data based on the times provided by
synchronized device clocks 1312.sub.1 and 1312.sub.2. In this way,
data events at each location will be accurately time stamped using
a common clock standard that accurately reflects when an event at
one location occurred relative to an event at the other location.
Moreover, data items from both locations can be aggregated at cloud
platform 1302 and arranged chronologically based on the
synchronized time stamps to yield an event sequence that includes
data events from both locations. Although internal device clocks
1312.sub.1 and 1312.sub.2 have been synchronized with a global or
centralized clock, time stamps may still be viewed locally at the
industrial devices 1308.sub.1 and 1308.sub.2 according to their
respective local time zones.
[0094] One or more embodiments of the cloud-based product tracking
system can also include notification services for notifying
relevant personnel of a detected supply chain event. Accordingly,
such embodiments of the product tracking system can include a
notification component configured to deliver such notifications to
selected client devices according to predefined user preferences.
FIG. 14 illustrates an exemplary notification architecture
according to one or more embodiments of this disclosure. Similar to
previous examples, product tracking system 1404 executing on cloud
platform 1402 receives industrial and/or supply chain data from
devices associated with supply chain 1416 via device interface
component 1412. The supply chain data is stored on cloud storage
1406, where the data can be analyzed by tracking component 1408.
Tracking component 1408 can analyze the stored supply chain data in
view of a data mode of the supply chain or segments thereof and/or
correlations between subsets of the data identified by a
correlation component (not shown).
[0095] In the present example, the cloud-based product tracking
system 1404 running on the cloud platform 1402 can include a
notification component 1410 configured to route notifications 1418
to appropriate plant personnel in accordance with predefined
notification criteria. For example, tracking component 1408 can
determine whether selected subsets of the supply chain data stored
on cloud storage 1406 meet one or more predefined notification
conditions. These can include such conditions as detecting that a
particular process value has exceeded a defined setpoint; detecting
a transition to a particular machine state; detecting an alarm
condition; determining that a specified production, inventory, or
sales goal has been achieved; determining that an order has been
fulfilled or a product shipment has been received at a particular
supply chain entity; or other such conditions that can be detected
through analysis of the supply chain data. When tracking component
1408 detects a condition within the supply chain data that matches
a notification criterion, tracking component 1408 can inform
notification component 1410 that personnel are to be notified. In
response, notification component 1410 can identify one or more
specific plant employees who are to receive the notification, as
well as information identifying a user notification device, phone
number, or email address for each person to be notified.
[0096] In one or more embodiments, notification component 1410 can
determine this notification information by cross-referencing
configuration information that identifies which personnel are to be
notified for a given type of condition, one or more notification
methods for each identified person, and/or other relevant
information. When tracking component 1408 determines that a subset
of the supply chain data meets a notification condition,
notification component 1410 can reference the configuration data to
determine, for example, which personnel should be notified, which
user devices should receive the notification, a required action to
be taken by the recipient, a due date for the action, a format for
the notification, and/or other relevant information. The
configuration data can maintain multiple separate personnel lists
respectively associated with different types of actionable
situations. In some embodiments, the personnel list selected for a
given notification can be at least partly a function of context
data associated with the supply chain data (e.g., context
information applied by transformation components 510, 604, or 710).
For example, if the supply chain data indicates that a process
parameter has exceeded a setpoint value, notification component
1410 can identify the list of personnel to receive the notification
based on the area or workcell to which the process parameter
relates.
[0097] Once notification component 1410 has determined the
appropriate personnel and devices to be notified, the notification
component 1410 can deliver notifications 1418 to one or more
notification destinations. The notification can be sent to one or
more identified Internet-capable client devices 1414, such as a
phone, a tablet computer, a desktop computer, or other suitable
devices. In some embodiments, a cloud application running on the
cloud platform can provide a mechanism for notified personnel to
communicate with one another via the cloud (e.g., establish a
conference call using Voice-over-IP). In some embodiments, the
notification component 1410 can be configured to send the
notification 1418 periodically at a defined frequency until the
user positively responds to the notification (e.g., by sending a
manual acknowledgement via one of the client devices 1414).
Notification component 1410 can also be configured to escalate an
urgency of high-priority notifications if an acknowledgment is not
received within a predetermined amount of time. This urgency
escalation can entail sending the notification 1418 at a gradually
increasing frequency, sending the notification to devices
associated with secondary personnel if the primary personnel do not
respond within a defined time period, or other such escalation
measures.
[0098] FIGS. 15-16 illustrate various methodologies in accordance
with one or more embodiments of the subject application. While, for
purposes of simplicity of explanation, the one or more
methodologies shown herein are 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.
[0099] FIG. 15 illustrates an example methodology 1500 for tracking
product through a supply chain using a cloud platform. Initially,
at 1502, supply chain data relating to a product is collected at a
cloud platform as the product traverses a supply chain. This data
can include production data received from industrial devices at a
supplier or manufacturing facility, location or status data
received from cargo vehicles as the product is being transported
between supply chain entities, sales data received from a business
server at a retail outlet, shipping data received from an inventory
server at a warehouse, or other such information. At 1504, the
supply chain data is aggregated and correlated at the cloud
platform. In some embodiments, the data can be aggregated and
correlated based on contextual information appended to the data
prior to being received at the cloud platform (or applied at the
cloud platform). The data can also be aggregated and correlated
based in part on a data model that defines relationships between
supply chain entities, or between devices comprising the respective
entities. At 1506, tracking information for the product is
generated based on results of the aggregation and correlation of
step 1504. The tracking information can include a location of the
product within the supply chain, an estimated time of arrival of
the product at a specified point in the supply chain, a status of
the product (e.g. "in transit," "in production," "delayed," etc.),
or other such status information. At 1508, the tracking information
is sent to a cloud-capable client device (e.g., via an Internet
connection).
[0100] FIG. 16 illustrates an example methodology 1600 for
identifying inefficiencies in a supply chain using a cloud
platform. Initially, at 1602, supply chain data is received at a
cloud platform from multiple supply chain entities (e.g., supplier
facilities, manufacturing facilities, warehouses, retail outlets,
transportation vehicles, etc.). At 1604, the supply chain data is
aggregated and correlated at the cloud platform. At 1606, an
inefficiency of the supply chain is identified based on the
aggregated and correlated supply chain data. This can include, for
example, analyzing historical product flow data to identify high
latency areas representing potential bottlenecks, identifying areas
having a high number of downtime occurrences, or other such
inefficiencies that impact product flow through the supply chain.
As described in previous examples, the aggregated and correlated
supply chain data can be analyzed in view of a data model of the
supply chain to facilitate identification of potential bottlenecks
or other inefficiencies. At 1608, information regarding the
identified inefficiency is delivered to a cloud-capable client
device from the cloud platform.
[0101] 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.
[0102] 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, 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 I/O modules including analog, digital,
programmed/intelligent I/O modules, other programmable controllers,
communications modules, sensors, actuators, output devices, and the
like.
[0103] 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, 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.
[0104] In order to provide a context for the various aspects of the
disclosed subject matter, FIGS. 17 and 18 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.
[0105] With reference to FIG. 17, an example operating environment
1710 for implementing various aspects of the aforementioned subject
matter includes a computer 1712. The computer 1712 includes a
processing unit 1714, a system memory 1716, and a system bus 1718.
The system bus 1718 couples system components including, but not
limited to, the system memory 1716 to the processing unit 1714. The
processing unit 1714 can be any of various available processors.
Multi-core microprocessors and other multiprocessor architectures
also can be employed as the processing unit 1714.
[0106] The system bus 1718 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).
[0107] The system memory 1716 includes volatile memory 1720 and
nonvolatile memory 1722. The basic input/output system (BIOS),
containing the basic routines to transfer information between
elements within the computer 1712, such as during start-up, is
stored in nonvolatile memory 1722. By way of illustration, and not
limitation, nonvolatile memory 1722 can include read only memory
(ROM), programmable ROM (PROM), electrically programmable ROM
(EPROM), electrically erasable PROM (EEPROM), or flash memory.
Volatile memory 1720 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).
[0108] Computer 1712 also includes removable/non-removable,
volatile/non-volatile computer storage media. FIG. 17 illustrates,
for example a disk storage 1724. Disk storage 1724 includes, but is
not limited to, devices like a magnetic disk drive, floppy disk
drive, tape drive, Jaz drive, Zip drive, LS-100 drive, flash memory
card, or memory stick. In addition, disk storage 1724 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 1724
to the system bus 1718, a removable or non-removable interface is
typically used such as interface 1726.
[0109] It is to be appreciated that FIG. 17 describes software that
acts as an intermediary between users and the basic computer
resources described in suitable operating environment 1710. Such
software includes an operating system 1728. Operating system 1728,
which can be stored on disk storage 1724, acts to control and
allocate resources of the computer 1712. System applications 1730
take advantage of the management of resources by operating system
1728 through program modules 1732 and program data 1734 stored
either in system memory 1716 or on disk storage 1724. 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.
[0110] A user enters commands or information into the computer 1712
through input device(s) 1736. Input devices 1736 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 1714 through the system bus
1718 via interface port(s) 1738. Interface port(s) 1738 include,
for example, a serial port, a parallel port, a game port, and a
universal serial bus (USB). Output device(s) 1740 use some of the
same type of ports as input device(s) 1736. Thus, for example, a
USB port may be used to provide input to computer 1712, and to
output information from computer 1712 to one or more output devices
1740. Output adapter 1742 is provided to illustrate that there are
some output devices 1740 like monitors, speakers, and printers,
among other output devices 1740, which require special adapters.
The output adapters 1742 include, by way of illustration and not
limitation, video and sound cards that provide a means of
connection between the output device 1740 and the system bus 1718.
It should be noted that other devices and/or systems of devices
provide both input and output capabilities such as remote
computer(s) 1744.
[0111] Computer 1712 can operate in a networked environment using
logical connections to one or more remote computers, such as remote
computer(s) 1744. The remote computer(s) 1744 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 1712. For purposes of
brevity, only a memory storage device 1746 is illustrated with
remote computer(s) 1744. Remote computer(s) 1744 is logically
connected to computer 1712 through a network interface 1748 and
then physically connected via communication connection 1750.
Network interface 1748 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).
[0112] Communication connection(s) 1750 refers to the
hardware/software employed to connect the network interface 1748 to
the system bus 1718. While communication connection 1750 is shown
for illustrative clarity inside computer 1712, it can also be
external to computer 1712. The hardware/software necessary for
connection to the network interface 1748 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.
[0113] FIG. 18 is a schematic block diagram of a sample-computing
environment 1800 with which the disclosed subject matter can
interact. The sample-computing environment 1800 includes one or
more client(s) 1802. The client(s) 1802 can be hardware and/or
software (e.g., threads, processes, computing devices). The
sample-computing environment 1800 also includes one or more
server(s) 1804. The server(s) 1804 can also be hardware and/or
software (e.g., threads, processes, computing devices). The servers
1804 can house threads to perform transformations by employing one
or more embodiments as described herein, for example. One possible
communication between a client 1802 and a server 1804 can be in the
form of a data packet adapted to be transmitted between two or more
computer processes. The sample-computing environment 1800 includes
a communication framework 1806 that can be employed to facilitate
communications between the client(s) 1802 and the server(s) 1804.
The client(s) 1802 are operably connected to one or more client
data store(s) 1808 that can be employed to store information local
to the client(s) 1802. Similarly, the server(s) 1804 are operably
connected to one or more server data store(s) 1810 that can be
employed to store information local to the servers 1804.
[0114] 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.
[0115] 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.
[0116] 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."
[0117] 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.
[0118] 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 . . . ).
* * * * *