Jump to content
PLC Forum


Riavvio automatico PC in caso di freeze


hrumag
 Share

Recommended Posts

Buongiorno a tutti e complimenti per il forum.

Pongo qui la domanda sperando di essere nella sezione giusta e sperando di non creare duplicati.

 

Mi trovo ad affrontare questo problema.

 

Scenario: ho un sistema composto da 4 PC che non sempre sono presidiati e devo garantire che i software che ci girano sopra siano sempre funzionanti, 24/7. Sto cercando di porre rimedio a tutte le possibili failure che questi PC possano incontrare nella loro operatività. Ad esempio, a livello applicativo ho fatto in modo che il sistema operativo faccia ripartire gli applicativi in caso di crash o comportamenti anomali. Purtroppo con le "manopole software" non posso andare sotto al sistema operativo e non posso gestire il caso in cui il sistema operativo si freeza. Ho pensato quindi che un sistema esterno ed embedded possa aiutarmi.

 

La fenomenologia del freeze è molto semplice: il PC consuma corrente (è acceso) ma non risponde al ping.

 

Quindi ho pensato che se avessi un "controllore affidabile" che periodicamente misuri il consumo del PC e testi il ping, nel caso in cui il consumo non è nullo e il ping non risponde, possa togliere alimentazione al PC e farlo ripartire dopo qualche secondo (i PC sono configurati da BIOS ad effettuare boot quando ricevono alimentazione).

 

Alcune info e requisiti che ho:

 

1) La soluzione dovrebbe essere "industriale" e non "casalinga" o da "smanettone" (tipo Arduino collegato a schede breadboard o similari)

2) I PC sono alimentati a 220Vac

3) Non è necessaria una HMI... basterebbe qualcosa programmabile che ogni minuto controlla la condizione di freeze

4) Questo controllore deve essere su LAN per ricevere, se possibile, anche un segnale esterno per il reboot dei PC, oltre ovviamente al controllo automatico descritto precedentemente che ha priorità maggiore

5) La soluzione dovrebbe essere la più semplice possibile, per quanto robusta

 

Chiedo scusa se uso una terminologia non corretta, ho provato a spiegarmi nel modo migliore.

 

Grazie mille per l'aiuto che saprete darmi.

 

PS Su internet ho trovato qualcosa che forse potrebbe essere la risposta la mio problema, ovvero le smart plug industriali... sono sufficienti?.. Aiutatemi!

Link to comment
Share on other sites

  • Livio Orsini locked and unlocked this topic

Ma non è più semplice gestire un "life bit" o "heart beat" (chiamato anche in tanti altri modi)?

Per esempio, il PLC alza il bit e l'applicativo su PC lo abbassa. Se il bit rimane alto per più del tempo di controllo, significa che l'applicativo non sta girando.

Link to comment
Share on other sites

Ma scusa: perchè il sistema operativo dovrebbe "freezare"? Se succede vuol dire che c'è un problema da risolvere.

Ma non ho capito una cosa: i 4 pc si scambiano informazioni tra di loro o lavorano separati?

Link to comment
Share on other sites

max.riservo
5 ore fa, hrumag ha scritto:

La fenomenologia del freeze è molto semplice: il PC consuma corrente (è acceso) ma non risponde al ping.

Forse è meglio chiarire questo aspetto : con freeze intendi il PC che va in ibernazione e/o qualche altro stato di risparmio energetico oppure cos'altro?

Link to comment
Share on other sites

Ma spegnere un pc Windows disalimentandolo di botto, quanto pensi possa passare prima di vedere la fatidica schermata blu?

46 minuti fa, lucios ha scritto:

Se succede vuol dire che c'è un problema da risolvere.

 

Link to comment
Share on other sites

Livio Orsini
28 minuti fa, max.riservo ha scritto:

Forse è meglio chiarire questo aspetto : con freeze intendi il PC che va in ibernazione

 

In genere il sistema operativo WIN dopo "X" tempo che non riconosce movimenti del mouse o pressione di tasti va in quiescenza, cioè oscura il video e sospende alcuni task. Se non viene "svegliato"entro un certo intervallo di tempo entra nello stato di congelamento, salva i dati su HD, riduce al minimo la frequenza di clock e sospende tutti i task, quindi anche le interfacce di rete sono inattive; non so se con Win10/11 sia possibile svegliarlo dando un comando sulla rete.

Quando usavo PC per certe operazioni di supervisione disabilitavo questa modalità in modo che il PC fosse sempre vivo. A quei tempi usavo Win NT, non so con Win10/11 se è ancora possibile e nemmeno come eventualmente configurarlo.

 

Se il PC si trova in questo stato, togliere brutalmente l'alimentazione e poi ridarla per provocare una ripartenza non mi sembra molto salutare. Il rischio minore è che il PC riparta in modalità provvisoria, il rischio maggiore è che, se questa operazione si ripete abbastanza di frequente, si vada anche a corrompere qualche indice dello SO.

 

Per verificare che il PC sia "sveglio" è abbastanza semplice basta fargli inviare in rete un messggio, anche solo 2 caratteri, ogni "x" secondi, se al dispositivo di sorveglianza non arriva il messaggio entro il tempo stabilito sa che il PC in questione non è in modalità attiva però, ripeto, sarebbe più opportuno evitare lo spegnimento brutale.

Link to comment
Share on other sites

22 ore fa, drn5 ha scritto:

Fai riavviare il SO ogni tot minuti.

Se il PC è freezato come fa a riavviarsi?

Link to comment
Share on other sites

Il 23/11/2022 alle 11:35 , batta ha scritto:

Ma non è più semplice gestire un "life bit" o "heart beat" (chiamato anche in tanti altri modi)?

Per esempio, il PLC alza il bit e l'applicativo su PC lo abbassa. Se il bit rimane alto per più del tempo di controllo, significa che l'applicativo non sta girando.

Grazie mille per la risposta. Il ping periodico equivale ad un heartbit.

E' importante anche misurare il consumo poiché se il PC è l'unico modo per distinguere il freeze da una situazione in cui il PC è stato spento deliberatamente.

20 ore fa, lucios ha scritto:

Ma scusa: perchè il sistema operativo dovrebbe "freezare"? Se succede vuol dire che c'è un problema da risolvere.

Ma non ho capito una cosa: i 4 pc si scambiano informazioni tra di loro o lavorano separati?

Grazie per la risposta.

Il freeze è una condizione che, seppur remota, può verificarsi e devo gestirla in qualche modo. Nessun software - sistema operativo compreso - è bug free.

Link to comment
Share on other sites

20 ore fa, max.riservo ha scritto:

Forse è meglio chiarire questo aspetto : con freeze intendi il PC che va in ibernazione e/o qualche altro stato di risparmio energetico oppure cos'altro?

Con "freeze" intendo che il PC diventa completamente fermo e non risponde agli input (nè di rete, nè USB, né seriali).

Link to comment
Share on other sites

19 ore fa, acquaman ha scritto:

Ma spegnere un pc Windows disalimentandolo di botto, quanto pensi possa passare prima di vedere la fatidica schermata blu?

 

Grazie per la risposta. Quello è un problema che ricadrà in questioni legate alla manutenzione, quindi esula da questo ambito. Il requisito è riavviare il PC dopo averne decretato il freeze, ovvero l'assenza di risposta al ping e una misura di potenza consumata maggiore del consumo in standby + eventuale margine.

Link to comment
Share on other sites

19 ore fa, Livio Orsini ha scritto:

 

In genere il sistema operativo WIN dopo "X" tempo che non riconosce movimenti del mouse o pressione di tasti va in quiescenza, cioè oscura il video e sospende alcuni task. Se non viene "svegliato"entro un certo intervallo di tempo entra nello stato di congelamento, salva i dati su HD, riduce al minimo la frequenza di clock e sospende tutti i task, quindi anche le interfacce di rete sono inattive; non so se con Win10/11 sia possibile svegliarlo dando un comando sulla rete.

Quando usavo PC per certe operazioni di supervisione disabilitavo questa modalità in modo che il PC fosse sempre vivo. A quei tempi usavo Win NT, non so con Win10/11 se è ancora possibile e nemmeno come eventualmente configurarlo.

 

Se il PC si trova in questo stato, togliere brutalmente l'alimentazione e poi ridarla per provocare una ripartenza non mi sembra molto salutare. Il rischio minore è che il PC riparta in modalità provvisoria, il rischio maggiore è che, se questa operazione si ripete abbastanza di frequente, si vada anche a corrompere qualche indice dello SO.

 

Per verificare che il PC sia "sveglio" è abbastanza semplice basta fargli inviare in rete un messggio, anche solo 2 caratteri, ogni "x" secondi, se al dispositivo di sorveglianza non arriva il messaggio entro il tempo stabilito sa che il PC in questione non è in modalità attiva però, ripeto, sarebbe più opportuno evitare lo spegnimento brutale.

La ringrazio per la risposta.

 

Non è un computer Windows. Non è in quiescenza: la casistica è stata studiata e mitigata, eppure è stato richiesto di introdurre questo ulteriore controllo per ulteriore sicurezza. Il rischio che si ha nel danneggiare il PC è inferiore a quello legato al fuori servizio.

 

Non essendo esperto di PLC, ho scritto nel forum per sapere se sul mercato esistono soluzioni in grado di implementare l'algoritmo specificato sopra, ovvero un controllore in grado di leggere una potenza, di effettuare ping su un host e, a seconda delle condizioni, togliere alimentazione per qualche secondo e rimetterla. Tutto qui.

 

Ringrazio in anticipo per l'aiuto.

Edited by hrumag
Refuso
Link to comment
Share on other sites

Livio Orsini
3 ore fa, hrumag ha scritto:

Non è un computer Windows.

 

Quale SO è usato? Può anche essere che io o qualcun altro abbiamo conoscenze su quel particolare SO.

 

3 ore fa, hrumag ha scritto:

Non essendo esperto di PLC, ho scritto nel forum per sapere se sul mercato esistono soluzioni

 

Un PLC di ultima generazionen è in grado di farlo.

Con un trasuttore di corrente si misura se il PC assorbe corrente e quanta ne assorbe. Per capire se il PC risponde si può fare una connessione ethernet e inviare un comando ed attendere la risposta, oppure, come ho scritto sopra, è il PC vhe invia ciclicamente un messoggio, anche semplice, che testimonia che è nellostato ricettivo.

Link to comment
Share on other sites

16 ore fa, Livio Orsini ha scritto:

Un PLC di ultima generazionen è in grado di farlo.

Per questo avevo proposto l'uso di un bit "heart beat", perché non serve un PLC tanto evoluto, con possibilità di gestire reti, ma basta un qualsiasi PLC.

Link to comment
Share on other sites

Livio Orsini
2 minuti fa, batta ha scritto:

Per questo avevo proposto l'uso di un bit "heart beat", perché non serve un PLC tanto evoluto, con possibilità di gestire reti, ma basta un qualsiasi PLC.

 

Certo.

Però il PC deve avere un'interfaccia in grado di generare un livello adatto agli ingressi del PLC.

 

Le soluzioni sono molteplici, basta anche un semplice linea seriale RS485, ci sono piccoli PLC anche nazionali che hanno di serie analogiche e linea seriale.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...