Vai al contenuto
PLC Forum


Encoder : Criterio Di Applicazione


weather

Messaggi consigliati

...salve a tutti , vi chiedo un consiglio sul modo migliore di applicazione di un encoder...

in sostanza , devo gestire da plc una tavola rotante (diametro 1500 mm ) , sulla circonferenza della tavola rotante sono poste 160 valvoline elettropneumatiche , alla tavola è calettato un encoder da 10000 impulsi/giro ; ogni singola valvola dovra' attivarsi in un range definito di conteggio ( in pratica ci sono 160 camme elettroniche ) , la rotazione della tavola avviene a velocita' fissa , l'encoder serve solo per attivare le elettrovalvole.......

...il mio dubbio riguarda l'encoder , in quanto è stato previsto un accoppiamento diretto con la tavola cioè :

1 giro di tavola ( diametro 1500mm ) = 1 giro di encoder ( diametro albero 8mm ) = 10.000 impulsi

...utilizzando un sistema con moltiplica , ad esempio 1 giro tavola = 10 giri encoder ( con encoder da 1000 impilsi)

avrei un miglioramento della precisione di funzionamento ?

grazie

Link al commento
Condividi su altri siti


Facciamo due conti da meccanico

Applicazione 1:1 (1 giro di tavola = 1 giro di encoder)

1 giro di tavola = 1500x3,14 = 4710 mm

quindi 10000 impulsi / 4710 mm = 2,123 impulsi/mm (ovvero 4710/10000 = 0,471 mm/impulso)

Applicazione 1:2 (0,5 giro di tavola = 1 giro di encoder)

1/2 giro di tavola = 4710/2 = 2355 mm

quindi 10000 impulsi / 2355 mm = 4,246 impulsi/mm (ovvero 2355/10000 = 0,2355 mm/impulso)

penso che nel tuo caso, da quanto ho capito, sia tutto da riportare alla risoluzione angolare del sistema. Che comunque segue la stessa logica:

nel caso di 1:1 si ha 360°/10000 = 0,036°/impulso

nel caso di 1:2 si ha 180°/10000 = 0,018°/impulso

Occhio ai giochi del cinematismo per la trasmissione del moto all'encoder

Modificato: da Hellis
Link al commento
Condividi su altri siti

Gianmario Pedrani

Secondo me la prima soluzione e' la migliore, in quanto con la seconda soluzione devi considerare anche il gioco del moltiplicatore, mentre nella prima il gioco e' praticamente nullo,

ciaooooo

Una domanda stupida, sara un plc a gestire le 160 cam?????

Link al commento
Condividi su altri siti

Concordo sostanzialmente con Gianmario Pedrani.

Nella prima soluzione il gioco non è che sia nullo, ma non viene esaltato (moltiplicato dalla trasmissione).

Nella seconda soluzione anche il gioco del cinematismo viene moltiplicato per il rapporto di trasmissione: una piccolissima oscillazione di una vite di fissaggio ti potrebbe creare problemi.

Link al commento
Condividi su altri siti

Normalmente è opportuno calettare l'encoder di una tavola 1/1 per avere la massima precisione (assenza giochi di un eventuale riduttore).

Sulle tavole ho sempre visto encoder a 3600i/g con moltiplica X10 (tipo EXE HEIDENAIN) in modo da avere una risoluzione di 0,001 gradi ed anche per avere un rappoto gradi/impulsi encoder intero .

L'asse deve essere dichiarato come asse rotante modulo, cioè a 359,999 gradi + 0,001 gradi si azzera (ad ogni giro tavola) .

Nel tuo caso 10000 i/giro possono essere sufficienti 360/10000=0,036 gradi ?

E' evidente che posizionerai una valvolina ogni 360/160= 2,25 gradi.

A che velocità ruota la tavola (giri/min) ?

Scusa ma quale scheda di controllo devi usare ?

Devi considerare attentamente il tempo di scasione della CPU perchè la velocità periferica potrebbe risultare elevata e quindi considerato che tra una camma e la successiva ci sono solo 2,25 gradi il tutto mi sembra critico, oltre al fatto che 160 camme elettroniche non sono poche .

Fornisci ulteriori indicazioni altrimenti è difficile dire qulcosa di sensato .

bigalex :blink:

Link al commento
Condividi su altri siti

...dunque , premetto che gli encoder li ho' solo utilizzati su assi lineari , principalmente su paletizzatori ad assi cartesiani e mai su tavole rotanti ...il mio dubbio nasceva facendo un parallelo tra l'encoder ed il potenziometro (ad esempio quelli da pannello) : con un potenziometro monogiro ottengo un certo grado di regolazione , con un potenziometro multigiro il grado di regolazione risulta essere molto piu' fine ....facendo questo parallelo mi chedevo se fosse meglio avere piu' giri di encoder rispetto a quelli della tavola girevole.

...l'applicazione in questione è molto meno sofisticata di quello che si possa pensare : la precisione richiesta è di 4/5 mm , la velocita' di rotazione è bassa (16 secondi per eseguire un giro completo) , la tavola ruota solo in una direzione

....la gestione viene fatta da plc , per prova mi sono creato una fc (rigorosamente in awl) con 16 camme poi la ho' richiamata 10 volte in ob1 , alla fine con una 313c-2dp (le valvole sono in profibus) ho' ottenuto 7/8 msec come scan time....se non fosse sufficiente utilizzo una 317-2dp

... le valvole sono disposte in 32 gruppi di 5 valvole ciascuno , le 5 valvole sono tutte nella stessa posizione , qundi l'intervallo tra un gruppo di valvole e l'altro è di 360°/32 = 11.25°

ciao e grazie per i suggerimenti

Link al commento
Condividi su altri siti

Lo scan time della cpu non significa che l'uscita risponde sulla elaborazione della camma nello stesso tempo, tanto più che c'è di mezzo il bus di campo che comunque qualcosa di ritardo comporta , oltre al tempo di attivazione della uscita sulla scheda (vai a leggere dal data sheet della scheda il tempo relativo all'attivazione uscita) .

Comunque se i calcoli li hai già fatti , non credo ci siano problemi .

Anche se per me sei quasi al limite, soprattutto se devi essere ripetibile .

Certo che passare da una 313 a una 317 è un bel salto (di costo) .

Quale scheda encoder utilizzi ?

Utilizzi gli ingressi di conteggio veloce presenti sulla CPU ?

bigalex :blink:

Link al commento
Condividi su altri siti

Nella serie S7-300 c'è una scheda che effettua la funzione di camma elettronica. Probabilmente risolverebbe i tuoi problemi.

Link al commento
Condividi su altri siti

Stamattina l'ufficio tecnico mi ha' comunicato che i gruppi sono diventati 36 con 180 valvole e di conseguenza 180 camme da gestire ; sicuramente utilizzero' una 317 con scheda fm350 per l'encoder ; ho' valutato anche l'utilizzo della fm352 specifica per la gestione delle camme elettroniche , solo che per gestire 180 camme ne dovrei utilizzare 6 piu' la cpu di gestione in piu' non so' con che tempi di loop..

...personalmente non vedo molte strade : o utilizzare una cpu molto performante come tempi di elaborazione (con costi conseguenti ) oppure progettare un hardware dedicato a microprocessore specifico per questa applicazione , cosa che vorremmo evitare per tutta una serie di motivi....

Link al commento
Condividi su altri siti

Se non ricordo male, ma potrei sbagliarmi, la 352 elabora le condizioni e poi"avvisa" la CPU con un interrupt al raggiunngimento delle coincidenze.

Potresti usare una tecnica simile anche con la 350, presettare il primo livello di comparazione ==> interrupt ==> preset del secondo livello e così via

Link al commento
Condividi su altri siti

Potresti usare una tecnica simile anche con la 350, presettare il primo livello di comparazione ==> interrupt ==> preset del secondo livello e così via

....idea interessante , da approfondire...

grazie

Link al commento
Condividi su altri siti

Scusa weather ma sembri un poco reticente a dare informazioni.

Non dici che tipo di applicazione devi fare e che precisione di ripetibilità devi assicurare (o meglio se un poco vago) .

Per Livio :

scusa ma seguendo il tuo principio , quante interrupt potrebbero concorrere per non realizzare un eccessivo allungamento del ciclo di scansione della CPU ?

E le singole uscite (180 valvole) vengono attivate in interrupt ?

bigalex :blink:

Link al commento
Condividi su altri siti

Con un Premium potresti sottrarre il valore del'encoder ad una tabella di 180 %MW che contengono il valore di attivazione delle uscite e ad altre 180%MW che contengono i valori di disattivazione.

Le 2 tabelle risultato assumeranno valori negativi ogni qualvolta l'encoder supererà il valore impostato nella tabella inizi :D ale

A questo punto sarà sufficiente mettere in serie alle uscite i corrispondenti bit di segno delle tabelle risultato :P

Es. in liguaggio ST

%MW0:180:=%MW1000:180 -Encoder;

%MW200:180:=%MW1200:180 -Encoder;

%Q1.0:=not %MW0:X15 and %MW200:X15;

%Q1.1:=not %MW1:X15 and %MW201:X15;

ecc ecc. ;)

Intal modo è possibile anche allungare le tabelle fino a 10000 almeno e l'operazione è molto rapida.

Credo che per 180 camme sia meno di 500 microsec con un TSX57103.

Inoltre i dati sono modificabili dall'esterno al volo senza arrestare la macchina :)

Credo che il tutto gestito in task Fast potrebbe darti precisioni intorno ai 4 o 5 ms, escluso ovviamente il tempo del fieldbus.

Se non hai un PLC imposto, pensaci.

Link al commento
Condividi su altri siti

scusa ma seguendo il tuo principio , quante interrupt potrebbero concorrere per non realizzare un eccessivo allungamento del ciclo di scansione della CPU ?

dipende da quello che devi fare nell'interrupt. Potrebbero essere due sole istruzioni: set o reset di un'uscita, oppure diecimila.

Da quanto scrive weather le valvole dovrebbero essere raggruppate ed ogni gruppo dovrebbe essere comandato in contemporanea, quindi se ho capito bene dovrebbero essere una decina di gruppi ==> dieci interrupts. Però cone hai notato tu non si abbonda di info, i parametri per fare una valutazione corretta sono tanti e solo alcuni noti.

Link al commento
Condividi su altri siti

Per DEY50 : Buona soluzione , comunque tutte le 180 valvole dovrebbero essere comandate in task fast ed anche il refresh del valore della scheda di conteggio deve essere in task fast (suppongo ti riferisca ad una CAY22) .

E' chiaro che se c'è altro processo da gestire ci si augura non debba rispondere in tempi troppo rapidi, poichè dovrà essere processato nella task master che subisce l'allungamento dovuto al processo periodico della task fast.

Per Livio : weather ha parlato di gruppi ma anche che ogni valvola ha la sua camma di attivazione quindi 180 camme .

bigalex :blink:

Link al commento
Condividi su altri siti

Per Livio : weather ha parlato di gruppi ma anche che ogni valvola ha la sua camma di attivazione quindi 180 camme .

A me sembra che dica una cosa diversa

....le valvole sono disposte in 32 gruppi di 5 valvole ciascuno , le 5 valvole sono tutte nella stessa posizione ..

Se sono tutte nella stessa posizione la camma è unica per tutte e 5; è vero che questa mattina o gruppi sono diventati 36 quindi saranno 36 interruzzioni. Se come dice il periodo di rotazione è pari a 16s., ci sono 444.44ms tra un interrupt e l'altro, tempo che per un PLC moderno equvale ad un'era geologica.

E' vero che non si hanno informazioni di tutta la specifica dell'automazione ma, se i dati riportati sono esatti, per fare solo questa cosa basta un S7226, e ne avanza anche.

Link al commento
Condividi su altri siti

Mi riferisco ad una scheda di conteggio TSXCTY oppure ad un Momentum su Fieldbus 170AEC 920 00 ;)

Non credo che ci siano garvi implicazioni nei tempi di task Mast o Fast.

Sui calcoli di questo tipo il Premium è velocissimo e comunque i tempi di esecuzione delle istruzioni sono documentati nel PL7 :rolleyes:

Link al commento
Condividi su altri siti

Per Livio .

Stamattina l'ufficio tecnico mi ha' comunicato che i gruppi sono diventati 36 con 180 valvole e di conseguenza 180 camme da gestire

Questo lo ha scritto weather ergo deduco che le camme siano una per ogni valvola e quindi 180 . :o

Per DEY50 : Ok , la CTY ha il conteggio come modulo (asse roll over) ?

bigalex :blink:

Modificato: da bigalex
Link al commento
Condividi su altri siti

Per bigalex

Non voglio iniziare una polemica su un argomento di cui non m'importa poi tanto, ma per la precisione weather scrive:

"....le valvole sono disposte in 32 gruppi di 5 valvole ciascuno , le 5 valvole sono tutte nella stessa posizione .."

poi riscrive:"Stamattina l'ufficio tecnico mi ha' comunicato che i gruppi sono diventati 36 con 180 valvole e di conseguenza 180 camme da gestire.." In Italiano standard questo significa che se prima c'erano 32 gruppi di 5 valvole, per un totole di 160 valvole, ora ci sono 36 gruppi di 5 valvole, per un totale di 180 valvole.

Poi se non è così lo chiarisca weather che, oltre tutto, è la persona maggiormente interessata.

Link al commento
Condividi su altri siti

Non è certo per far polemica, ma in italiano standard

Stamattina l'ufficio tecnico mi ha' comunicato che i gruppi sono diventati 36 con 180 valvole e di conseguenza 180 camme da gestire

significa che le camme sono 180 ! :)

Coumunque Livio mi puoi confortare nel calcolo che segue ?

Alla velocità di 16sec/giro la tavola percorre 22,5° al secondo, supponendo di avere un tempo di reazione del sistema di 10ms avremo uno spostamento angolare di 0,225° (ogni 10ms) che rappresenta il nostro errore di ripetibilità e nel caso peggiore potrebbe arrivare quasi al doppio cioè 0,450° e tradotto in spazio lineare

1500mmX3,14=4710mm circonferenza

4710mm/360°=16,0833mm/° spazio percoso per ogni grado di rotazione tavola

16,0833mm/°*0,450°=7,23mm spazio percorso ogni 10ms con errore massimo

consideriamo di avere esagerato e che il tutto risponda in 10ms con errore minimo avremmo:

16,0833mm/°*0,225°=3,615mm spazio percoso ogni 10ms con errore minimo.

Tale valore sembra essere a ridosso della tolleranza massima che weather aveva indicato .

Spero di non aver detto ca**ate .

bigalex :blink:

Link al commento
Condividi su altri siti

per Bigalex:

La TSXCTY2C ha il conteggio infinito o Rollover ed eventualmente gestisce anche encoder assoluti SSI che per l'applicazione in questione non sarebbe neanche male.. :huh:

Nel caso delle CTY2A/4A invece il conteggio è su 24 bit, vale a dire -16000000 a +16000000 e rotti. Poi va azzerato.

Dipende quindi dalla velocità della macchina: ad 1Khz ce n'è per più di 8 ore, oppure c'è modo di azzerarlo al volo ad ogno giro.

Basta poi prendere il valore contato, dividerlo per 1000 e prenderne il resto.. che ovviamente va da 0 a 999 e il gioco è fatto :rolleyes:

Link al commento
Condividi su altri siti

... le valvole sono disposte in 32 gruppi di 5 valvole ciascuno , le 5 valvole sono tutte nella stessa posizione , qundi l'intervallo tra un gruppo di valvole e l'altro è di 360°/32 = 11.25°

Se le 5 valvole sono tutte nella stessa posizione signifca che corrispondono ad una sola camma

Se i gruppi diventano 36 l'intervallo tra una camma e l'altra passa da 11.25° a 10° gradi.

Se il periodo(2pi) di rotazione è pari a 16s ==> 1/36 =0.4444444444s.

Questo sono le specifiche che weather ha dato al forum! Poi, se vuoi interpretarle deversamente....

E ora chiudo veramente perchè di tutta sta roba non me ne cale più di tanto :)

Modificato: da Livio Orsini
Link al commento
Condividi su altri siti

mi collego in questo istante e vedo che la discussione ha' preso una piega un po' particolare ....non era mia intenzione creare polemiche o altro.....se le informazioni fornite erano scarse e incomplete chiedo venia , l'applicazione in oggetto è ancora nella fase di studio di fattibilita' e per forza di cose anche le informazioni in mio possesso non sono definite al 100%....comunque per chiudere questo post e fare (spero) un po' di chiarezza :

sulla circonferenza della tavola rotante sono disposti in posizione equidistante 36 gruppi , ogni gruppo è formato da 5 valvole impilate una sull'altra , quindi nella stessa posizione angolare ...ipotizzando di avere un encoder da 3600 impulsi il funzionamento del gruppo 1 è il seguente (ovviamente è un esempio) :

gruppo 1

valvola 1 ON con conteggio da 1 a 357

valvola 2 ON con conteggio da 358 a 469

valvola 3 ON con conteggio da 499 a 1268 (da 470 a 498 nessuna valvola attiva)

valvola 4 ON con conteggio da 1269 a 1760

valvola 5 ON con conteggio da 1600 a 2250 (da 1600 a 1760 valvola 4 e 5 ON entrambi)

utilizzando un encoder da 3600 impulsi con 36 gruppi equidistanti ne consegue che il "passo" tra un gruppo e l'altro è di 100 impulsi , il funzionamento delle valvole del gruppo 2 avra' lo stesso intervallo di attivazione sfasato di 100 impulsi e cioè :

gruppo 2

valvola 1 ON con conteggio da 101 a 457

valvola 2 ON con conteggio da 458 a 569

valvola 3 ON con conteggio da 599 a 1368 (da 570 a 598 nessuna valvola attiva)

valvola 4 ON con conteggio da 1369 a 1860

valvola 5 ON con conteggio da 1700 a 2350 (da 1700 a 1860 valvola 4 e 5 ON entrambi)

e cosi per i gruppi restanti , quindi le 180 valvole lavorano in modo assolotumente asincrono , mi scuso ancora per la poca chiarezza dei messaggi precedenti

la soluzione di utilizzare il conteggio dell'encoder per puntare all'interno di una tabella contenente lo stato delle singole valvole mi sembra la soluzione piu' performante , ovviamente a monte sara' necessario che introduca i dati in questa tabella , questo avverrebbe off line , con la macchina non in produzione.

per bigalex : ho fatto anche io lo stesso tuo calcolo , gia' con 10 msec dovrei essere dentro la tolleranza , ma con la soluzione a tabella penso come minimo di dimezzare il tempo di loop

per dev50 : che cosa è premium?? e' una marca oppure un modello di plc ? io conosco solo siemens ed omron , rispetto alla serie s7-300 siemens e' migliore come velocita' di elaborazione ?

un grazie ed un saluto a tutti e scusate se ho' creato un po' di confusione

Link al commento
Condividi su altri siti

c'e' qualcosa che non mi quadra, ragionate come se usaste un plc degli anni 80.

la tavola gira in 16 secondi, l'encoder da 3600 impulsi giro

16.000 milliseccondi diviso 3600 impulsi e' un impulso ogni 4,44444444 msec. tempo che anche la piu' scassata scheda di ingresso veloce vede

180 valvole (nel legittimo dubbio considero l'ipotesi di bigalex e non quella di livio) indipendenti sono solo 360 righe, 180 di set e 180 di reset.

in pratica

una scheda di ingresso veloce, a & b dell'encoder collegati su un counter veloce a 32 bit; l'impulso m (o z, che dir si voglia) della scheda arriva da un proximity (o fotocellula) esterno all'encoder per aumentare la precisione di zero

6 scheda di uscite da 32 punti del tutto standard (e la valvole diventano 192 max.)

288 righe di programma per la gestione di ogni valvola piu' qualche altra amenita'

se il plc gira a 10 msec. da come sono abituato io direi che e' piuttosto scadente !

se confermato che la precisione di 10 msec sarebbe sufficente non userei neanche gli interupt

Modificato: da Piero Azzoni
Link al commento
Condividi su altri siti

se il plc gira a 10 msec. da come sono abituato io direi che e' piuttosto scadente !

Weather ha parlato di pilotaggio delle valvole via Profibus, può darsi che 2..3 ms se li porti via la comunicazione Profibus.

CIAo

Link al commento
Condividi su altri siti

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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...