The subject matter disclosed herein relates generally to industrial automation systems, and, more particularly, to storage, management, and distribution of manufacturing and supply chain data
The following presents a simplified summary in order to provide a basic understanding of some aspects described herein. This summary is not an extensive overview nor is intended to identify key/critical elements or to delineate the scope of the various aspects described herein. Its sole purpose is to present some concepts in a simplified form as a prelude to the more detailed description that is presented later.
In one or more embodiments, an industrial device is provided, comprising an execution engine configured to execute a blockchain instruction that defines a control event to be processed as a transaction of an industrial blockchain; and a blockchain engine configured to exchange data with other devices on an industrial blockchain system, wherein the blockchain engine is further configured to, in response to detection of a capture trigger, verify an authenticity of the control event, create a block of the industrial blockchain that records the control event in response to verifying the authenticity, and send the industrial blockchain to another device on the industrial blockchain network.
Also, one or more embodiments provide a method for generating a record of industrial information, comprising executing, by an industrial device comprising a processor, a blockchain instruction that specifies a control event to be processed as a transaction of an industrial blockchain; in response to detecting occurrence of the control event, verifying, by the industrial device, an authenticity of the control event; and in response to the verifying, creating, by the industrial device, a block of the industrial blockchain that records the control event, and sending, by the industrial device, the industrial blockchain to another device on an industrial blockchain network in which the industrial device participates.
Also, according to one or more embodiments, a non-transitory computer-readable medium is provided having stored thereon instructions that, in response to execution, cause an industrial device comprising a processor to perform operations, the operations comprising, executing a blockchain instruction that defines a control event to be processed as a transaction of an industrial blockchain; in response to detecting occurrence of the control event, verifying an authenticity of the control event; and in response to the verifying, creating a block of the industrial blockchain that records the control event, and sending the industrial blockchain to another device on an industrial blockchain network in which the industrial device participates.
To the accomplishment of the foregoing and related ends, certain illustrative aspects are described herein in connection with the following description and the annexed drawings. These aspects are indicative of various ways which can be practiced, all of which are intended to be covered herein. Other advantages and novel features may become apparent from the following detailed description when considered in conjunction with the drawings.
The subject disclosure is now described with reference to the drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding thereof. It may be evident, however, that the subject disclosure can be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to facilitate a description thereof.
As used in this application, the terms “component,” “system,” “platform,” “layer,” “controller,” “terminal,” “station,” “node,” “interface” are intended to refer to a computer-related entity or an entity related to, or that is part of, an operational apparatus with one or more specific functionalities, wherein such entities can be either hardware, a combination of hardware and software, software, or software in execution. For example, a component can be, but is not limited to being, a process running on a processor, a processor, a hard disk drive, multiple storage drives (of optical or magnetic storage medium) including affixed (e.g., screwed or bolted) or removable affixed solid-state storage drives; an object; an executable; a thread of execution; a computer-executable program, and/or a computer. By way of illustration, both an application running on a server and the server can be a component. One or more components can reside within a process and/or thread of execution, and a component can be localized on one computer and/or distributed between two or more computers. Also, components as described herein can execute from various computer readable storage media having various data structures stored thereon. The components may communicate via local and/or remote processes such as in accordance with a signal having one or more data packets (e.g., data from one component interacting with another component in a local system, distributed system, and/or across a network such as the Internet with other systems via the signal). As another example, a component can be an apparatus with specific functionality provided by mechanical parts operated by electric or electronic circuitry which is operated by a software or a firmware application executed by a processor, wherein the processor can be internal or external to the apparatus and executes at least a part of the software or firmware application. As yet another example, a component can be an apparatus that provides specific functionality through electronic components without mechanical parts, the electronic components can include a processor therein to execute software or firmware that provides at least in part the functionality of the electronic components. As further yet another example, interface(s) can include input/output (I/O) components as well as associated processor, application, or Application Programming Interface (API) components. While the foregoing examples are directed to aspects of a component, the exemplified aspects or features also apply to a system, platform, interface, layer, controller, terminal, and the like.
As used herein, the terms “to infer” and “inference” refer generally to the process of reasoning about or inferring states of the system, environment, and/or user from a set of observations as captured via events and/or data. Inference can be employed to identify a specific context or action, or can generate a probability distribution over states, for example. The inference can be probabilistic—that is, the computation of a probability distribution over states of interest based on a consideration of data and events. Inference can also refer to techniques employed for composing higher-level events from a set of events and/or data. Such inference results in the construction of new events or actions from a set of observed events and/or stored event data, whether or not the events are correlated in close temporal proximity, and whether the events and data come from one or several event and data sources.
In addition, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or.” That is, unless specified otherwise, or clear from the context, the phrase “X employs A or B” is intended to mean any of the natural inclusive permutations. That is, the phrase “X employs A or B” is satisfied by any of the following instances: X employs A; X employs B; or X employs both A and B. In addition, the articles “a” and “an” as used in this application and the appended claims should generally be construed to mean “one or more” unless specified otherwise or clear from the context to be directed to a singular form.
Furthermore, the term “set” as employed herein excludes the empty set; e.g., the set with no elements therein. Thus, a “set” in the subject disclosure includes one or more elements or entities. As an illustration, a set of controllers includes one or more controllers; a set of data resources includes one or more data resources; etc. Likewise, the term “group” as utilized herein refers to a collection of one or more entities; e.g., a group of nodes refers to one or more nodes.
Various aspects or features will be presented in terms of systems that may include a number of devices, components, modules, and the like. It is to be understood and appreciated that the various systems may include additional devices, components, modules, etc. and/or may not include all of the devices, components, modules etc. discussed in connection with the figures. A combination of these approaches also can be used.
Industrial controllers and their associated I/O devices are central to the operation of modern automation systems. These controllers interact with field devices on the plant floor to control automated processes relating to such objectives as product manufacture, material handling, batch processing, supervisory control, and other such applications. Industrial controllers store and execute user-defined control programs to effect decision-making in connection with the controlled process. Such programs can include, but are not limited to, ladder logic, sequential function charts, function block diagrams, structured text, or other such platforms.
Industrial devices 120 may include both input devices that generate data relating to the controlled industrial systems to the industrial controllers 118, and output devices that respond to control signals generated by the industrial controllers 118 to control aspects of the industrial systems. Example input devices can include, but are not limited to, telemetry devices (e.g., temperature sensors, flow meters, level sensors, pressure sensors, etc.), manual operator control devices (e.g., push buttons, selector switches, etc.), safety monitoring devices (e.g., safety mats, safety pull cords, light curtains, etc.), and other such devices. Output devices may include motor drives, pneumatic actuators, signaling devices, robot control inputs, valves, and the like.
Industrial controllers 118 may communicatively interface with industrial devices 120 over hardwired or networked connections. For example, industrial controllers 118 can be equipped with native hardwired inputs and outputs that communicate with the industrial devices 120 to effect control of the devices. The native controller I/O can include digital I/O that transmits and receives discrete voltage signals to and from the field devices, or analog I/O that transmits and receives analog voltage or current signals to and from the devices. The controller I/O can communicate with a controller's processor over a backplane such that the digital and analog signals can be read into and controlled by the control programs. Industrial controllers 118 can also communicate with industrial devices 120 over a network using, for example, a communication module or an integrated networking port. Exemplary networks can include the Internet, intranets, Ethernet, DeviceNet, ControlNet, Data Highway and Data Highway Plus (DH/DH+), Remote I/O, Fieldbus, Modbus, Profibus, wireless networks, serial protocols, and the like. The industrial controllers 118 can also store persisted data values that can be referenced by the control program and used for control decisions, including but not limited to measured or calculated values representing operational states of a controlled machine or process (e.g., tank levels, positions, alarms, etc.) or captured time series data that is collected during operation of the automation system (e.g., status information for multiple points in time, diagnostic occurrences, etc.). Similarly, some intelligent devices—including but not limited to motor drives, instruments, or condition monitoring modules—may store data values that are used for control and/or to visualize states of operation. Such devices may also capture time-series data or events on a log for later retrieval and viewing.
Industrial automation systems often include one or more human-machine interfaces (HMIs) 114 that allow plant personnel to view telemetry and status data associated with the automation systems, and to control some aspects of system operation. HMIs 114 may communicate with one or more of the industrial controllers 118 over a plant network 116, and exchange data with the industrial controllers to facilitate visualization of information relating to the controlled industrial processes on one or more pre-developed operator interface screens. HMIs 114 can also be configured to allow operators to submit data to specified data tags or memory addresses of the industrial controllers 118, thereby providing a means for operators to issue commands to the controlled systems (e.g., cycle start commands, device actuation commands, etc.), to modify setpoint values, etc. HMIs 114 can generate one or more display screens through which the operator interacts with the industrial controllers 118, and thereby with the controlled processes and/or systems. Example display screens can visualize present states of industrial systems or their associated devices using graphical representations of the processes that display metered or calculated values, employ color or position animations based on state, render alarm notifications, or employ other such techniques for presenting relevant data to the operator. Data presented in this manner is read from industrial controllers 118 by HMIs 114 and presented on one or more of the display screens according to display formats chosen by the HMI developer. HMIs may comprise fixed location or mobile devices with either user-installed or pre-installed operating systems, and either user-installed or pre-installed graphical application software.
Some industrial environments may also include other systems or devices relating to specific aspects of the controlled industrial systems. These may include, for example, a data historian 110 that aggregates and stores production information collected from the industrial controllers 118 or other data sources, enterprise resource planning (ERP) and/or manufacturing execution (MES) systems 104, work order management systems 106, or electronic device documentation stores containing electronic documentation for the various industrial devices making up the controlled industrial systems, repositories for machine or process drawings and documentation, vendor product documentation storage, vendor knowledgebases, internal knowledgebases, work scheduling applications, or other such systems, some or all of which may reside on an office network 108 of the industrial environment.
The industrial assets that make up a given facility—including industrial controllers 118, their associated industrial devices 120, HMIs 114, peripheral systems such as ERP systems, etc.—can generate large amounts of data during plant operation. Much of this information is tracked and recorded by various means in order to document the various manufacturing processes carried out by the assets. For example, data historians, data warehouses, or MES systems are often used to collect and archive manufacturing data generated by the industrial assets. This archived data can be leveraged to track production statistics, equipment health statistics, asset lifecycle management, inventory, key performance indicators (KPIs), power consumption, or other such factors.
The supply, manufacturing, and distribution chain for a manufactured product extends well beyond the boundaries of a single industrial facility, and crosses boundaries between several interconnected but substantially independent entities. For example, an industrial enterprise (which may comprise one or more manufacturing and warehouse facilities under a common ownership) may receive materials or component parts from one or more supplier entities that produce the materials or parts. The enterprise may also purchase industrial assets (e.g., custom-built machines, motor control cabinets, etc.) from one or more original equipment manufacturers (OEMs). Manufactured products are sold and distributed via retail outlets that may be owned and operated by entities who are independent from the industrial enterprise. While these independent entities may collect and track data generated within their own boundaries, as participants in a common supply chain these various entities may benefit from selective sharing of their collected data. Reliable and trusted sharing of data can be particularly crucial if business contracts between the entities are in place, since this shared information can ensure that the terms of the contracts are being satisfied. However, since each entity's data is typically collected and stored locally (or on protected remote storage, such as a proprietary cloud-based storage platform), shared data owned by one of the entities may not be easily and readily accessible by third parties, and trustworthiness of the shared data may be a concern.
Moreover, even within the confines of a single industrial enterprise, information may be collected and tracked using separate (and possibly disparate) systems, and under different data formats, for different production areas or departments. Aggregating this segregated data into a common presentation that yields greater insight into manufacturing or business operations can be difficult, requiring normalization of the disparate information, time synchronization between the items of data, etc.
To address these and other issues, one or more embodiments described herein relate to the use of blockchain platforms within an industrial facility as well as throughout a supply, manufacturing, and distribution chain. In one or more embodiments, industrial devices such as industrial controllers (e.g., PLCs or other types of automation controllers), motor drives, HMI terminals, telemetry devices, and other such devices are configured to support a number of industrial blockchain functions. Collections of these blockchain-enabled industrial devices can be networked to form an industrial blockchain system in which the collection of devices capture manufacturing events as transactions, which are verified using consensus-based techniques and added to an industrial blockchain associated with the product being manufactured. This creates a tamper-proof record of relevant manufacturing statistics for the product.
Blockchain-enabled industrial devices can create multiple versions of such industrial blockchains associated with respective different levels of access permissions, including public blockchains that allow all participants within an industrial blockchain ecosystem to view information relating to the product as well as private or semi-public blockchains that can only be shared with selected members of the industrial blockchain ecosystem. This can allow information regarding a manufactured product to be reliably recorded in a distributed, decentralized, tamper-proof ledger that maintains both private information for exclusive use within a plant facility as well as public or semi-public information regarding the product's path through the larger supply chain. In another example implementation, industrial blockchains and associated smart contracts can be used to track machine usage and operating statistics in connection with subscription-based machine operation or maintenance management. Other example systems that leverage industrial blockchains will also be described herein.
A general, high-level overview of blockchain technology is provided as a precursor to discussing the industrial-specific applications of blockchain technology discussed herein.
Blockchain-based platforms can provide access to data from multiple parties in a decentralized manner, in contrast to platforms that share data using a centralized model.
By contrast, blockchain-driven platforms decentralize the data model, eliminating the need to maintain a golden copy 302 or distributing the multiple coordinated versions of the truth.
A blockchain consists of a data structure that orders blocks and links the blocks cryptographically, thereby acting as an immutable, verifiable, distributed ledger. Blockchains require no central authority; instead, trust is established and enforced cryptographically, with participating nodes (e.g., devices associated with entities 406) acting as a consortium and voting on the validity of a block using a consensus mechanism to manage the distributed ledger.
The Merkle tree 606 is stored separately from the block 404, and only the root fingerprint 612 (the top hash) is stored in the block 404. Each block 404 also contains a hash 604 of the content of the immediately preceding block in the chain. For each block 404, the Merkle tree of hashes 608 and the hash 604 of the previous block in the chain are used to create the hash 602 for the block. The data 610 is stored in the Merkle tree 606 separately from the block 404, with the root fingerprint 612 being the only part of the Merkle tree 606 stored in the block 404. This nesting of cryptographic hash values yields a digital fingerprint that renders unauthorized tampering difficult. Compounded with the chaining of transaction blocks 404, the blockchain becomes increasingly difficult to hack, producing a level of trustworthiness that increases over time. Improperly modifying a block 404 would require tampering with the entire transaction history, rendering tampering nearly impossible. In this way, a verifiable, tamper-proof ledger of transactions can be efficiently maintained.
Applications 706 that employ blockchains are constructed on top of the network layer, which exposes the core blockchain functions. Participants in the network 704 (the peer devices) are uniquely identified with digital signatures granted by the network. Participant identities may be anonymous depending on the type of blockchain network model (e.g., public or private). In all cases, transactions are published, visible, and verifiable on the blockchain.
Since these blocks 806 are created and validated in parallel, different versions of the truth can be generated. In these cases, the peers (entities 406) vote on which block should be used. Regardless of the final set of blocks, all choices are most likely valid. The participants in the blockchain network can validate transactions and reject invalid or nefarious transactions 810 (e.g., spending the same money twice in the case of digital currency applications). The system is ultimately consistent and valid.
Some blockchain platforms are also capable of implementing and enforcing smart contracts, which define rules or agreements between participants in the blockchain network.
Various embodiments described herein leverage aspects of blockchain platforms within the context of industrial facilities, industrial enterprises, and manufacturing and distribution supply chains. To this end, industrial devices such as industrial controllers, motor drives, data historians, telemetry devices, HMIs, and other such industrial devices are configured to support creation, validation, and sharing of blockchains.
The use of blockchains between industrial enterprises can also open the possibility of subscription-based serves between OEMs 1006 and owners of factories 1002, or between a manufacturing entity and its customers. Blockchains can also be used to track manufactured products to the end consumers 1008, and public blockchain data generated by a product's traversal through the manufacturing and supply chain can be accessed by consumers 1008 to obtain information about their purchased products. A device vendor 1010 can manufacture and provide blockchain-enabled industrial devices that are used within industrial factories 1002, OEM facilities 1006, and other enterprises to facilitate blockchain-driven industrial applications. The device vendor 1010 can also act as a trust authority for blockchain-driven systems that are implemented by the blockchain-enabled industrial devices. Robust identity management for organizations, people, and products that participate in an industrial blockchain system can ensure the trustworthiness of the participants and the blockchain data. Both public and private blockchain models can be implemented depending on the needs of the industrial application using the platform.
Blockchain-enabled industrial device 1102 can comprise substantially any type of data-generating industrial device, including but not limited to an industrial controller, a motor drive, an HMI terminal, a vision system, an industrial optical scanner, a meter, a telemetry device, an industrial safety device, a safety relay, a barcode stamper, an ERP server, an MES server, an industrial Internet of Things (IIoT) device, or other such device or system. Industrial device 1102 can include a proof engine component 1104, a cryptographic component 1106, a hashing component 1108, an instruction execution component 1110, a user interface component 1112, one or more processors 1116, and memory 1118. In various embodiments, one or more of the proof engine component 1104, a cryptographic component 1106, a hashing component 1108, an instruction execution component 1110, a user interface component 1112, the one or more processors 1116, and memory 1118 can be electrically and/or communicatively coupled to one another to perform one or more of the functions of the blockchain-enabled industrial device 1102. In some embodiments, components 1104, 1106, 1110, and 1112 can comprise software instructions stored on memory 1118 and executed by processor(s) 1116. Blockchain-enabled industrial device 1102 may also interact with other hardware and/or software components not depicted in
Proof engine component 1104 can be configured to validate industrial or supply chain transactions for inclusion in a new block of an industrial blockchain in accordance with a blockchain instruction. Cryptographic component 1106 can be configured to encrypt and decrypt transaction data, recipe data, or other information exchanged with other blockchain-enabled industrial devices within a blockchain system or ecosystem. In some embodiments, cryptographic component 1106 can leverage private keys 1122 and public keys 1124 in connection with encryption and decryption of blockchain information. Hashing component 1108 can be configured to hash transaction data and generate Merkle trees in accordance with a blockchain instruction. Instruction execution component 1110 can be configured to execute industrial blockchain instructions that create blocks representing transactions received or executed by the blockchain-enabled industrial device 1102, add the blocks to industrial blockchains maintained on the device 1102, and update the device's blockchain ledger 1126.
User interface component 1112 can be configured to receive user input and to render output to the user in any suitable format (e.g., visual, audio, tactile, etc.). In some embodiments, user interface component 1112 can be configured to communicatively interface with a development application that executes on a client device (e.g., a laptop computer, tablet computer, smart phone, etc.) that is communicatively connected to the blockchain-enabled industrial device 1102 (e.g., via a hardwired or wireless connection). The user interface component 1112 can then receive user input data and render output data via the development application. In other embodiments, user interface component 1112 can be configured to generate and serve suitable graphical interface screens to a client device, and exchange data via these graphical interface screens. Input data that can be received via user interface component 1112 can include, but is not limited to, user-defined control programs or routines that include industrial blockchain instructions, blockchain configuration parameters (which may be provided as configuration parameters of the blockchain instructions), or other such data.
The one or more processors 1116 can perform one or more of the functions described herein with reference to the systems and/or methods disclosed. Memory 1118 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. As will be described in more detail below, processor(s) 1116 and memory 1118 may be segregated from the primary memory that performs the device's real-time control functions. Collectively, components 1104-1112 described above (or a subset thereof) can be viewed as a blockchain engine 1128 that supplements an industrial device's native functionality with blockchain-related functionality, as will be described in more detail below.
In various embodiments, industrial devices such as industrial controllers, motor drives, HMI terminals, industrial appliances, industrial Internet of Things (IIoT) devices, and other such devices are provided with integrated blockchain creation, validation, sharing, and management functionalities. In some embodiments, aspects of these blockchain functions can be configured by the device owner.
Device configuration application 1208 also supports inclusion of configurable blockchain instructions 1202 within the control program 1204 for execution by the industrial controller 1210. Each blockchain instruction 1202 added to the control program 1204 can have an associated set of instruction parameters 1212 that can be configured by the user via the device configuration application 1208. Example instruction parameters 1212 for an industrial blockchain instruction 1202 can include, but are not limited to, production parameters of a manufactured product for which a blockchain is to be created, prior blockchain information that is expected to be received from other entities that participate in the blockchain (e.g., other controllers or industrial devices within the plant, outside entities that participate in a supply or manufacturing chain such as OEMs or part suppliers, etc.), supplier entities that provide materials or components for the manufactured product (if the supplier does not provide its own blockchain from which this information can be derived), an expiration time or expiration event for the blockchain defining a time that the blockchain can be deleted (in scenarios in which the blockchain only has utility for a limited time during production and can therefore be transient rather than persistent), or other such configuration aspects. In general, blockchain instruction 1202, when executed by the controller's instruction execution component 1110 (which may be part of the controller's program execution component 1306 in some embodiments; see
To simplify configuration of industrial devices to manage blockchains, device configuration application 1208 can include a library of code specific to blockchain creation and management by industrial devices. Such libraries can include sets of blockchain instructions that are specific to defined industries, verticals, or industrial applications. For example, a Brew software library may include blockchain instructions specific to brewery systems. These industry- or application-specific blockchain instructions can set the root of the blockchain based on the selected industry or vertical and auto-generate code for configuring the blockchain in accordance with common standards used within the selected industry. Other user-configurable instruction parameters of these industry-specific blockchain instructions may allow the developer to specify parameters of their specific application (e.g., the number of brewing vats being used) that may vary across different implementations.
In some embodiments, device configuration application 1208 can allow users to configure blockchains to be generated by a blockchain-enabled device 1102 (e.g., controller 1210 or another type of industrial device) using unified modeling language (UML) diagrams or other interfaces for creating linkages and defining hierarchies. A blockchain editor of device configuration application 1208 can allow the user to define dependency diagrams that include automation objects maintained in the blockchain-enabled industrial device 1102. Each automation object defines the data and behavior of its associated device or data object, and can be set to be either public or private via the blockchain editor. The editor can display all available automation objects supported by the industrial device 1102 and let the user check the objects to be included in the blockchain. In some embodiments, the blockchain editor can also allow dependency diagrams to be drawn to define reliance between objects. Inheritance rules can be leveraged for automation objects to automatically determine parents. The editor can also allow users to define whether an automation object is to be traced or untraced, where setting an object to be traced makes the object the root of the blockchain, and multiple traced automation objects yield a hierarchy of dependencies. In this way, industrial automation blockchains can be defined without requiring complicated programming Device configuration application 1208 can also include a template editor that can be used to define smart contracts to be enforced by the blockchain.
A blockchain tester or simulator can also be used to verify operation of the industrial blockchain before deployment. In an example scenario, an OEM may simulate a blockchain associated with their machine before shipping the machine to a customer (e.g., a manufacturing entity). In such scenarios, the blockchain can be run on the OEM's local network to confirm that the blocks are generated correctly.
Blockchain-enabled industrial controller 1210 includes a program execution component 1306 that executes a control program 1204, which was developed and installed on the controller 1210 as described above in connection with
To facilitate monitoring and control of an industrial machine, system, or process 1320 during runtime, controller 1210 receives input signals 1312 from one or more industrial input devices 1316 (e.g., sensors, telemetry devices, etc.) via the controller's analog and/or digital I/O 1308, and program execution component 1306 generates analog and/or digital control outputs 1314 directed to one or more industrial output devices 1318 (e.g., actuators, motor drives, contactors, indicator lights, etc.) based on values of the input signals 1312 and control sequences defined by the control program 1204. Control outputs 1314 can also be initiated in response to or based on operator commands 1302 received via an HMI 114 or other type of user interface or faceplate (e.g., the user controls of a motor drive). These operator commands 1302 can, for example, modify setpoint values or other parameters of the control sequence, initiate or halt control actions, select operating modes for the control sequence, or perform other types of manually initiated actions. In general, blockchain-enabled industrial controller 1210 is capable of carrying out basic real-time monitoring and control functionality typically associated with industrial controllers.
In addition, blockchain engine 1128 is capable of executing blockchain instructions 1202 included in the control program 1204 and previously configured by the controller programmer. For example, blockchain instruction 1202 can be configured to recognize specific user-defined events as transactions to be added to a block 1322. Such transactions can include, for example, detected events or measured metrics observed on the controlled machine, system, or process 1320 based on input signals 1312 (e.g., temperature, pressure, or flow metrics; quality check results such as bolt torque or leak test values; etc.), operator actions identified based on the operator commands 1302 or operator interactions with control panel devices or safety devices (e.g., pushbuttons, switches, light curtains, safety mats, safety pull cords, etc.), programmatic events generated internally by the controller 1210 based on execution of control program 1204 (e.g., alarm events, controller diagnostic events, etc.), deviations of measured telemetry values from a defined range, detected states of industrial sensors, changes of states of industrial safety devices (e.g., light curtains, emergency stop push buttons, pull cords, safety mats, etc.), or other such recordable transactions.
In accordance with the configuration parameters associated with the blockchain instruction 1202, blockchain engine 1128 can assign one or more industrial transactions to a block 1322 having a format similar to those described above (see, e.g.,
In some embodiments, blockchain-enabled industrial devices 1102 can be configured to support different types of blockchain instructions that execute different blockchain functions. For example, a transaction instruction 1402 can be used to configure the blockchain engine 1128 to generate hashes for transaction data in connection with generating a new block 1322, as well as to perform block validation. The blockchain engine's hashing component 1108 can be configured to hash transaction data and generate Merkle trees in accordance with the transaction instruction 1402. Since new blocks leverage the hash of the previous block in the chain to generate the hash for the new block, blockchain engine 1128 can also receive the previous hash 1406 of the previous block in the chain. If the previous block comprises transactions that were generated by the controller 1210 itself, the previous hash 1406 may have been generated by the blockchain engine 1128 itself when the previous block was generated. In some scenarios, depending on the manufacturing workflow and the architecture of devices that execute the manufacturing process, the previous block of transactions may have been generated by another blockchain-enabled industrial device 1102 (e.g., another blockchain-enabled controller 1210 or another type of blockchain-enabled industrial device 1102) or by a third-party entity. In such scenarios, the previous hash 1406 may be received by the industrial controller 1210 from another device or system in the blockchain peer network. This previous hash 1406 together with the data for a set of transactions to be included in a new block are used to generate the next hash 1412 for the block. The proof engine component 1104 can be configured to validate transactions for inclusion in the new block in accordance with the transaction instruction 1402. In some embodiments, the proof engine component 1104 can cooperate with a consortium of other devices on the blockchain system to determine the validity of the transactions using consensus-based techniques. Similar to the techniques described above in connection with
A block instruction 1404 (e.g., blockchain instruction 1202 in the case of industrial controllers) can configure the blockchain engine 1128 to perform updates to the controller's ledger 1126 to add one or more transactions of a new block after the block's transactions have been validated by proof engine component 1104. The proof engine component 1104 can also validate transactions generated by other node devices on the industrial blockchain network in accordance with a consensus-based validation technique, and broadcast its validation findings regarding the validity of the transactions to other node devices on the blockchain network (e.g., other blockchain-enabled industrial devices 1102). In an example scenario, proof engine component 1104 can send information regarding a control event originating on its associated blockchain-enabled industrial device 1102 to one or more other devices on the industrial blockchain network for validation. The proof engine component 1104 of the originating device, as well as those of the other devices on the blockchain network, can independently validate the authenticity of the control event using a suitable consensus-based validation technique (e.g., proof-of-work, proof-of-state, practical byzantine fault tolerance, etc.). The blockchain engines 1128 share their independently derived conclusions with one another, and will only update their respective blockchain ledgers 1126 if at least a minimum number of the devices report that the control event is authentic.
In some embodiments, blockchain engine 1128 can broadcast validated transactions as verified ledger deltas 1408 that can be used by other devices on the blockchain network to update their own ledgers 1126. Proof engine component 1104 can also update the device's own copy of ledger 1126 based on verified ledger deltas received from other devices on the blockchain network to ensure that validated transactions originating elsewhere on the network are recorded in the device's own ledger 1126. Blockchain engine 1128 can also generate and send information regarding errors 1410 discovered in a block of transactions (either a self-generated block or a block received from another device on the blockchain network).
In some embodiments, blockchain-enabled industrial devices 1102 may be configured such that only nodes (blockchain-enabled industrial devices) affected by a transaction will verify the transaction in order to reduce CPU usage relative to verifying the entire blockchain. In such embodiments, the proof engine component 1104 of an industrial device 1102 may be configured to select whether to perform validation analysis on a given block of transactions based on a determination of whether the transactions of the block are relevant to the device's own monitoring and control operations. In an example implementation, the blockchain engine 1128 can allow a user to specify transaction criteria that the industrial device 1102 will use as a basis for determining the types of transactions on which the device will perform validation analysis. Example transaction criteria can include, but are not limited to, identities a subset of other devices in the blockchain system whose transactions will be validated by the device 1102, identities of machines or industrial processes whose transactions will be validated by the device 1102, or other such criteria. Based on this configuration information, the proof engine component 1104 will perform its validation analysis only on transactions that satisfy the defined criteria. This selective merit-based verification of blocks can conserve processing resources on the industrial device 1102 relative to verifying all blocks of a blockchain, while ensuring that all transactions are reliably verified by at least a subset of industrial devices 1102 to which the transactions are most relevant.
In some embodiments, blockchain engine 1128 can also include a private key 1122 and a public key 1124 that can be used by the controller 1210 or other industrial device 1102 to securely share information with other entities on the blockchain network. As will be discussed in more detail herein, this can include secure sharing of recipe data for execution on a selected industrial controller or at a selected industrial facility.
Each blockchain-enabled industrial device 1102 can include a secure storage area (e.g., memory 1118) that is separate from the storage used for real-time monitoring and control. Similarly, processing resources used by the blockchain-enabled industrial devices 1102 can be segregated from the primary processing resources that perform real-time monitoring and control (e.g., the processing resources used to execute control program 1204 and update the device's I/O). In this way, execution of blockchain functionality on the industrial device 1102 does not impact performance of the device's primary monitoring and control functions. In some embodiments, this can be achieved using multi-core processing to partition blockchain transactions from real-time control.
In this illustrated example, blockchain engine 1128 is embodied as a sub-system of controller 1210, and is implemented using separate memory and processing resources from control components 1514. For example, blockchain engine 1128 can utilize its own processor 1116 and memory 1118, which are separate from controller processor(s) 1502 and memory 1504. In this way, blockchain functions (e.g., transaction processing and validation, block generation, smart contract processing and enforcement, etc.) performed by the blockchain engine 1128 is segregated from control-related analytics, and is not necessarily implemented using the primary control language of the controller 1210. While components of the blockchain engine 1128 can read data from and write data to the controller's data table 1508 (e.g., via a data bus 1518) in connection with performing blockchain creation and management functions, the processing resources used to carry out these blockchain functions are physically separated from those used to carry out control. In this way, blockchain functions carried out by the blockchain engine 1128 do not impact performance of the controller's basic control functionality. As noted above, although
Blockchain infrastructure data 1604 can include, but is not limited to, the hash of the previous block in the blockchain (e.g., previous hash 604 in
Ledger entry 1602 can also include a public key 1610 of the associated blockchain-enabled industrial device 1102 and one or more private keys 1612. These keys can be used to encrypt and decrypt information shared with other devices or entities on the blockchain network. In an example specific to industrial applications, an entity on the blockchain network can provide encrypted recipe data to a blockchain-enabled controller (e.g., controller 1210). The recipe data may be proprietary information defining parameters and/or executable instructions for manufacturing a particular product or batch. The recipe data can be encrypted by the sending entity's private key 1612 and decrypted by the receiving controller using the public key 1610 and the controller's own private key. Once decrypted, the receiving controller can execute the recipe to facilitate manufacture of the product. In this example scenario, the receiving controller can leverage the blockchain information to verify that the recipe is from a trusted source before executing, and to verify that the controller itself has been authorized to execute the recipe. Distribution and use of the recipe data can be subject to a smart contract implemented by the blockchain network, as will be described in more detail herein.
In some embodiments, blockchain-enabled industrial devices 1102 can be added to this infrastructure in a substantially plug-and-play manner. For example, upon power-up, a blockchain-enabled industrial device 1102 can broadcast its identity as a blockchain-enabled device to other devices on the blockchain network, and can also detect other blockchain-enabled devices. Devices across all layers of a plant (control, middleware, enterprise, etc.) can share their identities, born-on certificates, firmware versions, and other such information with other peer devices on the blockchain system 1704 (and by extension the larger blockchain ecosystem 1702). These devices can be preconfigured to cooperate with other blockchain-enabled industrial devices as a consortium within the blockchain system 1704 to authenticate transactions using consensus mechanisms (e.g., practical byzantine fault tolerance, proof-of-work, proof-of-state, etc.).
To accommodate brownfield environments that include non-blockchain-capable devices, blockchain-enabled gateway devices can also be deployed. These gateway devices can allow legacy devices without integrated blockchain capability to proxy into the blockchain infrastructure. The gateway devices can create and link blocks of a blockchain based on data generated by the legacy devices and monitored by the gateway device via the network. In an example hybrid architecture, blocks can be created in an industrial controller while the blockchains that record transactions on the controller can reside within the gateway device. In another example architecture, an MES system can perform the blockchain creation and management functions for multiple monitored devices and systems within the plant. These proxy systems can synchronize blockchains from different sources, certify which chains are trusted, and perform other such blockchain management functions.
Since manufacturing and distribution chains can comprise multiple different entities having complex business interrelationships, each entity may wish to regulate access to the information shared with other entities within the chain. For example, a supplier entity that manufactures and provides parts used by another manufacturing entity for manufacture of its own products may wish to provide only a limited subset of its available blockchain data relating to manufacture of the part (e.g., results of quality tests, manufacturing time stamps, a source of materials used to manufacture the part, etc.), while withholding other proprietary manufacturing statistics generated during production of the part and recorded in a blockchain. Accordingly, blockchain-enabled industrial devices 1102 can be configured to generate multiple versions of a blockchain with different degrees of access permissions.
In some embodiments, users can identify which data items are to be included in each version of the blockchain 1304, as well as the scope of access to be assigned to each version of the blockchain 1304, via a device configuration interface (e.g., device configuration application 1208). In an example configuration technique, device configuration application 1208 may allow the user to define two or more blockchains to which transactions are to be added by the blockchain-enabled industrial controller 1210, as well as the scope of access to be to be assigned to each blockchain. The scope of access may be defined, for example, by identifying the devices, entities, or blockchain systems 1704 that are to be permitted access to the data recorded by each version of the blockchain. Once these various blockchain versions are defined, blockchain instructions 1202 can be added to the industrial control program 1204. The blockchain instructions 1202 can include instruction parameters 1212 that allow the user to select data items or control events (e.g., timed events, change-of-state events, alarm events etc.) that are to be considered transactions to be included in a blockchain, as well as a parameter that allows the user to select which of the defined versions of the blockchain 1304 the transaction is to be associated with. In another configuration example, a tag dialog can be invoked on the device configuration application 1208 that allows the user to select which data tags are to be made public so that other devices on the blockchain network can see the path.
One or more of the blockchain systems that make up the ecosystem can maintain both private blockchains 1304b for internal use as well as public blockchains 1304a accessible to other participating entities in the blockchain ecosystem. Public and private industrial blockchains can be used within a blockchain ecosystem comprising several business entities of a supply chain for a variety of applications, including but not limited to tracking of machine performance and usage, tracking of products across a manufacturing facility or within a single industrial enterprise, tracking of products across the larger supply and distribution chain, distribution of proprietary recipe information, and product auditing. These example industrial blockchain applications are discussed in more detail below.
Blockchain-enabled industrial devices that support generation of public and private industrial blockchains can be used to track performance and usage of machines sold by OEMs to their customer manufacturing entities. In an example scenario, multiple machines built by different OEMs (e.g., one or more supplier entities 1902) can be deployed to an end user manufacturing site (manufacturing entity 1904). According to a vertical-specific example, manufacturing entity 1904 may be a beverage factory that runs a bottling line comprising fillers, sealers, conveyors, cartoners, and other machines. Some of the machines that make up the bottling line may be built and provided by one or more OEMs. During the machine build, blockchain-enabled industrial devices 1102 at the OEMs can generate private blockchains 1304b that record transactions and associated data associated with the machine building process that are to be accessible only by authorized devices and personnel associated with the OEM.
The OEM's blockchain-enabled industrial devices 1102 can also be configured to generate public blockchains 1304a that record publicly shared transaction data that can be accessed and viewed by other devices that participate in the blockchain ecosystem, including devices associated with the customer manufacturing entity 1904. This publicly accessible information can include, for example, results of factory acceptance tests (FATs) performed on the machine prior to shipping to the customer. Blockchain-enabled industrial devices that make up the machine, as well as blockchain-enabled test equipment used by the OEM, can capture these FAT results as transactions and record the results as validated blocks in the machine's public blockchain, which is shared with blockchain node devices at the manufacturing facility.
After the machines have been deployed at the manufacturing entity 1904, industrial blockchains can be used to track each machine's performance. For example, during bottling and filling operations at the manufacturing entity 1904, blockchain-enabled industrial devices 1102 at the facility can generate and update both private blockchains 1304b that record production data intended for internal use only, as well as public blockchains 1304a comprising transaction data that can be accessed and viewed by devices associated with the relevant OEM. The manufacturing entity's private blockchain data may comprise, for example, proprietary information relating to the product being manufactured within the manufacturing facility (e.g., recipe data, product order information, product quality check results, etc.), while the public blockchain data accessible by the OEM may include only performance statistics associated with the particular machine that was built and provided by the OEM (e.g., machine downtime statistics, alarm histories, etc.). This allows the OEMs to track performance of their own custom-built machines without being privy to the manufacturing entity's proprietary manufacturing data or information regarding other OEMs' machines. If desired, the blockchain-enabled industrial devices 1102 that make up the various machines of a production line or facility can be configured to maintain separate private blockchains for each OEM, so that performance of machines provided by different OEMs can be compared by the plant owner.
This selective sharing of blockchain data can also be used to generate a reliable tamper-proof ledger of machine usage statistics, which can be used in connection with subscription-based models of machine usage. For example, rather than purchasing a machine from an OEM, the manufacturing entity 1904 may establish a subscription-based contract with the OEM to use the machine at the manufacturing facility and to pay the OEM based on usage (e.g., based on an amount of monthly run-time, product count, power cycles, energy consumption, etc.). In some implementations, terms of this machine subscription service can be enforced by a smart contract defined for the blockchain ecosystem comprising the manufacturing entity 1904 and the OEM (supplier entity 1902). During runtime, blockchain-enabled industrial devices 1102—which can include both devices of the machine itself (e.g., industrial controllers, telemetry devices, power meters, drives, etc.) as well as other industrial devices or systems owned by the plant (e.g., power meters, ERP systems, etc.)—can track and record usage statistics for the machine as a tamper-proof blockchain that is shared with blockchain node devices at the OEM, eliminating the possibility of disputes between the manufacturer and OEM regarding actual machine usage.
Usage and/or status data recorded in the blockchain can also be monitored to determine when components of the machine should be replaced. For example, the smart contract can include provisions for the OEM to replace certain machine components or devices after a defined number of production cycles (or based on another time-based or event-based criterion, such as total energy consumption, part count, downtime or alarm frequency, a KPI setpoint, etc.). In response to a transaction indicating that the part replacement event has occurred, one or more systems within the blockchain ecosystem (e.g. system 2106 described below in connection with
An example workflow for facilitating device replacement within the context of an OEM service agreement is now described. In an example scenario, an OEM may build a custom machine for a manufacturing entity. Typically, the machine will comprise the controlled mechanical system as well as the electrical and control system that distributes power to the machine components and facilitates automated control of the machine. The control system is generally housed in a control cabinet and can include a number of industrial control devices, including but not limited to one or more industrial controllers, motor drives (e.g., variable frequency drives), or other such industrial devices. In this example, the industrial control devices are blockchain-enabled devices.
During the building phase at the OEM facility, verifiable, unique identities of the machine components used in the machine assembly are recorded in the ledger of a public blockchain (similar to public blockhains 1304a illustrated in
In accordance with a contractual agreement between the OEM and the manufacturing entity (the purchaser), the OEM agrees to replace one or more specified component parts of the machine after completion of a defined number of machine operating cycles. The number of operating cycles that is to trigger a part replacement is defined on at least one of the machine's control devices (e.g., the industrial controller in the present example).
During operation at the manufacturing entity's facility, the blockchain-enabled industrial controller tracks a number of production statistics, including an accumulated number of operating cycles performed by the machine, an accumulated amount of time that the machine has run, a number of parts produced by the machine, etc. The industrial devices of the machine's control cabinet record this production data in the public blockchain ledger, signing the production data using the manufacturing entity's private key. The control devices also record modifications made to the machine or its associated industrial devices by the manufacturing entity. For example, changes made to the firmware of the industrial controller or other control devices as a result of reimaging or patching are recorded in the public blockchain ledger, as are modifications made to the OEM-developed control program or application executed on the industrial controller.
In response to determining that information stored in the public ledger satisfies a criterion (e.g., a criterion defined in a smart contract) indicating that the OEM is contractually obliged to perform a component replacement or other maintenance action on the machine (e.g., in response to execution of a defined number of machine cycles, when the accumulated machine run time exceeds a defined number of operating hours, when the machine has produced a defined number of parts, etc.), the block chain engine in the industrial controller signs, on behalf of the owner, a verifiable and contractually binding component replacement order as a transaction in the public blockchain.
Since the OEM has access to data stored in the public blockchain, the OEM receives and verifies the component replacement order, and in response ships the necessary machine component to the manufacturing entity. The manufacturing entity installs the replacement component and records a signed conformation of the replacement in the public blockchain ledger. The OEM can use this verified transaction to initiate payment processing. Using this system, the replacement component, the vendor-specific device firmware, and the OEM-specific application are all verifiably tracked in the public blockchain ledger. The current state reflected in the public blockchain reflects the authorized production cycle count, which is viewable by both the OEM and the end user. For subscription-based operation of the machine, the OEM can authorize the production cycle count in the public blockchain ledger based on payment and agreement. The end-user can also set the criteria for the machine to automatically renew additional production authorization at defined thresholds.
In addition to the information recorded in the public blockchain ledger as described above, the machine's control devices also maintain a private blockchain ledger (e.g., private blockchains 1304b in
The private blockchain for the machine can also include records of maintenance operations performed on the machine that do not affect the OEM contract (e.g., maintenance operations that do not involve modifying the OEM's control application, replacing components that the OEM is obliged to replace, etc.). These maintenance records can also include records of which personnel performed the maintenance operation and when the maintenance operations were performed.
The private blockchain can also include machine operation statistics that do not affect the OEM contract. Such production information can include, for example, identifications of plant employees who operated the machine during each shift, stoppage times during each shift, total machine runtime for each shift, etc. Other information that can be stored on in the private blockchain can include, but is not limited to, internal manufacturing information such as part identities (e.g., chip serial numbers used on an assembled printed circuit board), part defect statistics, improper machine operations, etc.
Other types of entities involved in purchase or leasing of a machine from an OEM can also be included as participants in the industrial blockchain ecosystem. For example, as part of the process of installing a new production line, plant owners may obtain financing from a bank or purchase design services from an engineering firm. Like the OEM, these other entities may be paid by the manufacturing entity 1904 in increments; e.g., based on project milestones or on a periodic basis. Public industrial blockchains generated by devices 1102 can allow all parties to see the progression of the machine build project as the machine moves toward operation, with states of the project being tracked and recorded in the blockchain. Access to the data recorded by the blockchain can be regulated based on the role of the entity. For example, the OEM may be interested primarily in production numbers for billing purposes in a subscription-based contract, while designers may be afforded access to more granular device-level performance data. The diverse entities involved in the machine's lifecycle (e.g., designer, OEM, manufacturer, financial institution, etc.) can each be afforded layered levels of access to blockchain data generated for the machine at all stages of its lifecycle (e.g., design, commission, operation, and maintenance).
The public and private industrial blockchains can also be used to improve technical support services offered by the OEM or by other support entities. For example, if a machine downtime event or other performance issue is reported by the manufacturing entity 1904, the blockchain transactions can be examined by the OEM or other technical support entity to determine the state of the customer's machine at the time of the reported event. Information encoded in the blockchain that may be leveraged by the technical support entity can include, but is not limited to, device identifiers, device configuration data, machine states, etc. The customer's shared blockchain can also log unscheduled maintenance events, skipped lock out/tag out events, or other operator actions that may be useful to technical support entities when tracking a root cause of a reported performance issue. As in previous examples, blockchain-enabled industrial devices 1102 can maintain public blockchains that record transaction data accessible to outside technical support entities, while separately maintaining a private blockchain that records proprietary information that is inaccessible to the technical support entity. The public blockchain can be made accessible to all repair entities that are trusted members of the industrial blockchain ecosystem.
In a related aspect, blockchains generated for the machine (by the blockchain-enabled devices that make up the machine as well as by other peripheral systems such as ERP and MES systems) can be leveraged to perform machine warranty and maintenance tracking. For example, the machine's blockchain can record usage and repair information on the manufacturing entity's plant intranet. This information can include, for example, dates and times at which a maintenance operation was performed, identities of any components or devices that were replaced or reprogrammed, dates and times of lock out/tag out procedures that were followed in connection with a maintenance action, identities of the personnel who performed the maintenance action, etc. The blockchain that records this maintenance information can be maintained on distributed devices within the manufacturing entity's plant intranet, such that any single device on the plant's blockchain network can query the blockchain to obtain maintenance log information for the machine. This creates a tamper-proof record of maintenance operations that can be accessed without the need to log into a data historian. Some of this maintenance and operational information can be maintained on a private blockchain that is only accessible by devices on the plant's own intranet. Additionally, blockchain-enabled devices 1102 within the plant can generate a public version of the machine's blockchain that includes warranty-related information that is accessible by outside support entities (e.g., OEMs or other technical support entities) who have a business interest in the information. Information in this public version of the blockchain can include, for example, operating hours, power cycles, identities of devices added to the machine (which may be unauthorized devices), etc. This public version of the machine's blockchain can be viewed by outside support entities to validate claims made by the machine owner regarding internal maintenance actions performed on the machine or the machine's operational history.
The techniques described above regarding the use of industrial blockchains to track an OEM-provided machine across its lifecycle can also be applied to parts, sub-assemblies, or materials provided by supplier entities 1902 to a manufacturing entity 1904. For example, the blockchain systems that make up an example industrial blockchain ecosystem may be geographically distributed across multiple businesses that together form an integrated supply chain for a product. In an automotive example, sub-assemblies for a car produced by an automotive facility (the manufacturing entity 1904 in this example) may be manufactured by respective sub-assembly suppliers (supplier entities 1902). In addition to generating private blockchains 1304b that record proprietary manufacturing data generated in connection with the fabrication of the sub-assemblies, blockchain-enabled industrial devices 1102 at the supplier entities 1902 can generate public blockchains 1304a that record information regarding manufacture of the sub-assemblies permitted to be shared with the manufacturing entity 1904. These public blockchains 1304 are accessible by devices at the manufacturing entity 1904, and only comprise a subset of available sub-assembly manufacturing information that the supplier is contractually obligated to provide to the manufacturer. This public blockchain information can be incorporated into the manufacturer's own information tracking for the fully assembled and sold vehicles.
Also, similar to the OEM example described above, public blockchains 1304a that record transactions at the manufacturing entity 1904 can be used to share a selected subset of performance or test data for these sub-assemblies with their associated supplier entities 1902, allowing the sub-assembly suppliers to track the performance of their own sub-assemblies after the sub-assemblies have been sent to the manufacturer.
Blockchain-enabled industrial devices 1102 can also be configured to support the use of blockchains in connection with distribution of proprietary recipes between supply chain entities and execution of those recipes on industrial controllers. A recipe may comprise a set of executable instructions and/or parameter values for manufacturing a specific type of product or material. When installed and executed on an industrial controller, the recipe instructs the controller how to produce the specified product or material. While many recipes are designed by engineers within the plant facility that produces the product, in some cases the recipe may be a proprietary set of instructions and/or parameters designed and distributed by an outside entity. In an example scenario, an OEM may design and distribute recipes to manufacturing customers that have purchased or leased the OEM's proprietary equipment, so that the OEM's recipe can be executed on the equipment in connection with manufacturing a particular type of product. In another example, a manufacturing entity may provide a recipe to a supplier entity to ensure that component parts or materials manufactured by the supplier for the manufacturing entity meet specification requirements. The provider of the recipe may wish to keep the details of the recipe hidden from the receiving entities that utilize the recipe to produce a batch of product. From the opposite perspective, the entity that receives and installs the recipe on their equipment requires verification that the recipe being installed is from a trustworthy source.
Accordingly, industrial blockchains can be used to ensure to the manufacturing entity that a recipe is from a trusted source and to track execution of the recipe on the end manufacturing entity's equipment. The blockchain can also track changes made to the recipe itself. In an example scenario, a recipe holder—such as a supplier entity that develops and provides recipes for execution at partner facilities—can deliver a signed, verifiable recipe to the recipe user (the manufacturing entity that will execute the recipe on one or more industrial controllers to yield a product or material in accordance with specifications encoded in the recipe). The recipe may be contractually bound to produce a specified number of units or batches, or may have an associated timed expiration beyond which production rights afforded to the recipe user expire. The recipe to be distributed to the supplier entity can be embedded in a blockchain, and a public key infrastructure (PM) system (implemented by the cryptographic components 1106 of the blockchain-enabled industrial devices 1102 and using private keys 1122 and public keys 1124) can be used to ensure that the recipe is executed only on a specified target device (e.g., a specified industrial controller 1210). For example, a sending device can wrap the recipe with a private key to yield an encrypted recipe, and the cryptographic component 1106 of the receiving controller (e.g., controller 1210) on which the recipe is to be executed can unwrap the encrypted recipe with its own private key 1122 using the public key. Blockchain-enabled industrial controllers 1210 at the recipe user's facility can be configured to leverage the blockchain information to verify that the recipe is from a trusted source (the recipe holder) before executing, and to verify that the controller itself has been authorized to execute the recipe. Controllers 1210 can also execute the recipe without permitting the recipe holder to view the specifics of the recipe. In this regard, the blockchain-enabled system may place intentionally obfuscated ingredient orders through the recipe maker's supply chain.
In some embodiments, a licensed contract to use the recipe can also be embedded (e.g., as a smart contract enforced by industrial devices 1102 that make up the industrial blockchain ecosystem) to prevent execution of the recipe on the recipient's controller after an agreed number of parts have been produced using the recipe (or based on another termination criterion, such as a specified expiratory date, consumption of a specified amount of power by the controlled system, etc.). Geotagging can also be used to verify that the recipe is being executed at an agreed location (e.g., at a specified plant facility). In such embodiments, the recipe can be made aware of its location based on geotagging functionality of the industrial device 1102 on which the recipe is executed, and will only allow execution by the industrial device 1102 if the geotagged location corresponds to the agreed location.
In such recipe sharing systems, when the recipe is delivered, the public ledger of the industrial blockchain—which can be accessed by both the recipe owner and the recipe maker—may include the signed and verified recipe, the authorized number of production units or batches and/or the authorized period of production. During production, the public ledger can also record the elapsed number of units produced and/or the elapsed runtime for the recipe. At the recipe maker's facility, blockchain-enabled industrial devices are configured to validate the recipe, to interpret the obfuscated recipe, to take the production order, and to determine the quantities and ingredients needed to execute the recipe. The blockchain-enabled devices can also control the production process by placing ingredient orders through the supply chain to the recipe maker. Also, during production, the blockchain-enabled device 1102 can also maintain a private blockchain ledger that is visible only to the recipe maker, and includes proprietary recipe operations information, including but not limited to batches of different recipes for different recipe owners, private end user production statistics not covered by the recipe contract, private machine operational information (e.g., identities of plant personnel who operated the machine, runtime statistics for the machine, downtime statistics for the machine, etc.), internal manufacturing information, defect tracking statistics, and other such proprietary information.
In general, selective access to public and private industrial blockchains can be granularized as needed. For example, fully public industrial blockchains can render their associated transaction data available to all entities and devices that make up the blockchain ecosystem. Blockchain-enabled industrial devices 1102 can also support semi-public industrial blockchains that allow transaction data to be shared only with a specified subset of all entities within the industrial blockchain ecosystem (e.g., as in the OEM and sub-assembly supplier examples described above, in which the public blockchains are only made accessible to the relevant OEM or supplier). Similarly, private blockchains 1304b that only share transaction data among devices within a given industrial facility or industrial enterprise (e.g., among devices on a plant's intranet) may be accessed according to a layered access permission model. For example, some private industrial blockchains may be shared among all participating devices on a plant's intranet, while other private industrial blockchains may be shared only by a subset of devices that are associated with a given production area or production line.
Public and private industrial blockchains can also be used to track manufactured products through a manufacturing facility or across multiple facilities of an industrial enterprise.
Component parts or materials produced by Production Areas 1 and 2 are conveyed to Production Area 3 for assembly into either a finalized product or a sub-assembly of the final product. The blockchain-enabled industrial controller 1210 (or another blockchain-enabled industrial device 1102) that controls the industrial assets in Production Area 3 can link the blockchains generated by Production Areas 1 and 2, which are associated with the respective component parts generated in those production areas. In an example system, the plant may be a bottling facility, and three upstream production areas (including Production Areas 1 and 2) may respectively produce a bottle, a cap, and a label which are then assembled at Production Area 3. When a received bottle, cap, and label are assembled at Production Area 3, the blockchain-enabled industrial controller 1210 that monitors and controls the Production Area 3 automation system can synchronize and link the blockchains associated with each of the components that were generated at the respective upstream production areas, yielding a composite blockchain for the assembled product (a capped and labeled bottle). The devices of Production Area 3 can also expand this composite blockchain by adding records of its own operations performed on the assembled product. As part of the controller's initial configuration, a ledger design tool (e.g., a tool of device configuration application 1208) can allow the user to define what information is to be included in the ledger (e.g., ledger 1126), and to select which automation object instantiated in the controller 1210 is to be used as the ledger root.
In some implementation, each assembled product can be represented by a new block in the industrial blockchain, with each block's transaction data comprising production statistics for the product. Example statistics that can be archived in the blockchain can include, but are not limited to, a part identifier (e.g. a VIN number of an assembled vehicle, a serial number of a capped and labeled bottle, etc.), a timestamp indicating a time of assembly or manufacture, measured quality metrics (e.g., leak test results, cap or bolt torque data, etc.), machine states or telemetric data at the time the product was assembled (e.g., oven temperatures, moisture levels, water or air pressures, etc.), or other such information that can be married to a unit or batch of product. In some implementations, each operation performed on the unit of product during its progress through the production process can be represented as a transaction within the industrial blockchain.
This technique for linking industrial blockchains associated with component parts of a final assembled product can be extended to include parts, sub-assemblies, or materials received from outside supplier entities, and more generally to traversal of products across the entire supply chain (e.g., the supply chain depicted in
In another example configuration, an industrial blockchain generated for a component part to be assembled with other parts into a final product can include, in addition to production statistics for the component part, provenance information that defines, as immutable and verified blockchain data, an origin or source of the component part. This provenance information can comprise, for example, one or more of an identity of a vendor or supplier of the component part, a part identifier, identifies of other entities within the supply chain through which the part has traversed, a date of the part's manufacture, a cost of the part, or other such information. The part's blockchain can also include part characteristic information about the part, including but not limited to a type of the part, a color of the part, a composition of the part, a size of the part, or other such information.
One or both of the provenance information or the part characteristic information stored in the component part's blockchain can be leveraged by industrial devices at the manufacturing site to verify, prior to assembly of the part into the final product, that the correct part is being incorporated into the final product. For example, with reference to the example production facility depicted in
In some implementations of this system, industrial devices that process a given component part can obtain some or all of the provenance information or part characteristic information for the part from a radio-frequency identifier (RFID) tag attached to or otherwise associated with the part. In such embodiments, items of provenance and/or part characteristic data can be written to the RFID tag associated with the part at certain points during traversal of the part through the supply chain. This information can subsequently be read from the part's RFID tag by one or more RFID readers and added to the part's blockchain as a transaction.
Systems that support aggregation of component part blockchains into aggregate blockchains associated with a sub-assembly or final assembled product, as described above, can also leverage these aggregate assembly blockchains in connection with warranty returns. For example, a manufacturing entity that produces and ships a sub-assembly or assembled product can store, as immutable composite blockchains, assembly information identifying the various component parts that were used in the assembled product. This assembly information can include some or all of the provenance and/or part characteristic data described above. This composite assembly information can subsequently be checked to determine whether an assembled product that has been returned for repairs or replacement under warranty has been altered or tampered with by the customer. In the case of assembled products comprising RFID-tagged parts, this determination can be made by reading RFID data from the component parts that make up the returned product to determine the as-returned composition of the product, and comparing this as-returned composition with the as-built composition recorded in the assembled product's blockchain. An RFID tag reader interfaced to one or more sources of the plant's blockchain data can be configured to make this comparison and to output information identifying anomalous parts or part replacements present in the as-returned composition. Depending on the terms of the warranty, the manufacturing entity may choose to either deny or proceed with the repair or replacement. For example, the warranty may dictate replacement of one or more specified component parts by the end user is permitted and does not violate the terms of the warranty. If the system determines that only such component parts have been replaced, the replacement or repair may be permitted. Alternatively, if the system determines that a component part replaced by the end user violates the terms of the warranty, the replacement or repair may be denied.
To minimize consumption of storage space, some embodiments of blockchain-enabled industrial devices 1102 can allow users to configure selected blockchains for a product to be transient rather than persistent, such that the blockchains will be deleted after an expiration time or on an event basis. For example, a blockchain generated for a particular item or batch of product may be configured to delete itself from all devices across which the blockchain is distributed after a defined criterion has been satisfied. For example, the industrial blockchain associated with an item of perishable product can be configured to delete itself after an elapse of a time duration after which it can be assumed that the product was consumed (e.g., three months after the product is sold, as determined based on credit card transaction data). In another example, the blockchain associated with a product may be configured to delete itself after the product leaves the manufacturing facility if the blockchain's data only has utility internally during the manufacturing process. Automatic deletion of an industrial blockchain will extend back to the blockchain's root to ensure that blockchain's data can still be validated. Alternatively, when the deletion event occurs, the blocks of the blockchain can be maintained while the associated transaction data is deleted, or a new root can be set such that a later portion of the blockchain remains while an earlier portion is deleted. The portion of the blockchain that is deleted can be dependent on the blockchain's hierarchy. In another example configuration, a blockchain's expiration definition can specify that only a selected subset of participating devices—those not requiring the blockchain's data—may delete the blockchain in response to the deletion event, while other devices may maintain the blockchain. In an example scenario, a blockchain-enabled industrial controller may not need a product's blockchain after the product leaves the production area and deletes the blockchain accordingly (e.g., in response to recorded shipping information that indicates the product has left the facility), while an MES system may save the blockchain for archival purposes.
Since a product may pass through several different supply chain entities, some embodiments of blockchain-enabled industrial devices 1102 can include contingency features for managing gaps within the product's blockchain. These gaps can occur, for example, when the product leaves one facility and is transported to another location in the chain via a truck with no communication capabilities. In some embodiments, artificial intelligence or other types of inference can be used to infer the missing information. When the product reaches another verified entity within the supply chain, historical information can be leveraged to interpolate and confirm that the product is back under control of an authenticated entity.
In addition to the private blockchains 1304b, the blockchain-enabled industrial devices 1102 at the manufacturing facility can also generate public blockchains 1304a that record, as transactions, manufacturing statistics for each unit of product that is to be shared with other devices on the larger industrial blockchain ecosystem. These public industrial blockchains 1304a can be distributed across devices at the industrial facility and devices associated with other entities in the ecosystem (e.g., a supply chain), which are connected via a public or semi-public network 2002 such as the internet or a public or private cloud platform. Public industrial blockchains 1304a can include blockchains that are to be accessible by all participants in the blockchain ecosystem (i.e., fully public blockchains) as well as semi-public blockchains that are to be accessible only by selected entities and/or devices in the ecosystem. In this regard, blockchain-enabled industrial devices 1102 can be configured to generate as many different tiers of blockchains as desired, with each blockchain defined and configured to permit access by a selected set of entities.
In an example scenario, the manufacturing facility may manufacture products for multiple different customers (e.g., a plant that produces custom computer chips for different computer manufacturers). Accordingly, blockchain-enabled industrial devices 1102 used to manufacture the products may be configured to create a proprietary customer-specific blockchain for each customer, which each customer-specific blockchain comprises transaction data associated with that customer's product. In such implementations, the blockchain-enabled devices 1102 can create a new blockchain for each customer-specific manufacturing run. That is, after a production line switches operation from production of a batch of product for a first customer to a new batch for a second customer, the blockchain-enabled devices will cease updating the previous blockchain associated with the first customer's product and begin a new blockchain for the second customer to record transactions associated with the new product run. In this way, industrial devices participating in the blockchain system can segregate industrial blockchains according to customer.
In addition to maintaining separate blockchains for a given product or machine, with each blockchain having different access permissions, some embodiments of blockchain-enabled industrial devices 1102 can be configured to manage selective access to a given single blockchain. For example, an industrial blockchain can be generated that allows the blockchain's hash information to be made public to all entities within the ecosystem while keeping the blockchain's transaction data private. This can allow a manufacturing entity to reassure outside parties that the plant's data is authentic without providing visibility into the data itself (which may be proprietary). In an example scenario, an OEM may vouch for a state of a machine or program, which can be confirmed by checking the publicly accessible hash values of the machine's blockchain. This hash information can be made available without allowing private information about the machine state itself to be viewed by entities outside of the OEM.
To ensure trust relationships between blockchain-enabled industrial devices 1102 that make up an ecosystem 1702 of industrial blockchain systems 1704 (e.g., a supply and/or distribution chain), a trusted entity can certify device vendors that produce blockchain-enabled industrial devices 1102 and that participate in the supply chain, creating a supply chain with signed participation. In general, blockchain-enabled industrial devices 1102 are configured to authenticate transactions (e.g., using digital fingerprinting or by other authentication means) within the global supply chain workflow, including transactions that occur within the manufacturing facility in which the transactions occur (e.g., transaction in which the industrial devices 1102 are directly involved) as well as transactions that originate elsewhere in the supply chain (the industrial blockchain ecosystem) as part of a consortium comprising multiple industrial devices 1102. As an example consensus criterion, a rule can be defined stating that at least 20 devices on the blockchain network must agree that a transaction is valid before adding the transaction to a block.
The use of blockchains throughout the supply chain, as described in previous examples, can also allow a consortium of entities to authenticate standards for a product from many levels. For example, different entities within an industrial blockchain ecosystem can certify that a product meets a defined standard in terms of safety, labor practices, equipment used to manufacture the product, certified plants at which the product was manufactured, etc. The devices making up the consortium can act as a mesh network, where different sub-entities can confirm that the defined standards are being met across multiple supply chain jurisdictions (e.g., that a product is organic, that a material used in the product is authentic, etc.). In an example scenario, to record that a product has been authentically produced by a certified plant and/or using legitimate equipment (e.g., certified machines or other approved industrial devices), the blockchain-enabled industrial devices that were involved in producing the product can record, as a transaction in the product's blockchain, validated identities of the blockchain-enabled industrial devices themselves. In some embodiments, this recorded device identity information can include both identity information for the device itself (e.g., model number, unique serial number, etc.) as well as an identity of the plant entity that owns the equipment. Recording this information as a blockchain transaction creates a tamper-proof, verifiable authentication that the product was produced by approved or certified equipment. In this way, the use of industrial blockchains can simplify the process of tracking compliance paperwork through multiple jurisdictions and ensure the authenticity of such claims.
Industrial blockchains can also be used to authenticate carbon credits by tracking how much carbon dioxide was used to manufacture a product. In an example implementation, all carbon dioxide consumption can be aggregated by the blockchain-enabled devices 1102 and added as a validated element of the blockchain. This trusted and validated consumption data can be submitted to appropriate regulatory agencies for carbon dioxide credits.
Both within the context of a single manufacturing facility (e.g., the system depicted in
To facilitate root cause analysis, blockchains generated by industrial devices 1102 can be configured to capture transactions relating to operation and statuses of machines or production lines themselves. These machine history blockchains may be separate from those that capture transactions relating to manufacture of a product per se, and may capture, from the industrial devices and assets making up a manufacturing facility or supply chain, such information as diagnostic data, operating mode information, machine downtime durations and times, alarm information, telemetric data, or other such information. These blockchains can also capture records of maintenance actions, including but not limited to lock out/tag out actions, records of device or component replacements, operator actions gleaned from interactions with a control panel or HMI, or other such information. By capturing such information as blockchain transactions, industrial blockchains can create a tamper-proof ledger of information indicative of an exact state of a plant at any point in time. This information can be used in connection with troubleshooting issues within a facility or supply chain. These machine history or equipment history blockchains can also be correlated with the product-specific blockchains described above in order to determine a state of a machine or set of industrial assets corresponding to one or more manufactured products of interest. For example, if the blockchain transaction data for an item of manufactured product indicates a quality concern, this product-specific blockchain can be correlated in time with the machine-history blockchain for the production line responsible for manufacturing the product in order to determine if a state of the equipment that produced the product is relevant to the quality concern.
In an example implementation, a set of blockchain-enabled industrial devices 1102 that make up an industrial blockchain system can be configured to generate a plant model blockchain that models the production lines, machines, hardware components, and/or software components (e.g., firmware versions, application versions, etc.) that make up a manufacturing facility (or a production area within the facility). Devices 1102 can assemble these blockchains as the production lines and machines are powered up and the associated sets of equipment report their identity and status information. The devices 1102 can record this identity and status information for all devices within the plant model blockchain, yielding a Merkle tree of hashes in which each element of the tree represents an item of equipment. This plant model blockchain can record, for each device, such information as model numbers, software or firmware revision numbers, configuration settings (e.g., controller or variable frequency drive settings), operating mode information, maintenance log information, safety device statuses, total accumulated runtime data, operating modes, or other such device or asset information.
During plant operation, the plant model blockchain can record changes to the states of the devices and/or machines within the plant, treating each change of a device's state as a transaction to be recorded in the plant model blockchain. In this way, the plant model blockchain can record changes to machine operating modes, changes to a device's firmware or software, changes in states of industrial safety devices, abnormal conditions, diagnostic data, lock out/tag out actions, states of safety lock switches, states of operator panel control devices (e.g., pushbuttons, switches, etc.), sensor states (e.g., part presence indications), or other such information. Thus, the plant model blockchain creates a verified history of the of the plant's overall state, as defined by the aggregated states of the devices and machines that make up the plant. In some implementation, the plant model blockchain may comprise multiple synchronized blockchains corresponding to different production areas or machines within the plant. Analysis tools can be used to analyze these plant model blockchains to identify a chain of cause-and-effect events, or to determine a root cause of an event (e.g., a machine failure, detection of a product defect, etc.). In an example general technique, such analysis tools can identify and analyze a slice of time corresponding to an event of interest across the multiple synchronized plant model blockchains, and identify chains with commonality in connection with identifying the root cause of the event.
These plant model blockchains can also be referenced in connection with device replacements within the plant. In this regard, since the states and configurations of industrial devices currently deployed within the plant facility are recorded within a plant model blockchain, this information can be accessed to determine the correct firmware and/or application that should be installed on a new device that is to replace an existing device. Tracking this information using industrial blockchains can ensure that this replacement device configuration information is reliable, preventing misconfiguration of replacement devices prior to deployment
This plant modeling technique can also be leveraged on a smaller scale to track states and events at the control cabinet level. In an example implementation, blockchain capabilities (e.g., blockchain engine 1128) can be implemented on motor drives (e.g., variable frequency drives or other types of motor drives) that are mounted within a motor control cabinet (MCC). This can allow the states of the MCC to be tracked, recorded, and analyzed.
Since the industrial blockchain paradigm records transactions originating at one industrial asset or device in a decentralized manner across multiple blockchain-enabled devices, each participating industrial device has a degree of visibility into the operation of other devices or systems by virtue of the distributed ledgers 1126 shared across the devices. In some embodiments, blockchain-enabled industrial devices 1102 can incorporate information in this distributed ledger 1126 into the device's control strategy. For example, as noted above, the blockchain-enabled industrial controller 1210 depicted in
Since each industrial device within the blockchain system maintains a local copy of this ledger 1126 of validated transaction data, program execution component 1306 can be configured to leverage selected items of this ledger data in connection with controlling the system or process 1320. For example, control program 1204 can be written to reference one or more items of transaction data stored in the ledger 1126, such that these items of transaction data serve as parameters or inputs into the control program 1204 that at least partially control the states of one or more control outputs 1314. In this way, the blockchain-enabled industrial controller 1210 can control a system or process 1320 based not only on monitored local inputs from the system (input signals 1312), but also on events that occur at other production areas or machines within the plant.
This ledger-based control is not limited to the use of plant-level events to effect control of control outputs 1314. For example, if the ledger 1126 records business-level transactions (e.g., work order information, inventory information, etc.), program execution component 1306 can leverage this information as parameters or inputs into control program 1204. The ledger 1126 may also record validated events that originate at other supply chain entities within the larger blockchain ecosystem (e.g., part or sub-assembly suppliers, OEMs, retailers, shipping companies, etc.), and control program 1204 an be written to reference these external supply chain events as control parameters as well.
Participants in an industrial blockchain ecosystem can access blockchain information to which they have authorized access in a variety of ways.
Blockchain search system 2106 can control remote access to versions of industrial blockchains 1304a, 1304b generated by industrial devices 1102 throughout a supply chain or other industrial blockchain ecosystem. In the illustrated example, user interface application 2110 allows a user to access subsets of relevant blockchain data associated with a finished product 2108 by scanning a scannable code, such as a QR code, imprinted on the product 2108 using the mobile device's optical scanning capabilities. The code establishes the identity of a source of the product's blockchain as well as the stored data to be accessed. When a product's code is scanned by the mobile device 2104 and an authentic user identifier is provided to the user interface application 2110, the application 2110 sends the request 2114 together with the user identity information to the interface component 2118 of search system 2118. Interface component 2118 can verify the identity included in request 2114 and determine a level of access associated with the identity. In response to determining that the identity is an authorized user identity and that the identity is permitted a degree of access to at least a subset of available industrial blockchain information, interface component 2118 instructs blockchain search and management component 2122 to search the blockchains 1304a, 1304b and retrieve a subset of relevant product data 2112 that the identified user is authorized to view based on the data request and identity. The interface component 2118 renders the results on mobile device 2104. The user interface application 2110 can be configured to generate suitable graphical screens 2102 for rendering the authorized product data 2112. Search and management component 2122 can be configured to retrieve the relevant blockchain data from any suitable source of the data accessible within the blockchain ecosystem, including but not limited to any of the blockchain-enabled industrial devices 1102 or other non-industrial sources of the requested data.
This approach can allow product consumers to access and view information about a purchased product via their personal devices. For example, if a batch of bottled water is found to be contaminated, scanning the label on a bottle using a mobile device 2104 can cause user interface application 2110 to interact with search system 2116 to locate and retrieve information identifying a source of the water for that particular bottle. This water source information can be maintained in a public blockchain accessible to consumers. Production details for the bottle itself (e.g., quality check results, cap tightening data, etc.) can also be accessed in this manner Some of this production data may only be accessible to plant personnel or consumers of certain roles. In the case of produce, data regarding the source of the produce (e.g., the farm) as well as the time that the produce was picked can be captured as a blockchain generated by the industrial equipment (including blockchain-enabled industrial devices 1102) that processes and packages the produce, such that the data can be retrieved by search system 2116 and presented on mobile device 2104 in response to scanning an optical code associated with the produce (e.g., a code on a tag affixed to the produce or on a bag containing the produce). In the case of pharmaceuticals, this approach can allow consumers to verify the authenticity of their medications by retrieving blockchain information that tracks the medication's supply chain. This supply chain information can be captured in a public blockchain and made accessible to consumers.
In some embodiments, user interface application 2110 can combine scanning of a product's optical code with voice-based or text-based search. In an example embodiment, after scanning the product's scannable code, the user can enter or speak a request for a certain type of data relating to the product into their mobile device 2104 (e.g., “Confirm that this product is organic,” “where was this water bottled,” etc.). In response, the user interface application 2110 translates the spoken information request into query information that can be combined with the scanned optical code information, submit this combined information to the blockchain search system on the cloud platform or public network 2106, and retrieve a relevant subset of product data that satisfies the user's request and is permitted to be viewed by that particular user (in accordance with the user's identity and/or role).
Blockchain search system 2116 can bundle and send blocks of industrial blockchains to customers upon request via the user interface application 2110, which can include interactive search features that assist the user in easily locating desired information. For example, rather than walking the blockchain to find information of interest, the user interface application 2110 can allow users to drill down to blockchain information they wish to see. In an example use case, a user may a time range into user interface application 2110 together with a request to view all products that were created within the specified time range of interest. In response to this information, blockchain search system 2116 can retrieve, from the relevant blockchains 1304a, 1304b, identifiers of products that were created within the specified time range. Also, external indices with links for selectable dimensions of the product can be built to allow desired information to be found more quickly.
Credit card purchases can also become transactions recorded in the blockchain for a product, allowing products to be traced to the end user (e.g., bottles with a cap that was produced as part of a specified batch can be traced to the owners of the bottles). Including consumer transactions in the product's blockchain can also allow notifications to be targeted to a specific subset of consumers known to have purchased a product (e.g., in the case of recall notifications for a particular batch of the product). Such notifications can be delivered to relevant client devices 2104 associated with known purchasers of a product by blockchain search system 2116 (e.g., by interface component 2118) in response to receiving a request to notify from an authorized vendor of the product. The request to notify can include, for example, an indication of the products for which a notification is to be delivered, a notification criterion that can be used to identify the subset of the products that are subject to the notification (e.g., a time range during which newly manufactured products are known to have been contaminated, a range of product serial numbers, a supplier known to have provided defective parts, etc.), and other relevant information that can be used by the system 2116 to determine which product purchasers should receive a notification. Based on the information included in the request to notify, the search and management component 2122 can map the subset of product serial numbers identified by the notification criterion to the individuals known to have purchased those identified products. This mapping can be determined based on the transaction information stored in the product's blockchain. Interface component 2118 can then deliver suitable notifications to the client devices 2104 associated with the identified purchases.
Including end user transactions as part of the product's blockchain can also allow the blockchain to be mined by sales entities for sales leads. In this way, sales people can readily determine what customers have ordered in the past, as well as identify who within a given company should be targeted for sales campaigns.
The configurability of the blockchain-enabled industrial devices 1102 can allow manufacturers to choose the information that customers are allowed to access. Manufacturers or their associates (e.g., suppliers, OEMs, etc.) can also retroactively add to the set of data that may be accessed by consumers. For example, if a supplier wishes to provide more specific information regarding the source of their water after the products have shipped, the accessibility level of this additional information can be changed from private to public, thereby retroactively rendering this information accessible to consumers.
Although
Blockchain search system 2116 can also be used to execute actions associated with smart contracts in some embodiments. For example, if a smart contract is between an OEM and a manufacturing entity of the blockchain ecosystem includes a provision for the OEM to replace machine components or devices after a defined number of production cycles (or based on another time-based or event-based criterion, such as total energy consumption, part count, downtime or alarm frequency, a KPI setpoint, etc.), search system 2116 can monitor relevant subsets of data logged in blockchains 1304a or 1304b to determine when the trigger for replacing the component has been satisfied. This monitoring can be performed by self-initiated searches performed by blockchain search and management component 2122 on a periodic or continuous basis based on instructions contained in the smart contract. In response to determining, based on the monitoring, that the replacement condition defined by the smart contract has been satisfied, interface component 2118 can generate and deliver a notification to personnel associated with the OEM entity that the component must be replaced at the manufacturing entity per the smart contract. In variations of such embodiments, search system 2116 may also initiate other procedures associated with replacement of the part when the replacement trigger has been satisfied, including generating a purchase order, submitting the order to a vendor, scheduling an on-site visit by the OEM to replace the component, etc. In general, blockchain search system 2116 can be configured to enforce or execute provisions of a smart contract between entities of an industrial blockchain ecosystem by monitoring for conditions defined by the smart contract or for deviations from agreed provisions of the smart contract, and by executing appropriate notification, reporting, or control actions in line with the smart contract.
At 2204, control events associated with control of the industrial process are bundled into blocks of an industrial blockchain associated with the product. In an example implementation, the control program may include industrial blockchain instructions that are configured to bundle the control events as validated transactions and record the transactions into one or more blocks of the industrial blockchain.
At 2206, a determination is made as to whether another blockchain associated with one of the multiple components that are assembled into the composite product has been received. The received blockchain may comprises manufacturing transactions associated with the corresponding component, which were recorded during production of the component by another production area or outside supplier facility. If such a blockchain is not received (NO at step 2206), steps 2202-2204 are repeated until a blockchain associated with one of the components is received.
If a blockchain associated with one of the multiple components received (YES at step 2206), the methodology proceeds to step 2208, where an authenticity of the received blockchain is verified. Verification of the received blockchain can be based on a consensus technique (e.g., proof-of-work, proof-of-state, practical byzantine fault tolerance, etc.) in which a consortium of devices within an industrial blockchain system, including the industrial controller and other industrial devices and/or non-industrial devices), collectively verify the received blockchain's authenticity. At 2210, a determination is made as to whether the result of step 2208 determines that the received blockchain is authentic. If the received blockchain is not authentic (NO at step 2210), the methodology returns to step 2202 and the received blockchain is not aggregated with the blockchain associated with the composite product. Alternatively, if the received blockchain is determined to be authentic (YES at step 2210), the received blockchain is aggregated into the blockchain associated with the composite product at step 2212.
At 2308, a determination is made as to whether a second blockchain instruction of the industrial control program is executed. If the second blockchain instruction is executed (YES at step 2308), the methodology proceeds to step 2310, where a second set of control events associated with control of the industrial process is bundled into blocks of a second industrial blockchain associated with the product in accordance with the second blockchain instruction. Per the second blockchain instruction, the second industrial blockchain can have a second level of access permission that is different than the first industrial blockchain generated at step 2306.
Embodiments, systems, and components described herein, as well as industrial control systems and industrial automation environments in which various aspects set forth in the subject specification can be carried out, can include computer or network components such as servers, clients, programmable logic controllers (PLCs), automation controllers, communications modules, mobile computers, wireless components, control components and so forth which are capable of interacting across a network. Computers and servers include one or more processors—electronic integrated circuits that perform logic operations employing electric signals—configured to execute instructions stored in media such as random access memory (RAM), read only memory (ROM), a hard drives, as well as removable memory devices, which can include memory sticks, memory cards, flash drives, external hard drives, and so on.
Similarly, the term PLC or automation controller as used herein can include functionality that can be shared across multiple components, systems, and/or networks. As an example, one or more PLCs or automation controllers can communicate and cooperate with various network devices across the network. This can include substantially any type of control, communications module, computer, Input/Output (I/O) device, sensor, actuator, instrumentation, and human machine interface (HMI) that communicate via the network, which includes control, automation, and/or public networks. The PLC or automation controller can also communicate to and control various other devices such as standard or safety-rated I/O modules including analog, digital, programmed/intelligent I/O modules, other programmable controllers, communications modules, sensors, actuators, output devices, and the like.
The network can include public networks such as the internet, intranets, and automation networks such as control and information protocol (CIP) networks including DeviceNet, ControlNet, and Ethernet/IP. Other networks include Ethernet, DH/DH+, Remote I/O, Fieldbus, Modbus, Profibus, CAN, wireless networks, serial protocols, near field communication (NFC), Bluetooth, and so forth. In addition, the network devices can include various possibilities (hardware and/or software components). These include components such as switches with virtual local area network (VLAN) capability, LANs, WANs, proxies, gateways, routers, firewalls, virtual private network (VPN) devices, servers, clients, computers, configuration tools, monitoring tools, and/or other devices.
In order to provide a context for the various aspects of the disclosed subject matter,
With reference to
The system bus 2418 can be any of several types of bus structure(s) including the memory bus or memory controller, a peripheral bus or external bus, and/or a local bus using any variety of available bus architectures including, but not limited to, 8-bit bus, Industrial Standard Architecture (ISA), Micro-Channel Architecture (MSA), Extended ISA (EISA), Intelligent Drive Electronics (IDE), VESA Local Bus (VLB), Peripheral Component Interconnect (PCI), Universal Serial Bus (USB), Advanced Graphics Port (AGP), Personal Computer Memory Card International Association bus (PCMCIA), and Small Computer Systems Interface (SCSI).
The system memory 2416 includes volatile memory 2420 and nonvolatile memory 2422. The basic input/output system (BIOS), containing the basic routines to transfer information between elements within the computer 2412, such as during start-up, is stored in nonvolatile memory 2422. By way of illustration, and not limitation, nonvolatile memory 2422 can include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable PROM (EEPROM), or flash memory. Volatile memory 2420 includes random access memory (RAM), which acts as external cache memory. By way of illustration and not limitation, RAM is available in many forms such as synchronous RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), and direct Rambus RAM (DRRAM).
Computer 2412 also includes removable/non-removable, volatile/non-volatile computer storage media.
It is to be appreciated that
A user enters commands or information into the computer 2412 through input device(s) 2436. Input devices 2436 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 2414 through the system bus 2418 via interface port(s) 2438. Interface port(s) 2438 include, for example, a serial port, a parallel port, a game port, and a universal serial bus (USB). Output device(s) 2440 use some of the same type of ports as input device(s) 2436. Thus, for example, a USB port may be used to provide input to computer 2412, and to output information from computer 2412 to an output device 2440. Output adapters 2442 are provided to illustrate that there are some output devices 2440 like monitors, speakers, and printers, among other output devices 2440, which require special adapters. The output adapters 2442 include, by way of illustration and not limitation, video and sound cards that provide a means of connection between the output device 2440 and the system bus 2418. It should be noted that other devices and/or systems of devices provide both input and output capabilities such as remote computer(s) 2444.
Computer 2412 can operate in a networked environment using logical connections to one or more remote computers, such as remote computer(s) 2444. The remote computer(s) 2444 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 2412. For purposes of brevity, only a memory storage device 2446 is illustrated with remote computer(s) 2444. Remote computer(s) 2444 is logically connected to computer 2412 through a network interface 2448 and then physically connected via communication connection 2450. Network interface 2448 encompasses communication networks such as local-area networks (LAN) and wide-area networks (WAN). LAN technologies include Fiber Distributed Data Interface (FDDI), Copper Distributed Data Interface (CDDI), Ethernet/IEEE 802.3, Token Ring/IEEE 802.5 and the like. WAN technologies include, but are not limited to, point-to-point links, circuit switching networks like Integrated Services Digital Networks (ISDN) and variations thereon, packet switching networks, and Digital Subscriber Lines (DSL). Network interface 2448 can also encompass near field communication (NFC) or Bluetooth communication.
Communication connection(s) 2450 refers to the hardware/software employed to connect the network interface 2448 to the system bus 2418. While communication connection 2450 is shown for illustrative clarity inside computer 2412, it can also be external to computer 2412. The hardware/software necessary for connection to the network interface 2448 includes, for exemplary purposes only, internal and external technologies such as, modems including regular telephone grade modems, cable modems and DSL modems, ISDN adapters, and Ethernet cards.
What has been described above includes examples of the subject innovation. It is, of course, not possible to describe every conceivable combination of components or methodologies for purposes of describing the disclosed subject matter, but one of ordinary skill in the art may recognize that many further combinations and permutations of the subject innovation are possible. Accordingly, the disclosed subject matter is intended to embrace all such alterations, modifications, and variations that fall within the spirit and scope of the appended claims.
In particular and in regard to the various functions performed by the above described components, devices, circuits, systems and the like, the terms (including a reference to a “means”) used to describe such components are intended to correspond, unless otherwise indicated, to any component which performs the specified function of the described component (e.g., a functional equivalent), even though not structurally equivalent to the disclosed structure, which performs the function in the herein illustrated exemplary aspects of the disclosed subject matter. In this regard, it will also be recognized that the disclosed subject matter includes a system as well as a computer-readable medium having computer-executable instructions for performing the acts and/or events of the various methods of the disclosed subject matter.
In addition, while a particular feature of the disclosed subject matter may have been disclosed with respect to only one of several implementations, such feature may be combined with one or more other features of the other implementations as may be desired and advantageous for any given or particular application. Furthermore, to the extent that the terms “includes,” and “including” and variants thereof are used in either the detailed description or the claims, these terms are intended to be inclusive in a manner similar to the term “comprising.”
In this application, the word “exemplary” is used to mean serving as an example, instance, or illustration. Any aspect or design described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, use of the word exemplary is intended to present concepts in a concrete fashion.
Various aspects or features described herein may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques. The term “article of manufacture” as used herein is intended to encompass a computer program accessible from any computer-readable device, carrier, or media. For example, computer readable media can include but are not limited to magnetic storage devices (e.g., hard disk, floppy disk, magnetic strips . . . ), optical disks [e.g., compact disk (CD), digital versatile disk (DVD) . . . ], smart cards, and flash memory devices (e.g., card, stick, key drive . . . ).
This application claims priority to U.S. Provisional Application Ser. No. 62/665,864, filed on May 2, 2018, entitled “INDUSTRIAL BLOCKCHAINS FOR MANAGEMENT, USE, AND CONTROL OF MANUFACTURING AND SUPPLY CHAIN INFORMATION,” the entirety of which is incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
10084826 | Irwan et al. | Sep 2018 | B1 |
20160164884 | Sriram et al. | Jun 2016 | A1 |
20170046694 | Chow | Feb 2017 | A1 |
20170046799 | Chan | Feb 2017 | A1 |
20170243216 | Kohn | Aug 2017 | A1 |
20170285633 | Poornachandran et al. | Oct 2017 | A1 |
20170301047 | Brown et al. | Oct 2017 | A1 |
20170302663 | Nainar et al. | Oct 2017 | A1 |
20170307387 | Kohlhepp | Oct 2017 | A1 |
20170353309 | Gray | Dec 2017 | A1 |
20180089638 | Christidis et al. | Mar 2018 | A1 |
20180096175 | Schmeling et al. | Apr 2018 | A1 |
20180096347 | Goeringer et al. | Apr 2018 | A1 |
20180117446 | Tran et al. | May 2018 | A1 |
20180136633 | Small | May 2018 | A1 |
20180150835 | Hunt et al. | May 2018 | A1 |
20180188704 | Cella et al. | Jul 2018 | A1 |
20180211202 | Ynion, Jr. | Jul 2018 | A1 |
20180212783 | King | Jul 2018 | A1 |
20180253464 | Kohli et al. | Sep 2018 | A1 |
20180276600 | Fuller et al. | Sep 2018 | A1 |
20180284093 | Brown et al. | Oct 2018 | A1 |
20180287780 | Safford et al. | Oct 2018 | A1 |
20180341910 | Broveleit | Nov 2018 | A1 |
20190073146 | Ateniese | Mar 2019 | A1 |
20190238525 | Padmanabhan et al. | Aug 2019 | A1 |
20190297101 | Dhakshinamoorthy | Sep 2019 | A1 |
Number | Date | Country |
---|---|---|
107508812 | Dec 2017 | CN |
2017194976 | Nov 2017 | WO |
Entry |
---|
Bahga, “Blockchain Platform for Industrial Internet of Things”, 2016, Journal of Software Engineering and Applications, 9, 533-546 (Year: 2016). |
Non-Final Office Action for U.S. Appl. No. 16/110,068 dated Dec. 11, 2019, 40 pages. |
Extended European Search Report for European Patent Application Serial No. 19172256.0 dated Jul. 3, 2019, 24 pages. |
Xu et al., “A Taxonomy of Blockchain-Based Systems for Architecture Design”, IEEE International Conference on Software Architecture, DOI : 10.1109/ICSA.2017.33, Apr. 3, 2017, pp. 243-252. |
Communication pursuant to Rule 69 EPC for European Patent Application Serial No. 19172256.0 dated Nov. 11, 2019, 2 pages. |
Non-Final Office Action received for U.S. Appl. No. 16/110,068 dated Apr. 15, 2020, 37 pages. |
Final Office Action received for U.S. Appl. No. 16/110,068 dated Jun. 12, 2020, 51 pages. |
Number | Date | Country | |
---|---|---|---|
20190339678 A1 | Nov 2019 | US |
Number | Date | Country | |
---|---|---|---|
62665864 | May 2018 | US |