Documentation MCS32
B) Mouvement : MOVR
La fonction MOVR envoie un ou plusieurs axes à une position relative. Elle utilise les valeurs
courantes d'accélération, de décélération et de vitesse. La syntaxe est :
MOVR (<Axe1>=<Distance1> [{, <Axe2>=<Distance2>}] )
Cette fonction envoie <Axe1> à une valeur relative <Distance1>. Le programme attend la fin du
mouvement avant de continuer. L'erreur de positionnement absolue est minimale.
Par exemple :
FOR I#=1 To 10
MOVR(X=100)
CALL Percage
NEXT I#
L'instruction MOVR est bloquante pour la tâche tant que le mouvement n'est pas terminé (
condition MOVE_S(Axe)=0 ).
MOVR(X=100) est équivalent à
5-6-3- Mouvements infinis
Pour lancer un mouvement continu, il faut utiliser l'instruction STTI. Les axes concernés se
déplacent à leur vitesse courante.
Cette instruction est non bloquante pour la tâche ( excepté si le buffer de mouvements est plein
).
L'instruction STOP ou SSTOP est nécessaire pour arrêter un mouvement continu. Le sens de
déplacement est défini par le caractère
Syntaxe :
STTI (<Axe1>=<Sens1> {,<Axe2>=<Sens2>...})
Exemple :
WAIT
INP(BoutonPlus)=On
STTI(X=+)
WAIT
INP(BoutonPlus)=Off
STOP(X)
5-6-4- Arrêt d'un mouvement
Pour arrêter un mouvement, il faut utiliser les instructions STOP ou SSTOP. Elles arrêtent les
axes spécifiés via leur décélération programmée et elles vident le buffer de mouvement.
L'instruction STOP est bloquante pour la tâche tant que le mouvement n'est pas terminé
(condition MOVE_S(Axe)=0 ) alors que SSTOP n'est pas bloquante.
Syntaxe : STOP (<Axe1> {,<Axe2>...})
Exemple : déplacement jusqu'à un capteur.
STTI(X=+)
WAIT
INP(Capteur)=On
STOP(X)
L'instruction AXIS(Axe)=Off arrête aussi le mouvement mais sans aucun contrôle car
l'asservissement est inhibé.
R342
EX
"+" ou "-"
STTR (X=100)
WAIT NOT MOVE_S(X)
- 100 -
SERAD S.A.