Vai al contenuto
PLC Forum


S7 1200 E Encoder Incrementale


texano

Messaggi consigliati

Buonasera, vorrei sostituire delle cam di una macchina confezionatrice con un encoder incrementale, in modo da sapere sempre la posizione e quindi in determinate posizioni abilitare delle uscite digitali.

Non ho mai avuto a che fare con decoder incrementali, potreste indicarmi materiale da consultare con esempi, oppure indicarmi la strada da prendere?

Grazie

Link al commento
Condividi su altri siti


Ciao, quello che vuoi fare è fattibilissimo, soprattutto se hai una macchina a cammes meccaniche ( quindi con un albero principale che da il movimento meccanico alle varie stazioni) . Basta che monti l'encoder sull'albero principale e lo colleghi agli ingressi veloci del plc, ora non conosco benissimo s7 1200 ma sono sicuro che si possa impostare la modalità che in Mitsubishi si chiama ' ring' , cioè imposti un conteggio oltre il quale il conteggio stesso si azzera. In questo modo se per esempio monti un 360 impulsi/giro lo imposti a 360 e poi si azzera e cosi via, quindi sarai in grado di discriminare ogni grado dell' angolo giro . Con delle semplici istruzioni di comparazione potrai poi attivare/disattivare le tue uscite digitali a piacere con una flessibilità molto migliore delle cam meccaniche( immagino tu abbia delle cam che vanno a premere direttamente i tuoi interruttori/valvole pneumatiche).

Per la documentazione non saprei cosa consigliarti, a parte di assicurarti che l' encoder che andrai a montare sia compatibile con le entrate del tuo plc . Se lo colleghi direttamente alla cpu credo che un encoder con uscita 24 v pnp push/pull vada bene, ma non ne ho mai montato uno sul 1200 quindi aspetto chi è più informato.

Se può consolarti, sto per fare la stessa identica operazione su una macchina astucciatrice ma con altro plc..

Ciao

Link al commento
Condividi su altri siti

Per prima cosa ricordati che un encoder incrementale all'avvio non sa la sua posizione quindi dovrai crearti un ciclo di 0 all'inizio .

In secondo luogo bisogna capire che tipo di precisione hai bisogno e di conseguenza scegliere l'encoder più adatto per la tua applicazione .

Prova a dare più indizi , es . deve contare solo avanti o anche indietro , ecc. ecc .

Link al commento
Condividi su altri siti

Giuseppe Signorella

la modalità che in Mitsubishi si chiama ' ring' , cioè imposti un conteggio oltre il quale il conteggio stesso si azzera

Molti encoder, hanno un canale chiamato z che genera un impulso ogni giro. Proprio per essere utilizzato come reset del contatore.

Questo ti comporta però l'utilizzo di un ingresso del PLC.

In alternativa puoi crearti un interrupt che ogni qual volta il contatore raggiunge un determinato valore lo azzeri.

Se vai nella configurazione Hardware del PLC alla voce HSC, troverai entrambe le funzione da abilitare. Reset ed Interrupt

Link al commento
Condividi su altri siti

Gira e rigira le funzioni di un contatore veloce sono le stesse per tutti anche se hanno nomi diversi...che poi su un plc certe funzioni vadano implementate oppure date come " automatiche " questo dipende dalla marca. Mi riferisco alla funzione " ring" che accennavo io, che altro non fa che abilitare un interrupt ogni qual volta che il valore raggiunge un determinato valore; questo interrupt azzera il conteggio.

Ps Sui plc Schneider se non sbaglio la modalità si chiama " one loop" .

Modificato: da step-80
Link al commento
Condividi su altri siti

Attenzione ai tempi di ciclo della CPU.

Se il tempo di ciclo della CPU non comporta sfasamenti significativi, puoi gestire le varie cammes con delle comparazioni fatte nel programma.

Se invece ti serve una reazione veloce, dovrai gestire tutto con degli interrupt.

Link al commento
Condividi su altri siti

Grazie, la mia applicazione consiste in gestire una macchina astucciatrice, che sto revampando, prima c'erano 4 sensori induttivi ognuno su una cam meccanica per le varie fasi, gestite d uno schift register.

il mio obbiettivo è sostituire i sensori e le cam meccaniche con un encoder incrementale, in modo da poter eventualmente variare le fasi non più agendo sulle cam meccaniche ma da pannello.

spero di essere stato abbastanza chiaro, il mio problema è che non ho mai fatto programmi che gestiscano encoder, e mi servirebbe una vostra mano

Link al commento
Condividi su altri siti

Cosa facevano gli induttivi sulle cam? Cioè cosa pilotavano? Elettrovalvole pneumatiche?

Anch io ho modificato una astucciatrice in questo modo, ma va da se che se le cam meccaniche sono collegate meccanicamente agli attuatori non li puoi modificare se non di pochissimo tramite regolazione dei tiranti o simili...

Prova a dare qualche info in più su come è fatta la macchina, magari se riesci una foto. Per la gestione da encoder credo che la parte piu difficile sia montare lo stesso sull' albero, una volta che lo vedi girare dentro il tuo programma gestire gli attuatori si fa con una riga di ladder.

Come dicevano prima gli altri ricordati che un incrementale all' accensione non sa dove si trova e quindi devi prevedere un ciclo di zero magari con la fase z.

Ciao

Link al commento
Condividi su altri siti

Appena uscita la versione 4 del logo Siemens circa sette otto anni fà, feci una confezionatrice con encoder togliendo le vecchie camme meccaniche. ( questo se non vuoi spendere molto, e se non hai problemi di velocità)

Link al commento
Condividi su altri siti

Grazie, la mia applicazione consiste in gestire una macchina astucciatrice, che sto revampando, prima c'erano 4 sensori induttivi ognuno su una cam meccanica per le varie fasi, gestite d uno schift register.

il mio obbiettivo è sostituire i sensori e le cam meccaniche con un encoder incrementale, in modo da poter eventualmente variare le fasi non più agendo sulle cam meccaniche ma da pannello.

Da quanto ho capito i sensori entravano in un PLC, ed era il PLC a comandare gli attuatori, quindi il sistema già risentiva di ritardi dovuti al tempo di ciclo del PLC.

Se è così, direi che la sostituzione di camme e sensori con un encoder può portare solo benefici. A patto, ovviamente, di gestire correttamente il sistema.

Link al commento
Condividi su altri siti

Per ora non viene svelata marca e modello dell' (eventuale?) plc montato sulla macchina anche se deduco sia datato visto che si parla di "revamping" e di s7-1200 da montare.

Per Batta: visto che si intuisce la tua esperienza in materia di confezionatrici,personalmente quando usi interrupt ed invece quando non li usi? Per attuatori pneumatici ti è capitato di usarne ?

Grazie in anticipo della risposta

Link al commento
Condividi su altri siti

ciao

solitamente per quel tipo di applicazione o altre con movimento centrale a 360° uso encoder assoluti che usano il Codice Gray. Sai sempre dove si trova la macchina anche quando si ferma e togli corrente .

io non uso siemens ma i plc che uso ha la funzione di trasformare il codice gray in gradi.

Link al commento
Condividi su altri siti

Per Batta: visto che si intuisce la tua esperienza in materia di confezionatrici,personalmente quando usi interrupt ed invece quando non li usi? Per attuatori pneumatici ti è capitato di usarne ?

Non ho una esperienza particolare sulle confezionatrici, ma il concetto non cambia: tutto dipende dall'errore che ci si può permettere.

La gestione con interrupt garantisce chiaramente una maggior precisione, ma è anche più complessa da realizzare (continuo cambiamento dei valori di preset anziché semplici comparazioni, tanto per cominciare).

Quindi passo alla gestione con interrupt solo se il tempo di scansione del PLC (e relativo ritardo nell'attivazione delle uscite) non mi permette di ottenere precisione sufficiente.

Certo che è inutile ricercare la precisione nel comando se poi si utilizzano attuatori con ritardi biblici.

Riguardo invece l'utilizzo di encoder assoluto o incrementale, c'è a dire che l'assoluto è sicuramente più comodo, ma anche più costoso. Inoltre torna ancora in gioco il discorso velocità. L'encoder assoluto trasmette la posizione al modulo con una comunicazione seriale (SSI = Synchronous Serial Interface), che introduce quindi dei ritardi. Per la stragrande maggioranza delle applicazioni la velocità di comunicazione è tale da non introdurre ritardi significativi, ma non si può dare sempre per scontato. Se si tratta di encoder collegato su bus di campo, il discorso dei ritardi di comunicazione si sposta sui tempi del bus.

Per il 1200, addirittura mi pare non esistano moduli per encoder assoluti.

Link al commento
Condividi su altri siti

Gentilissimo nella spiegazione, grazie.

Visto che l'autore del post non si fa ancora avanti, approfitto per 'sporcare' un pó la sua discussione( anche se si tratta sempre di encoder). Mi scuso già coi moderatori..

Supponendo di impostare un setpoint di 3000 impulsi, si supponga di richiamare un interrupt quando il contatore raggiunge tale soglia. Encoder da 1000 imp/giro, che ruota a circa 80 rpm.

Nella routine di interrupt faccio un semplice MOVE del valore del contatore dentro una variabile globale... che valore vi aspettereste di trovare dentro tale variabile?

Link al commento
Condividi su altri siti

Buonasera, scusate il ritardo, allora la cpu che monto è una 1200 in sostituzione di un s7 200, cpu che gestiva gli ingressi dei sensori induttivi montati sulle cam, e che in base alla posizione , eventuali consensi tipo presenza prodotto e allo stato dello schift register, azionavano elettrovalvole varie per presa astucci, presa istruzione e spingitore per blister.

Vorrei fare tutto questo con la sostituzione dei sensori sulle cam con l'encoder e un pannellino Panel TP700 Comfort

Link al commento
Condividi su altri siti

Se la situazione è questa, come ho già detto, è fattibilissimo.

Devi usare un sensore per fare l'azzeramento del conteggio ad ogni giro e sostituire i segnali che prima arrivavano dai sensori sulle camme con delle comparazioni.

Unica accortezza, visto che l'encoder non è assoluto, prima di azionare gli attuatori dovrai far fare un passaggio sotto al sensore di zero.

Altra cosa che richiede un po' di attenzione, è se hai azioni da compiere vicine ai 360 gradi. Voglio dire, se devi azionare un attuatore a 359,5 gradi, non ti basta fare una comparazione per >= 359,5 perché potresti perdere l'evento (sempre che tu non decida di gestire tutto con gli interrupt ma, vista l'applicazione, direi che non è il caso).

Link al commento
Condividi su altri siti

Per Batta:

Dici che sia necessario usare un sensore di azzeramento ad ogni giro. Ritieni non sia affidabile il sistema di azzeramento automatico ( per intenderci la modalitá loop continuo) dove il contatore raggiunge una certa soglia e poi si azzera? Oppure è solo per una questione di comodità perchè cosi ho un azzeramento sempre nel medesimo punto? Questo solo per pura conoscenza , visto che sono anch io alle prime armi con gli encoders.

Grazie in anticipo

Link al commento
Condividi su altri siti

Oppure è solo per una questione di comodità perchè cosi ho un azzeramento sempre nel medesimo punto?

E' unas questione di precisione. Se meccanicamente regoli la marca di zero encoder in corrispondenza del proximity di zero hai anche una maggior comodità.

In un asse lineare il ciclo di zero lo fai solo all'inizio e, al limite, ad ogni ritorno a zero dopo aver completato le varie missioni.

Nel caso di una camma è cosa buona e giusta riazzerare sempre il conteggio sulla marca di zero ogni 360°.

Per il 300 esisteva un'apposita scheda camme che ti semplificava molto la vita anche se costosetta.

Link al commento
Condividi su altri siti

Grazie delle risposte, ma ora ho piu confusione di prima.

Per intenderci, ho comprato una intubettatrice ad aria calda molto semplice, che funziona con un asincrono sotto inverter che muove l'albero principale alla quale sono collegati i pochi attuatori meccanici tramite cammes meccaniche. All'albero promincipale è collegato un encoder da 360 impulsi giro col quale si comandano i restanti pochi attuatori pneumatici.

Ho chiesto alla ditta costruttrice ( macchina comprata nuova, un anno fa) e l'encoder è un semplice incrementale che entra nel plc(omron) e nel plc il valore viene continuamente salvato in una variabile di appoggio ; questo valore viene usato per inizializzare il contatore all'accensione.

Ho sempre pensato che questo 'modus operandi ' fosse una porcata perchè credo che a lungo andare il conteggio si possa sfalsare.. Dico male?

L'encoder viene usato nella modalità loop, quindi niente tacca di zero... Il conteggio viene azzerato dopo il 359 mo grado.

Modificato: da step-80
Link al commento
Condividi su altri siti

Ho sempre pensato che questo 'modus operandi ' fosse una porcata....

E' uno dei metodi più sicuri per cercarsi i guai :smile:

Teoricamente è possibile non avere errori, ma se per qualsiasi accidente dovesse esserci un impulso di errore ogni tanto questi si cumulano. Con azzeramento ad ogni giro questo non può accadere. tra l'altro è metodo gratuito, basta usare la marca di zero per resettare il contatore.

Link al commento
Condividi su altri siti

Ho chiesto alla ditta costruttrice ( macchina comprata nuova, un anno fa) e l'encoder è un semplice incrementale che entra nel plc(omron) e nel plc il valore viene continuamente salvato in una variabile di appoggio ; questo valore viene usato per inizializzare il contatore all'accensione.

Se non ho capito male, è per evitare di fare l'azzeramento all'accensione.

Ogni tanto lo faccio anch'io, ma si devono valutare attentamente le eventuali conseguenze in caso di errore.

Per esempio, se muovo a mano la macchina con PLC spento, il PLC non si accorge di questo spostamento e riparte con una quota sbagliata.

Se questo causa solo un lieve inconveniente alla produzione, direi che si può fare; se può causare danni alla macchina, io non rischierei.

Per il discorso della modalità loop al posto di un azzeramento ad ogni giro, concordo pienamente con Livio.

Link al commento
Condividi su altri siti

è per evitare di fare l'azzeramento all'accensione.

Presumo proprio di si, visto che tale operazione non è necessaria all'accensione.

se muovo a mano la macchina con PLC spento

Questo per fortuna è altamente improbabile, a meno che non si disponga di una forza sovraumana: l'asincrono monta riduttore a vite senza fine e quindi è pressochè irremovibile a macchina spenta.

Per il discorso azzeramento con tacca di zero,si deve quindi configurare l'ingresso z come ingresso interrupt ; questo interrupt azzera il conteggio se non ho capito male.

Supponiamo però che io disponga di un encoder senza tacca di zero: secondo voi posso montare un sensore sull'albero ed eseguire l'azzeramento con tale sensore( ovviamente configurandolo come ingresso interrupt) , oppure c'è il serio rischio che il conteggio si azzeri con un cero margine di tolleranza dato dall'imprecisione del sensore?

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...