MSF — Motion Servo Off

Description
Section titled “Description”MSF (Motion Servo Off) disables the drive of an axis and cancels whatever command it was executing. On a stepper axis the Enable pin is released, so the motor is de-energized and no longer holds; on a DC axis the bridge coasts; on a servo axis the status bit clears. Any move or jog in progress is dropped where it is, with no deceleration ramp, and the axis remembers that position. Use MSF when the machine leaves run mode, for a guard-open condition, or to let an operator turn a stepper by hand. Do not use MSF as the normal way to end a move: use MAS for a controlled stop and MSF afterwards.
Operands
Section titled “Operands”| Operand | Type | Format | Valid Range | Required | Description |
|---|---|---|---|---|---|
| Axis | Axis | Axis name | Any axis in Explorer ▸ Axes that has a driver | Yes | The axis to disable. |
Scan Behavior
Section titled “Scan Behavior”Prescan
Section titled “Prescan”Nothing. Every axis starts disabled.
Rung-condition-in is false
Section titled “Rung-condition-in is false”Nothing.
Rung-condition-in is true
Section titled “Rung-condition-in is true”On this scan and every scan the rung stays true:
- The drive is disabled and
DriverOn= 0. - A move in progress is cancelled: the pending target is dropped, the step train stops at once, and
ActualPosstays at the position reached.DNandPCare not set for the cancelled move. - A jog is stopped.
ENandIPclear. DN,PCandErrorare left as they were.
Postscan
Section titled “Postscan”Nothing.
| Axis type | What MSF does |
|---|---|
| Stepper | Releases the Enable pin, drops the pending target. The motor free-wheels; holding torque is gone. |
| DC | Sets the bridge to 0 duty. The motor coasts, no braking. |
| Servo | Clears DriverOn. The servo library keeps holding the last angle. |
Axis Members
Section titled “Axis Members”Motion status lives on the axis, not on a per-instruction tag.
| Member | Data type | Set by | Cleared by | Description |
|---|---|---|---|---|
DriverOn |
BOOL | MSO | MSF | The drive is enabled. |
EN |
BOOL | MAM, MAJ, MAG while a command is active | Command complete, MAS, MSF | A motion command is engaged. |
IP |
BOOL | Axis service while steps are being produced | Motion stops, MSF | Motion in process. |
DN |
BOOL | MAM reaching its target, MSR | Next MAM or MAJ | Instruction done. Not touched by MSF. |
PC |
BOOL | Same as DN |
Same as DN |
Process complete. |
InMotion |
BOOL | Axis service | Axis service | Steps produced this scan. |
Dir |
BOOL | Axis service | Axis service | 1 = forward. |
Error |
BOOL | Watchdog mismatch, TMC2130 driver fault | MAFR | Axis fault. Not touched by MSF. |
ActualPos |
REAL | Axis service every scan | — | Position in axis units. Kept across MSF. |
CmdPos |
REAL | MAM, MAG, MSR | — | Commanded target in axis units. |
Counts |
DINT | Axis service every scan | MSR, ResetCounts |
Raw step counts. |
RedefinePos |
REAL | MSR | — | Value of the last MSR. |
ResetCounts |
BOOL | Your logic (write 1) | Firmware, after zeroing | Zero the counts without an MSR. |
Watchdog |
INT (ms) | Axis properties; your logic may overwrite | — | Mismatch tolerance before Error sets. |
Example
Section titled “Example”Scenario: The feeder from the MSO page. A second switch, Servo_Off, drops the Feed drive so the operator can move the carriage by hand.
Tags:
Servo_Off— Servo off, BOOLFeed— stepper axis, 80 counts per mm
Rung 1:
—|XIC Servo_Off|———[MSF Feed]———Scan 1 — Servo_Off = 0. Nothing happens; Feed.DriverOn keeps its value (1 after the MSO page).

Scan 2 — Servo_Off = 1. The drive is released: Feed.DriverOn = 0, Feed.EN = 0. If a move was running, Feed.ActualPos stops where it is.

Values before and after: Feed.DriverOn 1 → 0. A carriage moved by hand while disabled is no longer where ActualPos says; home it with an MSR before the next move.
See Also
Section titled “See Also”- MSO — Motion Servo On
- MAS — Motion Axis Stop (controlled stop, drive stays on)
- MSR — Motion Set/Redefine Position (re-home after a hand move)
- Motion Instructions — Category index
MSF and MSO on the same scan. If both rungs are true, the one scanned last wins. Interlock the two switches or use one selector.
Not a deceleration. A stepper carrying a load and dropped mid-move can overshoot mechanically. For a controlled stop, MAS first, then MSF once IP is 0.
Position is kept, not trusted. ActualPos is not cleared by MSF. It is right only if nothing moved the axis while the drive was off.
Applies to LadderIDE >=1.2.2 · Last reviewed 2026-09-11 · Screenshots verified 2026-09-11