Vai al contenuto
PLC Forum


Tracking Materiale


suppaman

Messaggi consigliati

Salve a tutti.

Devo mettere in piedi un sistema di tracking. Spiego meglio la situazione:

Si tratta di un taglio al volo di tubi in acciaio.

Attualmente funziona come una normale taglierina, tagliando in base alla misura impostata.

Ora è stato implementato un sistema di telecamere in grado di riconoscere particolari incisioni e fori sul tubo che però non sono posti a distanza regolare uno dall'altro.

Il taglio dovrà avere quindi due modi di funzionamento, o taglio a misura oppure taglio in coincidenza del segno rilevato.

Quindi pensavo di realizzare una sorta di tracking per sapere con precisione dove si trova il segno e quando dare il comando al taglio, il problema è appunto che non ho mai realizzato qualcosa del genere e mi trovo un po' in difficoltà.

Le telecamere hanno semplicemente un uscita che da un impulso di qualche secondo per segnalare il rilevamento.

Queste si trovano ad una distanza di circa un metro e mezzo dalla lama di taglio,e la lunghezza del banco raggiunge i 3metri quindi direi che la

lunghezza totale del tracking deve essere di almeno 5 metri per essere sicuri. Questo perche l'avanzamento del tubo può avvenire anche in modo

manuale andando oltre il punto di zero del carro e quando il taglio tornera in funzionamento automatico dovrà andare a posizionarsi sul segno e tagliare

punto giusto

Nel sistema è già presente un encoder utilizzato dal taglio al volo per calcolare la velocità del materiale, quindi per misurare l'avanzamento pensavo di usare sempre lo stesso.

La precisione di taglio richiesta è nell'ordine dei decimi di millimetro.

Il tutto dovrà essere realizzato con una CPU314C-2DP che gestisce già altre parti della linea.

Ho provato a cercare argomenti simili nel forum, ma sinceramente non ho trovato niente di interessante. Spero di aver dato abbastanza informazioni e di non essermi dimenticato niente

Consigli e suggerimenti su come iniziare?

Grazie comunque a tutti

Link al commento
Condividi su altri siti


Potresti considerare il numero massimo di incisioni che potrebbero essere presenti

contemporaneamente, in questo tratto di circa 5metri.

Supponi che siano 5 o 10.

Bene puoi creare un Array di dati Real

Mark: ARRAY[1..10] OF REAL;

adesso che hai la possibilità di avere la posizione di tutti e 10 le incisioni possibili,

devi inserire quando rilevi l'incisione, la posizione in successione nei singoli elementi dell' Array.

1^ Incisione inserisci la posizione o distanza della telecamera rispetto il punto di Taglio o del tuo riferimento.

2^ Incisione che arriva, la inserisci nel 2° elemento dell' Array, e cosi via.

di sicuro hai già contemplato il fatto che con 10 elementi no arriverai mai a riempire tutto l'Array.

bene ora devi decrementare tutti le incisioni rilevate, o meglio le posizioni.

Per far questo ad ogni scansione di PLC leggi la differenza del Master (Encoder), questa differenza

o incremento del master, deve essere sottratto dal valore degli elementi in cui è stato rilevato l'incisione.

Poi controlli il valore di posizione per gli elementi in cui è stato rilevata un incisione,

e coordini il taglio per ottenere il taglio su questa incisione.

Subito dopo aver tagliato, cancelli tutti gli elementi che si trovano ad una distanza inferiore al punto di taglio.

Chiaramente adesso devi riordinare in sequenza gli altri elementi, che sono rimasti.

Quando calcoli incremento del master, tieni presente se esso di tanto in tanto si resetta

(Esempio nell'istante di taglio, o per overFlow)

Controlla gli incrementi rilevati, ed eventualmente scarta quelli incrementi in cui il master ha subito una notevole

variazione.

Se rilevi questa variazione anomala, potresti usare in quel istante l' incremento della posizione dello Slave, nel tratto in

cui è in perfetto sincronismo con il Master.

Se la velocità del master è lenta, forse arriverai ad avere una buona precisione.

Altrimenti, devi tener presente i ritardi di rilevamento, di elaborazione, e di comando.

Così devi compensarli in base alla velocità del master, e del tempo di latenza di questi eventi.

Link al commento
Condividi su altri siti

Dimenticavo questa cosa:

Ma la CPU314C-2DP gestisce anche il coordinamento Master-Slave del taglio, oppure assolve a compiti

secondari.

Normalmente potrebbe esserci un controllo Assi che assolve a questa funzione.

Se così è, potresti eseguire il controllo in questo ultimo dispositivo, garantendo una maggiore precisione.

Si chiama in gergo taglio a Registro.

Modificato: da Henon
Link al commento
Condividi su altri siti

Si chiama in gergo taglio a Registro.

Interessante.. non lo sapevo

Teoricamente la lunghezza minima di taglio dovrebbe essere 3 metri quindi possono essere presenti massimo 2 incisioni contemporaneamente all'interno dell'area presa in considerazione.

La velocità massima a cui può arrivare la linea è di 10 metri/min.

Avevo già pensato che dovevo tenere conto anche dell'azzeramento dell'encoder.

Comunque la cpu gestisce quasi tutta la linea, quindi anche il taglio e il suo asse. Possiedo i sorgenti del programma, ma la parte del taglio è stata sviluppata da altre persone, e non so se riesco ad integrare questa nuova parti direttamente all'interno della gestione dell'asse che a prima vista mi è sembrata abbastanza contorta..

La mia idea era almeno inizialmente di farlo funzionare come un programma a se diciamo così..

Grazie mille per le tue dritte comunque !

Intanto riordino un po le idee anche in base a quello che mi hai detto, e provo a buttar giù una bozza del funzionamento e poi del programma.

Se avete altri consigli o soluzioni differenti, ben vengano

Link al commento
Condividi su altri siti

Puoi fare così.

se la frequenza te lo permette colleghi un canale dell'encoder ad un ingresso digitale. se non te lo permette con un contatore veloce esegui un conteggio periodico da zero a x dove x è un numero di impulsi pari ad uno spazio ben definito. praticamente il tuo encoder ruota col materiale. ogni diro di encoder saranno x impulsi e x mm. trovi un valore di impulsi tale da avere uno spazio consono a ciò che vuoi realizzare

Ora ti crei un treno di bit con un array o con un db o con una serie di mb.

ogni bit sarà la distanza del tuo spazio ben definito di cui dicevo sopra. il numero totale di bit sarà la distanza sensore-lama diviso la risoluzione di ogni singolo bit

ad ogni impulso o ad ogni azzeramento dell'encoder sposti i bit del tuo registro in avanti.

ad ogni difetto marchi il bit corrispondente a dove si trova il sensore con 1.

questo uno si sposta come detto in avanti sfruttando l'encoder.

arrivato il bit a 1 in un'altro punto ben stabilito tagli.

Link al commento
Condividi su altri siti

Rieccomi tornato, sono stato un po assenti per altri motivi durante questi giorni

Ogni bit sarà la distanza del tuo spazio ben definito di cui dicevo sopra. il numero totale di bit sarà la distanza sensore-lama diviso la risoluzione di ogni singolo bit

ad ogni impulso o ad ogni azzeramento dell'encoder sposti i bit del tuo registro in avanti.

Inizialmente avevo pensato a qualcosa del genere, cioè come hai detto te creari un array di bit dove ogni bit rappresentava il "passo" del tracking.

La risoluzione come ho detto dovrà essere nell'ordine del decimo di millimetro, quindi vuol dire che dovrei creare un array di 50mila bit, essendo lo spazio totale di 5 metri. E' giusto il ragionamento oppure sto sbagliando?

Modificato: da suppaman
Link al commento
Condividi su altri siti

no, non sbagli. Con questi dati non è possibile perchè la frequenza dell'encoder sale alle stelle e, andando a 10mt al minuto vuol dire che fai 166mm al secondo perciò il tuo registro dovrà muoversi ogni 0,0006 sec.

non ce la farai mai, la scansione del plc non è così veloce.

Link al commento
Condividi su altri siti

Cavolo hai ragione, ho sbagliato i calcoli..

Ogni 6millisecondi potrei però rilevare un millimetro di avanzamento.

E comunque dal rilevamento del bit in posizione di taglio alla chiusura delle morse ci sarà un ritardo seppur molto ridotto.

Il problema poi è se la velocità va oltre la soglia massima (teorica) dei 10mt

Grazie comunque dei consigli. Settimana prossima inizierò comunque a buttar giù qualche riga di codice a prescindere dalle prestazioni che potrà raggiungere, e se avrò difficoltà ovviamente chiederò ancora il vostro aiuto :)

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