Method and System For An Automated Configuration Of An Industrial Controller
20180267492 ยท 2018-09-20
Inventors
Cpc classification
G05B2219/1214
PHYSICS
G05B19/41845
PHYSICS
Y02P90/02
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
G05B2219/15007
PHYSICS
G05B2219/31422
PHYSICS
International classification
Abstract
A method for automated configuration of an industrial controller comprises the steps of providing an identification from an industrial controller to a server connected to said industrial controller via a network, said identification identifying said industrial controller, and receiving, from said server via said network, an industrial program and/or a parameter for an industrial program in accordance with said identification.
Claims
1. A method for automated configuration of an industrial controller comprising: providing an identification from an industrial controller to a server connected to said industrial controller via a network, said identification identifying said industrial controller; and receiving, from said server via said network, an industrial program and/or a parameter for an industrial program in accordance with said identification.
2. The method according to claim 1, wherein said industrial controller provides said identification upon being connected to said network, or upon a command or selection by a user, or upon occurrence of a pre-defined event, or cyclically.
3. The method according to claim 1, wherein said identification comprises a request for said industrial program and/or said parameter.
4. The method according to claim 1, wherein said identification comprises a name and/or type and/or serial number and/or network address of said industrial controller.
5. A method for automated configuration of an industrial controller, comprising: receiving, at a server, an identification from an industrial controller connected to said server via a network, said identification identifying said industrial controller; and providing an industrial program and/or a parameter for an industrial program to said industrial controller via said network in accordance with said identification.
6. The method according to claim 5, wherein said step of providing said industrial program and/or said parameter for said industrial program comprises providing said industrial program and/or said parameter for said industrial program to a group of industrial controllers, said group comprising at least two industrial controllers.
7. The method according to claim 5, wherein said industrial program is a compiled industrial program.
8. The method according to claim 5, wherein said server comprises a database unit, said database unit comprising industrial programs and associated program code, and/or a table listing industrial controllers and associated industrial programs and/or associated parameters, wherein said industrial program and/or said parameter for said industrial program is provided to said industrial controller in accordance with said database unit, in accordance with said table.
9. A computer program comprising computer-readable instructions, wherein said instructions, when read on a computer, implement on said computer a method according to claim 1.
10. An industrial controller, comprising: an identification unit adapted to provide an identification from said industrial controller to a server connected to said industrial controller via a network, said identification identifying said industrial controller; and a controller receiving unit adapted to receive, from said server via said network, an industrial program and/or a parameter for an industrial program in accordance with said identification.
11. The industrial controller according to claim 10, wherein said identification unit is adapted to receive, from a user, a user command or user input, and is adapted to provide said identification in response to said user command or user input.
12. A server for an industrial controller, comprising: a server receiving unit adapted to receive an identification from an industrial controller connected to said server via a network, said identification identifying said industrial controller; and a configuration unit adapted to provide an industrial program and/or a parameter for an industrial program to said industrial controller via said network in accordance with said identification.
13. The server according to claim 12, wherein said configuration unit is adapted to provide said industrial program and/or said parameter for said industrial program to a group of industrial controllers, said group comprising at least two industrial controllers.
14. The server according to claim 12, further comprising a database unit, said database unit comprising industrial programs and associated program code, and/or a table listing industrial controllers and associated industrial programs and/or associated parameters, wherein said configuration unit is adapted to provide said industrial program and/or said parameter for said industrial program to said industrial controller in accordance with said database unit, in accordance with said table.
15. A system for automated configuration of an industrial controller, comprising a server comprising a server receiving unit adapted to receive an identification from an industrial controller connected to said server via a network, said identification identifying said industrial controller; and a configuration unit adapted to provide an industrial program and/or a parameter for an industrial program to said industrial controller via said network in accordance with said identification and at least one industrial controller comprising an identification unit adapted to provide an identification from said industrial controller to a server connected to said industrial controller via a network said identification identifying said industrial controller; and a controller receiving unit adapted to receive, from said server via said network, an industrial program and/or a parameter for an industrial program in accordance with said identification, wherein said server and said at least one industrial controller are connected via said network.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0123] The features and numerous advantages of the method and system according to the present invention will be best understood from a detailed description of preferred embodiments with reference to the drawings, in which:
[0124]
[0125]
[0126]
[0127]
DETAILED DESCRIPTION OF EMBODIMENTS
[0128] A method and system for automated configuration of an industrial controller will now be described for the example of an industrial control environment 10 comprising a plurality of industrial controller units 12.sub.1 to 12.sub.5 connected to a database server 14 via a control network 16.
[0129] For instance, the industrial control environment 10 may be a factory environment, and each of the industrial controller units 12.sub.1 to 12.sub.5 may control a separate machine or tool (not shown) connected to the industrial controller units 12.sub.1 to 12.sub.5 in the industrial control environment 10. Each of the industrial controller units 12.sub.1 to 12.sub.5 may be equipped with their own processor and memory (not shown) and may run an industrial control program for controlling the associated machine or tool. The control program may be stored locally in the memory of the respective industrial controller unit 12.sub.1 to 12.sub.5, such as in the form of compiled machine code or ladder logic instructions. The industrial control program may run on the processor of the respective industrial controller unit 12.sub.1 to 12.sub.5 and may rely on and call parameters stored locally in the respective memory, or provided remotely via the control network 16. These parameters may be recipe parameters or other input variables required by the control program for operation of the machinery or tool. Moreover, each of the industrial controller units 12.sub.1 to 12.sub.5 may generate output variables or log files, and may store them locally in memory or upload them to the database server 14 or a central management unit (not shown) over the control network 16.
[0130] The control network 16 may be any data network adapted for communication and data exchange back and forth between the industrial controller units 12.sub.1 to 12.sub.5 and the database server 14, either wired or wireless or mixed. For instance, the control network 16 may be a local area network. If some of the industrial controller units 12.sub.1 to 12.sub.5 are located remotely, or distributed over a large area, the control network 16 could also be the Internet.
[0131]
[0132] The database server 14 may comprise a database 18 that can store industrial programs and/or parameters for industrial programs for a large number of industrial controller units 12.sub.1 to 12.sub.5.
[0133] For instance, the industrial programs may comprise machine code for functionalities that may be required by one or more of the industrial controller units 12.sub.1 to 12.sub.5, such as machine code relating to diagnosis functionalities, control functionalities, or communication functionalities. An exemplary application function table 20 is schematically shown in
[0134] The database 18 may further comprise a controller table 22 listing which of the functions F1, F2, F3 is stored on each of the industrial controller units 12.sub.1 to 12.sub.5.
[0135] In the specific example described above, each of the reference numerals 12.sub.1 to 12.sub.5 serve as an identification that denotes an individual industrial controller unit. However, in other examples one such reference numeral may denote an entire group of individual industrial controllers, which are identical in terms of the application functions and parameters that they require, and hence do not need to be distinguished in the controller table 22 or parameter table 24.
[0136] The database 18 may further comprise a parameter table 24, which in addition lists parameters and their values as they may be required or called by the application functions F1, F2, F3. As illustrated in the parameter table 24, the parameters required for a given application function, and their values, may depend on the industrial controller unit 12.sub.1 to 12.sub.5 on which the function is supposed to run.
[0137] The schematic drawing of
[0138] Once new application functions or new versions of application functions become available, they may be uploaded to the database server 14 and incorporated into the database 18, and may be associated to the respective industrial controller unit 12.sub.1 to 12.sub.5 in the controller table 22 and parameter table 24. Similarly, the parameter table 24 may be updated centrally on the database server 14 when new parameter values for any of the application functions F1, F2, and F3 become available. This is an advantage over prior art techniques, in which the industrial program and/or parameters for the industrial program are only stored locally in the industrial controller units, and need to be updated on every industrial controller unit separately.
[0139] There may be different techniques of how an industrial program, such as an application function, and/or a parameter for an industrial program may be made available on the database server 14. For instance, the industrial program and/or parameter may be uploaded to the database server 14 via a user client interface 26 connected to the control network 16. In embodiments in which the database server 14 is connected to the internet, the industrial program and/or parameters may be uploaded to the database server 14 via a web application.
[0140] The industrial program and/or parameters may be uploaded into the database server 14 and stored in the database 18 in different formats. In some examples, the industrial program, such as the application function, may be uploaded and stored in the database 18 as pre-compiled code. In these examples, the pre-compiled code may be directly provided to the respective controller unit 12.sub.1 to 12.sub.5.
[0141] In other examples, the industrial program may be provided to the database server 14 as source code, and may be stored in the database 18 and provided to the respective industrial controller 12.sub.1 to 12.sub.5 as a source code file. The industrial program may then be compiled locally on the respective industrial controller 12.sub.1 to 12.sub.5. In a variant, the database server 14 comprises a compiler unit 28 that compiles the source file before it is provided to the respective industrial controller 12.sub.1 to 12.sub.5.
[0142] In still other examples, the database server 14 comprises a compiler unit 28 that receives updates of the industrial program in source code from the client interface 26, compiles them for each of the various controllers 12.sub.1 to 12.sub.5 and stores the respective compiled programs in the database 18. The compiled industrial programs may then be provided to the respective industrial controller 12.sub.1 to 12.sub.5 upon request. In this example, some of the customization of the provided source code to the respective controller 12.sub.1 to 12.sub.5 may be taken care of locally in the database server 14, during compilation.
[0143] Each of the industrial controller units 12.sub.1 to 12.sub.5 may regularly, such as at predetermined time intervals, call the database server 14 for updates of their industrial programs.
[0144] For instance, according to the controller table 22 the industrial controller unit 12.sub.1 requires the application function F2. The industrial controller unit 12.sub.1 may hence inquire at regular intervals with the database server 14 whether a new version of the application function F2 is available on the database server 14. If so, the industrial controller unit 12.sub.1 may request the database server 14 to send the new version of the application function F2 over the control network 16.
[0145] According to the parameter table 24, the application function F2 for the industrial controller unit 12.sub.1 depends on the two parameters K and D, and the parameter table 24 stores their specific values. These parameter values K and D may change regularly, for instance due to a change in a recipe. A user would then update these parameter values in the parameter table 24.
[0146] Once the control program calling the application function F2 on the industrial controller unit 12.sub.1 requires one of the parameter values K or D, it will send a request to the database server 14 over the control network 16, and the database server 14 will provide these values in accordance with the updated parameter table 24.
[0147] In other embodiments, the database server distributes the application functions F1, F2, F3 and their parameters to the respective industrial controller units 12.sub.1 to 12.sub.5 whenever there is a change or update in the application function or one of the parameters, respectively.
[0148]
[0149] In a first step S10, an identification is provided from one of the industrial controllers 12.sub.1 to 12.sub.5 to the database server 14 connected to the controller 12.sub.1 to 12.sub.5 via the control network 16.
[0150] Said identification identifies said industrial controller 12.sub.1 to 12.sub.5 to said database server 14. For instance, said identification may comprise a name of said industrial controller unit 12.sub.1 to 12.sub.5 in said control network 16, and/or may comprise a type or model of said industrial controller unit 12.sub.1 to 12.sub.5.
[0151] In a second step S12, the respective industrial controller unit 12.sub.1 to 12.sub.5 receives, from said database server 14 via said control network 16, an industrial program and/or a parameter for an industrial program in accordance with said identification.
[0152] For instance, said industrial program may be an updated version of one of the application functions F1, F2, F3.
[0153]
[0154] In a first step S20, the database server 14 receives an identification from an industrial controller unit 12.sub.1 to 12.sub.5 connected to the database server 14 via the control network 16.
[0155] As described above, said identification identifies said industrial controller unit 12.sub.1 to 12.sub.5 in said control network 16.
[0156] In a second step S22, the database server 14 provides an industrial program and/or a parameter for an industrial program to said industrial controller unit 12.sub.1 to 12.sub.5 via said control network 16 in accordance with said identification.
[0157]
[0158] Once the respective industrial controller unit 12.sub.1 to 12.sub.5 has booted and has connected to the control network 16, it may send an identification to the database server 14 via the control network 16. For instance, the identification may comprise a name of said industrial control unit 12.sub.1 to 12.sub.5 together with its network address.
[0159] The database server 14 receives this identification, and may respond by sending a list of available application functions and versions to the industrial controller unit 12.sub.1 to 12.sub.5 in accordance with its database 18.
[0160] Upon receiving the list of application functions and versions, the respective controller unit 12.sub.1 to 12.sub.5 compares them against the versions of the application functions it has available locally. Based on this comparison, the respective industrial controller unit 12.sub.1 to 12.sub.5 determines whether it requires updates for any of the application functions. For instance, the industrial controller unit 12.sub.1 to 12.sub.5 may determine that an update is required for an application function F if the version number of the application function F stored locally in the industrial controller unit 12.sub.1 to 12.sub.5 is lower than a version number in the list received from the database server 14.
[0161] If the controller unit 12.sub.1 to 12.sub.5 determines that it requires an update for a particular application function F, it sends a corresponding request to the database server 14 via the control network 16. For instance, the request may be in the form of an SQL (structured query language) request, or in another programing language designed for managing data held in databases.
[0162] The database server 14, upon receiving the SQL request, may retrieve the requested application function from the database 18, and may send it to the respective requesting industrial controller unit 12.sub.1 to 12.sub.5 over the control network 16.
[0163] The respective controller unit 12.sub.1 to 12.sub.5 may store the received application function F locally in its memory, and may link the application function F in its industrial control program.
[0164] The controller unit 12.sub.1 to 12.sub.5 may then check whether it requires any parameters pertaining to the updated application function F. For instance, in case the application function F is a visualization function, the parameters it requires may relate to the type of display device on which the visualization shall be displayed.
[0165] In case the respective controller unit 12.sub.1 to 12.sub.5 determines that parameters for the application function F are missing, it may send a corresponding request to the database server 14 via the control network 16. Again, the request may be in the SQL format.
[0166] The database server 14 may evaluate the SQL request, may retrieve the requested parameters from the database 18, and may send them to the requesting industrial controller unit 12.sub.1 to 12.sub.5 via the control network 16.
[0167] The respective controller unit 12.sub.1 to 12.sub.5 may store the received parameters locally, and may activate them for incorporation into the application function F.
[0168] The industrial controller unit 12.sub.1 to 12.sub.5 may repeat the process of requesting updates and parameters as described above until all its application functions are up to date, and all the corresponding parameters have been received from the database server 14.
[0169] Once the update is complete, the respective controller unit 12.sub.1 to 12.sub.5 may start to run the industrial control program.
[0170] In the example described above with reference to
[0171] The description of the embodiments and the Figures merely serve for illustrating examples of the invention and the numerous advantages resulting therefrom, but should not be understood to imply any limitation. The scope of the invention is to be determined from the appended claims.
REFERENCE SIGNS
[0172] 10 industrial control environment
[0173] 12.sub.1-12.sub.5 industrial controller units
[0174] 14 database server
[0175] 16 control network
[0176] 18 database of database server 14
[0177] 20 application function table
[0178] 22 controller table
[0179] 24 parameter table
[0180] 26 client interface
[0181] 28 compiler unit