Configuring SIMOTION External Encoder for Positioning

David Krause14 min read
Motion ControlSiemensTechnical Reference
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

Configuring SIMOTION External Encoder for Positioning Applications

An external encoder on a SIMOTION controller does not, by itself, perform positioning. It only senses the actual mechanical position of a load or axis and feeds that value back to the controller. A closed-loop positioning system still requires a SIMOTION axis with a configured drive (SINAMICS S110/S120, hydraulic axis, virtual axis, etc.), a motion control profile, and a feedback path. The external encoder becomes the actual-value source — typically encoder_2 — for a second feedback channel or a load-side position reference. Misreading this architecture is the single most common reason SIMOTION commissioning fails.

Architectural rule: SIMOTION positioning requires TO axis + TO drive + TO encoder or TO externalEncoder. The TO externalEncoder alone cannot execute a positioning command. It provides an additional actual position only.

1. SIMOTION Platform Selection

Identify the controller before selecting the encoder wiring path. SIMOTION platforms differ in onboard encoder interfaces, DRIVE-CLiQ topology support, and PROFINET performance.

Platform Onboard Encoder Inputs DRIVE-CLiQ PROFINET Ports Typical Use
SIMOTION D410 1 (TTL/HTL incremental) 2 2 (switched) Single-axis compact machines, SINAMICS S120 integrated
SIMOTION D425 0 4 2 (switched) Up to 16 axes, mid-range machines
SIMOTION D435 0 4 2 (switched) Up to 32 axes, complex motion
SIMOTION D445 0 4 2 (switched) Up to 64 axes, high-performance packaging
SIMOTION D455 0 4 2 (switched) Up to 128 axes, large machinery
SIMOTION P320 / P350 0 via CX modules 2–4 PC-based, cabinet-free
SIMOTION C240 / C240 PN 0 0 2 Standalone controller, drives over PROFINET

For SIMOTION D410 the typical topology is: SIMOTION D410 → integrated SINAMICS S120 → SINAMICS Sensor Module SMC30 (DRIVE-CLiQ) → external encoder. The external encoder can also connect directly to the D410 onboard input if it is a TTL/HTL incremental encoder and the resolution requirement matches the onboard counter (typically 32-bit, hardware-dependent).

For SIMOTION D425/D435/D445/D455 the encoder must connect through a SINAMICS drive or sensor module because these platforms have no onboard encoder input. The path is D4x5 → DRIVE-CLiQ → SMC20/SMC30/SME120/SME125 → encoder, or D4x5 → PROFINET/PROFIBUS → SINAMICS drive with configured telegram.

2. Encoder Connection Interfaces

Choose the encoder interface based on the encoder type, distance, and required signal level.

2.1 DRIVE-CLiQ via SINAMICS Sensor Module

The DRIVE-CLiQ path is the cleanest because it carries encoder data, diagnostics, and electronic nameplate over one cable. Siemens sensor modules accept the following encoders:

  • SMC20: Incremental encoders sin/cos 1 Vpp without EnDat interface (e.g., ERN 1387, Heidenhain LC 183).
  • SMC30: Incremental encoders TTL/HTL with or without commutation signals (RS422, push-pull).
  • SME120/SME125: Absolute encoders with EnDat 2.1 / EnDat 2.2 interface (e.g., Heidenhain ECN/EQN/ECI/EQI).
  • SMC40: SSI absolute encoders.

Each sensor module occupies one DRIVE-CLiQ port and appears in SCOUT topology as a sub-slot of the SINAMICS drive or as a standalone DRIVE-CLiQ participant.

2.2 PROFINET / PROFIBUS via SINAMICS Telegram

When the encoder connects to a remote SINAMICS drive or a third-party controller (e.g., ET 200S 1Count24V), the encoder data travels over PROFINET or PROFIBUS inside a Siemens telegram. Telegram 105/106 are the relevant standard telegrams for SINAMICS S120 with two encoders:

Telegram Direction PZD Count Encoder Slots Use Case
Telegram 3 Bidirectional 5/9 1 Basic speed control with encoder_1
Telegram 105 Bidirectional 10/10 2 SINAMICS S120 with DSC, two encoders
Telegram 106 Bidirectional 12/14 2 SINAMICS S120 positioning with DSC, two encoders (encoder_2 mapped)
Telegram 116 Bidirectional 14/16 2 + torque High-dynamic positioning with second encoder
Telegram 136 Bidirectional 14/16 2 + torque SIMOTION D410 default for positioning
Telegram 138 Bidirectional 15/19 2 + torque + status SIMOTION extended positioning, two encoders

Selecting Telegram 106 is the typical way to forward encoder_2 (the external encoder) data into the SIMOTION cyclic interface. If the drive communication only shows Telegram 3 or 105, the SCOUT axis configuration wizard will not expose encoder_2 selection.

Field tip: In SIMOTION SCOUT, open the drive (SINAMICS S120), go to Communication → Message frame configuration and change the telegram from the default to Siemens telegram 106 (or 136/138 for D410). Without this change the axis wizard cannot bind encoder_2.

2.3 Onboard Encoder Input (D410 Only)

SIMOTION D410 has one onboard encoder input (X120) supporting TTL (RS422) and HTL incremental encoders. Resolution and maximum frequency are hardware-defined; for high-resolution encoders use a sensor module instead.

3. External Encoder Technology Object (TO externalEncoder)

The TO externalEncoder holds the configuration of one physical encoder that is not the motor encoder of an axis. It exposes the actual position, velocity, and status to other technology objects via the SIMOTION axis configuration.

The Siemens TIA Portal documentation for S7-1500T (the successor platform with a similar concept) describes the external encoder technology object as follows:

"The external encoder technology object detects a position and makes this available to the controller. The actual position detected by the external encoder can be used as an actual value for an axis or for position-controlled processes."

The full documentation set is available at the Siemens TIA Portal V20 External Encoder Technology Object documentation page. While SIMOTION SCOUT uses a different engineering tool, the conceptual model (encoder as a sensor, not as a stand-alone positioning element) is identical.

3.1 External Encoder Roles in an Axis

Role Use Case SIMOTION Configuration
Load-side encoder Compensates backlash and elasticity in mechanical transmission TO encoder of axis = externalEncoder
Second actual value Monitors position on a parallel mechanism Monitoring only, not part of closed loop
Master encoder Electronic gear / cam following Master setpoint source on a following axis
Position-only feedback Positioning with hydraulic axis TO encoder of axis, no motor encoder

4. Encoder Type Selection and Wiring

External encoders on SIMOTION projects fall into four families. Choose the sensor module before you wire.

Encoder Family Interface Recommended Siemens Module Typical Resolution
Incremental sin/cos 1 Vpp SMC20 Up to 4,194,304 lines/rev (24 bit)
Incremental TTL/HTL RS422 / push-pull SMC30 Up to 16,384 lines/rev
Absolute EnDat 2.1 / 2.2 EnDat SME120 / SME125 Up to 25 bit single-turn + 12 bit multi-turn
Absolute SSI SSI SMC40 Up to 25 bit single-turn + 12 bit multi-turn

For background on why load-side (external) encoders are preferred for true position accuracy — versus motor encoders that measure indirectly through the gearbox — see the SEW Eurodrive encoder fundamentals article. The mechanical principle is identical across vendors: an external encoder measures motion directly at the load, eliminating backlash and torsional windup errors.

5. Dynamic Servo Control (DSC) Considerations

DSC is a Siemens-specific control loop topology where the position controller runs in the SINAMICS drive (closed at the 125 µs current-controller cycle) and SIMOTION only provides the position setpoint with an additional gain factor (Kp) over the PROFINET telegram. DSC dramatically reduces following error at high dynamics but requires:

  1. Telegram 105, 106, 116, 136, or 138 selected on the drive.
  2. Position controller enable bit set in the drive.
  3. The DSC Kp parameter configured on the SIMOTION axis (typically 1.0 × motor Kp for first try).
  4. Encoder_2 mapped through the telegram if DSC uses the external encoder as actual value.

If DSC is enabled but the telegram only carries encoder_1, SIMOTION will report a configuration inconsistency at axis start-up.

DSC + encoder_2: Use Telegram 106 (drive-controlled positioning with second encoder) or Telegram 136/138 for SIMOTION D410. The drive-side wizard will not show encoder_2 unless the telegram carries it.

6. Step-by-Step Configuration in SIMOTION SCOUT

6.1 Prerequisites

  • SIMOTION SCOUT TIA or SCOUT V5.x with matching firmware support package (e.g., SIMOTION D410 V5.x supports V5.4 SP1+).
  • SINAMICS drive commissioned in STARTER or SCOUT with the motor identified.
  • Sensor module (SMC20/30, SME120/125, SMC40) visible in DRIVE-CLiQ topology.
  • External encoder wired and powered; mechanical mounting verified.
  • SIMOTION project online to the controller.

6.2 Configure the Encoder at the Sensor Module

  1. Open the SINAMICS drive in the project tree.
  2. Drill into Commissioning → Encoder interface (for SMC30 it is p0400 family selector; for SME120 it is p0421).
  3. Set the encoder type to match the physical device (e.g., p0400 = 9999 user-defined, then p0421 = binary code matching the encoder datasheet).
  4. For incremental encoders: set p0425 (lines per revolution) and p0411 (gear ratio mechanical if any).
  5. Save and download to drive. Verify in Diagnostics → Actual values that the encoder count increments when the shaft rotates manually.

6.3 Select the Right Telegram on the Drive

  1. In SCOUT, double-click the SINAMICS drive, go to Communication → Message frame configuration.
  2. Change the setpoint/actual-value telegram from default to Siemens telegram 106 (or 136/138 for D410, or 116 if higher dynamics required).
  3. Confirm the PZD length and slot assignment in the PROFINET device properties (or PROFIBUS slave properties).
  4. Save, compile, download.

6.4 Add the TO externalEncoder

  1. In the project tree, right-click the SIMOTION device → Add new technology object → External encoder.
  2. Assign a name (e.g., to_external_enc_load).
  3. In the configuration dialog, select the encoder interface source. Options:
    • Sensor Module on DRIVE-CLiQ (recommended; the wizard shows discovered modules).
    • Encoder from PROFINET/PROFIBUS device.
    • Onboard encoder input (D410 only).
  4. Set the resolution and any fine interpolation (e.g., 2^n fine resolution on top of line count for sin/cos).
  5. Configure modulo or linear range depending on mechanical travel.
  6. Save and download.

6.5 Bind the External Encoder to an Axis

  1. Open the axis configuration (TO axis) for the positioning axis.
  2. Go to Encoder selection.
  3. Change the encoder from Motor encoder to External encoder, then point it at the TO externalEncoder just added.
  4. If DSC is used, verify Drive configuration → Encoder DSC matches the same encoder.
  5. Configure the load-side gear ratio under Mechanical system.
  6. Compile and download the SIMOTION project.

6.6 Commissioning Sequence

  1. Bring axis to safe standstill state.
  2. Use Control panel in SCOUT to jog the axis slowly. Verify encoder count increments match the mechanical travel.
  3. Run Axis → Commissioning → Homing to set the reference point. For incremental encoders, this is mandatory each power-up; for absolute EnDat, homing is required only once.
  4. Run a small MC_MoveRelative command (e.g., 10 mm or 360°) at low velocity. Verify actual position equals commanded position within the configured tolerance.
  5. Run MC_MoveAbsolute through the full travel to confirm modulo and limits.
  6. Capture a trace with setpoint, actual position, following error, and drive current. Following error should remain below the configured tolerance (default is dynamic following error warning).

7. Verification Checklist

Check Expected Behavior Diagnostic Tool
Encoder count increments on manual rotation Count matches lines per revolution Drive diagnostics online → actual encoder value
TO externalEncoder status RUN_OK or STOP_OK (not ERROR) SCOUT axis diagnostics panel
Axis actual position follows setpoint Within configured tolerance band Trace recording with following error trace
DSC enabled state Bit r2064[0] = 1 in drive Expert list r2064 / r0108
Encoder_2 actual value present in telegram Non-zero PZD word mapped to encoder_2 PROFINET diagnostics, telegram trace
No following-error warning during dynamic moves No alarm 20005 / 20006 Alarm buffer
Homing successful after power cycle (incremental) Home position reaches reference cam state Trace on home switch and zero pulse

8. Common Fault Codes and Remedies

Alarm / Fault Trigger Remedy
20001 (SIMOTION) Axis configuration inconsistent (e.g., encoder missing) Verify TO externalEncoder exists and is assigned; re-compile project
20005 Following error too large Reduce Kp, reduce acceleration, verify encoder resolution, verify load
20006 Following error timeout Check mechanical binding, verify encoder wiring, check DSC Kp
F31920 (SINAMICS) Sensor module DRIVE-CLiQ fault Replace cable, replace sensor module, check 24 V supply
F3x135 (SINAMICS) Encoder signal error (incremental) Check shielding, check A/B tracks continuity, reduce cable length
A3x422 (SINAMICS) Encoder hardware warning Compare encoder nameplate against p0400/p0421, replace if aged
F08501 (SINAMICS) PROFINET communication fault Check telegram selection, check controller name, check slot assignment
50103 (SIMOTION) DSC configuration inconsistent Telegram does not carry encoder_2 — select 106/136/138
50005 (SIMOTION) Encoder interface not assigned Open axis wizard, reassign encoder

9. Troubleshooting Matrix

Symptom Likely Root Cause Investigation
Encoder_2 not visible in axis wizard Wrong telegram selected on drive Drive → Communication → Change telegram to 106
Axis stays in ERROR after download TO externalEncoder not assigned to axis Open axis → Encoder → set to externalEncoder instance
Position drifts without mechanical motion Encoder noise / insufficient shielding Use shielded twisted pair, route separately from VFD cables, ground screen at one end
Following error too high at high velocity Encoder resolution too low Switch to higher-resolution encoder (e.g., 24-bit EnDat)
DSC won't activate Telegram missing DSC bits Use telegram 105/106/116/136/138; verify p1155 / p1156 in drive
Compiles but fails to go online Firmware version mismatch Update SIMOTION support package and matching firmware on D4x5
Counts are inverted vs expected direction Encoder A/B swapped or p0410 inverted Swap A/B wires or set p0410 = 1
Position resets every power cycle Incremental encoder used as absolute Switch to EnDat absolute, or perform homing each startup
Trace shows zigzag actual position Encoder line count mismatch with p0425 Verify p0425 equals actual lines per revolution

10. Cross-Platform Notes (SIMOTION vs S7-1500T)

SIMOTION is gradually being replaced by S7-1500T for new machine builds. The conceptual model of the external encoder technology object is preserved. In S7-1500T (with TIA Portal V17 or higher), the equivalent object is TO_ExternalEncoder in the Technology objects → Motion Control tree. The same configuration steps apply: assign encoder interface, configure resolution, configure modulo, then assign as actual value for a positioning axis. The official Siemens documentation for S7-1500T is at the External Encoder Technology Object documentation.

If you have an existing SIMOTION project that you migrate to S7-1500T, you must re-create the external encoder object because the underlying tool, configuration data, and program blocks are different. Telegram concepts (105/106/116/136/138) do not apply on S7-1500T in the same way; instead, telegram selection happens in the device configuration of the SINAMICS drive under Properties → Telegram configuration.

11. Safety and Wiring Considerations

  • Functional safety: A standard external encoder cannot be used as a SIL/PL position sensor unless it is a certified encoder (e.g., Heidenhain ECN/EQN with Safety-Lock or SinCos with Siemens Safety Integrated). SIMOTION safety functions require SINAMICS Safety Integrated and a safety-licensed encoder channel.
  • Shielding: Run encoder cables in a separate conduit, minimum 200 mm from VFD power cables. Ground the shield at the cabinet entry point only.
  • Bending radius: Observe minimum 6× cable diameter for Heidenhain and Siemens prefabricated cables.
  • DRIVE-CLiQ cable length: Maximum 70 m between devices; maximum 100 m total ring length.
  • Encoder cable length: Heidenhain specification per cable type; for incremental RS422, typically < 100 m; for EnDat 2.2, < 40 m.
  • 24 V supply: Sensor modules must have a separate, regulated 24 V supply (typically from SITOP) to avoid encoder count glitches during drive DC-bus transients.

Frequently Asked Questions

Why is the encoder_2 option not visible in the SIMOTION axis configuration wizard?

The drive is using a telegram that does not carry encoder_2 data. Open the SINAMICS drive → Communication → Message frame configuration, and select Siemens telegram 106 (or 136/138 for SIMOTION D410, or 116 for higher dynamics). Re-download the drive project and re-open the axis wizard — encoder_2 will then appear.

Can a SIMOTION axis position itself using only an external encoder without a drive?

No. The TO externalEncoder only provides the actual position. Positioning requires a TO axis with a TO drive (or virtual axis) and a motion function such as MC_MoveAbsolute or MC_MoveRelative. Without a drive, the axis has no actuator to execute the command.

Which Siemens sensor module should I use for a Heidenhain ECN 1313 EnDat 2.2 encoder?

Use SME120 or SME125 connected via DRIVE-CLiQ. Configure the encoder in STARTER or SCOUT under the SINAMICS drive → encoder interface using p0400 = 9999 (user-defined) and p0421 = binary code from the encoder datasheet. The SME125 supports higher clock rates required by EnDat 2.2 short-cycle mode.

What is the maximum DRIVE-CLiQ cable length for the sensor module connecting the external encoder?

Maximum 70 m between two DRIVE-CLiQ devices. The total length of all DRIVE-CLiQ cables in a ring or chain on one SIMOTION or SINAMICS Control Unit is limited to 100 m. Use Siemens prefab cables with the correct length to meet the spec.

How do I select the correct telegram for DSC with two encoders on a SINAMICS S120 drive?

Use telegram 106 for standard DSC applications, telegram 116 if additional torque channel data is required, or telegram 136/138 for SIMOTION D410 with two encoders. Then verify on the drive expert list that p1155 = 1 (DSC active) and r2064[0] confirms DSC enabled after ramp-up.

Do I need to home the external encoder after every power cycle?

For incremental encoders (TTL, HTL, sin/cos without EnDat), yes — the absolute position is lost on power-down. For absolute encoders (EnDat 2.1/2.2, SSI) the position is retained and homing is required only once after first commissioning.

Which SIMOTION SCOUT version supports TO externalEncoder with Siemens telegram 106 on a D410?

SIMOTION SCOUT V4.4 SP2 and later support TO externalEncoder with telegram 106. For D410 firmware V5.x, use SCOUT V5.4 SP1 or later with the matching Support Package. Mismatched support packages and firmware will reject the project at compile or online test.

Back to blog