METHOD FOR PROGRAMMING AND CONFIGURING A DEVICE IN A TRACEABLE MANNER

20180150044 ยท 2018-05-31

Assignee

Inventors

Cpc classification

International classification

Abstract

The invention relates to a method for the traceable programming and/or configuration of a device, in particular of an embedded device, in which a) data are transmitted to the device from a programming system, with the transmitted data including code executable by the device and being generated from source code; b) a first unique identifier is produced on the basis of at least some of the transmitted data and of at least some of the source code and of an identification of the device; c) the first unique identifier is stored in the device; and d) at least the transmitted data used for the first unique identifier, the source code used for the first unique identifier, and the first unique identifier are stored in a memory device independent of the device.

Claims

1.-11. (canceled)

12. A method for the traceable programming and/or configuring of a device, in which method (a) data are transmitted to the device from a programming system, with the transmitted data including code executable by the device and being generated from a source code; (b) a first unique identifier is produced on the basis of at least some of the transmitted data and of at least some of the source code and of an identification of the device; (c) the first unique identifier is stored in the device; and (d) at least the transmitted data used for the first unique identifier, the source code used for the first unique identifier, and the first unique identifier are stored in a memory device independent of the device.

13. The method in accordance with claim 12, wherein the device is an embedded device.

14. The method in accordance with claim 12, wherein the first unique identifier is generated by the use of a hash function.

15. The method in accordance with claim 12, wherein the first unique identifier is generated on the basis of firmware transmitted to the device.

16. The method in accordance with claim 12, wherein the first unique identifier is generated on the basis of a configuration transmitted to the device.

17. The method in accordance with claim 12, wherein the first unique identifier is also based on an executable application file transmitted to the device.

18. The method in accordance with claim 12, wherein the first unique identifier is also based on parameters transmitted to the device.

19. The method in accordance with claim 12, wherein the first unique identifier is also based on a second unique identifier that is based on a source code generated on the programming system and on at least one executable code generated from the source code.

20. The method in accordance with claim 19, wherein the first unique identifier is generated such that the second unique identifier can be determined from the first unique identifier.

21. The method in accordance with claim 12, wherein the identification of at least one of the device and of the programming system is at least one of a MAC address, a serial number of a storage medium, a serial number of a CPU, and another unique identification of one of the device and the programming system.

22. The method in accordance with claim 12, wherein the memory device is a server arranged remote from the programming system.

23. The method in accordance with claim 22, wherein the transmitted data and the first unique identifier are transferred to the memory device by means of an internet protocol.

24. A method for the traceable generation of code, in which method (a) a source code is converted (compiled) into executable code; (b) the source code and the executable code are used for generating a second unique identifier; and (c) the source code, the executable code, and the second unique identifier are stored in a remote memory device.

25. The method in accordance with claim 24, wherein the code is application code for embedded devices.

26. The method in accordance with claim 24, wherein the executable code comprises all the artifacts required for execution on a device.

27. A method for the traceable changing of the programming of a device in which method (a) a data connection of a programming system to the device is established; (b) the first unique identifier is transmitted to the programming system by the device or is generated by the programming system; (c) the programming system transmits the first unique identifier to an independent memory device; (d) the independent memory device transmits at least the data stored in the memory device with respect to the first unique identifier to the programming system, with the data at least comprising a source code; (e) the data received by the memory device are changed by means of the programming system; (f) data are transmitted to the device from the programming system, with the transmitted data including code executable by the device and being generated from the changed source code; (g) a new first unique identifier is generated that is based on at least some of the transmitted data and on at least some of the changed source code as well as on an identification of the device; (h) the new first unique identifier is stored in the device; and (i) the transmitted data and the new first unique identifier are stored in a memory device independent of the device and of the programming system.

28. The method in accordance with claim 27, wherein the device is an embedded device.

Description

[0057] The invention will be described in the following purely by way of example with reference to the drawings. There are shown:

[0058] FIG. 1 a schematic view of the interaction of the device, the programming system and the memory device; and

[0059] FIG. 2 a data structure of the memory device in a schematic view.

[0060] FIG. 1 schematically shows a device that is a programmable logic controller (PLC) 10. The PLC 10 is connected by means of a data connection 12 to a programming system 14 that serves as the programming system. The data connection 12 is an Ethernet connection by means of a local area network (LAN). The programming system 14 is in turn connected to a cloud server 18 via an Internet connection 16.

[0061] For programming the PLC 10, a source code 20 is first prepared on the programming system 14 that is converted by a programming environment (not shown) into an executable code, i.e. into an executable 22. After the preparation of the executable 22, a second unique identifier 24 is generated from the source code 20, from the executable 22 and from a serial number 23 of the programming system 14. Any other identification of the programming system 14 can also be used instead of the serial number 23 of the programming system 14.

[0062] The second unique identifier 24, the source code 20, the executable 22 and the serial number 23 of the programming system 14 are then transmitted to the cloud server 18 and are saved there. On the storage in the cloud server 18, the second unique identifier 24 serves for the association of the data stored in the cloud server 18 with a respective programming system 14.

[0063] The executable 22 is subsequently transmitted to the PLC 10 by means of the data connection 12. The executable 22 in this respect comprises a user application. The user application is executed by the PLC 10 while taking account of a configuration 26 prepared by the programming system 14 and likewise transmitted to the PLC 10 and of firmware 28 of the PLC 10.

[0064] The user application of the executable 22 can, for example, comprise a motor control for a plant processing food. The PLC 10 has a fieldbus interface (not shown for controlling the connected motors.

[0065] The programming system 14 subsequently generates a first unique identifier 30 from the source code 20, the executable 22, the second unique identifier 24, the configuration 26, the firmware 28 and a serial number 29 of a memory card (not shown) of the PLC 10. The first unique identifier 30 is in this respect generated by means of a hash function such that the second unique identifier 24 can be determined from the first unique identifier 30. The first unique identifier 30 is transmitted to the PLC 10 and is saved there.

[0066] In addition, the first unique identifier 30 is transmitted together with the configuration 26, the firmware 28 and the serial number 29 of the memory card to the cloud server 18 and is stored there.

[0067] FIG. 2 shows a data structure 32 in accordance with which data are stored in the cloud server 18. The data entries of the data structure 32 are in this respect first ordered in accordance with the second unique identifier 24, with a single second unique identifier 24 being shown by way of example in FIG. 2. The data entries generally form instances of source code 20, executable 22, and the second unique identifier 24.

[0068] The second unique identifier 24 in this respect represents a specific combination of source code 20, executable 22, and programming system 14, with the programming system 14 being represented by the serial number 23 of the programming system 14. All the first unique identifiers 30 based on the same source code 20 and on the same executable 22 are linked to the entry for the second unique identifier 24 in the data structure 32. Three first unique identifiers 30a, 30b, 30c are shown by way of example in FIG. 2 that were each generated by transmitting the executable 22 belonging to the second unique identifier 24 to different devices. The respective configuration 26a, 26b, 26c and the firmware 28a, 28b, 28c used on the respective PLC 10 are stored together with the respective first unique identifier 30a, 30b, 30c. The respective serial number 29a, 29b, 29c of the memory card of the respective PLC 10 is likewise saved.

[0069] It can thus be determined in a simple manner with reference to the data structure 32 and in particular on the basis of the serial number 29a, 29b, 29c of the memory card which source code 20 is used on which PLC 10 with which configuration and with which firmware 28. An overview of the software versions present on the respective devices can thus be preserved even with large development projects with a large number of involved developers and with a plurality of PLC devices 10 used.

REFERENCE NUMERAL LIST

[0070] 10 PLC [0071] 12 data connection [0072] 14 programming system [0073] 16 Internet connection [0074] 18 cloud server [0075] 20 source code [0076] 22 executable [0077] 23 serial number of the programming system [0078] 24 second unique identifier [0079] 26 configuration [0080] 28 firmware [0081] 29 serial number of the memory card [0082] 30 first unique identifier [0083] 32 data structure