Sylvain Inserito: 22 novembre 2013 Segnala Inserito: 22 novembre 2013 Buongiorno a tutti, nelle macchine che costruisco c'è un pannello di legno che avanza su un cingolo. Dei pistoni pneumatici si devo attivare a determinate quote. Per ora c'è un sensore in ingresso che determina l'ingresso del pannello e i vari pistoni si attivano pneumaticamente dopo dei vari Timer. Il tutto funziona perfettamente se il cingolo (viene pilotato da un normalissimo motore) non diminuisce la sua velocità. Basterebbe montare un encoder, ma per il tipo macchina (sosto veramente basso) non posso permettermelo. Posso installare un sensore induttivo sull'ingranaggio folle del cingolo (quindi pochi euro) per determinare la velocità del ciingolo. Non so però collegare la quqestione timer con questa velocità. Potrei usare una funzioane Pid, ma come? Qualcuno può aiutarmi?
Livio Orsini Inserita: 22 novembre 2013 Segnala Inserita: 22 novembre 2013 Per prima cosa: che PLC stai usando?
step-80 Inserita: 23 novembre 2013 Segnala Inserita: 23 novembre 2013 (modificato) Secondo me se non hai bisogno di grandi precisioni potresti usare un induttivo che per esempio conta i denti della ruota dentata che muove il cingolo oppure fai dei fori sulla ruota e conti quelli ecc ecc. Sul fonte di salita del finecorsa che rileva l'inizio del pannello carichi zero in un accumulatore che poi vai ad incrementare di una unità su ogni fronte dell'induttivo. Naturalmente ti dovrai calcolare in base al diametro puleggia quanta 'strada' fa il cingolo ad ogni fronte; se la precisione ti soddisfa al raggiungimento di una data quota fai uscire il cilindro o fai quel che vuoi Ps se usi questo sistema i timer non ti servono piu Naturalmente come diceva Livio ci servirebbe qualche info in piu Ciao Modificato: 23 novembre 2013 da step-80
Sylvain Inserita: 25 novembre 2013 Autore Segnala Inserita: 25 novembre 2013 Buongiorno, prima di tutto GRAZIE della risposta! Come plc uso un plc custom (Telestar) con sistema Codesys. Il sistema , consigliato da step-80, lo già provato. Con il sensore leggo il fronte di salita dei denti del pignone e incremento una word la quale lop chimata decine. Poi in base alla velocità calcolata, fraziono il valore tra dente e dente in maniera da creare le unità (che non devono mai superare 9). Sommando le decine e le unità ho una precizione circa 1/10 della dista tra dente e dente. Il tutto funziona perfettamente ma quando il sensore per vari motivi legge un impulso in più o un impulso in meno (capita, magari una sola volta al giorno, però lo fa) mi crea un errore e la macchina va in emergenza. Vorrei creare un qualcosa tipo un Pid, cioè in base alla velocità creo dei timer. Cosi se per qualche motivo c'è un errore di un dente, l'errore diventa insignificante. Grazie ragazzi!
Livio Orsini Inserita: 25 novembre 2013 Segnala Inserita: 25 novembre 2013 Mancano ancora molti dati: Quanti denti ha il pignone Massima velocità di rotazione del pignone Il plc che usi ha la possibilità di avere ingressi veloci legati ad interrupts? Hai la possiiblità di misurare tempi precisi con il tuo PLC? In base a questi dati si può poi ipotizzare la soluzione più adatta per misurare la velocità senza errori significativi. La tua idea di creare PID ha senso solo se i temporizzatori sono tarati proporzionalmente alla velocità: quindi non PID ma solo P. Però il tutto è legato alla precisione di misura ed al tempo di misura.
Sylvain Inserita: 25 novembre 2013 Autore Segnala Inserita: 25 novembre 2013 Buongiorno Livio, ecco altri dati: - come velocità ti posso dire che ils ensore induttivo ha un segnale alto pari a 43 ms ed un segnale basso di 35 ms. - Il plc ha ingressi veloci. - Si, riesco a calcolare in maniera precisa i tempi. La mia idea era di creare un contatore che incrementasse in base al tempo trascorso. La quantità dell'incremento dovrebbe essere proporzionale alla variazione della velocità. Cosi facendo il contatore che ora viene gestito da un encoder lo gestirei tramite questo "calcolo di tempo". Oppure gestire i tempi impostandoli un offset al dato di settaggio della macchina in condizioni ideali. Il mio problema e mettere in pratica queste idee. Cosa ne pensi? hai una soluzione in Ladder o in C ? Grazie per l'aiuto
Livio Orsini Inserita: 25 novembre 2013 Segnala Inserita: 25 novembre 2013 Se quei tempi corrispondono alla massaima velocità, significa che non arrivi nemmeno a 19 Hz, quindi è imperativo, per avere una misura attendibile, misurare la durata dell'impulso. Io non conosco il PLC che stai usando, quindi non son sicuro che sia fattibile quello che sto per esporti. Dovresti avere un contatore che conta un segnale interno, un clock, con periodo di 1ms. Fai partire il contatore con il fronte di salita di un impulso e lo fermi al successivo. Per non perdere alcuna misura dovresti avere 2 contatori, dove il secondo parte con il fronte che ferma il primo eviceversa. Secondo quanto hai scritto, alla velocità nominale il contatore dovrebbe contare sempre 78 impulsi. Con questo valore i tuoi attuali temporizzatori avranno il valore nominale, quello attuale. Se la velocità diminuisce, anche di poco, aumentano gli impulsi contati perchè si allunga il tempo tra due impulsi, quindi aumenti proporzionalmente il settaggio dei timers. Per facilitare le operazioni potresti fari i contatori in deconteggio, presettati a 78. COn velocità nominale i contatori raggiungono lo zero, se la velocità diminuisce, rimarranno impulsi da decontare. Questi impulsi, eventualmente moltiplicati per una costante, potrebbero costituire il valore in somma al preset dei temporizzatori.
Sylvain Inserita: 25 novembre 2013 Autore Segnala Inserita: 25 novembre 2013 Tutto molto chiaro però c'è un problema. Se per esempio il mio timer T1 è presettatto per esempio a 780 ms cioè con andamento del mio cingolo regolare significherebbe 10 impulsi. Facendo come dici tu, se non ho capito male, se il mio cingolo diminuisce velocità e per esempio scende a 85ms tra impulso ed impulso, vorrebbe dire che dovrei modificare il mio preset del timer a 850. Però se questo rallentamento si presenta negli ultimi 2 impulsi ecco che il preset del timer sia 780 che 850 è sbagliato. Sei d'accordo? ho capito bene?
Livio Orsini Inserita: 25 novembre 2013 Segnala Inserita: 25 novembre 2013 Però se questo rallentamento si presenta negli ultimi 2 impulsi ecco che il preset del timer sia 780 che 850 è sbagliato. Sei d'accordo? ho capito bene? Se negli ultimi due denti il perido si allunga, quindi il conteggio aumenta dovrai diminuire il temporizzatore, se non addirittura farlo scadere. Quello che ti ho indicato è come misurare la velocità. Il vero proble ma è che tutta la filosofia di controllo è errata, perchè basata su tempi e non direttamente su quote. Se ti fai i conti bene alla fine il costo dell'encoder (oggi se ne trovano di decenti a costi non molto superiori a quello di un buon proxi) potrebbe non ravare in maniera fondamentale sulla macchina; in compenso non avresti problemi di precisione.
lelos Inserita: 26 novembre 2013 Segnala Inserita: 26 novembre 2013 ciao come dice Livio se usi un encoder risolvi il problema e quelli italiano costano veramente poco . Se poi non vuoi fare il programma nel plc ci sono dei mini programmatori di camme elettroniche o "lettori di encoder" che ,se ti servono poche camme con una minima spesa fai tutto, e al plc entrano solo dei segnali che gestirai per fare quello che vuoi. Ci sono anche strumenti che leggono sensori induttivi e che contando gli impulsi ti danno la velocità e a un certo numero di impulsi 1 o 2 uscite programmabili.
Sylvain Inserita: 26 novembre 2013 Autore Segnala Inserita: 26 novembre 2013 La macchina in realtà ha già l'encoder, un encoder mi costa 32 euro, un sensore 5, facciamo 1600 macchine. Capite che 27euro per 1600 macchine è un bel risparmio alla fine dell'anno. Anche perchè una gran precisione non mi serve, già adesso con il sistema che ho utilizzato (quello spiegato sopra con le decine e le unita) la macchina funziona perfetta. Unico incoveniente è quando il sensore si perde un impulso....
step-80 Inserita: 26 novembre 2013 Segnala Inserita: 26 novembre 2013 Beh,se fai 1600 macchine il discorso è diverso. Se non riesci a risolvere il problema della perdita dell'impulso,potresti ritrovarti a spendere molto più dei 43200 euro ipotetici risparmiati,tra uscite che fai e clienti che si lamentano. poi ovviamente parlo in linea generale,perchè non ho idea di che tipo di macchina sia la tua e che genere di mercato possa avere.
Livio Orsini Inserita: 26 novembre 2013 Segnala Inserita: 26 novembre 2013 La macchina in realtà ha già l'encoder, Intendi dire che vui sostituire l'encoder con i proximities? Oppure che hai anche un encoder che usi per un'altra funzione? Unico incoveniente è quando il sensore si perde un impulso.... Questa è una cosa che non mi spiego. Se perde un impulso ci deve essere una causa, questa causa deve essere riconosciuta ed emendata; poi si potrà cercare di apportare tutte lemigliorie possibili, ma se non viene rilevato un impulso, qualunque sia l'algoritmo impiegato avrai sempre un errore.
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