Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




Interpolatore Cnc - Vorrei scrivere le funzioni matematiche


Messaggi consigliati

Inserito:

Buon giorno a tutti. Vorrei scrivere qualche linea di codice per implementare un'intepolatore , cioè un supporto software per controllare 2 o 3 assi in posizione , interpoladoli tra loro in lineare e/o circolare.

Io programmo su plc Siemens - Visual Basic -Labview e più che le routin scritte mi servirebbe capire il concetto base. Ho già scritto codice ed implementato posizionatori utilizzando pid scritti da me , ma vorrei unire il tutto per interpolare assi.

Da alcune discussioni lette sul forum mi sembra di aver capito che dovrei variare il set poin della posizione in modo continuo e tanto i punti dei set point successivi sono vicini più precisa è l'interpolazione.Il problema è che dovrei partire dal comandare l'secuzione di un cerchio e dovrei avere l'output analocico di comando per i 3 assi interpolati.Come esprimere quindi matematicamente e praticamente questa esigenza?

Sicuro in un vostro sempre amichevole aiuto saluto tutti. :(

  • 1 month later...

Inserita:

ciao,

in sostanza vuoi scomporre un movimento in altri 3 movimenti singoli da assegnare ai tuoi 3 assi? Com'e' fatto il movimento totale? vuoi un sistema generico per interpolare qualsiasi tipo di movimento?

saluti

Inserita:

In un interpolatore c'è una correlezione, istante per istante, della velocità e della posizione degli assi tra loro interpolati. In pratica, nel caso di due assi, si risolve la funzione y=fx, dove f la funzione che lega i due moti; può essere lineare, circolare, spline, etc.

Il caso più semplice è la funzione asse elettrico dove i due assi x (master) ed y (slave) sono legati tra loro da una funzione lineare che è il rapporto di velocità impostato. Si stabilisce il tempo di campionamento, ad ogni tic si genera il riferimento di velocità master e slave, si controlla la posizione dello slave in riferimento a quella del master e la correzzione di velocità eventuale per lòo slave.

L'equazione che descrive la posizione dell'asse slave, in funzione del master, in questo caso è semplicissima: si tratta di un rapporto di proporzionalità del tipo y=kx.

emanuele.croci
Inserita:

Ciao,

come ha scritto anche Livio, il tuo problema si divide in 2 parti:

- una parte MATEMATICA

devi generare le funzioni

X(t) (....o X=f(t) che dir si voglia)

Y(t)

Z(t)

che descrivono il movimento "idealizzato" del tuo setpoint nello spazio in funzione del tempo

...ovviamente potresti avere anche più assi (ad es. 4 o magari 6) e di conseguenza più funzioni

Se usi S7-300 non hai problemi per fare un cerchio, esistono le funzioni trigonometriche....

ad es. X= Xc + Rcos(wt+phi)

Y= Yc + Rsen(wt+phi)

e le tue X(t) e Y(t) sono già pronte

- una parte DI CONTROLLO:

i tuoi assi devono seguire "il meglio possibile" il tuo setpoint che si muove nello spazio

Quindi X reale dovrà "essere in albero elettrico" con il setpoint X(t)

Y reale dovrà "essere in albero elettrico" con il setpoint Y(t)

Più il tuo plc o cn è veloce, più il tuo azionamento ha banda, più la velocità si spostamento è bassa, più sei bravo a scrivere l'algoritmo di controllo => PIU' SARAI PRECISO

E questo mi pare un po' un riassunto del tutto,

Ciao, Emanuele

Inserita:

Grazie di cuore, scusatemi per il ritardo ma sono stato fuori Nazione.

Avreste qualche sempio su come scrivere ad esempio l'interpolazione lineare tra due assi in s7300 o200.

Vi sarei molto grato , potreste anche inviarmelo via email, avrei bisogno di prendere uno spunto .

In modo particolare ad esempio ho una riga di programma g0 x200 z400

Normalmente un cnc muove gli assi x e y con una velocità tale feed da condurre in posizione x=200 e z=400 nello stesso tempo , in pratica varia la velocità degli assi in modo da farli arrivare contemporaneamente in posizione.

Passiamo al plc. Ho due assi x in posizione rela x=0 ed z=0.

Se utilizzassi il pid dovrei applicarlo uno per asse e avrei in uscita due valori analogici tali da portarmi , controllando la retrazione da encoder, gli assi in posizione x 200 e z 400.

Ma questo non è interporpolare .

Allora come gestire il pid , necessario per avere un segnale analogico che gestisca l'azionamento , in modo tale da interpolare x e z come fa un cn?

Grazie.

Inserita:

Se vai alla sezione didattica trovi il mio tutorial sulle regolazioni, nefli esempi allegati al capitolo 6 c'è anche, se la memoria non mi tradisce, un asse elettrico con S7-2xx. Puoi usare l'esempio come semplice interpolazione lineare tra due assi.

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