Vai al contenuto
PLC Forum


Asse Elettrico


mazzinga

Messaggi consigliati

Sto valutando l'uso di un PLC per la realizzazione di un asse elettrico,in poche parole ho una asse che viene gestito tramite le uscite PTO del plc,ora il cliente vorrebbe inserire un volantino per muovere l'asse in jog.

Ho provato a guardare in rete se trovo una libreria in per fare proprio questo ma non ho trovato nulla,in pratica quello che dovrei fare e leggere il valore del mio HSC dove andrò a collegare il mio volantino,convertirlo in un movimento e farlo eseguire al PLC,stavo guardando se potrei usare il comando di posizionamento dell'asse,ma non credo che possa funzionare come un movimento jog.

Avete un'idea per la realizzazione di tutto ciò.

Link al commento
Condividi su altri siti


Di primo pensiero sembrerebbe un (quasi) banale inseguimento di un encoder master, se non fosse che il driver riceve già i segnali tramite pto e quindi non ti saprei dire.

Ho realizzato cose simili ma l'asse accettava in ingresso di riferimento altri segnali( tipo bus) e poi tramite appunto il pto andavo a collegare encoder o volantino coi quali eseguire il jog o altre operazioni.

Cosi, a freddo mi verrebbe da dirti di elaborare il tuo ingresso HSC in modo che generi un riferimento di velocità per il jog, misurando la frequenza degli impulsi ricevuti..potresti semplicemente farti una routine dove se il conteggio incrementa alzi il bit di jog alla velocità proporzionale alla frequenza ricevuta, tenendo conto di eventuali scalature dei valori; se il conteggio decrementa esegui il jog nel verso opposto...questo ovviamente nel caso il cliente si accontenti di muovere l'asse in maniera sommaria, per avvicinarsi all'area di lavoro tipo, perchè nel caso gli serva una reale corrispondenza tra impulsi ricevuti e impulsi fatti il discorso si complicherebbe.

Spero di non aver detto castronerie

Link al commento
Condividi su altri siti

Ciao,

noi abbiamo eseguito la stessa cosa, però direttamente con un'inverter (un Vacon): in pratica il PLC si occupa solo di abilitare questa funzione alzando un bit verso l'inverter tramite una selezione dell'operatore (non ricordo se con OP od un semplice selettore), mentre il volantino (che è poi un semplice encoder provvisto di manopola) è collegato direttamente all'inverter; quando si muove il volantino e la funzione è abilitata, il motore si muove di conseguenza in avanti o indietro, con velocità e accelerazioni diverse dal movimento "classico", che dipendono da come si muove lo stesso volantino e dai parametri dell'inverter; non so, però, se la cosa è possibile con hardware diverso da quello da noi utilizzato e se ti puo' essere utile ...

Link al commento
Condividi su altri siti

questa soluzione la uso per un cliente che fa macchine in linea,ma per questa applicazione non va bene perché il mio driver accetta solo un ingresso frequenza/segno, ed non accetta nessun altro tipo di segnale.

Anni fa avevo fatto la stessa cosa con omron,i tecnici di milano mi avevano passato un blocco funzione che metteva in asse elettrico un asse comandato in PTO e un encoder in ingresso al PLC

Link al commento
Condividi su altri siti

nella sezione didattica, sottosezione elettrotecnica, c'è un mio tutorial sulle regolazioni nel sesto capitolo trovi un esempio di funzione per asse elettrico.

nell'allegato con gli esempi ci dovrebbe essere un vecchio file per un0applicazione di asse eletrico con S7-200

Link al commento
Condividi su altri siti

Il driver è omron smart step 2

ho visto il tutorial di livio,ma come riferimento al driver è previsto un'uscita analogica.in che modo converto il riferimento analogico in

uscita PTO da dare in pasto al driver. Il plc mi serve perche l'asse deve posizionarsi a determinate quote durante l'esecuzione del programma

Link al commento
Condividi su altri siti

A questo punto non vedo molte alternative se non quella di riuscire a collegarti in parallelo col tuo volantino all' entrata step-dir del driver. Magari con un relè ed i suoi 2 contatti in scambio, ma non ho mai fatto una cosa del genere.

Link al commento
Condividi su altri siti

Pensando a quello che scrive livio mi viene in mente l'uso di un sistema proporzionale tra la posizionposizione master e la slave

in pratica prendo la posizione del hsc la confronto con la posizione dell'asse e l'errore e il mio riferimento di velocita del comando jog,in teoria è un po quello che farebbe il driver se collegassi l'encoder in ingresso

secondo voi potrebbe essere un soluzione.in questo modo posso decidere tramite una semplice divisione quanti mm per giro di volantino e avrei una rampa di accelerazione e decelerazione che si adeguano da sole

Link al commento
Condividi su altri siti

Scusa ma come fai a confrontare due valori che l uno con l'altro non c'entrano nulla? Il volantino lo giri a mano.. Non è collegato al motore. Poi qualche post fa dicevi di voler inseguire in posizione e non in velocità..

O forse intendevi tipo: posizione volantino hsc=0 , posizione pto= 0. Se incrementa o decrementa hsc piloto il motore in modo che l errore sia zero....se devi fare ció auguri ma si fa

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

Quello che vorrei realizzare e propio quello di annullare l'errore tra volantino e slave quando ruoto il volantino

mi hai fatto gli auguri,quali sono secondo te le difficoltà,ho chiesto propio aiuto qui per creare questa funzione,visto che il forum e seguito da persone veramente competenti non mi preoccupo propio

Link al commento
Condividi su altri siti

Basta convertire il numero degli impulsi del volantino con i corrispondenti del segnale a treno di impulsi che fa da riferimento all'inverter.

Poi generi il numero d'impulsi che hai calcolato con la frequenza che hai stabilito corrisponda alla velocità di jog.

Se l'azionamento segue esattamente il segnale di PTO hai realizzato quello che ti prefiggi.

Questo perchè alcuni convertitori considerano il PTO solo riferimento di velocità e non di posizione.

Link al commento
Condividi su altri siti

Basta convertire il numero degli impulsi del volantino con i corrispondenti del segnale a treno di impulsi che fa da riferimento all'inverter

il numero degli impulsi convertiti è la differenza tra volantino e motore,il quale moltiplicandoli per una costante genera il mio riferimento o sbaglio

nel mio caso il convertitore considera il segnale PTO come riferimento di posizione

Link al commento
Condividi su altri siti

l numero degli impulsi convertiti è la differenza tra volantino e motore,il quale moltiplicandoli per una costante genera il mio riferimento

Esatto.

Link al commento
Condividi su altri siti

Gianmario Pedrani

Attenzione che quello che vuoi fare tu non lo puoi fare con i blocchi di motion del 1200 visto che quelli accettano una posizione e poi un segnale di start quota. Anche se la quota può essere cambiata in volo. Credo che sia molto difficile mettere in relazione in hsc con in blocco motion già fatto.. Perche per quel plc non é previsto.. L'unica cosa e scriversi tutto da zero ma qui entrano in gioco i tempi di scansione.. Del plc.

Link al commento
Condividi su altri siti

la mia idea è quella di comparare la posizione del master con la posizione dello slave,il risultato è il mio delta di posizione,trovato il delta lo moltiplico per una costante ed il risultato è il mio riferimento di velocità che andrà in ingresso sul blocco jog del motion,per il senso di rotazione avevo pensato di alzare i due bit in funzione del segno che restituisce il delta tra master e slave.Cerco di essere piu chiaro con un esempio,posizione master 0 e posizione slave 0,ruoto il mio volantino la posizione slave cambia esempio 10 il delta è 10 moltiplicato per una costante 2.5 il mio delta diventa 25 che andrà in ingresso alla funzione jog come riferimento di velocita,il segno è positivo di conseguenza alzo il bit forward,l'asse si sposta ,l'errore si annulla il bit forward va a zero ruoto il volantino nella parte opposta il delta e -15,genero il riferimento di velocità allo stesso modo ma senza segno,il bit di direzione a questo punto diventa il back perche il delta e negativo.

Cosa ne pensate

Link al commento
Condividi su altri siti

in ingresso alla funzione jog come riferimento di velocita,

La funzione jog è nel PLC?

Se si cosa fa?

Perchè tu all'inverter devi dare 25 impulsi con una frequenza che quella che corrisponde alla velocità desiderata.

Non so come funziona la generazione del treno d'impulsi con il 1200.

Per conto mio la funzione deve ricevere 2 dati: frequnza e numero d'impulsi.

Link al commento
Condividi su altri siti

  • 2 weeks later...

Eccomi di nuovo,

sono stato fuori per lavoro ed non ho potuto seguire la discussione,ho visionato anche il manuale del 1200 ed ho scoperto che c'è un'istruzione che si chiama MoveVelocity che muove l'asse alla velocità specificata considerando il segno che corrisponde al senso di rotazione.

Questo mi perette di comandare l'asse come se fosse un asse in analogica,ed inoltre conoscere la posizione dell'asse.Nei post precedenti molti mi hanno detto che sarebbe stato difficile gestire un asse elettrico con PTO,ma credo che dal momento che ho questa istruzione senza passare per un'istruzione di posizionamento dell'asse il tutto si possa fare con piu facilita.

Rifacendomi sempre ad discorso di gestire l'asse come se fosse in analogica,ribadisco il concetto che avevo esposto tempo fa,il mio hardware è composto da un volantino,plc,driver e motore

Immaginando di avere un volantino da 100 impulsi giro ed di leggerlo con HSC del plc alla fine della conversione ho un rapporto 1/100 un giro di volantino corrisponde a 1 mm,l'operatore inizia a muovere il volantino man mano che si muove cresce l'errore tra volantino e motore l'errore che si accumula lo moltiplico per una costante,il risultato è il valore che darò alla funzione MoveVelocity sul parametro velocita,immaginando che l'operatore abbia effettuato 3 giri di volantino il risultato finale saranno 3 mm percorsi,man mano che l'asse si avvicina alla quota l'errore diminuisce fino ad avere che la velocita sarà pari a zero ed l'errore sara pari a zero il tutto con una rampa che sara dato dal valore della mia costante sull'errore.

Tempo fa evevo realizzato un concetto simile sotto consiglio di livio sulla realizzazione di un posizionatore,avevo creato una sorte di asse virtuale con l'asse reale che lo inseguiva nel medesimo modo,con risultati efficienti.

Nella realizzazione di questa applicazione di asse elettrico non so se è indispensabile introdurre il FeedForward per avere meno errore possibile tra i due dispositivi,questo dubbio mi viene perche avendo fatto della prove a banco di collegare il mio encoder direttamente all'ingresso dell'azionamento vedevo che la risposta era molto elevata,infatti ad esempio se muovevo l'asse a velocita alta e poi mi fermavo non riuscivo a percepire il ritardo di fermata del motore,effetto che non so se potrei trovare con il sistema descritto prima.

In settimana dovrei iniziare a fare delle prove a banco,ma prima di iniziare vorrei avere le idee un po piu chiare

Link al commento
Condividi su altri siti

Immaginando di avere un volantino da 100 impulsi giro ed di leggerlo con HSC del plc alla fine della conversione ho un rapporto 1/100 un giro di volantino corrisponde a 1 mm,l'operatore inizia a muovere il volantino man mano che si muove cresce l'errore tra volantino e motore l'errore che si accumula lo moltiplico per una costante,il risultato è il valore che darò alla funzione MoveVelocity sul parametro velocita,immaginando che l'operatore abbia effettuato 3 giri di volantino il risultato finale saranno 3 mm percorsi,man mano che l'asse si avvicina alla quota l'errore diminuisce fino ad avere che la velocita sarà pari a zero ed l'errore sara pari a zero il tutto con una rampa che sara dato dal valore della mia costante sull'errore.

Il tuo concetto non fa una piega, ma forse se qualcuno ti aveva detto che non sarebbe stato semplice(tra cui io) il motivo c'è.

Mi riferisco al fatto che l'istruzione da te menzionata, il MoveVelocity(che sarebbe perfetta per quello che devi fare tu) purtroppo muove l'asse alla velocità specificata tenendo conto del segno ma PARTE CON IL FRONTE DI SALITA sull'ingresso Execute e rimane a tale velocità finchè tale ingresso rimane alto,oppure devi usare il blocco MC_Stop,Halt per fermare l'asse o dare un nuovo execute di un nuovo blocco Move_Velocity con una nuova velocità.

Non funziona quindi come un generatore di impulsi a frequenza variabile.

Se dai un occhiata al manuale, lo vedi con i tuoi occhi ;)

Attenzione che quello che vuoi fare tu non lo puoi fare con i blocchi di motion del 1200 visto che quelli accettano una posizione e poi un segnale di start quota. Anche se la quota può essere cambiata in volo. Credo che sia molto difficile mettere in relazione in hsc con in blocco motion già fatto.. Perche per quel plc non é previsto.. L'unica cosa e scriversi tutto da zero ma qui entrano in gioco i tempi di scansione.. Del plc.

Ps vedo ora che Gianmario ti aveva già risposto. Se lo dice lui che Siemens lo conosce quasi discretamente io mi fiderei.... :P :P

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

Ok

guardando bene il manuale hai perfettamente ragione, in settimana faro delle prove utilizzando l'istruzione jog il quale accetta il comando di velocità variabile.

per il feedforward cosa mi dici c'è ne bisogno ho posso lavorare solo con l'errore?

Link al commento
Condividi su altri siti

faro delle prove utilizzando l'istruzione jog il quale accetta il comando di velocità variabile.

No! nemmeno il jog accetta il comando di velocità variabile....

Guardati bene il manuale,pag 406

https://cache.industry.siemens.com/dl/files/465/36932465/att_106121/v1/s71200_system_manual_it-IT_it-IT.pdf

Come diceva anche Pedrani, con le istruzioni Plc_Open non puoi fare ciò che chiedi, almeno non in maniera diretta.

L'unica cosa che mi verrebbe da consigliarti, cosi su due piedi, è di usare l'istruzione "Move_Realative" mettendo come ingresso execute un clock, tipo 200 ms, e come parametro di spostamento l'errore istantaneo tra asse e volantino.

Non è il massimo ma potrebbe funzionare...

Link al commento
Condividi su altri siti

La proposta di Step-80 (Matteo) mi pare avere una possibilità almeno a livello concettuale.

Vero è che sarebbe comunque un surrogato rispetto al funzionamento tradizionale di un asse comandato da volantino.

Quindi non so se le prestazioni ottenute possano essere accettabili.

Devi valutare se investire tempo e risorse nei test oppure suggerire al cliente una differente operatività (es. muovere l'asse con il classico jog ovvero MC_MoveJog).

Ricordo che ad esempio gli azionamenti siemens 611D avevano integrata una funzione "volantino elettronico" che a richiesta o tramite bus di campo o tramite un ingresso digitale dell'azionamento stesso connetteva un volantino esterno (ingresso encoder dedicato) e chiudeva localmente l'anello di spazio secondo una specifica parametrizzazione del drive.

bigalex :blink:

Link al commento
Condividi su altri siti

Ciao BigAlex,

la proposta non quadra molto neppure a me, logicamente era adeguata all'hw posseduto dal cliente dell'utente ma torno a ripetere che fare un inseguimento non è ciò che si può umanamente fare con le PTO del 1200.

Se ottenere un inseguimento da volantino è quello che vuole ottenere il cliente, la proposta di cambiare drive mi pare la più sensata ma tant'è...a volte si hanno a che fare con persone che prima vogliono risparmiare e poi vogliono upgradare senza esborsi :huh: .

Link al commento
Condividi su altri siti

  • Livio Orsini locked this discussione
Ospite
Questa discussione è chiusa alle risposte.
×
×
  • Crea nuovo/a...