Problemi nell'uso dei timer

Timer e variabili dei DB associati

Nell'utilizzo dei timer e delle variabili ad essi associate nei rispettivi blocchi dati (DB) può capitare di osservare un comportamento apparentemente sbagliato e imprevisto. Consideriamo ad esempio il programma in figura:

comportamento imprevisto del timer

Il timer TON è abilitato da un contatto normalmente chiuso comandato dalla variabile Q del blocco dati del timer. Questa variabile assume il valore logico 1 quando il timer esaurisce il conteggio quindi il timer risulta inizialmente abilitato. Quanto il tempo trascorso ET raggiunge il tempo preimpostato PV l'uscita viene attivata e sarebbe logico aspettarsi:

Questo invece non avviene: il timer ricomincia il conteggio e l'uscita non viene settata.

Questa situazione si verifica perché la variabile Q del DB del timer viene aggiornata più volte nello stesso ciclo e quando si arriva al secondo segmento il suo valore, che da 0 è passato a 1, è già tornato a 0.

Questo comportamento è descritto nel manuale di sistema alla voce “Programmazione del temporizzatore” e, nonostante produca un comportamento imprevisto, rispecchia le specifiche dei timer IEC standard (non è un bug). Per evitare questo tipo di comportamento è sufficiente utilizzare l'uscita del timer per pilotare una bobina e associare i contatti a questa bobina, come in figura:

comportamento normale del timer