Vai al contenuto
PLC Forum


Implementare encoder con s7.1200


G.esse

Messaggi consigliati

Buongiorno a tutti, ho un encoder a due canali che ho provato a collegare alla CPU con risultato che leggo dei valori ma se la velocità è troppo elevata perde il conteggio..

Vorrei  chiedervi come si configurano gli hsc con tia portal, per riuscire a misurare una distanza lineare da punto A a punto B.

Qual è la giusta sequenza di operazione che bisogna effettuare?

Grazie

Link al commento
Condividi su altri siti


rispondo di fretta, ma se posso essere utile scriverò poi con calma

 

sul tubo , c'è un video interessante, che mi aveva aperto gli occhi , per la configurazione di un encoder IFM con il 1200 , peccato in spagnolo , ma si capisce comunque perchè in neanche 10 minuti fa le spiegazioni passo passo

Link al commento
Condividi su altri siti

2 ore fa, leleviola ha scritto:

regola i filtri sugli ingressi, di default i filtri sono regolati alti ed è per quello che probabilmente non ti legge gli ingressi

Regolato ed in due regolazioni del filtro mi legge corretto.

Ma che applicazioni si possono realizzare? Se ad esempio ho un piano che sale e scende se campiono la sua discesa esempio z=1000 impulsi e mi misuro con metro che e sceso con mille impulsi 1 metro con questa misura campione ed un valore intero di un contatore iposso realizzarmi le salite e discese del piano usando i valori del contatore per portarlo a quote desiderate?

Modificato: da G.esse
Link al commento
Condividi su altri siti

8 ore fa, G.esse ha scritto:

usando i valori del contatore per portarlo a quote desiderate?

 

Certamente.

Però essendo un ecoder incrementale devi prima di tutto eseguire l'azzeramento sull'origine dell'asse.

 

Link al commento
Condividi su altri siti

3 ore fa, Livio Orsini ha scritto:

 

Certamente.

Però essendo un ecoder incrementale devi prima di tutto eseguire l'azzeramento sull'origine dell'asse.

 

Nel senso che qualunque misura deve avvenire con il contatore con valore 0 quando il piano si trova in posizione 0 sul asse?

Link al commento
Condividi su altri siti

no, quando spegni il plc il contatore si azzera e il plc non sa più dov'è il piano, quindi c'è una procedura mediante un sensore esterno che va a rifare lo zero della posizione, quindi riapprende la posizione del piano.

Link al commento
Condividi su altri siti

8 minuti fa, acquaman ha scritto:

no, quando spegni il plc il contatore si azzera e il plc non sa più dov'è il piano, quindi c'è una procedura mediante un sensore esterno che va a rifare lo zero della posizione, quindi riapprende la posizione del piano.

Quindi devo costruire una logica che porti il piano sul suo zero?

Mediante esempio un bool che segnala la riaccensione del plc e un sensore che legge la posizione di zero?

Link al commento
Condividi su altri siti

40 minuti fa, G.esse ha scritto:

Mediante esempio un bool che segnala la riaccensione del plc e un sensore che legge la posizione di zero?

 

Allariaccensione del PLC devi sempreeseguire una routune di inizializzazione delle variabili e dell funzioni del PLC; in quasi tutti i PLC c'è un flag che segnala il primo ciclo. Si usa questo flag per chiamare la routine di inizializzazione; nei siemens c'è un merker di sistema che è alto solo al primo ciclo.

Nella routine di inizializzazione puoi scegliere se eseguire anche il ciclo di zero del posizionamento.

Normalmente questo ciclo, però, viene eseguito la prima volta che si richiama la routine di posizionamento.

 

Il ciclo standard consiste nel portare in velocità lenta l'asse sino ad incontrare la cammasensore di zero asse. Nel tuo caso sarà posizionata al limite basso. Quando il PLC riconosce l'avvebuto impegno di questa camma, inverte il senso di marcia, sempre in velocità lenta, sino a quando dall'encoder esce la marca di zero o zero index; con quesegnale si azzera il contatore.

Negli encoder incrementali solitamente si hanno 3 canali: A e B più Z che è la marca di zero; questo canale da un impulso ad ogni rotazione conpleta dell'encoder.

Link al commento
Condividi su altri siti

1 ora fa, Livio Orsini ha scritto:

marca di zero o zero index; con quesegnale si azzera il contatore.

Negli encoder incrementali solitamente si hanno 3 canali: A e B più Z che è la marca di zero; questo canale da un impulso ad ogni rotazione conpleta dell'encoder.

Quindi si crea una funzione di azzeramento asse ,richiamata dal bit di primo ciclo,  la quale  porta il piano sul punto basso e mediante il segnale di camma bassa azzera ed avvia il contatore di zero(z enc), raggiunto il punto camma bassa si inverte il senso di rotazione e scegliendo un setpoint dato da canale z mi posiziono il piano sullo 0 e azzero il conteggio del livello del piano??

 

Più o meno la logica e questa?

Modificato: da G.esse
Link al commento
Condividi su altri siti

3 ore fa, G.esse ha scritto:

Quindi si crea una funzione di azzeramento asse ,richiamata dal bit di primo ciclo,

 

Può anche essere parte del normale ciclo di posiziononamento.

La funzione che esegue le condizioni iniziali del programma PLC, azzera il bit (flag) di azzeramento eseguito.

La prima volta che si esegue un ciclo di posizionamento, la funzione trovando basso il flag di avvenuto azzeramento, esegue la sequenza di posizionamento a zero e, al termine, alza il flag di azzeramento effettuato. Nelle successive esecuzioni di posizionamenti la fuzione, trovando alto il flag, salta l'azeramento. 

 

La scelta di una modalità, piuttosto che l'altra dipende dalla strategia generale del programma.

L'unica cosa di importanza fondamentela è che venga eseguita questa sequenza prima di inizare i posizionamenti.

Link al commento
Condividi su altri siti

2 ore fa, Livio Orsini ha scritto:

La scelta di una modalità, piuttosto che l'altra dipende dalla strategia generale del programma.

L'unica cosa di importanza fondamentela è che venga eseguita questa sequenza prima di inizare i posizionamenti.

Ma quindi si abbassa il bit di azzeramento avvenuto con un ob con priorità più alta ad esempio ob avvio?

 

Nella funzione  di posizionamento ,nel codice,  la scansione trova bit basso e legge/ dice "non e stato effettuato l azzeramento; azzera asse. 

Corretto?

Link al commento
Condividi su altri siti

Tin faccio un esempio.

In OB1 la prima istruzione testa lo MB alto solo al primo ciclo, se è alto richiama lo FB "condizioni iniziali". In questo FB uno dei settaggi metterà basso il bit di "avvenuto ciclo di zero".

OGNI volta che verrà richiamato lo FB posizionamento, la prima istruzione di questo FB verifia lo stato del bit "avvenuto ciclo di zero"; se il bit è basso esegue il ciclo di zero, altrimenti salta al posizionamento.

Link al commento
Condividi su altri siti

1 ora fa, G.esse ha scritto:

MB a cosa corrisponde?

 

Questi sono cognizioni fondamentali. E inutile continuare se non studi almeno i fondamenti di siemes, visto che usi siemens. Leggiti almeno i prii capitoli del manuale della CPU 1200 che stai usando!

Link al commento
Condividi su altri siti

In realtà ero solo curioso, sono in possesso di un encoder e della CPU, ma a scopi didattici, nel ambiente in cui lavoro usano omron e non mi compere tutto ciò.

 

A scopo didattico ho iniziato a contare gli impulsi ed a attivare uscite a soglie che corrispondono a cm ma per curiosità personale. 

Prima di riuscire a mettere in piedi qualcosa di quello di cui parlavano forse passeranno anni.

 

Link al commento
Condividi su altri siti

Se si ha una CPU, con cui non si ha dimestichezza d'uso, la prima cosa da fare, prima ancora di dare tensione, si deve leggere il manuale del disspositivo.

Inoltre se hai fatto il programmino per leggere il conteggio avrai necessariamente usato il software di sviluppo dove c'è un comodo "Help" in linea.

 

Poi che tu usi abitualmente Omron cambiano i dettagli ma come fare un sistema di posizionamento, come filosofia, è perfettamente identico.

 

Nel messaggio dove ho scritto MB ho fatto un errore, perchè in siemens sono SM (System Merker) semprechè ricordi correttamente perchè son 20 anni che non uso siemens. Questi bit sono usati dal sistema e per l'utente sono in sola lettura, servono per dare indicazioni sullo stato del sistema. Ono di questi SM (non ricordo quale) serve per indicare che il PLC non ha ancora concluso il primo ciclo.

Link al commento
Condividi su altri siti

3 ore fa, Livio Orsini ha scritto:

Nel messaggio dove ho scritto MB ho

Rileggendo questo messaggio ma sostituendo mb con sm e diventato tutto un po più chiaro..

 

3 ore fa, Livio Orsini ha scritto:

Ono di questi SM (non ricordo quale) serve per indicare che il PLC non ha ancora concluso il primo ciclo.

e il dato utile a segnalare il possibile avvenuto spegnimento del plc ed per inizializzare il programma..

 

Grazie Livio.

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