alex23j Inserito: 13 settembre 2016 Segnala Inserito: 13 settembre 2016 Buongiorno a tutti, Devo creare un programma per fx3g, il quale impostando un numero di cicli al minuto su un pannello, lui esegua in automatico X cicli/min. ho un cilindro comandato da un motore passo-passo comandato in treno impulsi, il cilindro spinge contro una superficie ad una certa forza. Io leggo la forza attraverso una cella di carico e la confronto. Il problema è che devo controllare il numero di cicli indipendentemente dalle corse del cilindro, o meglio, il programma deve modificare la velocità in modo da tenere costante il numero di cicli, aumentando o diminuendo la velocità di spinta. Attualmente il sistema funziona in questo modo: - imposto lo zero macchina - imposto la forza massima di spinta oltre il quale il cilindro inverte la corsa. - imposto la corsa massima oltre il quale il cilindro inverte la corsa. - imposto la velocità di spinta (questa deve essere la risultante) - imposto la velocità di ritorno alla posizione zero. - imposto i cicli/min ( un ciclo è inteso da zero---posizione massima---zero) pensavo a un PID, ma come faccio a leggere i cicli al minuto in modo preciso. utilizzo la funzione SPD per rilevare n. cicli in un tempo. sarò verso la strada giusta? Avete un suggerimento ? grazie a tutti
leleviola Inserita: 13 settembre 2016 Segnala Inserita: 13 settembre 2016 L'istruzione SPD di permette di rilevare in tempo reale gli impulsi rilevati su un ingresso veloce in un dato tempo di campionamento che imposti tu, questo ti permette pure di calcolare la velocità in tempo reale perchè non è solo dopo il campinamento stabilito che puoi rilevare gli impulsi contati ma anche in tempo reale, infatti i registri risultanti che l'istruzione aggiorna danno dati in tempo reale ad ogni scansione di programma e perciò tramite un semplice calcolo matematico puoi calcolare direttamente la velocità in tempo reale e perciò puoi trattare il calcolo sulla velocità come se fosse una semplice dinamometrica in tempo reale, tanto per dirla in maniera semplice. Ti consiglio di controllare i tre operandi consecutivi che l'istruzione aggiorna e con tali risultati calcolare la velocità in tempo reale, cioè dopo ogni scansione di programma, lo faccio normalmente con le mie applicazioni ed è abbastanza banale, l'istruzione da come risultati: somma degli impulsi al termine del campionamento, valore di conteggio attuale entro l'intervallo di tempo e tempo che resta da conteggiare sul tempo di campionamento impostato
alex23j Inserita: 14 settembre 2016 Autore Segnala Inserita: 14 settembre 2016 grazie provo a fare qualche prova appena possibile grazie leleviola
alex23j Inserita: 14 settembre 2016 Autore Segnala Inserita: 14 settembre 2016 Ciao leleviola, ho fatto una prova, ho programmato un'uscita come (impulso ciclo= ogni ciclo abilita x1) ho utilizzato la funzione SPD con ingresso X1 e tempo = 10sec. (quindi mi ritorna una conteggio di n. cicli/10sec.) moltiplicato per 6 = n.cicli/min. però questo mi comporta un'aggiornamento del numero ciclo ogni 10sec. con un numero sempre intero in multipli di 6. quindi poco preciso la massima precisione è quella di campionare ogni 30 sec. ma ho i tempi di aggiornamento ciclo lunghi suggerimenti?
leleviola Inserita: 14 settembre 2016 Segnala Inserita: 14 settembre 2016 il tempo di campionamento dell'istruzione SPD dipende con che frequenza hai gli impulsi da contare e come variano di frequenza comunque come ti ho già detto sopra la velocità o frequenza degli impulsi la puoi calcolare in tempo reale e non aspettare la fine del conteggio dell'istruzione SPD perchè la stessa istruzione, oltre a dare il risultato finale di conteggio nel tempo di campionamento impostato, da pure il risultato degli impulsi attualmente contati in tempo reale e il tempo rimanente affinchè il campionamento finisca e ricominci il suo conteggio da 0. Facendo due calcoli tra tempo campionamento attualmente raggiunto e impulsi attualmente contati hai in tempo reale la velocità o la frequenza degli impulsi
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