Vai al contenuto
PLC Forum


GX Works2 e motore passo passo


mimmocap

Messaggi consigliati

salve,
un piccolo prologo: avevo bisogno di "sincronizzare" elettronicamente la velocità di due cilindri che, per convenzione, chiamerò cil. master (motorizzato) e cil. slave. I due cilindri sono di diametro identico per cui, al cil. slave ho montato un motore stepper da 200 passi con drive settato a microstepper per 800 passi/giro. Sul cil. master, ho montato un encoder da 800 imp/giro, per cui 1 giro encoder = 1 giro motore, preciso che al massimo devo fare 400 giri/min. Il progetto è comprensivo di 3 elettrovalvole e relativi temporizzatori per funzioni dipendenti tra loro e abbisogna anche di un ciclo di pulizia, indipendente dal moto del cil. master, per cui ho dovuto montare un circuito con NE555 che produce un treno di impulsi per un dato tempo con altro timer.
Vista la miriade di collegamenti, fili e componenti, avevo pensato di usare un plc già in possesso, un FX3UC Mitsubishi.
Premesso che, ho conoscenza da principiante con la programmazione, ho lavorato a livello scolastico col PLC Omron e CX Programmer, per quanto riguarda timer,contatti, uscite ecc. non ci sono problemi, anche per la movimentazione del motore per il ciclo di pulizia non ho trovato problemi.
Descrivo il mio problema:
purtroppo può capitare che devo fermate il cil. slave per poi farlo ripartire, ma fin quando il master lavora a bassa velocità non ci sono problemi, a velocità più alte ho problemi.
Domanda: posso collegare l'encoder al plc ed usare qualche funzione di RAMPA o ACCELERAZIONE all'avvio del motore?
Ho letto un pò di manuali ma si parla solo di posizionamento (tot impulsi alla tot velocità), si può prendere il dato di imp/s dell'encoder come riferimento e trasferirlo a qualche funzione?
Spero di essere stato abbastanza chiaro e mi scuso se mi sono un pò dilungato.

Saluti

Cappuccio Domenico

Link al commento
Condividi su altri siti


L'istruzione PLSV genera un banale treno d'impulsi alla frequenza che desideri senza considerare la quantità di impulsi da generare a differenza delle altre istruzioni alle quali devi specificare la quantità di impulsi da generare, PLSY infatti genera un treno di impulsi di una quantità definita di impulsi che tu definisci come operando e alla frequenza che desideri mentre PLSR a differenza di PLSY definisci pure la rampa di accelerazione e decelerazione degli impulsi da generare, in pratica un banale posizionamento. Se la tua necessità è riprodurre la frequenza di impulsi proporzionale alla frequenza dell'encoder che hai in ingresso per generare gli impulsi in tempo reale l'istruzione adatta è PLSV ma al tempo stesso devi calcolare la velocità di rotazione dell'encoder in ingresso, per fare ciò puoi usare l'istruzione SPD dalla quale secondo il tempo di campionamento impostato puoi calcolare la velocità di rotazione dell'encoder in tempo praticamente reale

Link al commento
Condividi su altri siti

Buonasera, intanto ringrazio per la risposta!

la mia necessità è proprio quella di riprodurre la frequenza di impulsi dell'encoder alla proporzione di 1 a 1 ma alla partenza devo avere una rampa di accelerazione!

Link al commento
Condividi su altri siti

che vuol dire devi avere una rampa di accelerazione? l'encoder gira sempre e tu ti devi agganciare da fermo alla frequenza a cui gira l'encoder? Se si devi crearti una rampa specifica alla frequenza a cui gira magari usando l'istruzione RAMP, le istruzioni che ti ho segnalato fanno tutto quello che ti serve, SPD con i valori che ti ritorna in base al tempo di campionamento impostato ti ritorna con alcuni calcoli la frequenza in tempo reale che ha l'encoder, con la dicitura in tempo reale vuol dire che l'istruzione SPD necessita come operando un tempo di campionamento, tale tempo di campionamento non può essere, mi sembra di ricordare, più basso del tempo di scansione del programma, perciò se per ipotesi lo imposti a 100msec. il tempo di campionamento avresti un risultato dall'istruzione ogni 100msec. però secondo i valori ritornati dall'istruzione se leggi bene il manuale puoi ricavarti in tempo reale la velocità dell'asse perchè l'istruzione di ritorna sempre gli impulsi contati e il tempo passato dall'inizio di campionamento e perciò ciò ti permette sempre di avere la frequenza attuale in tempo reale e da quello ti riproduci come vuoi la frequenza di uscita che come ti ho detto puoi fedelmente sempre riprodurre come vuoi con l'istruzione PLSV, in pratica hai un albero elettrico con un controllo non in posizione ma in velocità ma che comunque con la velocità di campionamento dell'FX3u puoi sempre riprodurre in maniera abbastanza fedele

Modificato: da leleviola
Link al commento
Condividi su altri siti

Buonasera, intanto ri-ringrazio per la risposta!

infatti, come descritto nel post iniziale, l'encoder è montato sul cilindro master che gira sempre per cui, quando fermo il cilindro slave e lo faccio ripartire, all'uscita dell'encoder è già presente un treno di impulsi che, se a frequenza alta, mi fa ripartire il motore di scatto che si ripercuote su tutta la meccanica!

Sto aspettando la consegna di un motore e relativo drive per mettere in pratica, su banco, i consigli che mi hai dato, intanto studio qualche manuale!

Eventualmente chiederò ancora!

Saluti

Cappuccio Domenico

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