Funzione che permette di portare la variabile controllata (tipicamente un asse) al target specificato con la velocità specificata.
La funzione, runtime, controlla che non siano superate velocità e accelerazione massime specificate per la variabile controllata.
La funzione controlla inoltre, sempre runtime, che la variabile controllata non esca fuori dai finecorsa specificati eseguendo un arresto controllato su di essi.
Per escludere il controllo dei paracarri impostarli allo stesso valore.
|
i32 tracking (stru_track stru)
|
|
Struttura di tipo stru_track per lo scambio dei dati.
|
|
Rende:
|
|
-9
|
Parametro delta <= 0.
|
-6 [M_IN_ALARM]
|
Parametro acc nullo.
|
-5 [M_ILLEGAL_ARGS]
|
Parametro maxspeed nullo.
|
5 [M_FOLLOWING]
|
Target non raggiunto - inseguimento in corso.
|
6 [M_REACHED]
|
Target raggiunto - raggiunto uno dei due limiti di posizione.
|
8 [M_SYNCHRONIZED]
|
Target raggiunto - movimentazione in coppia.
|
9 [M_ACCEL_LIMITED]
|
Target non raggiunto - inseguimento in corso - limitazione dell'accelerazione.
|
10 [M_SPEED_LIMITED]
|
Target non raggiunto - inseguimento in corso - limitazione della velocità.
|
17 [M_DECEL]
|
Target non raggiunto - decelerazione per raggiungimento di uno dei due limiti di posizione.
|
19 [M_OUT_OF_LIMITS]
|
Target non raggiunto - tentativo di uscire ulteriormente dai limiti di posizione.
|
|
|
Rule.
|
|
Qualora si volesse disabilitare il controllo dei limiti, imporli uguali.
|
Esempio di utilizzo:
RULE R_AUTO_2
axes(AX_2)
motion
if(first_time())
endif
if(trakka)
trk.delta = SI
trk.desspeed = IV(AX_1)
trk.despos = IP(AX_1)
trk.actpos = IP(AX_2)
trk.actspeed = IV(AX_2)
trk.maxspeed = MAX_SPE(AX_2)
trk.acc = MAX_ACC(AX_2)
trk.posmin = MIN_STR(AX_2)
trk.posmax = MAX_STR(AX_2)
reso = tracking(trk)
IP(AX_2) = trk.actpos
else
IV(AX_2) = ramp(IV(AX_2), 0, MAX_ACC(AX_2))
endif
end_motion
END_RULE
|
|