marcoefede98 Inserito: 15 giugno 2007 Segnala Inserito: 15 giugno 2007 Ciao a tutti, sto facendo in collaborazione con un collega delle delle modifiche su una prototipo di sistema di visione con 2 telecamere dotate di loro software ed hardware che gestiscono una loro elettronica a logica negativa, ed anche se questo e uno scoglio e risolvibile, in quanto il resto della macchina e a logica positiva.Il mio datore di lavoro ha mandato a quel paese l'integratore che doveva gestire la parte di visione in quanto si e dimostrato non all'altezza, anche se a mio giudizio c'è stata una mancanza di chiarezza fin dall'inizio, degenerando nel fatto che adesso abbiamo una macchina a meta e non sanno come uscirne, cosi abbiamo deciso di provarci noi.Considerano che la macchina fornisce 300/350 pezzi da visionare al minuto, circa 0,2 secondi per pezzo ho bisogno di costruire e gestire il non conforme per ogni telecamera, che mi può dare uno o più segnali a mio piacimento, il problema nasce dal fatto che non posso gestire la selezione dalle telecamere per 2 motivi, il primo e che andrei ad appesantire il software delle telecamere che non riuscirebbero a controllare il tutto a quella velocità e poi non ho la possibilità di avere un encoder per dare il punto esatto dello "scarto". Per questo motivo ho pensato di usare un plc che ho in casa per autodidattica per fare delle prove,(s7-200 cpu 224), ma ecco che nascono i problemi.Posso usare lo stesso ingresso veloce che usa un contatore veloce hsc per gestire piu conteggi?Mi spiego, ho i pezzi ad una distanza di 7 cm e lo scarto a 21 cm dal punto dove faccio la foto, quando ho il pezzo a sotto la telecamera so che tra un certo n di impulsi encoder avrò lo scarto e fino a qui bene, ma il pezzo b e già sotto la telecamera e so che dovrà essere scartato ma sto impegnando il conteggio per a, e cosi via c'e soluzione al mio quesito?Sappiate che la mia esperienza di plc fino ad oggi si era limitata ad accendere qualche lampadina, azionare qualche valvola per cui e piuttosto limitata.ciao grazie.ps ma secondo voi c'è la fa come velocità l' s7-200/224 a gestire una cosa del genere?io vorrei azionare n cilindretto pneumatico.
Livio Orsini Inserita: 15 giugno 2007 Segnala Inserita: 15 giugno 2007 I contatori veloci sono 4 quindi hai la possibilità di far contare a tutti il medesimo encoder e farti 4 selezioni diverse.La velcotà massima di conteggio, se ricordo bene, è <=30khz. Se gli impulsi del tuo encoder non superano questa frequenza non hai problemi.Se invece vuoi sapere se una CPU S7-2xx è in grado di svolgere le funzioni che ti necessitano nei tempi richiesti è una domanda a cui solo tu puoi rispondere.
elsabz Inserita: 16 giugno 2007 Segnala Inserita: 16 giugno 2007 (modificato) Ciaocredo che se la CPU fa solo questo non c'è alcun problema!Le soluzioni sono diverse, potresti usare un ingresso contatore e controllare il numero d'impulsi con un trigger di ciclo ogni 10ms, oppure usare un ingresso d'interrupt per il conteggio (no so se la CPU c'è l'ha!), infine se il tempo di ciclo del programma principale del PLC è corto (1/2 ms) potresti fare il conto semplicemente sul fronte di salita dell'ingresso che legge gli impulsi di posizione. Di sicuro dovresti mettere un interruttore di prossimita nella posizione di scarto per vedere se il pezzo c'è realmente.A mio avviso dal punto di vista software il conteggio di base è uno solo, soltanto che a multipli di 7 impulsi ricavi le varie posizoni dei pezzi (a,b,c, ecc. ecc.). Pertanto contati 21 impulsi sai che lo scarto è li, se la presenza pezzo c'è allora lo espelli e azzeri il conteggio e via così. Se tra la foto della telecamera e lo scarto ci sono tre pezzi, avrai tre conteggi, se ci sono 5 pezzi avrai 5 conteggi ecc. ecc., quando uno di questi raggiunge lo scarto e il pezzo era scarto (il sistema di visione, te lo ha detto precedentemente con un altro ingresso), e il sensore di prossimità da presenza pezzo, lo espelli! Modificato: 16 giugno 2007 da elsabz
dany-dm Inserita: 16 giugno 2007 Segnala Inserita: 16 giugno 2007 la soluzione più semplice è attivare l'hsc e usare il "confronto maggiore di" per capire se il pezzo deve essere fotografato, questa soluzione ha una velocità uguale al tempo di ciclo programma. Se con il plc ci fai solo questo, stai tranquillo che resti sotto il millisecondo.l'altra soluzione è più complicata ma praticamente istantanea (credo... non ho mai capito bene " 'sti cosi") e richiede, come detto da elsabz, gli interupt. Puoi usare l'assistente del step 7 microwin per capire meglio.Non so se puoi caricare più di un interrupt uguale alla volta.
Gabriele Corrieri Inserita: 16 giugno 2007 Segnala Inserita: 16 giugno 2007 Ciaoil discorso è abbastanza semplice, almeno se non vi sono altri particolari, da te non descritti.La configurazione dell'HSC è praticamente obbligatoria farla con un INT, altrimenti con dei tempi stringenti si rischiano errori, il preset sarà 7cm (verifica BENE BENE la misura) se hai 21 cm fra il puntamento e lo scarico dei pezzi significa che hai 4 oggetti nel range: l'oggetto in puntamento,stazione intermedia 1, stazione intermedia 2, scarico pezzi. A questo punto un registro a scorrimento a 4 bit fa il resto, quando punti memorizzi nel registro 0 o 1 in base se il pezzo è buono o meno, ad ogni avanzamento di 7 cm fai avanzare il registro e inserisci un altro bit per il pezzo a seguire, a questo punto nel registro al 4° bit leggerai lo stato dello scaricatore di pezzi, se ti trovi 1 allora dovrai scaricare il pezzo, se è 0 lo terrai in linea (0 e 1 sono arbitrari, l'importante è scrivere e leggere con la stessa logica, altrimenti scaricherai i pezzi buoni e manterrai in linea quelli difettosi)Il discorso PNP/NPN è facilmente risolvibile con dei relè/pull-up/piccoli moduli specifici.Ciao
batta Inserita: 17 giugno 2007 Segnala Inserita: 17 giugno 2007 Se devi gestire solo queste cose secondo me ce la fa benissimo, senza ricorrere ad interrupt. Il tempo di scansione dovrebbe rimanere contenuto entro pochi ms.Se hai necessità di gestire più conteggi derivanti da un solo encoder, e quindi da un solo contatore veloce, potresti impostare il contatore per il conteggio continuo (una volta arrivato a 2147483647 incrementando di 1 salti a -2147483648), senza mai fare azzeramenti. Puoi gestire così tutti i conteggi che vuoi semplicemente memorizzando il conteggio attuale (al posto dell'azzeramento) e calcolando gli impulsi per differenza.
Savino Inserita: 17 giugno 2007 Segnala Inserita: 17 giugno 2007 (modificato) Ganciandomi al post di batta per quanto riguarda il conteggio continuo, Io utilizzarei delle code virtuali scorrevoli FIFO.. mi spiego meglio..Una DB bidimensionale rappressenta la coda virtuale per il trigger della camera inspettora.La lunghezza del DB cioe' della coda sara' determinata dalla quantita' di pezzi che ci possono stare tra la posizione di carico e la posizione di trigger e lettura (raggio camera + centraggio pezzo).. quindi se tra queste due posizione ci stano 10 pezzi la coda sara' lunga di 10 elementi( [0] - [9] ), che conterrano i valori d'identificazione della pos. del pezzo nella coda (1 -10) e quelli di offset del contatore salvato al momento del carico.esempio.. ID pezzo/pos.coda | valore contatore / encoder -------------------------------+---------------------------- Pezzo 1: DBx[0]= 1, 3500; 2: DBx[1]= 2, 4500; 3: DBx[2]= 3, 5500; ... 10 DBx[9]= 10, 12500; Poi, l'offset di trigger sara' determinato dal valore offset al carico + la distanza tra pos.di carico e pos.di trigger(costante). Una volta ricevuto il feeback dalla camera, con il resultato della inspezione, la coda si scorre verso l'alto da un elemento , ripristinando il valore del contatore pezzo / coda al valore 1. esempio dopo primo scorrimento: pezzo 2: DBx[0]= 2, 4500; 3: DBx[1]= 3, 5500; ... 10:DBx[8]= 10, 12500; 11:DBx[9]= 1, 13500;Lo scarto avrebbe anche la sua propia coda tridimenzionale, di lunghezza superiore a quella del trigger..supponiammo 20 elementi ( [0]-[19] )...che conterrano i valori de identificazione pezzo nella coda (1 -20) , quelli degli offset del contatore salvato al momento del carico pezzo e quelli dei resultati della inspezione di valore binario : 0 inspezione OK; 1 inspezione non Ok.La coda si scorre sempre alla pos. offset + distanza (zona scarto).. l'unica differenza sarebbe che se per quel pezzo il valore di retroazione per l'inspezione sarebbe stato non OK, allora il dispositivo di scarto interverebbe.Questa sarebbe una ipotetica soluzione..sommata a tante altre possibili.. certamente che bisognerebbe avere piu' info per potere essere piu' precisi.Per quanto riguarda l'interblocchi d'interfaccia HW tra i due sistemi, meglio se i rele sono SSR (solid state relay). N.B. : potresti dire di quale sistema di visione si tratta ? Modificato: 17 giugno 2007 da Savino
marcoefede98 Inserita: 18 giugno 2007 Autore Segnala Inserita: 18 giugno 2007 ringrazio tutti per i consigli ,il sistema utilizzato e Cognex In-Sigth 5400 sono 2 fotocamere apparentemente spettacolari, almeno per quello che ho potuto constatare a oggi.Ognuna di esse e abbinata ad una scheda con 8 ingressi ed 8 uscite digitali, in più c'è l'ingresso di trigger ,che può essere interfacciato npn o pnp, che e immediato, abbiamo provato ed al variare la velocità il momento dello scatto varia di pochissimo, sembra incredibile, siamo partiti da 50 pz min e siamo arrivati oltre 350 pz min e la foto non si sposta, e due uscite higth.le uscite sono sicuramente ssr in quanto possono fornire solo una corrente di 100 mA Oggi viste le difficoltà per noi due a manipolare il programma del plc abbiamo deciso all'unaminità di togliere l'encoder, restringere gli spazi e scartare immediatamente dopo l'esito togliendo anche il ritardo dovuto al funzionamento meccanico della valvola e del cilindretto pneumatico.Mi rendo conto che non sarete d'accordo, ma e stata l'unica soluzione per uscircene illesi (forse), comunque esito negativo da fotocamera, sensore veloce in posizione di scarto per presenza pezzo= scarto con un soffio d'aria sufficiente per far volare via lo scarto, il tutto gestito comunque dal plc.Certo che con l'encoder sarebbe stata un altra cosa, meno fili meno ingombri ma non c'è l'abbiamo fatta. Saluti marco
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