byt30 Inserito: 26 settembre 2013 Segnala Share Inserito: 26 settembre 2013 (modificato) Salve a tutti. Ho un sensore collegato alla CPU devo calcolare quanti giri al minuto fa una ruota dentata, in tempo reale! Ho copiato allo stesso modo nel OB35 il codice che ha scritto Batta nel messaggio #38, di questa ma non funziona... mi potreste aiutare perfavore? grazie in anticipo! Modificato: 26 settembre 2013 da Giuseppe Signorella Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 26 settembre 2013 Segnala Share Inserita: 26 settembre 2013 Cosa non ti funziona? Link al commento Condividi su altri siti More sharing options...
JumpMan Inserita: 26 settembre 2013 Segnala Share Inserita: 26 settembre 2013 Devi spiegare meglio cosa stai facendo prima di fare una domanda... Hai una ruota dentata (quanti denti? quanti RPM può fare?) Hai un sensore (che sensore? sarà adeguato a quella determinata frequenza?) Lo hai collegato a un ingresso (ingresso normale o veloce?) Dette almeno ste 3 cose si può già stabilire se il problema è hardware o software... ciao. Link al commento Condividi su altri siti More sharing options...
batta Inserita: 27 settembre 2013 Segnala Share Inserita: 27 settembre 2013 Aggiungo una domanda a quella già fatte da JumpMan: che CPU stai usando? Link al commento Condividi su altri siti More sharing options...
byt30 Inserita: 27 settembre 2013 Autore Segnala Share Inserita: 27 settembre 2013 Si alla fine devo provarlo con un ruota dentata ma non so quanti denti abbia e quanti rpm può fare. Sensore OMRON E2A-M12KN08-WP-B1 (8.0mm) L'ho collegato ad un ingresso normale (E0.7) CPU S7-300 Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 27 settembre 2013 Segnala Share Inserita: 27 settembre 2013 Sino a quando non puoi stabilire il numero massimo di giri ed il numero di impulsi al giro, non è possiible stabilire se un ingresso normale è adatto. Io ho dei dubbi che si possano contare gli impulsi su di un ingresso normale. Per valutare devi tener conto del tempo di ciclo, caso pessimo, e motliplicare per 2. Ad esempio se hai un tempo di ciclo massimo di 5 ms tu hai la sicureezza di non perdere alcun impulso solo se il loro periodo è >10 ms (100 Hz). Poi devi anche valutare il ritardo che introduce il filtro Hw del tuo ingresso. Link al commento Condividi su altri siti More sharing options...
byt30 Inserita: 27 settembre 2013 Autore Segnala Share Inserita: 27 settembre 2013 A me hanno detto di farlo così, quindi penso vada bene. Deve essere una cosa molto rudimentale, dopo per i perfezionamenti o se ci sarà qualcosa da aggiustare me lo diranno sicuramente... Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 27 settembre 2013 Segnala Share Inserita: 27 settembre 2013 A me hanno detto di farlo così, quindi penso vada bene. Non è proprio il miglior modo di operare, è quasi come rinunciare ad avere un cervello. Comunque senza le informazioni che ti sono state richieste non è possibile darti un aiuto. Link al commento Condividi su altri siti More sharing options...
byt30 Inserita: 27 settembre 2013 Autore Segnala Share Inserita: 27 settembre 2013 Mi serve solo sapere come fare per calcolare il tempo che c'è tra un impulso e un altro, tra due fronti. Per esempio, passo davanti al mio sensore con un oggetto metallico, poi dopo ci passo ancora davanti. Ecco io devo sapere quanto tempo è passato tra il primo passaggio e il secondo, una volta calcolato quello io sono a posto. A me serve capire come fare quell'istruzione e basta.. grazie mille Link al commento Condividi su altri siti More sharing options...
batta Inserita: 27 settembre 2013 Segnala Share Inserita: 27 settembre 2013 CPU S7-300 Hai una vaga idea di quanti modelli di CPU S7-300 esistono? Ma ti costava proprio tanta fatica specificare il modello di CPU? Se ti facciamo delle domande, non è per riempire le pagine del forum, ma perché servono per poter dare risposte sensate. Oltre ad essere indispensabile conoscere la frequenza del segnale da rilevare, sapere l'esatto modello di CPU che utilizzerai è fondamentale per capire se disponi o meno di ingressi veloci e/o di interrupt. Inoltre il metodo più indicato per rilevare la velocità della tua ruota dentata, dipende molto proprio dalla frequenza. Se si tratta di frequenza bassa (diciamo non oltre i 5 Hz) se disponi di ingressi di interrupt il metodo migliore potrebbe essere quello di misurare il tempo intercorso tra due impulsi. Con frequenze elevate è meglio invece contare il numero di impulsi in un tempo fisso. Se poi la tua CPU è della famiglia 31xC (con contatori veloci a bordo), potresti utilizzare la funzione "Misura di frequenza". Link al commento Condividi su altri siti More sharing options...
byt30 Inserita: 27 settembre 2013 Autore Segnala Share Inserita: 27 settembre 2013 6ES7 313-1AD03-0AB0 Link al commento Condividi su altri siti More sharing options...
batta Inserita: 27 settembre 2013 Segnala Share Inserita: 27 settembre 2013 Mi serve solo sapere come fare per calcolare il tempo che c'è tra un impulso e un altro, tra due fronti. Per esempio, passo davanti al mio sensore con un oggetto metallico, poi dopo ci passo ancora davanti. Ecco io devo sapere quanto tempo è passato tra il primo passaggio e il secondo, una volta calcolato quello io sono a posto. A me serve capire come fare quell'istruzione e basta.. grazie mille Appunto. Per poter definire se e come puoi fare quello che desideri, devi rispondere alle domande che ti abbiamo posto. Per fare un esempio, se tra i due impulsi passano 10 secondi, allora non ti servono ingressi veloci o di interrupt, e potresti contare il tempo trascorso tra i due impulsi utilizzando l'orologio di sistema oppure la variabile in OB1 (OB1_PREV_CYCLE) che contiene il tempo in ms dell'ultima scansione. O, ancora, utilizzare un OB a tempo configurato con un tempo sufficientemente grande da non mettere in crisi la CPU, e sufficientemente piccolo per non perdere troppo in precisione. Se tra i tuoi due impulsi il tempo è dell'ordine dei millisecondi, questo metodo non va più bene. Dovrai per forza disporre di ingressi veloci e cambiare completamente sistema per rilevare la frequenza. Se continui ad attendere risposte senza fornire i dati che ti abbiamo richiesto, perdiamo solo tempo. Link al commento Condividi su altri siti More sharing options...
byt30 Inserita: 27 settembre 2013 Autore Segnala Share Inserita: 27 settembre 2013 Va bene grazie mille, ho capito il concetto. Mi informerò su queste caratteristiche e poi vi referirò. Link al commento Condividi su altri siti More sharing options...
batta Inserita: 27 settembre 2013 Segnala Share Inserita: 27 settembre 2013 6ES7 313-1AD03-0AB0 Bene. Ora conosciamo la CPU. Si tratta di una CPU che non ha I/O a bordo e che, soprattutto, non dispone di contatori veloci. E quindi possiamo subito dire che potrai rilevare i segnali (ipotizzando tempi di scansione ragionevoli) solo se la frequenza non supera i 10 Hz e il duty cycle è circa 50%. Se fornisci anche gli altri dati, potremo stabilire se puoi o non puoi fare quello che desideri. 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