Abilitare JavaScript per vedere questo sito.

Funzione che esegue la movimentazione di una grandezza generica, che si muove inizialmente ad una certa velocità, verso un punto target da raggiungere con velocità desiderata di crociera e velocità finale.

Sintassi

real mv_to_vel (i32 return, real pAct, real vAct, real pDes, real vDes, real vFin, real baseTime, real acc [, real dec=acc] [, real perc=0.8])

return

Variabile contenente informazioni relative allo stato della funzione (vedi codici di reso).

Valore

Descrizione

-5 [M_ILLEGAL_ARGS]

Parametro illegale (acc=0 o baseTime=0).

13 [M_OVERSHOOTING]

Target sorpassato. La move procede inerzialmente.

-4 [M_LOW_ACCELERATION]

Troppo veloce per raggiungere il punto target con la vFin specificata.

6 [M_REACHED]

Target raggiunto (vale solo nel caso in cui si sia specificato vFin=0).

15 [M_ACCEL]

Accelerazione in corso.

16 [M_AT_SPEED]

Movimentazione a regime con vDes.

17 [M_DECEL]

Decelerazione in corso.

18 [M_LAST_CYCLE]

Ultimo ciclo prima di oltrepassare il target.

pAct

Posizione attuale.

vAct

Velocità attuale.

pDes

Posizione da raggiungere.

vDes

Velocità desiderata (intesa in valore assoluto).

vFin

Velocità finale (intesa in valore assoluto).

baseTime

Base tempi (normalmente SI).

acc

Accelerazione desiderata (intesa in valore assoluto).

dec

Decelerazione desiderata (intesa in valore assoluto). (opzionale, default acc)

perc

Valore percentuale che influisce sulla decelerazione (0-1). (opzionale, default 0.8)

Durante i calcoli di arrivo sul punto target, viene valutato il numero di battute necessarie per arrivare dalla posizione attuale a quella desiderata con la velocità vFin specificata. Tale numero viene troncato all'intero inferiore se lo sfrido di battuta è < perc (quindi la decelerazione effettiva sarà un po' più grande di dec) oppure verrà aumentato all'intero seguente se lo sfrido di battuta è > perc (decelerazione risultante minore).

Risultato

Valore della posizione aggiornata.

Validità

Rule.

Note

vFin si intende concorde con la direzione del movimento richiesto (se pDes > pAct, la vFin si intende positiva, diversamente si intende negativa).

L'aggiornamento della velocità vAct va fatto esternamente alla funzione a cura dell'utente.

Se vFin > 0, la posizione target viene oltrepassata, dopodiché la funzione prosegue inerzialmente fintanto che viene invocata. Se vFin = 0, la funzione si ferma sul punto desiderato.

Se il parametro di decelerazione non consente di arrivare da pAct a pDes con la vFin specificata, la mv_to_vel() tende comunque a raggiungere vFin; pDes verrà oltrepassata con una velocità diversa da vFin e il movimento proseguirà inerzialmente con velocità tendente progressivamente a vFin.

NOTA: la funzione può essere chiamata anche con l'asse già in movimento.

 

  

Keyboard Navigation

F7 for caret browsing
Hold ALT and press letter

This Info: ALT+q
Page Header: ALT+h
Topic Header: ALT+t
Topic Body: ALT+b
Contents: ALT+c
Search: ALT+s
Exit Menu/Up: ESC