Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SYSTEM AND METHOD FOR DEPLOYING LOGIC TO A DISTRIBUTED AUTOMATION SYSTEM
Document Type and Number:
WIPO Patent Application WO/2021/040732
Kind Code:
A1
Abstract:
A system (200, 300) and method (400) are provided for deploying logic to an automation system. The automation system (202, 302) includes at least one local processor (240, 241) and the PLC includes a plurality of subprocesses (235), each subprocess for an input/output (I/O) behavior. A deployment processor (102, 108) is configured to identify a pattern of I/O behaviors in the automation system; extract a subprocess in the PLC based on the identified behavior, and inject a target process, based on the extracted subprocess, into the at least one local processor.

Inventors:
HORLAMUS TRISTAN (US)
JI KUN (US)
MÜNZ ULRICH (US)
VELDINK MIKE (US)
KATE TEJASHREE (US)
Application Number:
PCT/US2019/049057
Publication Date:
March 04, 2021
Filing Date:
August 30, 2019
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SIEMENS AG (DE)
SIEMENS CORP (US)
International Classes:
G05B19/042; G05B19/05; G06F8/61
Foreign References:
EP3502901A12019-06-26
US20150346706A12015-12-03
Attorney, Agent or Firm:
VENEZIA, Anthony L. (US)
Download PDF:
Claims:
CLAIMS

What is claimed is:

1. A system (200) for deploying logic to an automation system (202), comprising: a Programable Logic Controller (230, 231, 232) comprising a plurality of subprocesses (235) for a plurality of input/output (I/O) behaviors; the automation system (202) comprising at least one local processor (240, 241), and a plurality of I/O devices (110, 111, 112, 113, 114); and a deployment processor (230, 231, 232, 250) configured 102, 108 to: identify a pattern of I/O behaviors in the automation system, extract a subprocess in the Programable Logic Controller based on the identified behavior, and inject a target process, based on the extracted subprocess, into the at least one local processor.

2. The system (200) according to anyone of the claims 1, wherein the target process includes a modified extracted subprocess.

3. The system (200) according to anyone of the claims 2, wherein the target process is an interpretable language not specific to the at least one local processor.

4. The system (200) according to anyone of the claims 1-3, wherein the deployment processor (230, 231, 232, 250) is configured analyze a resource of the at least one local processor.

5. The system (200) according to anyone of the claims 4, a plurality of local processors (240, 241), wherein the deployment processor (230, 231, 232, 250) is configured to identify at least one of the plurality of local processors to inject the target process based on the analysis.

6. The system according (200) to anyone of the claims 2-5, wherein the deployment processor (230, 231, 232, 250) is configured to modify the subprocess to form the target process based on the analysis.

7. The system according (200) to anyone of the claims 1-6, wherein the deployment processor (230, 231, 232, 250) is configured discover the at least processor local to the automation system.

8. The system according (200) to anyone of the claims 1-7, wherein a discovery uses a model of the automation system.

9. The system according (200) to anyone of the claims 1-8, wherein the PLC is local, or cloud based.

10. The system according (200) to anyone of the claims 9, wherein the PLC is cloud based.

12. The system according (200) to anyone of the claims 1-11, wherein the PLC is physical or virtual.

13. The system according (200) to anyone of the claims 1-11, wherein the PLC is physical or virtual.

14. A method (400) for deploying logic to an automation system (202), the method (400) comprising by a deployment processor (230, 231, 232, 250): identifying a pattern of I/O behaviors in the automation system, the automation system comprising at least one local processor and a plurality of I/O devices (410); extracting a subprocess in A Programable Logic Controller comprising a plurality of subprocesses for a plurality of input/output (I/O) behaviors based on the identified behavior (412); and injecting a target process, based on the extracted subprocess, into the at least one local processor (414).

15. The method (400) according to anyone of the claims 14, comprising by the deployment processor: modifying extracted subprocess.

16. The method (400) according to anyone of the claims 15, comprising by the deployment processor: modifying the extracted subprocess to an interpretable language not specific to the at least one local processor.

16. The method (400) according to anyone of the claims 14, comprising by the deployment processor: modifying the extracted subprocess to an interpretable language specific to the at least one local processor.

17. The method (400) according to anyone of the claims 14-16, comprising by the deployment processor: analyzing a resource of the at least one local processor; and injecting the target process based on the analysis.

18. The method (400) according to anyone of the claims 118, comprising by the deployment processor: modifying the subprocess to form the target process based on the analysis wherein the PLC is cloud based.

19. The method (400) according to anyone of the claims 14-18, wherein the PLC is local, or cloud based.

20. The method (400) according to anyone of the claims 14-19, wherein injected target process is transitory.

Description:
SYSTEM AND METHOD FOR DEPLOYING LOGIC TO A DISTRIBUTED

AUTOMATION SYSTEM

TECHNICAL FIELD

[0001] The present disclosure is directed, in general, to automation systems and methods, and more particularly to deploying logic to an automation system.

BACKGROUND

[0002] An automation system is any system that operates equipment with little or no human intervention. A Programable Logic Controller PLC is highly suitable for automation systems as the PLC can withstand industrial environments such as shock, vibration, electrical noise, and various environmental conditions. The PLC can handle discrete or analog input signals from input devices and discrete or analog input signals to output devices. The PLC can be easily designed for multiple arrangements of inputs/ outputs (I/O) and typically does not need external conversion as it is made to connect to a wide variety of input and output devices. Typical input devices include, but not limited to, switches, sensors, gauges, encoders, and detectors. Common output devices include, but not limited to, motors, relay coils, solenoid, heater and indicators.

SUMMARY

[0003] Variously disclosed embodiments include systems and methods that may be used to facilitate deploying logic to an automation system. In one example, A system comprises a Programable Logic Controller PLC and a deployment processor. The PLC includes a plurality of subprocesses for a plurality of input/output (I/O) behaviors. The automation system includes at least one local processor. The deployment processor is configured to: identify a pattern of I/O behaviors in the automation system; extract a subprocess in the PLC based on the identified behavior, and inject a target process, based on the extracted subprocess, into the at least one local processor.

[0004] In another example, a method for deploying logic to an automation system may comprise acts carried out through operation of at least one processor that correspond to the functions for which the previously described at least one processor is configured to carry out. The method for deploying logic to an automation system. The method comprising by a deployment processor identifying a pattern of I/O behaviors in the automation system, the automation system comprising at least one local processor and a plurality of I/O devices; extracting a subprocess in A Programable Logic Controller comprising a plurality of subprocesses for a plurality of input/output (I/O) behaviors based on the identified behavior; and injecting a target process, based on the extracted subprocess, into the at least one local processor.

[0005] The foregoing has outlined rather broadly the technical features of the present disclosure so that those skilled in the art may better understand the detailed description that follows. Additional features and advantages of the disclosure will be described hereinafter that form the subject of the claims. Those skilled in the art will appreciate that they may readily use the conception and the specific embodiments disclosed as a basis for modifying or designing other structures for carrying out the same purposes of the present disclosure.

Those skilled in the art will also realize that such equivalent constructions do not depart from the spirit and scope of the disclosure in its broadest form.

[0006] Also, before undertaking the Detailed Description below, it should be understood that various definitions for certain words and phrases are provided throughout this patent document, and those of ordinary skill in the art will understand that such definitions apply in many, if not most, instances to prior as well as future uses of such defined words and phrases. While some terms may include a wide variety of embodiments, the appended claims may expressly limit these terms to specific embodiments.

BRIEF DESCRIPTION OF THE DRAWINGS [0007] FIG. 1 illustrates a schematic diagram of an automation system according to the prior art.

[0008] FIG. 2 illustrates a schematic diagram of a system that facilitates deploying logic to an automation system.

[0009] FIG. 3 illustrates a schematic diagram of a system that facilitates deploying logic to an automation system.

[0010] FIG. 4 illustrates a method that facilitates deploying logic to an automation system.

DETAILED DESCRIPTION

[0011] Various technologies that pertain to systems and methods that facilitate deploying logic to an automation system will now be described with reference to the drawings, where like reference numerals represent like elements throughout. The drawings discussed below, and the various embodiments used to describe the principles of the present disclosure in this patent document are by way of illustration only and should not be construed in any way to limit the scope of the disclosure. Those skilled in the art will understand that the principles of the present disclosure may be implemented in any suitably arranged apparatus. It is to be understood that functionality that is carried out by certain system elements may be performed by multiple elements. Similarly, for instance, an element may be configured to perform functionality that is described as carried out by multiple elements. The numerous innovative teachings of the present application will be described with reference to exemplary non limiting embodiments.

[0012] With reference to FIG. 1, a schematic view of an automation system 102 is illustrated. The automation system 102, includes a plurality of input devices 110, 111, 112, a plurality of output devices 113, 114, and a centralized PLC 130. The centralized PLC 130 includes logic that when is executed by the centralized PLC 130, controls I/O processing. The I/O processing includes receiving, by the centralized PLC 130, a signal 120, 121, 122 from a respective input device 110, 111, 112 and based on at least one received signal 120 121, 122, sending, by the centralized PLC 130, a signal 123, 124 to at least one output device 113, 114. It is not uncommon for an automation system to include hundreds of input signals. The number of inputs in the automation system is expected to increase. As the input and/or output signals increase, an increase of the PLCs computing capability would be needed. Furthermore, the increase in I/O signals may decrease the reaction time of I/O events by the PLC.

[0013] It is proposed to deploy at least a portion of the PLC logic to one or more processors in the automation system, where the deployed logic is executed by the respective processor. The deployment offloads run-time network traffic from the centralized PLC 130. The deployment is described in more detail below.

[0014] With reference to FIG. 2, an example system 200 is illustrated that facilitates carrying out one or more of the embodiments described herein. The system 200 includes a PLC 230, 231, 232, an automation system 202, and a deployment processor 230, 231, 232, 250.

[0015] The PLC 230, 231, 232 includes logic 235, 236, 237 (e.g. ladder logic), for at least a portion of the automation system 202, to control output signal behavior based on one or more input signals. An I/O behavior is the relation between the one or more input signals and the output signal. The logic may include a plurality of subprocesses 235, 236, 237. Each subprocess 235, 236, 237 may include a definition of the EO behavior. The PLC 230, 231, 232 may include additional logic not used by the automation system 202. The additional logic may be in anticipation of future expansion of the automation system 202 or used in a different automation system.

[0016] The PLC may be a physical PLC 231 or a virtual PLC 230, 232. The physical PLC 231 includes processing capability and connects to distributed I/O. Unlike a physical PLC 231, the virtual PLC 230, 232 does not connect to distributed I/O. The virtual PLC 230, 232 may exclude processing capability and purely reside in a memory.

[0017] The PLC 231, 232 may be local to the automation system 202. Local is defined herein as within a network of the automation system 202. The PLC 230 may be in the cloud 238, which is a network that is different than the local network of the automation system 202.

[0018] The automation system 202 includes a plurality of I/O devices 110, 111, 112, 113, 114. Apparatus 260, 262 and the I/O devices 110, 111, 112, 113, 114 are within the local network of the automation system 202. While apparatus 260, 262, is depicted as a separate entity, it is possible that the apparatus 260, 262 be the same entity as an I/O device 110, 111, 112, 113, 114.

[0019] Each apparatus 113, 114 includes a processor (e.g., a microprocessor/CPU/PLC) 240, 242, and memory 241, 243. The apparatus 260, 262 may be any device local to the automation system 202. For example, the apparatus 260, 262 may be one of the I/O devices (e.g. sensor, or actuator device near the edge), or a networking device (e.g. router) in the automation system 202.

[0020] The processor 240, 242 is configured to execute logic from the memory 241, 243 to perform various processes described herein. The memory 241, 243 is any storage accessible to the processor 240, 242. The memory 241, 243 may be any volatile storage (e.g., main memory, processor cache, and/or RAM) or nonvolatile storage (e.g., flash memory, SSD, hard drive, or other storage device or non-transitory computer readable media).

[0021] The deployment processor 230, 231, 232, 250 controls the deployment of the logic to be distributed. The deployment processor may be located within the local network of the automation system 202, whereby the apparatuses 260, 262 and I/O devices 110, 111, 112, 113, 114 are communicatively coupled to the deployment processor. When the deployment processor is in a different network, one other than the local network, the deployment processor is communicatively coupled to the local network and thereby the apparatuses 260, 262 and I/O devices 110, 111, 112, 113, 114 therein. The deployment processor and the PLC 230, 231, 232 may be the same device. The deployment processor 250 may be a different device than the PLC 230, 231, 232, wherein the deployment processor 250 may be communicably coupled to the PLC 230, 231, 232.

[0022] The deploying at least a portion of the logic of the PLC 230, 231, 232 comprises identifying a pattern of I/O behaviors in the automation system; extracting at least one subprocesses in the PLC based on the identified pattern, and injecting a target process, based on the extracted subprocess, into at least one local processor 240, 242. Pattern herein means a group of I/Os that interact with each other only and are separate from other I/Os. The identifying, extracting, and injecting is executed by the deployment processor 230, 231, 232, 250.

[0023] The identifying the pattern of I/O behaviors in the automation system 202 may include determining the I/O devices in the automation system 202 and the relation between the input signals and output signals for the determined I/O devices. The pattern of I/O behaviors may be identified from determined I/O devices and the relation between signals. The determining the I/O devices and the relations may include at least one of a discovery, a model of the automation system, an artificial intelligence AI.

[0024] The discovery may make use of a discovery protocol or standard (e.g., Data-Centric Connectivity Standard or Dynamic Host Configuration Protocol). The apparatuses 260, 262 and the I/O devices 110, 111, 112, 113, 114 in the network may announce their presence or respond to a request asking for their presence. In addition to apparatus/device discovery, other properties of the apparatus/device may be part of the discovery. For example, processor type, memory size, proximity to the I/O, and runtime library.

[0025] The model of the automation system describes the various apparatus and devices and relations between inputs and outputs. The model may describe the other properties. [0026] The AI may be trained to use the model to learn which apparatus and devices are suited to have injected code and how to distribute the logic 235, 236, 237 from the PLC 230, 231, 232.

[0027] The identification may analyze the resources to determine if the apparatus/device can handle processing the injected target process. For example, a specific runtime library, memory size, or I/O signal access may be needed to handle the processing of the injected target process. By the analysis, it may be determined if the local processor 240 has the resources capable of executing an injected target process. In response to determining the apparatus/device does not have the resources capable of executing the injected target process, the injection may be ignored to said processor. In response to determining the analyzed apparatus/device includes the resources capable of executing the injected target process, the injection may be initiated.

[0028] The target process may be the same as the extracted subprocess 235, 236, 237. When the at least one local processor 240, 242 can process the logic in the same format as the PLC 230, 231, 232, the target process may be the same as the extracted subprocess 235, 236, 237. For example, a subprocesses 235, 236, 237 is extracted in a ladder logic format and the target process comprises the subprocesses 235, 236, 237 in the ladder logic format without a conversion. A conversion may take place on the extracted subprocess 230, 231, 232 to form the target process. When the at least one local processor 240, 242 is not capable of processing the logic in the same format as the PLC 230, 231, 232, the extracted subprocess 230, 231, 232 may be modified to create the target process (e.g. interpretable code format or machine code). Accordingly, a modification may made to form the target process in an executable format based on the type of local processor 240, 242 (e.g. ARMv7 and ARM Cortex) and/or a runtime library. The conversion may occur before injecting the target process.

[0029] The injecting includes transferring to the respective apparatus 260, 262 and storing the target process in the respective memory 241, 243 where the target process is accessible by the respective processor 241, 243 to be executed to control the output based in the input. The injected target process may be controlled by the deployment processor 230, 231, 232, 250. For example, by way of an API in a runtime library on the at least one local processor 240, 242 comprising the injected target process. It is possible that injected target process be autonomous from the deployment processor 230, 231, 232, 250. The injected target process may be transitory and injected as needed. [0030] While FIG. 2 illustrates the I/O device as separate from the apparatus, it is possible that they are the same device. Furthermore, it would be understood that the deployment device 250 may also be an apparatus 260, 262.

[0031] A distribution of the logic is achieved by the deployment. At least a portion of the PLC 230, 231, 232 logic may be distributed to processors 240, 241 of one or more apparatuses 260, 262 in the automation system 202. Furthermore, the PLC 232 may deploy logic to one or more apparatuses 260, 262 in the automation system 202 and retain a portion of the logic that will be executed by the PLC 232 for operation of the automation system 202.

[0032] By distributing the logic, it is possible to distribute the workload. The distributed workload may increase reaction time on the I/O. The reaction time may be increased by the apparatus, which includes distributed logic and is closer to the I/O signals 120, 121, 122, 123, 124 in comparison to a centralized PLC location to the I/O signal. Furthermore, it is possible that multiple apparatuses in the automation system 202 may execute the same logic, allowing the apparatuses to act in a swarm in order to outsource processing to another apparatus.

[0033] By way of example only, FIG. 3 illustrates system 300 to expand on various aspects described above for FIG. 2. While for simplicity, FIG. 3. is described using the cloud-based PLC 230, the aspects described for FIG. 3 may be used on system with a local PLC or virtual PLC. The aspects described for FIG. 3 may be used in conjunction with any of the features described in FIG. 2.

[0034] System 300 includes a cloud-based PLC 230, and an automation system 302. The automation system 302 includes a plurality of I/O devices first input device 110, second input device 111, third input device 112, first output device 113 and a deployment processor 250. By way of example, the deployment processor is a router 250, which is an edge device, that connects the local network of the automation system 302 to the cloud network to access the PLC 230.

[0035] The PLC 230 includes a plurality of subprocesses 235, 236 in the form of ladder logic. By way of example, the logic of subsystem 235 defines the behavior between first input device 110, second input device 111, and first output device 113. Further by way of example, the first input device 110 and the second input devices 111 are each sensors and the first output device 111 is an actuator. [0036] The deployment processor 250 identifies a pattern of I/O behaviors in the automation system. During the identification, it is determined, by way of example, the existence of a behavior pattern between the first input device 111, the second input device 112, and the first output device (e.g. that the output of the first output device 113 is associated with the signals from the first and second input devices). Further from the identification it is determined that the first input device 111 includes a processor 240 and memory 241, the processor 240 is ARMv7 processor, and memory 241 includes a runtime library. The deployment processor 250 extracts subsystem 235 from PLC 230 based on the behavior pattern determined during the identification. The subsystem 235 is converted into a target process in the form of JSON, which is an interpretable by processor 240 and not specific to a particular type of processor. The target process in injected into memory 241. The deployment processor 250 controls the target process by way of an API in the runtime library. The processors 240 interprets the target process and handles the output behavior for the first output device 113 based on the signal of the first input device 110 and the signal of the second input device 111.

[0037] Referring to FIG. 4, a methodology is illustrated that facilitates deploying logic to an automation system described in FIG. 2 and FIG. 3. While the methodology is described as being a series of acts that are performed in a sequence, it is to be understood that the methodology may not be limited by the order of the sequence. For instance, unless stated otherwise, some acts may occur in a different order than what is described herein. In addition, in some cases, an act may occur concurrently with another act. Furthermore, in some instances, not all acts may be required to implement a methodology described herein.

[0038] By a deployment processor, the method includes identifying a pattern of I/O behaviors in the automation system, the automation system comprising at least one local processor and a plurality of I/O devices (410); extracting a subprocess in A Programable Logic Controller comprising a plurality of subprocesses for a plurality of input/output (I/O) behaviors based on the identified behavior (412); and injecting a target process, based on the extracted subprocess, into the at least one local processor (414).

[0039] The extracted subprocess may be modified by the deployment processor to form the target process. The modified extracted subprocess may be in an interpretable language not specific to the at least one local processor. The modified extracted subprocess may be in a language specific to the at least one local processor. [0040] A resource of the at least one local processor may be analyzed. The target process may be injected based on the analysis.

[0041] As used herein a processor corresponds to any electronic device that is configured via hardware circuits, software, and/or firmware to execute log. For example, processors described herein may correspond to one or more (or a combination) of a microprocessor, CPU, PLC, or any other integrated circuit (IC) or capable of processing logic.

[0042] Further the phrase "at least one" before an element (e.g., a processor) that is configured to carry out more than one function/process may correspond to one or more elements (e.g., processors) that each carry out the functions/processes and may also correspond to two or more of the elements (e.g., processors) that respectively carry out different ones of the one or more different functions/processes.

[0043] It should be understood that the examples provided herein are not limiting but are provided to give further understanding to the illustrations.

[0044] Also, it should be understood that the words or phrases used herein should be construed broadly, unless expressly limited in some examples. For example, the terms “include” and “comprise,” as well as derivatives thereof, mean inclusion without limitation. The singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. Further, the term “and/or” as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. The term “or” is inclusive, meaning and/or, unless the context clearly indicates otherwise. The phrases “associated with” and “associated therewith,” as well as derivatives thereof, may mean to include, be included within, interconnect with, contain, be contained within, connect to or with, couple to or with, be communicable with, cooperate with, interleave, juxtapose, be proximate to, be bound to or with, have, have a property of, or the like.

[0045] Also, although the terms "first", "second", "third" and so forth may be used herein to refer to various elements, information, functions, or acts, these elements, information, functions, or acts should not be limited by these terms. Rather these numeral adjectives are used to distinguish different elements, information, functions or acts from each other. For example, a first element, information, function, or act could be termed a second element, information, function, or act, and, similarly, a second element, information, function, or act could be termed a first element, information, function, or act, without departing from the scope of the present disclosure.

[0046] In addition, the term "adjacent to" may mean: that an element is relatively near to but not in contact with a further element; or that the element is in contact with the further portion, unless the context clearly indicates otherwise. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise.

[0047] Although an exemplary embodiment of the present disclosure has been described in detail, those skilled in the art will understand that various changes, substitutions, variations, and improvements disclosed herein may be made without departing from the scope of the disclosure in its broadest form.

[0048] None of the description in the present application should be read as implying that any particular element, step, act, or function is an essential element, which must be included in the claim scope: the scope of patented subject matter is defined only by the allowed claims. Moreover, none of these claims are intended to invoke a means plus function claim construction unless the exact words "means for" are followed by a participle.