Configuration Overview
This reference documents the field-validated approach for a SINUMERIK 840D sl retrofit on a large turning/milling machining center. The mechanical architecture is:
- Main spindle motor (large induction or water-cooled synchronous servo) mounted in the table base, used for turning operations.
- Separate C-axis servomotor, hydraulically engaged/disengaged to/from the table.
- Single second feedback device (direct measuring system) mounted at the geometric center of the rotary table, providing absolute or incremental position of the table itself.
- Hydraulic clutch/brake for engagement; when the C-axis motor is engaged, the main spindle motor is mechanically carried and is back-driven as a generator (or freewheeled through a one-way clutch, depending on design).
The control platform is a SINUMERIK 840D sl with NCK software SW 4.5 on an NCU 720.3. Both axes must be configured as Safety Integrated (SI) axes per the applicable C-standard for the machine (typically EN ISO 13849-1 PL d/e and/or IEC 62061 SIL 2).
Why FC17 Setpoint Switch (Motor Exchange) Does Not Solve This
FC17 (Motor selection) on the SINUMERIK 840D sl allows the drive to switch between pre-configured motor data records (the classic use is star/delta winding switching on large induction motors). It is a drive-side parameter switch, not an encoder switch. FC17 toggles between drive parameter sets such as p013 (motor selection), p014 (motor I²t model), and p018 (current setpoint filter) for the same drive object. It is intended for one motor being substituted by another on the same power section — not for two mechanically distinct motors that share one feedback device.
The functional limitation for the dual-motor C-axis/spindle case is fundamental:
- Only one drive object can be assigned to one machine axis at a time.
- The direct measuring system (second encoder) is a property of the machine axis, not a shared NCK resource.
- Switching drive parameter sets via the PLC interface (DB31.DBX21.0 motor selection, DB31.DBX21.1 motor selection bit 1) does not change which physical encoder feeds the position controller.
- FC17 does not re-route the SMC20/SMC30 encoder input. The encoder port is hardwired to a single axis.
FC17 is therefore the wrong tool for this configuration. It is the correct tool if you have one drive and one motor, but the motor itself has dual windings (star/delta) and you want to switch torque/speed characteristics without changing the mechanical link.
Hardware Encoder Signal Splitting (Recommended Path)
The only practical way to share a single physical encoder between two SINUMERIK axes is to split the encoder signals at the hardware level — before the signal enters any Sensor Module Cabinet (SMC). This is the architecture that has proven reliable in field retrofits.
The signal splitter must be specified for the encoder interface in use. For incremental 1 Vpp encoders (e.g., HEIDENHAIN ROD, ERN, or LIDA series), an active signal splitter is mandatory to maintain signal integrity, edge fidelity, and immunity to cross-talk between the two receiver channels. Passive Y-cables or unbuffered Tee connections will load the encoder output, reduce edge slew rate, and create position-dependent errors that the safety cross-check will detect as faults.
Signal integrity requirements
- Edge jitter: Active buffers introduce sub-nanosecond jitter, well below the position controller cycle of the 840D sl (typically 1 ms IPO, 250 µs position controller).
- Propagation delay matching: For SINUMERIK Safety Integrated functions (Safe Position / Safe Velocity), the two channels must have matched latency, or the safety arithmetic must compensate for the differential. Specify the splitter's propagation delay and enter it in MD36933 / MD36934 if SI is active on both axes.
- Diagnostic coverage: If one splitter channel fails, the other receiver sees a frozen or invalid signal. Cross-check via NCK life-sign counters (r0479) and SI diagnostics. The splitter itself should expose a fault output that the PLC can read.
- EMC and shielding: Cable shields bonded at both ends through the splitter housing. Avoid ground loops — keep chassis potential difference < 1 V between encoder and cabinet.
Alternative Architecture: Direct Encoder for C-Axis, Motor Encoder for Spindle
If signal splitting is rejected (galvanic isolation, signal integrity, or procurement concerns), the recommended alternative is to give each axis a different feedback source:
- C-axis: Uses the direct measuring system at the table center (high positional accuracy for milling/positioning operations).
- Spindle: Uses the motor-mounted encoder on the main spindle motor (closed-loop torque/speed control without direct position loop).
For spindle referencing, install an external proximity switch that is read via a digital NCK input (e.g., on the SMC30, or via a digital input module such as the SMC30's reference-mark input). Configure the spindle as a referenced axis (MD34100 REFP_SET_POS = 0, MD34200 ENC_REFP_STATE = 1 or 2) using the proximity switch as the reference cam. If the gearbox ratio between the spindle motor and the table is non-integer (a "strange" ratio in field terminology), the proximity switch is mandatory because the motor-encoder's reference mark does not correspond to a unique table position.
The mechanical ratios must be parameterized accurately in the spindle's load-side mechanical data:
-
MD31050 $MA_DRIVE_AX_RATIO_DENOM/MD31060 $MA_DRIVE_AX_RATIO_NUMERA— load-side gear ratio between motor and table. -
MD31070 $MA_DRIVE_ENC_RATIO_DENOM/MD31080 $MA_DRIVE_ENC_RATIO_NUMERA— encoder gear ratio (only relevant for second-stage gearing between encoder and motor). -
MD31020 $MA_ENC_RESOL/MD31030 $MA_LEADSCREW_PITCH— for a rotary axis, set to revolutions per encoder turn and leave PITCH at default.
For a 360° rotary table the modulo handling is mandatory: MD30310 $MA_ROT_IS_MODULO = 1, MD30320 $MA_MODULO_RANGE = 360°. Failure to enable modulo results in position overflow alarms during continuous rotation in C-axis mode.
Sensor Module Cabinet (SMC) Selection
Each receiving axis needs its own SMC. For SINUMERIK 840D sl the typical choices are:
| SMC type | Supported encoders | Typical use |
|---|---|---|
| SMC20 | Incremental 1 Vpp sin/cos | High-resolution direct measuring systems with sinusoidal signals (HEIDENHAIN LIDA, ERN, ROD) |
| SMC30 | Incremental TTL (RS-422), HTL, SSI absolute | Standard spindle/motor encoders, rugged industrial installations |
| SMC40 | EnDat 2.2 absolute | Newer absolute direct measuring systems, single-cable solutions |
| SMC50 | DRIVE-CLiQ encoders | SINAMICS-native motor encoders |
For the split-encoder approach with HEIDENHAIN 1 Vpp encoders, use one SMC20 per axis. Place both SMC20 modules in the same line-up (same ADB, same backplane) to keep cable lengths balanced and EMC environments identical. Avoid mixing SMC20 and SMC30 in this configuration — the input thresholds and termination are different, which can lead to subtle position errors that only appear at low velocity.
Encoder Compatibility: Incremental vs Absolute
The hardware splitting approach is field-proven only with incremental encoders. Absolute encoders (EnDat 2.2, SSI, BiSS, DRIVE-CLiQ) cannot be physically split by a passive or even an active device, because the absolute position is queried serially over a bidirectional channel that requires handshaking, clock synchronization, and packet acknowledgment. Splitter products from HEIDENHAIN, Hengstler, or Hübner are typically limited to 1 Vpp / 11 µApp incremental signals.
If the existing second feedback on the table is absolute (common on modern machine tools), you must either:
- Replace it with an equivalent-resolution incremental encoder (e.g., HEIDENHAIN ERN 1387 with 1 Vpp output), or
- Use the alternative architecture (direct encoder for C-axis, motor encoder for spindle).
Option 1 is mechanically simple (mounting flange compatibility) but requires the NCK to perform referencing on power-up. Option 2 preserves the absolute encoder's no-referencing benefit on the C-axis but requires the proximity switch and motor-encoder approach described above for the spindle.
SINUMERIK Safety Integrated Configuration
Configuring both the C-axis and the spindle as Safety Integrated axes is straightforward on 840D sl but requires careful attention to encoder redundancy and cross-check when sharing a physical encoder via a splitter.
For a Safe Stop (SS1/SS2) or Safe Velocity (SBR/SBV) configuration, each axis needs its own safe encoder, and the SMC20/SMC30 supports SI evaluation natively. When sharing a physical encoder via a splitter, the safety logic in each axis's drive independently monitors its own channel — the cross-check that is normally performed between two physical encoders inside one axis is not available here. Compensate by:
- Documenting the splitter as a safety-relevant component in the safety lifecycle.
- Verifying the PFH (probability of dangerous failure per hour) value with the splitter manufacturer. For Safety Integrated, the combined PFH of splitter + encoder channel must be low enough to meet the target SIL/PL.
- Entering the splitter's propagation delay as an offset in
MD36933 $MA_SAFE_DES_VELO_LIMITandMD36934 $MA_SAFE_POS_VELO_LIMITwhere applicable. - Performing a periodic cross-check between the two axes' actual values in the PLC — if they diverge beyond a tolerance band, raise a safe stop.
Key safety machine data (per axis):
| Machine Data | Description | Typical value |
|---|---|---|
| 36901 $MA_SAFE_FUNCTION_ENABLE | Bitfield of enabled safe functions | Bit 0 = SS1, Bit 1 = SS2, Bit 4 = SOS, Bit 6 = SLS |
| 36933 $MA_SAFE_DES_VELO_LIMIT | Safe velocity limit (revolutions or mm/min) | Application-specific (e.g., 2000°/min for setup mode) |
| 36934 $MA_SAFE_POS_VELO_LIMIT | Safe position velocity limit | Application-specific |
| 36956 $MA_SAFE_PULSE_DIS_CHECK_TIME | STO pulse-disable check time | e.g., 100 ms |
| 37950 $SN_SAFE_INFO_ENC | Safe encoder assignment (1 = motor, 2 = direct) | 2 for the shared direct encoder |
| 36995 $MA_SAFE_STANDSTILL_VELO_TOL | Standstill tolerance for SOS | e.g., 5 mm/min or 0.5°/min |
Refer to the SINUMERIK 840D sl Safety Integrated Function Manual for the full MD list and acceptance test procedure.
Hydraulic Engagement and Back-Drive Mechanics
The hydraulic clutch/engagement between the C-axis servomotor and the table is critical for the control strategy. Two engagement modes are typical on a turning/milling center:
- C-axis mode (milling): C-axis motor clutched in, spindle motor free or back-driven. Position control via C-axis drive with direct encoder at the table.
- Spindle mode (turning): C-axis motor declutched (and typically mechanically parked to avoid windmilling), main spindle motor drives the table. Speed/torque control via spindle drive.
During C-axis mode, the main spindle motor is back-driven by the rotation of the table. This back-EMF must be handled in the drive lineup:
-
Disable the spindle drive (set
p0845 = 0or open the line contactor) during C-axis mode. An enabled but unregulated drive acts as a generator brake and produces high following error in the C-axis. - Regenerative energy: If the drive lineup uses a shared DC bus (Active Line Module + Motor Modules), the back-EMF of the spinning main motor can pump voltage into the DC bus. Ensure the line module can absorb it via the mains (regen into the supply) or use a braking resistor sized for the back-drive power.
-
Power estimate: For a large rotary table, the back-drive power can be approximated as
P_backdrive = J_table · ω · dω/dt + T_friction · ω, where Jtable is the table inertia seen at the spindle motor shaft (after the gear ratio), ω is the angular velocity, and Tfriction is the bearing and seal friction. For a typical 1500 kg table at 100 rpm with η gear losses of 15%, Pbackdrive can reach 20–40 kW transiently. -
Alarm to watch for: SINAMICS fault
F30002(DC bus over-voltage) and warningA30002are the most common commissioning symptoms if the line module is undersized for the back-drive.
The hydraulic engagement itself must be interlocked with the drive enables. A typical sequence: clamp main spindle brake → wait for brake-test feedback → disengage C-axis clutch → enable C-axis drive → release spindle drive disable. Reversed for spindle mode. This sequence lives in the PLC (FC18/FC19 spindle-C-axis switchover or a custom block) and must be tested under all abort conditions.
Commissioning Procedure
- Mechanical baseline: Verify hydraulic engagement sequence, brake release interlocks, and table bearing play. Record runout at the encoder mounting flange with a dial indicator (target < 0.02 mm TIR for a precision table).
- Encoder installation check: Confirm encoder cable shield bonding at the cabinet entry and at the encoder housing. Measure ground-loop potential difference — must be < 1 V. Verify cable length per HEIDENHAIN specifications (typically ≤ 150 m for 1 Vpp with HEIDENHAIN-specified cable).
- Splitter power-up: Power the active splitter, verify both channels show identical counts at standstill and during slow jog (compare r0479[0] on both drives). Use the HMI trace or STARTER/SCOUT to record the actual position values side by side.
-
SMC20 configuration: Set
MD30200 $MA_NUM_ENCS = 2for each axis (motor encoder + direct). SetMD30240 $MA_ENC_TYPE[2] = 1(incremental 1 Vpp) for the direct measuring system. Configure the resolution inMD31020 $MA_ENC_RESOLper the encoder data sheet (e.g., 3600 lines/rev × 4096 interpolation = 14,745,600 increments/rev for a HEIDENHAIN ERN 1387 with 1 Vpp). -
Axis assignment: Confirm
MD20070 $MC_AXCONF_MACHAX_USEDandMD20080 $MC_AXCONF_CHANAX_NAME_TABfor both axes. ConfirmMD30500 $MA_INDEX_AX_ASSIGN_POS_TABif either axis is used as an indexing axis. -
Spindle/C-axis switchover: Configure
MD35000 $MA_SPIND_ASSIGN_TO_MACHAX(0 = spindle, 1..n = axis number) andMD20090 $MC_SPIND_DEF_MASTER_SPINDfor the C-axis / spindle relationship. SetMD20150 $MC_GCODE_GROUPSdefaults per the machine's programming convention. - Safety acceptance test: Per EN ISO 13849-1 / IEC 61508 / IEC 62061, run the full SI acceptance test for both axes. Verify response times, stop categories, and limit values match the risk assessment. Test the cross-check between the two axes' safe actual values in the PLC and document the tolerance band.
- Cross-channel motion check: Move the table in C-axis mode at low speed; simultaneously observe the spindle drive's actual speed value (r0061 in trace). The two values must be physically consistent (same mechanical speed, scaled by the gear ratio).
- Back-drive verification: Run a high-speed C-axis rotation profile and record r0072 (DC bus voltage) and r0080 (torque actual) on the spindle drive. Confirm the line module absorbs the regen energy without triggering F30002.
- Long-duration stability: Run the table through 8 hours of representative motion (warm-up, full travel, position-hold). Watch for drift between the two SMC20 actual values — if drift exceeds 1 encoder increment, the splitter is not matched or cable lengths differ.
Parameter Reference
| MD / parameter | Description | Notes |
|---|---|---|
| MD30200 $MA_NUM_ENCS | Number of encoders for the axis | Set to 2 for both spindle and C-axis (motor + direct) |
| MD30240 $MA_ENC_TYPE[1,2] | Encoder type per slot | 0 = simulation, 1 = incremental 1 Vpp, 4 = absolute EnDat |
| MD30250 $MA_ACT_POS_ABS | Absolute encoder configuration | Set to 0 for incremental |
| MD31050..31060 | Load-side gear ratio numerator / denominator | Required for motor-encoder-on-spindle alternative |
| MD30310 $MA_ROT_IS_MODULO | Modulo axis flag | 1 for rotary tables |
| MD30320 $MA_MODULO_RANGE | Modulo range in degrees | 360° for a single-turn rotary axis |
| MD32200 $MA_POSCTRL_GAIN | Kv factor (position loop gain) | Typical 1/s value; tune to avoid overshoot and following error |
| MD35000 $MA_SPIND_ASSIGN_TO_MACHAX | Spindle assignment to machine axis | 0 = spindle, 1..n = axis index |
| MD20090 $MC_SPIND_DEF_MASTER_SPIND | Master spindle at reset / startup | Initial state configuration |
| MD35020 $MA_SPIND_FUNC_RESET_MODE | Spindle reset behavior | Defines whether spindle is re-enabled after reset |
| MD34100 $MA_REFP_SET_POS | Reference point position value | Table position at the reference cam |
| MD34200 $MA_ENC_REFP_STATE | Referenced-state configuration | 1 = encoder zero mark, 2 = reference cam, 3 = both |
| MD36901..36956 $MA_SAFE_* | SINUMERIK Safety Integrated MDs | Per-axis safe function configuration; refer to the SI Function Manual |
Troubleshooting Matrix
| Symptom | Likely cause | Diagnostic | Action |
|---|---|---|---|
| F30002 DC bus over-voltage during C-axis motion | Spindle motor back-driving into a disabled or undersized spindle drive | Check p0845 state, view r0072 DC bus voltage trace, check line module size | Open spindle drive contactor, enable regen, or resize line module / braking resistor |
| Position drift between C-axis and spindle actual values | Splitter channel mismatch, cable length difference, encoder cable damage | Compare r0479[0] and r0479[1] count rates in STARTER/SCOUT trace | Check splitter power, replace encoder cable, equalize cable lengths to within 1 m |
| SI alarm 27033 "cross-check error" between safe channels | Safe encoder mismatch between channels, propagation delay not entered | Read alarm extended diagnostics in HMI; view SI trace | Verify splitter propagation delay entries in MD36933/36934, re-run SI acceptance |
| Alarm "Second encoder not present" / 25000 / 25001 | SMC20 not configured, encoder cable open, splitter not powered | Check MD30200, MD30240, SMC20 LEDs | Configure MD, power splitter, repair cable |
| Position error / following error at low speed in C-axis | Encoder gain mismatch, splitter bandwidth too low, Kv too high | Trace Kv factor and following error at 1°/min commanded velocity | Increase splitter bandwidth, reduce MD32200 POSCTRL_GAIN, check encoder cable shielding |
| Spindle position undefined after power-on | Using motor encoder only and no proximity-switch referencing | Check MD34100, MD34200; check reference cam wiring | Install proximity switch, configure referencing sequence, verify ratio MD31050/31060 |
| F30003 DC bus under-voltage during spindle mode | Line module overload, mains dip, regen resistor failed | Check r0072 trace, line module status word | Verify supply, check regen resistor, increase line module capacity |
| Hydraulic clutch alarm during transition | Sequence timing wrong, brake not released before clutch engage | PLC trace of clutch and brake signals | Re-order sequence in PLC; add pressure-feedback interlock |
Related Architecture: Dual-Motor Spindle Head
For reference, a related but distinct architecture is the dual-drive rotary head used on five-axis machining centers, where two servo motors in the fork arms drive the same second axis through independent gear trains. The patent literature on such configurations (e.g., direct-drive multiple-axis rotary spindle heads) describes each second motor as concentric with the second axis but mechanically independent of the spindle motor. The control problem there is similar in principle — two drives that must share a common mechanical output — but it is solved at the mechanical level rather than the encoder level, so the encoder-splitting question does not arise. If the existing machine is a retrofit of that topology, the safer approach is to preserve the original mechanical independence and add only the safety cross-check between drives.
FAQ
Can two SINUMERIK axes share one encoder object in the NCU?
No. Each axis has a private set of encoder slots (MD30200 $MA_NUM_ENCS, max 2) and the NCK does not allow a second axis to reference the same physical encoder object. You must either split the encoder hardware signals before the SMC, or use a different encoder source for each axis (for example, motor encoder on the spindle and direct encoder on the C-axis).
Is FC17 motor exchange the right tool for a dual-motor C-axis/spindle configuration?
No. FC17 toggles motor data records on a single drive (typical use: star/delta switching on a large induction motor) and does not change encoder routing. For mechanically distinct motors with different feedback, you need two drive objects and, if sharing one physical encoder, a hardware signal splitter. FC17 is the correct tool only when one drive is being asked to behave like two motors (winding switch) on the same shaft.
Can a hardware splitter work with an absolute (EnDat 2.2 or SSI) encoder?
No. Absolute encoder protocols are bidirectional and serial; they cannot be passively or actively split while preserving the position query handshake. Splitter products are limited to incremental 1 Vpp signals. For absolute encoders, the only options are to replace the encoder with an incremental equivalent of the same resolution, or to give each axis its own feedback source.
How is the main spindle motor protected when the C-axis motor is engaged?
The main spindle drive must be disabled (p0845 = 0 or contactor opened) during C-axis mode, otherwise it acts as a generator brake and produces both following error in the C-axis and a back-EMF into the DC bus. The back-EMF of the spinning motor can be substantial — for a typical large table it can reach tens of kW transiently — so verify that the line module can absorb the regenerative energy or that a braking resistor is correctly sized. Watch for SINAMICS alarm F30002 / A30002 during commissioning.
What splitter products are recommended for HEIDENHAIN 1 Vpp encoders in a Safety Integrated signal path?
Use an active signal splitter designed for 1 Vpp sin/cos incremental encoders from a manufacturer that publishes a PFH (probability of dangerous failure per hour) figure and propagation-delay specification. HEIDENHAIN itself and several third-party suppliers offer such devices. Match the propagation delay in both axes' safety machine data (MD36933, MD36934) and document the splitter as a safety-relevant component in the machine's safety file.