ETR Inserito: 10 settembre Segnala Share Inserito: 10 settembre 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 More sharing options...
batta Inserita: 10 settembre Segnala Share Inserita: 10 settembre 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 More sharing options...
ETR Inserita: 10 settembre Autore Segnala Share Inserita: 10 settembre 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 More sharing options...
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora