Vai al contenuto
PLC Forum


Alternanza Di 2 Pompe


BlackDragon

Messaggi consigliati

Ciao a tutti,
sono un principiante nel mondo dei PLC. Vorrei imparare a programmare questi gioiellini. Possiedo uno starter kit S7-200. Sto cercando di eseguire un programma che mi alterni il funzionamento di due pompe (classico). Ma non riesco a capire come impostare la logica, tale che avvii la pompa che ha lavorato meno. Mi potete dare qualche aiuto?

Ps: se potete indicarmi qualche link dove trovare problemi come questo appena descritto … grazie mille!

Link al commento
Condividi su altri siti


Ma non riesco a capire come impostare la logica, tale che avvii la pompa che ha lavorato meno...
Mi sa che ci sara sempre una pompa che lavorerà meno dell altra se non lavorano insieme di solito si danno dei tempi come se fosse un semplice orologio a commutare la funzione...ad esempio 24 ore una e poi l'altra... io non sono d'accordo a questo tipo di funzionamento...se devono lavorare 24 ore al giorno...preferisco avere una pompa che lavora sempre e l altra farla andare solo quando scade il tempo per la manutenzione della prima...oppure viene segnalata la rottura della stessa ad esempio con un sensore di portata...cosi come si ferma scambia sull'altra... se poi ci sono dei tempi fissi che determinano l arresto per necessita di lavorazione allora puoi fare tranquillamente il ciclo alternato puoi usare la funzione dei timer ma tutto dipende da quando devono lavorare...

Link al commento
Condividi su altri siti

Forse mi sono espresso male... L'ipotetica situazione è questa: due pompe in parallelo che devono riempire un serbatoio, quando in quest’ultimo il livello del liquido raggiunge un livello di minimo. Al raggiungimento di tale quota si aziona una pompa che ripristina il livello, es. pompa n.1. Al verificarsi nuovamente dell'episodio, non deve partire più partire la pompa n.1, bensì la pompa n.2. Lo scoglio per me è far capire al PLC di dover azionare una pompa piuttosto che l’altra.

Link al commento
Condividi su altri siti

La cosa più semplice tenere in memoria lo stato delle pompe all'ultimo avviamento. Per esempio se comandi la pompa 1 metterai in memoria 1 = on e 2 = off. Ogni volta che devi avviare una pompa neghi lo stato memorizzato, memorizzi i nuovi stati e metti come uscita per il comando pompe il nuovo stato.

Link al commento
Condividi su altri siti

Allora puoi usare l impulso del galleggiante/sensore con la funzione set e reset solo sulla prima pompa...con i merker...userai i contatti negati per azionare l altra in modo che all inizio parte la prima,poi quando tocca il micro si resetta e parte l altra...ovviamente l arresto sara il comune per entrambi...credo che ci sara anche il micro di arresto per il livello max...

Link al commento
Condividi su altri siti

Grazie per le Vs. risposte. “Credo” che la risp. del Sig. Livio sia la più semplice... ma come menzionavo all'inizio sono un principiante e non ho la più pallida idea di come mettere in memoria lo stato della pompa. Mi potete dare qualche spunto o rimandarmi alla funzione che permette di fare ciò. Grazie.

Link al commento
Condividi su altri siti

Quella della semplice alternanza ad ogni avvio è la strada più semplice.

Talvolta però le pompe non solo si alternano, ma lavorano anche insieme. Esempio: parte una pompa; se entro un certo tempo non è riuscita a ripristinare il livello, parte anche la seconda pompa.

Oppure ci sono casi in cui una pompa può venire esclusa perché guasta o per manutenzione.

La semplice alternanza potrebbe non garantire tempi di lavoro equilibrati.

Per questo io preferisco, come già spiegato in altre discussioni, contare il tempo di lavoro delle due (o più) pompe, e far partire prima quella che ha lavorato meno.

Il codice da scrivere è poco di più, ma il risultato è migliore, soprattutto se il numero di pompe aumenta.

Link al commento
Condividi su altri siti

Ok ci provo, anche se per me è dura compilare un programma così articolato. Ad ogni modo devo pur cominciare a cozzare contro qualcosa. Grazie per l'aiuto.

Link al commento
Condividi su altri siti

Ciao Batta ma quindi il tuo esempio prevede dei temporizzatori che partono insieme alla pompa? quanti secondi si riescono a far contare in una s7200?ovviamente lo scambio avviene con dei confronti per capire chi lavora di meno? e cosi facendo puoi prevedere che arrivato a x time si ferma per la manutenzione programmata? l idea mi piace...

Link al commento
Condividi su altri siti

quanti secondi si riescono a far contare in una s7200?

Ricordi l'interrupt a tempo fatto per il posizionatore dell'antenna? Puoi usare qualche cosa di simile. Lo programmi per 250 ms, ad ogni interruzzione ti limiti a decrementare un contatore precaricato a 240, che corrisponde ad un minuto che mi sembra la risoluzione corretta per memorizzare il tempo di funzionamento della pompa. Quando il contatore raggiunge lo 0 incrementi di 1 il contaminuti della pompa che sta lavorando e ricarichi il contatore dei 1/4 di secondo. In questo modo la sub di interrupt esegue pochissime istruzioni.

Quando devi comandare la marcia di una pompa fai il confrnto tra i due contaminuti e fai partire quella con il valore più basso.

Se non hai bisogno di totalizzare il tempo di funzionamento delle pompe ti basta solo 1 byte per ogni contatore.

Link al commento
Condividi su altri siti

quanti secondi si riescono a far contare in una s7200?

Se cerchi le altre discussioni sull'argomento, vedi che io sono abituato a contare il tempo di funzionamento semplicemente incrementando una DWORD ogni secondo.

Con una Doppia Word arrivi a contare fino a 2147483647 secondi (il doppio se non si usa il segno), che corrispondono a circa 68 anni di funzionamento continuo 24 su 24, 365 giorni all'anno.

Più che sufficiente, credo, per gestire qualsiasi tipo di pompa.

Link al commento
Condividi su altri siti

Ciao,

grazie a tutti per i suggerimenti. Stavo proprio seguendo questa soluzione. Infatti ho impostato un contatore per le due pompe, dopo di che dovrei fare avviare quella che ha lavorato meno. Però sto avendo problemi su come far avviare la pompa dopo aver realizzato il confronto.

Link al commento
Condividi su altri siti

Aiuto,

dopo tanta fatica sono riuscito ad impostare due contatori per le due pompe, seguendo il consiglio di Batta. Ho adesso due contatori VD44 e VD6, rispettivamente pompa 1 (Q0.4) e 2(Q0.5). Ma quando faccio partire il sistema, con il ladder allegato, lui mi alterna le pompe ogni secondo...dato che ogni secondo un contatore diventa maggiore dell'altro! Dove sbaglio? Grazie.

Link al commento
Condividi su altri siti

Devi incrementare solo il contatore della pompa che sta lvorando. Il confronto lo devi fare con entrambe le pompe ferme, prima di decidire a quale pompa dare la marcia.

Link al commento
Condividi su altri siti

Il controllo lo devi fare solo al momento dell'avvio della pompa.

Una volta avviata una pompa, questa continua a lavorare fino al verificarsi delle condizioni di stop, ed impedisce l'avvio dell'altra pompa (interblocco).

Link al commento
Condividi su altri siti

Ciao a tutti,

dopo averci sbattuto il muso ho realizzato un programmino che ha due contatori (in secondi) per le due pompe, che m'incrementano due word, seguendo il consiglio di Batta sto apposto 68 anni. Dopo di che all'avvio faccio un confronto tra le due word. Vi posto la parte iniziale del Ladder, così potete darmi qualche suggerimento/critica o consigliarmi di buttare tutto il programma e andare a pesca

Saluti

Link al commento
Condividi su altri siti

Ciao M0.2 M0.3 cosa sono? comunque il resto sembra ok...questo l hai scritto nella subroutine? sarebbe interessante vedere anche come hai fatto per incrementare il tempo nella VDxx quando la pompa è in funzione

Link al commento
Condividi su altri siti

Oops

E' questa l'immagine giusta! M0.2 ed M0.3 sono l'interblocco delle pompe. Anche se a rivederlo dopo qualche giorno l'avrei realizzato diversamente. Avrei impostato 1 singolo Merker per l'interblocco...

PS: Nel post precedente ho scritto un'altra baggianata, i contatori incrementano due doppie parole....

Link al commento
Condividi su altri siti

Osservazioni:

1) potresti fare una sola comparazione, appoggiando il risultato a M0.0. Poi per l'avvio di una pompa usi il contatto normale di M0.0, e per l'avvio dell'altra pompa il contatto negato sempre di M0.0

2) per l'interblocco, non ti servono merker di appoggio, ma puoi utilizzare le stesse uscite.

3) tengo per ultima la più importante: perché la pompa rimanga in marcia, devi rimanere col dito sul pulsante (I0.0). Appena lo rilasci, la pompa si ferma.

Link al commento
Condividi su altri siti

Buongiorno a tutti.
Grazie Batta per i preziosi suggerimenti... Non riesco a fare l’upload del file con le modifiche apportate, però funziona. Ci tenevo a dire, per non fare proprio una pessima figura, che sto usando il Kit della Siemens con il simulatore di ingressi; quindi non ho fatto attenzione a mettere l’auto ritenuta sul pulsante di marcia, dato che uso i micro-switch ON-OFF.

Ps: Mi potete suggerire dove trovare dei problemi da svolgere? Mi spiego meglio, per esercitarmi mi servirebbero degli esempi pratici di situazioni reali come quella delle pompe appena fatto. Non voglio il ladder, ma solo i quesiti. Grazie.

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