Problem Definition and Operating Context
An ASRS (Automated Storage and Retrieval System) telescope axis controlled by a Siemens S7-1500 Technology Object (TO) in position mode intermittently loses its absolute position reference while the Homed status bit remains TRUE. Field-reported symptoms:
- Reported TO position returns to
0while the mechanical axis is offset by 100–200 mm from the commanded target. - No drive fault is raised at the moment the position reference is corrupted.
- The TO.HomingStatus.Homed bit stays TRUE — the controller believes the axis is still referenced.
- The drive subsequently trips into an overspeed (F31912 / 7348) fault while attempting to close the apparent following error.
- Reproduction is non-deterministic: one occurrence roughly every three weeks of continuous operation.
- Axis stroke is symmetrical:
-1600 mm → 0 mm → +1600 mm, and the failure always coincides with the 0 mm (center / LHD) command. - Encoder fitted: multiturn absolute encoder on the motor shaft.
Because the homed bit never resets, standard re-homing alarms are suppressed and the failure surfaces only after the drive reacts to the open following error. The combination of "silent position loss + persistent homed bit + overspeed reaction" is the diagnostic fingerprint this article resolves.
Why the Homed Bit Stays TRUE After Position Loss
On Siemens TIA Portal motion control, the TO.HomingStatus structure contains the bit Homed. This bit is set TRUE on a successful homing sequence and is only cleared by:
- An explicit
MC_ResetwithRestart = TRUEon the TO. - A reboot / restart of the technology object.
- Loss of the encoder power supply path that forces a re-init.
An internal incremental position counter wrap-around, a telegram timeout on the PROFIdrive interface, or a brief following-error spike does not automatically reset the homed bit. The drive-side position is updated from each telegram, and if the TO position controller re-engages with a stale absolute value while the homed bit is still asserted, the controller believes it is operating in a known reference frame and simply commands a velocity that the actual axis cannot match — producing the observed overspeed reaction. The S7-1500 Motion Control function manual documents this exact behavior under the section "Behavior with position setpoint / actual value differences after homing" — see the S7-1500 Motion Control Function Manual.
Root Cause Hypothesis Matrix
The non-deterministic reproduction every few weeks strongly points to a timing-sensitive condition. The following hypotheses must be triaged in order of probability:
| # | Hypothesis | Distinguishing Symptom | Probability |
|---|---|---|---|
| H1 | Motion task time > half of one motor revolution at peak velocity (Nyquist violation) | Speed-related overspeed, homed bit stays TRUE, position jumps at high speed | High |
| H2 | Encoder configured as single-turn in the TO while the hardware is multiturn (or vice versa) | Position wrap exactly at one motor revolution | High |
| H3 | PROFIdrive / PROFINET telegram loss or jitter between S7-1500 and drive | Coincident diagnostic interrupt OB82 / OB86, network LED activity | Medium |
| H4 | Mechanical slippage at the telescope belt drive or coupling | Reproducible with specific load masses, asymmetric error magnitude | Low (already excluded by mechanical audit) |
| H5 | Following-error limit set too wide in TO configuration | Following error can rise above the limit without alarm before overspeed | Medium |
| H6 | EMC-induced encoder signal dropout (Z-track or commutation lost) | Coincident with VFD switching of nearby axes | Low |
| H7 | TO cyclic interrupt (OB MC-Servo) overrun due to heavy PLC scan | OB priority starvation, IPC diagnostic buffer entries | Medium |
Diagnostic Procedure: MC-Servo Trace Recording
The single most effective triage tool is a TIA Portal trace recording configured to the same sampling as the motion control. The motion-control clock is the OB MC-Servo; if the trace is configured with a slower or faster sampling base, aliasing artifacts hide the real failure mode.
- Open the S7-1500 in TIA Portal and navigate to Traces.
- Create a new trace with sampling = OB MC-Servo. Do not use the cyclic OB1 sampling; the MC-Servo clock is typically 1–4 ms and the resolution difference will mask the fault.
- Add the following signals (use the symbolic names of the TO data block):
-
<TO>.ActualPosition(LREAL, real axis position) -
<TO>.SetpointPosition(LREAL, commanded position) -
<TO>.ActualVelocity(LREAL, mm/s) -
<TO>.SetpointVelocity(LREAL, mm/s) -
<TO>.FollowingError(LREAL, dynamic following error) -
<TO>.ErrorDetail.Number(DINT, current axis error code) -
<TO>.StatusWord(error / homed bits) -
<TO>.Override(LREAL — capture any operator overrides)
-
- Configure a trigger on
FollowingError > 0.05 * FollowingErrorMaxwith a 5 s pre-trigger and 10 s post-trigger window. - Add a secondary trigger on
ErrorDetail.Number <> 0so any drive-side fault is captured. - Deploy the trace to the PLC and leave it armed. With a failure rate of one event every three weeks, leave the trace armed for at least four weeks. Use the PLC's Diagnostic buffer in parallel — filter on motion-control events.
The trace answer is unambiguous: a steady following error that briefly spikes, or a flat-line actual position when the setpoint continues to move, isolates the root cause within H1–H5. The reference procedure for trace configuration on S7-1500 motion control is documented in the S7-1500 Motion Control Function Manual (Siemens Industry Online Support).
Motion Task Time vs Encoder Revolution Time — the Nyquist Constraint
If the motion task time (typically the OB MC-Servo cycle) approaches or exceeds half of one motor revolution at peak axis velocity, the controller cannot resolve position correctly — a discrete-time sampling limitation. This is independent of whether the encoder is multiturn or single-turn; it is a function of how many encoder increments arrive per MC-Servo tick.
Compute the constraint as follows:
T_motor_rev [s] = 60 / n_max [rpm]T_safe [s] >= 2 * T_MC-Servo [s]- Equivalently:
n_max_safe [rpm] <= 30 / T_MC-Servo [s]
Worked example using the field data:
| Parameter | Value |
|---|---|
| MC-Servo cycle (typical S7-1500 T) | 4 ms (some T-CPU variants: 2 ms; firmware V2.9 onwards supports 1 ms) |
| Motor max speed (gearbox output) | 3000 rpm |
| T_motor_rev | 60 / 3000 = 20 ms |
| Required MC-Servo for Nyquist compliance | <= 10 ms |
| Status with 4 ms MC-Servo | Compliant (5x oversampled) |
If the controller is on a slower MC-Servo cycle or the motor peak speed is higher, the constraint is violated and the TO will sample the encoder sparsely enough that the position counter misses counts between samples. The S7-1500 / T-CPU MC-Servo cycle is configured in TIA Portal under Properties > Motion Control > Cycle time; the smallest available value depends on the CPU firmware. As of S7-1500 CPU firmware V2.9 and TIA Portal V17, the supported MC-Servo cycle range is 1 ms to 8 ms — see the Siemens Industry Online Support CPU-specific manual for your exact article number (e.g. 6ES7531-…, 6ES7518-…).
Encoder Configuration Audit (Multiturn vs Single-turn)
Even when a multiturn absolute encoder is fitted, the TO configuration in TIA Portal must match. The two relevant parameters are:
-
Encoder type:
Incremental,Absolute (single-turn), orAbsolute (multiturn). - Fine resolution / resolution per revolution: bits per revolution.
If the TO is configured as Incremental, homing is required after every power cycle and the homed bit is the only absolute reference. A power-rail glitch lasting more than the encoder backup time will invalidate the position without dropping the homed bit — particularly on encoders with battery-backed multiturn counters that retain their value across short brownouts but lose the in-revolution position.
If the TO is configured as Absolute (single-turn) but the hardware is multiturn, the position will wrap once per motor revolution. With the field parameters:
- Gearbox output pitch = 10 mm/rev (telescope belt pitch)
- Failure magnitude = 100–200 mm = 10–20 motor revolutions
This magnitude rules out a single-turn wrap — the offset is far too large. However, a configuration mismatch where the TO assumes a different resolution per revolution than the encoder actually delivers produces a per-sample scaling error that accumulates over the motion. Audit procedure:
- Open the TO in TIA Portal → Configuration > Encoder.
- Compare the configured Resolution per revolution against the encoder nameplate (e.g. 8192 increments/rev = 13 bits, 524288 = 19 bits).
- Compare the configured Multiturn resolution (e.g. 4096 revolutions = 12 bits) against the encoder nameplate.
- Compare the configured Reference speed against the motor's actual maximum velocity at the gearbox output.
- If the drive interface is PROFIdrive over PROFINET, verify the encoder reference is via telegram 3 / 103 / 105, not via a separate encoder module.
For drives using standalone encoders (non-PROFIdrive), confirm the encoder homing procedure was completed at least once successfully after commissioning — see the Delta Motion reference on quadrature axis homing, which describes the same fundamental requirement: a quadrature encoder provides only relative position, so a known reference must be established before position commands are valid.
Mechanical Slippage and Telescope Belt Verification
Mechanical slippage must be excluded before any control-side fix is trusted. On a telescope axis, slip can occur at:
- Drive belt / timing belt between motor and gearbox input.
- Toothed belt between gearbox output and the telescope pinion.
- Couplings on either side of the gearbox.
- Pinion-to-rack engagement on the LHD carriage.
Field verification steps:
- Mark the motor shaft and the gearbox input shaft with a pen mark. Command a small known motion (10 mm). Verify that the relative angle of the marks is unchanged.
- Mark the gearbox output and the LHD pinion. Command a slow 100 mm motion. Verify angular relationship is preserved.
- Command a full ±1600 mm stroke at low override (10 %) and overlay
ActualPositionagainst an external linear measurement (laser or glass scale). - Repeat at the failure override (100 %) and with the heaviest load the shuttle carries.
- Inspect toothed belt tension per the manufacturer's specification; over-tensioned belts wear the teeth asymmetrically and slip in the late life of the belt.
The source reports that mechanical slippage was already excluded by a specialist. Retain the signed mechanical audit in the maintenance log; if the failure recurs after the control-side fix, re-audit with the failed load condition documented.
Following Error Detection and Overspeed Reaction
The Siemens TO has a configurable following error monitoring with two parameters:
| Parameter | Symbolic path | Meaning |
|---|---|---|
| Following error maximum (dynamic) | <TO>.DynamicLimits.FollowingErrorMax |
Hard limit during motion |
| Following error tolerance (positioning window) | <TO>.PositioningWindow |
Static tolerance for "in position" |
| Positioning monitoring time | <TO>.PositioningMonitoringTime |
Time the position must stay within window |
If the dynamic following error exceeds FollowingErrorMax, the TO raises an error and the drive typically goes to STOP / quick stop. The source reports the drive trips into an overspeed alarm — this is downstream of the TO following-error reaction: when the TO's position loop opens because the actual position froze while the setpoint continued to advance, the velocity command saturates, the drive integrator winds up, and the drive's own n_max monitor trips.
Recommended actions:
- Tighten
FollowingErrorMaxto a value that is just above the maximum normal dynamic following error (compute from worst-case acceleration and Kv gain). - Reduce the position-loop Kv gain if the natural following error is large, to give the controller more headroom.
- Enable the following error warning via
<TO>.WarningHighFollowingError(firmware-dependent) at 80 % of the limit, so the PLC can record a non-fatal event before the alarm. - Add an alarm-handler block in the PLC that on
ErrorDetail.Number <> 0writes the timestamp, actual position, setpoint position, following error, override, and drive telegram diagnostics to a persistent log (data log on a memory card) for post-mortem analysis.
Permanent Resolution and Tuning
Once the trace isolates the failure mechanism, apply the targeted correction:
| Root cause | Resolution |
|---|---|
| H1 — Nyquist violation | Reduce MC-Servo cycle to 1–2 ms (firmware- and CPU-dependent) OR raise the gearbox ratio to increase T_motor_rev OR lower v_max. |
| H2 — Encoder configuration mismatch | Re-import the TO configuration from the encoder nameplate; verify against TIA Portal hardware catalog. |
| H3 — PROFINET telegram loss | Move the motion-control drive to a dedicated PROFINET port, enable IRT (Isochronous Real-Time), disable non-deterministic traffic on the same subnet, check the update time (e.g. 1 ms with IRT). |
| H5 — Wide following error limit | Tighten FollowingErrorMax and add a warning threshold at 80 %. |
| H7 — OB MC-Servo overrun | Profile the S7-1500 scan time, move heavy logic out of OB MC-Servo priority class, raise the OB priority if free. |
After applying the fix, also implement a defensive layer in the PLC application:
- On every cold restart of the TO, force a controlled homing sequence (active homing to a reference cam) before enabling MC_Power on the telescope axis.
- Add a position plausibility check: read the encoder position via the drive telegram directly (raw value) and compare against the TO
ActualPosition; if the difference exceeds 10 mm, raise a non-fatal warning that prompts an operator-controlled re-homing. - Add a per-revolution check: a marker on the LHD carriage passes a proximity switch at one fixed point per stroke; when it passes, compare the marker position against the TO
ActualPosition. Any divergence larger than 5 mm triggers a controlled shutdown.
Verification and Long-Term Monitoring
Verification has three tiers:
- Loop-back bench test: with the telescope axis decoupled from the LHD carriage, command ±1600 mm strokes at 10 %, 50 %, 100 %, 120 % override. Capture a trace of 100 consecutive cycles. Confirm zero unexpected following error events, zero TO errors, position accuracy within the configured positioning window.
- Empty-cell stress test: 1000 cycles in the storage aisle with no load on the carriage. Monitor the diagnostic buffer for any motion-control events. Confirm zero events.
- Production soak test: 4 weeks of normal shuttle traffic with the trace armed and the data log active. Confirm zero events before removing the diagnostic instrumentation.
Long-term, retain the trace configuration as a commissioning template in the project archive. The trace file is small (MBs) and can be redeployed in minutes. This becomes part of the ASRS preventive-maintenance plan and is consistent with the Siemens recommendation for periodic motion-control verification on safety-relevant axes.
Why does the homed bit stay TRUE even after the axis position is wrong?
On Siemens TIA Portal motion control, the Homed bit is only cleared by an explicit MC_Reset with Restart=TRUE, a TO re-init, or a power cycle. Internal events such as encoder telegram loss, brief following-error spikes, or position counter anomalies do not clear the homed bit, so the controller treats the axis as referenced and commands velocities against a stale absolute value.
How do I capture the failure if it only occurs every three weeks?
Configure a TIA Portal trace with sampling set to OB MC-Servo (not OB1), record ActualPosition, SetpointPosition, ActualVelocity, SetpointVelocity, FollowingError, ErrorDetail.Number, and StatusWord, and arm the trace with a trigger on FollowingError or ErrorDetail.Number. Leave the trace armed for at least four weeks and capture a parallel data log from the PLC application so the failure is preserved for post-mortem.
What is the Nyquist constraint for the MC-Servo cycle?
For reliable encoder sampling, the motion task time must be less than half of one motor revolution at peak velocity. Compute T_motor_rev = 60 / n_max_rpm, then require T_MC-Servo <= T_motor_rev / 2. For example, at 3000 rpm T_motor_rev = 20 ms, so T_MC-Servo must be at or below 10 ms; an 8 ms task is compliant.
Could the multiturn absolute encoder be mis-configured as single-turn in the TO?
Yes. In TIA Portal under the TO Configuration > Encoder tab, verify that Encoder type matches the hardware (multiturn vs single-turn) and that Resolution per revolution matches the encoder nameplate. A mismatch causes wrap or scaling errors that surface only at specific positions.
Why does the drive trip into overspeed instead of a Siemens following-error alarm?
The TO following-error monitor is the first line, but if the actual position freezes while the setpoint continues to advance, the velocity command saturates, the drive integrator winds up, and the drive's own n_max monitor trips before the TO following-error limit is exceeded. Tighten FollowingErrorMax and add a warning threshold so the failure is caught before the drive reacts.