Vai al contenuto
PLC Forum


Riavvio automatico PC in caso di freeze


hrumag

Messaggi consigliati

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 al commento
Condividi su altri siti

  • Livio Orsini locked e unlocked this discussione

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 al commento
Condividi su altri siti

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 al commento
Condividi su altri siti

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 al commento
Condividi su altri siti

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 al commento
Condividi su altri siti

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 al commento
Condividi su altri siti

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 al commento
Condividi su altri siti

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 al commento
Condividi su altri siti

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 al commento
Condividi su altri siti

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.

Modificato: da hrumag
Refuso
Link al commento
Condividi su altri siti

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 al commento
Condividi su altri siti

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 al commento
Condividi su altri siti

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 al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...