FOTA, o Firmware Over-The-Air , è una tecnologia che consente ai dispositivi connessi ad Internet di eseguire aggiornamenti delle loro versioni del firmware in remoto senza la necessità di intervento fisico nel dispositivo. La capacità di aggiornare i sistemi è essenziale per mantenere i dispositivi protetti, aggiungere nuove funzionalità e correggere bug.
Aggiornamento sistemi programmabili
Nel caso di sistemi programmabili, possono esistere più esigenze di aggiornamento automatico.
- Aggiornamento del sistema operativo Firmware del prodotto per aggiungere nuove funzionalità e correggere bug di sistema.
- Aggiornamento del programma PLC per per aggiungere nuove funzionalità richieste dal cliente e correggere eventuali errori di funzionamento.
- Modifica memoria tampone per riconfigurare parametri di funzionamento.
Sui nostri sistemi programmabili grazie alle funzioni avanzate di backup & restore è possibile creare files di backup con l’immagine del sistema operativo, del programma utente e dei dati di backup. Creato il file è possibile hostarlo su di un server FTP nel cloud in modo da essere accessibile dai sistemi.
I sistemi possono leggere il file di backup e trasferirlo nel loro file system, poi eseguendo un reboot aggiornarsi in automatico.
Programma “FOTAUpdate”
Il programma FOTAUpdate scaricabile dal sito, riporta un esempio di come sia possibile implementare l’aggiornamento automatico sui nostri sistemi. Come si vede dal listato il programma ha una esecuzione a stati.
- Attivando la variabile FOTAStart, si passa al case 10 dove si attiva il download dal server FTP del file indicato in FTP.RemoteFile che viene salvato sul file system del sistema nel file indicato in FTP.LocalFile. Il file deve avere come nome SYSTEM.UPL (Case sensitive).
- Terminato il download viene eseguito un log sul file di log indicato in Logger.Filename, in questo modo è possibile verificare dal file di log l’avvenuto aggiornamento.
- Si attende un tempo per consentire eventuale salvataggio di dati ritentivi, poi si forza il riavvio del sistema reboot.
- Al riavvio il sistema controlla se nel file system vi è il file SYSTEM.UPL, lo controlla e se il file è compatibile con il sistema ne viene eseguito l’aggiornamento. Poi il sistema si riavvia.
- Ad ogni avvio SysFirstLoop=TRUE, si controlla se vi è stato un update. In questo caso è già in esecuzione il nuovo programma, ne viene salvato nel file di log il nome. Se nel file system vi è il file SYSTEM.UPL, viene cancellato. La cancellazione del file è necessaria per evitare che ad ogni accensione del sistema venga controllato.