(step 1 of 2)
Write your email address in the white field and then click the "Confirm" button.
(step 2 of 2)
Write your password in the white field and then click the "Confirm" button.
Or click the "Request password" button to request forgotten password.
Email address has not been found!
Click the "Previous step" button to to enter your email address again.
Or click the "Register user" button to register your email address.
Pasword does't match!
Click the "Previous step" button to enter the password again.
Or click the "Request password" button to request forgotten password.
(step 1 of 2)
Write your email address in the white field and then click the "Confirm" button.
(step 2 of 2)
Your password has been sent to your email.
Please also check your spam folder.
Email address has not been found!
Click the "Previous step" button to enter your email address again.
Or click the "Register user" button to register your email address.
(step 1 of 5)
Write your email address in the white field and then click the "Confirm" button.
(step 2 of 5)
Registration code has been sent to your email.
Please also check your spam folder.
Copy the registration code from your email in the white field and then click the "Confirm" button.
Or click the "Previous step" button to request the registration code again.
Email address already exists!
Click the "Previous step" button to enter the email address again.
Or click the "Log in user" button to log in with your email address and password.
Or click the "Request password" button to request forgotten password.
(step 3 of 5)
Set your user name in the white field and then click the "Confirm" button.
Registration code does't match!
Click the "Previous step" button to enter the registration code again.
(step 4 of 5)
Set your password in the white field and then click the "Confirm" button.
User name already exists!
Click the "Previous step" button to set another user name.
(step 5 of 5)
User has been successfully registered.
Click the "Log in user" button to log in.
Please log in to be able to open user settings.
Click the "Log in user" button to log in with your email address.
Or click the "Register user" button to register your email address.
Your subscription has been successfully canceled.
Your subscription has been successfully established.
Write your comment in the white field and then click the "Add comment" button.
Article#: 00077
Date: 2022-05-20
Author: Radim
On-machine software update is a use case/activity that needs to be thought of as early as in the project phase of hardware design and software development.
We usually fix bugs, improve some features, or provide new features with a new software version.
Sometimes we want to install a new software version in order to limit some functionality or remove or disable old features.
In practice, it is therefore necessary to occasionally load a new software version onto the producing machine.
What requirements should the software update process meet?
It is obvious that the requirements for simple, fast and risk-free software update can only be met if they are taken into account right from the start of the project - when selecting the CPU type and designing the software concept.
© Radim-Automation, 2020–2025. All rights reserved.
Sharing of this article is permitted with proper attribution (link to the original page).
Related previous articles:
Related next articles:
Comment#: 00001
Date: 2022-05-24
User: Radim
When an update is being performed, it is necessary to inform the user how far the update is from its completion.
The ideal is to display a countdown timer showing how many minutes and seconds are left until completion.
Showing a progress bar with percentage or step number (e.g. "step 2 of 14") is a weaker option, but still sufficient. The status of the progress bar is approaching a fully completed state - here the user doesn't know how much longer to wait, but when a progress bar is increasing, at least he is sure that the process is running and slowly approaching its completion.
Merely spinning a wheel or an hourglass icon is totally insufficient information about the progress as it leaves the user in doubt whether the action is still running or if the action has got frozen.
Comment#: 00002
Date: 2022-06-20
User: Radim
Compilation time and the time it takes to upload the program to the PLC are important factors affecting programmer's productivity. If the programmer has to compile and upload the program to the PLC five times a day to test the new functions, then it makes a significant difference whether this process takes a few seconds or a few minutes.
Properly selected platform should not slow down the developer with long compile and upload times!
Comment#: 00003
Date: 2022-10-26
User: Radim
In addition to the process of the software update, the process of the very first installation must also be defined. This must be particularly reliable and work under all circumstances - regardless of the condition of the hardware and its configuration, we must always be able to load the program onto the CPU without any problems.
I have had the best experiences when the memory card can be removed and completely written with the operating system, the settings and the machine control program. That always works. You have no problem with undefined hardware states or unreachable connections.
Comment#: 00004
Date: 2022-12-10
User: Radim
If a software update is interrupted by a power outage, it should be able to resume and complete successfully once power is restored.
Comment#: 00005
Date: 2023-07-11
User: Radim
"New risks are also emerging in automated production, because who will restart a plant or even just a machine if the staff responsible for it at the time of shutdown are no longer working in the same plant. The transfer of knowledge, for example about the last software versions or settings, becomes indispensable. If you do not have the processes and the right solution in place, you risk everything. At this point, trends such as deploying increasing amounts of robots can only help to a limited extent, because even robots are dependent on updates and a certain level of maintenance."
- Curated by Statista, supported by octoplant by AUVESY-MDT. No Fatalism in Manufacturing. Exciting Insights from Leading Studies. (Page 5)
- https://info.auvesy-mdt.com/hubfs/Statista%20ePaper%20EN%20-%20AUVESY-MDT.pdf
Comment#: 00006
Date: 2023-09-27
User: Radim
"By continuously improving the design of code, we make it easier and easier to work with.
This is in sharp contrast to what typically happens: little refactoring and a great deal of attention paid to expediently add new features.
If you get into the hygienic habit of refactoring continuously, you'll find that it is easier to extend and maintain code."
- Joshua Kerievsky. Addison-Wesley (2004). Refactoring to Patterns.
Comment#: 00007
Date: 2023-11-12
User: Radim
For several months I've been responsible for the SW support of hundreds of combing machines of two generations with more or less the same software but with two different PLCs. The first generation had a B&R X20CP3584 and the second had a B&R X20CP0484-1.
When it comes to installing and updating the application program on the machine, the two control systems are completely different. Or rather, they fulfill the requirements for software updates mentioned in the article above in different ways. The fundamental difference is that the X20CP3584 still has a CompactFlash card as a removable memory for the application program, while the X20CP0484-1 has no removable memory for the application program, but only an integrated flash memory.
B&R offers a standardized installation procedure for application programs that is the same for both controllers, the so-called "Project Installation Package". This involves installing the installation files from a USB stick into the controller after a restart.
In the case of the project I've been supervising, this process takes around 20 minutes. During these 20 minutes, in which the application program is installed or updated, the machine is out of operation.
The new application program can also be transfered to the X20CP3584 PLC by preparing a CF card with a PC and a CF card reader and then replacing the CF card with the old card in the PLC.
Although I thought it made sense to standardize the installation procedure on both generations of PLCs and simply use the "project installation package" from the USB memory stick to install both generations of machines in the same way, I was reminded of the significant advantage of installing software by replacing the CF card in the X20CP3584 PLC.
Because when dozens of machines need to be updated, the CF card installation method is much faster and also has fewer risks:
⇒ A new CF card with the updated application program can be prepared while the machine continues to run with the existing program. To replace the card, it is only necessary to switch the machine off briefly and then on again. The downtime of the machine is therefore noticeably shorter than when the new application program is installed on the machine from a USB stick.
⇒ If we detect a problem on the machine after the update or later the customer does, it is possible to easily and quickly return to the previous version of the program by replacing the new CF card in the PLC with the previous one.
Comment#: 00008
Date: 2023-11-12
User: Radim
Here, too, I was glad that I could use the B&R PLC's exchangeable CF card memory.
I was called to a customer to fix a sporadic problem with the application program on his machine. Unfortunately, the original programmer is no longer with the company.
We found the source files for the PLC program on the company server. To avoid causing more damage and installing a program on the machine that doesn't work at all, I kept the original CF card as a backup solution. I used a spare CF card for my work. This way, I could be sure that if the problem took longer to fix and the customer wanted to get the machine up and running, he could always produce very quickly with the old, backed-up CF card.
Comment#: 00009
Date: 2023-12-06
User: Radim
It is important to have a proven procedure for installing an application program, regardless of whether it is an initial installation or whether you are updating an old version with a newer one.
The installation or update of the application software must work under all circumstances, regardless of the initial state of the PLC in terms of settings (in particular, an unknown IP address can be an obstacle) or the currently loaded program version.
Comment#: 00011
Date: 2024-02-14
User: Radim
Benefits and risks of software updates via remote access to customer machines
In today's agile world, quick and easy software updates are essential for maintaining technologies and systems. However, the transition from manual installation of updates to remote access raises an important discussion about the risks and benefits of this approach.
Technical feasibility and tools:
The technical aspect is not an obstacle. With today's concepts and tools, the application software can be updated on remote machines at the customer's premises.
Risks:
However, the main concerns relate to the risks associated with this procedure. There is a possibility that the installation of the new software version may cause unexpected problems that can have serious consequences. The machine may no longer be able to be started and may even no longer be accessible remotely. A specialist then has to travel to the customer. This can take up to several days and leads to expensive production downtime for the customer.
Benefits:
Conversely, remote software updates have many advantages. Customers do not have to wait for a technician to be present, which saves time and travel costs. In addition, the rapid availability of updates can improve overall customer satisfaction and increase efficiency.
Solution:
To minimize the risks associated with remote updates, clear rules and procedures must be established. These include thorough testing of updates prior to deployment, detailed data backup and recovery plans and adequate training of customer personnel.
Comment#: 00012
Date: 2025-01-09
User: Radim
How progress bars really work:
https://www.youtube.com/watch?v=-F9uAhp1KSI