ECS or Local HMI can send mode, position reference, velocity
All motion control logic is located in Routine Control_position
States of position control
Wait for new position ID or new position reference from ECS or Local
Each position command is executed and replaces any current move.
New move
Verify position reference within travel limits.
Initialize
Reset state control
Validate motion parameters
Calculate
Starting speed = minimum(0.05 * Position error, 1° / sec)
Starting speed = maximum(0.05 * Position error, 0.15° / sec)
Accel, decel, distance & time
Direction of travel
Start
Move in Progress = on
While move in progress
While position error < near distance : Speed = near speed
While position error < creep distance : Speed = creep speed
While position error < final distance : Speed = final speed
While position error > 3°
Ramp control
Accel = 100 RPM / sec (~0.1° / sec)
Decel = 50 RPM / sec
Jerk = 20 RPM / sec / sec (S-curve)
While position error < 3°
Quick response for stopping
Accel = 500 RPM / sec (~0.5° / sec)
Decel = 500 RPM / sec
Jerk = 500 RPM / sec / sec (no curve)
When Position error < stop distance
or Position error crosses 0
or Safety enabled OFF
End move
Move in progress = OFF
If Tracking mode
Speed reference = Velocity + (Position error * proportional gain)
While position error > 10°
Max output = +/- 0.25° / sec
While position error > 30°
Max output = +/- 0.75° / sec
While position error < 1° Max output = +/- 0.20° / sec
While position error < 0.1° Gain = 0.04
While position error > 0.2° Gain = 0.10
While position error > tracking range (0.5°)
Fast response for controlling position
Accel = 200 RPM / sec (~0.2° / sec)
Decel = 200 RPM / sec
Jerk = 200 RPM / sec / sec (no curve)
While position error < tracking range (0.5°)
Slow response for smooth control
Accel = 10 RPM / sec (~0.05° / sec)
Decel = 10 RPM / sec
Jerk = 10 RPM / sec / sec (no curve)
While position error < 0.05°
Slow response for smooth control
Accel = 5 RPM / sec (~0.005° / sec)
Decel = 5 RPM / sec
Jerk = 5 RPM / sec / sec (no curve)
If not Tracking
and Move in progress OFF
Then Speed reference = 0
Speed output control
...