1. Overview: MDI Mode on SINAMICS S120 with CU310-DP
The SINAMICS S120 drive family integrates a Basic Positioner (EPOS) that supports several operating modes: jog, reference point approach, traversing blocks, and Manual Data Input (MDI). In MDI mode, the higher-level controller supplies a complete positioning setpoint as a single block consisting of target position, velocity, acceleration, deceleration, and a mode selector. The drive computes the trajectory, including the jerk-limited S-curve ramps, and executes the motion.
Unlike traversing blocks (which are pre-stored in the drive non-volatile memory and selected by a number), MDI values are transmitted cyclically from the PLC over the fieldbus and can be updated at any time, including while the axis is in motion. The drive latches the setpoint on a defined trigger (the rising edge of POS_STW1 bit 3 in Telegram 9) and adjusts the trajectory in real time, making MDI the standard interface for dynamic positioning applications controlled by an external PLC.
The short answer to the original question — "Can I change speed and position from the PLC while the motor is running in MDI mode?" — is yes. The detailed procedure, control word assignments, and diagnostics for the S120 with CU310-DP (6SL3040-0LA00-0AA1) and a SIMOTICS S 1FT7082-1AF71-1DH1 servo motor, controlled by a Schneider Modicon M340-class PLC over PROFIBUS DP using Telegram 9, are documented below.
2. Hardware and Firmware Reference
| Component | Order Number | Function | Notes |
|---|---|---|---|
| Control Unit | 6SL3040-0LA00-0AA1 | SINAMICS S120 CU310-DP | Single-axis, PROFIBUS DP only, firmware V2.x |
| Servomotor | 1FT7082-1AF71-1DH1 | SIMOTICS S 1FT7, 80 mm shaft height | Absolute encoder (EnDat), Drive-CLiQ interface |
| Power Module | Matching S120 PM (e.g., 6SL312x) | DC-link / IGBT section | Selected per motor rated current and torque |
| PROFIBUS master | Schneider Modicon M340 (e.g., BMXP341000) | PLC with PROFIBUS DP master | Configured with Sycon or EcoStruxure Control Expert |
The CU310-DP part number 6SL3040-0LA00-0AA1 is the original CU310 (predecessor to the CU310-2 DP with part number 6SL3040-1LA00-0AA0). It supports PROFIBUS DP only (no PROFINET) and uses the SINAMICS S120 PROFIBUS GSD file distributed by Siemens. The 1FT7082-1AF71-1DH1 motor is a high-dynamic 1FT7 series servo with a 22-bit absolute encoder, connected to the CU310 via Drive-CLiQ.
3. Telegram 9 PZD Layout and PROFIdrive Profile
Telegram 9 is one of the standard PROFIdrive telegrams defined for SINAMICS S120 and complies with the PROFIdrive Profile (PNO) order specification. Telegram 9 is a positioning telegram that carries MDI setpoints and is the recommended selection when EPOS MDI mode is used and a PROFIsafe channel is not required.
For applications that also require PROFIsafe, Siemens provides Telegram 700/701 (with PROFIsafe) or extended safety telegrams. For the S120 with CU310-DP and firmware V2.6, the available telegrams are:
- Telegram 1 (speed setpoint, no position)
- Telegram 2 (speed setpoint with encoder actual value)
- Telegram 3 (speed setpoint, 32-bit)
- Telegram 5 (speed setpoint with DSC)
- Telegram 7 (positioning without DSC)
- Telegram 9 (positioning with MDI)
- Telegram 110/111/112 (free configuration via BICO)
- Telegram 700/701 (PROFIsafe extension)
Telegram 9 layout (setpoint direction, PLC → drive):
| PZD# | Word | Meaning | Direction |
|---|---|---|---|
| 1 | STW1 | Control word 1 (drive state) | Output |
| 2 | POS_STW1 | Positioning control word 1 (MDI control) | Output |
| 3 | POS_STW2 | Positioning control word 2 (block selection) | Output |
| 4 | STW2 | Control word 2 (extended) | Output |
| 5..6 | MDI_TARPOS | MDI target position [LU], 32-bit signed, low word in PZD5 | Output |
| 7..8 | MDI_VELOCITY | MDI velocity [1000 LU/min], 32-bit unsigned, low word in PZD7 | Output |
| 9..10 | MDI_ACC / MDI_DEC / MDI_MOD | Acceleration, deceleration, mode selector | Output |
Telegram 9 layout (actual value direction, drive → PLC):
| PZD# | Word | Meaning | Direction |
|---|---|---|---|
| 1 | ZSW1 | Status word 1 | Input |
| 2 | POS_ZSW1 | Positioning status word 1 | Input |
| 3 | POS_ZSW2 | Positioning status word 2 | Input |
| 4 | ZSW2 | Status word 2 | Input |
| 5..10 | Echo of MDI setpoints | Reflects latched values | Input |
The exact PZD count and assignment for MDI_DEC, MDI_ACC, and MDI_MOD depend on the firmware revision and GSD revision; refer to the SINAMICS S120 Function Manual for the precise mapping on the active firmware build. The general principle is that all MDI parameters are transmitted cyclically and can be updated at any bus cycle.
4. GSD File Selection for CU310-DP Firmware V2.6
The original question referenced two GSD files: SI0380E5.GSE and SI2580E5.GSE. Both filenames follow the Siemens convention for SINAMICS S120 PROFIBUS GSDs:
- SI0380E5 – older release, typically for firmware V2.0..V2.4
- SI2580E5 – newer release aligned with firmware V2.5/V2.6
The trailing letter indicates the language (GSE = English, GSG = German, GSI = Italian, GSS = Spanish). The base GSD (language-neutral) is included in the same archive; the language-specific GSE file is what Sycon and most other PROFIBUS configurators import. When the configurator only shows the language-specific GSE, importing it directly is sufficient because the GSE includes the language-neutral data set.
For the 6SL3040-0LA00-0AA1 (CU310-DP) running firmware V2.6.x, the matching GSD package is the SI2580E5 release downloaded from the official Siemens support entry 49216293. The historical direct link http://support.automation.siemens.com/WW/view/en/49216293 from earlier Siemens documentation redirects to the same entry under the current support.industry.siemens.com domain.
The GSD archive SI2580E5.Zip includes the base GSD plus language-specific variants. Use the GSE (English) unless the tool requires another language. The download also includes a bitmap (BMP) file and a readme with the version date and supported telegram types.
5. Control Words, MDI Words, and Scaling
5.1 STW1 – Drive State Control (PZD1 output)
| Bit | Mnemonic | Function |
|---|---|---|
| 0 | ON/OFF1 | 0=OFF1 ramp-down, 1=ON (rising edge to switch on) |
| 1 | OFF2 | 1=OFF2 cleared (pulse enable), 0=pulse suppression (coast to stop) |
| 2 | OFF3 | 1=OFF3 cleared, 0=fast stop (OFF3 ramp) |
| 3 | ENABLE_OP | 0=inhibit operation, 1=enable operation (pulse enable and ramp enable) |
| 4 | RAMP_EN | 1=enable ramp-function generator |
| 5 | UNFREEZE | 0=freeze ramp, 1=continue (active only with extended ramp functions) |
| 6 | SETP_EN | 1=setpoint enabled (drive accepts the speed/position setpoint from PLC) |
| 7 | FAULT_ACK | 0→1 edge acknowledges pending faults |
| 8 | JOG1 | Jog bit 1 (jog mode only) |
| 9 | JOG2 | Jog bit 2 |
| 10 | CTL_BY_PLC | 1=drive controlled by PLC (must be 1 for MDI) |
| 11 | REV_DIR | Direction reversal (1=negative direction) |
| 12..15 | — | Reserved / DSS / speed setpoint enable |
To bring the drive to "Operation enabled", set STW1 = 0x047E (bits 0, 1, 2, 3, 4, 5, 6, 10 set) and verify ZSW1 bits 0, 1, 2 are 1 (Ready to switch on, Switched on, Operation enabled). For applications with safety functions, additional bits control the safety slots.
5.2 POS_STW1 – EPOS Control Word 1 (PZD2 output)
| Bit | Mnemonic | Function |
|---|---|---|
| 0 | MDI_TYPE | 0=absolute, 1=relative (MDI block positioning mode) |
| 1 | MDI_DIR | 0=positive direction, 1=negative direction (when applicable) |
| 2 | MDI_CONT | 0=discrete (positioning to target), 1=continuous (speed mode) |
| 3 | SETP_ACCEPT | 0→1 rising edge latches the MDI setpoint block |
| 4 | INTERMEDIATE_STOP | 0=intermediate stop active, 1=no intermediate stop |
| 5 | JOG1 | Jogging 1 in jog mode |
| 6 | JOG2 | Jogging 2 in jog mode |
| 7 | REF_START | 0→1 start reference point approach |
| 8..15 | — | Reserved / mode selection |
5.3 POS_STW2 – EPOS Control Word 2 (PZD3 output)
| Bit | Mnemonic | Function |
|---|---|---|
| 0..8 | BLOCK_SELECT | Traversing block number (0..511) for traversing-block mode |
| 9 | SETP_FIXED | 0=continuous setpoint acceptance, 1=edge-triggered setpoint acceptance |
| 10..15 | — | Reserved |
POS_STW2 is required for traversing-block mode but also carries the SETP_FIXED bit for MDI. When SETP_FIXED = 1, the drive latches the MDI block on each rising edge of POS_STW1 bit 3; when SETP_FIXED = 0, the drive uses continuous setpoint acceptance (every bus cycle).
5.4 STW2 – Extended Control Word 2 (PZD4 output)
STW2 contains drive-side extensions such as drive parameter set selection (CDS bit 0/1), technology controller enable, and parking axis selection. For pure MDI positioning, the default value 0x0000 is normally sufficient; some applications set bit 0 (drive parameter set bit 0) to switch between two parameter sets for different mechanical setups.
5.5 MDI_TARPOS, MDI_VELOCITY, MDI_ACC, MDI_DEC Data Format
The default scaling of the MDI setpoints in EPOS follows the position and velocity scaling configured in parameters p29247 (LU per load revolution), p29248 (load revolutions), p29249 (motor revolutions), p29250 (encoder increments per motor revolution):
| Word | Unit (default) | Range | Notes |
|---|---|---|---|
| MDI_TARPOS | LU (Length Unit) | -2 147 483 648 ... 2 147 483 647 (32-bit signed) | Consistent with position scaling p29247..p29250 |
| MDI_VELOCITY | 1000 LU/min | 0 ... 2 147 483 647 (32-bit unsigned; sign from POS_STW1 bit 1 or MDI_MOD bit 1) | Value 1000 = 1 LU/min |
| MDI_ACC | 1000 LU/s² | 0 ... 2 147 483 647 | 0 = use default ramp from p2571 / p2645 |
| MDI_DEC | 1000 LU/s² | 0 ... 2 147 483 647 | 0 = use default ramp |
The default LU (length unit) is 1 = 1/10000 of a load revolution (or whatever the scaling parameters specify). For a 1FT7082-1AF71-1DH1 motor on a 1:1 mechanical transmission, the default gives 10000 LU per motor revolution. If the application uses a gear or a ball-screw with a non-unity ratio, adjust p29247..p29250 accordingly.
6. Changing Speed and Position On-the-Fly: Step-by-Step
The MDI setpoint block can be updated at any time while the drive is in "Operation enabled" state. The drive reacts to the rising edge of POS_STW1 bit 3 (SETP_ACCEPT), which latches the current MDI_TARPOS, MDI_VELOCITY, MDI_ACC, MDI_DEC, and MDI_MOD values. Procedure:
- Power the drive on, complete the first commissioning in STARTER or SINAMICS Startdrive, and verify no faults (ZSW1 bit 3 = 1).
- Bring the drive to "Operation enabled" by setting
STW1 = 0x047E(bits 0, 1, 2, 3, 4, 5, 6, 10 set). Verify ZSW1 = 0x6A37 (bits 0, 1, 2, 3, 5, 8, 10, 11, 13 set). - Switch the EPOS operating mode to MDI by setting
p2580 = 0(MDI positioning) andp2581 = 1to acknowledge. Wait for POS_ZSW1 bit 0 to indicate MDI mode is active. - If the axis has not been homed, perform a reference point approach (
p2580 = 2,p2581 = 1) or set the actual position with the "set home position" function before continuing. - Write the desired setpoint block to MDI_TARPOS, MDI_VELOCITY, MDI_ACC, MDI_DEC, and MDI_MOD. Set MDI_VELOCITY > 0 to avoid the "MDI setpoint inconsistent" fault.
- Set
POS_STW1 = 0x0000(or the desired MDI type and direction bits), then raise POS_STW1 bit 3 to latch the block (rising edge). - The drive computes the trajectory and starts the motion. POS_ZSW1 bit 10 (MDI setpoint acceptance acknowledged) goes high.
- To change speed or position while moving, write the new setpoint block to the MDI words and re-toggle POS_STW1 bit 3. The drive recalculates the trajectory from the current actual position/velocity to the new target.
- To stop the motion, clear STW1 bit 0 (OFF1) and let the drive ramp down. Alternatively, set POS_STW1 bit 4 (INTERMEDIATE_STOP) to 0 for a quick halt, then 1 to resume.
Key behavior of the on-the-fly update:
- Velocity change mid-motion: the drive ramps the actual velocity to the new MDI_VELOCITY using the active jerk limit (
p2572/p2573) and acceleration (MDI_ACCor defaultp2645). - Position change mid-motion (discrete mode): the drive recomputes the remaining path. If the new target is in the same direction, motion continues; if the direction reverses, the drive applies MDI_DEC and reverses (unless the application uses "no reversal" mode
p2634). - Continuous MDI mode (MDI_MOD bit 2 = 1 or POS_STW1 bit 2 = 1 in setup mode): the drive accepts new velocity setpoints every bus cycle without requiring the edge trigger, useful for speed-controlled jogging or electronic gear applications.
- Relative positioning: MDI_TARPOS is interpreted as the distance from the current position. Multiple relative moves can be chained without re-writing the absolute target.
For applications that frequently update setpoints, set POS_STW2 bit 9 (SETP_FIXED) = 0 to use continuous setpoint acceptance, which reduces the latency between the PLC and the drive by one bus cycle.
7. MDI Sub-Modes, Homing, and PLC Integration
7.1 MDI Sub-Modes (MDI_MOD)
| Bit | Mnemonic | Function |
|---|---|---|
| 0 | POS_TYP | 0=absolute, 1=relative (positioning mode) |
| 1 | DIR_SEL | 0=positive direction, 1=negative direction |
| 2 | CONT | 0=discrete (positioning to MDI_TARPOS), 1=continuous (speed setpoint only) |
| 3..15 | — | Reserved |
POS_STW1 bit 0 (MDI_TYPE) duplicates the function of MDI_MOD bit 0; both are evaluated by the drive and should be consistent. Continuous MDI (MDI_MOD bit 2 = 1) makes the drive ignore the target position and use MDI_VELOCITY as the speed setpoint until the PLC changes it or stops the motion by clearing the enable. This sub-mode is useful for velocity-controlled applications such as synchronizers or winders.
7.2 Homing and Reference Point Approach
Because the 1FT7082-1AF71-1DH1 motor has an absolute encoder with 22-bit resolution (EnDat 2.1/2.2 protocol), position tracking is preserved across power cycles. Before MDI mode is operational, the drive must be configured with the encoder data, position scaling, and the homing sequence. On the first commissioning or after a battery replacement, perform one of:
- Reference point approach (
p2580 = 2): the drive moves to a hardware reference cam, then to the next zero marker. Configure p2593..p2600 for the homing cam and direction. - Set home position (
p2598 = 0, thenp2597= "Set home position"): the drive latches the current position as the home value. Suitable for absolute encoders when the mechanical home is known.
Verify POS_ZSW1 bit 4 (Home position set / Referenced) is 1 before starting MDI positioning. Position scaling is set in p29247..p29250; default is 10000 LU per load revolution on a CU310-DP.
7.3 Schneider Modicon M340 / Premium / Quantum Integration
The Modicon M340 (BMX-P34-xxxx) and Premium/Quantum PLCs support the PROFIBUS DP master with the Sycon configurator (legacy) or EcoStruxure Control Expert (Unity Pro). Steps:
- Import the
SI2580E5.GSEfile in Sycon and assign the CU310-DP slave to the PROFIBUS network. - Configure the slot for Telegram 9 (default slot assignment for "SIEMENS AG SINAMICS S120 CU310"). The slot count for Telegram 9 is 10 PZDs each direction.
- Map the PZDs to register ranges. Standard mapping on Schneider M340:
- Outputs (PLC → drive): %MW100..%MW119 (10 words: STW1, POS_STW1, POS_STW2, STW2, MDI_TARPOS_lo, MDI_TARPOS_hi, MDI_VELOCITY_lo, MDI_VELOCITY_hi, MDI_ACC_lo, MDI_DEC_lo)
- Inputs (drive → PLC): %MW200..%MW219 (10 words: ZSW1, POS_ZSW1, POS_ZSW2, ZSW2, MDI_TARPOS_lo, MDI_TARPOS_hi, MDI_VELOCITY_lo, MDI_VELOCITY_hi, MDI_ACC_lo, MDI_DEC_lo)
- Set the PROFIBUS DP address of the CU310-DP to match the configuration:
p0918 = 2(for example), and confirm with the rotary switches on the CU310 (lowest significant 7 bits). - Implement the setpoint acceptance logic as a 0→1 edge on POS_STW1 bit 3. On a Schneider PLC, this is done with an R_TRIG instance.
Sample structured-text skeleton (illustrative):
(* Drive control word - Operation enabled: bits 0,1,2,3,4,5,6,10 *)
STW1_OUT := 16#047E;
%MW100 := STW1_OUT;
(* MDI setpoint block - 32-bit values decomposed low/high *)
%MW104 := WORD(MDI_TARPOS AND 16#FFFF); (* low word *)
%MW105 := WORD(SHR(MDI_TARPOS, 16) AND 16#FFFF); (* high word *)
%MW106 := WORD(MDI_VELOCITY AND 16#FFFF);
%MW107 := WORD(SHR(MDI_VELOCITY, 16) AND 16#FFFF);
%MW108 := WORD(MDI_ACC);
%MW109 := WORD(MDI_DEC);
(* Setpoint acceptance edge trigger *)
IF bUpdateMDI AND NOT bUpdateMDI_Old THEN
bAcceptSetpoint := TRUE;
ELSE
bAcceptSetpoint := FALSE;
END_IF;
bUpdateMDI_Old := bUpdateMDI;
POS_STW1_OUT := 0;
POS_STW1_OUT.0 := bRelative; (* 0=absolute, 1=relative *)
POS_STW1_OUT.1 := bNegativeDir;
POS_STW1_OUT.3 := bAcceptSetpoint; (* Edge trigger to latch MDI block *)
%MW101 := POS_STW1_OUT;
Confirm the telegrams in the drive: r0922 displays the configured PROFIdrive telegram; for a standard Telegram 9 selection it should read 9. For real-time performance on the Schneider side, configure the PROFIBUS cycle to 1 ms or 2 ms; longer cycles add to the MDI setpoint latency. The S120 with CU310-DP supports PROFIBUS DP cycle times down to 1 ms in firmware V2.6.
8. Common Faults and Diagnostic Procedure
| Symptom / Fault Code | Possible Cause | Remedy |
|---|---|---|
| F07452 – travel to fixed endstop / follow-up mode fault | Position control without encoder feedback, or wrong encoder assignment | Check p400, p401, p414; verify encoder wiring; check Drive-CLiQ connection |
| F07483 – MDI setpoint error | MDI block inconsistent (e.g., MDI_VELOCITY = 0 with discrete positioning, or MDI_ACC > p2571 limit) | Set MDI_VELOCITY > 0 for discrete positioning; verify MDI_ACC ≤ p2571 |
| A07481 – MDI setpoint warning | MDI block accepted with limits applied (e.g., velocity clamped to p2571 max) | Verify ramp limits in p2571..p2575; reduce setpoint |
| F03001 – encoder fault | Drive-CLiQ wiring to 1FT7082 1DH1 (absolute) incorrect, or encoder battery low | Check DRIVE-CLiQ cable, parameters p400/p401; replace battery on motor if applicable |
| No motion after POS_STW1 bit 3 toggle | STW1 not in "Operation enabled" state, or p2580/p2581 not configured | Verify ZSW1 bits 0, 1, 2 are 1; verify p2580 = 0 and p2581 = 1; check POS_ZSW1 bit 0 (MDI active) |
| F01910 – PROFIBUS communication fault | Wrong GSD or DP address mismatch, bus interruption | Use SI2580E5 for firmware V2.6; verify DP address (p0918); check bus terminator and shielding |
| MDI_TARPOS transferred but axis moves to half/double position | Word order error: 32-bit MDI_TARPOS decomposed incorrectly | Verify low word is in PZD5 and high word is in PZD6 (big-endian byte order on PROFIBUS); on Schneider M340, low word is at lower register address |
| MDI_TARPOS transferred but axis moves in wrong direction | POS_STW1 bit 1 or MDI_MOD bit 1 not set correctly for negative direction | Set POS_STW1 bit 1 = 1 for negative direction in relative or absolute mode |
| F08501 – PROFIsafe fault (when safety is configured) | Safety slot mismatch, PROFIsafe telegram not configured | Verify Telegram 700/701 is configured; check PROFIsafe address in p9810/p9821 |
For deeper diagnostics, enable the trace function in STARTER or SINAMICS Startdrive and record STW1, ZSW1, POS_STW1, POS_ZSW1, MDI_TARPOS, and r2722 (position actual value) over a 4-second window. The trace can be triggered on a fault or on a manual event, allowing visualization of the on-the-fly setpoint change behavior. Fault numbers like F07452, F07483, A07481, F03001, and F01910 are decoded in the SINAMICS S120 List Manual.
9. Verification Checklist and Key Parameters
9.1 Verification Checklist
- Drive boots to "Ready for switching on" (ZSW1 = 0x4A0x) with no active faults.
- STW1 = 0x047E enables operation. Verify ZSW1 = 0x6A37.
- Switch
p2580 = 0(MDI) and togglep2581. POS_ZSW1 bit 0 should be 1. - If not previously homed, complete reference point approach and verify POS_ZSW1 bit 4 = 1.
- Write MDI_TARPOS = 10000 LU, MDI_VELOCITY = 60000 (60 LU/min), MDI_ACC = 1000, MDI_DEC = 1000, MDI_MOD = 0.
- Toggle POS_STW1 bit 3. POS_ZSW1 bit 10 (setpoint acceptance) must go high.
- Axis moves to 10000 LU; POS_ZSW1 bit 14 (positioning completed) sets after motion.
- During motion, write MDI_VELOCITY = 120000 and re-toggle bit 3. The axis accelerates to 120 LU/min.
- Change MDI_TARPOS to 20000 LU and re-toggle bit 3. The axis continues to the new target.
- Clear the enable (STW1 bit 0 = 0). The axis ramps to zero speed using MDI_DEC and the drive goes to OFF1.
- Verify r2721 (MDI setpoint) reflects the last latched value; r2722 (actual position) tracks the commanded motion.
9.2 Key Parameters Reference
| Parameter | Description | Default | Notes |
|---|---|---|---|
| p0922 | IF1 PROFIdrive PZD selection | — | Set to 9 for Telegram 9 |
| p0918 | PROFIBUS DP address | 126 | Must match PLC configuration |
| p2580 | EPOS operating mode | 0 | 0=MDI, 1=jog, 2=ref, 3=traversing blocks |
| p2581 | EPOS mode acknowledge | 0 | Set to 1 to apply new p2580 value |
| p2571 | EPOS max acceleration | — | Default ramp for MDI_ACC = 0 |
| p2645 | EPOS max deceleration | — | Default ramp for MDI_DEC = 0 |
| p2572/p2573 | Max acceleration/deceleration jerk | — | Jerk limiters (S-curve) |
| p2634 | EPOS reversal behavior | 0 | 0=allow reversal, 1=no reversal |
| p29247 | LU per load revolution | 10000 | Position scaling numerator |
| p29248 | Numerator load revolutions | 1 | — |
| p29249 | Denominator load revolutions | 1 | — |
| p29250 | Encoder increments per motor revolution | 2048 | — |
| p2599 | Encoder actual value (raw) | — | Read-only |
| p400 | Encoder assignment position actual | — | Must point to motor encoder (EnDat / Drive-CLiQ) |
| r2721 | MDI setpoint (latched) | — | Read-only |
| r2722 | Position actual value (LU) | — | Read-only |
10. Performance and Safety Considerations
The on-the-fly setpoint change latency from the PLC writing the MDI block to the drive accepting it depends on:
- PROFIBUS DP cycle time: 1 ms gives 1 ms of bus latency, 2 ms gives 2 ms.
- Drive internal processing: ~0.5..1 ms in firmware V2.6 for MDI block latching.
- Total: 1.5..3 ms typical from PLC write to motor reaction.
For applications requiring sub-millisecond reaction (rare in MDI mode; more common in DSC and high-dynamic position control), use Telegram 5 or 6 (Dynamic Servo Control) with PROFINET IRT or PROFIBUS with isochronous mode. For MDI positioning of a 1FT7 motor, the typical 2-3 ms latency is sufficient for most applications (printing, packaging, machine tools with cycle times of 100 ms or more).
The S120 with CU310-DP supports isochronous PROFIBUS (clock p2000 = 1, 2, 4 kHz). When isochronous mode is enabled, the setpoint acceptance is synchronized to the bus cycle, eliminating jitter. Configure p2048 = cycle time, p2049 = 1 (isochronous), and set the master to send the global control byte at the same rate.
For safety integration with MDI, configure Telegram 700/701 with PROFIsafe. The safety control word (S_STW1) and safety status word (S_ZSW1) are placed in additional PZDs; the safety functions (STO, SS1, SS2, SOS, SLS) operate independently of the positioning mode. The MDI block is latched only when the safety status permits motion. Verify p9810 (PROFIsafe address) matches the F-CPU configuration.
FAQ
Can I change the MDI target position and velocity while the axis is moving?
Yes. MDI_TARPOS, MDI_VELOCITY, MDI_ACC, MDI_DEC, and MDI_MOD are read cyclically. Write the new values to the corresponding PZD words and toggle POS_STW1 bit 3 (rising edge) to latch the new setpoint block. The drive recalculates the trajectory from the current actual position and velocity to the new target using the configured jerk limiter (p2572/p2573).
Which GSD file do I need for CU310-DP (6SL3040-0LA00-0AA1) firmware V2.6?
Use the SI2580E5.GSE package (or the GSD equivalent in the active language) downloaded from the official Siemens support entry 49216293. The historical link http://support.automation.siemens.com/WW/view/en/49216293 redirects to the same entry. Older SI0380E5 GSDs may not support all parameters introduced in firmware V2.6.
Why are there .GSE, .GSI, .GSG, .GSS files but no .GSD in the GSD package?
Siemens distributes language-specific GSDs (English = GSE, German = GSG, Italian = GSI, Spanish = GSS). The base GSD data is embedded in the GSE and is sufficient for PROFIBUS configuration. The standalone .GSD file is also included in the same archive and shares the same base name; the tool selects the language file appropriate for its locale. Sycon imports the GSE directly without conversion.
What is the data type and scaling of MDI_TARPOS in Telegram 9?
MDI_TARPOS is a 32-bit signed integer in length units (LU) defined by the EPOS position scaling parameters p29247..p29250. MDI_VELOCITY is a 32-bit unsigned value in 1000 LU/min (so a value of 1000 = 1 LU/min). MDI_ACC and MDI_DEC are 32-bit unsigned in 1000 LU/s². MDI_TARPOS and MDI_VELOCITY each occupy two 16-bit PZDs (low word first, big-endian byte order on PROFIBUS).
How do I trigger the drive to start motion in MDI mode?
Set p2580 = 0 (MDI positioning) and acknowledge with p2581 = 1, then apply STW1 = 0x047E to enable operation. Write the MDI setpoint block, set POS_STW1 to the desired MDI type and direction bits, and trigger a rising edge on POS_STW1 bit 3. The drive latches the values and the motion begins; POS_ZSW1 bit 10 acknowledges the setpoint acceptance and POS_ZSW1 bit 14 sets when the target is reached.