====== Command:ACCEL (AC) ====== --> MS2000 or RM2000 syntax ^ ^Shortcut |AC | ^Format |ACCEL [axis] = [time in msec]… | ^Units |millisecond| ^Remembered |Using SS Z | <-- --> Tiger syntax ^ ^Shortcut |AC | ^Format |ACCEL [axis] = [time in msec]… | ^Units |millisecond| ^Type |Axis-Specific | ^Remembered |Using [addr#]SS Z | <-- This command sets the amount of time in milliseconds that it takes an axis motor speed to go from stopped to the maximum speed ([[commands:speed|S command]]) during commanded moves long enough that the maximum speed is reached. It is also the duration of the deceleration / ramp-down time at the end of the move. Setting the acceleration time to less than the motor's intrinsic time constant (~7 ms for the most common motors) is generally foolish. Overly-aggressive acceleration times lead to performance degradation over millions of moves. 25 ms acceleration time is generally only safe for short moves with small stages (i.e. when maximum speed is never reached, see [[:stage_accuracy_settling_time_for_asi_stage#small_moves|section on small moves]]) and/or when the speed setting is a small fraction of the maximum. Larger values, e.g. 75ms or 100ms, are recommended for larger stages and/or long moves (where the speed is reached) with speed settings near the maximum, especially in heavy use applications. For stages with very coarse leadscrews and/or very heavy loads it is possible that the stage will not be able to keep up with very short acceleration times; when this happens the error buffer will have errors in the 90s. == Example == $ AC X=50 Y=50 Z=50 :A $ AC X? Y? Z? :X=50 Y=50 Z=50 A The command in this example will make the controller take 50 milliseconds to accelerate the motors on each axis during a move command. When the controller gets within 50 milliseconds of finishing the move, it will begin to decelerate the motors back down to the start velocity where the pulses take over to bring the axes within the pulse crossover position error. {{tag>commands tiger ms2000}}