Server-client architecture for an industrial control network
11159648 ยท 2021-10-26
Assignee
Inventors
Cpc classification
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
Y02P90/80
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/23258
PHYSICS
G05B19/418
PHYSICS
G05B2219/31229
PHYSICS
H04L67/12
ELECTRICITY
G05B2219/13144
PHYSICS
International classification
G06F15/16
PHYSICS
G05B19/418
PHYSICS
Abstract
A server device for an industrial control network comprises a first server interface adapted to communicate with a client device over a first network, a second server interface adapted to communicate with a plurality of industrial controller units over a second network, and a programming unit adapted to provide a programming environment for an industrial control program pertaining to at least a first industrial controller unit among the plurality of industrial controller units. The programming environment is accessible from the client device via the first server interface, and the programming unit is adapted to generate source code for the industrial control program in response to an instruction received from the client device via the first server interface.
Claims
1. A server device for an industrial control network, comprising: a first server interface adapted to communicate with a client device over a first network; a second server interface adapted to communicate with a plurality of industrial controller units over a second network; and a programming unit adapted to provide a programming environment for an industrial control program pertaining to at least a first industrial controller unit among the plurality of industrial controller units; wherein the programming environment is accessible from the client via the first server interface; wherein the programming unit is adapted to generate source code for the industrial control program in response to an instruction received from the client device via the first server interface; and wherein the server device further comprises a compiler unit, wherein the compiler unit is adapted to compile the source code to generate a compiled industrial control program, the compiled industrial control program being machine code pertaining to the first industrial controller unit and configured to be an active industrial control program on the first industrial controller unit.
2. The server device according to claim 1, wherein the programming unit, in response to the instruction received from the client device via the first server interface, is adapted to generate a first source code for the first industrial controller unit, and a second source code for a second industrial controller unit among the plurality of industrial controller units, the second source code being different from the first source code.
3. The server device according to claim 1, further comprising a database unit adapted to store a plurality of industrial control programs and/or a plurality of compiled industrial control programs and/or a plurality of parameters, in particular a plurality of industrial control programs and/or a plurality of compiled industrial control programs and/or a plurality of parameters pertaining to the plurality of industrial controller units.
4. The server device according to claim 3, wherein the database unit is adapted to associate the plurality of industrial controller units with corresponding industrial control programs and/or compiled industrial control programs and/or parameters.
5. The server device according to claim 1, further comprising a scheduler unit adapted to schedule an update of at least the first industrial controller unit with the industrial control program and/or a compiled industrial control program and/or a parameter.
6. A client device for an industrial control network, comprising: a client interface adapted to communicate with a server device over a first network, wherein the server device provides a programming environment for an industrial control program; and wherein the client device is adapted to access the programming environment via the client interface and the first network, and to trigger the programming environment to generate source code for the industrial control program, and to trigger the programming environment to compile the source code to generate a compiled industrial control program, the compiled industrial control program being machine code pertaining to an industrial controller unit and configured to be an active industrial control program on the industrial controller unit.
7. The client device according to claim 6, further comprising a user interface for the programming environment.
8. A method for generating an industrial control program, comprising: providing, on a server device, a programming environment for an industrial control program pertaining to at least a first industrial controller unit among a plurality of industrial controller units; receiving an instruction from a client device, the client device being coupled to the server device over a first network; generating source code for the industrial control program on the server device in response to the instruction; and compiling the generated source code on the server device to generate a compiled industrial control program, the compiled industrial control program being machine code pertaining to the first industrial controller unit and configured to be an active industrial control program on the first industrial controller unit.
9. The method according to claim 8, further comprising: generating a first source code pertaining to the first industrial controller unit, and a second source code pertaining to a second industrial controller unit among the plurality of industrial controller units, the second source code being different from the first source code.
10. The method according to claim 8, further comprising storing a plurality of industrial control programs and/or a plurality of compiled industrial control programs and/or a plurality of parameters, in particular a plurality of industrial control programs and/or a plurality of compiled industrial control programs and/or a plurality of parameters pertaining to the plurality of industrial controller units.
11. The method according to claim 8, further comprising scheduling an update of at least the first industrial controller unit with the industrial control program and/or a compiled industrial control program and/or a parameter.
12. A method for generating an industrial control program, comprising: accessing, by a client device, a programming environment for an industrial control program on a server device connected to the client device via a first network; and triggering the programming environment to generate source code for the industrial control program and to compile the source code to generate a compiled industrial control program, the compiled industrial control program being machine code pertaining to an industrial controller unit and configured to be an active industrial control program on the industrial controller unit.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) The numerous features and advantages of the present invention will be best apparent from a detailed description of exemplary embodiments with reference to the accompanying drawings, in which:
(2)
(3)
(4)
(5)
(6)
DETAILED DESCRIPTION
(7)
(8) The industrial control system m illustrated in
(9) The server device 12 further comprises a first server interface 16 that is adapted to communicate with at least one client device 18a, 18b, 18c over a first network 20. For instance, the first network 20 may be a wired or wireless network, or may comprise a combination of wired and wireless networks. In some examples, the first network 20 is the internet. Communication between the server device 12 and the client devices 18a, 18b, 18c may be via a proprietary communication protocol, or via a web-based standardized protocol such as HTTP or web sockets.
(10) As can be further taken from
(11) The second network 26 may be a wired or wireless network, or a combination of a wired network and a wireless network. Communication between the server device 12 and the industrial controller units 24a to 24e via the second network 26 may employ a proprietary communication protocol, or a standardized industrial control protocol such as OPC UA, or MQTT, as well as a standardized web-based protocol such as HTTP or web sockets.
(12)
(13) Each of the industrial controller units 24a to 24e may be adapted to run an industrial control program, such as a compiled industrial control program or ladder logic provided by the server device 12 via the second network 26. The industrial controller units 24a to 24e are each coupled to one or more industrial control processes or machinery 28a to 28h that they control by means of the respective industrial control program. For instance, the control may involve exchange of instructions and data between the industrial controller units 24a to 24e and the associated industrial control processes 28a to 28h. For instance, the industrial control processes, 28a to 28h may be lighting applications and/or heating/ventilation applications in an office building.
(14) In the industrial control system 10 of
(15) In some examples, some or all of the industrial controller units 24a to 24e may control different industrial control processes or machinery 28a to 28h, and hence may require different industrial control programs, or different parameters. Moreover, some or all of the industrial controller units 24a to 24e may be of different type, model, or generation, and hence may also require different industrial control programs for that reason. In some instances, the programming environments required to generate industrial control programs for the industrial controller units 24a to 24e may differ as well.
(16) In the industrial control system 10, the entire programming infrastructure, comprising possibly different programming environments for different industrial controller units 24a to 24e may be provided on the central server device 12. This may include some of or most of the logic of a typical programming environment, involving source code data management, compiling, code generation, as well as communication functionalities for transferring the industrial control programs to the respective industrial controller units 24a to 24e, as well as monitoring and debugging the industrial control program running on each of the industrial controller units 24a to 24e. Programming infrastructures such as libraries and device descriptions may also be provided as part of the programming environment on the server device 12.
(17) Advantageously, the processing resources and/or memory resources of the server device 12 may be updated dynamically in accordance with the varying size of the industrial control network, in particular in accordance with the number and types of the industrial controller units 24a to 24e as well as the number and type of the industrial control processes and machinery 28a to 28h.
(18) The user may access the programming environment on the server device 12 by means of one of the client devices 18a, 18b, 18c via the first network 20 and the first server interface 16. Advantageously, given that all or almost all of the programming logic is allocated on the server device 12, none of the client devices 18a, 18b, 18c requires a full programming environment, let alone different versions of the programming environment or different programming environments for different industrial controller units 24a to 24e. As a consequence, none of the client devices 18a, 18b, 18c need to comprise more than a user interface required for accessing the programming unit 14 of the server device 12, although in some embodiments some or all of the client devices 18a, 18b, 18c may optionally comprise additional functionalities of a programming environment themselves. In any case, the client devices 18a, 18b, 18c can be lean devices that do not require excessive processing or memory resources.
(19) As an example, the client device 18a may be a lean device with a web browser adapted to provide a user interface for accessing the programming unit 14 via the second network 26. The client device 18a may be a mobile device that requires only minimal processing and memory capabilities, such as a cellphone.
(20) The client device 18b may be a tablet device with a specific programming app adapted to access the programming unit 14 via the second network 26 by means of a proprietary communication protocol.
(21) The client device 18c may be a conventional desktop programming environment or a user personal computer. In this case, the client device 18c may not only trigger the server device 12 to generate source code for a particular industrial control program, but may likewise generate industrial control programs for one or more of the plurality of industrial controller units 24a to 24e itself, and may provide industrial control programs to the respective industrial controller units 24a to 24e. However, also in this case it is an advantage that the client device 18c may not need to provide different programming environments for different industrial controller units 24a to 24e.
(22) Advantageously, the server-client architecture according to the invention allows to separate a user interface of the programming interface from its underlying logic functionality, in particular from the generation of source code, the compiling of source code into machine code, and the project management functionalities. The latter functionalities may be located on the server device 12 with scalable processing and memory resources. The user interfaces located on the client devices 18a, 18b, 18c neither require high processing capacity nor large memory, which allows the use of conventional tablets or even smartphones for managing even large industrial control systems 10 with a high number of industrial controller units or associated machinery.
(23) An embodiment of a server device 12 is shown in additional detail in the schematic drawing of
(24) The server device 12 comprises the programming unit 14 adapted to generate source code for an industrial control program in response to an instruction received from one of the client devices 18a, 18b, 18c via the first server interface 16.
(25) The server device 12 further comprises a compiler unit 30, which may be coupled to the programming unit 14 to receive from the programming unit 14 the generated source code. The compiler unit 30 compiles the source code into machine code for an industrial control program, such as in response to an instruction received from one of the client devices 18a, 18b, 18c via the first server interface 16.
(26) As can be further taken from
(27) The server device 12 additionally comprises a communication unit 34 that is coupled to the programming unit 14, compiler unit 30, and library unit 32. The communication unit 34 is connected to the first server interface 16, and is adapted to exchange data with the client devices 18a, 18b, 18c via the first network 20. In particular, the communication unit 34 receives instructions from the client devices 18a, 18b, 18c, and triggers the programming unit 14 to generate source code for the industrial controller units 24a to 24e in response to the received instructions. The communication unit 34 further provides information and data from the programming unit 14 to the client devices 18a, 18b, 18c via the first server interface 16 and first network 20. In some examples, such information and data may pertain to a debugging of the server device 12 and/or a monitoring and/or analyzing of an operation of the server device 12, or the industrial controller units 24a to 24e.
(28) The communication unit 34 is further coupled to the second server interface 22, and may be adapted to manage and control the communication between the server device 12 and the plurality of industrial controller units 24a to 24e via the second network 26. In particular, the communication unit 34 may be adapted to transfer the source code generated by the programming unit 14 and/or the compiled machine code generated by the compiler unit 30 to the respective industrial controller units 24a to 24e.
(29) Hence, in the configuration of
(30) In particular, the programming environment 36 may be adapted to generate different source code and different compiled source code for different industrial controller units 24a to 24e.
(31) As can be further taken from
(32) By way of example, the database unit 38 may comprise a program database 40 adapted to store a plurality of industrial control programs, either as source code and/or as compiled machine code. Some of these industrial control programs may be active on one of the industrial controller units 24a to 24e. However, other programs may be stored in the program database 40 for test or archiving purposes.
(33) The database unit 38 additionally comprises a parameter database 42, which may be adapted to store program-specific parameters or sets of parameters. Similarly to the program database 40, some of the parameters or parameter sets may pertain to specific industrial controller units 24a to 24e, while others may be stored for testing or archiving purposes.
(34) The database unit 38 further comprises an association table 44, which associates specific programs from the program database 40 and/or parameters from the parameter database 42 to particular industrial controller units 24a to 24e. In other words, the association table describes exactly and completely which industrial control program or compiled industrial control program and/or which set of parameters belong to each individual industrial controller unit 24a to 24e. The association table 44 of the database unit 38 hence facilitate the central administration of industrial control programs and/or parameter sets, and greatly facilitates the update and maintenance of the industrial controller units 24a to 24e, even after years of service.
(35) The techniques according to the present invention likewise assist in reducing the inconvenience and risk of inappropriate hardware and software versions for the industrial control environment. In particular, each of the client devices 13a, 13b, 13c may automatically work with the particular programming tools or programming environment 36 which has been approved or designated for the respective industrial controller units 24a to 24e of the industrial control system 10.
(36) As can be taken from
(37) In addition, the scheduler unit 46 may also be adapted to test industrial control programs generated by the programming environment 36, or stored in the database unit 38, and update the industrial controller units 24a to 24e only if the tests have been concluded successfully. The scheduler unit 46 hence provides a continuous integration component.
(38) The central storage of industrial control programs in the database unit 38 and the central testing and update by means in the scheduler unit 46 greatly assist in the maintenance and administration of an industrial control system 10 comprising a large number of industrial controller units 24a to 24e, and significantly reduce the risk of errors or malfunctions in the update process.
(39) In case a new industrial controller unit 24a to 24e is added to the industrial control system 10, or an industrial controller unit is replaced, the server device 12 may automatically detect the new industrial controller unit 24a to 24e in a network scan, and may automatically provide the appropriate industrial control program and/or parameters stored in the program database 40 and the parameter database 42, respectively, via the second server interface 22 and the second network 26. In particular, the specific industrial control program and/or parameters may be provided in accordance with an association stored in the association table 44 for that particular model or type of industrial controller unit. This reduces the risk that a replaced or added industrial controller unit is erroneously provided with the wrong industrial control program and/or the wrong sets of parameters, and hence minimizes the system downtime.
(40) In some instances, the server device 12 may not be capable of deciding on the required industrial control program and/or parameters fully automatically, for instance when several industrial controller units 24a to 24e are replaced simultaneously, or if the industrial controller units 24a to 24e are not adapted to automatically identify themselves to the server device 12. However, in these situations it may be sufficient for the user to dedicate the new industrial controller unit 24a to 24e, or provide some update information to the server device 12 that allows the server device 12 to select the appropriate industrial control program and/or parameters from the database unit 38, or generate them by means of the programming environment 36. The update may then proceed as described above, again minimizing the risk of human failure and reducing the downtime.
(41)
(42) The client device 18 comprises a client interface 48, which may be adapted to communicate with the server device 12 via the first network 20.
(43) The client device 18 additionally comprises a user interface 50 which may allow a user to access the programming environment 36 via the client interface 48 and the first network 20. The user interface 50 may serve as an external user interface for the programming environment 36.
(44) As described above with reference to
(45) The client device 18 may also be adapted to receive feedback and/or data from the programming environment 36, or from the industrial controller units 24a to 24e via the server device 12, such as for means of maintenance and monitoring.
(46)
(47) In a first step S40, a programming environment for an industrial control program pertaining to at least a first industrial controller unit among a plurality of industrial controller units is provided on a server device.
(48) In a second step S42, an instruction is received from a client device, the client device being coupled to the server device over a first network.
(49) In a third step S44, source code for the industrial control program is generated on the server device in response to the received instruction.
(50)
(51) In a first step S50, a programming environment for an industrial control program is accessed by means of a client device, wherein the programming environment is located on a server device connected to the client device via a first network.
(52) In a second step S52, the programming environment is triggered to generate source code for the industrial control program.
(53) The numerous examples and the Figures merely serve to illustrate the invention, but should not be interpreted to comprise a limitation. The scope of the invention is defined by the appended claims.
REFERENCE SIGNS
(54) 10 industrial control system 12 server device 14 programming unit 16 first server interface 18 client device 18a, 18b, 18c client devices 20 first network 22 second server interface 24a-24e industrial controller units 26 second network 28a-28h industrial control process/machinery 30 compiler unit 32 library unit 34 communication unit 36 programming environment 38 database unit 40 program database 42 parameter database 44 association table 46 scheduler unit 48 client interface 50 user interface