PLC Publish-Subscribe Handover for Zero-Downtime Control Upgrades
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current PLCs do not support zero-downtime updates of control functions due to the inability to deploy and execute two different control functions with the same name in parallel, leading to competitive command publishing and inability to determine which command to pass to actuators.
Innovation Solution
A PLC with a cyclic Publish/Subscribe data bus decouples control functions from actuators, allowing two versions to register as publishers on the same topic, with one version as primary and the other as secondary, and only passing primary commands to actuators, enabling seamless handover.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If two control function versions run in parallel on the same PLC, then zero-downtime updates are enabled, but competitive command publishing occurs on the same PubSub topic causing uncertainty about which command to execute
Solution Approach 1:
The patent introduces an intermediary mechanism (command priority identification and selection logic) that mediates between multiple control function versions publishing on the same PubSub topic. The PLC identifies which control function has authority to publish commands based on version state information, and only passes commands from the authorized function to actuators, thereby resolving the command authority ambiguity while maintaining parallel operation capability
Solution Approach 2:
The patent segments the command publishing authority by introducing version identification and priority markers to control functions. Each control function version is tagged with version information, and the PLC segments the command flow by selecting only commands from the primary/active version, allowing multiple versions to coexist in memory while ensuring only one actively controls actuators
2Reliability
If current PLC architecture is used, then system stability is maintained, but control function updates require system shutdown interrupting actuator operation
Solution Approach 1:
The patent applies preliminary action by deploying the updated control function version in parallel alongside the current version before the update is complete. The new version is prepared and registered with the PubSub topic in advance, with version identification markers set, so that when the update completes, the PLC can immediately switch command authority without interrupting actuator operation
Solution Approach 2:
The patent introduces dynamic version switching capability where the PLC can change which control function version has command authority during runtime. The system transitions from static single-version operation to dynamic multi-version operation, allowing seamless switching between versions based on update state while maintaining continuous actuator control
3Adaptability or versatility
If multiple control functions register as publishers on the same PubSub topic, then parallel execution is enabled, but the PLC cannot determine which command shall be passed to the actuator
Solution Approach 1:
The PLC acts as an intermediary that receives commands from multiple control function publishers on the same PubSub topic, identifies the primary/active version through version markers, and selectively passes only authorized commands to actuators, thereby maintaining parallel execution clarity
Solution Approach 2:
The patent uses version identification markers analogous to color coding to distinguish between different control function versions. The PLC identifies the active version through these markers and selects commands based on version state, making command selection clear despite multiple publishers
Data Source
AI summary
A method and arrangement for upgrading a function performed on a technical system including a PLC and an actuator controlled by the PLC. The control function provides an output which controls the actuator. The method includes deploying at least one updated version of the control function on the system while maintaining the current version of the control function on the system, b. the updated version is prevented from controlling the actuator, whereby the current version and the updated version publish control commands in each PLC cycle to a Publish/Subscribe communication module of the PLC, c. in each PLC cycle passing the published control command, d. the information of the published control command of the updated version changes to a primary control command and the published control command of the current version to a secondary control command in a mutual agreement process between the current version and the updated version.

