La soluzione più immediata è più semplice che mi viene in mente è di utilizzare la FB SysIPReach che esegue un ping verso un determinato indirizzo IP. Definendo come indirizzo IP quello del pannello operatore avremo la condizione di Done solo se il pannello è raggiungibile (Screenshot). Il test di ping viene seguito circa ogni 25 Secondi pertanto l’informazione di terminale scollegato si avrà nel caso peggiore con questo ritardo.
Un’altra soluzione è di attivare un trasferimento dati ciclico dal terminale al PLC, esempio trasferendo il valore di LB 0 del terminale sulla variabile BOOL DB 100.16 (Screenshot). Ipotizzando che la variabile LB 0 del terminale sia TRUE, sul PLC puoi controllare se la DB 100.16 è TRUE azzeri un timer di 2 secondi poi la metti FALSE. Nel caso manchi la connessione dopo 2 secondi non settandosi più a TRUE la variabile il timer và in timeout.
Lato HMI per il test se il PLC è connesso si può verificare lo stato del bit LB-10100 PLC 4 status (ethernet), il bit è attivo se il PLC è connesso. Esistono bit specifici per tutti i possibili PLC configurati.