Automatic firmware updates in industrial systems

By using control equipment in industrial systems to automatically identify and update the firmware versions of communication devices, the consistency and compatibility issues of firmware management and updates for multiple devices are resolved, achieving automated and secure firmware updates.

CN121879792APending Publication Date: 2026-04-17SCHNEIDER ELECTRIC IND SAS
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
SCHNEIDER ELECTRIC IND SAS
Filing Date
2025-10-14
Publication Date
2026-04-17

AI Technical Summary

Technical Problem

In industrial systems, existing technologies struggle to achieve unified management and automated updates of firmware for multiple communication devices, especially when devices are replaced to maintain firmware version consistency and compatibility. Furthermore, the update process is complex and carries high risks.

Method used

A control device is provided, comprising a network interface, a processor, and a memory. By storing an update policy table, it automatically identifies and updates the firmware version of a communication device to ensure consistency and compatibility. The device communicates with the communication device via the network interface, the processor executes the update policy, and the memory stores firmware packages and version information, enabling automated firmware updates.

Benefits of technology

It enables automated management and updates of firmware versions for multiple communication devices, simplifies the update process, ensures firmware version consistency and compatibility, and reduces update risks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121879792A_ABST
    Figure CN121879792A_ABST
Patent Text Reader

Abstract

An apparatus (ORC) for updating firmware of a communication device (CD) managed by a control device (CT) in an industrial system, the apparatus being configured to: store a table listing, at each entry of the table, at least an identifier (Idt) of the communication device (CD), an expected version (Ve) of the firmware of the communication device (CD), a current version (Vct) of the firmware of the communication device (CD), retrieving (S1) an identifier (Idr) of the communication device (CD) and a current version (Vcr) of the firmware of said communication device (CD), incrementally scanning (S2) an entry of the table, if the retrieved identifier (Idr) of the communication device CD matches an identifier (Idt) of the communication device CD of the entry of the table, and if the retrieved current version (Vcr) of the firmware matches a current version (Vct) of the firmware of said entry of the table, scanning (S2) the entry of the table, if the retrieved identifier (Idr) of the communication device CD matches the identifier (Idt) of the communication device CD of the entry of the table. If so, a firmware package associated with an expected version (Ve) of the firmware corresponding to the current version (Vct) of the firmware of the entry of the table is retrieved (S3).
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates generally to industrial automation systems, and more specifically to control devices for processing firmware updates of communication equipment. Background Technology

[0002] Industrial systems may contain many different firmware versions. Firmware can be implemented in a programmable logic controller (PLC), but it can also be implemented in different modules, power supplies, or backplanes. The need for firmware updates becomes frequent due to factors such as cybersecurity fixes, while customer habits imply that existing systems should never be changed. Furthermore, when a module must be replaced, the firmware of the new module may not meet the application's requirements. Therefore, for maintenance services, updating firmware may not be obvious, as it can also be a complex and risky process.

[0003] There are several ways to download firmware:

[0004] - The device can check if a new firmware version exists in the cloud and automatically download / install it, or it may request to download / install it from the GUI;

[0005] - Connect a PC system or smartphone to the device, and if a newer firmware is available, it is recommended to download / install it;

[0006] - Insert a large-capacity storage element containing the latest firmware into the device and download / install it;

[0007] - An administrator on a dedicated machine connected to several devices coordinates the download / installation of the devices.

[0008] In modular device systems that contain a collection of interconnected devices that perform, for example, automation functions together, the problem lies in having a consistent set of firmware versions. Device providers may offer newer firmware versions of their devices throughout their product lifecycle. While the set of new firmware versions is inherently compatible, it may introduce compatibility issues with older firmware versions.

[0009] Customers are validating their automation systems for each device within a set of fixed firmware versions. Even if the device provider sends them a newer firmware version, the customer or OEM may want to downgrade the device firmware to a test version.

[0010] When customers know that a device provider's new firmware has resolved the issue, they may want to upgrade all their devices to the newer version in a consistent manner.

[0011] For customers, having a unified or standardized mechanism to upgrade equipment from multiple providers is useful.

[0012] Therefore, a control device is needed to manage constraints and store files to automate firmware updates. The update mechanism should be accessible from any device (directly or via the host) and software update engineering tools. Summary of the Invention

[0013] This summary is provided to introduce concepts related to the subject matter of the invention. It is not intended to identify essential features of the claimed subject matter, nor is it intended to define or limit the scope of the claimed subject matter.

[0014] In one embodiment, an apparatus is provided for updating the firmware of a communication device managed by a control device in an industrial system, the apparatus comprising:

[0015] One or more network interfaces for communicating with telecommunications networks;

[0016] A processor, coupled to a network interface and configured to execute one or more processes; and

[0017] The memory is configured to store processes that can be executed by the processor, and which, when executed, can operate on:

[0018] The storage table lists at least the identifier of the communication device, the expected version of the communication device's firmware, and the current version of the communication device's firmware for each entry.

[0019] Retrieve the identifier of the communication device and the current firmware version of the communication device.

[0020] Incrementally scan the entries of the table

[0021] If the identifier of the retrieved communication device matches the identifier of the communication device in the table entry, and if the current version of the retrieved firmware matches the current version of the firmware in the table entry, then the firmware package associated with the expected version of the firmware corresponding to the current version of the firmware in the table entry is retrieved.

[0022] Advantageously, update strategies can be defined during system evolution, maintenance modifications, and design. Update strategies allow users to automatically update the firmware of communication devices to the desired version, simplifying user actions on the system and requiring fewer operations for updating any communication device. Update strategies provide the flexibility to select any version of the firmware, such as the latest version or a specific version.

[0023] The update strategy ensures compatibility between updated firmware through an update table, and provides an efficient and secure way to update a set of communication devices with the desired firmware version.

[0024] In an embodiment, the device is configured to have a target version of firmware for one or more communication devices, and the steps of retrieving identifiers, scanning and retrieving firmware packages are repeated until the expected version of the firmware matches the target version of the firmware.

[0025] In an embodiment, the identifier of the communication device includes at least one of the address of the communication device and the type of the communication device.

[0026] In an embodiment, the device is further configured to store the current version of the hardware of the communication device at each entry in the table, retrieve the current version of the hardware of the communication device, and if the retrieved current version of the hardware of the communication device matches the current version of the hardware of an entry in the table, retrieve a firmware package associated with a desired version of the firmware corresponding to the current version of the firmware of the entry in the table.

[0027] In one embodiment, the device is also configured to update the firmware of the communication device using the retrieved firmware package.

[0028] In this embodiment, the order of the table entries defines an update strategy that automatically reaches the target version of the communication device's firmware.

[0029] In an embodiment, the device checks whether the identifier of the retrieved communication device matches the identifier of the communication device in the table entry by using string comparison, and whether the current version of the retrieved firmware matches the current version of the firmware in the table entry.

[0030] In this embodiment, string comparison is based on regular expressions.

[0031] In another embodiment, a method for updating firmware of a communication device managed by a control device in an industrial system, implemented in an apparatus, is provided, the method comprising:

[0032] The storage table lists at least the identifier of the communication device, the expected version of the communication device's firmware, and the current version of the communication device's firmware for each entry.

[0033] Retrieve the identifier of the communication device and the current firmware version of the communication device.

[0034] Scan the entries of the table incrementally.

[0035] If the identifier of the retrieved communication device matches the identifier of the communication device in the table entry, and if the current version of the retrieved firmware matches the current version of the firmware in the table entry, then the firmware package associated with the expected version of the firmware corresponding to the current version of the firmware in the table entry is retrieved.

[0036] In another embodiment, a computer-readable medium is provided, on which a computer program is embodied for performing a method for managing a set of communication modules for firmware updates. The computer program includes instructions for performing steps of the method according to the invention. Attached Figure Description

[0037] A detailed description is provided with reference to the accompanying drawings. In the drawings, the leftmost numeral of the reference numeral indicates the drawing in which that numeral first appears. The same reference numerals are used in all drawings to refer to the same features and components. Some embodiments of the system and / or method according to this subject matter will now be described by way of example and with reference to the accompanying drawings, wherein:

[0038] Figure 1 A schematic block diagram of a communication system for managing firmware updates of a collection of communication modules according to an embodiment of the present invention is shown; and

[0039] Figure 2 A flowchart illustrating a method for managing a collection of communication modules according to an embodiment of the present invention is shown; and

[0040] Figure 3a , Figure 3b , Figure 3c An example of an update process table is shown.

[0041] In all the accompanying drawings, the same reference numerals denote the same elements or elements of the same type.

[0042] Those skilled in the art will understand that any block diagram herein represents a conceptual view of an illustrative system embodying the principles of the subject matter. Similarly, it should be understood that any flow chart, flow diagram, state transition diagram, pseudocode, etc., represents various processes that can be substantially represented in a computer-readable medium and thus executed by a computer or processor, whether or not such computer or processor is explicitly shown. Detailed Implementation

[0043] The accompanying drawings and the following description illustrate specific exemplary embodiments of the invention. Therefore, it should be understood that those skilled in the art will be able to design various arrangements that, while not explicitly described or shown herein, embody the principles of the invention and are included within its scope. Furthermore, any examples described herein are intended to aid in understanding the principles of the invention and should be construed as not being limited to these specific examples and conditions. Therefore, the invention is not limited to the specific embodiments or examples described below, but is limited by the claims and their equivalents.

[0044] In one embodiment, an independent I / O cluster is connected to a control device (CT), such as a programmable logic controller (PLC) with a fieldbus (e.g., Ethernet / IP), and includes heads that drive the cluster of I / O modules individually via the controller. The cluster is a collection of I / O modules physically linked together via a backplane, and the I / O modules are common automation modules that convert electrical signals into digital values. Within the cluster, the cluster manager and different modules can communicate via multi-point communication lines using their respective switches.

[0045] refer to Figure 1 An industrial communication system is a collection of control equipment (CT) and communication equipment (CD).

[0046] The control device CT can be a programmable logic controller (PLC), a programmable automation controller (PAC), or other types of processing devices, which may include virtual devices such as virtual machines or containers. In one embodiment, the controller CT is directly linked to such a programmable logic controller (PLC).

[0047] The control device (CT) is capable of managing communication with a set of communication devices (CDs) (such as I / O modules (IOMs)) via multi-point communication lines, and optionally with another control device via Ethernet and CAN (Controller Area Network) buses. For example, the controller is driven by a head capable of driving other control recognitions. In one embodiment, the controller is included in the head.

[0048] The communication device CD may include analog-to-digital converters (ADCs) and digital-to-analog converters (DACs) for connecting to sensors and the real world, communication modules, digital inputs and outputs, relays, etc. The communication device may also be a gateway or a servo driver. The communication device communicates with the control device CT via communication lines with adapted packet formats. In one embodiment, the communication device CD consists of a collection of interconnected devices that together perform automation functions.

[0049] In one embodiment, the control device CT implements a coordinator module ORC, which is capable of updating itself and updating communication devices using firmware update packages (in client mode or server mode). The coordinator module ORC is aware of its own and the firmware versions of the communication devices, as well as the firmware update packages for each communication device. In one embodiment, the coordinator module ORC has the ability to reconstruct the firmware version from the type of the communication device using a link between the type of the communication device and the name of the firmware update package. In one embodiment, the coordinator module ORC has a key for reading the contents of the firmware update package or requesting the corresponding communication device to read it for itself.

[0050] The coordinator module ORC includes a network interface NI, which is configured to communicate with a telecommunications network linking control and communication devices. The network interface NI is also configured to retrieve an identifier of a communication device CD and the current version of the firmware of the communication device CD, and optionally, the current version of the hardware of the communication device CD.

[0051] The coordinator module ORC includes a storage unit SU, which is configured to store an update procedure table. Each entry in the update procedure table lists at least the identifier of the communication device CD, the expected version of the firmware of the communication device CD, and the current version of the firmware of the communication device.

[0052] The storage unit SU is configured to further store a firmware set containing firmware packages associated with an intended version. In one embodiment, the firmware package contains one or more firmware files and metadata, such as those related to compatibility rules, network security, and installation rules.

[0053] The update process table can also list the address and / or type of the communication device CD for each entry. In one embodiment, the identifier of the communication device may include the address of the communication device CD and / or the type of the communication device. For example, the address of the communication device CD is an IP address. The use of addresses allows for the updating of communication device CDs located in different places within a cluster with different firmware versions.

[0054] The update process table can also list the current version of the communication device's hardware for each entry.

[0055] The order of entries in the update process table defines an update strategy that automatically reaches the target version of the communication device's firmware.

[0056] The coordinator module ORC includes a processing unit PU, which is configured to incrementally scan the entries of the update process table.

[0057] For each entry, the processing unit PU is configured to compare the current version of the firmware of the retrieved communication device CD with the current version of the firmware of the entry in the update process table.

[0058] If no match is found between the retrieved current version and the current version in the update process table, the processing unit (PU) moves to the next entry for further comparison.

[0059] If the retrieved current version matches the current version of the firmware for an entry in the update process table, the processing unit PU is configured to obtain the expected version of the current version of the firmware corresponding to the entry in the update process table, and retrieve the firmware package associated with the expected version from the firmware set.

[0060] Then, the coordinator module ORC can perform the update process by updating the firmware of the communication device using the retrieved firmware package.

[0061] For example, the coordinator module ORC can identify the communication device to be updated by using the identifier of the communication device, and can install and execute the retrieved firmware package on the communication device.

[0062] In one embodiment, when the coordinator module ORC checks whether a firmware version or identifier matches, it can use algorithm-based regular expression string comparisons, for example, to easily manage multi-criteria constraints. The comparison algorithm allows verification of matches between firmware versions, even if an exact match does not exist between the compared data. It allows managing several versions within a single entry in the update process table.

[0063] The embodiment includes a coordinator ORC in the form of a device comprising one or more processors including a processing unit PU, a network interface including a network interface NI, a storage unit SU, and memory coupled to the processor. The processor can be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuits, and / or any device that manipulates signals based on operating instructions. The processor can be a single processing unit or multiple units, all of which may further include multiple computing units. Among other capabilities, the processor is configured to fetch and execute computer-readable instructions stored in memory.

[0064] Functionality implemented by a processor can be provided using dedicated hardware and hardware capable of executing software in association with appropriate software. When provided by a processor, functionality can be provided by a single dedicated processor, a single shared processor, or multiple separate processors, some of which may be shared. Furthermore, the explicit use of the term "processor" should not be construed as referring exclusively to hardware capable of executing software, and may implicitly include, but is not limited to, digital signal processor (DSP) hardware, network processors, application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), read-only memory (ROM) for storing software, random access memory (RAM), and non-volatile storage devices. Other conventional and / or custom hardware may also be included.

[0065] Memory may include any computer-readable medium known in the art, including, for example, volatile memory (such as static random access memory (SRAM) and dynamic random access memory (DRAM)) and / or non-volatile memory (such as read-only memory (ROM), erasable programmable ROM, flash memory, hard disk, optical disk, and magnetic tape). Memory includes modules and data. Modules include routines, programs, objects, components, data structures, etc., that perform specific tasks or implement specific abstract data types. Data is used in particular as a repository for storing data processed, received, and generated by one or more modules.

[0066] refer to Figure 2 According to an embodiment of the present invention, a method for updating the firmware of a communication device managed by a control device in an industrial system includes steps S1 to S5.

[0067] The control device CT that manages the communication equipment in the industrial system is linked to the coordinator module ORC, which can be included in the control device or any type of database.

[0068] In the initial step S01, the user (such as a PLC application designer) can store the update process table UPT in the storage unit SU of the coordinator module ORC. Each entry in the update process table lists at least the identifier Idt of the communication device CD, the expected version Ve of the firmware of the communication device CD, and the current version Vct of the firmware of the communication device.

[0069] In addition, users can store a firmware set in the storage unit SU, which contains firmware packages respectively associated with the expected version for the communication device.

[0070] In the initial step S02, the coordinator module ORC is configured with a target version Vt of the firmware for at least one communication device CD. In one embodiment, the target firmware version Vt corresponds to an expected version Ve of the firmware of the communication device CD in the update process table UPT.

[0071] In step S1, the coordinator module ORC queries the communication devices managed by the control device CT to retrieve information about each queried communication device and its currently installed firmware. The information about the communication device includes at least the device's identifier Idr, and the information about the currently installed firmware includes at least the current version Vcr of the firmware installed on the communication device.

[0072] In one embodiment, the coordinator module ORC is triggered to query the communication device after various events, such as the receipt of a full upgrade command, the insertion of the communication device, a reboot of the coordinator, an update of the update process table UPT, or a reboot of the communication device after a firmware update.

[0073] Optionally, if the update process table UPT contains the current version Vhwt of the communication device's hardware, the coordinator module ORC also retrieves the current version Vhwr of the communication device's hardware.

[0074] Retrieving information about the communication device and its currently installed firmware can be done in many ways, including, for example, by requesting information from a firmware package associated with the communication device through an application programming interface (API) exposed to the coordinator for such purposes, by retrieving information from a known storage location designated for such purposes, or in other ways that will be apparent to those skilled in the art.

[0075] In step S2, the coordinator module ORC incrementally scans the entries in the update process table.

[0076] For each entry, the coordinator module ORC checks whether the identifier Idr of the retrieved communication device CD matches the identifier Idt of the communication device CD in the update process table entry, and checks whether the current version Vcr of the installed firmware of the retrieved communication device CD matches the current version Vct of the firmware in the update process table entry.

[0077] Optionally, if the Update Procedure Table (UPT) contains the current version Vhwt of the communication device's hardware, the coordinator ORC first checks whether the current version Vhwr of the hardware of the retrieved communication device CD matches the current version Vhwt of the hardware in the update procedure table entry. Then, the coordinator module ORC continues with checks related to the current version Vcr of the firmware of the retrieved communication device CD.

[0078] In step S3, if the current version Vcr of the installed firmware of the retrieved communication device CD matches the current version Vct of the firmware of the entry in the update process table, the coordinator ORC obtains the desired version Ve of the firmware corresponding to the current version Vct of the firmware of the entry in the update process table. The coordinator can then retrieve the firmware package associated with the desired version Ve of the firmware from the firmware set. If the current version Vcr of the installed firmware of the retrieved communication device CD does not match the current version Vct of the firmware of any entry in the update process table, the method stops and the communication device CD is not updated. This means that the installed firmware of the communication device CD has been updated to the desired version Ve corresponding to the target version Vt.

[0079] In step S4, the coordinator module ORC updates the firmware of the communication device CD using the retrieved firmware package. Once the firmware of the communication device CD is updated, the communication device CD restarts.

[0080] In optional step S5, the coordinator module ORC checks whether the current version Vcr of the retrieved firmware corresponds to the target version Vt of the firmware used for the communication device.

[0081] If the current version Vcr of the retrieved installed firmware does not match the target version Vt of the firmware of the communication device, steps S1 to S4 are repeated. Restarting the communication device CD causes the coordinator module ORC to continue updating the policy and to start querying the communication device CD again, as in step S1.

[0082] If the current version Vcr of the retrieved installed firmware matches the target version Vt of the firmware used for the communication device, the update strategy for the communication device ends and the method stops.

[0083] refer to Figure 3a ; Figure 3b and Figure 3c The example shown is an update process table UPT, which includes the identifier Idt of the communication device (here, the type of communication device), the expected version Ve of the communication device's firmware, the current version Vct of the communication device's firmware, and the current version Vhw of the communication device's hardware.

[0084] refer to Figure 3a The update strategy can be to update the communication device with the target firmware version "1.3.0.0". On older firmware versions from 1.0.xy (where x is 0, 1, or 2, and y is from 0 to 9), there is a forced firmware version "0.9.9.9" (forced step) before the communication device can be upgraded with the target firmware version.

[0085] Depending on the scan order, if the current hardware version Vhw of the communication device is "1.0" or "2.0" and the current firmware version Vc of the communication device is "1.0.0.0", the coordinator can use the expected firmware version Ve "1.0.1.0" to ensure that the firmware update will take effect. Then, if the current hardware version Vhw of the communication device is "1.0" and the current firmware version Vc of the communication device is in the range of "1.0.0.0" to "1.0.0-2.0-9", the coordinator can use the expected firmware version Ve "1.0.2.3" to ensure that the firmware update will take effect. In this example, this is the last firmware version supported by the hardware version.

[0086] refer to Figure 3bThe update strategy could be to update the communication device with the target firmware version "1.3.0.0", such as in... Figure 3a In the previous example, the Update Procedure Table (UPT) contains a new last row. This allows for consideration of situations where, if the current firmware version Vc of the communication device is in the range "0-9.0-9.0-9.0-9", that is, if the current firmware version Vc is any state different from the previously listed states, including being newer than the expected state ("1.0.3.0"), then a firmware version downgrade is forced to the expected firmware version.

[0087] refer to Figure 3c The update strategy could be to update the communication device with the target firmware version "1.3.0.0", such as in... Figure 3a In the previous example, the Update Procedure Table (UPT) contains... Figure 3b The example is different from the new last line. It allows for forcing a firmware version downgrade to the expected firmware version, as previously described. Furthermore, it allows distinguishing the firmware package to use from the firmware set by parsing the list of packages in top-down order and selecting the first firmware package that matches the expected version of Ve, firmware "1.0.3.0-9". For example, if the firmware set only contains firmware packages corresponding to the expected versions of Ve, firmware "1.0.1.0", "1.0.2.3", "0.9.9.9", "1.0.3.1", and "1.0.3.0", the coordinator will select the firmware package corresponding to the expected version of Ve, firmware "1.0.3.1".

[0088] Those skilled in the art will readily recognize that the steps of the methods described above can be performed by a programmed computer. In this document, some embodiments are also intended to cover program storage devices, such as digital data storage media, which are machine- or computer-readable and encode machine-executable or computer-executable instructions, wherein said instructions perform some or all of the steps of the described methods. Program storage devices can be, for example, digital memories, magnetic storage media (such as disks and magnetic tapes), hard disk drives, or optically readable digital data storage media.

[0089] Although the invention has been described above with reference to specific embodiments, it is not intended to limit the invention to the specific forms set forth herein. Rather, the invention is limited only by the appended claims, and other embodiments besides the specific embodiments described above are also possible within the scope of these appended claims.

[0090] Furthermore, although exemplary embodiments have been described above with reference to some exemplary combinations of components and / or functions, it should be understood that alternative embodiments may be provided by different combinations of components and / or functions without departing from the scope of this disclosure. In particular, it is contemplated that specific features described individually or as part of an embodiment may be combined with other separately described features or portions of other embodiments.

Claims

1. An apparatus (ORC) for updating the firmware of a communication device (CD) managed by a control device (CT) in an industrial system, the apparatus comprising: One or more network interfaces for communicating with telecommunications networks; A processor, coupled to a network interface and configured to execute one or more processes; and The memory is configured to store processes that can be executed by the processor, and which, when executed, can operate on: The storage table lists at least the identifier (Idt) of the communication device (CD), the expected version (Ve) of the firmware of the communication device (CD), and the current version (Vct) of the firmware of the communication device (CD) at each entry in the table. Retrieve (S1) the identifier (Idr) of the communication device (CD) and the current version (Vcr) of the firmware of the communication device (CD). The entries in table (S2) are scanned incrementally. If the identifier (Idr) of the retrieved communication device (CD) matches the identifier (Idt) of the communication device (CD) of the table entry, and if the current version (Vcr) of the retrieved firmware matches the current version (Vct) of the firmware of the table entry, then (S3) the firmware package associated with the expected version (Ve) of the firmware corresponding to the current version (Vct) of the firmware of the firmware of the table entry is retrieved.

2. The apparatus (ORC) according to claim 1, wherein, The device (ORC) is configured to have a target version (Vt) of firmware for one or more communication devices, and the steps of retrieving (S1) an identifier, scanning (S2) and retrieving (S3) firmware packages are repeated until the expected version (Ve) of the firmware matches the target version (Vt) of the firmware.

3. The apparatus (ORC) according to any one of the preceding claims, wherein, The identifier of a communication device (CD) includes at least one of the address of the communication device (CD) and the type of the communication device (CD).

4. The apparatus (ORC) according to any one of the preceding claims, wherein, The apparatus is further configured to store the current version (Vhwt) of the hardware of the communication device at each entry in the table, retrieve the current version (Vhwr) of the hardware of the communication device (CD), and if the retrieved current version (Vhwr) of the hardware of the communication device (CD) matches the current version (Vhwr) of the hardware of an entry in the table, retrieve a firmware package associated with the expected version (Ve) of the firmware corresponding to the current version (Vct) of the firmware of the corresponding entry in the table.

5. The apparatus (ORC) according to any one of the preceding claims, wherein, The apparatus is also configured to update the firmware of the communication device (CD) using the retrieved firmware package, causing the communication device (CD) to restart and repeat the steps of retrieving (S1) the identifier, scanning (S2) and retrieving (S3) the firmware package.

6. The apparatus (ORC) according to any one of the preceding claims, wherein, The order of entries in the table defines an update strategy that allows for automatic achievement of the target version (Vt) of the firmware of the communication device (CD).

7. The apparatus (ORC) according to any one of the preceding claims, wherein, The device checks whether the identifier (Idr) of the retrieved communication device (CD) matches the identifier (Idt) of the communication device (CD) in the table entry by using string comparison, and whether the current version (Vcr) of the retrieved firmware matches the current version (Vct) of the firmware in the table entry.

8. The apparatus (ORC) according to claim 7, wherein, String comparison is based on regular expressions.

9. A method implemented in an apparatus (ORC) for updating firmware of a communication device (CD) managed by a control device (CT) in an industrial system, the method comprising: The storage table lists at least the identifier (Idt) of the communication device (CD), the expected version (Ve) of the firmware of the communication device (CD), and the current version (Vct) of the firmware of the communication device (CD) at each entry in the table. Retrieve (S1) the identifier (Idr) of the communication device (CD) and the current version (Vcr) of the firmware of the communication device (CD). The entries in table (S2) are scanned incrementally. If the identifier (Idr) of the retrieved communication device (CD) matches the identifier (Idt) of the communication device (CD) of the table entry, and if the current version (Vcr) of the retrieved firmware matches the current version (Vct) of the firmware of the table entry, then (S3) the firmware package associated with the expected version (Ve) of the firmware corresponding to the current version (Vct) of the firmware of the firmware of the table entry is retrieved.

10. A computer-readable medium having a computer program embodied thereon, the computer program being used to perform a method for updating firmware of a communication device (CD) managed by a control device (CT) in an industrial system according to any one of claims 1 to 9.