Configurare un timer watchdog su Finder Opta
Guide and Tutorial | Configurare un timer watchdog su Finder Opta
Panoramica
In questo tutorial impareremo a configurare un timer watchdog su Finder Opta, in modo da riavviare il dispositivo in caso di malfunzionamenti come loop infiniti, deadlock o timeout.
Obiettivi
- Imparare a configurare un timer watchdog su Finder Opta.
Requisiti hardware e software
Requisiti hardware
- PLC Finder Opta (x1).
- Cavo USB-C® (x1).
Requisiti Software
Finder Opta e i watchdog
Essendo una board basata su Mbed OS, Finder Opta può sfruttare la classe
Watchdog
per
impostare un timer watchdog in hardware che riavvii il sistema in caso di
malfunzionamenti.
Istruzioni
Configurazione dell'Arduino IDE
Per seguire questo tutorial, sarà necessaria l'ultima versione dell'Arduino IDE. Se è la prima volta che configuri il Finder Opta, dai un'occhiata al tutorial Getting Started with Opta.
Panoramica del codice
Lo scopo del seguente tutorial è di configurare un timer watchdog su Finder Opta, andando poi a verificarne il funzionamento tramite dei delay programmati.
Il codice completo di esempio è disponibile qui. Dopo aver estratto i file, lo sketch può essere compilato e caricato sul Finder Opta.
Configurare il watchdog
Come specificato all'inizio di questo tutorial, Finder Opta può utilizzare la
classe Watchdog
di MbedOS per impostare un timer hardware che riavvii il
dispositivo in caso di malfunzionamenti.
#include <Arduino.h>
#include <drivers/Watchdog.h>
void setup()
{
Serial.begin(9600);
// Setup the watchdog to 10s.
Serial.println("Setting watchdog to 10s.");
mbed::Watchdog::get_instance().start(10000);
Nel codice riportato qui sopra, lo sketch ottiene una referenza al Watchdog
di MbedOS e lo avvia, con tempo di timeout massimo di 10 secondi.
Rinfrescare il watchdog
In seguito lo sketch fa dormire Finder Opta per 5 secondi per tre volte consecutive, andando a rinfrescare il timer watchdog al termine di ciascuna:
// Sleep 5s and kick, for three times.
for (int i = 0; i < 3; i++)
{
Serial.println("Sleeping for 5s.");
delay(5000);
mbed::Watchdog::get_instance().kick();
}
Infine lo sketch prova a dormire per 11 secondi, attivando così il watchdog e causando il riavvio di Finder Opta:
// Sleep 11s causing Opta to reboot.
Serial.println("Sleeping for 11s. Opta will reboot.");
delay(11000);
}
A questo punto vedremo i LED di Finder Opta lampeggiare come in seguito ad un riavvio manuale, e lo sketch verrà eseguito da capo. Si noti che, durante l'esecuzione del programma Finder Opta stamperà su monitor seriale l'operazione che sta eseguendo, producendo un output di questo tipo:
Setting watchdog to 10s.
Sleeping for 5s.
Sleeping for 5s.
Sleeping for 5s.
Sleeping for 11s. Opta will reboot.
Conclusioni
Questo tutorial mostra come configurare un timer watchdog su Finder Opta per riavviare il dispositivo in caso di malfunzionamenti, andando poi a verificarne il funzionamento tramite una sequenza di delay.