When an Axis Will Not Enable: the Six Gates MSO Has to Pass Before Anything Moves
The MSO rung goes true on a 2198-D032-ERS3 axis, MSO_1.EN sets, and then nothing happens: no .DN, no .ER, no error code to look up, and the machine sits there. Axis_01.AxisState reads 5.
Five is Inhibited, and a start inhibit is not a fault.
That is why there is no error number and why the next twenty minutes of hitting MAFR will achieve nothing. Logix checks six things before an axis enables. The first five each produce an error code in MSO_1.ERR that names the problem; the sixth produces silence, because the reference manual is explicit that a start inhibit does not generate an exception when a start is attempted. The instruction is simply never allowed to finish.

The rung most people write. Nothing in it is wrong; it just cannot tell the difference between an axis that is faulted and an axis that is inhibited, and only one of those is going to respond to a reset.
Five gates give you a number, and the sixth gives you nothing
Work them in this order because it eliminates the most per check. Gate one is configuration: an axis that is not attached to a physical motion module, or not assigned to a motion group, returns error 11. Gate two is the group, and error 19 says the motion group is not in the synchronized state, which the manual attributes to a missing or misconfigured servo module and which only clears on a group overlap or a CST loss fault. Gate three is the fault state, and error 20 means the axis is faulted while error 21 means the group is — this is the gate MAFR exists for and the only one it touches. Gate four is shutdown: error 7, and the corrective action named in the manual is an MASR or a direct shutdown reset command, not a fault reset. Gate five is error 40, drive locally disabled, which is the drive refusing rather than the controller. Gate six is the start inhibits.
It has no error code at all, and that absence is the single most useful symptom in this article.
Error 22 is worth knowing as the sixth-and-a-half: MSO on an axis that is still moving returns Axis In Motion.
The manual’s own wording is that MSO should not be used while the axis is moving, which is a gentler way of saying the same thing.

Five numbered failures and one silent one. If .ER never sets, gates one to five have all passed and the answer is in StartInhibits.
The start inhibits, and what the drive calls them
There are two attributes, a standard set and a Rockwell-specific set, and both are bitmaps whose bit names are the tag member names in Logix Designer, nearly all of them carrying an Inhibit suffix. The standard six that a Kinetix 5700 can display are AxisEnableInputInhibit when the enable input is not active, MotorNotConfiguredInhibit and FeedbackNotConfiguredInhibit when the axis has not been given a motor or a feedback device, CommutationNotConfiguredInhibit when a permanent magnet motor has no commutation alignment selected, SafeTorqueOffActiveInhibit when the integrated Safe Torque Off function is asserted, and ConverterBusUnload when the bus supply feeding this inverter has asked it not to draw power. On the Rockwell side the three the drive shows are MotorFeedbackRequiredInhibit
TorqueProveConfigurationInhibit and SafeTorqueOffInhibit, and each one maps onto an INHIBIT Mxx string on the drive’s own display the way the standard six map onto INHIBIT S01 through INHIBIT S06. Two more on that list are worth carrying in your head even though they are rarer: SafetyResetRequiredInhibit, where the safety reset input has to be toggled before the safety board will allow motion again, and FeedbackDeviceResetInhibit, which stands while a feedback device reset is running — a process the drive typically performs after a feedback loss.That last one is the reason an axis sometimes refuses to enable for a few seconds after a feedback fault, and then enables normally.
Nothing was wrong. The drive was busy resetting the encoder and said so, in a word nobody read.

Two views of the same condition. If you are at a laptop, read the tag; if you are at the panel, the drive has already written it on the screen.
Why a fault reset can leave you exactly where you started
An axis in the major faulted state can go to several different places when a fault reset lands, and the reference manual settles it with a precedence list: major faulted first, then shutdown, then pre-charge, then start inhibited, then stopped. More than one of those conditions can be true at once, and the state model can only show one. So an axis that was genuinely faulted, and whose fault has genuinely been cleared, will drop straight into start inhibited if an inhibit was standing underneath — and to anyone watching a state number rather than reading it, the reset looks like it failed. It did not fail. It removed the top layer and revealed the one that was underneath all along.
Read AxisState after the reset, not the MAFR’s .DN bit.
Three is faulted, four is shutdown, five is inhibited, and those three numbers send you to three entirely different instructions.
The tag everybody mistakes for the start inhibit
Hunt through an AXIS_CIP_DRIVE tag for the word inhibit and you will find InhibitStatus, bit 4 of the Axis Status word, long before you find StartInhibits. It is the wrong one, and the manual heads off the confusion with a sentence at the end of its own description: this inhibit status is not related to start inhibits. What that bit actually reports is whether the axis has been inhibited programmatically through the Inhibit Axis attribute — the same idea as inhibiting a module in the I/O tree, where the connection is shut down and later reconnected and reconfigured. It is genuinely useful for knowing when an inhibit or uninhibit operation has finished, because it holds its previous state throughout and only updates at the end. It has nothing to say about whether MSO will work.
One is about the connection to the module. The other is about whether the power stage may turn on.
The one that is not an inhibit at all
There is a condition in the Kinetix 5700 troubleshooting table that produces no inhibit bit, no fault and no error code, and it catches people on machines that cycle quickly: the axis cannot be enabled until the stopping time has expired. The manual’s resolution is three steps and no diagnosis — disable the axis, wait the configured stopping time, and enable it again. If your sequence disables an axis and re-enables it inside a second, that is worth checking before anything else, because everything else you are about to look at will read healthy. It is also worth remembering that MSO takes several coarse update periods to complete by design; the manual says outright that the instruction may take multiple scans because it needs multiple coarse updates, and that .DN is set only when the request has completed and both the drive enable and servo active status bits are set.
A .DN that arrives four coarse updates late is normal. A .DN that never arrives is gate six.

The two outcomes side by side. Neither trace shows an error bit, which is exactly why a rung that only watches .ER will sit there all shift.
Safe Torque Off is the most common single answer
Of the nine inhibits above, two are Safe Torque Off and they arrive by different routes — SafeTorqueOffActiveInhibit from the integrated safety function over a CIP Safety connection, SafeTorqueOffInhibit from the hardwired version where the safety circuit has removed the power structure directly. Before deciding either is a fault, check what the drive’s own indicators are saying: after self-test, a flashing green and red module status indicator means the drive is waiting for a safety configuration in integrated STO mode, or waiting on the safety inputs in hardwired mode. That is a drive doing exactly what it was designed to do. The equivalent argument on a smaller drive, where a missing jumper across the safety terminals stops the drive starting and produces a code rather than silence, is in PowerFlex 525 F059 safety open. None of this replaces a risk assessment or the validation of your own safety function, and an axis that will not enable because a safety function is asserted is the system working.
Three tags to read when an axis will not enable
Read three tags, in this order, and write them down: Axis_01.AxisState, Axis_01.StartInhibits, and MSO_1.ERR. A state of 3 with an error 20 is a fault and MAFR is the right instruction. A state of 4 with an error 7 needs MASR. A state of 5 with no error at all is an inhibit, and the bit that is set names the job — a wire, a configuration field, a safety circuit, or a feedback device that has not finished resetting itself.
If the inhibit is a feedback one, the trail carries on into the feedback fault that is not the encoder. If the axis is faulted rather than inhibited, the bit that tells you which kind is in AxisFault and MotionFault on a Logix motion axis, and the drive’s own account of the same event is in reading a Kinetix 5700 fault at the drive.