1. Error Identification and Symptom Summary
The "Requested logical address is invalid" diagnostic is raised on the SIMATIC S7-1500 / S7-1200 controller when a Motion Control (MC) instruction block such as MC_Power, MC_MoveJog, MC_MoveAbsolute, MC_Home, or MC_Reset cannot access the I/O area it has been configured against. In TIA Portal, the alarm appears as MC Alarm 401 on the technology object (TO) and is also written into the CPU diagnostic buffer as "Error accessing logical address <Byte>.<Bit>".
A typical buffer entry from a SINAMICS S120 setup looks like:
MC Alarm 401: Error Accessing logical address 129.3
Event ID : 0x02B1 (or 0x02B4)
Direction : Read / Write
TO : TO_Axis_1 / TO_SynchronousAxis_1
The diagnostic event is independent of the drive's own status. The drive can still report RUN with a green LED, can be jogged from the SINAMICS Control Panel on the SINAMICS S120 Commissioning Tool, and can still be observed online in Startdrive. That is the strongest indicator that the fault is not on the drive's PROFINET telegram but on the PLC side TO / I/O mapping.
2. Affected Hardware and System Topology
The fault is observed in configurations where an S7-1500 controls a SINAMICS S120 line-up through PROFINET IRT / RT with a technology object bound to a drive telegram. Common catalog numbers involved:
| Component | Catalog Number | Role |
|---|---|---|
| SIMATIC S7-1500 CPU | 6ES751x-xxx0x-0AB0 | IO Controller, runs MC blocks |
| SINAMICS S120 Control Unit | 6SL3040-1MA01-0AA0 / -0AB0 (CU320-2) | Drive controller |
| SINAMICS S120 Double Motor Module | 6SL3120-2TE13-0ADx (Booksize) | Two-axis power section |
| SINAMICS Line Module | 6SL3130-xxx (e.g. 6SL3130-1TE31-0AA0) | DC bus supply |
| ET 200SP distributed I/O | 6ES7155-6xxx0-0AB0 (IM) + 6ES713x (modules) | Hardware limit switches, encoder feedback |
| Startdrive (TIA option package) | 6SL3055-0AA00-5xxx | Drive commissioning inside TIA Portal |
The error is most often raised when the PLC has a TO bound to a Drive Object (DO) on a CU320-2 that is reachable on PROFINET, but the input/output image addresses the TO is configured against have not been resolved correctly. The TO stores I/O addresses (logical addresses) for the telegram, the encoder, and the optional hardware limit switches. Any mismatch in these logical addresses produces MC Alarm 401.
3. Reading the Diagnostic Buffer (PLC Side)
Open the CPU in Online & Diagnostics in TIA Portal and expand the diagnostic buffer. The MC Alarm 401 entry will be reported as a Motion Control event. The decoded fields are:
| Field | Value in example | Meaning |
|---|---|---|
| ErrorID | 401 | Invalid logical address requested by TO |
| ErrorInfo | 129.3 | I/O address the instruction tried to access; format = Byte.Bit |
| Event Class | 13 (Motion Control error) | Source of the diagnostic |
| Source | MC-Interpolator / TO | Where the access attempt originated |
| Direction | Input or Output | Whether the read or write image is invalid |
The 129.3 in the example refers to input byte 129, bit 3. Decoding this address against the device configuration in Devices & Networks identifies which PROFINET slot or which hardware limit switch the TO is trying to access. The Siemens List of ErrorIDs and ErrorInfos for Technology Objects V4..V5 (S7-1200) lists this code as "The requested logical address is invalid. Connect a suitable device. Check the device (I/Os). Check the topological configuration in HW Config. Compare the I/O assignment to the configuration."
The same Siemens KB entry also recommends cross-checking:
- The drive device is actually present and reachable on PROFINET.
- The configured I/O addresses in the TO match the device.
- The hardware limit switches, if configured, exist and are reachable.
- The encoder configured in the TO matches the encoder wired to that drive.
4. Root Cause Analysis: Logical Address Mapping
The TO stores three logical addresses:
| Logical address in TO | Purpose | Source of data |
|---|---|---|
| Drive telegram address | Standard telegram 1..106 (control word / status word + setpoints / actuals) | Configured in HWCN under the SINAMICS drive |
| Encoder address | Actual position value | Configured in HWCN under the encoder sub-slot |
| Hardware limit switch address (optional) | HW limit switch negative / positive | Configured under TO > Hardware > Hardware limit switch |
If the logical address stored in the TO does not match the address computed by HWCN at compile time, the MC instruction tries to read/write an area that is not assigned and the cyclic OB generates a process image error. Symptom: MC Alarm 401 with the exact byte.bit from the TO. Confirm:
- In Devices & Networks, select the SINAMICS drive and inspect the IO addresses tab. Note the start address of the telegram and the encoder sub-slot.
- Open the TO, go to Configuration > Hardware interface, and compare the addresses. Any difference indicates the TO was not re-mapped after the HW configuration was changed.
- Right-click the TO and select Map to → correct drive object. This re-creates the binding and forces a re-evaluation of the logical address.
5. Root Cause: Encoder Topology Mismatch
The Double Motor Module 6SL3120-2TE13-0ADx exposes two drive objects (DO1 and DO2). Each DO carries its own encoder sub-slot. In field wiring it is common for the encoder for DO1 to be terminated at the second motor connector and vice versa. From the TO's perspective the logical address is still valid (the encoder sub-slot is reachable), but the data delivered is for a different motor, which can confuse Safety Integrated commissioning and subsequently cause MC Alarm 401 on the TO.
Resolution steps:
- Online in Startdrive, open the affected DO and inspect Commissioning > Encoder. The encoder type and resolver model number should match the nameplate of the motor wired to that connector.
- If the encoder is on the wrong DO, delete the encoder configuration on both DOs and rebuild it. Use Configure DDS → Encoder assignment to explicitly map each encoder to its correct drive object.
- Because the topology change is structural, regenerate the Safety CRC: start Safety Integrated commissioning, then immediately stop it. This is mandatory whenever the encoder topology changes.
- Re-run the topology check in HWCN (right-click the SINAMICS device → Compile) and download the hardware configuration to the CPU.
- Once the encoder is on the correct DO, the TO that previously raised MC Alarm 401 will read a valid position and the alarm will clear.
6. Root Cause: ET200SP Hardware Limit Switch State
If a TO is configured to use a hardware limit switch and that limit switch is wired to an ET 200SP station that is unpowered, missing, or has a failed module, the periodic polling of the limit switch input generates MC Alarm 401 on every MC instruction. Typical ET 200SP failure modes that trigger this state are documented in the Siemens ET 200SP status and error display manual:
| ET 200SP condition | Effect on TO |
|---|---|
| Supply voltage L+ missing at BaseUnit (BU...D) | All module inputs read 0; configured HW limit switch appears unpowered |
| PROFINET IO controller STOP / recovery | IO data is invalid; MC alarms fire on every cyclic read |
| Module pulled or replaced | Slot address temporarily invalid until topology re-discovered |
| Invalid configuration of the ET 200SP on PROFINET IO | Station stays in diagnostic state; no IO data exchanged |
The field-proven workaround is to either power the ET 200SP station so the HW limit switches become valid, or temporarily disable the hardware limit switch in the TO so the MC instruction no longer references the invalid I/O address. To disable, open the TO → Hardware > Hardware limit switch and uncheck Enable HW limit switch. Re-enable once the ET 200SP is healthy.
7. Root Cause: Telegram and I/O Configuration Mismatch
The MC Alarm 401 will also be raised when the telegram type configured in HWCN on the SINAMICS DO does not match the telegram type the TO has been built against. Example mismatches:
- DO is configured for Standard Telegram 1 (PZD-2/2) but the TO was generated against Standard Telegram 3 (PZD-5/9) because the TO wizard picked the wrong DO at creation time.
- The TO was created in an earlier project version against Drive Object 2 (motor 2) of the Double Motor Module, but the project was edited so the DO is now Drive Object 1.
- Two TOs are mapped to the same DO by mistake; the second TO is then bound to an address that does not exist.
Validation steps:
- In Devices & Networks, open the SINAMICS device → Device view. For each DO, note the telegram number and the start addresses of inputs and outputs.
- In the TO → Configuration > Drive, confirm Drive object, Reference speed, Maximum speed, and the telegram type agree.
- Compile the project with Compile > Software (rebuild all blocks) to force a fresh TO ↔ HWCN address evaluation.
8. Step-by-Step Resolution Procedure
The following ordered procedure resolves MC Alarm 401 in the field. It assumes the drive itself is healthy (green LED, no active faults in Startdrive) and that PROFINET communication is established (no SF/BF on the CU320-2).
- Read the diagnostic buffer on the S7-1500 CPU. Note the ErrorID (401) and the ErrorInfo logical address (for example 129.3).
- Decode the logical address: in Devices & Networks, switch to IO communication view. The address must map to a slot/sub-slot on a real PROFINET device. If the address falls in a gap between devices, the TO has the wrong mapping.
- Re-bind the TO to the correct drive object: TO → Configuration → Drive object → Map to → select the correct DO. Confirm.
- Rebuild the TO if the binding is still inconsistent: delete the TO, recompile the project, then create a new TO from scratch using Add new technology object → TO_Axis_PTO or TO_SynchronousAxis as appropriate.
- Verify encoder assignment: open Startdrive online, navigate to Commissioning > Encoder for each DO, and confirm the encoder wired at the motor connector is mapped to that DO. Swap encoder assignment if needed.
- Reset Safety CRC if the encoder topology was modified: in Startdrive → Safety Integrated → Commissioning, start and immediately stop the safety commissioning wizard. This re-generates the CRC without altering the configured safety functions.
- Resolve ET 200SP station issues: ensure L+ is present on every BaseUnit BU...D, ensure the IM is configured and reachable, and confirm the DI module hosting the HW limit switches has a healthy SF/MT LED state.
- Compile and download: stop the PLC if any TO address table changes were made, then download the hardware configuration and software to the CPU.
- Restart the TO: in the TO → Commissioning view, run the axis control panel to verify MC_Power, MC_MoveJog, and MC_Home all clear without re-raising MC Alarm 401.
9. Verification and Commissioning Checks
After applying the fix, perform the following checks to confirm MC Alarm 401 will not return:
| Check | Method | Pass criterion |
|---|---|---|
| TO active | Watch the TO_Axis status word in a watch table |
AxisStatusWord bit 0 = 1 (Enabled) with no transient error |
| Diagnostic buffer clean | Online & Diagnostics → Diagnostic buffer | No new entries with ErrorID 401 |
| Hardware limit switch | Force the input and observe TO response | TO reacts within one MC cycle; no alarm |
| Encoder feedback | Jog the motor and watch actual position | Actual position tracks setpoint without alarm |
| PROFINET quality | Read CU320-2 cyclic counters in Startdrive | No timeout counters incrementing |
Run the axis for at least one full motion cycle (e.g. MC_MoveAbsolute from -100 mm to +100 mm with 100 mm/s) to confirm no transient MC Alarm 401 reappears during motion.
10. Related I/O Error Conditions and Diagnostics
Beyond MC Alarm 401, the Siemens technology object error list contains other I/O related alarms that often appear together or as follow-on errors. The most common are:
| ErrorID | Cause | First action |
|---|---|---|
| 301 | Drive telegram not received within monitoring time | Check PROFINET watchdog, drive name, IP address |
| 304 | Encoder telegram timeout | Check encoder connector, encoder sub-slot, PROFINET |
| 401 | Invalid logical address (this article) | Re-map TO to correct DO; check ET 200SP |
| 502 | Hardware limit switch activated while axis not homed | Verify limit switch wiring and polarity |
| 700 | Internal TO configuration inconsistency | Rebuild TO and recompile project |
If MC Alarm 401 is replaced by ErrorID 502 after re-binding, the issue has shifted to the limit switch wiring rather than the logical address mapping.
What does MC Alarm 401 mean on a SINAMICS S120 axis?
It indicates the Motion Control instruction tried to read or write an I/O address that the technology object has not been bound to. Verify the TO is mapped to the correct drive object on the CU320-2, the encoder sub-slot is correctly assigned, and any configured hardware limit switch is present on a powered PROFINET device.
Why does the drive work from the Control Panel but not from the PLC?
The Control Panel talks directly to the SINAMICS Drive Object over PROFINET and does not depend on the SIMATIC technology object. The PLC path requires the TO's logical addresses to match the device configuration, so the MC Alarm 401 only appears on MC_Power / MC_MoveJog / MC_Home calls from the S7-1500.
Can a missing ET 200SP cause MC Alarm 401?
Yes. If the technology object is configured to use a hardware limit switch wired to an ET 200SP station that is unpowered or in diagnostic state, the polling of that input fails. Power the ET 200SP or temporarily disable the hardware limit switch in the TO to clear the alarm.
Do I need to reset the Safety CRC after fixing MC Alarm 401?
Only if you changed the encoder topology on a SINAMICS Safety Integrated axis. A pure TO remap that does not move the encoder between drive objects does not invalidate the Safety CRC. If you do swap encoders, restart the Safety Integrated commissioning wizard and perform the documented bump test before returning the machine to production.
What logical address does ErrorInfo 129.3 point to?
It points to input byte 129, bit 3 in the SIMATIC process image. In Devices & Networks switch to the IO communication view to see which device and slot is mapped to that address. In most Double Motor Module setups this is an encoder status bit or a hardware limit switch input.