nwzah Inserito: 6 agosto 2015 Segnala Share Inserito: 6 agosto 2015 Ciao Forum, speriamo che non tutti siano in ferie .... e chi lo è ... buone ferie !!! PLC S7-224 Avrei bisogno di un consiglio su che metodo applicare per la gestione combinata di 100 livelli ( letti in multiplex ) e 10 pompe da comandare. Dal mio HMI l'utente ha visualizzate 125 vasche, vasca per vasca dichiara da che pompa dovrà essere servita, naturalmente ogni vasca ha un suo livello che comanderà la pompa impostata. Quindi se non sbaglio ho 1250 combinazioni diverse. Come mi consigliate di gestire queste combinazioni ? Grazie 1000 Mauro Link al commento Condividi su altri siti More sharing options...
nwzah Inserita: 6 agosto 2015 Autore Segnala Share Inserita: 6 agosto 2015 Mi rispondo da solo, con una soluzione pensata, cosi la potete analizzare e magari migliorarla. Imputo un "peso" ad ogni pompa P1 ==>100 P2==>200 P10 ==>1000 Lo stesso ai livelli : L1 ==>1 L2 ==>2 L15==>15 L100 ==>100 Faccio la somma dei due pesi in base alla selezione dell'operatore p.e. Pompa 6 Livello 32 ( 600+ 32 ) 632 Applico un confronto 101<XX<200 ... ATTIVO pompa 1 201<XX<300 ... ATTIVO pompa 2 . . . 1001<XX<1100 ... ATTIVO pompa 10 Nelle esempio attivo pompa 6 .... Che ne pensate ... controindicazioni ... ??? Grazie Link al commento Condividi su altri siti More sharing options...
Marcoso Inserita: 7 agosto 2015 Segnala Share Inserita: 7 agosto 2015 Ciao il tuo problema mi intriga molto ma non capisco cosa dovrà fare esattamente il sistema hai 125 vasche e solo 100 livelli hai 10 pompe, l'operatore potrà scegliere una pompa da combinare a una vasca immagino ci saranno delle valvole o farà delle operazioni manuali l'operatore? Comunque sia io cercherei di fare una del genere Per ogni vasca farei una Db (Dbvasca1, Dbvasca2............) strutturerei la Db piu' o meno cosi' DbvascaX Word1(Ingressi) bit 0 (stato livello) bit 1 (scorta) bit 2 (scorta) Link al commento Condividi su altri siti More sharing options...
Marcoso Inserita: 7 agosto 2015 Segnala Share Inserita: 7 agosto 2015 La cosa mi intriga, ma non hai spiegato molte cose es hai 125 vasche, 100 livelli e 10 pompe, l'operatore puo' legare ad ogni vasca una delle 10 pompe non descrivi la logica di funzionamento. Come struttura di massima farei una cosa del genere Una db per ogni vasca La db la farei cosi' Word1 (per eventuali settaggi per la vasca) Bit0 vasca che lavora con o senza i livelli Bit1 vasca abilitata Bit2 scorta ---- Bit15 scorta Word2 (ingressi, se appoggi i tuoi ingressi su una db poi sul touch puoi sempre visualizzare lo stato dei livelli ) Bit 0 stato livello Bit 1 scorta ---- Bit 2 scorta Word3 (qui appoggerei i bit bit che mi servono per la logica di funzionamento) Word4 (pompa selezionata da touch per la vasca) (se 0 nessuna pompa, se 1 pompa1,se 2 pompa2, se maggiore del numero max di pompe lo ributti a 0 da programma) Word5 (uscite) Bit0 richiesta marcia generale Bit1 richiesta marcia pompa1 (se in word 4 c'e 1, e la logica di funz richiede la marcia della pompa) Bit2 richiesta marcia pompa2 (se in word 4 c'e 2, e la logica di funz richiede la marcia della pompa) ---- Bit15 scorta A questo punto farei un Fb o Fc a cui far macinare le mie Db ciclicamente tu dici che hai farai un multiplexing per cui potresti legare il giro delle db al giro del multiplexing Quando hai elaborato tutte le Db, fai un un word-or di tutte le word5 di ogni Dbvasca nella word avrai il il Bit 1 true se una qualsiasi vasca richiede la partenza della pompa1 il Bit 2 true se una qualsiasi vasca richiede la partenza della pompa2 etc etc In questo modo usi un solo Fb o Fc per tutte le vasche, se un domani devi fare una modifica ci metti un secondo, eviti di fare mille copia incolla, va fatta bene la parte di controllo del completamento del ciclo di scansione in prima di attivare le uscite es quando si riaccende il plc magari sarebbe bene assicurarsi di aver fatto grare tutte le db onde evitare di far partire l'impianto con dati non aggiornati Non conosco molto siemens ma sono sicuro che un modo per far girare piu' db su un solo fc c'e spero di non aver detto stupidaggini e di averti dato qualche idea su come procedere, potrei prepararti qualcosa giusto per il gusto di farlo, ma io uso omron, e non saprei come fare per darti un codice che puoi veder girare, conosci CodeSys? è a scrocco basta registrarsi. Link al commento Condividi su altri siti More sharing options...
nwzah Inserita: 10 agosto 2015 Autore Segnala Share Inserita: 10 agosto 2015 Grazie Marcoso, la logica è molto semplice, ogni vasca ha il proprio livello ( 100 livelli ), quando il livello chiama, fa partire la pompa che l'operatore ha settato per quella vasca. Quando la vasca è piena la pompa si ferma. Codesys lo conosco più di Siemens, uso di solito Schneider, ma purtroppo sono obbligato ad usare una cpu del cliente. Se mi giri il codice me lo studio e provo a portarlo sul 200 ... Grazie 1000 Mauro Link al commento Condividi su altri siti More sharing options...
attiliovolpe Inserita: 26 novembre 2015 Segnala Share Inserita: 26 novembre 2015 Scusa Mauro... Il finale?Hai risolto il problema?Com'è andata? Link al commento Condividi su altri siti More sharing options...
nwzah Inserita: 27 febbraio 2016 Autore Segnala Share Inserita: 27 febbraio 2016 Ciao Attilio, problema risolto, con db e puntatori per ogni pompa .... aggiorno ogni singolo DB a seguito della chiamata dei forni, ed interrgoando il DB comando l'uscita della pompa relativa. Il programma mi occupa l'80% delle risorse del PLC, considerando che il cliente mi ha dato l'HD con il quale ho dovuto fare un multiplex per leggermi tutti i gallegiani, ho avuto seri problemi con il WD per superamento del tempo ciclo .... un pò un agonia per il rapporto fra la quantità I/O e la potenza dell HW .... però adesso è li che funziona buono buono senza problemi e senza blocchi. Mauro Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 27 febbraio 2016 Segnala Share Inserita: 27 febbraio 2016 meglio tardi che mai 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