roberto8303 Inserito: 6 dicembre 2009 Segnala Share Inserito: 6 dicembre 2009 Vorrei capire come legare un interrupt per calcolare la velocita di passaggio di un oggetto tra due sensori.da 5km/h fino a 100km/h tipo autovelox..ed ad un certo livello si attiva un uscita.ad esempio ci sono due sensori alla distanza di un metro l uno l altro, la mia perplessita è, a questa distanza bisogna legare i due impulsi , cioe contare la differenza di tempo tra l impegno del primo ed il secondo, con un interrupt o con un semplice contatore? visto che la distanza è cosi breve. a 100km/h si hanno infatti 27metri al secondo!! mi aiutate per procedere nei calcoli da fare con il plc? Link al commento Condividi su altri siti More sharing options...
Cagnulein Inserita: 6 dicembre 2009 Segnala Share Inserita: 6 dicembre 2009 beh secondo me ti servono 2 informazioni:a) frequenza massima di ingresso del tuo PLC frequenza massima al quale analizzerai i sensorisolo allora potrai verificare se la tua applicazione ha senso.Fammi sapereCiao Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 6 dicembre 2009 Autore Segnala Share Inserita: 6 dicembre 2009 Si pero a me servirebbe fare il ragionamento inverso, calcolare la frequenza di conteggio che occorre per rilevare questo impulso... Link al commento Condividi su altri siti More sharing options...
Cagnulein Inserita: 6 dicembre 2009 Segnala Share Inserita: 6 dicembre 2009 tutto dipende dalla precisione che vuoi ottenere e dalla soglia minima/massima dalla/alla quale vuoi iniziare a campionare. Ti faccio un esempio se vuoi arrivare a 100km/h con un plc del quale conosco le caratteristiche (EFX100 della ElcoElettronica che ha un ingresso a 100KHz) dovrai posizionare i due sensori alla distanza minima di 0,27 mm l'uno dall'altro (calcolo: 100Km/h * 1000 / 60 / 60 = 27 m/s * 1000 = 27777 mm/s / 100000 = 0,27 ).Con questo PLC riuscirsti a fare tutto semplicemente collegando i due fili all'ingresso encoder. La velocita' verrebbe rilevata automaticamente dal software e verrebbe depositata in un'apposita words.Fammi sapere se qualcosa non ti torna.Ciao Link al commento Condividi su altri siti More sharing options...
busanela Inserita: 6 dicembre 2009 Segnala Share Inserita: 6 dicembre 2009 Semplificando, supponi che la traiettoria del corpo a 100 Km/h sia circolare con circonferenza uguale alla distanza dei sensori (1 metro, quindi) e che i tuoi sensori misurino ad ogni giro il passaggio dell'oggetto: 27 metri al secondo corrispondono, nel modello appena citato a 27 passaggi, quindi 27 passaggi in un secondo, ergo 27 hertz. Trasformando in tempo, corrispondono ad 1 impulso ogni 37 mSec. Se riesci a mantenere nel programma della cpu un tempo ciclo basso, secondo me, con questa frequenza ti è sufficiente un semplice contatore. Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 6 dicembre 2009 Autore Segnala Share Inserita: 6 dicembre 2009 due sensori alla distanza minima di 0,27 mm l'uno dall'altrommm non ho seguito bene il ragionamento perche mancano le unita di misura ma mi fido di come hai fatto i calcoli, pero 0,27mm praticamente è impossibile posizionare due sensori di un diametro 16mm l uno metterli a quella distanza...busanela, il tuo ragionamento è piu fluido e come pensavo io, 27 mt ogni secondo= 1/27 = 0,037 secondi =1imp su 37ms. pero 27hz per un contatore normale di conteggio sono tanti mi sa...nel manuale non sono riuscito a trovare il contatore normale fino a quanti imp/secondo conta, quelli ad alta velocita arriva a 20khz.mi sembra che il contatore normale puo contare fino a 7imp/secondi, oltre non riesce piu a contare quindi dovrei fare un contatore che parte e si ferma al secondo impulso, moltiplicare il valore del contatore per una costante e so quanti kmh ho fatto?i sensori proximity posso collegarli all ingresso veloce hco? un comune e poi sensore 1 I0.0 e sensore 2 I0.1? Link al commento Condividi su altri siti More sharing options...
Cagnulein Inserita: 6 dicembre 2009 Segnala Share Inserita: 6 dicembre 2009 il mio era il calcolo della distanza minima a 100KHz al quale potevi collocare i sensori dato che non mi avevi fornito i dati di scansione del tuo plc.i calcoli di busanela sono uguali i miei ma hanno un target diverso (rimangono quindi corretti) In ogni caso, se non trovi una soluzione applicata al tuo plc, ripeto, collegando i 2 fili dei proximity al ingresso encoder dell'EFX100 o di un EH100 (meno costoso) risolvertesti il problema. Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 6 dicembre 2009 Autore Segnala Share Inserita: 6 dicembre 2009 ok, sono daccordissimo con te, è solo che ho scritto nella sezione s7 200, perche l applicazione verra fatta con questo plc, che non arriva a 100khz quindi volevo sapere se potevo risolvere con il contatore normale della mia cpu oppure per forza il contatore veloce.poi all inizio, ho parlato di interrupt, perche? perche mi interessa sapere se a quella distanza, con un impulso che passa in un tempo cosi basso 37ms se uso un temporizzatore normale, esso potrebbe essere influenzato dal ciclo scansione il che potrebbe dopo aver fatto tutti i conti, darmi una misura falsata del mio conteggio,ecco perche ho chiesto se bisogna contare concon un interrupt o con un semplice contatore? visto che la distanza è cosi brevesu questo cosa ne pensate?? Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 6 dicembre 2009 Autore Segnala Share Inserita: 6 dicembre 2009 cerco di spiegarmi meglio vorrei sapere, usando il contatore veloce dovrei mettere il temporizzatore nel interrupt del conteggio veloce?o creare un altro interrupt a tempo? Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 6 dicembre 2009 Segnala Share Inserita: 6 dicembre 2009 Il primo punto da verificare è la precisione richiesta.100 km/h == 27.777 m/1" ==> 27.777 mm/1msec. Con lo S7_200 la minima risoluzione temporale è 10 ms equivalenti a 0.27777m.Qualunque sia la strategia di misura che adotterai non potrai ottenere una risoluzione migliore, al massimo potrai peggiorare questa risoluzione (anche di molto); a questa indecisione dovrai aggiungere il ritatdo variabile dovuto ai tempi di ritardo dei due ingressi veloci legati agli interrupt, oltre a quella dei sensori (fotocellule? proximities? altro?).Se ti serve anche un minimo di precisione è da scartare a priori l'idea di un conteggio software. Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 6 dicembre 2009 Autore Segnala Share Inserita: 6 dicembre 2009 Il primo punto da verificare la precisione richiestaCon lo S7_200 la minima risoluzione temporale è 10 ms equivalenti a 0.27777m0,27m/secondo sono 0,9kmh quindi meno di 1km/h risoluzione piu che accettabile! quindi la precisione è dell +/- 1% giusto?il conteggio verra fatto con dei proxmity, quale caratteristica dovranno avere? 30khz vanno bene? Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 7 dicembre 2009 Segnala Share Inserita: 7 dicembre 2009 quindi la precisione è dell +/- 1% giusto?Se la misura è fatta contando più di 100 impulsi. Poi a questa inprecisione dovrai aggiungere anche i vari ritardi variabili dei sensori, ingressi e latenza all'interrupt.Per i sensori devi fare il conto ragionando in questo modo. Alla massima velocità per quanto tempo mi rimane impegnato il sensore? Mi spego meglio. Se la camma che impegnerà il sensore è lunga 10mm si avrà t = 10 / 27.777 = 0.36 msec. Il tuo sensore dovrà essere in grado di rivelare un impulso di larghezza <= 0.36 ms Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 7 dicembre 2009 Autore Segnala Share Inserita: 7 dicembre 2009 Il tuo sensore dovrà essere in grado di rivelare un impulso di larghezza <= 0.36 msmmm non riesco a legare bene i due fattori...periodo per la frequenza,e larghezza dell impulso! cioe se la camma la faccio di 5 mm avro 0,18ms quindi è meglio o peggio? ma non cè un modo per far acquisire al contatore veloce solo l impulso on, tipo la transizione positiva per i contatti? cosi anche se impegno il secondo mentre il primo andava in off (visto la velocita e come se venissero impegnati nello stesso istante) il primo stesso non viene piu considerato e conta il secondo proximity... non ci sto a capire piu nulla aiutooo in parole povere, o diminuisco la velocita da campionare, o aumento la distanza dei proximity giusto? Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 7 dicembre 2009 Segnala Share Inserita: 7 dicembre 2009 Meglio fare un bel reset perchè vedo che comincia ad alzarsi un bel po' di povere 1 - Sensori. Se fai, come dici tu, una camma di 5 mm il tuo sensore se la trova davanti per soli 180 us. Se è un classico sensore rotondo significa che il segnale, che vede la parte sensibile, sale in modo simnusoidale sino a raggiungere il massimo dopo 90 us dall'inizio dell'impegno, ridiscende, sempre con legge sinusoidale, raggiungendo lo zero dopo 180 us; questo in liena teorica, in pratica si dovrebbe considerare un ulteriore piccolo ritardo. All'interno del sensore un circuito a soglia squadra il segnale e da quel'impulso rettangolare che si vede solitamente. Questo se la velocità non è troppo elevata, o la camma troppo stretta o troppo distante. Se si rientra in questa casistica il sensore in uscita non raggiungerà mai un valore sufficiente a far scattare lo squadratore; risultato: la camma viene ignorata dal sensore.2 - Misura.Ora se metti due sensori, o due camme, ad una distanza ben precisa, per misurare la velocità bisogna misurare l'intervallo di tempo intercorso tra l'impegno die due sensori. Con il 200 l'intervallo minimo di tempo rilevabile con un a certa sicurezza sono 10 ms. Non solo anche la quantità minima di tempo conteggiabile è pari a 10 ms. Tutto questo comporta che tutti i tuoi tempi misurati saranno X - n, dove 0 =< n <= 10 ms. Se per esempio misuri 100 ms tra due oimpulsi successivi questi 2 due impulsi possono essere distanziati di un tempo compreso tra 109.9999ms e 100.000001ms Quindi avrai un errore che può essere pari al 10%.Con la velocità massima che vuoi misurare l'unico metro decente è o contare un numero notevole di impulsi, 100 p.e., oppure usare una intervallo di tempo sufficientemente lungo da poter contare uncerto numero di impulsi, numero tale da minimizzare gli errori.C'è una terza soluzione: non usare il 200 ed usare una scheda embedded che abbia risoluzioni temporali minori d 1us e sensori molto veloci. E' la stategia usata anche dagli autovelox non laser. Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 7 dicembre 2009 Autore Segnala Share Inserita: 7 dicembre 2009 Ecco ora mi è tutto chiaro, sopratutto il funzionamento all interno del proxmity in linea generale!scheda embedded che abbia risoluzioni temporali minori d 1us e sensori molto veloci.Ok, sono daccordissimo, sempre molto chiaro e preparatissimo!! ora mi puoi indicare una scheda di questo tipo su internet? cosi mi studio le caratteristiche tecniche... Link al commento Condividi su altri siti More sharing options...
tuck81 Inserita: 7 dicembre 2009 Segnala Share Inserita: 7 dicembre 2009 beh a questo punto sei tornato a quello che ti aveva suggerito ieri Cagnulein!Anch'io conosco i Plc della Elco Elettronica e con un contatore 60 KHZ / 100 KHZ risolvi la tua problematica...io peraltro valuterei l'utilizzo di un encoderino supereconomico, anche monodirezionale e ti risolvi tutti i problemi...inoltre considera che la programmazione di una scheda embedded potrebbe risultare più complicata e meno standard del ladder del plc...forse anche più costosa... Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 7 dicembre 2009 Autore Segnala Share Inserita: 7 dicembre 2009 beh a questo punto sei tornato a quello che ti aveva suggerito ieri Cagnulein!prima di accettare il suggerimento dovevo capire bene se il mio plc poteva farcela... Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 7 dicembre 2009 Segnala Share Inserita: 7 dicembre 2009 (modificato) ..Plc della Elco Elettronica e con un contatore 60 KHZ / 100 KHZ risolvi la tua problematica...Non credo proprio. Il problema non sono i 100kHz di max fewquenza di conteggio, in luogo dei 20 kHz di conteggio dello S7-200; frequenza che è più che sufficiente per contare i due impulsi dati da due sensori posti a distanza di un metro, oppure un conteggio di un impulso per rivoluzione di una circonfenrenza avente sviluppo di 1 m.Il vero e unico problema è la precisione di misura del tempo che intercorre tra i due impulsi. Sulla carta alla massima velocità, il tempo è poco più di 36 msec. Per avere una precisione dell'1%, trascurando indecisioni dei sensori, latenze degli interupts e quant'altro, bisogna avere una risoluzione temporale con ts <= 360 us. E' in grado un PLC di avere questa risoluzione? Che io sappia no! Anzi sarei proprio felice se ce ne fosse qualcuno in commercio. Intendiamoci bene, qui non si tratta di stabilire il tempo per elaborare un tot di istruzioni, qui significa che faccio partire un timer sul fronte di salita(discesa) del primo impulso, sul fronte di salita(discesa) del secondo fermo il timer e leggo quanto tempo è trascorso. Cosiderando tutto è necessario che il clock del timer sia tc <= 100 usec.Quando mi è capitato di dover risolvere problemi similari ho usato schede con microcontrollore; da alcuni anni uso schede basate su PIC perchè sono affidabili, performanti, poco costosi ed ho tutto per sviluppare lo Hw ed il Sw. COn questa soluzione uso timer che possono avere clock con tc <= 100 nsec.ora mi puoi indicare una scheda di questo tipo su internet?Potresti usare quelle dell' AreaSx (è il primo nome che viene alla mente). Il problema però, come suggerisce tuck81, è la programamzione. Questi aggeggi li programmi in assembler o in "C", poi devi avere anche l'attrezzatura per farlo e, soprattutto, le conoscenze di base. Modificato: 7 dicembre 2009 da Livio Orsini Link al commento Condividi su altri siti More sharing options...
tuck81 Inserita: 7 dicembre 2009 Segnala Share Inserita: 7 dicembre 2009 scusate... forse non mi sono spiegato bene su cosa intendevo suggerire...se l'oggetto di cui devo misurare la velocità potesse essere associato ad un encoderino,i due sensori possono essere gestiti come trig on trig off di un oscilloscopio mentre la gestione della rilevazione della velocità è tutta relegata al Plc Elco che gestisce internamente la cosa... direttamente con le periferiche del microprocessore... mentre a Ladder è già disponibile precalcolata e opportunamente mediata e filtrata la variabile velocità! Parto chiaramente dal presupposto che l'oggetto in movimento possa essere associato ad un encoder che si muove proporzionalmente! Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 7 dicembre 2009 Segnala Share Inserita: 7 dicembre 2009 (modificato) ....la velocita di passaggio di un oggetto tra due sensori.da 5km/h fino a 100km/h tipo autovelox..Questa è la richiesta iniziale. Se fosse possibile associare un ecoder all'oggetto in movimento non sposterebbe il problema. Si tratta sempre di misurare un numero d'impulsi in un certo tempo; alla massima velocità il tempo disponibile sono sempre quei 36 msec. Se invece il PLC è questione fosse in grado di misurare l'intervallo di tempo che trascorre tra i due impulsi, con sufficiente precisione, allora la cosa è fattibile ma l'encoder non serve.Sono anche andato a vedere, per curiosità, le specifiche di questi PLC ma non ho trovato nulla che possa soddisfare alle condizioni necessarie. Piò darsi, anzi è pèrobabile, che non conoscendo il prodotto non abbia saputo cercare il dispositivo più adatto; però sono e rimango molto scettico sulla possibilità di risolvere il problema con un PLC, anche perchè i PLC non sono certo progettati per risolvere problemi di questo genere. Modificato: 7 dicembre 2009 da Livio Orsini Link al commento Condividi su altri siti More sharing options...
Cagnulein Inserita: 7 dicembre 2009 Segnala Share Inserita: 7 dicembre 2009 come dicevo i PLC al quale facevo riferimento hanno ingressi veloci fino a 100Khz.Se il problema puo' essere risolto ( a livello prestazionale ) utilizzando un PLC S7-200 ok, ma se per caso, hai bisogno di performance piu' spinte, che normalmente richiederebbero o PLC molto costosi, o appunto schede embedded (difficili da programmari senza essere nel campo), ti consiglio vivamente un PLC della Elco Elettronica (che alla fine sono schede embedded che mettono a disposizione all'utente le informazioni di base per costruirsi i proprio progetti a ladder o in C).Come dicevo, collegando i 2 sensori al PLC tu hai gia', SENZA NESSUN INTERVENTO SOFTWARE, la velocita' in una word (che potresti stampare a video nel caso di un plc con lcd a bordo (Power1000 o Clock) o spedire via seriale/ethernet).Non voglio creare confusione, ma voglio solo allargare la visione del problema. Link al commento Condividi su altri siti More sharing options...
elettrodino Inserita: 7 dicembre 2009 Segnala Share Inserita: 7 dicembre 2009 Non vorrei contraddire nessuno, ma dove avete letto che il tempo minimo di richiamo di un 'interrupt e' 10 ms..Estratto dal manuale S7-200Interrupt a tempoFanno parte di questi interrupt gli interrupt a tempo e gli interrupt dei temporizzatori T32/T96.L’utente può specificare le azioni da eseguire su base ciclica utilizzando un interrupt a tempo. Iltempo di ciclo viene impostato in incrementi di 1 ms, da 1 ms a 255 ms. Si scriverà in SMB34 iltempo di ciclo per l’interrupt a tempo 0, e in SMB35 il tempo di ciclo per l’interrupt a tempo 1.Inoltre la velocita' di conteggio dipende dal tipo di Cpu che si vuole utilizzare; ad esempio la Cpu 224XP ha contatori da 200 kHz singolo canale oppure 100 kHz a 2 canali Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 7 dicembre 2009 Autore Segnala Share Inserita: 7 dicembre 2009 io ho ancora un dubbio, Livio dice giustamente Non credo proprio. Il problema non sono i 100kHz di max fewquenza di conteggio, in luogo dei 20 kHz di conteggio dello S7-200; frequenza che è più che sufficiente per contare i due impulsi dati da due sensori posti a distanza di un metro, oppure un conteggio di un impulso per rivoluzione di una circonfenrenza avente sviluppo di 1 m.è come avere una ruota da 31,6cm sviluppo di 1mt ogni giro abbiamo coperto un 1metro la nostra velocita è di 27 mt in un secondo quindi 27imp/secondo quindi 27hz contare un impulso su questa ruota qualunque plc è ingrado di farlo, il problema cioe la chiave di tutto è secondo me, immaginare come se noi avessimo una camma su una ruota di diametro grande e uno piccolissimo, la frequenza sara la stessa perche tutte e due le camme completano il giro nello stesso istante(perche fisicamente sono posizionate uguali), ma la camma sul diametro piccolissimo, impegnera il sensore per un tempo diverso rispetto alla camma sull albero grande. quindi non entra piu in gioco la frequenza, ma il campionamento del segnale in uno spazio temporale ben definito. (e come se alla ruota oltre il diametro piccolissimo aggiungessimo due camme!!) come nel mio caso due camme su 1mtquesto è come me lo spiego io fino a qui...poi pero come dice giustamente elettrodino,la risoluzione minima del plc legato ad un interrupt è di 1ms,come da manuale,senza contare i cicli di scansione perche non sono considerati quando scatta l interrupt, e su questo non ho capito bene perche Livio dici 10ms? Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 8 dicembre 2009 Segnala Share Inserita: 8 dicembre 2009 Non vorrei contraddire nessuno, ma dove avete letto che il tempo minimo di richiamo di un 'interrupt e' 10 ms..Prima di tutto i temporizzatori da T32 a T96 non sono adatti per misure di precisione. Sono adatti per svolgere tutte le normali operazioni di automazione, in luogo dei relè temporizzati. Questa è la loro funzione specifica.Per misurare una velocità, una frequenza o un perido è necessario disporre di una base tempi precisae ed anche ripetibile quindi, con lo S7-22x, l'unica via percorrribile è l'uso dell'interrupt associato al timer di sistema. Questo interrupt, affinchè abbia garantita un precisione sufficiente, deve essere associatoa d una temporizzazione con t=> 10ms; ho anche fato prove con t=5ms, ma i risultati, in termini di precisione, sono risultati scadenti; inoltre si sottrae troppo tempo agli altri processi. Credo che anche il manuale sconsigli dis cendere sotto i 10ms.Provare per credere.....se sapete fare le misure Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 8 dicembre 2009 Autore Segnala Share Inserita: 8 dicembre 2009 Questo interrupt, affinchè abbia garantita un precisione sufficiente, deve essere associatoa d una temporizzazione con t=> 10ms; ho anche fato prove con t=5ms, ma i risultati, in termini di precisione, sono risultati scadenti; inoltre si sottrae troppo tempo agli altri processiprendo atto di cio che diciProvare per credere.....se sapete fare le misureio le misure non le ho fatte, era solo che il manuale parlava della risoluzione 1ms, e dice che per un interrupt vale la legge quanto piu breve meglio è, ma sti 10ms non li ho trovati...comunque se lo dici tu certo che ci credo e capisco anche il perche... era solo per capire perche il manuale non lo spiega e non per mettere in dubbio quello che dici 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