[go: up one dir, main page]

EP3326101B1 - Method and system for firmware-updating a control device for process control - Google Patents

Method and system for firmware-updating a control device for process control Download PDF

Info

Publication number
EP3326101B1
EP3326101B1 EP16750636.9A EP16750636A EP3326101B1 EP 3326101 B1 EP3326101 B1 EP 3326101B1 EP 16750636 A EP16750636 A EP 16750636A EP 3326101 B1 EP3326101 B1 EP 3326101B1
Authority
EP
European Patent Office
Prior art keywords
firmware
control device
updating
file
update
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
EP16750636.9A
Other languages
German (de)
French (fr)
Other versions
EP3326101A1 (en
Inventor
Joachim POPPE
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Phoenix Contact GmbH and Co KG
Original Assignee
Phoenix Contact GmbH and Co KG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Phoenix Contact GmbH and Co KG filed Critical Phoenix Contact GmbH and Co KG
Publication of EP3326101A1 publication Critical patent/EP3326101A1/en
Application granted granted Critical
Publication of EP3326101B1 publication Critical patent/EP3326101B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/101Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities
    • G06F21/1011Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities to devices
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/107License processing; Key processing
    • G06F21/1077Recurrent authorisation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2139Recurrent verification

Definitions

  • the invention relates generally to automation technology, and in particular to a method and a system for updating the firmware of a control device for process control.
  • control devices are used to control machines and systems, which are connected to the respective machine or system via sensors and actuators, whereby the sensors and actuators are usually connected to inputs and outputs of the control device via I / O modules .
  • the control devices are usually designed as programmable logic controllers (PLC) which can be programmed with a control application that can be executed by a microprocessor of the control device.
  • PLC programmable logic controller
  • a firmware update in the form of an update may be required to correct errors or to expand the functions of a safety controller.
  • the firmware typically includes operating software for the control device, as well as software, also referred to as a loader, for loading the operating software, and can also include an operating program for a programmable IC, such as an FPGA (Field-Programmable Gate Array), which forms the microprocessor for executing the control application.
  • a firmware update cannot be carried out by the user without further ado.
  • a firmware update can be carried out by the device manufacturer in compliance with the safety requirements, which, however, is associated with a high level of logistics and costs, especially in the case of control devices that are already installed in the field.
  • the invention is based on the object of showing a way in which a method for updating the firmware of a control device, in particular a safety controller, can be simplified and / or improved.
  • a core concept of the invention consists in providing a device-specific authorization check for the implementation of a firmware update by the manufacturer and, if the authorization check is successful, provide a device-specific activation code to carry out the firmware update, for which purpose a release device is provided by the manufacturer and an update device that can be connected to a control device is provided by the user.
  • firmware updates can advantageously be carried out under the complete control of the manufacturer, the logistical and cost outlay required for this being able to be considerably reduced, and in addition, firmware updates that have been carried out can be traced for each device.
  • firmware updates that have been carried out can be traced for each device.
  • a secure firmware update under control and long-term archiving by the manufacturer can be made possible.
  • a method for updating the firmware of a control device for process control with at least one control module is provided, wherein the control module is assigned a firmware stored in a system memory of the control device.
  • a firmware file with new firmware contained therein for the at least one control module is first provided in an update device that can be connected to the control device. This can be done in any suitable manner, for example by loading from a data carrier or by Internet downloading from a website of the manufacturer of the control device.
  • the control device is designed in particular as a safety control for fail-safe control of a safety-critical process.
  • the method also provides that the update device retrieves first device data from the control device, which is stored in the control device, generates a signed device file as a function of this first device data and as a function of information identifying the new firmware, and generates the signed device -Transfer file to a central release facility. This can take place, for example, in response to a user input entered at the update device, with the user input optionally also being able to select the firmware to be newly installed.
  • a digital signature can be generated in a manner known per se with the aid of a secret signature key, which enables the central release device to check the integrity of the signed device file by means of an associated verification key.
  • the signed device file includes the first device data and the information that identifies the new firmware, as well as a digital signature generated for this data.
  • the signed device file received is checked by the central release device and an activation code is generated and transmitted back to the update device only if the check is successful, the activation code being second device data and a unique one Includes identification information.
  • the unique identification information can advantageously be provided as a GUID (Globally Unique Identifier) and is used to track firmware updates that have been carried out.
  • the update device After receiving the activation code, the update device carries out a consistency check of the first device data, as a function of which the signed device file was generated, and of the second device data contained in the received activation code.
  • the method can provide for a renewed retrieval of the first device data stored in the control device by the update device, in which case the update device performs a consistency check of the newly retrieved first device data and the second device data contained in the received activation code.
  • the communication between the update device and the central release device can preferably take place via a direct communication connection, for example a wired Internet connection.
  • the data can also be transmitted between the update device and the central release device in any other suitable manner, for example by e-mail data exchange or via a radio network. In principle, data exchange using a separate data carrier would also be conceivable.
  • a renewed retrieval of the first device data can in particular be advantageously provided if the data exchange takes place offline, ie not by means of an existing communication connection, since in In this case, the first device data may have changed since the previous retrieval.
  • the method advantageously provides that the update device first transmits the new firmware as a firmware file to the control device and then transmits a device-specific update command to the control device to initiate the update, the control device in response to the received update command, the firmware of the control module stored in the system memory is automatically updated with the firmware contained in the received firmware file, the firmware stored in the system memory preferably being overwritten with the new firmware.
  • the firmware file transmitted by the update device can initially be temporarily stored, with the intermediate storage being able to take place, for example, in a parameterization memory of the control device.
  • the system memory and / or the parameterization memory are preferably designed as overwritable memory, for example as a flash memory or as an EEPROM.
  • the firmware file advantageously also includes security information, the control device executing a consistency check of the security information and only allowing the firmware update to proceed if the consistency check is successful.
  • the security information can in particular include a check value, for example in the form of a CRC value (CRC: Cyclic Redundancy Check), with the aid of which errors that have occurred during the storage or transmission of the firmware file can be recognized.
  • CRC Cyclic Redundancy Check
  • control device can have several, i. at least two control modules.
  • a separate firmware can advantageously be provided for each of the control modules.
  • the firmware file can include a new firmware for each of the at least two control modules. Provision can also be made for the firmware of the at least two control modules to be updated separately, the firmware file in this case only comprising new firmware for one of the at least two control modules.
  • the unique identification information contained in the activation code is particularly advantageously transmitted from the update device to the control device and stored in the control device. In this way, firmware updates carried out on the control device can advantageously be traced.
  • the central release device particularly advantageously checks for update authorization, with release information being retrieved from a product lifecycle management database in particular as a function of the device-specific information contained in the received signed device file.
  • the first and / or second device data preferably include a device type, a hardware version and / or a serial number of the control device and / or information on at least one firmware currently being executed by the control device.
  • the consistency check of the first and second device data includes in particular a comparison of the data contained in each case, in particular device-specific information such as the serial number, in order to check whether the received activation code was created for the control device for which a firmware update is to be carried out.
  • the update device In order to enable the manufacturer to fully track firmware updates that have been carried out successfully, it is particularly advantageous for the update device to transmit a confirmation message to the central release device when the firmware update has been carried out successfully, with the central release device in response the successful implementation of the firmware update is logged on the received confirmation message, wherein in particular a log entry comprising the unique identification information is stored in the product lifecycle management database.
  • a history of the firmware updates that have taken place can also advantageously be created for verification purposes in the sense of a required life cycle management.
  • the confirmation message is correspondingly transmitted from the update device to the central release device after a restart has taken place.
  • a self-test of the control device is preferably carried out.
  • a self-test is also known as a POST (Power-On Self-Test).
  • POST Power-On Self-Test
  • the steps typically performed in a POST are known per se and are therefore not explained in more detail here.
  • control device comprises several control modules
  • the control device after updating the firmware of the at least one control module stored in the system memory, performs a compatibility test of the firmware assigned to the different control modules, the control device changing to a safe operating state upon detection of an incompatibility.
  • This check can be provided as part of the POST, the control device changing to a safe operating state even if another error or another incompatibility is detected.
  • the method can advantageously provide for error-proof and / or encrypted data transmission.
  • This relates to the transfer of the signed device file from the update device to the central release device, the transfer of the activation code from the central release device to the update device, the transfer of the device-specific update command from the update device the control device and / or the transmission of the unique identification information contained in the activation code from the update device to the control device.
  • a system for updating the firmware of a control device accordingly comprises a control device for process control with at least one Control module, wherein firmware stored in a system memory of the control device is assigned to the control module, an update device that can be connected to the control device, and a central enabling device, the update device being designed to transfer first device data stored in the control device from the control device to generate a signed device file as a function of the first device data and as a function of information identifying new firmware, to transmit the signed device file to the central release device, from the central release device in response to the signed one sent Device file to receive an activation code, a consistency check of the first device data, depending on which the signed device file was generated, and the second device data contained in the received activation code or the first device stored in the control device to retrieve the data from the control device again and to carry out a consistency check of the newly retrieved first device data and of the second device data contained in the received activation code, and if the consistency check is successful, to update the firmware of the control device with the new firmware, and the
  • An essential aspect of the invention can be seen in the fact that a corresponding traceability of firmware updates carried out is made possible both by the manufacturer and on the respective control device.
  • control device is advantageously designed to store the unique identification information contained in the activation code received from the update device.
  • update device is advantageously designed to transmit a confirmation message to the central release device when the firmware update has been carried out successfully, and the central release device is advantageously designed to successfully execute the firmware in response to the received confirmation message -To log updates, in particular a log entry comprising the unique identification information being stored in a product lifecycle management database.
  • the functionality of the update device is preferably the responsibility of the device manufacturer.
  • the device manufacturer can particularly advantageously provide software, also referred to below as a download tool, which the user can install on a conventional computer which has a communication interface for communication with a control device in order to form the update device.
  • a digital storage medium is provided with instructions stored thereon, which are designed to carry out method steps when they are carried out on a computer, comprising: a) calling up first device data stored in a control device connected to the computer, b) generating a signed device File as a function of the first device data and as a function of information which identifies a newly provided firmware, c) transferring the signed device file to a central release device, d) receiving an activation code from the central release device in response to the sent signed device file, the activation code comprising second device data and unique identification information, e) performing a consistency check of the first device data retrieved in step a) and the second device data contained in the activation code received, or retrieving the data in the control again device stored first device data and performing a consistency check of the retrieved first device data and the second device data contained in the received activation code, and f) effecting, only if the consistency check is successful, an update of the firmware of the control device with the new firmware.
  • Fig. 1 is an exemplary system 10 for updating the firmware of a control device 100 designed as a safety controller, which is used, for example, in automation technology.
  • the control device 100 is connected via an interface 141 to a communication network 300 and via this to process devices 210 and 220.
  • the communication network 300 can be designed, for example, as a PROFINET communication network.
  • PROFINET Process Field Network
  • PROFINET is an open Industrial Ethernet standard used in the field of automation.
  • any other suitable communication network such as a fieldbus, can also be used.
  • the control device 100 comprises a control unit 110 with two control modules 112 and 114. Furthermore, the control 100 comprises an internal system memory 120 connected to the control unit 110, but not externally can be accessed.
  • the firmware is stored here, for example, in the form of a composite file, a so-called container file, which is unpacked and put into operation when the system is started.
  • a parameterization memory 130 is provided in the controller 100 which contains the configuration of the controller, the application program and, if necessary, further application-specific data.
  • a firmware update is possible, for example, in that a new firmware container is stored in the parameterization memory via the communication interface 142 of the controller 100 and then a command to the controller 100 starts a procedure which puts the new firmware into operation with this container.
  • control device 100 can be connected for this purpose via a communication link 310 to a computer 400 on which a software tool provided by the manufacturer of the control device 100, hereinafter referred to as a download tool and in Fig. 1 referred to as DLT for short, is installed.
  • a software tool provided by the manufacturer of the control device 100, hereinafter referred to as a download tool and in Fig. 1 referred to as DLT for short, is installed.
  • the interface 142 can be designed, for example, as a USB interface or as an Ethernet interface.
  • the computer 400 is preferably connected to a manufacturer server 500 via the Internet 320, the manufacturer server 500 comprising a central release device.
  • a data transfer between the download tool and the central release facility can take place via the Internet can also be done in other ways.
  • the manufacturer server 500 is also connected to a product lifecycle management database 510, hereinafter also referred to as PLM-DB for short.
  • FIG. 2 A preferred sequence of a firmware update is shown again in detail as a flow chart in FIG Figures 2 and 3 shown, where Fig. 2 a first phase and Fig. 3 shows a second phase.
  • Phase 1 shown comprises the following steps.
  • step 600 the firmware file is read from the local file system by the download tool on the update device 400.
  • the control device 100 is identified by a data query, for this purpose the update device 400 transmits a corresponding request 607 to the control device 100, which in response to this query in step 610 sends the first device data which are transmitted to the update device 400 in step 612.
  • the device data received by the control device 100 are displayed to the user in step 615.
  • the device data are transmitted to the manufacturer in a secure manner with the header data of the firmware update file, a corresponding signature file being generated for this purpose in step 620 and sent to the manufacturer server 500 in step 625.
  • the signature file transmitted to the manufacturer server 500 in step 627 is checked in step 630 by a release device contained in the manufacturer server 500.
  • the manufacturer server 500 compares the authorization with the PLM-DB 510. If the authorization check is successful, the manufacturer server 500 generates a secured activation code in step 635, for example in the form of an activation file, which comprises a backup and a unique code as a tracking ID.
  • the manufacturer server 500 sends the activation code to the update device 400.
  • the activation code transmitted in step 642 is received by the update device 400 and, in response to the receipt of the activation code transmitted in step 642, the update device 400 executes The illustrated embodiment in step 645 again interrogates the first device data from the control device 100, for this purpose the update device 400 transmits a corresponding request 647 to the control device 100, which sends the first device data in response to this request in step 650 which are transmitted to the update device 400 in step 652. That on The download tool running in the update device 400 checks in step 655 the consistency of the device and activation code and, if the consistency check is successful, carries out the data transfer in step 660. For this purpose, the firmware update file is transmitted to the control device 100 in step 662 and is initially temporarily stored there in step 665.
  • the parameterization memory 130 or another suitable, also volatile, memory can be used for intermediate storage.
  • confirmation of the storage is transmitted to the update device 400.
  • step 670 there is a consistency check of the firmware update file for formal correctness, the result of the check being transmitted to the update device 400 in step 672. If the consistency check is successful, the update device 400 then sends a device-specific update command to the control device 100 in step 675, whereby the result of the consistency check is preferably displayed to the user and the user is also informed about the execution of the update, ie the programming or overwriting of the system memory 120 of the new firmware, additionally confirmed by an entry.
  • the controller 100 executes the firmware update in step 680 and stores the unique tracking ID.
  • step 682 the control device 100 transmits to the update device 400 the information as to whether the update, ie the overwriting of the system memory, was carried out successfully, the update result being displayed to the user in step 685.
  • the control device 100 goes into a wait state for reset in step 690, ie to a restart of the control device 100, it also being possible for an automatic implementation of a reset to be provided.
  • Phase 2 shown includes the following steps.
  • control device 100 After the control device 100 has been restarted, it first carries out a self-test in step 700, with the package compatibility of the firmware assigned to the control modules 112 and 114 being checked in particular, whereby these can be present as diverse firmware components.
  • step 705 If an error is detected in step 705 when performing the self-test, the control device 100 assumes a safe state in step 710.
  • the measures required to achieve a safe state are known per se and are therefore not explained in more detail here.
  • control device 100 changes over to normal operation in step 720.
  • the download tool in the update device 400 establishes a connection to the control device 100 in step 725, connection inquiries 727 being transmitted to the control device 100, preferably cyclically, until the control device 100 responds in step 730 and the connection request 727 in Step 732 answered.
  • step 735 the download tool queries the updated device data, with the update facility for this purpose 400 transmits a corresponding request 737 to the control device 100, which, in response to this request in step 740, causes device data to be sent, which are transmitted to the update device 400 in step 742.
  • step 745 the download tool displays the requested device data for the operator, possibly with an error message.
  • a confirmation of the update is securely transmitted to the manufacturer server 500 in step 750.
  • the manufacturer server 500 logs or stores the confirmation in the PLM-DB 510 in step 755.
  • a confirmation of the logging that has taken place is transmitted in step 757 to the update device 400 and the user is informed in step 760 of the completion of the process via a corresponding display.
  • the following table shows an example of the structure of a firmware update file, i.e. the secure firmware container: component content description Container header 1.
  • File name of the container ie the firmware update file Name of the firmware update file, the file is thus secured against renaming (pos. 1 is part of pos. 6); unique numeric device identifier; Version of the firmware update file; Number of subsequent components, for example in the case of several, also diverse control modules 2.
  • Device ID 3. Version number 4. Number of components included 5.
  • Component header 1 a) destination (e.g.
  • control module 1 or control module 2) Ensuring the correct target of the programming and verification of the contained image; b) Type of image (loader, operating software, or FPGA program) Determination of the position in the firmware update file Size including image header; c) Offset address in the firmware update file d) Size in the firmware update file Destination address in read-only memory; Protection against corruption of the header or the component e) destination address f) checksum over the complete Component (incl. Header) 6.
  • Component header 2 ... n further component headers according to the number in pos. 4 7. Header checksum over pos. 1 to 4 and all component headers Check sum over pos. 1-6 (all component headers) Firmware image 1 1.
  • Image header (Magic Number 1, checksum, size, address information) Information for the firmware loader 2.
  • Firmware image 1 the firmware image to be loaded 1 Firmware image ... 1.
  • Firmware image n 1.
  • FW image n the firmware image to be loaded n
  • firmware to be updated also referred to as firmware image, operating software, software used to load operating software and called a loader, as well as software for programming an FPGA (Field- Programmable gate array) trained processor can include FPGA program used.
  • the method described advantageously provides a distributed comparison and release device outside the safety controller.
  • This implements a secured consent principle, whereby the consent or the comparison and the responsibility lies first with the manufacturer, the release of the programming is the responsibility of the download tool or, in the last instance, the Operator.
  • the download tool itself is the responsibility of the manufacturer.
  • Encryption of the firmware update file is advantageous, but not absolutely necessary, since all steps are preferably secured by a confidential checksum method.
  • the algorithm used can be easily adapted, particularly advantageously, if necessary, without having to make changes to the firmware.
  • the method can in principle be interrupted after the first query of the device data, but it is advantageous to run one after the other online.
  • the programming is subject to the approval of the operator and is initiated by a secured programming command.
  • the unique code which is part of the activation and was generated by the manufacturer, is stored in the PLM database 510 and non-volatile on the control device 100, this preferably being part of the programming command.
  • This code can be used to track which activation was used for the firmware update, whereby the code is stored by the manufacturer and in the device, which results in a double chain of evidence.
  • the unique code is advantageously implemented using a GUID (Globally Unique Identifier).
  • GUID Globally Unique Identifier

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Automation & Control Theory (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Stored Programmes (AREA)

Description

Beschreibungdescription

Die Erfindung betrifft allgemein die Automatisierungstechnik, und insbesondere ein Verfahren und ein System zur Firmware-Aktualisierung einer Steuereinrichtung zur Prozesssteuerung.The invention relates generally to automation technology, and in particular to a method and a system for updating the firmware of a control device for process control.

In der Automatisierungstechnik werden zur Steuerung von Maschinen und Anlagen Steuereinrichtungen eingesetzt, die über Sensoren und Aktoren an die jeweilige Maschine oder Anlage angebunden sind, wobei die Sensoren und Aktoren in der Regel über E/A-Baugruppen mit Ein- und Ausgängen der Steuereinrichtung verbunden sind. Heute sind die Steuereinrichtungen in der Regel als speicherprogrammierbare Steuerungen (SPS) ausgebildet, die mit einer durch einen Mikroprozessor der Steuereinrichtung ausführbaren Steuerapplikation programmiert werden können.In automation technology, control devices are used to control machines and systems, which are connected to the respective machine or system via sensors and actuators, whereby the sensors and actuators are usually connected to inputs and outputs of the control device via I / O modules . Today the control devices are usually designed as programmable logic controllers (PLC) which can be programmed with a control application that can be executed by a microprocessor of the control device.

Insbesondere zur Steuerung von sicherheitsrelevanten Prozessen, d.h. von Vorgängen, von denen eine Gefahr für Mensch oder Maschine ausgeht, werden Sicherheitssteuerungen eingesetzt, die vorgegebenen Sicherheitsanforderungen genügen müssen. Zur Fehlerbehebung oder Funktionserweiterung einer Sicherheitssteuerung kann eine Aktualisierung der Firmware in Form eines Updates erforderlich sein. Die Firmware umfasst typischerweise eine Betriebssoftware der Steuereinrichtung, sowie eine auch als Loader bezeichnete Software zum Laden der Betriebssoftware, und kann ferner ein Betriebsprogramm für einen programmierbaren IC, wie beispielsweise einen FPGA (Field-Programmable Gate Array), welcher den Mikroprozessor zur Ausführung der Steuerapplikation bildet, umfassen. Um den an eine Sicherheitssteuerung gestellten Sicherheitsanforderungen zu genügen, kann ein solches Firmware-Update jedoch nicht ohne weiteres vom Benutzer durchgeführt werden. Ein Firmware-Update kann vom Gerätehersteller unter Einhaltung der Sicherheitsanforderungen durchgeführt werden, womit jedoch, insbesondere bei bereits im Feld installierten Steuerungseinrichtungen, ein hoher Logistik- und Kostenaufwand verbunden ist.In particular, to control safety-relevant processes, that is to say of operations that pose a risk to man or machine, safety controls are used which must meet specified safety requirements. A firmware update in the form of an update may be required to correct errors or to expand the functions of a safety controller. The firmware typically includes operating software for the control device, as well as software, also referred to as a loader, for loading the operating software, and can also include an operating program for a programmable IC, such as an FPGA (Field-Programmable Gate Array), which forms the microprocessor for executing the control application. In order to meet the safety requirements placed on a safety controller, such a firmware update cannot be carried out by the user without further ado. A firmware update can be carried out by the device manufacturer in compliance with the safety requirements, which, however, is associated with a high level of logistics and costs, especially in the case of control devices that are already installed in the field.

Aus EP 1 532 494 B1 ist ein Verfahren zum Aufspielen eines neuen Betriebsprogramms auf eine Sicherheitssteuerung bekannt, wobei eine in der Sicherheitssteuerung integrierte Download- und Freigabeeinrichtung zum Übernehmen eines neuen Betriebsprogramms vorhanden ist, und wobei die integrierte Freigabeeinrichtung die Übernahme des neuen Betriebsprogramms in Abhängigkeit von einer Freigabeinformation gestattet oder unterbindet. US-Patentanmeldung US2008/052698 ist weiterer Stand der Technik.Out EP 1 532 494 B1 a method for uploading a new operating program to a safety controller is known, with a download and release device integrated in the safety controller for accepting a new operating program, and with the integrated release device allowing or preventing the acceptance of the new operating program as a function of release information. US patent application US2008 / 052698 is further state of the art.

Der Erfindung liegt die Aufgabe zugrunde, einen Weg aufzuzeigen, wie ein Verfahren zur Firmware-Aktualisierung einer Steuereinrichtung, insbesondere einer Sicherheitssteuerung, vereinfacht und/oder verbessert werden kann.The invention is based on the object of showing a way in which a method for updating the firmware of a control device, in particular a safety controller, can be simplified and / or improved.

Ein Kerngedanke der Erfindung besteht darin, herstellerseitig eine geräteindividuelle Berechtigungsprüfung für die Durchführung einer Firmware-Aktualisierung durchzuführen und bei erfolgreicher Berechtigungsprüfung einen geräteindividuellen Freischaltcode zur Durchführung der Firmware-Aktualisierung bereitzustellen, wobei zu diesem Zweck herstellerseitig eine Freigabeeinrichtung und nutzerseitig eine mit einer Steuereinrichtung verbindbare Aktualisierungs-Einrichtung vorgesehen sind.A core concept of the invention consists in providing a device-specific authorization check for the implementation of a firmware update by the manufacturer and, if the authorization check is successful, provide a device-specific activation code to carry out the firmware update, for which purpose a release device is provided by the manufacturer and an update device that can be connected to a control device is provided by the user.

Auf diese Weise kann vorteilhaft das Durchführen von Firmware-Updates unter der vollständigen Kontrolle des Herstellers erfolgen, wobei der dafür erforderliche Logistik- und Kostenaufwand erheblich reduziert werden kann, und wobei zudem eine Nachverfolgbarkeit durchgeführter Firmware-Updates geräteindividuell ermöglicht wird. Insbesondere kann ein sicheres Firmware-Update unter Kontrolle und Langzeitarchivierung durch den Hersteller ermöglicht werden.In this way, firmware updates can advantageously be carried out under the complete control of the manufacturer, the logistical and cost outlay required for this being able to be considerably reduced, and in addition, firmware updates that have been carried out can be traced for each device. In particular, a secure firmware update under control and long-term archiving by the manufacturer can be made possible.

Die oben genannte technische Aufgabe wird zum einen durch die Merkmale des Anspruchs 1 gelöst.The technical problem mentioned above is achieved on the one hand by the features of claim 1.

Danach ist ein Verfahren zur Firmware-Aktualisierung einer Steuereinrichtung zur Prozesssteuerung mit wenigstens einem Steuermodul vorgesehen, wobei dem Steuermodul eine in einem Systemspeicher der Steuereinrichtung gespeicherte Firmware zugeordnet ist. Gemäß dem Verfahren wird zunächst eine Firmware-Datei mit einer darin enthaltenen neuen Firmware für das wenigstens eine Steuermodul in einer mit der Steuereinrichtung verbindbaren Aktualisierungs-Einrichtung bereitgestellt. Dies kann auf eine beliebige geeignete Weise erfolgen, beispielsweise durch Aufspielen von einem Datenträger oder durch Internet-Download von einer Webseite des Herstellers der Steuereinrichtung. Die Steuereinrichtung ist insbesondere als Sicherheitssteuerung zur fehlersicheren Steuerung eines sicherheitskritischen Prozesses ausgebildet.According to this, a method for updating the firmware of a control device for process control with at least one control module is provided, wherein the control module is assigned a firmware stored in a system memory of the control device. According to the method, a firmware file with new firmware contained therein for the at least one control module is first provided in an update device that can be connected to the control device. This can be done in any suitable manner, for example by loading from a data carrier or by Internet downloading from a website of the manufacturer of the control device. The control device is designed in particular as a safety control for fail-safe control of a safety-critical process.

Das Verfahren sieht ferner vor, dass die Aktualisierungs-Einrichtung von der Steuereinrichtung erste Gerätedaten abruft, die in der Steuereinrichtung gespeichert sind, in Abhängigkeit dieser ersten Gerätedaten sowie in Abhängigkeit einer die neue Firmware identifizierenden Information eine signierte Geräte-Datei erzeugt, und die signierte Geräte-Datei zu einer zentralen Freigabe-Einrichtung überträgt. Dies kann beispielsweise in Antwort auf eine an der Aktualisierungs-Einrichtung eingegebene Benutzereingabe erfolgen, wobei durch die Benutzereingabe gegebenenfalls auch die neu zu installierende Firmware ausgewählt werden kann. Zum Erzeugen der signierten Geräte-Datei kann insbesondere auf an sich bekannte Weise eine digitale Signatur mit Hilfe eines geheimen Signaturschlüssels erzeugt werden, die es der zentralen Freigabe-Einrichtung ermöglicht, mittels eines zugehörigen Verifikationsschlüssels die Integrität der signierten Geräte-Datei zu prüfen. Im einfachsten Fall umfasst die signierte Geräte-Datei die ersten Gerätedaten und die Information, welche die neue Firmware identifiziert, sowie eine für diese Daten erzeugte digitale Signatur.The method also provides that the update device retrieves first device data from the control device, which is stored in the control device, generates a signed device file as a function of this first device data and as a function of information identifying the new firmware, and generates the signed device -Transfer file to a central release facility. This can take place, for example, in response to a user input entered at the update device, with the user input optionally also being able to select the firmware to be newly installed. To generate the signed device file, a digital signature can be generated in a manner known per se with the aid of a secret signature key, which enables the central release device to check the integrity of the signed device file by means of an associated verification key. In the simplest case, the signed device file includes the first device data and the information that identifies the new firmware, as well as a digital signature generated for this data.

Von der zentralen Freigabeeinrichtung wird die empfangene signierte Geräte-Datei geprüft und nur bei erfolgreicher Prüfung ein Freischaltcode erzeugt und zurück zu der Aktualisierungs-Einrichtung übertragen, wobei der Freischaltcode zweite Gerätedaten und eine einzigartige Identifikationsinformation umfasst. Die einzigartige Identifikationsinformation kann vorteilhaft als GUID (Globally Unique Identifier) bereitgestellt werden und dient der Nachverfolgung durchgeführter Firmware-Updates.The signed device file received is checked by the central release device and an activation code is generated and transmitted back to the update device only if the check is successful, the activation code being second device data and a unique one Includes identification information. The unique identification information can advantageously be provided as a GUID (Globally Unique Identifier) and is used to track firmware updates that have been carried out.

Nach Empfang des Freischaltcodes führt die Aktualisierungs-Einrichtung eine Konsistenzprüfung der ersten Gerätedaten, in Abhängigkeit derer die signierte Geräte-Datei erzeugt wurde, und der im empfangenen Freischaltcode enthaltenen zweiten Gerätedaten durch. Alternativ kann das Verfahren ein erneutes Abrufen der in der Steuereinrichtung gespeicherten ersten Gerätedaten durch die Aktualisierungs-Einrichtung vorsehen, wobei die Aktualisierungs-Einrichtung in diesem Fall eine Konsistenzprüfung der erneut abgerufenen ersten Gerätedaten und der im empfangenen Freischaltcode enthaltenen zweiten Gerätedaten durchführt.After receiving the activation code, the update device carries out a consistency check of the first device data, as a function of which the signed device file was generated, and of the second device data contained in the received activation code. Alternatively, the method can provide for a renewed retrieval of the first device data stored in the control device by the update device, in which case the update device performs a consistency check of the newly retrieved first device data and the second device data contained in the received activation code.

Die Kommunikation zwischen Aktualisierungs-Einrichtung und zentraler Freigabeeinrichtung kann vorzugsweise über eine direkte Kommunikationsverbindung, beispielsweise eine drahtgebundene Internet-Verbindung, erfolgen. Eine Übertragung der Daten zwischen Aktualisierungs-Einrichtung und zentraler Freigabeeinrichtung kann aber auch auf jede andere geeignete Weise, beispielsweise per E-Mail-Datenaustausch oder über ein Funknetz erfolgen. Prinzipiell wäre auch ein Datenaustausch mittels eines separaten Datenträgers denkbar.The communication between the update device and the central release device can preferably take place via a direct communication connection, for example a wired Internet connection. However, the data can also be transmitted between the update device and the central release device in any other suitable manner, for example by e-mail data exchange or via a radio network. In principle, data exchange using a separate data carrier would also be conceivable.

Ein erneutes Abrufen der ersten Gerätedaten kann insbesondere dann vorteilhaft vorgesehen sein, wenn der Datenaustausch offline, d.h. nicht mittels einer bestehenden Kommunikationsverbindung erfolgt, da sich in diesem Fall die ersten Gerätedaten seit dem vorherigen Abrufen geändert haben können.A renewed retrieval of the first device data can in particular be advantageously provided if the data exchange takes place offline, ie not by means of an existing communication connection, since in In this case, the first device data may have changed since the previous retrieval.

Nur bei erfolgreicher Konsistenzprüfung führt die Aktualisierungs-Einrichtung eine Aktualisierung der Firmware der Steuereinrichtung mit der neuen Firmware durch. Zum Durchführen der Firmware-Aktualisierung der Steuereinrichtung sieht das Verfahren vorteilhaft vor, dass die Aktualisierungs-Einrichtung zunächst die neue Firmware als Firmware-Datei zu der Steuereinrichtung überträgt und danach zum Initiieren der Aktualisierung einen geräteindividuellen Aktualisierungs-Befehl zu der Steuereinrichtung überträgt, wobei die Steuereinrichtung unter Ansprechen auf den empfangenen Aktualisierungs-Befehl automatisch die im Systemspeicher gespeicherte Firmware des Steuermoduls mit der in der empfangenen Firmware-Datei enthaltenen Firmware aktualisiert, wobei vorzugsweise die im Systemspeicher gespeicherte Firmware mit der neuen Firmware überschrieben wird. Die von der Aktualisierungs-Einrichtung übertragene Firmware-Datei kann zu diesem Zweck zunächst zwischengespeichert werden, wobei die Zwischenspeicherung beispielsweise in einem Parametrierungsspeicher der Steuereinrichtung erfolgen kann. Der Systemspeicher und/oder der Parametrierungsspeicher sind vorzugsweise als überschreibbarer Speicher, beispielsweise als Flash-Speicher oder als EEPROM ausgebildet.Only if the consistency check is successful does the update device update the firmware of the control device with the new firmware. To carry out the firmware update of the control device, the method advantageously provides that the update device first transmits the new firmware as a firmware file to the control device and then transmits a device-specific update command to the control device to initiate the update, the control device in response to the received update command, the firmware of the control module stored in the system memory is automatically updated with the firmware contained in the received firmware file, the firmware stored in the system memory preferably being overwritten with the new firmware. For this purpose, the firmware file transmitted by the update device can initially be temporarily stored, with the intermediate storage being able to take place, for example, in a parameterization memory of the control device. The system memory and / or the parameterization memory are preferably designed as overwritable memory, for example as a flash memory or as an EEPROM.

Durch den Einsatz eines geräteindividuellen Aktualisierungs-Befehls wird vorteilhaft ein zusätzlicher Clone-Schutz erreicht, d.h. der Update-Vorgang ist nicht beliebig auf weitere Steuerungen, ohne Protokollierung beim Hersteller, übertragbar.The use of a device-specific update command advantageously achieves additional clone protection, ie the update process is not Can be freely transferred to other controls without logging by the manufacturer.

Vorteilhaft umfasst die Firmware-Datei ferner Absicherungsinformationen, wobei die Steuereinrichtung eine Konsistenzprüfung der Absicherungsinformationen ausführt und nur bei erfolgreicher Konsistenzprüfung einen Fortgang der Firmware-Aktualisierung zulässt. Die Absicherungsinformationen können insbesondere einen Prüfwert, beispielsweise in Form eines CRC-Wertes (CRC: Cyclic Redundancy Check), umfassen, mit dessen Hilfe Fehler, die während der Speicherung oder Übertragung der Firmware-Datei aufgetreten sind, erkannt werden können.The firmware file advantageously also includes security information, the control device executing a consistency check of the security information and only allowing the firmware update to proceed if the consistency check is successful. The security information can in particular include a check value, for example in the form of a CRC value (CRC: Cyclic Redundancy Check), with the aid of which errors that have occurred during the storage or transmission of the firmware file can be recognized.

In einer vorteilhaften Ausführungsform kann die Steuereinrichtung mehrere, d.h. wenigstens zwei, Steuermodule umfassen. Vorteilhaft kann für jedes der Steuermodule eine eigene Firmware vorgesehen sein. Dementsprechend kann die Firmware-Datei eine neue Firmware für jedes der wenigstens zwei Steuermodule umfassen. Es kann auch vorgesehen sein, die Firmware der wenigstens zwei Steuermodule separat zu aktualisieren, wobei die Firmware-Datei in diesem Fall nur eine neue Firmware für eines der wenigstens zwei Steuermodule umfasst.In an advantageous embodiment, the control device can have several, i. at least two control modules. A separate firmware can advantageously be provided for each of the control modules. Accordingly, the firmware file can include a new firmware for each of the at least two control modules. Provision can also be made for the firmware of the at least two control modules to be updated separately, the firmware file in this case only comprising new firmware for one of the at least two control modules.

Mit besonderem Vorteil wird die im Freischaltcode enthaltene einzigartige Identifikationsinformation von der Aktualisierungs-Einrichtung zu der Steuereinrichtung übertragen und in der Steuereinrichtung gespeichert. Auf diese Weise wird vorteilhaft eine Nachverfolgbarkeit durchgeführter Firmware-Aktualisierungen auf der Steuereinrichtung ermöglicht.The unique identification information contained in the activation code is particularly advantageously transmitted from the update device to the control device and stored in the control device. In this way, firmware updates carried out on the control device can advantageously be traced.

Besonders vorteilhaft führt die zentrale Freigabe-Einrichtung eine Prüfung auf Update-Berechtigung durch, wobei insbesondere in Abhängigkeit von in der empfangenen signierten Geräte-Datei enthaltenen gerätespezifischen Informationen Freigabeinformationen aus einer Produktlebenszyklusmanagement-Datenbank abgerufen werden.The central release device particularly advantageously checks for update authorization, with release information being retrieved from a product lifecycle management database in particular as a function of the device-specific information contained in the received signed device file.

Zu diesem Zweck werden signifikante gespeicherte Daten bzw. Merkmale aus der Produktlebenszyklusmanagement-Datenbank abgerufen und gegen die empfangene signierte Geräte-Datei geprüft, unter Berücksichtigung gerätespezifischer Merkmale wie Gerätetyp, Hardware-Produktionsstand und/oder der letzten vorhandenen Firmware-Version.For this purpose, significant stored data or features are retrieved from the product lifecycle management database and checked against the signed device file received, taking into account device-specific features such as device type, hardware production status and / or the last available firmware version.

Um die Prüfung auf Update-Berechtigung durch die zentrale Freigabe-Einrichtung und um die Konsistenzprüfung der ersten und zweiten Gerätedaten durch die Aktualisierungs-Einrichtung durchführen zu können, umfassen die ersten und/oder zweiten Gerätedaten vorzugsweise einen Gerätetyp, eine Hardware-Version und/oder eine Seriennummer der Steuereinrichtung und/oder eine Information zu wenigstens einer von der Steuereinrichtung aktuell ausgeführten Firmware.In order to be able to carry out the check for update authorization by the central release device and in order to be able to carry out the consistency check of the first and second device data by the update device, the first and / or second device data preferably include a device type, a hardware version and / or a serial number of the control device and / or information on at least one firmware currently being executed by the control device.

Die Konsistenzprüfung der ersten und zweiten Gerätedaten umfasst insbesondere einen Vergleich jeweils enthaltener Daten, insbesondere einer geräteindividuellen Information wie der Seriennummer, um zu prüfen, ob der empfangene Freischaltcode für die Steuereinrichtung erstellt wurde, für die eine Firmware-Aktualisierung durchgeführt werden soll.The consistency check of the first and second device data includes in particular a comparison of the data contained in each case, in particular device-specific information such as the serial number, in order to check whether the received activation code was created for the control device for which a firmware update is to be carried out.

Um herstellerseitig eine vollständige Nachverfolgbarkeit erfolgreich durchgeführter Firmware-Updates zu ermöglichen, ist besonders vorteilhaft vorgesehen, dass die Aktualisierungs-Einrichtung eine Bestätigungsnachricht zu der zentralen Freigabe-Einrichtung überträgt, wenn die Firmware-Aktualisierung erfolgreich durchgeführt wurde, wobei die zentrale Freigabe-Einrichtung in Antwort auf die empfangene Bestätigungsnachricht die erfolgreiche Durchführung der Firmware-Aktualisierung protokolliert, wobei insbesondere ein die einzigartige Identifikationsinformation umfassender Protokolleintrag in der Produktlebenszyklusmanagement-Datenbank gespeichert wird. Vorteilhaft kann auch eine Historie der erfolgten Firmware-Updates zur Nachweisführung im Sinne eines geforderten Lebenszyklus-Management erstellt werden.In order to enable the manufacturer to fully track firmware updates that have been carried out successfully, it is particularly advantageous for the update device to transmit a confirmation message to the central release device when the firmware update has been carried out successfully, with the central release device in response the successful implementation of the firmware update is logged on the received confirmation message, wherein in particular a log entry comprising the unique identification information is stored in the product lifecycle management database. A history of the firmware updates that have taken place can also advantageously be created for verification purposes in the sense of a required life cycle management.

Zum Übernehmen der Firmware-Aktualisierung muss ein Systemneustart der Steuereinrichtung durchgeführt werden. Dementsprechend erfolgt das Übertragen der Bestätigungsnachricht von der Aktualisierungs-Einrichtung zu der zentralen Freigabe-Einrichtung nach erfolgtem Neustart.To apply the firmware update, the control device must be restarted. The confirmation message is correspondingly transmitted from the update device to the central release device after a restart has taken place.

Bei Neustart der Steuereinrichtung wird vorzugsweise ein Selbsttest der Steuereinrichtung durchgeführt. Ein solcher Selbsttest wird auch als POST (Power-On Self-Test) bezeichnet. Die bei einem POST typischerweise ausgeführten Schritte sind an sich bekannt und werden daher hier nicht näher ausgeführt.When the control device is restarted, a self-test of the control device is preferably carried out. Such a self-test is also known as a POST (Power-On Self-Test). The steps typically performed in a POST are known per se and are therefore not explained in more detail here.

Sofern die Steuereinrichtung mehrere Steuermodule umfasst, ist vorteilhaft vorgesehen, dass die Steuereinrichtung nach Aktualisieren der im Systemspeicher gespeicherten Firmware des wenigstens einen Steuermoduls eine Prüfung der Verträglichkeit der den unterschiedlichen Steuermodulen zugeordneten Firmware durchführt, wobei die Steuereinrichtung bei Erkennen einer Unverträglichkeit in einen sicheren Betriebszustand wechselt. Diese Prüfung kann als Bestandteil des POST vorgesehen sein, wobei die Steuereinrichtung auch bei Erkennen eines anderen Fehlers oder einer anderen Unverträglichkeit in einen sicheren Betriebszustand wechselt.If the control device comprises several control modules, it is advantageously provided that the control device, after updating the firmware of the at least one control module stored in the system memory, performs a compatibility test of the firmware assigned to the different control modules, the control device changing to a safe operating state upon detection of an incompatibility. This check can be provided as part of the POST, the control device changing to a safe operating state even if another error or another incompatibility is detected.

Zur Erhöhung der Sicherheit kann das Verfahren vorteilhaft eine fehlergesicherte und/oder verschlüsselte Datenübertragung vorsehen. Dies betrifft das Übertragen der signierten Geräte-Datei von der Aktualisierungs-Einrichtung zu der zentralen Freigabe-Einrichtung, das Übertragen des Freischaltcodes von der zentralen Freigabe-Einrichtung zu der Aktualisierungs-Einrichtung, das Übertragen des geräteindividuellen Aktualisierungs-Befehls von der Aktualisierungs-Einrichtung zu der Steuereinrichtung und/oder das Übertragen der im Freischaltcode enthaltenen einzigartigen Identifikationsinformation von der Aktualisierungs-Einrichtung zu der Steuereinrichtung.To increase security, the method can advantageously provide for error-proof and / or encrypted data transmission. This relates to the transfer of the signed device file from the update device to the central release device, the transfer of the activation code from the central release device to the update device, the transfer of the device-specific update command from the update device the control device and / or the transmission of the unique identification information contained in the activation code from the update device to the control device.

Die oben genannte technische Aufgabe wird auch durch ein System gemäß Anspruch 12 gelöst.The technical problem mentioned above is also achieved by a system according to claim 12.

Ein erfindungsgemäßes System zur Firmware-Aktualisierung einer Steuereinrichtung umfasst dementsprechend eine Steuereinrichtung zur Prozesssteuerung mit wenigstens einem Steuermodul, wobei dem Steuermodul eine in einem Systemspeicher der Steuereinrichtung gespeicherte Firmware zugeordnet ist, eine mit der Steuereinrichtung verbindbare Aktualisierungs-Einrichtung, und eine zentrale Freigabe-Einrichtung, wobei die Aktualisierungs-Einrichtung dazu ausgebildet ist, in der Steuereinrichtung gespeicherte erste Gerätedaten von der Steuereinrichtung abzurufen, in Abhängigkeit der ersten Gerätedaten und in Abhängigkeit einer eine neue Firmware identifizierenden Information eine signierte Geräte-Datei zu erzeugen, die signierte Geräte-Datei zu der zentralen Freigabe-Einrichtung zu übertragen, von der zentralen Freigabe-Einrichtung in Antwort auf die gesendete signierte Geräte-Datei einen Freischaltcode zu empfangen, eine Konsistenzprüfung der ersten Gerätedaten, in Abhängigkeit derer die signierte Geräte-Datei erzeugt wurde, und im empfangenen Freischaltcode enthaltener zweiter Gerätedaten durchzuführen oder die in der Steuereinrichtung gespeicherten ersten Gerätedaten von der Steuereinrichtung erneut abzurufen und eine Konsistenzprüfung der erneut abgerufenen ersten Gerätedaten und im empfangenen Freischaltcode enthaltener zweiter Gerätedaten durchzuführen, und bei erfolgreicher Konsistenzprüfung eine Aktualisierung der Firmware der Steuereinrichtung mit der neuen Firmware zu bewirken, und wobei die Freigabe-Einrichtung dazu ausgebildet ist, eine von der Aktualisierungs-Einrichtung empfangene signierte Geräte-Datei zu prüfen, bei erfolgreicher Prüfung einen Freischaltcode zu erzeugen, der zweite Gerätedaten und eine einzigartige Identifikationsinformation umfasst, und den Freischaltcode in Antwort auf die empfangene signierte Geräte-Datei zu der Aktualisierungs-Einrichtung zu übertragen.A system according to the invention for updating the firmware of a control device accordingly comprises a control device for process control with at least one Control module, wherein firmware stored in a system memory of the control device is assigned to the control module, an update device that can be connected to the control device, and a central enabling device, the update device being designed to transfer first device data stored in the control device from the control device to generate a signed device file as a function of the first device data and as a function of information identifying new firmware, to transmit the signed device file to the central release device, from the central release device in response to the signed one sent Device file to receive an activation code, a consistency check of the first device data, depending on which the signed device file was generated, and the second device data contained in the received activation code or the first device stored in the control device to retrieve the data from the control device again and to carry out a consistency check of the newly retrieved first device data and of the second device data contained in the received activation code, and if the consistency check is successful, to update the firmware of the control device with the new firmware, and the release device is designed to to check a signed device file received by the update device, to generate an activation code if the check is successful, which includes second device data and unique identification information, and to transmit the activation code to the update device in response to the received signed device file .

Ein wesentlicher Aspekt der Erfindung kann darin gesehen werden, dass eine korrespondierende Nachverfolgbarkeit durchgeführter Firmware-Updates sowohl herstellerseitig als auch auf der jeweiligen Steuereinrichtung ermöglicht wird.An essential aspect of the invention can be seen in the fact that a corresponding traceability of firmware updates carried out is made possible both by the manufacturer and on the respective control device.

Zu diesem Zweck ist die Steuereinrichtung vorteilhaft dazu ausgebildet, die in dem von der Aktualisierungs-Einrichtung empfangenen Freischaltcode enthaltene einzigartige Identifikationsinformation zu speichern. Ferner ist die Aktualisierungs-Einrichtung vorteilhaft dazu ausgebildet, eine Bestätigungsnachricht zu der zentralen Freigabe-Einrichtung zu übertragen, wenn die Firmware-Aktualisierung erfolgreich durchgeführt wurde, und die zentrale Freigabeeinrichtung ist vorteilhaft dazu ausgebildet, in Antwort auf die empfangene Bestätigungsnachricht die erfolgreiche Durchführung der Firmware-Aktualisierung zu protokollieren, wobei insbesondere ein die einzigartige Identifikationsinformation umfassender Protokolleintrag in einer Produktlebenszyklusmanagement-Datenbank gespeichert wird.For this purpose, the control device is advantageously designed to store the unique identification information contained in the activation code received from the update device. Furthermore, the update device is advantageously designed to transmit a confirmation message to the central release device when the firmware update has been carried out successfully, and the central release device is advantageously designed to successfully execute the firmware in response to the received confirmation message -To log updates, in particular a log entry comprising the unique identification information being stored in a product lifecycle management database.

Die Funktionalität der Aktualisierungs-Einrichtung liegt vorzugsweise im Verantwortungsbereich des Geräteherstellers. Besonders vorteilhaft kann vom Gerätehersteller eine Software bereitgestellt werden, im Folgenden auch als Download-Tool bezeichnet, welches der Benutzer auf einem herkömmlichen Computer, welcher eine Kommunikationsschnittstelle zur Kommunikation mit einer Steuereinrichtung aufweist, installieren kann, um so die Aktualisierungs-Einrichtung zu bilden.The functionality of the update device is preferably the responsibility of the device manufacturer. The device manufacturer can particularly advantageously provide software, also referred to below as a download tool, which the user can install on a conventional computer which has a communication interface for communication with a control device in order to form the update device.

Die oben genannte technische Aufgabe wird dementsprechend auch durch ein digitales Speichermedium gemäß Anspruch 14 gelöst.The above-mentioned technical problem is accordingly also achieved by a digital storage medium according to claim 14.

Danach ist ein digitales Speichermedium mit darauf gespeicherten Anweisungen vorgesehen, welche dazu ausgebildet sind, Verfahrensschritte auszuführen, wenn sie auf einem Computer ausgeführt werden, umfassend: a) Abrufen von in einer mit dem Computer verbundenen Steuereinrichtung gespeicherten ersten Gerätedaten, b) Erzeugen einer signierten Geräte-Datei in Abhängigkeit der ersten Gerätedaten und in Abhängigkeit einer Information, welche eine neu bereitgestellte Firmware identifiziert, c) Übertragen der signierten Geräte-Datei zu einer zentralen Freigabe-Einrichtung, d) Empfangen eines Freischaltcodes von der zentralen Freigabe-Einrichtung in Antwort auf die gesendete signierte Geräte-Datei, wobei der Freischaltcode zweite Gerätedaten und eine einzigartige Identifikationsinformation umfasst, e) Durchführen einer Konsistenzprüfung der in Schritt a) abgerufenen ersten Gerätedaten und der im empfangenen Freischaltcode enthaltenen zweiten Gerätedaten, oder erneutes Abrufen der in der Steuereinrichtung gespeicherten ersten Gerätedaten und Durchführen einer Konsistenzprüfung der erneut abgerufenen ersten Gerätedaten und der im empfangenen Freischaltcode enthaltenen zweiten Gerätedaten, und f) Bewirken, nur bei erfolgreicher Konsistenzprüfung, einer Aktualisierung der Firmware der Steuereinrichtung mit der neuen Firmware.According to this, a digital storage medium is provided with instructions stored thereon, which are designed to carry out method steps when they are carried out on a computer, comprising: a) calling up first device data stored in a control device connected to the computer, b) generating a signed device File as a function of the first device data and as a function of information which identifies a newly provided firmware, c) transferring the signed device file to a central release device, d) receiving an activation code from the central release device in response to the sent signed device file, the activation code comprising second device data and unique identification information, e) performing a consistency check of the first device data retrieved in step a) and the second device data contained in the activation code received, or retrieving the data in the control again device stored first device data and performing a consistency check of the retrieved first device data and the second device data contained in the received activation code, and f) effecting, only if the consistency check is successful, an update of the firmware of the control device with the new firmware.

Die Erfindung wird nachfolgend beispielhaft anhand bevorzugter Ausführungsformen und unter Bezugnahme auf die beigefügten Zeichnungen genauer beschrieben. Dabei bezeichnen gleiche Bezugszeichen in den Zeichnungen gleiche oder ähnliche Teile. Es zeigen:

Fig. 1
eine schematische Darstellung einer bevorzugten Ausführungsform eines Systems zur Firmware-Aktualisierung,
Fig. 2
ein schematisches Ablaufdiagramm einer ersten Phase einer Firmware-Aktualisierung, und
Fig. 3
ein schematisches Ablaufdiagramm einer zweiten Phase einer Firmware-Aktualisierung.
The invention is described below by way of example using preferred embodiments and with reference to accompanying drawings. The same reference symbols denote the same or similar parts in the drawings. Show it:
Fig. 1
a schematic representation of a preferred embodiment of a system for firmware update,
Fig. 2
a schematic flow diagram of a first phase of a firmware update, and
Fig. 3
a schematic flow diagram of a second phase of a firmware update.

In Fig. 1 ist ein beispielhaftes System 10 zur Firmware-Aktualisierung einer als Sicherheitssteuerung ausgebildeten Steuereinrichtung 100, die beispielsweise in der Automatisierungstechnik zum Einsatz kommt. Im dargestellten Ausführungsbeispiel ist die Steuereinrichtung 100 über eine Schnittstelle 141 mit einem Kommunikationsnetzwerk 300 und über dieses mit Prozesseinrichtungen 210 und 220 verbunden. Das Kommunikationsnetzwerk 300 kann beispielsweise als PROFINET-Kommunikationsnetz ausgebildet sein. PROFINET (Process Field Network) ist ein im Bereich der Automatisierung eingesetzter offener Industrial Ethernet-Standard. Es kann aber auch jedes andere geeignete Kommunikationsnetzwerk, wie zum Beispiel ein Feldbus, eingesetzt werden.In Fig. 1 is an exemplary system 10 for updating the firmware of a control device 100 designed as a safety controller, which is used, for example, in automation technology. In the exemplary embodiment shown, the control device 100 is connected via an interface 141 to a communication network 300 and via this to process devices 210 and 220. The communication network 300 can be designed, for example, as a PROFINET communication network. PROFINET (Process Field Network) is an open Industrial Ethernet standard used in the field of automation. However, any other suitable communication network, such as a fieldbus, can also be used.

Im dargestellten Ausführungsbeispiel umfasst die Steuereinrichtung 100 eine Steuereinheit 110 mit zwei Steuermodulen 112 und 114. Ferner umfasst die Steuerung 100 einen an die Steuereinheit 110 angeschlossenen, internen Systemspeicher 120, auf den von extern jedoch nicht zugegriffen werden kann. Hier ist die Firmware beispielsweise in Form einer zusammengesetzten Datei, einer sogenannten Container-Datei, abgelegt, die beim Systemstart entpackt und in Betrieb genommen wird. Des Weiteren ist in der Steuerung 100 ein Parametrierungsspeicher 130 vorgesehen, der die Konfiguration der Steuerung, das Anwendungsprogramm und gegebenenfalls weitere anwendungsspezifische Daten enthält. Ein Firmware-Update ist beispielsweise möglich, indem über die KommunikationsSchnittstelle 142 der Steuerung 100 ein neuer Firmwarecontainer auf den Parametrierungsspeicher abgelegt wird und dann ein Kommando an die Steuerung 100 eine Prozedur startet, welche die neue Firmware mit diesem Container in Betrieb nimmt.In the exemplary embodiment shown, the control device 100 comprises a control unit 110 with two control modules 112 and 114. Furthermore, the control 100 comprises an internal system memory 120 connected to the control unit 110, but not externally can be accessed. The firmware is stored here, for example, in the form of a composite file, a so-called container file, which is unpacked and put into operation when the system is started. Furthermore, a parameterization memory 130 is provided in the controller 100 which contains the configuration of the controller, the application program and, if necessary, further application-specific data. A firmware update is possible, for example, in that a new firmware container is stored in the parameterization memory via the communication interface 142 of the controller 100 and then a command to the controller 100 starts a procedure which puts the new firmware into operation with this container.

Im dargestellten Ausführungsbeispiel ist die Steuereinrichtung 100 zu diesem Zweck über eine Kommunikationsverbindung 310 mit einem Computer 400 verbindbar, auf welchem ein vom Hersteller der Steuereinrichtung 100 bereitgestelltes Software-Tool, im Folgenden als Download-Tool und in Fig. 1 kurz als DLT bezeichnet, installiert ist.In the exemplary embodiment shown, the control device 100 can be connected for this purpose via a communication link 310 to a computer 400 on which a software tool provided by the manufacturer of the control device 100, hereinafter referred to as a download tool and in Fig. 1 referred to as DLT for short, is installed.

Die Schnittstelle 142 kann beispielsweise als USB-Schnittstelle oder als Ethernet-Schnittstelle ausgebildet sein.The interface 142 can be designed, for example, as a USB interface or as an Ethernet interface.

Der Computer 400 ist vorzugsweise über das Internet 320 mit einem Hersteller-Server 500 verbunden, wobei der Hersteller-Server 500 eine zentrale Freigabeeinrichtung umfasst. Eine Datenübertragung zwischen dem Download-Tool und der zentralen Freigabeeinrichtung kann statt über das Internet auch auf anderem Weg erfolgen. Im dargestellten Ausführungsbeispiel ist der Hersteller-Server 500 ferner mit einer Produktlebenszyklusmanagement-Datenbank 510, im Folgend e auch kurz PLM-DB, verbunden.The computer 400 is preferably connected to a manufacturer server 500 via the Internet 320, the manufacturer server 500 comprising a central release device. A data transfer between the download tool and the central release facility can take place via the Internet can also be done in other ways. In the exemplary embodiment shown, the manufacturer server 500 is also connected to a product lifecycle management database 510, hereinafter also referred to as PLM-DB for short.

Nachfolgend wird ein bevorzugter Ablauf einer Firmware-Aktualisierung skizziert.

  • Durch das Download-Tool werden von der Sicherheitssteuerung 100 Gerätedaten abgefragt, die den Typ, die Seriennummer und Angaben zum aktuellen Hardware- und Firmware-Stand enthalten.
  • Durch das Download-Tool wird die Version der zu aktualisierenden Firmware ergänzt, gegen Verfälschung und Manipulation gesichert und als Gerätesignatur-File gespeichert.
  • Das Gerätesignatur-File wird über E-Mail oder vorteilhafterweise über direkte Internet-Kommunikation an den Hersteller-Server 500 übermittelt.
  • Beim Hersteller wird die Berechtigung für das Update geprüft, wobei dies vorteilhafterweise über einen auf dem Hersteller-Server 500 ablaufenden, als Freischaltgenerator ausgebildeten Server-Dienst erfolgt.
  • Zur Prüfung der Berechtigung wird beim Hersteller die PLM-DB 510 abgefragt und die Konsistenz und Plausibilität der übermittelten Daten geprüft sowie die in der PLM-DB 510 enthaltene HW-Version auf eine Berechtigung für ein Update herangezogen.
  • Sofern eine Update-Berechtigung vorliegt, wird ein abgesicherter gerätespezifischer Freischaltcode in Form einer Datei generiert, wobei diese einen einzigartigen Code enthält, der zur Nachverfolgbarkeit dient.
  • Der Freischaltcode enthält Daten zum Gerätetyp, der Seriennummer, der Hardware-Version und einen Code zur Nachverfolgbarkeit.
  • Der Freischaltcode ist gegen Verfälschung und Manipulation gesichert und wird über E-Mail oder vorzugsweise direkte Internet-Kommunikation an den Anwender des Download-Tools übermittelt
  • Das Download-Tool liest einerseits die Firmware-Update-Datei in Form eines sicheren Firmware-Containers mit enthaltener Geräte- und Versionskennung ein, als auch den vom Hersteller generierten Freischaltcode.
  • Das Download-Tool überprüft die Konsistenz der Daten von der Steuereinrichtung 100 mit den Daten im Freischaltcode und gibt den Download des sicheren Firmware-Containers auf die Steuereinrichtung 100 frei oder sperrt ihn.
  • Nach erfolgtem Transfer der Firmware-Update-Datei auf die Steuereinrichtung 100 und einer Konsistenzprüfung auf der Steuereinrichtung 100 wird die Programmierung inklusive einer Gegenprüfung auf der Steuereinrichtung 100 ausgeführt.
  • Zur Einleitung der Programmierung wird ein abgesichertes Programmierkommando verwendet.
  • Sofern die Übertragung des Firmware-Containers oder dessen Programmierung nicht korrekt verlief, wird der Anwender informiert und das Gerät verbleibt im eigensicheren Zustand.
  • In diesem Zustand ist eine erneute Programmierung notwendig und möglich.
  • Der Anwender der Steuerung erhält eine Firmware-Update-Datei zugeschickt oder kann sich diese alternativ vom Hersteller über das Internet laden; dies bedeutet, dass die Firmware-Update-Datei nicht personalisiert ist.
  • Die Firmware-Update-Datei ist eine sichere Container-Datei, die vom Hersteller generiert und durch einen Kopfdatensatz, auch als Header bezeichnet, zusätzlich gegen Datenverfälschung oder Daten-Manipulation gesichert wird.
  • Die Firmware-Update-Datei enthält Firmware-Komponenten für beide Steuermodule der sicheren Steuerung 100 und gegebenenfalls weitere Komponenten, vorteilhaft zum Beispiel FPGA-Konfiguration und Firmware-Loader, die gemeinsam einen Freigabeprozess nach IEC 61508 durchlaufen haben und zertifiziert sind.
  • Der Anwender startet das Download-Tool, liest die Firmware-Update-Datei und verbindet sich mit der Steuereinrichtung 100.
  • Das Download-Tool generiert aus den Daten der Steuereinrichtung 100 und der Firmware-Update-Datei eine Signatur-Datei, in der Update-relevante Daten enthalten sind, wie zum Beispiel Seriennummer, Hardware-Version, vorhandene Firmware-Version und neue Firmware-Version.
  • Die Signatur-Datei wird dem Hersteller übermittelt, zum Beispiel per E-Mail oder direkte Internet-Kommunikation.
  • Der Hersteller generiert nach Prüfung der Update-Fähigkeit einen Freischaltcode in Form einer abgesicherten Datei und übermittelt diese dem Anwender, zum Beispiel per E-Mail oder vorteilhafterweise per direkter Internet-Kommunikation.
  • Der Anwender liest den Freischaltcode zusammen mit der Firmware-Update-Datei in das Download-Tool ein und das Download-Tool prüft die Konsistenz des Freischaltcodes.
  • Bei positiver Prüfung wird die Firmware-Update-Datei als sicherer Container auf die angeschlossene Steuereinrichtung 100 transferiert und dort auf Konsistenz des Containers geprüft, wobei insbesondere eine Prüfung des Headers erfolgt.
  • Danach erfolgt die Programmierung in den Systemspeicher 120 und ein weiteres Rücklesen.
  • Das Ergebnis des Transfers, der Programmierung und der Überprüfungen werden vom Download-Tool für den Anwender angezeigt und ein Update-Protokoll generiert.
  • Nach der kompletten Programmierung muss das Gerät neu gestartet werden.
  • Beim Anlauf der programmierten Firmware findet eine weitere Konsistenzprüfung statt, dabei überprüft der Firmware-Loader die Prüfsumme der zu ladenden Firmware.
  • Nach dem Start der beiden diversitären Firmware-Komponenten erfolgt eine Prüfung, ob die FW-Versionen zueinander passen.
A preferred firmware update process is outlined below.
  • The download tool requests device data from the safety controller 100 that contain the type, serial number and information on the current hardware and firmware version.
  • The version of the firmware to be updated is supplemented by the download tool, secured against falsification and manipulation and saved as a device signature file.
  • The device signature file is transmitted to the manufacturer server 500 via e-mail or advantageously via direct Internet communication.
  • The authorization for the update is checked at the manufacturer, this advantageously taking place via a server service that runs on the manufacturer server 500 and is designed as an activation generator.
  • To check the authorization, the PLM-DB 510 is queried from the manufacturer and the consistency and plausibility of the transmitted data is checked and the HW version contained in the PLM-DB 510 is used for authorization for an update.
  • If there is an update authorization, a secured device-specific activation code is generated in the form of a file, which contains a unique code that is used for traceability.
  • The activation code contains data on the device type, serial number, hardware version and a code for traceability.
  • The activation code is secured against falsification and manipulation and is transmitted to the user of the download tool via e-mail or preferably direct Internet communication
  • On the one hand, the download tool reads in the firmware update file in the form of a secure firmware container with the device and version identification it contains, as well as the activation code generated by the manufacturer.
  • The download tool checks the consistency of the data from the control device 100 with the data in the activation code and enables or disables the download of the secure firmware container to the control device 100.
  • After the firmware update file has been transferred to the control device 100 and a consistency check has been carried out on the control device 100, the programming including a counter check is carried out on the control device 100.
  • A secured programming command is used to initiate programming.
  • If the transfer of the firmware container or its programming did not proceed correctly, the user is informed and the device remains in the intrinsically safe state.
  • In this state a new programming is necessary and possible.
  • The user of the control receives a firmware update file or can alternatively download it from the manufacturer via the Internet; this means that the firmware update file is not personalized.
  • The firmware update file is a secure container file that is generated by the manufacturer and is additionally protected against data corruption or data manipulation by a header data record, also known as a header.
  • The firmware update file contains firmware components for both control modules of the safe controller 100 and possibly further components, advantageously for example FPGA configuration and firmware loader, which have jointly gone through an approval process according to IEC 61508 and are certified.
  • The user starts the download tool, reads the firmware update file and connects to the control device 100.
  • The download tool generates a signature file from the data of the control device 100 and the firmware update file, which contains update-relevant data, such as serial number, hardware version, existing firmware version and new firmware version .
  • The signature file is sent to the manufacturer, for example by e-mail or direct Internet communication.
  • After checking the update capability, the manufacturer generates an activation code in the form of a secured file and transmits this to the user, for example by e-mail or advantageously by direct Internet communication.
  • The user reads the activation code together with the firmware update file into the download tool and the download tool checks the consistency of the activation code.
  • If the check is positive, the firmware update file is transferred as a secure container to the connected control device 100 and there the consistency of the container checked, the header being checked in particular.
  • This is followed by programming in the system memory 120 and a further reading back.
  • The result of the transfer, the programming and the checks are displayed by the download tool for the user and an update log is generated.
  • After the complete programming, the device must be restarted.
  • When the programmed firmware is started up, another consistency check takes place; the firmware loader checks the checksum of the firmware to be loaded.
  • After the two diverse firmware components have started, a check is made to determine whether the firmware versions match.

Ein bevorzugter Ablauf einer Firmware-Aktualisierung ist nochmals im Detail als Ablaufdiagramm in den Figuren 2 und 3 dargestellt, wobei Fig. 2 eine erste Phase und Fig. 3 eine zweite Phase zeigt.A preferred sequence of a firmware update is shown again in detail as a flow chart in FIG Figures 2 and 3 shown, where Fig. 2 a first phase and Fig. 3 shows a second phase.

Die in Fig. 2 dargestellte Phase 1 umfasst die folgenden Schritte.In the Fig. 2 Phase 1 shown comprises the following steps.

In Schritt 600 wird die Firmware-Datei durch das Download-Tool auf der Aktualisierungs-Einrichtung 400 vom lokalen Dateisystem gelesen. In Schritt 605 wird die Steuereinrichtung 100 durch eine Datenabfrage identifiziert, wobei zu diesem Zweck die Aktualisierungs-Einrichtung 400 eine entsprechende Anfrage 607 zu der Steuereinrichtung 100 überträgt, die in Antwort auf diese Anfrage in Schritt 610 das Senden von ersten Gerätedaten bewirkt, die in Schritt 612 zur Aktualisierungs-Einrichtung 400 übertragen werden. Im dargestellten Ausführungsbeispiel ist vorgesehen, dass die von der Steuereinrichtung 100 empfangenen Gerätedaten in Schritt 615 dem Anwender angezeigt werden. Die Gerätedaten werden mit den Headerdaten der Firmware-Update-Datei abgesichert zum Hersteller übertragen, wobei zu diesem Zweck in Schritt 620 eine entsprechende Signatur-Datei erzeugt und in Schritt 625 zum Hersteller-Server 500 gesendet wird. Die in Schritt 627 zum Hersteller-Server 500 übertragene Signatur-Datei wird in Schritt 630 von einer im Hersteller-Server 500 enthaltenen Freigabeeinrichtung geprüft. Zur Berechtigungsprüfung nimmt der Hersteller-Server 500 einen Abgleich mit der PLM-DB 510 vor. Bei erfolgreicher Berechtigungsprüfung generiert der Hersteller-Server 500 in Schritt 635 einen abgesicherten Freischaltcode, beispielsweise in Form einer Aktivierungsdatei, welche eine Sicherung und einen einzigartigen Code als Nachverfolgungs-ID umfasst. In Schritt 640 sendet der Hersteller-Server 500 den Freischaltcode zur Aktualisierungs-Einrichtung 400. Der in Schritt 642 übertragene Freischaltcode wird von der Aktualisierungs-Einrichtung 400 empfangen und in Antwort auf den Empfang des in Schritt 642 übertragenen Freischaltcodes führt die Aktualisierungs-Einrichtung 400 im dargestellten Ausführungsbeispiel in Schritt 645 erneut eine Abfrage der ersten Gerätedaten von der Steuereinrichtung 100 durch, wobei zu diesem Zweck die Aktualisierungs-Einrichtung 400 eine entsprechende Anfrage 647 zu der Steuereinrichtung 100 überträgt, die in Antwort auf diese Anfrage in Schritt 650 das Senden von ersten Gerätedaten bewirkt, die in Schritt 652 zur Aktualisierungs-Einrichtung 400 übertragen werden. Das auf der Aktualisierungs-Einrichtung 400 ablaufende Download-Tool überprüft in Schritt 655 die Konsistenz von Gerät und Freischaltcode und nimmt bei erfolgreicher Konsistenzprüfung in Schritt 660 den Datentransfer vor. Zu diesem Zweck wird in Schritt 662 die Firmware-Update-Datei zu der Steuereinrichtung 100 übertragen und dort in Schritt 665 zunächst zwischengespeichert. Zur Zwischenspeicherung kann der Parametrierungsspeicher 130 oder ein anderer geeigneter, auch flüchtiger, Speicher verwendet werden. In Schritt 667 wird eine Bestätigung der Speicherung zur Aktualisierungs-Einrichtung 400 übertragen. In Schritt 670 erfolgt eine Konsistenzprüfung der Firmware-Update-Datei auf formale Korrektheit, wobei das Ergebnis der Prüfung in Schritt 672 zur Aktualisierungs-Einrichtung 400 übertragen wird. Bei erfolgreicher Konsistenzprüfung sendet die Aktualisierungs-Einrichtung 400 daraufhin in Schritt 675 einen geräteindividuellen Update-Befehl zur Steuereinrichtung 100, wobei vorzugsweise das Ergebnis der Konsistenzprüfung dem Anwender angezeigt wird und dieser die Ausführung des Updates, d.h. die Programmierung bzw. das Überschreiben des Systemspeichers 120 mit der neuen Firmware, zusätzlich durch eine Eingabe bestätigt. In Antwort auf den Empfang des in Schritt 677 übertragenen Update-Befehls führt die Steuereinrichtung 100 in Schritt 680 das Firmware-Update aus und speichert die einzigartige Nachverfolgungs-ID. In Schritt 682 überträgt die Steuereinrichtung 100 zur Aktualisierungs-Einrichtung 400 die Information, ob das Update, d.h. das Überschreiben des Systemspeichers, erfolgreich durchgeführt wurde, wobei das Update-Ergebnis in Schritt 685 dem Anwender angezeigt wird. Nach erfolgtem Firmware-Update geht die Steuereinrichtung 100 in Schritt 690 in einen Wartezustand auf Reset, d.h. auf einen Neustart der Steuereinrichtung 100, wobei auch eine automatische Durchführung eines Resets vorgesehen sein kann.In step 600 the firmware file is read from the local file system by the download tool on the update device 400. In step 605 the control device 100 is identified by a data query, for this purpose the update device 400 transmits a corresponding request 607 to the control device 100, which in response to this query in step 610 sends the first device data which are transmitted to the update device 400 in step 612. In the exemplary embodiment shown, it is provided that the device data received by the control device 100 are displayed to the user in step 615. The device data are transmitted to the manufacturer in a secure manner with the header data of the firmware update file, a corresponding signature file being generated for this purpose in step 620 and sent to the manufacturer server 500 in step 625. The signature file transmitted to the manufacturer server 500 in step 627 is checked in step 630 by a release device contained in the manufacturer server 500. The manufacturer server 500 compares the authorization with the PLM-DB 510. If the authorization check is successful, the manufacturer server 500 generates a secured activation code in step 635, for example in the form of an activation file, which comprises a backup and a unique code as a tracking ID. In step 640 the manufacturer server 500 sends the activation code to the update device 400. The activation code transmitted in step 642 is received by the update device 400 and, in response to the receipt of the activation code transmitted in step 642, the update device 400 executes The illustrated embodiment in step 645 again interrogates the first device data from the control device 100, for this purpose the update device 400 transmits a corresponding request 647 to the control device 100, which sends the first device data in response to this request in step 650 which are transmitted to the update device 400 in step 652. That on The download tool running in the update device 400 checks in step 655 the consistency of the device and activation code and, if the consistency check is successful, carries out the data transfer in step 660. For this purpose, the firmware update file is transmitted to the control device 100 in step 662 and is initially temporarily stored there in step 665. The parameterization memory 130 or another suitable, also volatile, memory can be used for intermediate storage. In step 667, confirmation of the storage is transmitted to the update device 400. In step 670 there is a consistency check of the firmware update file for formal correctness, the result of the check being transmitted to the update device 400 in step 672. If the consistency check is successful, the update device 400 then sends a device-specific update command to the control device 100 in step 675, whereby the result of the consistency check is preferably displayed to the user and the user is also informed about the execution of the update, ie the programming or overwriting of the system memory 120 of the new firmware, additionally confirmed by an entry. In response to receiving the update command transmitted in step 677, the controller 100 executes the firmware update in step 680 and stores the unique tracking ID. In step 682, the control device 100 transmits to the update device 400 the information as to whether the update, ie the overwriting of the system memory, was carried out successfully, the update result being displayed to the user in step 685. After the firmware update has taken place, the control device 100 goes into a wait state for reset in step 690, ie to a restart of the control device 100, it also being possible for an automatic implementation of a reset to be provided.

Die in Fig. 3 dargestellte Phase 2 umfasst die folgenden Schritte.In the Fig. 3 Phase 2 shown includes the following steps.

Nach Durchführen eines Neustarts der Steuereinrichtung 100 führt diese in Schritt 700 zunächst einen Selbsttest durch, wobei insbesondere auch die Paket-Verträglichkeit der den Steuermodulen 112 und 114 jeweils zugeordneten Firmware geprüft wird, wobei diese als diversitäre Firmware-Komponenten vorliegen können.After the control device 100 has been restarted, it first carries out a self-test in step 700, with the package compatibility of the firmware assigned to the control modules 112 and 114 being checked in particular, whereby these can be present as diverse firmware components.

Wird in Schritt 705 ein Fehler bei Durchführen des Selbsttests erkannt, nimmt die Steuereinrichtung 100 in Schritt 710 einen sicheren Zustand ein. Die für die Erreichung eines sicheren Zustands erforderlichen Maßnahmen sind an sich bekannt und werden daher hier nicht näher erläutert.If an error is detected in step 705 when performing the self-test, the control device 100 assumes a safe state in step 710. The measures required to achieve a safe state are known per se and are therefore not explained in more detail here.

Wird kein Fehler erkannt, geht die Steuereinrichtung 100 in Schritt 720 in den Normalbetrieb über. Das Download-Tool in der Aktualisierungs-Einrichtung 400 baut in Schritt 725 eine Verbindung zu der Steuereinrichtung 100 auf, wobei zu diesem vorzugsweise zyklisch wiederholt Verbindungsanfragen 727 zu der Steuereinrichtung 100 übertragen werden, bis die Steuereinrichtung 100 in Schritt 730 reagiert und die Verbindungsanfrage 727 in Schritt 732 beantwortet.If no error is detected, the control device 100 changes over to normal operation in step 720. The download tool in the update device 400 establishes a connection to the control device 100 in step 725, connection inquiries 727 being transmitted to the control device 100, preferably cyclically, until the control device 100 responds in step 730 and the connection request 727 in Step 732 answered.

In Schritt 735 fragt das Download-Tool die aktualisierten Gerätedaten ab, wobei zu diesem Zweck die Aktualisierungs-Einrichtung 400 eine entsprechende Anfrage 737 zu der Steuereinrichtung 100 überträgt, die in Antwort auf diese Anfrage in Schritt 740 das Senden von Gerätedaten bewirkt, die in Schritt 742 zur Aktualisierungs-Einrichtung 400 übertragen werden. In Schritt 745 zeigt das Download-Tool die abgefragten Gerätedaten für den Bediener an, gegebenenfalls mit Fehlermeldung. Eine Bestätigung des Updates wird in Schritt 750 abgesichert zum Hersteller-Server 500 übertragen. In Antwort auf die in Schritt 752 übertragene Update-Bestätigung protokolliert bzw. speichert der Hersteller-Server 500 in Schritt 755 die Bestätigung in der PLM-DB 510. Eine Bestätigung der erfolgten Protokollierung wird in Schritt 757 zur Aktualisierungs-Einrichtung 400 übertragen und der Anwender wird in Schritt 760 über eine entsprechende Anzeige vom Abschluss des Vorgangs informiert.In step 735 the download tool queries the updated device data, with the update facility for this purpose 400 transmits a corresponding request 737 to the control device 100, which, in response to this request in step 740, causes device data to be sent, which are transmitted to the update device 400 in step 742. In step 745 the download tool displays the requested device data for the operator, possibly with an error message. A confirmation of the update is securely transmitted to the manufacturer server 500 in step 750. In response to the update confirmation transmitted in step 752, the manufacturer server 500 logs or stores the confirmation in the PLM-DB 510 in step 755. A confirmation of the logging that has taken place is transmitted in step 757 to the update device 400 and the user is informed in step 760 of the completion of the process via a corresponding display.

In der nachfolgenden Tabelle ist beispielhaft die Struktur einer Firmware-Update-Datei, d.h. des sicheren Firmware-Containers dargestellt: Komponente Inhalt Beschreibung Container-Header 1. Dateiname des Containers, d.h. der Firmware-Update-Datei Name der Firmware-Update-Datei, die Datei ist damit gegen Umbenennung gesichert (Pos. 1 ist Teil der Pos. 6); eindeutige numerische Gerätekennung; Version der Firmware-Update-Datei; Anzahl nachfolgender Komponenten, beispielsweise bei mehreren, auch diversitären Steuermodulen 2. Gerätekennung 3. Versionsnummer 4. Anzahl der enthaltenen Komponenten 5. Komponenten-Header 1: a) Ziel (z.B. Steuermodul 1 oder Steuermodul 2) Sicherung des korrekten Ziels der Programmierung und Verifikation des enthaltenen Images; b) Typ des Images (Loader, Betriebssoftware, oder FPGA-Programm) Bestimmung der Pos. in der Firmware-Update-Datei Größe inkl. Image-Header; c) Offset-Adresse in der Firmware-Update-Datei d) Größe in der Firmware-Update-Datei Zieladresse im Festwertspeicher; Sicherung gegen Verfälschung des Headers oder der Komponente e) Zieladresse f) Prüfsumme über die komplette Komponente (inkl. Header) 6. Komponenten-Header 2 ... n weitere Komponenten-Header entsprechend der Anzahl in Pos. 4 7. Header-Prüfsumme über Pos. 1 bis 4 und alle Komponenten-Header Prüfsumme über Pos. 1-6 (alle Komponenten-Header) Firmware-Image 1 1. Image Header (Magic Number 1, Checksumme, Größe, Adressinformation) Angaben für den Firmware-Loader 2. Firmware-Image 1 das zu ladende Firmware-Image 1 Firmware-Image ... 1. Image Header ... Angaben für den Firmware-Loader 2. Firmware-Image ... die weiteren zu ladenden Firmware-Images ... Firmware-Image n 1. Image Header n Angaben für den Firmware-Loader 2. FW-Image n das zu ladende Firmware-Image n The following table shows an example of the structure of a firmware update file, i.e. the secure firmware container: component content description Container header 1. File name of the container, ie the firmware update file Name of the firmware update file, the file is thus secured against renaming (pos. 1 is part of pos. 6); unique numeric device identifier; Version of the firmware update file; Number of subsequent components, for example in the case of several, also diverse control modules 2. Device ID 3. Version number 4. Number of components included 5. Component header 1: a) destination (e.g. control module 1 or control module 2) Ensuring the correct target of the programming and verification of the contained image; b) Type of image (loader, operating software, or FPGA program) Determination of the position in the firmware update file Size including image header; c) Offset address in the firmware update file d) Size in the firmware update file Destination address in read-only memory; Protection against corruption of the header or the component e) destination address f) checksum over the complete Component (incl. Header) 6. Component header 2 ... n further component headers according to the number in pos. 4 7. Header checksum over pos. 1 to 4 and all component headers Check sum over pos. 1-6 (all component headers) Firmware image 1 1. Image header (Magic Number 1, checksum, size, address information) Information for the firmware loader 2. Firmware image 1 the firmware image to be loaded 1 Firmware image ... 1. Image header ... Information for the firmware loader 2. Firmware image ... the other firmware images to be loaded ... Firmware image n 1. Image header n Information for the firmware loader 2. FW image n the firmware image to be loaded n

Es sei angemerkt, dass bei dem in der Tabelle dargestellten Beispiel die zu aktualisierende Firmware, auch als Firmware-Image bezeichnet, eine Betriebssoftware, eine zum Laden einer Betriebssoftware eingesetzte und als Loader bezeichnete Software, als auch ein zur Programmierung eines als FPGA (Field-Programmable Gate Array) ausgebildeten Prozessors eingesetztes FPGA-Programm umfassen kann.It should be noted that in the example shown in the table, the firmware to be updated, also referred to as firmware image, operating software, software used to load operating software and called a loader, as well as software for programming an FPGA (Field- Programmable gate array) trained processor can include FPGA program used.

Durch das beschriebene Verfahren wird vorteilhaft eine verteilte Vergleichs- und Freigabeeinrichtung außerhalb der Sicherheitssteuerung bereitgestellt. Damit wird ein abgesichertes Zustimmprinzip umgesetzt, wobei die Zustimmung bzw. der Vergleich und die Verantwortung zuerst beim Hersteller liegt, die Freigabe der Programmierung obliegt dem Download-Tool bzw. in letzter Instanz dem Bediener. Das Download-Tool liegt seinerseits in der Verantwortung des Herstellers. Eine Verschlüsselung der Firmware-Update-Datei ist vorteilhaft, aber an sich nicht zwingend erforderlich, da alle Schritte vorzugsweise durch ein vertrauliches Prüfsummenverfahren abgesichert sind. Durch die Umsetzung der wichtigen Vergleichs- und Freigabeschritte außerhalb der Firmware ist der eingesetzte Algorithmus besonders vorteilhaft bei Bedarf leicht anpassbar, ohne dass Änderungen der Firmware erfolgen müssen. Das Verfahren kann nach der ersten Abfrage der Gerätedaten prinzipiell unterbrochen werden, läuft aber vorteilhafterweise online nacheinander ab. Die Programmierung obliegt der Zustimmung durch den Bediener und wird durch ein abgesichertes Programmierkommando eingeleitet. Der einzigartige Code, der Bestandteil der Freischaltung ist und beim Hersteller generiert wurde, wird in der PLM-Datenbank 510 und nichtflüchtig auf der Steuereinrichtung 100 gespeichert, wobei dieser vorzugsweise Bestandteil des Programmierkommandos ist. Über diesen Code ist nachverfolgbar, über welche Freischaltung das Firmware-Update erfolgte, wobei der Code beim Hersteller und im Gerät gespeichert ist, wodurch eine doppelte Nachweiskette erreicht wird. Der einzigartige Code wird vorteilhaft über einen GUID (Globally Unique Identifier) realisiert. Ferner werden mögliche Abbrüche der Kommunikation durch Timeouts überwacht und ebenfalls beim Hersteller protokolliert, wobei vorteilhaft abgebrochene Updates zwischen der PLM-DB 510 und dem Anwender abgeglichen werden, wobei die dafür notwendigen Informationen vorliegen.The method described advantageously provides a distributed comparison and release device outside the safety controller. This implements a secured consent principle, whereby the consent or the comparison and the responsibility lies first with the manufacturer, the release of the programming is the responsibility of the download tool or, in the last instance, the Operator. The download tool itself is the responsibility of the manufacturer. Encryption of the firmware update file is advantageous, but not absolutely necessary, since all steps are preferably secured by a confidential checksum method. By implementing the important comparison and approval steps outside of the firmware, the algorithm used can be easily adapted, particularly advantageously, if necessary, without having to make changes to the firmware. The method can in principle be interrupted after the first query of the device data, but it is advantageous to run one after the other online. The programming is subject to the approval of the operator and is initiated by a secured programming command. The unique code, which is part of the activation and was generated by the manufacturer, is stored in the PLM database 510 and non-volatile on the control device 100, this preferably being part of the programming command. This code can be used to track which activation was used for the firmware update, whereby the code is stored by the manufacturer and in the device, which results in a double chain of evidence. The unique code is advantageously implemented using a GUID (Globally Unique Identifier). Furthermore, possible interruptions in communication due to timeouts are monitored and also logged by the manufacturer, with interrupted updates being advantageously compared between the PLM-DB 510 and the user, with the information required for this being available.

Claims (14)

  1. A method for updating firmware of a control device (100) for process control which comprises at least one control module (112, 114), wherein the control module (112, 114) has associated therewith firmware stored in a system memory (120) of the control device (100), the method comprising the steps of:
    a) providing a firmware file with a new firmware contained therein for the at least one control module in an updating device (400) that is connectable to the control device (100);
    b) retrieving, by the updating device (400), first device data stored in the control device (100);
    c) generating, by the updating device (400), a signed device file depending on the first device data and depending on an information item identifying the new firmware;
    d) transmitting the signed device file from the updating device (400) to a central enabling device (500);
    e) checking the received signed device file by the central enabling device (500);
    f) generating an activation code, by the central enabling device (500), and transmitting the activation code from the central enabling device (500) to the updating device (400) only if the check of the received signed device file by the central enabling device (500) is successful, wherein the activation code comprises second device data and a unique identification information item;
    g) performing a consistency check on the first device data retrieved in step b) and on the second device data contained in the received activation code, by the updating device (400); or
    again retrieving the first device data stored in the control device (100), by the updating device (400), and performing a consistency check on the again retrieved first device data and on the second device data contained in the received activation code, by the updating device (400); and
    h) only if the consistency check is successful, performing an update of the firmware of the control device (100) using the new firmware, by the updating device (400).
  2. The method as claimed in claim 1, wherein the performing of an update of the firmware of the control device (100) comprises the steps of:
    - transferring the new firmware from the updating device (400) to the control device (100) in the form of a firmware file;
    - transmitting a device-specific update command from the updating device (400) to the control device (100); and
    - in response to the received update command, updating the firmware of the control module (112, 114) stored in the system memory (120) with the firmware contained in the received firmware file.
  3. The method as claimed in any one of the preceding claims, wherein the firmware file comprises protection information, and wherein the control device (100) performs a consistency check on the protection information and only allows the firmware update to continue if the consistency check is successful.
  4. The method as claimed in any one of the preceding claims, wherein the firmware file includes a new firmware for at least two control modules (112, 114).
  5. The method as claimed in any one of the preceding claims, wherein the unique identification information item contained in the activation code is transmitted from the updating device (400) to the control device (100) and is stored in the control device (100).
  6. The method as claimed in any one of the preceding claims, wherein the first and/or second device data include a device type, a hardware version, and/or a serial number of the control device, and/or information about at least one firmware currently executed on the control device.
  7. The method as claimed in any one of the preceding claims, wherein an update authorization check is performed by the central enabling device (500), by retrieving authorization information from a product life cycle management database (510) on the basis of device-specific information contained in the received signed device file.
  8. The method as claimed in any one of the preceding claims, wherein, once the firmware update has been successfully performed, the updating device (400) transmits an acknowledgment message to the central enabling device (500), wherein in response to the received acknowledgment message the central enabling device logs successful completion of the firmware update, in particular by storing a log entry containing the unique identification information item in the product life cycle management database (510).
  9. The method as claimed in any one of the preceding claims, wherein, once the firmware of the at least one control module (112, 114) stored in the system memory (120) has been updated, the control device (100) performs a check for compatibility of the firmware associated with different control modules, and if an incompatibility is detected, the control device (100) changes into a safe operating state.
  10. The method as claimed in any one of the preceding claims, wherein the control device (100) is configured as a safety control device for failsafe control of a safety-critical process.
  11. The method as claimed in any one of the preceding claims, wherein
    - the transmitting of the signed device file from the updating device (400) to a central enabling device (500), and/or
    - the transmitting of the activation code from the central enabling device (500) to the updating device (400), and/or
    - the transmitting of the device-specific updating command from the updating device (400) to the control device (100), and/or
    - the transmitting of the unique identification information item contained in the activation code from the updating device (400) to the control device (100) is performed in failsafe and/or encrypted manner.
  12. A system (10) for updating firmware of a control device (100), comprising:
    - a control device (100) for process control comprising at least one control module (112, 114), wherein the control module (112, 114) has associated therewith a firmware stored in a system memory (120) of the control device (100);
    - an updating device (400) connectable to the control device (100); and
    - a central enabling device (500);
    wherein the updating device (400) is adapted:
    a) to retrieve, from the control device (100), first device data stored in the control device (100);
    b) to generate a signed device file depending on the first device data and depending on an information item identifying a new firmware;
    c) to transmit the signed device file to the central enabling device (500);
    d) to receive an activation code from the central enabling device (500) in response to the transmitted signed device file;
    e) to perform a consistency check on the first device data retrieved in step a) and on second device data contained in the received activation code, or to again retrieve the first device data stored in the control device (100) from the control device (100) and to perform a consistency check on the again retrieved first device data and on second device data contained in the received activation code; and
    f) if the consistency check is successful, to effect update of the firmware of the control device (100) using the new firmware;
    and wherein the enabling device (500) is adapted:
    a) to check a signed device file received from the updating device (400);
    b) if the check is successful, to generate an activation code comprising second device data and a unique identification information item; and
    c) to transmit the activation code to the updating device (400) in response to the received signed device file.
  13. The system as claimed in claim 12, wherein
    - the control device is adapted to store the unique identification information item contained in the activation code received from the updating device (400) ;
    - the updating device (400) is adapted to transmit an acknowledgment message to the central enabling device (500) when the firmware updating has been performed successfully; and
    - the central enabling device is adapted, in response to the received acknowledgment message, to log successful completion of the firmware update, in particular by storing a log entry containing the unique identification information item in the product life cycle management database (510).
  14. A digital storage medium with instructions stored thereon, which when executed on a computer (400) are adapted to perform the following method steps:
    a) retrieving first device data stored in a control device (100) connected to the computer (400);
    b) generating a signed device file depending on the first device data and depending on information identifying a newly provided firmware;
    c) transmitting the signed device file to a central enabling device (500);
    d) receiving an activation code from the central enabling device (500) in response to the transmitted signed device file, the activation code comprising second device data and a unique identification information item;
    e) performing a consistency check on the first device data retrieved in step a) and on the second device data contained in the received activation code, or again retrieving the first device data stored in the control device and performing a consistency check on the again retrieved first device data and the second device data contained in the received activation code; and
    f) only if the consistency check is successful, effecting update of the firmware of the control device (100) using the new firmware.
EP16750636.9A 2015-07-23 2016-07-19 Method and system for firmware-updating a control device for process control Active EP3326101B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102015112040.2A DE102015112040A1 (en) 2015-07-23 2015-07-23 Method and system for firmware update of a process control device
PCT/EP2016/067214 WO2017013134A1 (en) 2015-07-23 2016-07-19 Method and system for firmware-updating a control device for process control

Publications (2)

Publication Number Publication Date
EP3326101A1 EP3326101A1 (en) 2018-05-30
EP3326101B1 true EP3326101B1 (en) 2020-10-21

Family

ID=56683890

Family Applications (1)

Application Number Title Priority Date Filing Date
EP16750636.9A Active EP3326101B1 (en) 2015-07-23 2016-07-19 Method and system for firmware-updating a control device for process control

Country Status (5)

Country Link
US (1) US11429720B2 (en)
EP (1) EP3326101B1 (en)
CN (1) CN107924443B (en)
DE (1) DE102015112040A1 (en)
WO (1) WO2017013134A1 (en)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017215044B4 (en) * 2017-08-29 2023-11-16 Lenze Se Method for changing to a firmware version on an electrical control unit for a drive system, electrical control unit and drive system
US11099831B2 (en) * 2018-02-08 2021-08-24 Micron Technology, Inc. Firmware update in a storage backed memory system
DE102018003745A1 (en) 2018-05-07 2019-11-07 Senvion Gmbh Method for operating a wind turbine, wind turbine and computer program product
JP6557760B1 (en) * 2018-06-19 2019-08-07 Jig−Saw株式会社 Device control method, control device and system
CN110737448B (en) * 2018-09-05 2023-08-11 杭州瑞彼加医疗科技有限公司 Firmware encryption system comprising microcontroller and firmware protection and upgrading method thereof
US11100228B2 (en) * 2018-10-25 2021-08-24 Dell Products, L.P. System and method to recover FPGA firmware over a sideband interface
WO2020128639A1 (en) * 2018-12-19 2020-06-25 Telit Communications S.P.A. Systems and methods for managing a trusted application in a computer chip module
BE1027055B1 (en) 2019-02-18 2020-09-14 Phoenix Contact Gmbh & Co System and method for transferring an operating software update to a safety-related device
CN111614946A (en) * 2019-02-26 2020-09-01 中强光电股份有限公司 Projector and projector firmware update method
EP3734382A1 (en) * 2019-05-03 2020-11-04 AB Sandvik Coromant Method for establishing communication in a machine tool system and a communication apparatus therefor
US11165777B2 (en) 2019-05-30 2021-11-02 Bank Of America Corporation Controlling access to secure information resources using rotational datasets and dynamically configurable data containers
US11153315B2 (en) 2019-05-30 2021-10-19 Bank Of America Corporation Controlling access to secure information resources using rotational datasets and dynamically configurable data containers
US11138328B2 (en) 2019-05-30 2021-10-05 Bank Of America Corporation Controlling access to secure information resources using rotational datasets and dynamically configurable data containers
JP7008661B2 (en) * 2019-05-31 2022-01-25 本田技研工業株式会社 Authentication system
US10845787B1 (en) * 2019-07-17 2020-11-24 Rockwell Automation Technologies, Inc. Concurrent updating for linear topologies in an industrial automation environment
US12135010B2 (en) 2019-08-02 2024-11-05 Vestas Wind Systems A/S Providing safety configuration parameters for a wind turbine
DE102019122155A1 (en) * 2019-08-19 2021-02-25 Phoenix Contact Gmbh & Co. Kg Network capable device
JP7207252B2 (en) * 2019-10-10 2023-01-18 トヨタ自動車株式会社 converter
CN110989546A (en) * 2019-10-18 2020-04-10 浙江合众新能源汽车有限公司 Vehicle software data management method
CN113110852B (en) * 2020-01-10 2024-11-08 北京小米移动软件有限公司 Firmware upgrade method, device and storage medium
US12032951B2 (en) 2020-06-19 2024-07-09 Apple Inc. Techniques for firmware updates with accessories
US11275576B2 (en) * 2020-06-19 2022-03-15 Apple Inc. Techniques for firmware updates with accessories
TWI766608B (en) 2021-03-10 2022-06-01 新加坡商捷普電子(新加坡)公司 Program signing method
US11474807B1 (en) * 2021-03-31 2022-10-18 American Megatrends International, Llc Firmware update method and computer program product for updating firmware
JP7563281B2 (en) * 2021-04-12 2024-10-08 オムロン株式会社 Control device, control system, management method and program
CN113986308B (en) * 2021-11-25 2024-12-06 北京广利核系统工程有限公司 A method and system for online firmware upgrade
CN114595460B (en) * 2022-01-11 2025-05-13 瑞芯微电子股份有限公司 Signature firmware verification method, device and computer readable medium
LU501705B1 (en) 2022-03-24 2023-09-25 Phoenix Contact Gmbh & Co Management and update system for automation devices of an automation system connected to an OT network
DE102022106975A1 (en) 2022-03-24 2023-09-28 Phoenix Contact Gmbh & Co. Kg Management and update system for automation devices of an automation system connected to an OT network
EP4685588A1 (en) * 2024-07-25 2026-01-28 ABB Schweiz AG Method for operating a safety controller - toolchain

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0790554A1 (en) 1996-02-16 1997-08-20 Siemens Aktiengesellschaft Method and circuit to control a firmware loading process
US7809138B2 (en) * 1999-03-16 2010-10-05 Intertrust Technologies Corporation Methods and apparatus for persistent control and protection of content
US20030182414A1 (en) * 2003-05-13 2003-09-25 O'neill Patrick J. System and method for updating and distributing information
US20070169073A1 (en) * 2002-04-12 2007-07-19 O'neill Patrick Update package generation and distribution network
DE10234304A1 (en) 2002-07-26 2004-02-19 Endress + Hauser Gmbh + Co. Kg Process for updating device descriptions for field devices in process automation technology
DE10240584A1 (en) 2002-08-28 2004-03-11 Pilz Gmbh & Co. Safety control system for fault protected operation of critical process such as occurs in machine system operation
JP2004157753A (en) 2002-11-06 2004-06-03 Mitsubishi Electric Corp Firmware download system
DE10350993A1 (en) 2003-10-30 2005-05-25 Siemens Ag Firmware authentication method, especially for an automation system, whereby a specific compression element is generated in the form of a single- use hash value that is inserted in the firmware as a digital fingerprint
KR100604828B1 (en) 2004-01-09 2006-07-28 삼성전자주식회사 Firmware encryption method and decryption method and processing apparatus thereof
US7233830B1 (en) * 2005-05-31 2007-06-19 Rockwell Automation Technologies, Inc. Application and service management for industrial control devices
US7770165B2 (en) 2006-08-25 2010-08-03 Microsoft Corporation Providing firmware updates to portable media devices
US8151493B2 (en) * 2006-08-31 2012-04-10 Mibar Products, Ltd. Plow system for non-highway vehicles
JP2008152551A (en) * 2006-12-18 2008-07-03 Fanuc Ltd Software option setting system and setting method
KR20080090939A (en) 2007-04-06 2008-10-09 삼성전자주식회사 How to create firmware update file, update method using firmware update file and device
CN100458699C (en) * 2007-04-10 2009-02-04 北京中星微电子有限公司 Method and system for updating fastener
US20080295087A1 (en) 2007-05-25 2008-11-27 Samsung Electronics Co., Ltd. Firmware upgrade system and control method thereof
US8601170B1 (en) * 2009-09-08 2013-12-03 Amazon Technologies, Inc. Managing firmware update attempts
DE102010016257A1 (en) 2010-03-31 2011-10-06 Softing Ag Method for updating firmware of field programmable gate array utilized in e.g. programmable logical circuit for controlling industrial process, involves rejecting data file in dependent upon result of identifier verification
CN102339227A (en) * 2010-07-28 2012-02-01 环旭电子股份有限公司 Multi-firmware embedded system and firmware update method thereof
US8713559B2 (en) 2010-11-15 2014-04-29 Schneider Electric It Corporation System and method for updating firmware
CN102750155A (en) 2011-04-19 2012-10-24 鸿富锦精密工业(深圳)有限公司 Control board for updating firmware as well as firmware updating system and method
DE102012220767A1 (en) 2012-11-14 2014-05-28 Siemens Aktiengesellschaft Methods and apparatus for installing building control software
US20140283133A1 (en) * 2013-03-13 2014-09-18 Rockwell Automation Technologies, Inc. Code-enabled remote activation of software for industrial automation systems
WO2015016867A1 (en) * 2013-07-31 2015-02-05 Hewlett-Packard Development Company, L.P. Updating boot code
US9374355B2 (en) * 2013-10-28 2016-06-21 GM Global Technology Operations LLC Programming vehicle modules from remote devices and related methods and systems
US20150127930A1 (en) * 2013-11-06 2015-05-07 Seagate Technology Llc Authenticated device initialization
US9542558B2 (en) * 2014-03-12 2017-01-10 Apple Inc. Secure factory data generation and restoration
US8997249B1 (en) * 2014-06-18 2015-03-31 Storagecraft Technology Corporation Software activation and revalidation

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
None *

Also Published As

Publication number Publication date
US20180365423A1 (en) 2018-12-20
DE102015112040A1 (en) 2017-01-26
CN107924443A (en) 2018-04-17
CN107924443B (en) 2021-08-10
EP3326101A1 (en) 2018-05-30
WO2017013134A1 (en) 2017-01-26
US11429720B2 (en) 2022-08-30

Similar Documents

Publication Publication Date Title
EP3326101B1 (en) Method and system for firmware-updating a control device for process control
DE112008003963B4 (en) System and method for off-line programming of an industrial robot
EP4235323B1 (en) Method and device for automatically validating security functions on a modular security system
WO2019081395A1 (en) METHOD AND DEVICE FOR UPDATING SOFTWARE OF A CAR CONTROL DEVICE
DE112016002236B4 (en) COMMUNICATIONS FACILITY AND COMMUNICATIONS RESTRICTION PROGRAM
EP3330816A1 (en) Method for updating software in cloud gateways, computer program with an implementation of the method and processing unit for executing the method
EP3001310B1 (en) Method and apparatus for updating firmware for components of an industrial automation system
EP3923095A1 (en) Configuration device, update server and method for software update of a technical installation
DE102015207795A1 (en) Method and device for updating software in a means of transport
EP3045986A1 (en) Production machine with own functionality testing and method
EP2770382B1 (en) Method for commissioning an automation system
EP3021179A1 (en) Method for connecting an embedded device to a control unit
EP4181000A1 (en) Method and computing environment for creating and applying a test algorithm for computing operations
EP2090948B1 (en) Method for operating an automation system
WO2005003935A1 (en) System and/or method for releasing release license software programs
WO2016087585A1 (en) Method for programming and configuring a device in a traceable manner
EP2741451B1 (en) Method for connecting a hardware module to a field bus
EP3118739B1 (en) Method for carrying out an operating system update
WO2016034676A1 (en) Data transmission between at least one safe producer and at least one safe consumer
DE102012218665B4 (en) Application system for control units
DE102008004923B4 (en) Method for updating a control sequence of a machine control system and device for carrying out the method
WO2020007660A1 (en) Control unit and operating method for integrity self-monitoring suitable for a device which can be used in particular in an automation environment
DE102016219207A1 (en) METHOD AND DEVICE FOR CERTIFYING A SECURITY CRITICAL FUNCTIONAL CHAIN
EP3306856B1 (en) Method for providing a secure communication connection between components of a security-critical function chain
DE102007062915A1 (en) Storage programmable control i.e. digitally operated electronic system, operating method for controlling automation system, involves switching functional block at feasible state if external information corresponds to internal information

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20180216

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

AX Request for extension of the european patent

Extension state: BA ME

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)
GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: GRANT OF PATENT IS INTENDED

RIC1 Information provided on ipc code assigned before grant

Ipc: G05B 19/042 20060101ALI20200430BHEP

Ipc: G06F 21/10 20130101ALI20200430BHEP

Ipc: G06F 21/57 20130101AFI20200430BHEP

INTG Intention to grant announced

Effective date: 20200514

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE PATENT HAS BEEN GRANTED

AK Designated contracting states

Kind code of ref document: B1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

REG Reference to a national code

Ref country code: GB

Ref legal event code: FG4D

Free format text: NOT ENGLISH

REG Reference to a national code

Ref country code: CH

Ref legal event code: EP

REG Reference to a national code

Ref country code: DE

Ref legal event code: R096

Ref document number: 502016011505

Country of ref document: DE

REG Reference to a national code

Ref country code: IE

Ref legal event code: FG4D

Free format text: LANGUAGE OF EP DOCUMENT: GERMAN

REG Reference to a national code

Ref country code: AT

Ref legal event code: REF

Ref document number: 1326561

Country of ref document: AT

Kind code of ref document: T

Effective date: 20201115

REG Reference to a national code

Ref country code: NL

Ref legal event code: MP

Effective date: 20201021

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: GR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20210122

Ref country code: FI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20201021

Ref country code: RS

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20201021

Ref country code: PT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20210222

Ref country code: NO

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20210121

REG Reference to a national code

Ref country code: LT

Ref legal event code: MG4D

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: SE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20201021

Ref country code: BG

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20210121

Ref country code: LV

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20201021

Ref country code: PL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20201021

Ref country code: IS

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20210221

Ref country code: ES

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20201021

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: HR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20201021

Ref country code: NL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20201021

REG Reference to a national code

Ref country code: DE

Ref legal event code: R097

Ref document number: 502016011505

Country of ref document: DE

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: RO

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20201021

Ref country code: SK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20201021

Ref country code: EE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20201021

Ref country code: CZ

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20201021

Ref country code: SM

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20201021

Ref country code: LT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20201021

PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: DK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20201021

26N No opposition filed

Effective date: 20210722

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: IT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20201021

Ref country code: AL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20201021

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: SI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20201021

REG Reference to a national code

Ref country code: CH

Ref legal event code: PL

GBPC Gb: european patent ceased through non-payment of renewal fee

Effective date: 20210719

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: MC

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20201021

REG Reference to a national code

Ref country code: BE

Ref legal event code: MM

Effective date: 20210731

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: LI

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20210731

Ref country code: GB

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20210719

Ref country code: CH

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20210731

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: IS

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20210221

Ref country code: LU

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20210719

Ref country code: FR

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20210731

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: IE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20210719

Ref country code: BE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20210731

REG Reference to a national code

Ref country code: AT

Ref legal event code: MM01

Ref document number: 1326561

Country of ref document: AT

Kind code of ref document: T

Effective date: 20210719

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: AT

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20210719

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: HU

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT; INVALID AB INITIO

Effective date: 20160719

P01 Opt-out of the competence of the unified patent court (upc) registered

Effective date: 20230424

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: CY

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20201021

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: MK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20201021

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: MT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20201021

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: DE

Payment date: 20250926

Year of fee payment: 10

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: TR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20201021