saisas Inserito: 8 novembre 2006 Segnala Inserito: 8 novembre 2006 Buongirno a tutti.Dovrei controllare la velocita di un tappeto in mm/s,attualmente il mio sistema funziona nel seguente modo:Sul tappeto e calottato un encoder da 1000 impulsi ,dove ad un giro di tappeto equivale uno spostamento di 1000 decimi.L'encoder e collegato ad un plc dove a cicli di 0,1s vado a fare una campionatura di quanto si è spostato il tappeto, il problema sorge al momento che devo convertire gli impulsi in 0.1s a 1s dove ho degli incrementi in multipli di 10.Qualcuno conosce un sistema piu performante ho al quanto piu preciso dove non avro degli incremeti di 10 ma ma degli incrementi proporzionali alla posizione del tappetoGrazzie mille
AndreaC Inserita: 8 novembre 2006 Segnala Inserita: 8 novembre 2006 Scusa, ma, da come scrivi, sembra che misurando una variazione di spostamento in decimi di mm ogni decimo di secondo, hai già la velocità in mm/s, pari al numero di impulsi letti, quindi non serve nessun calcolo.
Livio Orsini Inserita: 8 novembre 2006 Segnala Inserita: 8 novembre 2006 Per misurare una velocità è indispensabile misurare la spazio percorso nell'unità di tempo. Ci sono due metodi.1 - Misuri il tempo che impiega il dispositivo per percorrere uno spazio preciso e determinato, p.e. 1m2 - Misuri lo spazio percorso in un intervallo di tempo preciso, p.e. 1"Nel tuo caso usi ilsecondo metodo. Dici di avere un itervallo di tempo pari a 0,1". Vuoi incrementare la precisione.Primo è necessario assicurarsi della precisione dell'intervallo di tempo; se è legato al tempo di ciclo non è sicuramente preciso. Devi crearti un timer di sistema (magari se ci dicessi tipo e marca di PLC) che scatena un interrupt sul quale vai a leggere il conteggio degli impulsi.Poi se non hai problemi di velocità di aggiornamento della misura puoi allungare l'intervallo di tempo, p.e. 1"
saisas Inserita: 8 novembre 2006 Autore Segnala Inserita: 8 novembre 2006 Livio io uso i plc dalla nais serie fpx.Per quanto riguarda la campionatura degli impulsi faccio partire un timer che durante il tempo di 0.1s va a copiare il valore degli impulsi generato dall'encoder su di una word e dove in seguito andro a convertirlo in mm/s.Nel messaggio di prima fai riferimento ad un timer di sistema, sapresti indicarmi come configurarlo nel mio plc Grazzie mille
Livio Orsini Inserita: 8 novembre 2006 Segnala Inserita: 8 novembre 2006 spiacente, ma non conosco quel tipo di plc
Roberto Gioachin Inserita: 11 novembre 2006 Segnala Inserita: 11 novembre 2006 Se usi FPX di Panasonic, hai sufficenti funzioni per fare questo tipo di calcolo e molto altro.Non hai bisogno di configurare il PLC per usare un "Interrupt a tempo", devi solamente utilizzare le istruzioni corrette che trovi anche sul'. in linea di "FPWin-gr o pro" (funzione INT, va inserita dopo "End").In questo modo ottieni un calcolo degli impulsi su unità di tempo molto preciso.puoi quindi effettuare la divisione che ti serve per calcolare la velocità.Se ti serve puoi convertire i dati in virgola mobile e dopo i calcoli convertire ancora in intero.Se ti serve fare una conversione per adattare i dati ottenuti, in una differente unità di misura, puoi usare la funzione "SCAL" utilizzando una tabella con due soli valori.Quanto ho scritto è solamente una traccia, in quanto non ho capito se il tuo problema è relativo alla precisione del valore letto o la conversione degli impulsi letti in velocità.Roberto
Roberto Gioachin Inserita: 11 novembre 2006 Segnala Inserita: 11 novembre 2006 Per la gestione dell'interrupt a tempo devi scrivere sul "Main program", l'istruzione "ICTL - H2 - K1" per attivare il tuo processo ogni 10ms, e deve avere come condizione il segnale che vuoi usare per iniziare a calcolare, oppure R9013 per eseguire sempre il calcolo, poi devi usare "INT24" che si riferisce appunto all'interrupt a tempo (INT0-7 ecc si riferiscono a interrupt su evento) per inserire le istruzioni che avevi gia scritto e che servono a leggere gli impulsi dell'encoder.Roberto
saisas Inserita: 14 novembre 2006 Autore Segnala Inserita: 14 novembre 2006 Roberto Gioachin ti ringrazzio per l'interesamento al mio problema,ho provato a eseguire le istruzioni che mi hai indicato ma non è andato a buon fine,non sono riuscito a eseguire l'interrupt.Avresti qualche esempio dove utilizzi l'interrupt come campionatura da inviarmi per chiarirmi le idee.Grazzie mille
Roberto Gioachin Inserita: 16 novembre 2006 Segnala Inserita: 16 novembre 2006 Cerco di spiegarti.Questo PLC come in genere i vari prodotti giapponesi, è strutturato in modo tale che una volta inserita l'istruzione "End" nel programma principale (main), si possono inserere subroutine e interrupt che vengono richiamati nel programma "main".Alla fine il risultato è lo stesso che utilizzando le "function" sui PLC europei.Sul programma main scrivi:ST R9013 (bit che che è attivo sempre dalla seconda scansione di programma in poi)ICTL - H2 - K1 (impostazione dell'interrupt a tempo, 10ms) (ICTL - H2 - K10 = 100ms)Dopo l'istruzione "End" devi inserire:INT 24< programma che legge il valore dell'encoder e calcolo della velocità>IRETQuanto descritto serve a calcolare la velocità con una cadenza di tempo prestabilita e costante, in quanto il PLC esegue quanto scritto fra INT 24 e IRET rispettando il tempo impostato, ed interrompendo il programma "MAIN" in qualunque punto pur di rispettare questa condizione, salvo poi riprenterlo una volta eseguito il programma su interruzione.Per quanto riguarda il programma per calcolare la velocità, mi sembrava di aver capito che lo avevi già fatto.Se no riesci a risolvere il problema, cerca di spiegare meglio quello che riesci e quello che non riesci a fare, ed inoltre dimmi anche quale software utilizzi.CiaoRoberto
saisas Inserita: 16 novembre 2006 Autore Segnala Inserita: 16 novembre 2006 Io sto utilizzando FPWin_gr
saisas Inserita: 16 novembre 2006 Autore Segnala Inserita: 16 novembre 2006 Roberto Gioachin il mio problema sta nel realizzare il sistema di conteggio,diciamo che sonoriuscito a realizzare una sorte di contaimpulsi che in realta non funziona molto bene,non riesco ad avere un controllo della velocita performante e lineare.Sapresti spiegarmi come poter realizzare un sistema che mi conti la velocita di un asse in decimi al secondo piu performante del mio sistema.Ti elenco anche qualche dato che ti potrebbe essere utile-Un giro di tappeto 1000 dm-Motore 1400 giri -Inverter per tappeto della taglia del motore-Riduttore 1/100-Encoder 1000 impulsi a giro Da quello che leggo sopra mi e venuta una domanda a cui non mi sono saputo dare una risposta,Quando utilizzo la funzione interrupt che va utilizzato dopo END,escludo una parte di programma?Mi spiego meglio,nel momento in cui il programma stia eseguendo l'interrupt per il tempo impostato,la parte di programma che e compresa al di sopra dell'interrupt non viene eseguita.Se fosse cosi che problemi potrei avere sulla macchina nel caso dove in quella parte di programma che non viene eseguita stavo controllando dei dati ho uno portare in quota un asse (un posizionamento).Nel caso andro ad utilizzare la funzione ad interruprt per la lettura degli impulsi,la conversione di quest'ultimi convenga farli sempre nell'interrupt o nel programma soprastante.Spero di essere stato chiaro,nel caso non lo sono stato ti prego di non esitare a chiadermi qualche altro dato ho dei passaggi dove non sono stato chiaroGrazzie mille
Roberto Gioachin Inserita: 18 novembre 2006 Segnala Inserita: 18 novembre 2006 diciamo che sonoriuscito a realizzare una sorte di contaimpulsiPrima questione, cosa significa quanto è scritto sopra??In realtà il PLC ha già un contaimpulsi per segnali veloci.Se tu hai cercato di realizzare un tuo sistema di conteggio, sicuramente la frequenza massima degli impulsi che possono essere letti è molto bassa, sicuramente molto al di sotto di quanto ti serve.Sempre per il motivo che non sò cosa hai realizzato, cerco di spiegarti come si configura un contatore veloce per lettura di un encoder a due canali.Su Fpwin-gr: Option - PLC Configuration, scegli Internal HSC.Scegli per CH0 "2 Phase Input (X0 X1)", e conferma il tutto.A questo punto gli ingressi X0 e X1 devono essere utilizzati per le due fasi dell'encoder, che deve avere uno stadio di uscita di tipo PNP o Push-pull 24Vdc.Il conteggio degli impulsi lo trovi su DT9044+DT9045 a 32 bit.Naturalmente devi verificare che la frequenza degli impulsi che entrano nel PLC non superi 30 KHz. non riesco ad avere un controllo della velocita performante e lineareCosa significa "controllo della velocità"??Qui stiamo parlando di lettura di una velocità, il controllo richiede altre cose che non hai mai menzionato.Sapresti spiegarmi come poter realizzare un sistema che mi conti la velocita di un asse in decimi al secondoSe anche questo non ti è chiaro, credo che l'impresa sia ardua, comunque provo a darti qualche informazione.Per decimi al secondo credo tu voglia dire decimi di millimetro al secondo, per fare questo tu devi contare gli impulsi dell'encoder in una quantità di tempo conosciuta e costante.Il tuo programma (all'interno dell'interrupt), deve calcolare la differenza fra il numero di impulsi attuali ed il numero di impulsi della lettura precedente, per fare questo, una volta effettuata la sottrazione, devi salvare in una memoria a doppia word il valore attualmente letto dal contaimpulsi, per poter essere utilizzato nella sotrazzione.Se per esempio il programma su interrupt a tempo viene eseguito ogni 100ms, il risultato del calcolo moltiplicato per 10 corrisponde ad un certo numero di impulsi al secondo, da quì calcoli i millimetri al secondo.Quando utilizzo la funzione interrupt che va utilizzato dopo END,escludo una parte di programma?La risposta è NO!!, se così fosse credo che questa istruzione non servirebbe proprio a nulla.Il programma principale, viene interrotto per eseguire il programma su interrupt, al termine di questo viene ripreso il programma principale dal punto dove era rimasto sospeso.Nel caso andro ad utilizzare la funzione ad interruprt per la lettura degli impulsi,la conversione di quest'ultimi convenga farli sempre nell'interrupt o nel programma soprastante.All'interno dell'interrupt, il calcolo viene eseguito sempre a tempo, sul programma principale viene eseguito ad ogni scansione, mi sembra che il miglior sistema sia il primo, non ti pare??CiaoRoberto
saisas Inserita: 19 novembre 2006 Autore Segnala Inserita: 19 novembre 2006 Roberto GioachinNel rileggere il messaggio di prima mi sono reso conto che in effetti nella prima parte del messaggio non sono stato molto chiaro.Quando prima citavodiciamo che sonoriuscito a realizzare una sorte di contaimpulsi Intendevo che ero riuscito a realizzare un sistema di lettrura della velocita che in realta non funziona molto bene,per la lettra degli impulsi dell'encoder a bordo plc è installata una cassetta di conteggio velocedove vado a leggere il conteggio degli impulsi nella Word DT90332In seguito dove citonon riesco ad avere un controllo della velocita performante e lineareIntendo dire che non riesco ad avele la lettura della velocita lineare,mi spiego megli con un esempio,Se il mio tappeto lo faccio viaggiare sempre alla stessa velocita noto che a volte la velocita che vado a leggerevaria notevolmente ad esempio mi passa da 30.1 a 25.7 o da 15.2 a -10.4 ho escluso che possa essere un problema di lettra degli impulsi perche se vado a verificare lo spostamento reale del tappeto coincide con quello del valore del contatore.Il problema credo che stia propio nella realizzazione del sistema di lettura a tempo.In tal caso se mi spedisci la tua email ti invio il sistema che ho realizzato cosi puoi dargli un'occhiata e potresti dirmi cosa ne pensi e se potrebbe funzionare come sistema di lettura, e se ho eseguito quanto detto prima nei tuo messaggi in modo corretto .Grazzie mille
Roberto Gioachin Inserita: 20 novembre 2006 Segnala Inserita: 20 novembre 2006 Per ottenere un'informazione di velocità abbastanza precisa, si devono considerare alcuni aspetti del sistema.- Nomero di impulsi giro dell'encoder, maggiore è questo valore, maggiore sarà la risoluzione e quindi la precisione del calcolo.- Encoder calettato sull'albero lento del riduttore o sull'albero del motore, vale lo stesso discorso detto sopra.- Tempo di campionamento per il calcolo del numero impulsi, in modo da ottenerne il valore di velocità, anche in questo caso un tempo troppo basso riduce la risoluzione.Tutti questi dati possono essere calcolati in modo da ottenere la risoluzione voluta, a volte si deve scegliere un compromesso che permetta di ottenere una discreta risoluzione magari a scapito della rapidità con cui viene aggiornato il dato.Oltre a questo, bisogna anche imparare calcolare l'errore con i dati forniti dal costruttore, in questo caso Panasonic, i dati che ti servono li trovi sicuramente nei manuali.CiaoRoberto
Soundtechsystem Inserita: 14 febbraio 2007 Segnala Inserita: 14 febbraio 2007 Ciao Saisa, anche io faccio carri e movimentazioni e sembra che io e te abbiamo gli stessi problemi! Anche io ho avuto il tuo stesso problema, ma forse usando plc omron ho risolto prima..Comunque io non so come si programmano i plc che usi te ma posso solo dirti in parole povere comeho fatto io.Innanzitutto come hanno già detto tutti, si deve scegliere un riferimento o in spazio od in tempo.Visto che V=S/tIo ho scelto il tempoHo un fatto un Fb dove si può impostare come variabile di entrata il perido di campionamento imponendoche il minimo periodo possibile è il clock di 0,02 s (il clock di sistema più breve possibile) Conosci il teorema per la Conversione Analogico/Digitale?Dice che la frequenza di campionamento deve essere due volte la frequenza massima del segnale.Come sappiamo F=1/tQuindi il dimensionamento dipende da quando rapidamente ti cambierà la velocità nel tuo sistema.Comunque io prendevo gli impulsi dalla scheda e li convertivo in mm, a quel punto, ad intervalli alternati di 0,02Facevo due foto alla quota, per intenderci partendo dall'istante iniziale t0=(0 s) all'istante t1(=0.002s) facevo una foto e laappoggiavo in D1, all'istante t2(0,004s) facevo un'altra foto e la appoggiavo in D2,a quel punto in scansione confrontava le due word dove risiedevano le foto, (capivo insomma se il valore era incrementale o decrementale )e poi sottraevo la word con la quota maggiore - la word con la quota minore,Esempio D1=50mm D2=250 (CASO INCREMENTALE)Deltax=D2-D1=200MMUna volta ottenuta la mia variazione di spostamento , sono a cavallo, Ho percorso quindi 200mm in 0,02A questo punto è sufficente convertire questa velocità nell'unità di misura che desideri (mm/s, mt/min)e dovresti essere a posto.Se usi un periodo troppo breve vedrai che il risultato sarà un po'troppo ballerino,se usi un perido troppolungo il valore di lettura sarà lento alla risposta reale dell'asse.Spero di esserti stato utile.
saisas Inserita: 15 febbraio 2007 Autore Segnala Inserita: 15 febbraio 2007 Soundtechsystem,da quando ho inserito il messaggio è passato molto tempo e avevo risolto il problema propio come tu me lo ai indicato,ma nulla toglie un ringrazziamento per un tuo ulteriore aiuto.Grazie mille
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