Vai al contenuto
PLC Forum


ingressi veloci


FranckIng

Messaggi consigliati

Salve a tutti,

premetto che è la prima volta che utilizzo un plc omron e ho poco dimestichezza con gli encoder. Ho un CP1L-EM40... e devo poter leggere i valori in ingresso da due incoder rotativi relativi collegati a due motori che possono muoversi in due direzioni, e ho un terzo encoder di cui devo soltanto leggere gli impulsi e trasmetterli in certe condizioni ad uno dei due motori che deve muoversi della distanza stabilita dagli impulsi. Come dovrei impostare gli ingressi nella configurazione del plc ?

Link al commento
Condividi su altri siti


Ciao FranckIng, su PLC compatti CP1L hai a disposizione 4 ingressi conteggio veloce incrementale oppure due ingressi conteggio veloce bidirezionali.

Avendo tu la necessità di controllare la direzione devi utilizzare entrambe le fasi A e B di ogni encoder e collegarle al rispettivo ingresso per il contatore 0 e poi per il contatore 1.

Per il terzo contatore non hai a disposizione alcun ingresso di conteggio veloce, ma se la frequenza degli impulsi che arrivano non è troppo elevata e il segnale di On e Off non è troppo breve puoi sfruttare uno degli ingressi normali e contare con una semplice istruzione di incremento e appoggiare il conteggio a un area di memoria del PLC (es. D0)

A questo punto potrai utilizzare D0 come valore del posizionamento da effettuare tramite una PLS2.

Link al commento
Condividi su altri siti

Grazie per la risposta. Ma se nel caso avessi a disposizione l'ingresso di contatore veloce, come faccio a contare e a memorizzare gli impulsi? 

Ma tra le tante istruzioni per le uscite veloci, se voglio far muovere il motore di una certa quantità di impulsi e in una certa direzione, quale sarebbe la funzione o le funzioni che mi permettono di fare questo?

Link al commento
Condividi su altri siti

Gli ingressi conteggio veloci quando abilitati incrementano il valore di una memoria dell'area A, nel tuo caso specifico se usi l'ingresso di conteggio veloce 0 puoi vedere incrementare o decrementare il valore nell'area A270 (in doppia lunghezza)

Dal manuale W516

 

High-speed counter PV storage locations High-speed counter 0: A271 (leftmost 4 digits) and A270 (rightmost 4 digits)
High-speed counter 1: A273 (leftmost 4 digits) and A272 (rightmost 4 digits)
High-speed counter 2: A317 (leftmost 4 digits) and A316 (rightmost 4 digits)
High-speed counter 3: A319 (leftmost 4 digits) and A318 (rightmost 4 digits)
Target value comparison interrupts or range comparison interrupts can be
executed based on these PVs.
Note The PVs are refreshed in the overseeing processes at the start of each
cycle. Use PRV(881) to read the most recent PVs.
Data format: 8 digit hexadecimal
Range in linear mode: 8000 0000 to 7FFF FFFF hex
Range in ring mode: 0000 0000 to Ring SV (Circular Max. Count)

 

Per l'istruzioni PLS2 sullo stesso manuale è spiegato come funziona, oppure usa la guida istruzione direttamente in CX-Programmer

Link al commento
Condividi su altri siti

Grazie a tutti per l'aiuto, volevo  un'informazione. Se devo trovare l'origine di un encoder (il suo zero) in corrispondenza di un sensore, e poi poter fare un calcolo delle distanze percorse da un motore da quel punto in poi, la funzione origin và bene per il mio scopo? Avete dei consigli su quali istruzioni usare per far muovere un motore tramite un treno di impulsi molto veloci?

Link al commento
Condividi su altri siti

La funzione org può eseguire una ricerca dell'origine mediante sensore e tacca z dell'encoder, devi impostare la modalità, la velocità de ricerca ecc....sulla guida istruzioni trovi anche esempi per usare queste funzioni.

Il calcolo della distanza percorsa lo fai contando gli impulsi dell'encoder.

Per far muovere il motore sempre pls, pls2_ ACC, dec, ini.........ecc

 

Link al commento
Condividi su altri siti

Grazie per l'aiuto di tutt finora. Avrei una domanda su cui non sò come fare a livello di programmazione.

è possibile leggere in tempo reale il segnale veloce dell'encoder (sua frequenza 8.3kHz) e utilizzare lo stesso segnale per far muovere  un motore cercando da non avere ritardi? Ho urgente bisogno di una risposta su come implementare una cosa del genere e se è fattibile. Ringrazio anticipatamente chi potrà darmi una risposta.

Link al commento
Condividi su altri siti

Certo che è possibile!

Tu stai leggendo una velocità e la leggi sui canali dell'area A che ho elencato più sopra

Il valore scritto nell'area A sarà il valore di velocità che passerai ad un istruzione ACC.

 

Link al commento
Condividi su altri siti

Ma se riesco ad inseguire la frequenza dell' encoder per pilotare un motore, come faccio a dire al servoazionamento che deve muoversi nella direzione positiva o negativa rispetto ad un punto?

Link al commento
Condividi su altri siti

Nel secondo campo dell'istruzione ACC metterai #0000 per girare in un senso o #0010 per girare nel senso opposto

Dai un occhio alla guida istruzioni relativa all'istruzione ACC e PLS2 e guarda il campo che si chiama Dati di controllo.

Link al commento
Condividi su altri siti

Grazie per l'aiuto. Qualcuno sa se è possibile leggere un singolo impulso proveniente da un encoder, piuttosto che leggere il conteggio di impulsi correnti salvati in A, e poterlo fornire all'azionamento in modo tale che il PLC faccia solo da ponte?

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