mikescossa Inserito: 14 novembre 2017 Segnala Share Inserito: 14 novembre 2017 Buongiorno a tutti, sto automatizzando il caricamento del materiale da dei silos esterni a sei piccoli silos interni. Questo avviene con una pompa del vuoto, eccitando la rispettiva elettrovalvola posta su ogni singola stazione. Ogni stazione ha il suo sensore di livello che fa partire il sistema. Ora il problema è gestire la priorità della chiamata se ad esempio due o più stazioni, hanno bisogno di essere riempite contemporaneamente. Ovviamente è possibile completare un solo ciclo per volta. Ho provato a scrivere una bozza di programma, ma temo che non sia corretto. In pratica ho preso il contatto del sensore di livello della prima stazione e quando chiude, mi fa partire il ciclo di chiamata solo se gli altri sensori non stanno chiamando e così via anche per le altre stazioni. Però il mio dubbio è su come il plc gestisce la priorità se più stazioni stanno chiamando. Link al commento Condividi su altri siti More sharing options...
RDA Inserita: 14 novembre 2017 Segnala Share Inserita: 14 novembre 2017 Devi pensarlo un pò come un ascensore, chi prima arriva prima alloggia per la chiamata, ovviamente il primo sensore che richiede livello becca la priorità, e gli altri si accodano, finito il primo passa la palla a chi si e prenotato per secondo e cosi via, non so se ho inteso bene il tuo problema come principio. Saluti. Link al commento Condividi su altri siti More sharing options...
84paolo Inserita: 14 novembre 2017 Segnala Share Inserita: 14 novembre 2017 Ciao. Una cosa molto semplice sarebbe utilizzare un contatore per ogni stazione di chiamata. Ogni stazione conta il tempo che è in attesa. Se non è in chiamata azzeri il.contatore. quello con il.contatore più alto parte a trasferire il prodotto. Quando ha finito si azzera il suo contatore e quindi partirá il successivo con il.contatore più alto. Questo è quello che mi è venuto i mente su due piedi, ma esistono anche altri metodi altrettanto validi Link al commento Condividi su altri siti More sharing options...
mikescossa Inserita: 14 novembre 2017 Autore Segnala Share Inserita: 14 novembre 2017 Grazie per le risposte. 30 minuti fa, 84paolo scrisse: Ciao. Una cosa molto semplice sarebbe utilizzare un contatore per ogni stazione di chiamata. Ogni stazione conta il tempo che è in attesa. Se non è in chiamata azzeri il.contatore. quello con il.contatore più alto parte a trasferire il prodotto. Quando ha finito si azzera il suo contatore e quindi partirá il successivo con il.contatore più alto. Questo è quello che mi è venuto i mente su due piedi, ma esistono anche altri metodi altrettanto validi non essendo esperto, che istruzione dovrei usare per "vedere" il contatore che ha contato di più? Link al commento Condividi su altri siti More sharing options...
RDA Inserita: 15 novembre 2017 Segnala Share Inserita: 15 novembre 2017 Forse e un po' più semplice di come la racconti, visto che il tuo livello e solo on off, non sai se il primo silos e meno pieno/vuoto del 5 giusto, pertanto la condizione e questa: tutti i serbatoi pieni nessuna apertura elettrovalvola, il 2 in richiesta e tutti gli altri pieni setta un bit per la partenza dell'elettrovalvola vuoto ed inibisce le richieste degli altri fintanto che i secondo non è pieno, quindi la condizione è: negato primo sensore chiuso il secondo, negato tutti gli altri livelli, setta bit per partenza elettrovalvola del secondo serbatoio, riempimento del 2 il bit torna od off e se il 3 richiede livello con la logica scritta per il 2 ma con il bit chiuso del 3 serbatoio riparte la giostra, e con un numero pari di righe e qualche altro controllo te la cavi. Spero di essermi spiegato. Saluti Link al commento Condividi su altri siti More sharing options...
mikescossa Inserita: 15 novembre 2017 Autore Segnala Share Inserita: 15 novembre 2017 Questa è la riga di programma che ho scritto, naturalmente, è uguale anche per le altre 5 stazioni rimanenti. Temo di essermi spiegato male nel primo post. Provo a portare un esempio del problema che ho riscontrato con questa programmazione. Stazione 1 non chiama, passo oltre. Stazione 2 non chiama, passo oltre. Stazione 3 chiama, attivo l'elettrovalvola di caricamento. Per riempire, ci vogliono circa 40 secondi. All'inizio della partenza di Stazione 3, chiama Stazione 1, verso la fine del caricamento della stazione 3, chiama anche Stazione 4. Ora, finito il caricamento di Stazione 3, il Plc si fermerà a farmi caricare la Stazione 4, lasciandomi per altri 40 secondi circa in attesa la Stazione 1, la quale nel frattempo, si è svuotata del tutto. Link al commento Condividi su altri siti More sharing options...
84paolo Inserita: 15 novembre 2017 Segnala Share Inserita: 15 novembre 2017 Ma infatti io ti avevo suggerito di usare dei contatori. Fai word di appoggio. Una per ogni serbatoio. Quando non hai il livello max e hai impulso a un secondo incrementi le word di conteggio. In pratica all'interno della word vedi il tempo in secondi da quanto aspetta il serbatoio. Poi per far partire la.1 quando è tutto fermo, verifichi che il contatore della 1 sia maggiore di tutti gli altri. E cosi via. Se però nel tempo di ricarica di un serbatoio uno va a vuoto devi vedere se dare delle priorità, magari sul serbatoio 1 il tempo lo sommi con un più due per fare in modo che reagisca prima. Ma se neanche questo basta, magari devi aggiungere altri livelli per esempio di serbatoio in esaurimento che danno la massima priorità a quel serbatoio Link al commento Condividi su altri siti More sharing options...
mikescossa Inserita: 15 novembre 2017 Autore Segnala Share Inserita: 15 novembre 2017 1 minuto fa, 84paolo scrisse: Ma infatti io ti avevo suggerito di usare dei contatori. Fai word di appoggio. Una per ogni serbatoio. Quando non hai il livello max e hai impulso a un secondo incrementi le word di conteggio. In pratica all'interno della word vedi il tempo in secondi da quanto aspetta il serbatoio. Poi per far partire la.1 quando è tutto fermo, verifichi che il contatore della 1 sia maggiore di tutti gli altri. E cosi via. Se però nel tempo di ricarica di un serbatoio uno va a vuoto devi vedere se dare delle priorità, magari sul serbatoio 1 il tempo lo sommi con un più due per fare in modo che reagisca prima. Ma se neanche questo basta, magari devi aggiungere altri livelli per esempio di serbatoio in esaurimento che danno la massima priorità a quel serbatoio Si Paolo e ti ringrazio del suggerimento, solo che non so che istruzione usare, per far leggere il contatore più alto. Link al commento Condividi su altri siti More sharing options...
84paolo Inserita: 15 novembre 2017 Segnala Share Inserita: 15 novembre 2017 Devi fare dei semplici confronti. mi pare che l'istruzione sia il Cmp o qualcosa del genere. In omron non ricordo bene la sintassi. Ma se vedi sulla guida in linea trovi tutte le istruzioni che ti servono Link al commento Condividi su altri siti More sharing options...
RDA Inserita: 16 novembre 2017 Segnala Share Inserita: 16 novembre 2017 Quindi la priorità e quella di non far svuotare mai i serbatoi a valle, ma pero mi viene questo: come fai ad essere sicuro che nonostante la valvola del vuoto insegua in continuazione i serbatoi riesce a mantenere il livello mai al di sotto del minimo, in quanto come penso lo svuotamento può avvenire con una velocità del tutto aleatoria giusto? 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