System, industrial controller and method configured to execute a closed loop control on data for cloud based applications
14 claims: 14 independent, 0 dependent
- 1System configured to execute a closed loop control on data for cloud-based applications (70) comprising:• an industrial automation device (30) configured to generate cloud variables,• a cloud-based application (70), which is hosted by a network device with a cloud-computing infrastructure,• an industrial controller (20) configured to control the industrial automation device by a user-defined program (22), hosted by industrial controller,• the user-defined program configured to receive the cloud variables,• a cloud agent (21) configured for communication with the user-defined control program, and for communication with the cloud-based application, further configured to: collecting the cloud variables and sending the cloud variables to the cloud-based application,• the cloud-based application (70) configured to determine updated optimized cloud variables and to notify the cloud agent (21) in the industrial controller with the updated optimized cloud variables• the cloud agent (21) configured to reload the updated optimized cloud variables and to notify the user-defined control program with the updated optimized cloud variables,• the user-defined control program further configured to include cloud constructs and to reload the updated optimized cloud variables in the user-defined control program, wherein the cloud constructs declare the cloud variables that are to be updated by the cloud-based application (70) and request the updated optimized cloud variables on runtime. System, das dazu ausgelegt ist, einen geschlossenen Regelkreis auf Daten für Cloud-basierte Anwendungen (70) auszuführen, umfassend: • eine Industrieautomatisierungsvorrichtung (30), die dazu ausgelegt ist, Cloud-Variablen zu erzeugen,• eine Cloud-basierte Anwendung (70), die durch eine Netzwerkvorrichtung mit einer Cloud-Recheninfrastruktur gehostet wird,• einen Industrieregler (20), der dazu ausgelegt ist, die Industrieautomatisierungsvorrichtung durch ein benutzerdefiniertes Programm (22), das durch den Industrieregler gehostet wird, zu regeln,• wobei das benutzerdefinierte Programm zum Empfangen der Cloud-Variablen ausgelegt ist,• einen Cloud-Agenten (21), der zur Kommunikation mit dem benutzerdefinierten Regelprogramm und zur Kommunikation mit der Cloud-basierten Anwendung ausgelegt ist, ferner ausgelegt zum: Erfassen der Cloud-Variablen und Senden der Cloud-Variablen zu der Cloud-basierten Anwendung,• wobei die Cloud-basierte Anwendung (70) dazu ausgelegt ist, aktualisierte optimierte Cloud-Variablen zu bestimmen und dem Cloud-Agenten (21) in dem Industrieregler die aktualisierten optimierten Cloud-Variablen mitzuteilen,• wobei der Cloud-Agent (21) dazu ausgelegt ist, die aktualisierten optimierten Cloud-Variablen neu zu laden und dem benutzerdefinierten Regelprogramm die aktualisierten optimierten Cloud-Variablen mitzuteilen,• wobei das benutzerdefinierte Regelprogramm ferner dazu ausgelegt ist, Cloud-Konstrukte einzuschließen und die aktualisierten optimierten Cloud-Variablen in dem benutzerdefinierten Regelprogramm neu zu laden, wobei die Cloud-Konstrukte die Cloud-Variablen deklarieren, die durch die Cloud-basierte Anwendung (70) zu aktualisieren sind, und die aktualisierten optimierten Cloud-Variablen zur Laufzeit anfordern. Système configuré pour exécuter une commande en boucle fermée sur des données pour des applications (70) en nuage, comprenant : • un dispositif (30) d'automatisation industrielle, configuré pour produire des variables de nuage,• une application (70) en nuage, qui est logée par un dispositif de réseau ayant une infrastructure de calcul en nuage,• une unité (20) de commande industrielle, configurée pour commander le dispositif d'automatisation industrielle, par un programme (29) défini par un utilisateur, logé par l'unité de commande industrielle,• le programme défini par un utilisateur étant configuré pour recevoir les variables de nuage,• un agent (21) de nuage, configuré pour communiquer avec le programme de commande défini par un utilisateur et pour communiquer avec l'application en nuage, configuré, en outre, pour recueillir les variables de nuage et envoyer les variables de nuage à l'application en nuage,• l'application (70) en nuage étant configurée pour déterminer des variables de nuage optimisées et mises à jour et pour notifier, à l'agent (21) de nuage de l'unité de commande industrielle, les variables de nuage optimisées et mises à jour,• l'agent (21) de nuage étant configuré pour recharger les variables de nuage optimisées et mises à jour et pour notifier au programme de commande défini par l'utilisateur les variables de nuage optimisées et mises à jour,• le programme de commande défini par un utilisateur étant configuré, en outre, pour comprendre des structures de nuage et pour recharger des variables de nuage optimisées et mises à jour dans le programme de commande défini par un utilisateur, dans lequel les structures de nuage déclarent les variables de nuage, qui doivent être mises à jour par l'application (70) en nuage, et demandent que les variables de nuage optimisées et mises à jour soient mises en temps d'exécution.
- 2System according to claim 1, characterized in that the cloud agent (21) is hosted in the industrial controller. System nach Anspruch 1, dadurch gekennzeichnet, dass der Cloud-Agent (21) in dem Industrieregler gehostet wird. Système suivant la revendication 1, caractérisé en ce que l'agent (21) de nuage est logé dans l'unité de commande industrielle.
- 3System according to claim 1 or 2, characterized in that the industrial controller is configured as a programmable logic controller (20). System nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass der Industrieregler als ein programmierbarer Logikregler (20) ausgelegt ist. Système suivant la revendication 1 ou 2, caractérisé en ce que l'unité de commande industrielle est configurée sous la forme d'une unité (22) de commande logique programmable.
- 4System according to claim 3, characterized in that the user-defined program is configured as a programmable logic controller-program (22). System nach Anspruch 3, dadurch gekennzeichnet, dass das benutzerdefinierte Programm als ein programmierbares Logikreglerprogramm (22) ausgelegt ist. Système suivant la revendication 3, caractérisé en ce que le programme défini par un utilisateur est configuré sous la forme d'un programme (22) d'unité de commande logique programmable.
- 5System according to any one of claims 1 to 4, characterized in that the cloud agent (21) includes a unique identity number for identifying the user-defined control program (22), for which the cloud variables is collected and on which the cloud variables are to be updated. System nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass der Cloud-Agent (21) eine eindeutige Identitätsnummer zum Identifizieren des benutzerdefinierten Regelprogramms (22) einschließt, für das die Cloud-Variablen erfasst werden und auf dem die Cloud-Variablen aktualisiert werden sollen. Système suivant l'une quelconque des revendications 1 à 4, caractérisé en ce que l'agent (21) de nuage comprend un numéro d'identité unique pour identifier le programme (22) de commande défini par un utilisateur pour lequel les variables de nuage sont recueillies et sur lequel les variables de nuage doivent être mises à jour.
- 6System according to any one of claims 1 to 5, characterized in that the cloud agent (21) is configured to aggregate continuously at least the cloud variables from the user-defined control program and sends it to a cloud-based application (70). System nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass der Cloud-Agent (21) dazu ausgelegt ist, fortlaufend zumindest die Cloud-Variablen von dem benutzerdefinierten Regelprogramm zu aggregieren, und diese zu einer Cloud-basierten Anwendung (70) sendet. Système suivant l'une quelconque des revendications 1 à 5, caractérisé en ce que l'agent (21) de nuage est configuré pour agréger continuellement au moins les variables de nuage à partir du programme de commande défini par un utilisateur et les envoyer à une application (70) en nuage.
- 7System according to any one of claims 1 to 6, characterized in that the industrial automation device configured to generate variables as well and the cloud agent (21) is configured to collect the variables as well. System nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass die Industrieautomatisierungsvorrichtung dazu ausgelegt ist, die Variablen auch zu erzeugen, und der Cloud-Agent (21) dazu ausgelegt ist, die Variablen auch zu erfassen. Système suivant l'une quelconque des revendications 1 à 6, caractérisé en ce que le dispositif d'automatisation industrielle est configuré pour produire aussi bien des variables et l'agent (21) de nuage est configuré pour collecter aussi bien les variables.
- 8Method configured to execute a closed loop control on data for cloud-based applications comprising:• generating cloud variables by an industrial automation device,• hosting, by a network device with a cloud-computing infrastructure, a cloud-based application,• controlling the industrial automation device by a user-defined program, which is hosted by an industrial controller,• receiving the cloud variables by the user-defined program,• collecting, by a cloud agent configured for communication with the user-defined control program, and for communication with the cloud-based application, the cloud variables and sending the cloud variables to the cloud-based application,• determining, by the cloud-based application (70), updated optimized cloud variables and notifying the cloud agent in the industrial controller with the updated optimized cloud variables,• reloading the updated cloud variables by the cloud agent,• notifying the user-defined control program with the updated optimized cloud variables by the cloud agent,• providing cloud constructs by the user-defined control program, the cloud constructs declaring the cloud variables that are to be updated by the cloud-based application (70) and requesting the updated optimized cloud variables on runtime and reloading the updated optimized cloud variables in the user-defined control program. Procédé configuré pour exécuter une commande en boucle fermée sur des données pour des applications en nuage, comprenant : • produire des variables de nuage par un dispositif d'automatisation industrielle,• loger, par un dispositif de réseau ayant une infrastructure de calcul en nuage, une application en nuage,• commander le dispositif d'automatisation industrielle par un programme défini par un utilisateur, qui est logé par une unité de commande industrielle,• recevoir les variables de nuage par le programme défini par un utilisateur,• recueillir, par un agent de nuage, configuré pour communiquer avec le programme de commande défini par un utilisateur et pour communiquer, avec l'application en nuage, les variables de nuage et envoyer les variables de nuage à l'application en nuage,• déterminer, par l'application (70) en nuage, des variables de nuage optimisées et mises à jour et notifier à l'agent de nuage de l'unité de commande industrielle les variables de nuage optimisées et mises à jour,• recharger les variables de nuage mises à jour par l'agent de nuage,• notifier par l'agent de nuage au programme de commande défini par un utilisateur les variables de nuage optimisées et mises à jour,• fournir des structures de nuage par le programme de commande défini par un utilisateur, les structures de nuage déclarant les variables de nuage, qui doivent être mises à jour par l'application (70) en nuage et demandant que les variables de nuage optimisées et mises à jour soient mises en temps d'exécution et rechargeant les variables de nuage optimisées et mises à jour dans le programme de commande défini par un utilisateur. Verfahren, das dazu ausgelegt ist, einen geschlossenen Regelkreis auf Daten für Cloud-basierte Anwendungen auszuführen, umfassend: • Erzeugen von Cloud-Variablen durch eine Industrieautomatisierungsvorrichtung,• Hosten, durch eine Netzwerkvorrichtung mit einer Cloud-Recheninfrastruktur, einer Cloud-basierten Anwendung,• Regeln der Industrieautomatisierungsvorrichtung durch ein benutzerdefiniertes Programm, das durch einen Industrieregler gehostet wird,• Empfangen der Cloud-Variablen durch das benutzerdefinierte Programm,• Erfassen, durch einen Cloud-Agenten, der zur Kommunikation mit dem benutzerdefinierten Regelprogramm und zur Kommunikation mit der Cloud-basierten Anwendung ausgelegt ist, der Cloud-Variablen und Senden der Cloud-Variablen zu der Cloud-basierten Anwendung,• Bestimmen, durch die Cloud-basierte Anwendung (70), von aktualisierten optimierten Cloud-Variablen und Mitteilen der aktualisierten optimierten Cloud-Variablen an den Cloud-Agenten in dem Industrieregler,• Neuladen der aktualisierten Cloud-Variablen durch den Cloud-Agenten,• Mitteilen, durch den Cloud-Agenten, der aktualisierten optimierten Cloud-Variablen an das benutzerdefinierte Regelprogramm,• Bereitstellen von Cloud-Konstrukten durch das benutzerdefinierte Regelprogramm, wobei die Cloud-Konstrukte die Cloud-Variablen deklarieren, die durch die Cloud-basierte Anwendung (70) aktualisiert werden sollen, und Anfordern der aktualisierten optimierten Cloud-Variablen zur Laufzeit und Neuladen der aktualisierten optimierten Cloud-Variablen in dem benutzerdefinierten Regelprogramm.
- 9Method according to claim 8 characterized in that the industrial automation system is configured in a programming language and the cloud variables are defined in the programming language of the industrial automation system. Procédé suivant la revendication 8, caractérisé en ce que le système d'automatisation industrielle est configuré dans un langage de programmation et les variables de nuage sont définies dans le langage de programmation du système d'automatisation industrielle. Verfahren nach Anspruch 8, dadurch gekennzeichnet, dass das Industrieautomatisierungssystem in einer Programmiersprache konfiguriert ist und die Cloud-Variablen in der Programmiersprache des Industrieautomatisierungssystems definiert sind.
- 10Method for according to claim 8 to 9, characterized in that the cloud agent is hosted in the industrial controller. Procédé suivant la revendication 8 à 9, caractérisé en ce que l'agent de nuage est logé dans l'unité de commande industrielle. Verfahren nach Anspruch 8 bis 9, dadurch gekennzeichnet, dass der Cloud-Agent in dem Industrieregler gehostet wird.
- 11Method according to any one of claims 8 to 9, characterized in that the cloud agent sends the cloud variables to the cloud-based application using wired link or wireless radio link Procédé suivant l'une quelconque des revendications 8 à 9, caractérisé en ce que l'agent de nuage envoie les variables de nuage à l'application en nuage, en utilisant une liaison par fil ou une liaison radio sans fil. Verfahren nach einem der Ansprüche 8 bis 9, dadurch gekennzeichnet, dass der Cloud-Agent die Cloud-Variablen unter Verwendung einer drahtverbundenen Verbindung oder drahtlosen Funkverbindung zu der Cloud-basierten Anwendung sendet.
- 12Method according to any one of claims 8 to 11, characterized in that the cloud agent (21) includes a unique ID for identifying the user-defined control program (22) for which the cloud variables collected and on which the cloud variables are to be updated. Procédé suivant l'une quelconque des revendications 8 à 11, caractérisé en ce que l'agent (21) de nuage comprend une idée unique pour identifier le programme (22) de commande défini par un utilisateur pour lequel les variables de nuage sont recueillies et sur lequel les variables de nuage doivent être mises à jour. Verfahren nach einem der Ansprüche 8 bis 11, dadurch gekennzeichnet, dass der Cloud-Agent (21) eine eindeutige ID zum Identifizieren des benutzerdefinierten Regelprogramms (22) einschließt, für das die Cloud-Variablen erfasst werden und auf dem die Cloud-Variablen aktualisiert werden sollen.
- 13Method according to any one of claims 8 to 12, characterized in that the runtime is at the beginning of a scan cycle of a user-defined control program. Procédé suivant l'une quelconque des revendications 8 à 12, caractérisé en ce que le temps de mise en exécution est au début d'un cycle de balayage d'un programme de commande défini par un utilisateur. Verfahren nach einem der Ansprüche 8 bis 12, dadurch gekennzeichnet, dass die Laufzeit zu Beginn eines Scanzyklus eines benutzerdefinierten Regelprogramms ist.
- 14Method according to claim 13, characterized in that the scan cycle of a user-defined control program comprises an input scan, an executing program, and an output scan. Procédé suivant la revendication 13, caractérisé en ce que le cycle de balayage d'un programme de commande défini par un utilisateur comprend un balayage d'entrée, un programme d'exécution et un balayage de sortie. Verfahren nach Anspruch 13, dadurch gekennzeichnet, dass der Scanzyklus eines benutzerdefinierten Regelprogramms einen Eingabescan, ein ausführendes Programm und einen Ausgabescan umfasst.
Independent claims14
37 paragraphs, as filed
The invention relates to an approach of updating the configurable parameters of a user-defined control program during runtime.
Industrial automation is used to control machines and processes in manufacturing. Industrial automation installation comprises multiple computerized devices, that controls industrial processes and devices. The industrial devices generate a large amount of variables to be monitored by the industrial automation. The devices of an industrial automation installation must work together in a coordinated way and performing operations. The local control algorithm may also perform local data analytics (on-board analytics).
Industrial controllers and their associated devices are central to the operation of modern automation systems. These controllers interact with field devices on the field floor to control the automated processes relating to such objectives as product manufacture etc.. Industrial automation installations can include one or more industrial controllers that monitor and control their processes. The controllers exchange data with field devices using native hardwired I/O or via a plant network such as Ethernet / IP, ControlNet or the like. Industrial controllers receive typically any combination of digital or analog signals from the field devices indicating a current state of device and their associate processes. Industrial controllers are for example programmable logic controller, (hereinafter referred to as PLC), or programmable controller.
Industrial controllers store and execute user-defined control programs to effect decision-making in connection with the controlled process based on the received signals by changing the original parameters of the user-defined control program. PLC-programs are typically written in a special application on a personal computer, then downloaded by a direct-connection cable or over a network to the PLC. Such user-defined control programs can be, according to the IEC 61131-3 (IEC 61131 is an IEC standard for programmable controllers), but are not limited to, a ladder diagram (LD), sequential function charts (SFC), function block programming codes (FBD), structured text (ST), or other such programming structures.
<figref idref="f0001">FIG 1</figref> shows the relationship between an industrial controller and its associated device and the user-defined control program in an industrial automation installation 4. Here the industrial controller is an Engineering station 1, which is used to program a Function Block as a PLC-program 2 (State of the art), which is further deployed for controlling the operation of a for example a pump process 3. Here the local control algorithm of the Function Block perform for example local data analytics.
Nowadays variables from field devices and automation systems are collected and brought (arrow 5) to a network device with a cloud computing infrastructure (herein after referred to as Cloud 6, <figref idref="f0001">FIG 2</figref>. Cloud computing infrastructure can be any infrastructure, that allows shared computing services to be accessed and utilized by cloud-capable devices. The cloud includes one or more communications network. In some cases, cloud can be provided by a cloud provider as a platform-as-a-service (PaaS), and the services can reside and execute in the cloud as a cloud-based service. Cloud services can generally include, but are not limited to, data storage, data analysis, control applications (e.g., applications that can generate and deliver control instructions to industrial devices based on analysis of near real-time system data or other factors), visualization applications such as cloud-based HMIs, reporting applications, or other such cloud -based applications.
In the cloud 6 of <figref idref="f0001">FIG 2</figref>, the data is analyzed with the help of (big) data analytics applications 7 (cloud-based) to identify process improvement potentials and provide insights for example optimized parameter(s). The analytics could be automated (e.g. with the help of artificial intelligence and machine learning methods) or semi-automated/manual (where a data scientist or a domain expert analyses the data). The optimized parameter obtained from data analytics have to be implemented (arrow 8) by changing the local control algorithm of the field devices or the automation system.
The control parameters are mainly the process parameters (e.g. certain process set-points, threshold values, parameters of a PID controller, etc.).
Typically, an automation expert takes the results of cloud based analytics, access the programming system of the PLC (e.g. STEP7 or TIA portal), modify the FB(s), build the project and deploy again on the PLC. As this process is manual in nature, it limits the frequency of updating the local control parameters or the control logic. Cloud based analytics may provide new control parameters several times a day. Due to the manual nature, this is also cost-intensive and error-prone.
Cloud based analytics for industrial systems are known from <patcit id="pcit0001" dnum="EP2924572A"><text>EP2924572</text></patcit>.
It is a first object of the present invention to specify a system according to independent claim 1 for updating runtime control parameters in an automation system based on data analytics in a cloud. It is a further object of the present invention to specify a method according to independent claim 8.
Cloud variables are variables which are provided for updating in the cloud.
The invention is therefore an automated method and system of changing the variables in industrial automation systems based on results from cloud based analytics. In the manual update case, in the state of the art there is always a delay from when an optimization is identified by a cloud based analytics application to when the controller is updated. The method described here eliminates this time delay resulting in a better process optimization. The method also eliminates the need of manual intervention (and thus costs, errors) for updating the user-defined control program e.g. the control logic of a process.
The invention is enabled by the definition of cloud constructs within the user-defined control program and cloud variables which could be dynamically updated on the industrial controller at runtime (for e.g., at the beginning of a scan cycle) based on cloud based application in the network device with a cloud-computing infrastructure. The network device with a cloud-computing infrastructure is referred afterwards as cloud. A cloud definition is given in the description of <figref idref="f0001">Fig 2</figref>.
The approach of defining the cloud variables right into the programming language of controller enables the user-defined control program, which interact with the cloud, to be written in a simple manner.
Cloud based data analytics techniques have resulted in better process control and optimization, for example better quality, reduced energy, etc.. These results could only be leveraged effectively when having an automated and efficient way of changing the process control logic in the field systems based on results from cloud based analytics. This problem is now solved by the invention. This effectively helps businesses to provide cloud based data analytics capabilities for the automation systems in the field.
By the invention an analysis of the cloud variables of an industrial device in the cloud can be done. The optimized cloud variables can be dynamically adapting the variables, for example by modifying cloud variables on the controller controlling the loop.
The dependent claims list further advantageous measures which can be combined with one another, as desired, in order to achieve further advantages.
In a preferred embodiment the cloud agent is hosted in the industrial controller. The advantages in this case are that the cloud agent is a part of the PLC software and is executed right next to the user-defined control program. This leads to better performance as network communications or inter process communications are avoided. However, the cloud agent could run on a separate hardware/host as well.
In a further preferred embodiment the industrial controller is configured as a PLC (programmable logic controller). The user-defined program is configured as a PLC-program in a special language. Therefore IEC 61131 deals with programming languages and defines two graphical and two textual PLC programming language standards: Ladder diagram (LD, graphical), Function block diagram (FBD, graphical), Structured text (ST, textual), Instruction list (IL, textual), Sequential function chart (SFC, has elements to organize programs for sequential and parallel control processing and Continuous Function Chart (CFC) . IEC 61131-3 is the third part of the open international standard IEC 61131 for programmable logic controllers.
In another preferred embodiment the cloud agent includes a unique ID (identity number) for identifying the user-defined control program, for which the cloud variables are collected and on which the cloud variables are to be updated.
In another preferred embodiment the cloud agent is configured to aggregate continuously the cloud variables from the user-defined control program and send them to the cloud-based application. Furthermore the cloud agent is configured to collect the variables if any as well.
Further features, properties and advantages of the present invention are found in the following description of exemplary embodiments with respect to the appended figures, of which: <dl id="dl0001" compact="compact"><dt>FIG 1</dt><dd>shows the common cloud data model according to the state of the art,</dd><dt>FIG 2</dt><dd>shows a schematic overview of an industrial automation according to the state of the art,</dd><dt>FIG 3</dt><dd>shows a schematic overview of an industrial automation according to the invention,</dd><dt>FIG 4</dt><dd>shows an example program code according to the state of the art.</dd><dt>FIG 5</dt><dd>shows the example program code of <figref idref="f0003">FIG 4</figref> according to the invention.</dd></dl>
Although the invention has been illustrated and described in detail with reference to the preferred exemplary embodiment, the invention is not limited to the examples disclosed and other variations can be derived therefrom by the person skilled in the art without departing from the protective scope of the invention.
In <figref idref="f0002">FIG 3</figref> an example of an industrial automation according to the invention is shown. Here the industrial controller is a PLC 20, which stores and executes a user-defined control program here a PLC-program 22. The PLC 20 typically runs therefore a real time operating system (not shown) which hosts the PLC-program 22 or any other applications (not shown) and services running on the PLC 20. The user-defined control program 22 is the program controlling the industrial process/activity 30 on a device. The control program includes a number of control variables which define the process parameters, for e.g. temperature set-points, flow rates, etc (variables). The variables which have to be updated in the control program based on data analytics in the cloud (cloud variables) are defined in the programming language of the PLC in special (newly proposed) cloud constructs.. The compiler for such programs is designed to understand the new cloud constructs. For the cloud constructs the compiler will make provisions so as to update the cloud variables in the PLC dynamically on runtime. This can be for example defined at the beginning of a scan cycle of a PLC 20. A scan cycle consists of three steps: input scan, executing program(s), and output scan. PLCs operate by continually scanning programs and repeat this process many times per second. When a PLC 20 starts, it runs checks on the hardware and software for faults, also called a self-test. If there are no problems, then the PLC will start the scan cycle.
So, the PLC-program 22 is compiled, linked and built using the special compiler, that understands the cloud constructs. That means that control program is built using a special compiler and a build tool, that is designed to interpret the cloud constructs; then the PLC-program 22 is deployed on the PLC 20 and executed. On execution, the PLC-program 22 initializes the cloud variables with their default values.
The PLC-program 22 has a sub-component that continuously listens e.g. from another program/process, for any changes to the cloud variables. When the cloud variables need to be changed,the PLC-program 22 receives the new values, and updates the cloud variables for use in the next scan cycle.
The user-defined control program is therefore typically an operating system process. The PLC-program 22 controlling an industrial process is written in a programming language by an automation expert using an engineering tool.
In operation modus the variables and cloud variables are received/generated by the PLC-program 22. A cloud agent 21, which is in communication with the PLC-program 22, is configured to collect the cloud variables and sends the cloud variables to the cloud-based application. That means, the cloud agent 21 on the PLC 20 collects at least the cloud variables and sends it to the cloud 60 for analysis (arrow 50). The cloud agent 21 is for example another program/ process running on the PLC 20. It continuously aggregates the cloud variables from the PLC 20 and sends it to a cloud 60. The analytics cloud-based application 70 in the cloud 60 analyzes the cloud variables and determines the optimal values of the cloud variables for the industrial process, that means generates updated optimized cloud variables. That means, the cloud-based application 70 in the cloud 60 analyze the data coming from a device in the field. Based on the data analysis, the analytics cloud-based application 70 may determine that the cloud variables of the industrial process in the PLC-program 22 have to be changed.
The analytics cloud-based application 70 notifies the cloud agent 21 (arrow 80) on the PLC 20, with the updated optimized cloud variables of the industrial process.
The cloud agent 21, receives new values of the cloud variables from the analytical applications 70 in the cloud 60 and notifies the PLC-program 22 accordingly.
The cloud agent 21 has a unique ID (identity number), which is used to identify the PLC/PLC-program 22, for which the cloud variables is collected and on which the cloud variables are to be updated.
The cloud agent 21 notifies the PLC-program 22 with the updated optimized configuration of variables, and the constructs of the PLC-program 22 request the updated optimized cloud variables on runtime, at the for example at the beginning of a new scan cycle and reloads the updated optimized cloud variables.
Now the process 30 is controlled using the updated optimized cloud variables as received from the cloud 60.
<figref idref="f0003">FIG 4</figref> shows an example PLC-program 22 according to the state of the art and written in structured text. Structured text is one of the five languages supported by the IEC 61131-3 standard, designed for programmable logic controllers (PLCs). This example relates to a Function Block (Timed Counter) that implements a timed counter by an incremental count of the timed interval. The variable "Time_Increment" has a default value of "1.25".
<figref idref="f0004">Fig 5</figref> shows the example PLC-program 22 of <figref idref="f0003">Fig 4</figref> according to the invention. In this example the cloud variables "Time_Increment" should be updateable from the cloud. To achieve this, a cloud construct, for e.g. VAR_CLOUD"Time_Increment", is written in structured text to declare such a cloud variables. In this case, when the code is compiled, the compiler knows that the cloud variables "Time_Increment" is updateable from the cloud and it has a default value of "2.00". The compiler for such programs is designed to understand the new cloud constructs. For the cloud constructs the compiler will make provisions so as to update the cloud variables dynamically on runtime, for e.g. at the beginning of a scan cycle of a PLC-program 22.
This invention describes a method of updating a set of cloud variables of a control program dynamically on runtime based on data analytics in the cloud 70. The idea is to define those data/parameters in a PLC-program 22, which would be dynamically updated from the cloud 70, during the programming step. These are then the updated optimized cloud variables. The compilers for the PLC-program 22 are developed accordingly, so as to understand the cloud related programming constructs.
4 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4
Every citation, both waysCites: the store holds 9 of 10
| Document | Relation | Office | Cited during |
|---|---|---|---|
| WO2022238482A1 | Cited by | World Intellectual Property Organization (WIPO) | Applicant |
| DE102021204757A1 | Cited by | Germany | Applicant |
| WO2016065493A1 | Cites | World Intellectual Property Organization (WIPO) | Filed by opponent |
| EP2924570A2 | Cites | European Patent Office (EPO) | Filed by opponent |
| EP2924572A2 | Cites | European Patent Office (EPO) | Filed by opponent |
| EP3070548A2 | Cites | European Patent Office (EPO) | Filed by opponent |
| EP2544059A1 | Cites | European Patent Office (EPO) | – |
| EP2924570A2 | Cites | European Patent Office (EPO) | – |
| EP2924572A2 | Cites | European Patent Office (EPO) | – |
| EP3070548A2 | Cites | European Patent Office (EPO) | – |
| US2013166621A1 | Cites | United States of America | – |
8 members in 3 offices
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 16171365 | European Patent Office (EPO) | A | |
| EP20160171365 | – | – | – |
Members8
| Document | Office | Kind | |
|---|---|---|---|
| EP3249481A1 | European Patent Office (EPO) | A1 | |
| US2017343967A1 | United States of America | A1 | |
| CN107436582A | China | A | |
| US10353348B2 | United States of America | B2 | |
| EP3249481B1This record | European Patent Office (EPO) | B1 | |
| EP3611581A1 | European Patent Office (EPO) | A1 | |
| CN107436582B | China | B | |
| EP3611581B1 | European Patent Office (EPO) | B1 |
86 legal events, as 9 offices reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | Office | |
|---|---|---|---|
| Patent revokedRevoked27W | 27W | EP | |
| Gb: patent revoked under art. 102 of the ep convention designating the uk as contracting stateRevokedGBPR | GBPR | EP | |
| Patent ceasedCeasedPL | PL | CH | |
| Patent revokedRevokedORIGINAL CODE: 0009271RDAG | RDAG | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: PATENT REVOKEDSTAA | STAA | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Appeal procedure closedAppealORIGINAL CODE: EPIDOSNNOA9OAPBU | APBU | EP | |
| Epo's revocation decision now finalR064 | R064 | DE | |
| Patent revoked by epoRevokedR103 | R103 | DE | |
| Opposition filed (corrected)OppositionR26 | R26 | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Opposition data, opponent's data or that of the opponent's representative modifiedOppositionORIGINAL CODE: 0009299OPPOPLAB | PLAB | EP | |
| Appeal reference modifiedAppealORIGINAL CODE: EPIDOSCREFNOAPAH | APAH | EP | |
| Opt-out of the competence of the unified patent court (upc) registeredP01 | P01 | EP | |
| Date of receipt of statement of grounds of appeal recordedAppealORIGINAL CODE: EPIDOSNNOA3OAPBQ | APBQ | EP | |
| Appeal reference modifiedAppealORIGINAL CODE: EPIDOSCREFNOAPAH | APAH | EP | |
| Appeal reference recordedAppealORIGINAL CODE: EPIDOSNREFNOAPBM | APBM | EP | |
| Date of receipt of notice of appeal recordedAppealORIGINAL CODE: EPIDOSNNOA2OAPBP | APBP | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Communication despatched that patent is revokedRevokedORIGINAL CODE: EPIDOSNREV1RDAF | RDAF | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Reply of patent proprietor to notice(s) of opposition receivedOppositionORIGINAL CODE: EPIDOSNOBS3PLBB | PLBB | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Opposition filedOpposition26 | 26 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Information on lapse in contracting state deletedLapsedPG2D | PG2D | EP | |
| Notice of opposition and request to file observation + time limit sentOppositionORIGINAL CODE: EPIDOSNOBS2PLAX | PLAX | EP | |
| Opposition filedOppositionORIGINAL CODE: 0009260PLBI | PLBI | EP | |
| Opposition filed against patentOppositionR026 | R026 | DE | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Deletion acc. to par. 5 (withdrawal of the translation of the ep patent)MK05 | MK05 | AT | |
| Invalidated european patentMG4D | MG4D | LT | |
| Patent invalid in the netherlands as no translation has been filedMP | MP | NL | |
| Entry of ep patent into national phase of norway [publ. of translation]T2 | T2 | NO | |
| European patents granted designating irelandGrantedFG4D | FG4D | IE | |
| Dpma publication of mentioned ep patent grantGrantedR096 | R096 | DE | |
| European patent takes effect as a national patent in ch/liEP | EP | CH | |
| Reference to at number (ep patent validated in austria)REF | REF | AT | |
| Designated contracting statesAK | AK | EP | |
| European patent grantedGrantedFG4D | FG4D | GB | |
| (expected) grantORIGINAL CODE: 0009210GRAA | GRAA | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: THE PATENT HAS BEEN GRANTEDSTAA | STAA | EP | |
| Grant fee paidORIGINAL CODE: EPIDOSNIGR3GRAS | GRAS | EP | |
| Intention to grant announcedINTG | INTG | EP | |
| Information provided on ipc code assigned before grantRIC1 | RIC1 | EP | |
| Information provided on ipc code assigned before grantRIC1 | RIC1 | EP | |
| Despatch of communication of intention to grant a patentORIGINAL CODE: EPIDOSNIGR1GRAP | GRAP | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: GRANT OF PATENT IS INTENDEDSTAA | STAA | EP | |
| Request for examination filed17P | 17P | EP | |
| Designated contracting states (corrected)RBV | RBV | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: REQUEST FOR EXAMINATION WAS MADESTAA | STAA | EP | |
| Designated contracting statesAK | AK | EP | |
| Request for extension of the european patentAX | AX | EP | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: THE APPLICATION HAS BEEN PUBLISHEDSTAA | STAA | EP |
Numbers
- Publication
- 3249481
- Publication, DOCDB
- 3249481
- Publication, EPODOC
- EP3249481
- Application
- 161713656
- Application, DOCDB
- 16171365
- Application, EPODOC
- EP20160171365
Titles3
- German
- SYSTEM, INDUSTRIEREGLER UND VERFAHREN AUSGESTALTET ZUR AUSFÜHRUNG EINES GESCHLOSSENEN REGELKREISES AUF DATEN FÜR CLOUD-BASIERTE ANWENDUNGEN
- English
- SYSTEM, INDUSTRIAL CONTROLLER AND METHOD CONFIGURED TO EXECUTE A CLOSED LOOP CONTROL ON DATA FOR CLOUD BASED APPLICATIONS
- French
- SYSTÈME, CONTRÔLEUR INDUSTRIEL ET PROCÉDÉ CONFIGURÉS POUR EXÉCUTER UNE COMMANDE EN BOUCLE FERMÉE SUR DES DONNÉES POUR DES APPLICATIONS EN NUAGE
Classification
- CPC, 6
- G05B19/056
- G05B13/021
- G05B2219/13004
- G05B19/0426
- G05B2219/31241
- G05B2219/31457
- IPC, 2
- G05B19 05
- G05B19 042
Designated states38
- Contracting states, 38
- Albania
- Austria
- Belgium
- Bulgaria
- Switzerland
- Cyprus
- Czechia
- Germany
- Denmark
- Estonia
- Spain
- Finland
- France
- United Kingdom
- Greece
- Croatia
- Hungary
- Ireland
- Iceland
- Italy
- Liechtenstein
- Lithuania
- Luxembourg
- Latvia
and 14 moreShow fewer
- Monaco
- North Macedonia
- Malta
- Netherlands (Kingdom of the)
- Norway
- Poland
- Portugal
- Romania
- Serbia
- Sweden
- Slovenia
- Slovakia
- San Marino
- Türkiye
