Jump to content
PLC Forum


villa31

Tia V15 timer si bloccano

Recommended Posts

villa31

Buongiorno, ho iniziato a usare la V15 ho riscontrato parecchi problemi con i timer TON all'avvio della CPU se il timer è attivo, si blocca... Avete riscontrato problemi simili? 

Share this post


Link to post
Share on other sites

batta

I Timer mi hanno sempre dato problemi. La prima cosa da fare, è aggiornare il firmware all'ultima versione (che dovrebbe essere 2.6.1).
Comunque, inspiegabilmente, i Timer Siemens, per avviarsi, vogliono vedere un fronte di salita, e non semplicemente lo stato alto sull'ingresso, e questo, a volte, causa problemi.
Per esempio, se il DB del timer viene reinizializzato (magari perché è richiamato come multiistanza, o perché all'interno di un DB dedicato ai timer che viene modificato), il timer non si avvia se lo stato dell'ingresso è già alto.
Io mi trovo bene a lavorare con i PLC Siemens, ma che i tedeschi non siano capaci, dopo anni, di far funzionare correttamente un timer, trovo sia una cosa a dir poco vergognosa.
Per risolvere questi problemi con i timer, mi sono creato una mia funzione, ed utilizzo i timer Siemens solo in casi molto rari.

Share this post


Link to post
Share on other sites
leleviola

Scusami batta ma detto da te mi fa pensar non male di più, speriamo bene, non voglio aggiungere altro

Share this post


Link to post
Share on other sites
Adr1

aggiungi un bit di first scan prima del timer, mi sembra che avevamo risolto così.

Share this post


Link to post
Share on other sites
Operational Amplifier

Ho anche riscontrato che se dichiari un timer e non dichiari la sua uscita Q nel programma il Timer non Funziona...🙄 

Share this post


Link to post
Share on other sites
batta
1 ora fa, Adr1 scrisse:

aggiungi un bit di first scan prima del timer, mi sembra che avevamo risolto così.

Sì, in questo modo si risolve, ma è comunque un ripiego per risolvere il funzionamento zoppicante di un banalissimo timer.

 

 

1 ora fa, Operational Amplifier scrisse:

Ho anche riscontrato che se dichiari un timer e non dichiari la sua uscita Q nel programma il Timer non Funziona...

Questo non rientra nei "malfunzionamenti", è chiaramente specificato nella guida. E poi, se non utilizzo l'uscita, cosa richiamo il timer a fare?

 

Anche il fatto che serva il fronte sull'ingresso è descritto nella guida. Però di solito non ci si aspetta che un timer non venga avviato.
Ma, la cosa più grave, è che il timer rischia di non ripartire se viene reinizializzato il DB di istanza dove viene dichiarato il timer.

Modifichi una FB dove c'erano dichiarate multiistanze dei timer, e ti trovi con le uscite dei timer basse e i timer che non contano se non viene visto un fronte sull'ingresso.
Definire questa cosa scandalosa, è solo per voler essere teneri.

Share this post


Link to post
Share on other sites
Operational Amplifier
Quote
3 ore fa, batta scrisse:

Questo non rientra nei "malfunzionamenti", è chiaramente specificato nella guida. E poi, se non utilizzo l'uscita, cosa richiamo il timer a fare?

 

Può anche essere specificato nella guida ma mi aspetto che se creo un'istanza del Timer ed imposto a TRUE l'ingresso il Timer conti a prescindere dall'utilizzo dell'uscita che è lo stadio finale.

Edited by Operational Amplifier

Share this post


Link to post
Share on other sites
cdc

Anche noi cerchiamo di usare il meno possibile i timer.

Ci siamo scritti una FC (Delay ON e Delay OFF) che utilizza dei contatori con il tempo ciclo PLC per incrementare il conteggio.

Forse non sarà precisissima, ma per noi va benissimo.

 

Ciao

Share this post


Link to post
Share on other sites
batta
3 ore fa, cdc scrisse:

Ci siamo scritti una FC (Delay ON e Delay OFF) che utilizza dei contatori con il tempo ciclo PLC per incrementare il conteggio.

Stessa cosa che ho fatto io.
Rilevo il tempo di scansione con TIME_TCK, scarto valori non validi quando TIME_TCK va in overflow (ogni 2147483647 ms), e devo dire che la precisione mi pare assolutamente sovrapponibile a quella dei timer di sistema.
Ho inserito anche la possibilità di congelare il conteggio, e creato anche una funzione con tempi differenti per il ritardo della commutazione da off a on e da on a off.
Questa la uso spesso per filtrare segnali da fotocellule o da sensori.

Share this post


Link to post
Share on other sites
drugo66

Ciao,

onestamente non capisco il problema ...

Creo sempre una variabile "PLC in run" all'avvio della scansione della CPU, che mi serve anche per altro, ed eventualmente taglio gli ingressi dei timer che utilizzo immediatamente all'avvio con quel bit, ben pochi a dire il vero; la maggior parte degli altri timer si avviano con le sicurezze abilitate, quindi il problema non l'ho mai avuto.

Per il resto penso che siamo noi utilizzatori a doverci adattare al funzionamento delle varie istruzioni e non viceversa; spesso si smadonna come pochi per far funzionare una routine, poi si apre il manuale ed è tutto lì', nero su bianco.

Proprio ieri mi è capitato che non si avviava un timer all'interno di una FB, poi, dopo alcuni minuti di "imbarazzo", ho visto che nelll'altra esecuzione dello stesso FB avevo usato lo stesso DB di istanza ...

Share this post


Link to post
Share on other sites
batta
8 ore fa, drugo66 scrisse:

penso che siamo noi utilizzatori a doverci adattare al funzionamento delle varie istruzioni e non viceversa

Sì, ma le istruzioni devono funzionare bene.
Immagina solo di dover ritardare il segnale di un sensore, quindi con condizioni non legate a sicurezze o precedenti comandi di marcia.
Accendi il PLC. Il segnale del sensore è alto. Il timer non conta, e l'uscita del timer rimane bassa.
Ok, lo sai, e metti un bit di prima scansione sull'ingresso del timer. Già parliamo però di una pezza, non della vera soluzione del problema.

Ma, come spiegato, ancora più grave: fai una FB; dentro ci metti, come multiistanza, uno o più timer; fai una modifica alle variabili della FB; trasferisci la modifica, ed il DB di istanza viene reinizializzato; se ci sono timer che avevano già completato il conteggio e con l'ingresso già alto, dopo la modifica ti troverai con il timer che non conta e l'uscita del timer bassa.
Non riesco a pensare a questo come "normale comportamento della funzione Timer", al quale noi ci dovremmo adattare. Per me si tratta di un comportamento anomalo della funzione Timer, che i tedeschi dovrebbero aver già corretto da anni, e che invece continuiamo a trascinarci dietro.
Sul Forum Siemens ti consigliano di non dichiarare i timer come multiistanza, ma di creare una struttura di timer da dichiarare come IN/OUT, ed appoggiare quindi i timer ad un DB esterno alla funzione. Anche questa però è sempre una pezza, non il giusto modo di programmare. E, se modifichi la struttura dei timer, e quindi reinizializzi il DB dove sono dichiarati i timer, il problema, comunque, si ripresenta.
Drugo, tu sai che io lavoro molto volentieri con Siemens, ma questa dei Timer è una stronzata che non trova scusanti.

Share this post


Link to post
Share on other sites
ken

i timer vecchio stile invece? ci sono ancora e funzionano come prima. perchè no usarli?

Share this post


Link to post
Share on other sites
batta

Ci sono almeno due motivi:

1 - non rispecchiano il linguaggio standard. Ci sono ancora più che altro per compatibilità con i vecchi programmi.

2 - non si possono usare come multiistanza. Per utilizzarli in una FB da richiamare più volte, dovresti dichiararli uno per uno come IN/OUT.

Share this post


Link to post
Share on other sites
michele.berlese

Se si usano FB TON o TOF è necessario porre attenzione, oltre alla questione del fronte, al valore del preset. Se il PT è a zero, l'uscita Q rimane a zero in quanto PT a zero viene interpretato come init del timer. Non aspettatevi che con PT = 0 ms, Q = IN. 

Share this post


Link to post
Share on other sites
villa31
il 21/7/2019 at 08:51 , drugo66 scrisse:

Ciao,

onestamente non capisco il problema ...

Creo sempre una variabile "PLC in run" all'avvio della scansione della CPU, che mi serve anche per altro, ed eventualmente taglio gli ingressi dei timer che utilizzo immediatamente all'avvio con quel bit, ben pochi a dire il vero; la maggior parte degli altri timer si avviano con le sicurezze abilitate, quindi il problema non l'ho mai avuto.

Per il resto penso che siamo noi utilizzatori a doverci adattare al funzionamento delle varie istruzioni e non viceversa; spesso si smadonna come pochi per far funzionare una routine, poi si apre il manuale ed è tutto lì', nero su bianco.

Proprio ieri mi è capitato che non si avviava un timer all'interno di una FB, poi, dopo alcuni minuti di "imbarazzo", ho visto che nelll'altra esecuzione dello stesso FB avevo usato lo stesso DB di istanza ...

Si ci dobbiamo adattare, ma è anche vero che il funzionamento di un timer deve essere una cosa standard... Inoltre il ton sulla v14 funzionava bene 

Share this post


Link to post
Share on other sites
Nicola Carlotto

Tante volte alle prime armi si tende a creare logiche ladder copiando il timer ton ed incollandoli   su vari rami del programma, per poi vedere che non si attivano.

Lo sbaglio sta' proprio qua copiando ed incollando senza creare un nuovo timer.

ciao

Share this post


Link to post
Share on other sites
drugo66

Nicola, hai ragione, è l'errore più classico.

Ma ha anche ragione Batta: fino al mio post precedente non mi era mai capitato, ma, guarda i casi della vita, mi è successo proprio in settimana; meno male che mi sono ricordato della sua risposta e sono riuscito a porvi rimedio senza ammattire più di tanto.

Quindi, grazie grande Batta.

Share this post


Link to post
Share on other sites
frussosw

Lavoro con SIemens e con altri PLC da una vita (da S5 in poi ..) ma questa dei timer su TIA non avevo ancora avuto modo di sperimentarla.

Forse è per questo motivo che in ditte come la IMA (dove ho lavorato di recente) i software su PLC Siemens con TIA portal utilizzano come timer semplici funzioni scritte in SCL

e richiamati da un OB con interrupt a tempo.

 

.. se è così allora dire che con TIA  Siemens ha fatto 2 passi avanti e 3 indietro.. rispetto al ad altro costruttori di PLC.

E' inammissibile che la struttura base di un PLC presenti tali problemi ...

 

.. personalmente sarei un po stanco di utilizzare Siemens e soprattutto TIA portal da un po di tempo 

Speriamo che si accorgano di quanta gente si lamenta e risolvano tanti problemi su questo  TIA portal.

 

 

Share this post


Link to post
Share on other sites
batta
7 ore fa, frussosw scrisse:

.. se è così allora dire che con TIA  Siemens ha fatto 2 passi avanti e 3 indietro.. rispetto al ad altro costruttori di PLC.

Adesso non esageriamo. Come già detto, trovo il problema dei timer una cosa scandalosa, ma dire che ha fatto passi indietro, non ci sta proprio.
Anche perché sono abbastanza sicuro che questo problema non sia del TIA V15, e nemmeno delle CPU 1200/1500, ma era presente già nel S7-300.
Il fatto è che, con S7-300, molto raramente si usavano le FB TON/TOF.
Cosa che, in un certo senso, rende il fatto ancora più scandaloso: in oltre 20 anni i tedeschi non hanno ancora messo a punto una funzione Timer come si deve.
poi, comunque, il TIA ha molti altri pregi.

 

7 ore fa, frussosw scrisse:

Speriamo che si accorgano di quanta gente si lamenta e risolvano tanti problemi su questo  TIA portal.

Forse perché non sai quanti si lamentano anche degli altri sistemi di sviluppo.

Share this post


Link to post
Share on other sites
leleviola

No non hanno fatto passi indietro ma è davvero scandaloso, meglio farsi timer con contatore di clock, dopo 40 anni dai primi PG è da volarli dalla finestra,

io non tollero situazioni del genere, con tutto quello che fanno pagare una licenza, che vi pongano rimedio altrimenti qualcuno la chiede gratis...

Edited by leleviola

Share this post


Link to post
Share on other sites
Cesare Nicola
il 19/7/2019 at 17:25 , batta scrisse:

Questo non rientra nei "malfunzionamenti", è chiaramente specificato nella guida. E poi, se non utilizzo l'uscita, cosa richiamo il timer a fare?

Credo si intenda con "non dichiarare l'uscita" il non collegarla direttamente al timer, ma utilizzarla altrove puntando a "NomeTimer.Q". Cioè, così:
Timer.png.b6fc4627d785e04c2e71111fef0881e1.png

 

E' capitato, ma non sempre, anzi raramente, e senza che io abbia capito il perché, che senza uscita "attaccata", il timer non funzioni; peccato, perché personalmente preferisco accedere all'uscita "Q".

Share this post


Link to post
Share on other sites
leleviola
7 minuti fa, Cesare Nicola scrisse:

E' capitato, ma non sempre, anzi raramente, e senza che io abbia capito il perché, che senza uscita "attaccata", il timer non funzioni; peccato, perché personalmente preferisco accedere all'uscita "Q".

lo preferisco anch'io, anche perchè saresti obbligato a crearti un ulteriore uscita attaccata all'uscita del timer per poi utilizzare i contatti della nuova uscita per utilizzare la funzione di temporizzazione, mi sembra più logico fare infatti come dici tu e da quando in quando non è possibile fare ciò su qualsiasi altra unità programmabile? Non voglio aggiungere altro altrimenti divento 😬

Share this post


Link to post
Share on other sites
Cesare Nicola
51 minuti fa, leleviola scrisse:

saresti obbligato a crearti un ulteriore uscita attaccata all'uscita del timer per poi utilizzare i contatti della nuova uscita per utilizzare la funzione di temporizzazione

L'escamotage potrebbe essere dedicare un merker da attaccare a tutti i timer, uno per tutti, con un simbolo tipo "merker che non serve a nulla" o "che ti venisse un accidente". Quel merker non lo usi mai e continui col "NomeTimer.Q". Brutto, ma dovrebbe funzionare.

Share this post


Link to post
Share on other sites
acquaman

Funzionano entrambi i casi senza distinzione.

 

Share this post


Link to post
Share on other sites
Cesare Nicola
6 minuti fa, acquaman scrisse:

Funzionano entrambi i casi senza distinzione.

 

Mah, una volta ricordo di aver avuto qualche problema con la prima soluzione, senza essere riuscito a capire esattamente di cosa si trattasse (soluzione che sto continuando ad usare, comunque). Il titolo del segmento che ho dato "NON FUNZIONA", è fuorviante; funziona eccome, ma a volte potrebbe esserci qualche problema. Se ne è già parlato anche in passato, per esempio qui:

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...