Come funziona il blocco funzione eTON in LogicLab
Home › Forum › Programmazione IEC 61131 (LogicLab) › Come funziona il blocco funzione eTON in LogicLab
- Questo topic ha 7 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 9 anni, 1 mese fa da
Sergio Bertana.
-
AutorePost
-
Ottobre 25, 2014 alle 10:51 am #35647
Roberto
PartecipanteSalve, mi sto scervellando per capire il perchè il mio programma non funziona, e forse sono venuto a capo che la l’uscita ET del blocco eTON non funziona come descritto sul manuale. Ecco cosa mi succede:
a) Attivando l’ingresso IN parte il conteggio del time impostato su PT.
b) disattivando IN prima dello scadere del tempo PT: Q non si attiva; ET si ferma (non si resetta, azzera)
c) l’ingresso IN rimane attivo fino allo scadere del time PT: Q si attiva e rimane attivo fino a che IN non diventa FALSE; ET si ferma (indica) lo stesso valore time di PT. ET non si azzera.
d) ET si azzera solo quando, al successivo utilizzo del programma, IN diventa TRUE, facendo ripartire il conteggio.Sbaglio qualcosa nell’interpretazione del manuale (Rif. Mnl151c070 pag. 39/288), e quindi nell’uso del blocchetto per il mio scopo ? Oppure effettivamente il eTON ha problemi ?
Ottobre 27, 2014 alle 11:35 am #38478Sergio Bertana
Amministratore del forumIl blocco funzione eTON funziona esattamente come hai detto tu, non capisco come tu lo voglia utilizzare. Ecco lo screenshot di un programma di esempio in funzione sul simulatore SimuLab (Ho catturato lo screenshot mentre il timer stava temporizzando ET=1470), allego il progetto sorgente (Download progetto).
Come funziona eTON, attivando l’ingresso IN (Sul fronte di attivazione) si azzera il valore di tempo trascorso (ET elapsed time) ed inizia il conteggio del tempo, raggiunto il valore definito in (PT preset time) l’uscita Q si attiva e rimane attiva fino alla disabilitazione dell’ingresso IN.
Se l’attivazione di IN ha una durata inferiore al valore di tempo definito in PT, il timer inizia a contare ma non si attiva l’uscita Q. Ed in ET troveremo il valore di tempo per il quale l’ingresso IN è rimasto attivo. Allego la stampa dell’estratto della normativa IEC 61131-3 che riporta il diagramma temporale di funzionamento dei tre tipi di timer previsti.
Ottobre 28, 2014 alle 12:48 pm #38482Roberto
PartecipanteQuello che non mi torna, e che non sono riuscito ad evidenziare nella mia precedente nota, è il fatto che il tempo ET non si resetta (azzera) quando dovrebbe come descritto nel manuale e nell’estratto della normativa allegata nel suo precedente post.
La normativa evidenzia nel secondo riquadro, che il time ET inizia il conteggio all’attivazione dell’ingresso IN, e che allo scadere del tempo, l’uscita Q si attiva, e rimane attiva fino a che l’ingresso IN non viene disattivato. La disattivazione dell’ingresso IN, oltre ad abbassare il livello logico Q, dovrebbe azzerare anche il tempo ET. Questa ultima parte è ciò che non si verifica nel mio progetto.
Nel mio caso, alla disattivazione dell’ingresso IN il tempo ET non si azzera, continuando a visualizzare il valore uguale al valore impostato in PT (dato che il tempo è stato contato per intero i due valori PT – ET sono uguali).
Il tempo ET si azzera solamente alla successiva attivazione dell’ingresso IN (ma a questo punto dovrebbe essere già zero), reiniziando un nuovo conteggio.
Ottobre 30, 2014 alle 1:29 pm #38483Sergio Bertana
Amministratore del forumNella nostra FB di eTON il valore di ET rimane settato anche al reset dell’ingresso IN. In effetti la abbiamo chiamata eTON con quella “e” che stà a significare una variante dellla TON standard. Non sò come mai ti serva azzerato il valore di ET alla discesa di IN. Ti allego un progetto (Stampa) in cui la FB non è protetta e quindi puoi agevolmente modificarla per piegarla alle tue necessità (Download progetto).
Per ottenere l’azzeramento di ET sul reset di IN devi aggiungere nel ramo della IF sul controllo di IN anche l’azzeramento di ET.
IF NOT(IN) THEN
ET:=0; (* Executing time (mS) *)
TimeBf:=SysTime; (* Time buffer *)
Q:=FALSE; (* Delayed output *)
RETURN;
END_IF;Se guardi l’FB vedrai che su riattivazione di IN ET assumerà il valore ET:=SysTime-TimeBf; ed avendo nel ramo del controllo su IN posto TimeBf:=SysTime; conteggerà il reale tempo trascorso dalla attivazione di IN.
Ottobre 31, 2014 alle 8:03 am #38487Roberto
PartecipanteGrazie mille, sempre molto disponibili ad aiutare gli utilizzatori dei vostri prodotti con molta professionalità. La mia nota era rivolta più che altro a far notare che sul manuale pdf è scritto che l’uscita ET si azzera con la disattivazione dell’ingresso IN, in disaccordo con ciò che effetivamente fa la funzione.
Dato che non ho una lunga epserienza pratica di tute le funzioni, per il loro utilizzo faccio riferimento alla spiegazione, molto dettagliata e precisa, di come impiegare al meglio tutte le caratteristiche delle tante funzioni incluse nelle librerie disponibili.
Questo mi ha fatto incorrere nella scoperta della discordanza…Marzo 3, 2016 alle 8:08 am #39429Sergio Bertana
Amministratore del forumAbbiamo rilasciato la nuova libreria eLLabStdLib_B200 con il FB eTON modificato secondo le raccomandazioni IEC, è possibile farne il download dalla pagina di LogicLab.
Marzo 17, 2016 alle 9:04 am #39459Anonimo
InattivoMi inserisco nella discussione per una domanda: è stato rilasciato un file di “changes” relativo alla nuova versione della libreria?
E, soprattutto, è compatibile con i progetti creati con la libreria precedente, la “100” ?Marzo 17, 2016 alle 9:08 am #39460Sergio Bertana
Amministratore del forumSi il FB eTON della nuova libreria funziona a livello logico esattamente come il precedente, unica differenza e che l’uscita ET si azzerra disabilitando l’ingresso IN.
Quindi potresti avere differenze di funzionamento solo se utilizzi il valore in uscita da ET per una qualche tua funzione.
-
AutorePost
- Devi essere connesso per rispondere a questo topic.