UPS on APC in combination with hypervisor (AR/Linux)

We are currently testing the 5AC901-IUPS-01 and 5AC901-BUPS-01 because we are experiencing issues with our CF cards occasionally becoming non-functional during power outages, possibly due to corrupted data when the machine is not properly shut down.

With such a solution, our PC3100, running hypervisor with AR and linux, will remain on for up to hours after the customer has turned off the system. As a solution, we plan to create a button on the HMI that allows our customers to safely shut down our PC3100. However, before we do this, we need to ensure that no data is being written to our card before we allow the shutdown. In short, we need to be sure that it shuts down safely so that no data corruption occurs. Is there a simple command we can use? Is there a way to ensure that all data, such as logs, etc., is transferred before shutdown both on AR and Linux side? Are there other functions we can use that, for example, force all data to be transferred immediately? If so, how can we find more information about these options?

On the Automation Runtime side you can use SYSreset() with the option no reboot + warm restart. You should be able to know if you have pending writes(FileIO, mpRecipe…) on the AR side (from application code), and trigger this only after they are finished.
Automation Help: Controlled shutdown

On the Linux side you need to find a way to shut it down properly (should be plenty of different ways to achieve this). Other option would be to configure the Overlay Write Filter (see Linux for B&R user manual), which would prevent writing to the disk in the first place.

2 Likes

We recently tried to use an UPS provided from B&R, together with a APC3100. Our hope was that we could do a controlled shutdown (save everything important) if a power failure occurred. But apparently, whenever the main power supply was switched off, then the AR would go to Service mode since all other modules would be shut off and only the APC3100 would remain on since the UPS could only feed the APC with power. And during Service mode, the APC couldn’t run our code. So the only way to make this work is to shut off monitoring off all connected modules to prevent the PLC from switching to Service mode.