Vai al contenuto
PLC Forum


Esecuzione "strana" FUB da 1200 a 1500


ETR

Messaggi consigliati

Ciao a tutti. Chiedo eventuali delucidazioni in merito a un piccolo ma fastidioso problema che ho riscontrato in questi giorni, su un impianto con una 1512F.

 

Il codice, prevedeva una funzione, trita e ritrita, sviluppata su dei 1200 (dal 1212 al 1215) per la gestione del comando di valvole a 3 punti da segnale 0:100. Blocco adattato da precedenti blocchi B&R, ciclato a 300 ms in coda sempre ai blocchi PID di riferimento (per la maggior parte sempre di temperatura).

 

Il blocco è abbastanza grezzo, per cui consta semplicemente di un bilanciatore tra il riferimento ed un riferimento virtuale, più una serie di opzioni, figlie della trentennale esperienza sui termoregolatori con uscita servomotore.

 

Con il 1500, però non c'è stato verso di farlo funzionare a parità di codice. Dopo una serie di aggiustamenti, banali, mi sono arreso, quando non sono riuscito a capire il perché l'uscita digitale di incremento/decremento, non venisse attivata in uscita al blocco (contenta in un FC), quando le funzioni di comparazione interne al blocco (FB) invece venissero invece attivate.

 

L'FB l'ho provato istanziato e poi anche con dichiarazione diretta, ma a quanto ho potuto appurare (mia supposizione), se il valore di riferimento, variava con una velocità, chiamiamola limite, il mio comparatore bilanciatore, pur avendo il RLC corretto, non generava il comando (apre o chiude che sia).

 

Solo se questa variazione avveniva, "lentamente", come per esempio con il comando manuale, allora il blocco rispondeva come prassi.

 

La soluzione è stata anche migliore del blocco originale, perché ho sostituito le mie poche decine di righe con due blocchi LGF (una rampa/slope limiter ed un comparatore), risolvendo il problema e ottenendo anche un blocco più "elegante" ed ordinato.

 

Ma mi rimane la curiosità, al netto di ogni riga di codice del blocco originale, del perché sul 1200 cicli e su questo 1500, no.

 

I blocchi del 1200, funzionando dal TIA 15 al 18. Questo impianto è stato sviluppato con il 18 e l'ultimo 1200 con il famigerato blocco lavora anch'esso con la medesima versione.

 

Buona giornata a tutti.

 

Ennio

 

 

Link al commento
Condividi su altri siti


Non ci dovrebbero essere differenze.
Non so che dire, l'unica idea (banale) che mi viene in mente, è che possa dipendere dal tempo di ciclo della CPU ma, ovviamente, è tutto da verificare.

Link al commento
Condividi su altri siti

Ciao Batta, segnalo che ho provato a lanciare un trace proprio in concomitanza del comportamento anomalo e proprio con quello ho notato che nel mentre il comparatore che lavorava in abbinamento al bilanciatore (semplicemente un aggiungi, togli con soglia di attivazione disattivazione), perdeva sostanzialmente l'azione di comando delle uscite bool, come se l'aggiornamento del valore non fosse coordinato con RLC del comparatore.

 

Anche io ho pensato ad un mio errore sulle gestioni dei tempi, comunque una qualsiasi cosa imputabile alla mia imperizia, ma sostanzialmente la domanda mi si ribalta in maniera inversa del perché sulle unità più piccole nulla si sia manifestato e continui a non notarlo.

 

Proverò alla prima occasione a implementare il nuovo blocco anche sulle 1200 per verificare se via siano delle variazioni nei comportamenti del processo, per poter tentare di fare una sorta di reverse engineering.

 

Comunque ho perso più tempo a cercare di capire la natura del problema che a risolverlo.

 

Buona giornata

 

Ennio

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...