Configuring SIMOTION D425 Homing Output Cam and I/O Address

David Krause12 min read
Motion ControlSiemensTutorial / How-to
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

Overview

The SIMOTION D425-2 DP/PN (Siemens part number 6AU1425-2AD00-0AA0) integrates a SIMOTION motion controller and a SINAMICS S120 Control Unit (CU320-2) on a single module. This BASIC-performance motion controller exposes 12 dedicated digital inputs and 16 bidirectional DI/DO onboard, plus 4 DRIVE-CLiQ ports, 2 PROFIBUS interfaces, 3 PROFINET ports, 2 Ethernet, 2 USB, and 1 option slot.

Configuring a homing sequence on this controller requires three coordinated steps:

  1. Select the homing mode (Homing output cam and encoder zero mark) in the SIMOTION SCOUT axis configuration.
  2. Map the physical homing cam sensor to a logical address on the I/O area of the SIMOTION/CU.
  3. Wire the onboard DI/DO of the D425-2 into the configured logical address through the SINAMICS telegram and BICO configuration (drive parameter p0922, parameter number P390 for SIEMENS telegram 390, and reset to 999 to surface the BICO interconnections).

This article walks through each step, derives the logical address byte/bit offset, and adds an MCC program block to acknowledge technology-object (TO) alarms from a pushbutton input.

Safety Notice: Homing procedures move the axis without software position limits active during the search phase. Always test the configuration in JOG / manual mode with reduced velocity override (v_ref = 10%) before transferring to AUTOMATIC. Confirm that the mechanical cam is wired fail-safe (normally-closed contact recommended) so a wire break defaults to the safe state.

Prerequisites

Item Requirement
SIMOTION D425-2 MLFB 6AU1425-2AD00-0AA0, firmware V5.4 or later (V5.6 recommended for SCOUT TIA V18 integration)
SIMOTION SCOUT / TIA Portal SCOUT TIA V18 SP1 or SIMOTION SCOUT V5.6 with SP1
SINAMICS S120 firmware (CU320-2) V5.2 SP3 or later
Configuration software SINAMICS STARTER or SCOUT with integrated drive commissioning
Hardware DRIVE-CLiQ cable between D425-2 and any SINAMICS S120 Smart Line Module / Motor Module; 24 V DC on X124
Documentation SIMOTION D4x5-2 Commissioning and Hardware Installation Manual

SIMOTION D425-2 Onboard I/O Architecture

The D425-2 carries the digital I/O on the integrated SINAMICS CU320-2. The I/O appear in the PROFIdrive process data word (PZD) area of the message frame, not as direct SIMOTION I/O. The mapping follows the rules of SINAMICS S120.

Connector Layout (X122 / X132)

Terminal Signal Direction
X122.1 DI0 Input
X122.2 DI1 Input
X122.3 DI2 Input
X122.4 DI3 Input
X132.1 DI/DO8 Bidirectional
X132.2 DI/DO9 Bidirectional
X132.3 DI/DO10 Bidirectional
X132.4 DI/DO11 Bidirectional
X132.5 DI/DO12 Bidirectional
X132.6 DI/DO13 Bidirectional
X132.7 DI/DO14 Bidirectional
X132.8 DI/DO15 Bidirectional
All onboard DI are isolated to IEC 61131-2 type 1 (24 V DC nominal, 11 ms filter by default). The DI/DO terminals can be software-configured as input or output via p0728 (bit-coded). For homing cam usage, configure as input.

Homing Mode Selection in SCOUT

  1. Open the SIMOTION project in SCOUT and navigate to the Axes → <AxisName> → Homing configuration dialog.
  2. Set the homing mode to Homing output cam and encoder zero mark. This forces the axis to move toward the cam, decelerate on the cam edge, search the next encoder zero mark, and latch the position.
  3. Two parameter fields appear under the mode list:
    • Log. address of homing output — byte offset of the I/O byte that contains the cam bit.
    • Bit number — bit position inside that byte (0…7).

The combination of byte address + bit number must point to the actual physical input on the D425-2 that the cam is wired to.

Logical Address Calculation

The SIMOTION I/O area used by the homing configuration is the same I/O area assigned to the SINAMICS Control Unit during PROFIBUS / PROFINET configuration. The D425-2’s onboard DI/DO appear inside the message frame (telegram) of the integrated CU320-2.

Step 1 — Determine the CU Start Address

Open the device configuration of the CU320-2 in SCOUT. In the Properties → PROFINET interface / PROFIBUS dialog, note the input address and output address of the message frame. Example for a default project:

Input  start address  : 256 (decimal) = 0x100
Output start address  : 256 (decimal) = 0x100

Step 2 — Apply the DI/DO Offset

Per Siemens SINAMICS S120 / SIMOTION D4x5 documentation, the first 8 onboard DI (DI0…DI7) occupy the low byte of the message frame, and DI/DO8…DI/DO15 occupy offset +3 (the third byte). The mapping is therefore:

Physical terminal Byte offset from CU start Bit in byte Logical I/O identifier
DI/DO9 +3 bit 1 i_addr_cam = CU_start + 3, bit 1
DI/DO10 +3 bit 2 i_addr_cam = CU_start + 3, bit 2
DI/DO11 +3 bit 3 i_addr_cam = CU_start + 3, bit 3
DI/DO13 +3 bit 5 i_addr_cam = CU_start + 3, bit 5
DI/DO14 +3 bit 6 i_addr_cam = CU_start + 3, bit 6
DI/DO15 +3 bit 7 i_addr_cam = CU_start + 3, bit 7

Step 3 — Compute the Log Address

For a project where the CU start input address is 256 and the homing cam is wired to DI/DO11:

Log. address of homing output = 256 + 3 = 259 (decimal)
Bit number                      = 3

Enter these two values into the SCOUT homing dialog. Save and download to the D425-2 (target system → download → selected target devices).

Enabling the BICO Table on the CU (p0922 / Parameter 390)

By default, the onboard DI of the SINAMICS CU320-2 are not directly mapped to free I/O for the SIMOTION homing mechanism; they are wired to internal CU status words. To expose the DI/DO bytes as freely-readable process data, the SINAMICS telegram must be extended or changed.

  1. Open the CU320-2 expert list (or SCOUT drive configuration → Properties → Message frame).
  2. Set p0922 = 390 (SIEMENS-specific telegram 390, which exposes the onboard I/O in PZD3). For applications using only PROFIdrive standard telegrams, an alternative is to select free telegram configuration and append DI/DO as PZD words. Telegram 390 is supported on firmware V4.6 and later.
  3. After entering p0922 = 390, change the parameter once to p0922 = 999 (initial state / free configuration) and re-acknowledge with p0977 = 1. This forces the drive to release the BICO interconnections for the onboard DI/DO, exposing them as free status bits. Re-enter p0922 = 390 afterwards.
  4. Carry out RAM-to-ROM (copy RAM to ROM, p0977 = 1) and a POWER ON for the changes to become active.
Parameter numbers P390 and P999 quoted in user documents refer to the same drive parameters accessed as p0922 in the modern SINAMICS parameter set. Older documentation may list U390 as the readout and P390 as the write index. Always use the write parameter index when scripting or HMI commissioning.

Linking the Onboard DI/DO to the Homing Logical Address

Once telegram 390 is active, the onboard DI/DO appear as process data bits. Two wirings remain:

  1. The onboard terminal bit (DI/DO9…15) is already physically wired to the message frame PZD3 at the byte offset listed above. No additional BICO wiring is required for the input direction.
  2. The SIMOTION homing configuration accesses the input through the SIMOTION I/O address space. Because the CU start address (e.g., 256) is configured as the input start in the SIMOTION device configuration, the homing logic reading byte 259 bit 3 correctly samples DI/DO11.

If the homing cam is connected to a different physical input (e.g., DI0 on X122.1), the corresponding offset is different. With CU start = 256, DI0 maps to byte 256, bit 0. Configure SCOUT accordingly:

Log. address of homing output = 256
Bit number                      = 0

Visualizing the Mapping

The following inline SVG illustrates the logical address chain from the physical terminal to the homing algorithm:

Physical Cam X132 DI/DO11 PZD3 Byte +3, bit 3 Log address 259.3 SIMOTION homing engine reads Log Address 259 bit 3 → detects cam edge → searches zero mark

Acknowledging Technology-Object Alarms via MCC

The Acknowledge technology object alarms MCC command (German: Quittieren Technologieobjektalarme) is part of the SIMOTION MCC library and is bound to the technology object (TO) of the axis. To trigger it from a pushbutton wired to an onboard DI:

Program Structure (MCC chart AxisControl)

// Declare I/O variables
VAR_GLOBAL
    bAckPushbutton : BOOL;    // Mapped from input, e.g., CU_start + 3, bit 4 (DI/DO12)
    bRisingEdge    : BOOL;
END_VAR

Add the following MCC commands in a task of execution level IPO / IPO_2 or higher (e.g., BackgroundTask for non-time-critical acknowledge):

  1. Edge detection on the pushbutton: _rising(bAckPushbutton, bRisingEdge) or use the MCC Detect rising edge command.
  2. Acknowledge TO alarms command (chart menu → Insert → Single commands → Acknowledge technology object alarms):
// MCC pseudo-code
gAxisName.AcknowledgeTechnologyObjectAlarms(    // Axis TO identifier
    Execute := bRisingEdge,
    CommandId := 1
);

Why Compilation Errors Occur

Compilation errors at this point usually mean one of the following:

Error symptom Likely cause Fix
Identifier gAxisName unknown TO not assigned to MCC chart / variable not exported In SCOUT, Properties → MCC chart → Assigned TO; add the axis instance name in Name field
Method AcknowledgeTechnologyObjectAlarms not found Wrong TO type (using TO_PositioningAxis on a TO_SpeedAxis) Match the command to the TO type. AcknowledgeTOAlarms is available on every TO; confirm via SCOUT command browser
Type BOOL not convertible to BOOL Comparing an I/O bit with a wrong data type Verify mapping type in symbol browser; do not compare WORD to BOOL
System function not available in this firmware Firmware < V4.4 or MCC version mismatch Update to D425-2 firmware ≥ V5.4 and re-import the command library

Alternative: ST Implementation

When the MCC command is unavailable in the library, use a Structured Text equivalent inside an MCC ST source file block:

IF bRisingEdge THEN
    _acknowledgeAlarms(axis := Axis_1,   // TO instance name
                       followUpMode := ALL);
    bRisingEdge := FALSE;
END_IF;

The system function _acknowledgeAlarms is declared in the SIMOTION system library SIMOTION System Functions / Basic.

Verification and Commissioning

  1. Online check of the address: in SCOUT, connect to the D425-2, open Commissioning → Axis → Homing, and use the online Test cam function. The displayed logical address must match what is wired.
  2. Trace the bit: enable the SCOUT trace on the homing status word and trigger the cam manually. Verify the bit toggles in the trace window.
  3. Execute a homing run in JOG: jog the axis toward the cam at low velocity (v_jog_home = 10% v_max). The axis should decelerate on the cam edge and latch at the first zero mark after the cam rising edge.
  4. Check error reactions: temporarily disconnect the cam wire. The axis should report F07452 / F31118 (cam missing) and stop with a controlled fault. Reconnect and use the MCC acknowledge to clear.
If the homing command immediately faults with F31118 — Cam not found, the most common root cause is that the DI is not reaching the SIMOTION I/O image. Verify with the trace. If the bit never toggles, the cause is almost always the telegram (the onboard DI/DO are not exposed) or an incorrect CU start address assignment in the PROFINET / PROFIBUS configuration.

Troubleshooting Matrix

Symptom Probable cause Remediation
Homing faults with F31118 immediately on start Logical address does not reflect DI state Trace the configured bit, confirm telegram 390 active, set p0922 = 390 and copy RAM to ROM
Bit toggles in trace but homing still faults Wrong TO type or wrong homing mode Re-confirm mode Homing output cam and encoder zero mark and TO configuration (TO_SpeedAxis vs TO_PositioningAxis)
Acknowledgement via MCC fails with ‘unknown identifier’ TO not assigned to the chart Open MCC chart properties, set assigned TO to the axis instance
DI does not react to 24 V at terminal DI/DO configured as output (p0728 bit) Check p0728 in the CU expert list. Set bit corresponding to DI/DOn to 0 (input)
Compilator reports ‘command not supported’ MCC library version does not contain the command (older firmware) Upgrade D425-2 firmware ≥ V5.4 or use ST alternative with _acknowledgeAlarms
Acknowledge pulses but faults immediately re-appear Persistent root cause (e.g., missing 24 V supply on the cam) Read diagnostic buffer _getAlarmHistory, correct root cause, then acknowledge

Field-Proven Caveats

  • The byte/bit notation in SCOUT is byte.bit with the bit numbered from 0, not 1. Some SIMOTION dialogs display the bit number as 1-based. Always cross-check by viewing the actual SCOUT address field, which is always 0-based.
  • CU320-2 input filter (p0401.0…7) defaults to 11 ms. For high-speed homing cam applications (v_home > 1 m/s), reduce to 1 ms or 0.5 ms to avoid missing the cam edge.
  • If multiple axes share the same CU320-2 telegram, the onboard DI/DO of the D425-2 are not available to other axes via that telegram. Use a separate PROFIsafe or PROFINET I/O slice for shared sensors.
  • Parameter p0977 = 1 is the SINAMICS “copy RAM to ROM and warm restart” command. Use this once after changing telegram settings, not on every boot.
  • The MCC Acknowledge technology object alarms command clears faults on the bound TO only. Drive-level faults on the SINAMICS side (e.g., F30001) must be acknowledged through the drive object (CU320-2) using _acknowledgeAlarms with the drive DO instance, or via p3981 on the drive side.

What is the exact Siemens part number for the SIMOTION D425-2 DP/PN used in this configuration?

The SIMOTION D425-2 DP/PN is identified by MLFB 6AU1425-2AD00-0AA0. See the Siemens product support page for the latest firmware and catalog data.

How do I compute the logical byte address for a homing cam wired to DI/DO10?

Add the offset +3 to the SINAMICS CU start input address (e.g., 256 → 259), and set the bit number to 2. Enter 259 in the Log. address of homing output field and 2 in the Bit number field of the SCOUT homing configuration.

Which SINAMICS parameter exposes the onboard DI/DO of the D425-2 as free I/O?

Set p0922 = 390 (SIEMENS telegram 390). To release the BICO interconnections so the onboard bits appear in the process image, change once to p0922 = 999, acknowledge with p0977 = 1, then re-enter 390 and save RAM to ROM.

Why does the MCC command ‘Acknowledge technology object alarms’ fail to compile?

Most often the technology object (axis instance) is not assigned to the MCC chart. Open the chart properties and set the assigned TO. Confirm the MCC library version matches the firmware (D425-2 firmware ≥ V5.4). If the command is still missing, use the ST alternative with the system function _acknowledgeAlarms(axis := Axis_1, followUpMode := ALL).

How do I acknowledge a fault from a physical pushbutton?

Wire the pushbutton to an onboard DI/DO, map its logical address in the SCOUT symbol browser, then trigger the MCC command Acknowledge technology object alarms on the rising edge of that input. The MCC chart must run in a task of execution level IPO or BackgroundTask and have the axis technology object assigned in chart properties.

Back to blog