FranSys Inserito: 30 agosto 2005 Segnala Share Inserito: 30 agosto 2005 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ò! Ringrazio anticipatamente chi mi potrà aiutare.Ciao.Francesco Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 30 agosto 2005 Segnala Share Inserita: 30 agosto 2005 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 . Link al commento Condividi su altri siti More sharing options...
FranSys Inserita: 30 agosto 2005 Autore Segnala Share Inserita: 30 agosto 2005 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 More sharing options...
Gabriele Corrieri Inserita: 30 agosto 2005 Segnala Share Inserita: 30 agosto 2005 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ù mSCiao Link al commento Condividi su altri siti More sharing options...
rguaresc Inserita: 30 agosto 2005 Segnala Share Inserita: 30 agosto 2005 A quanto pare l'FB41 e' stato scritto in SCL. Da qui FB41 puoi scaricare il compilato AWL. Link al commento Condividi su altri siti More sharing options...
reborapaolo Inserita: 1 settembre 2005 Segnala Share Inserita: 1 settembre 2005 (modificato) Avevo inserito un commento idiota forse dovuto al fatto che non leggo molto attentamente, scusatemi. Ciao Paolo Modificato: 1 settembre 2005 da reborapaolo Link al commento Condividi su altri siti More sharing options...
FranSys Inserita: 1 settembre 2005 Autore Segnala Share Inserita: 1 settembre 2005 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ù mSNel 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 More sharing options...
emanuele.croci Inserita: 1 settembre 2005 Segnala Share Inserita: 1 settembre 2005 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 PLCCiao, Emanuele Link al commento Condividi su altri siti More sharing options...
FranSys Inserita: 5 settembre 2005 Autore Segnala Share Inserita: 5 settembre 2005 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 More sharing options...
RAMSON Inserita: 19 novembre 2005 Segnala Share Inserita: 19 novembre 2005 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 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