P
ar
t
1: P
rog
ra
m
ming
Moog Animatics SmartMotor™ Developer's Guide, Rev. L
Page 141 of 909
Encoder Source Counts into TMP
MF
MUL/MFDIV
Ra
tio
Area A
(ascend)
MFA(200,0)
Area S
(slew)
MFSLEW(200,0)
Area D
(descend)
MFD(400,0)
Trapezoidal Move Profile (TMP): MFMUL=300, MFDIV=100
0
100
200
300
400
500
600
700
800
900
0
0.5
1
1.5
2
2.5
3
3.5
Ratio
Ramp
Ramp up
Ramp do
wn
Encoder Source Counts into TMP
In
ter
media
te C
oun
ts
to O
utput
TMP Output Position
0
100
200
300
400
500
600
700
800
900
0
200
400
600
800
1000
1200
1400
Output position
1600
600
600
300
Ascend (Ramp up)
Slew
Descend (Ramp down)
Trapezoidal Move Profile (TMP) and Output Position Diagrams
In the first graph, the 'master' (encoder source counts into TMP) is along the horizontal axis of
the graph, and the gear ratio (MFMUL/MFDIV) is along the vertical axis of the graph. This
demonstrates that "area under the curve" is the 'slave' position.
The second graphs shows the slave position as a function of master encoder source counts to
intermediate counts (the TMP output). In this example, MFA, MFD and MFSLEW are
commanded in master units (source counts). These three commands can accept either master
(source counts) or slave units (intermediate counts) according to the second argument as a 0
or 1, respectively. The firmware automatically calculates the move accordingly. The following
example uses the command(x,0) form to specify 'master' or source counts.
MFMUL
=300
MFDIV
=100
MFA
(200,0)
'Move 200 master counts over ascend (area "A")
MFD
(400,0)
'Move 400 master counts over descend (area "D")
MFSLEW
(200,0)
'Maintain sync ratio for 200 master counts (area "S")
MFR
'Calculate ratio, set mode
G
Each time a G (Go) is received, the motor follows the Trapezoidal Move Profile (TMP).
Part 1: Programming: Follow Incoming Encoder Signal With Ramps Example