Vai al contenuto
PLC Forum


Fb41: Non Va L'azione Integrale.


FranSys

Messaggi consigliati

Spero che ci sia qualche specialista Siemens di ritorno dalle ferie (o dall'ultima fermata)! ;) Per quanto mi concerne sono stato assente per un po' a causa di alcune trasferte.

Ho un'applicazione su CPU 315 dove girano (dovrebbero girare) dieci PID per il controllo della pressione di altrettanti cilindri oleodinamici. In realtà la D è disattivata, sono solo dei PI.

Ho provato una parte del programma (un FB41 dentro all'OB35) su un cilindro e, dopo aver tarato il regolatore, tutto funzionava alla perfezione. Quindi ho completato il mio OB35 con gli altri PID e ho testato l'applicazione. Risultato: non c'è azione integrale. Il PID arriva a circa il 70% del setpoint per via proporzionale, quindi rimane dormiente in quello stato e non raggiunge il set (ovviamente il flag per l'attivazione di I è true). La banda morta è 0.

Credo che il problema dipenda dal tempo di ciclo e dal fatto che in un unico OB35 sono richiamati dieci regolatori (con uno funzionava tutto). L'OB35 è in default a 100 ms, il clock impostato sugli FB41 è 100 ms. Il TI impostato varia da 200 a 800 ms. Mi piacerebbe "vedere" dentro allo FB41 per capire com'è fatto ma non si può! :angry:

Ringrazio anticipatamente chi mi potrà aiutare.

Ciao.

Francesco

Link al commento
Condividi su altri siti


Mi piacerebbe "vedere" dentro allo FB41 per capire com'è fatto ma non si può!

Annoso problema a cui va aggiunto che, solitamente, gli algoritmi SIemens sono UCAS (Ufficio Complicazione Affari Semplici).

Io ho risolto, credo brillantemente, il problema non usando i PID SIemens. Me ne sono fatto uno uno che posso dominare perfettamente. Occupa pochissimo codice e non è UCAS :D .

Link al commento
Condividi su altri siti

Io ho risolto, credo brillantemente, il problema non usando i PID SIemens. Me ne sono fatto uno uno che posso dominare perfettamente. Occupa pochissimo codice e non è UCAS.

Livio, sono ad un passo dall'implementare anch'io il mio PID! :)

Ciò nonostante, considerato che usando altri PLC ho richiamato all'interno dello stesso programma anche 50-60 funzioni PID confezionate dal costruttore senza avere problemi, mi chiedo per quale motivo non debba riuscirci con il "PLC dei PLC" (affermazione ironica) usando, tra l'altro, una CPU che non è certamente entry level.

Mi sto augurando di sbagliare qualcosa.

Ciao.

Link al commento
Condividi su altri siti

Gabriele Corrieri

Ciao Francesco,

il mio consiglio è quello di distribuire i PID su 3 o 4 tornate guarda un po' come sei a tempi di ciclo ... ovviamente se il processo fisico è tecnicamente controllabile ogni 300 o più mS

Ciao

Link al commento
Condividi su altri siti

Avevo inserito un commento idiota forse dovuto al fatto che non leggo molto attentamente, scusatemi.

Ciao

Paolo

Modificato: da reborapaolo
Link al commento
Condividi su altri siti

il mio consiglio è quello di distribuire i PID su 3 o 4 tornate guarda un po' come sei a tempi di ciclo ... ovviamente se il processo fisico è tecnicamente controllabile ogni 300 o più mS

Nel frattempo ho dato un'occhiata alle FAQ del sito Siemens e ho sentito la loro assistenza. Effettivamente il problema dipende dal tempo di ciclo e la soluzione identificata da Gabriele è una delle ipotesi percorribili.

La pressa di cui sto parlando è molto "nervosa". Il comando dei cilindri avviene attraverso un convertitore IP 4...20 mA/0...5 bar in aria. L'IP pilota una proporzionale aria/olio che lavora convertendo 0...5/0...200 bar. Considerata la presenza di un fluido intermedio di comando (l'aria) temo che dovrò stringere i tempi per evitare eccessive pendolazioni intorno al set. Se ci fosse stata una proporzionale sull'olio con comando in 4...20 mA avrei sicuramente potuto allungare i tempi, generalmente sono più stabili.

Penso che proverò innanzitutto a ridurre il clock di richiamo dell'OB35 da 100 a 10 ms. Ne pagherò le conseguente su OB1 e blocchi dipendenti ma non dovrebbe essere un problema. Se vedo che il ciclo s'allunga troppo, cercherò di distribuire l'intero controllo su due o tre cicli macchina.

Continuo a chiedermi come sia possibile che una CPU del genere sia così lenta. Com'è noto, lavoro principalmente su Omron e Schneider Electric. Vi assicuro che su macchine tipo il CJ1/CS1 (ma anche il C200H) e su Premium, ho caricato "carrellate" di PID uno dietro l'altro senza avere problemi.

Una domanda: presumo che non riuscirò a cambiare "al volo" il tempo dell'interrupt di OB35, vero? La linea è già in produzione e volevo evitare di mettere in stop la CPU...

Grazie a Rguaresc per il sorgente di FB41. L'ho stampato e me lo sono portato a casa (letture serali). ;)

Ciao.

Link al commento
Condividi su altri siti

presumo che non riuscirò a cambiare "al volo" il tempo dell'interrupt di OB35, vero?

Esatto: fa parte della config hw e quindi sei obbligato a mandare in STOP il PLC

Ciao, Emanuele

Link al commento
Condividi su altri siti

E' andata a finire così:

- clock dell'OB35 a 10 ms;

- counter da 1 a 10 per richiamare gli FB41 uno per volta;

- tempo di ciclo intorno ai 250 ms (il programma è piuttosto grande);

- l'applicazione funziona, precisione nell'ordine dei 10 kPa (0,1 bar).

Ho l'impressione che il sistema perda parecchio tempo nel caricare i DB delle multistanze... come minimo 5-10 ms ciascuna. Ma è solo un'impressione... non ho avuto il tempo materiale di fare verifiche approfondite (cliente col fiato sul collo).

Ciao.

Link al commento
Condividi su altri siti

  • 2 months later...

Le multiistanze hanno come effetto collaterale che ogni accesso ai dati statici avvenga in modo indiretto tramite il registro AR2 e quindi piuttosto lento.

Se cerchi la massima velocità, utilizza dati temporanei ove possibile e merker per i dati statici. (non sarà una bellezza ma se serve velocità...)

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