Zero-downtime upgrades of containerized programmable logic controller (plc) automation functions
Disclosed is an automated method and system for upgrading an automation function controlling an actuator via a PLC (programmable logic controller), including: providing a first container and a first sidecar container, whereby the first container contains a first automation function, the first automation function is controlling the actuator via the PLC, providing a second container and a second sidecar container, whereby the second container contains a second automation function, the second automation function is receiving data from the actuator but is not controlling the actuator, based on the received data pre-activation tests for the second automation function are executed in the second sidecar container by the second test unit, if the pre-activation tests are successfully finished, the time when the control of the actuator is handed over is determined, and the control of the actuator is handed over from the first automation function to the second automation function.
1 . An automated method for upgrading an automation function controlling an actuator via a programmable logic controller (PLC), comprising the steps:
a) providing a first container and a first sidecar container, whereby the first container contains a first automation function, and the first sidecar container contains a first test unit and a first upgrade unit, and whereby the first automation function is configured to communicate with the first sidecar container,
b) the first automation function is controlling the actuator via the PLC,
c) providing a second container and a second sidecar container, whereby the second container contains a second automation function, and the second sidecar container contains a second test unit and a second upgrade unit, whereby the second automation function is configured to communicate with the second sidecar container, and whereby the second container is different than the first container and the second sidecar container is different than the first sidecar container,
d) the second automation function is receiving data from the actuator through the PLC but is not controlling the actuator via the PLC,
e) based on the received data from the actuator, pre-activation tests for the second automation function are executed in the second sidecar container by the second test unit,
f) if the pre-activation tests are successfully finished, a time when the control of the actuator is handed over from the first automation function to the second automation function is determined through negotiation between the first upgrade unit and the second upgrade unit, and
g) the control of the actuator is handed over from the first automation function to the second automation function at the determined negotiated time.
2 . The automated method according to claim 1 , comprising the further steps:
h) health tests are performed for the second automation function by the second test unit, whereby the second automation function shares its internal data with the second sidecar container, and
i) the first automation function is receiving data from the actuator through the PLC but is not controlling the actuator via the PLC.
3 . The automated method according to claim 2 , comprising the further step:
j) the second automation function and the second sidecar container are running alone, whereas the first container containing the first automation function, and the first sidecar container are undeployed.
4 . The automated method according to claim 1 , whereby the received data are sensor data from the actuator.
5 . The automated method according to claim 1 , whereby the first upgrade unit and the second upgrade unit communicate with each other via a network protocol.
6 . The automated method according to claim 5 , whereby the network protocol is TCP/IP.
7 . The automated method according to claim 1 , whereby the first and second test units contain a software library configured and programmed to test a functionality of the first and second automation functions, respectively.
8 . The automated method according to claim 1 , whereby the first and second upgrade units contain a software library configured and programmed to orchestrate the hand-over from the first automation function to the second automation function.
9 . A system comprising at least one computational hardware device configured and programmed to perform the automated method according to claim 1 .
10 . The system according to claim 9 , whereby the actuator is a robot.