Configuring SIMODRIVE 611U PROFIBUS Control with S7-300

David Krause16 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

1. Overview

The SIMODRIVE 611 universal (order code 6SN1118-1NH01-0AA1) is a high-dynamic AC drive converter for spindle and servo applications. When equipped with the PROFIBUS-DP option module, the drive integrates into a SIMATIC S7-300 DP network as a slave and is cyclically controlled from a CPU 314-2DP master. This reference covers the complete integration path from hardware selection and GSD installation through STEP 7 configuration, the UDT30008 process-data structure, the SIMODRIVE_CONTROL FC wrapper, and the optional FB83 basic positioner used to drive the integrated Z1 traversing blocks.

The drive is documented as a PROFIBUS-DP slave in the official product finder entry SIMODRIVE 611 universal with PROFIBUS-DP, where it is listed as a slave device supporting 12 Mbps operation and up to 16 process-data words per direction. It remains a commonly encountered node in retrofit projects where S7-300 masters replace obsolete S5-95U analog interfaces on existing 1FT5 / 1FK6 machine axes.

Lifecycle note: The 611U family is a legacy product line. It is fully supported only with STEP 7 V5.x plus the SIMODRIVE 611U Toolbox. TIA Portal does not include a 611U device description; all engineering is performed in HW Config (STEP 7 V5.4 or V5.5) using the Siemens generic GSD file.

2. Prerequisites

2.1 Hardware Components

  • SIMODRIVE 611 universal NE module — order code 6SN1118-1NH01-0AA1 (Speed/Torque setpoint + Positioning firmware).
  • 611U PROFIBUS option card installed in option slot of the NE module. The option card exposes a 9-pin SUB-D PROFIBUS connector on the front of the drive.
  • Servo motor compatible with the NE firmware: 1FT5 / 1FT6 (synchronous servos), 1FK6, or 1PH7 (asynchronous spindle motor).
  • Feedback: resolver (standard), incremental encoder, or multi-turn absolute encoder (EnDat) terminated on the NE module X411/X412 connector.
  • SIMATIC S7-300 CPU 314-2DP — typical order codes 6ES7314-6BF00-0AB0 or 6ES7314-6CG03-0AB0. The integrated DP master interface (MPI/DP, X2) is used for PROFIBUS.
  • PROFIBUS DP cable (violet, two shielded cores) with PROFIBUS connectors that include an integrated terminating resistor switchable ON / OFF.
  • 24 V DC load supply for the 611U NE module electronics and for the S7-300 CPU / IM / SM.

2.2 Software Components

  • STEP 7 V5.4 SP5 or V5.5 SPx with HW Config.
  • SIMODRIVE 611U Toolbox DVD (contains the sample project with FB83, the SIMODRIVE_CONTROL FC, UDT30008, and the SiKo / Z1 traversing block example).
  • Siemens generic GSD file for 611U — typically SI08118.GSD — copied into \Siemens\Step7\S7DATA\GSD before opening HW Config.
  • SimoCom U commissioning tool (RS232 service port on the NE module) for firmware-side parameter assignment, or DriveMonitor for diagnostic online access.

2.3 Reference Topology

The reference topology is a single-master / single-slave DP segment:

  • CPU 314-2DP DP master port (X2) → PROFIBUS cable → 611U PROFIBUS option card (slave address, e.g., 3).
  • Baud rate 1.5 Mbps or 12 Mbps (611U PROFIBUS option supports both; the segment must be configured to the lowest common denominator if additional slaves are added).
  • Terminating resistors ON at the CPU connector and at the last drive on the segment.

3. PROFIBUS Slave Configuration on the 611U

Before any STEP 7 work, the drive-side PROFIBUS node address must be set on the NE module. This is performed with the SimoCom U tool or with the keys on the NE module front panel:

  1. Power up the 611U NE module; the 7-segment display shows the current node address (default 3).
  2. Navigate parameter P0918 (PROFIBUS node address). Allowed values: 1–125, must be unique on the segment.
  3. Save and cycle the 24 V control supply to apply the new address.
  4. Set P0922 = telegram selection for PROFIBUS. For positioning applications use P0922 = 3 (10/10 PZD) or P0922 = 102 for Siemens standard telegram 102 (free PZD layout).
  5. Set P0925 = number of PKW parameter-channel words (typically 0 — parameter access is via SimoCom U, not via PKW).
Address conflict warning: If P0918 matches the CPU DP master address or another slave, the slave will not appear in HW Config. Verify with the diagnostic LED on the PROFIBUS option card (green steady = cyclic data exchange, green flashing = parameterizing, off = bus fault).

4. STEP 7 Project and HW Config

4.1 Install the GSD File

  1. Copy SI08118.GSD and the accompanying bitmap file (SI08118.BMP or SIEM8118.BMP) into \Siemens\Step7\S7DATA\GSD.
  2. In HW Config choose Options → Install GSD File… and select the file.
  3. Restart HW Config so the new device appears under PROFIBUS-DP → Additional Field Devices → Drives → SIMODRIVE.

4.2 Build the Hardware Configuration

  1. Insert a SIMATIC 300 station and place the CPU 314-2DP on rack 0 slot 2.
  2. Double-click the DP master port (X2) of the CPU; set the master mode and assign a baud rate (1.5 Mbps recommended for the 611U at first commissioning).
  3. Drag the SIMODRIVE 611U slave from the catalog to the DP master system. Configure its PROFIBUS address to match P0918.
  4. In the slave's slot configuration, insert a PZD module that matches the telegram you selected in P0922. For 10/10 PZD choose the “PZD 10/10” module (universal module, free assignment). The system assigns I/O addresses that must be respected by the PLC program — the reference project uses LADDR 256 (input) and 256 (output) as a single combined slot.
  5. Compile and download the hardware configuration (HW Config → Station → Save and Compile → PLC → Download).

4.3 Reference Address Map

Address Direction Content
PIW 256 .. PIW 274 (5 words) Input Reserved / status header of UDT30008
PIW 286 .. PIW 304 (10 words) Input PZD in 1..10 from drive (status, actual speed, actual position, etc.)
PQW 256 .. PQW 274 (5 words) Output Reserved / control header of UDT30008
PQW 286 .. PQW 304 (10 words) Output PZD out 1..10 to drive (control word, setpoints, MDI data)

The exact byte offset depends on how HW Config places the modules. The reference program stores all process data inside a single instance DB (DB72) starting at offset 156; the offsets below describe that layout and are used by the source program verbatim.

5. UDT30008 Process-Data Layout

The Toolbox defines a user-defined data type UDT30008 that mirrors the PZD layout of the 611U positioning firmware. The reference instance uses one DB per axis — the example uses DB72 for axis 1 (the parameter NR_ACHS_DB := 72 identifies which DB the FC operates on when multiple axes are mapped).

The instance DB layout (all offsets in bytes, base offset 156 = DBX156.0):

Offset (bytes) Word index Direction UDT30008 element Typical content
156 .. 165 0..4 Control / header control_word_1, control_word_2, mode bits, axis number, life-sign Control word 1 (STW1), Control word 2 (STW2), operating mode (speed/torque/positioning)
166 .. 185 5..14 Output → drive PZD_out[1..10] Setpoint speed, torque limit, position setpoint (for positioning), MDI block selection
206 .. 225 50..59 Input ← drive PZD_in[1..10] Status word 1 (ZSW1), Status word 2 (ZSW2), actual speed, actual position, following error, fault code

The reference offsets are exactly those given in the original example:

  • Initial UDT30008 address = 156
  • Write: 156 + 10 = 166 — start of the 10-word PZD output block
  • Read: 156 + 50 = 206 — start of the 10-word PZD input block (50-word offset from the base)

The 20-byte length (BYTE 20) declared on WR_PZD and RD_PZD covers exactly 10 process-data words per direction.

6. SIMODRIVE_CONTROL FC Call Interface

The Toolbox SIMODRIVE_CONTROL FC is the standard wrapper that handles cyclic DP-V0 read/write of the PZD block. It encapsulates SFC14 / SFC15 (DPRD_DAT / DPWR_DAT) and applies the life-sign handshake required by the 611U positioning firmware.

The reference call is:

CALL "SIMODRIVE_CONTROL" , "Z1DB"
    NR_ACHS_DB   := 72
    LADDR        := 256
    WR_PZD       := P#DB72.DBX166.0 BYTE 20
    RD_PZD       := P#DB72.DBX206.0 BYTE 20
    enable_SFC_PZD:= TRUE
Parameter Value Description
NR_ACHS_DB 72 Number / ID of the instance DB that holds the UDT30008 for this axis. Used by the FC to compute header offsets and to multiplex multiple axes through a single FC block.
LADDR 256 Logical I/O base address of the slave's PZD slot from HW Config. Must match exactly what HW Config assigned to the PZD module.
WR_PZD P#DB72.DBX166.0 BYTE 20 Pointer to the 20-byte process-data output area (10 PZD out).
RD_PZD P#DB72.DBX206.0 BYTE 20 Pointer to the 20-byte process-data input area (10 PZD in).
enable_SFC_PZD TRUE When TRUE the FC performs the DPRD_DAT / DPWR_DAT call every cycle; when FALSE the FC is bypassed (used during commissioning to read/write the DB from SimoCom U).

Internally SIMODRIVE_CONTROL builds the DPRD_DAT / DPWR_DAT request as:

CALL "DPRD_DAT"
    LADDR  := 256
    RET_VAL:= MW100
    RECORD := P#DB72.DBX206.0 BYTE 20   // PZD in

CALL "DPWR_DAT"
    LADDR  := 256
    RET_VAL:= MW102
    RECORD := P#DB72.DBX166.0 BYTE 20   // PZD out
LADDR mismatch symptom: If LADDR does not match the HW Config slot base, SFC14/15 return a W#16#8090 / 8092 / 80A0 / 80B0 / 80C0 / 80C2 diagnostic code, the FC sets an internal error flag, and the drive reports F082 (life-sign failure) within the watchdog time (default 50 ms).

7. Control and Status Word Mapping

The first PZD out / PZD in word of the 611U positioning telegram always carries the Siemens standard control word 1 (STW1) and status word 1 (ZSW1). The reference assignment is documented in the Toolbox manual:

Bit STW1 (master → drive) ZSW1 (drive → master)
0 ON / OFF1 Ready to switch on
1 OFF2 (coast stop) Ready to operate
2 OFF3 (quick stop) Operation enabled
3 Pulse enable / Inverter enable Fault present
4 Ramp-function generator enable OFF2 inactive
5 Ramp-function generator start OFF3 inactive
6 Setpoint enable Switch-on inhibited
7 Acknowledge fault (0→1 edge) Alarm present
8 Jog 1 Speed setpoint / actual deviation within tolerance
9 Jog 2 Control requested (bus)
10 Control by PLC (1 = fieldbus, 0 = local) f / n reached / comparison value reached
11 Reversing / setpoint inversion Torque limit not reached
12..15 Reserved / life-sign counter (bits 12..15) Reserved / life-sign echo (bits 12..15)

Bits 12..15 of STW1 and ZSW1 are the four-bit life-sign counter that the FC toggles and checks each cycle. If the drive does not see the counter change within the configured watchdog window (P0865), the drive drops to a fault state and reports F082.

8. FB83 Basic Positioner

The 611U positioning firmware exposes a set of Z1 traversing blocks (64 motion profiles stored in the drive). Each block defines target position, velocity, acceleration, deceleration, and blending mode. FB83 is the STEP 7 block that converts high-level HMI / PLC commands (start block N, stop, continue, reference, set home) into the STW1 / STW2 sequence expected by the drive, and decodes ZSW1 / ZSW2 into a status word exposed back to the PLC.

The block is delivered inside the Toolbox STEP 7 sample project. Typical instance data block layout (DB71 in the reference) maps as:

Signal Type Description
AxisEnabled BOOL Power stage enabled (ZSW1 bit 2).
AxisFaulted BOOL Drive reports fault (ZSW1 bit 3).
AxisReady BOOL Drive ready to accept motion commands.
InPosition BOOL Position reached with tolerance window.
BlockSelect INT Selected Z1 traversing block number (1..64).
BlockActive BOOL Start signal to FB83 (positive edge starts motion).
Stop BOOL Stop command; drives axis to controlled stop.
Ack BOOL Acknowledges faults via STW1 bit 7 (0→1).
ActualPosition DINT Current position in LU (length units).
ActualVelocity DINT Current speed in LU/min.
FaultWord WORD Current fault number from the drive (e.g., F082).

The SIMODRIVE_CONTROL FC and FB83 operate on the same DB (DB72 in the reference) so that the FB83 status bits are derived directly from the PZD input words updated by the FC.

9. 1FT5 Motor Considerations

The 1FT5 motor family is a synchronous servo motor with resolver feedback and is fully supported by the 611U NE module firmware. The PROFIBUS communication path between CPU 314-2DP and the 611U is independent of the motor type: the same telegram, the same GSD, and the same FB83 work for a 1FT5, 1FT6, 1FK6, or 1PH7 motor. The difference is on the drive side, where the motor code must be entered into P1101 .. P1106 so that the controller knows the resolver pole count and the motor torque constant.

Why the previous analog interface worked: The earlier S5-95U → 611U wiring used the ±10 V analog setpoint input (X461) and the encoder simulation output (X461 / X471). PROFIBUS replaces these with STW1 (control), STW2 (mode), and the digital setpoint words. The motor itself is unchanged; only the wiring scheme and the controller reference source change. No rewiring of the motor power cable is required.

10. Commissioning Procedure

  1. Power up the S7-300 with CPU 314-2DP. Confirm the SF / BF LEDs on the CPU are off after download.
  2. Power up the 611U NE module. The 7-segment shows --, then the node address.
  3. Connect SimoCom U over RS232 to set P0918, P0922, P0865 (PROFIBUS watchdog, default 50 ms), and the motor parameters P1101 .. P1106.
  4. Verify PROFIBUS LED on the option card goes from flashing to steady green after STEP 7 enters RUN.
  5. In STEP 7 force STW1 = 16#047E (OFF1 = 1, OFF2 = 1, OFF3 = 1, inverter enable = 0, control by PLC = 1). Confirm ZSW1 = 16#0631 (ready, ready to operate, switch-on inhibited).
  6. Apply STW1 = 16#047F to enable the inverter. ZSW1 must transition to 16#0237 (operation enabled, no fault).
  7. Test jog via STW1 bit 8 = 1, bit 9 = 0 (positive jog) and verify actual speed in PZD_in[2] tracks the jog setpoint.
  8. Stop via STW1 = 16#047E, then run a Z1 traversing block by selecting the block number in PZD_out[3] and asserting the start command via FB83.
  9. Monitor ZSW1 bit 10 (f / n reached) and the InPosition flag from FB83.

11. Verification Checklist

  • STEP 7 online diagnostics show the 611U slave in cyclic data exchange (no DIAG interrupt pending).
  • DPRD_DAT RET_VAL = 0 and DPWR_DAT RET_VAL = 0 every cycle.
  • ZSW1 bit 10 toggles in sync with the life-sign counter echo in ZSW1 bits 12..15.
  • Actual speed in PZD_in[2] (word 2 of PZD in) tracks setpoint speed in PZD_out[2] within the configured ramp.
  • Drive does not report F082 (life-sign failure) or F080 (bus timeout).
  • FB83 status flags AxisReady / InPosition reflect the actual drive state within one PROFIBUS cycle.

12. Troubleshooting Matrix

Symptom Likely Root Cause Remedy
BF LED on CPU steady ON, slave shows green flashing only LADDR in SIMODRIVE_CONTROL does not match HW Config slot base Open HW Config → slave slot 0 → Properties; copy the I/O start address into LADDR
BF LED off, drive reports F082 Life-sign counter not toggling because FC is not called in OB1 Place the CALL "SIMODRIVE_CONTROL" in OB1 (cyclic), not in OB100
Drive reports F080 (PROFIBUS failure) PROFIBUS watchdog P0865 too short for the configured baud rate Increase P0865 to 100–200 ms, or increase baud rate to 1.5 Mbps minimum
AxisEnabled stays 0 after STW1 = 16#047F Drive enable terminals (X121 Enable / X121 Reset) open or wire break Verify 24 V on X121 enable input; check terminal block wiring
ActualPosition increments / decrements but InPosition never sets Position tolerance window P0322 too tight Increase P0322 to a value within the encoder resolution
Motor runs away at high speed after enable Encoder direction reversed in drive parameters Swap parameter P0410 = 1 (rotate encoder direction) or mechanically swap motor phases
DPWR_DAT RET_VAL = W#16#8092 Length mismatch — WR_PZD length 20 bytes does not match slave slot configuration Verify the slot uses 10 PZD out, not 6 or 2; adjust HW Config and download again
Z1 traversing block starts then faults F047 (following error) Following error window P0325 too tight or acceleration P1460 too aggressive Increase P0325 or reduce P1460 / P1461 acceleration ramps

13. Diagnostic Information Sources

Three sources of diagnostic data should be used during commissioning:

  1. STEP 7 online → Accessible Nodes → slave → Module Information — shows DIAG bytes and module status.
  2. SimoCom U online → Diagnostics → PROFIBUS — shows telegram length, node address, baud rate detected, and DP state.
  3. FB83 status outputs (AxisFaulted, FaultWord, ZSW1) exposed back into the PLC program and to the HMI.

Drive-internal fault numbers are documented in the 611U List Manual. The most common faults when migrating an axis from analog control to PROFIBUS are F080 (bus failure), F082 (life-sign failure), and F047 (following error). All three are recoverable once the underlying bus problem or tuning problem is fixed.

14. Replacement of Legacy S5-95U Analog Wiring

Projects upgrading from S5-95U to S7-300 / CPU 314-2DP typically keep the 611U hardware and 1FT5 motor unchanged. The replacement steps are:

  1. Disconnect the ±10 V analog setpoint wires from X461 of the 611U NE module.
  2. Disconnect the encoder simulation cables from X471 (if previously routed into the S5-95U counter input).
  3. Install the PROFIBUS option card in the 611U option slot; connect PROFIBUS cable to the 9-pin SUB-D on the card.
  4. Configure P0918, P0922, P0865 via SimoCom U.
  5. Load the Toolbox project into STEP 7, adjust LADDR / NR_ACHS_DB to match the new hardware configuration, and download.
  6. Verify the axis behaves identically to the analog configuration by running a reference motion profile.

The motor power wiring, the braking resistor, the line filter, and the mains contactor wiring remain unchanged. Only the control-side signal path is replaced.

What GSD file does the SIMODRIVE 611U PROFIBUS option use?

The 611U PROFIBUS option is integrated as a generic Siemens DP slave using file SI08118.GSD. Copy the GSD plus its bitmap into \Siemens\Step7\S7DATA\GSD, run Options → Install GSD File in HW Config, then place the SIMODRIVE 611U device from the PROFIBUS-DP → Additional Field Devices → Drives catalog.

Why does the drive report F082 immediately after PLC goes RUN?

F082 means the drive stopped seeing the life-sign toggle in STW1 bits 12..15. The two common causes are: (1) the SIMODRIVE_CONTROL FC is not called cyclically in OB1 (call it in OB1, not OB100); (2) the LADDR parameter does not match the HW Config slot base. Verify RET_VAL of SFC14/15 inside the FC, and confirm the I/O start address matches LADDR.

Can the S7-300 CPU 314-2DP control a 1FT5 motor over PROFIBUS without changing the motor?

Yes. The PROFIBUS path replaces only the control side (analog setpoint and encoder feedback into the S5-95U). The 1FT5 motor, power cable, brake resistor, and resolver feedback to the 611U NE module remain unchanged. Configure motor parameters P1101..P1106 with the 1FT5 motor code so the controller knows the resolver pole count and torque constant.

Where can I get a working STEP 7 sample program for 611U positioning?

The SIMODRIVE 611U Toolbox DVD ships a complete STEP 7 V5.4/V5.5 sample project containing FB83, the SIMODRIVE_CONTROL FC, UDT30008, and a Z1 traversing-block example. The Toolbox is available from Siemens support under product name "SIMODRIVE 611U Toolbox". It is also referenced in the official Siemens documentation portal automation.siemens.com/doconweb under the 611U documentation set.

What is the meaning of the DB72 offsets 156, 166, and 206?

The instance DB (DB72) holds the UDT30008 structure for axis 1. Byte offset 156 is the base of the UDT. The first 10 bytes (156..165) hold the control / header area. The next 20 bytes (166..185) hold the 10-word PZD output area written to the drive. Byte offset 206 (= 156 + 50 words × 2 bytes / 2? actually offset 206 from the UDT base, holding 10-word PZD input area) is the start of the 10-word PZD input area read from the drive. The FC uses these pointers verbatim: WR_PZD := P#DB72.DBX166.0 BYTE 20, RD_PZD := P#DB72.DBX206.0 BYTE 20.

Back to blog