Configuring S7-300 Profibus for Lenze 9300 Servo: Step-by-Step

David Krause21 min read
ProfibusSiemensTutorial / 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

This engineering reference documents a complete Profibus-DP integration between a SIMATIC S7-300 CPU 314-2DP and a Lenze 9300 series servo drive (EVS9328 fitted with the 2133 Profibus-DP communication module, also marketed as EMF 2133 IB). The CPU is the Profibus-DP master; the Lenze drive is a DP slave exchanging cyclic process data with the PLC through the standard system functions SFC14 (DPRD_DAT) and SFC15 (DPWR_DAT). The motion recipe (14 mm forward, 2 s dwell, 2 mm reverse, 0.2 s dwell, 0.1 mm reverse, then 14 mm forward again) is fully parameterised by a SIMATIC TP270 operator panel, so the recipe is editable in production without re-programming the PLC.

The same pattern applies to any S7-300 CPU in the 31x-2 DP family (CPU 312-2DP, 315-2DP, 315-2 PN/DP, 317-2DP, 319-3 PN/DP on the DP port) and to a wide range of Lenze 9300 line drives (EVS9326, EVS9327, EVS9328, EVS9329, 9371, 9381). For users with a CP 342-5 instead of the integrated DP port, swap SFC14/SFC15 for FC1 (DP_SEND) and FC2 (DP_RECV); the drive-side configuration does not change.

System Architecture and Components

The reference topology puts the S7-300 at the head of a single-master Profibus segment with the Lenze 9300 as the cyclic-position slave and the TP270 as a standard Profibus HMI slave.

Component Model / Order Number Function in the Network
SIMATIC S7-300 CPU CPU 314-2DP, e.g. 6ES7 314-6CG03-0AB0 DP master, sequential control, position recipe
DP port Integrated X2 (MPI/DP), 9-pin sub-D Profibus-DP master, 9.6 kbaud to 12 Mbaud
Lenze servo drive EVS9328 (9300 Servo series) Position/velocity/torque control, current loop at 8 kHz
Lenze comm. module EMF 2133 IB (Profibus-DP slave module) Plug-in Profibus interface for the drive
Servo motor Lenze MCS / MDXKS / MDS (matched via C0005) Mechanical actuator with resolver or encoder
Profibus cable 6XV1 830-0EH10 (Siemens FastConnect) or equivalent RS-485 segment wiring, violet sheath
Profibus connector 6GK1 500-0FC00 with switchable terminator Bus termination at both end nodes
HMI SIMATIC TP270 (Profibus version) Operator input of travel, dwell, speed
Engineering tool STEP 7 V5.5 + SPx; ProTool/WinCC flexible for TP270 PLC programming, HWConfig, GSD integration
S7-300 CPU 314-2DP DP Master (Addr 2) SFC14 / SFC15 Lenze 9300 Servo EVS9328 + EMF 2133 IB Profibus Addr 3 PPO3 (CW/SW + 2 PZD) TP270 HMI Profibus Addr 4 T

Topology: single-master Profibus-DP segment. Termination ON at both physical ends only.

Bus termination. Profibus requires active termination at both physical ends of the segment. The integrated DP port of the CPU 314-2DP does not contain a switchable terminator; place the PLC at one end with a connector that has the resistor ON, and put the terminator ON at the last slave. Every device in between must have the terminator OFF. Refer to the SIMATIC S7-300 Installation Manual for the wiring rules.

Prerequisites

  • STEP 7 V5.5 (or later) installed with the S7-300 Hardware Support Package for the CPU 314-2DP.
  • The Lenze GSD file for the 2133 Profibus module. The file ships with the Lenze Drive Solution Designer / Lenze EPM software install and is also downloadable from the official Lenze product page for the 9300 series. The GSD file is typically named LEN0E091.GSD (verify the version stamped on the file against the firmware of the 2133 module).
  • Lenze Global Drive Control (GDC) or the X400 keypad module to set the fieldbus-related drive parameters before the Profibus master goes online.
  • The Lenze 9300 Communication Manual (Profibus-DP volume, document HGB_Profibus series) for the parameter set, telegram definitions, and fault-code cross-reference.
  • A working Profibus segment with termination, and a known baud rate (1.5 Mbaud or 12 Mbaud are typical for a single Lenze slave).
  • Appropriate firmware on the 2133 module. The Profibus-DP slave card is identified to the drive through the fieldbus type; mismatch between the GSD revision and the card firmware will appear as a configuration error during DP start-up.
  • If using a CP 342-5, the CP's hardware support package in STEP 7 and a CP 342-5 DP master configuration in HWConfig on the CP, not on the CPU.

Profibus PPO Types and Telegram Structure

Profibus-DP slaves to drives use the Parameter Process Data Object (PPO) convention to combine a parameter channel (PKW) and a process data channel (PZD) into a single cyclic telegram. The Lenze 2133 module supports the standard PPO types defined in the PROFIdrive profile (see PROFIBUS & PROFINET International for the full profile spec).

PPO Type PKW Words PZD Words (each direction) Length per Direction
PPO1 4 2 12 bytes
PPO2 4 6 20 bytes
PPO3 0 2 4 bytes
PPO4 0 6 12 bytes
PPO5 4 10 28 bytes

For positioning control on a 9300 Servo where the drive handles the entire position controller, the smallest fit is PPO3: 2 PZD words in each direction. The first word is the control word (PLC → drive) and status word (drive → PLC); the second word carries the main setpoint, which for the 9300 Servo position controller is the position setpoint (or, in velocity mode, the velocity setpoint). When the recipe also needs to write back discrete drive parameters (e.g., positioning window, acceleration ramps), move to PPO1 to add the 4-word PKW channel.

Recommended choice for this recipe: PPO3 (4 bytes input / 4 bytes output). The PLC writes the control word and the position setpoint; the drive replies with the status word and the actual position. All ramp, gain, and limit parameters are pre-loaded once via the keypad/GDC, or, optionally, acyclically through the PKW channel of a PPO1 telegram. The PPO type must be set both in HWConfig (for the master side) and in drive code C0140 (for the slave side); mismatch produces a configuration fault during DP start-up.

Installing the Lenze GSD File and Configuring the Profibus Node

  1. Copy the Lenze GSD file (e.g., LEN0E091.GSD) and the associated bitmap (LEN0E091.BMP) to the STEP 7 GSD directory: C:\Program Files\Siemens\Automation\SIMATIC Manager\S7DATA\GSD (the exact path depends on the STEP 7 install). Restart HWConfig so it re-scans the device catalog.
  2. Open the S7-300 station in HWConfig. Drag the CPU 314-2DP from the catalog. On the X2 (MPI/DP) interface, set the interface type to Profibus-DP master and assign a Profibus subnet with a master address (default 2) and the desired baud rate. Siemens recommends 1.5 Mbaud for a single Lenze 9300 slave; 12 Mbaud is supported but cable quality becomes critical.
  3. From the Profibus-DP catalog, expand Additional Field Devices → Drives → Lenze → 9300 Servo → EMF 2133 IB. Drag the appropriate PPO3 (or PPO1) entry to the Profibus subnet. Set the slave address to match the address you set on the 2133 module (rotary switches on the module, or C0135 in the drive parameter list).
  4. Double-click the slave to open its properties. On the Parameter Assignment tab, confirm that the configured I/O addresses do not collide with the CPU 314-2DP's I/O. The default is PE 256..259 / PA 256..259 for PPO3. Change them to a free area such as PE 300..303 / PA 300..303 and note the values for the LADDR parameter of SFC14/SFC15.
  5. Save and compile the station. Download the HWConfig to the CPU. The CPU 314-2DP will go into RUN; the slave should appear in the DP diagnostics as OK. If the BF LED on the CPU flashes, revisit the slave address and the GSD file version.
Watch the address format. In STEP 7, the address in HWConfig is a byte address. SFC14 and SFC15 expect the same byte address in the LADDR parameter. A common mistake is to enter the word address (the "W" address), which is the byte address divided by 2, but STEP 7 expects the raw byte address for these system functions. For PPO3 at byte 300, LADDR = W#16#012C.

Lenze 9300 Drive Parameters for Profibus

Before the drive will accept a Profibus setpoint, the fieldbus source for control word, setpoint, and feedback must be selected in the drive. The relevant codes are documented in the Lenze 9300 Communication Manual; the values below are the typical settings for a position-controlled servo over Profibus.

Code Name Typical Value for this Recipe Comment
C0005 Motor selection matched motor code Select the connected Lenze motor; required for correct thermal model and current-loop tuning.
C0010 Control mode 0x07 (positioning via fieldbus) 0x04 = speed mode, 0x07 = position mode; choose position mode to use 14 mm / 2 mm travel commands.
C0011 Direction of rotation 0 (positive) Toggle if the motor runs backwards when a positive setpoint is applied.
C0086 Control word source 3 (Profibus-DP) Selects the source of bits 0-15 of the control word. 3 = fieldbus.
C0087 Status word source 3 (Profibus-DP) Selects the source of the status word sent back to the master.
C0088 Setpoint source (main) 3 (Profibus-DP) Selects the source of the main setpoint word (PZD2).
C0089 Actual value source 3 (Profibus-DP) Source of the actual value word sent to the master.
C0120 Fieldbus profile 0 (Profibus-DP) 0 = Profibus-DP profile, 1 = INTERBus, 2 = CAN. Set before the first Profibus start-up.
C0135 DP slave address 3 Must match the HWConfig assignment of the slave.
C0140 PPO type 3 (PPO3) 0 = PPO1, 1 = PPO2, 3 = PPO3, 4 = PPO4, 5 = PPO5. Must match HWConfig.
C0870 Position setpoint source 0 (use fieldbus) If the position setpoint is delivered from the fieldbus, this code points the position setpoint source at the PZD2 input.
C0880 Ramp type 0 (linear, jerk-limited) Match the motion profile to the recipe dwell times.
C0881 Acceleration application-specific, e.g. 200 mm/s² Sets the accel ramp for 14 mm travel; reduce for delicate mechanics.
C0882 Deceleration application-specific, e.g. 200 mm/s² Sets the decel ramp; mismatch with accel gives an asymmetric profile.
C0883 Maximum velocity e.g. 100 mm/s Clamps the velocity for the position profile.
C0885 Position scaling factor e.g. 100 incr/mm Sets the integer-to-millimetre ratio. With 100 incr/mm, 14 mm = 1400 incr on PZD2.
C0900 Homing mode application-specific Required at start-up before absolute moves; some recipes use direct homing via reference cam.
Save parameters and reboot. Codes C0086..C0089, C0120, C0135, and C0140 are fieldbus-activation codes. The drive only re-evaluates them after a power cycle or an explicit "save parameters" command followed by a reset. Make this a fixed step in your commissioning checklist.

Control Word and Status Word (ACDS / PROFIdrive Profile)

When configured for Profibus, the Lenze 9300 Servo drive accepts a 16-bit control word that follows the ACDS bit assignments inherited from the DRIVECOM profile. Most bits map 1:1 to PROFIdrive state transitions, so the same word layout used on Siemens MASTERDRIVES / SINAMICS drives applies here.

Bit Control Word (PLC → Drive) Status Word (Drive → PLC)
0 ON / OFF1 (controller enable) Ready to switch on
1 No coast stop (0 = coast / disable) Ready to operate (DC bus charged)
2 No quick stop (0 = quick stop) Operation enabled (drive following setpoint)
3 Enable operation Fault present
4 Enable ramp generator (ramp not frozen) Coast stop not active
5 Continue ramp generator (un-freeze) Quick stop not active
6 Enable setpoint (apply position / velocity) Switch-on inhibited (state transition pending)
7 Fault reset (0→1 edge) Warning present (non-fatal)
8 Jog 1 (manufacturer-specific) Speed = reference (within tolerance window)
9 Jog 2 (manufacturer-specific) Bus control requested (drive wants to be commanded by PLC)
10 Control by PLC (1 = PLC owns the drive) f or n reached (setpoint reached)
11 Reserved / motor potentiometer up Manufacturer-specific (e.g., position reached)
12 Reserved / motor potentiometer down Manufacturer-specific (e.g., drive halted)
13 Reserved Manufacturer-specific
14 Reserved Manufacturer-specific
15 Reserved Manufacturer-specific

The standard switch-on sequence for a Profibus-controlled Lenze 9300 is:

  1. Apply 0x0006 (binary 0000 0110): coast stop and quick stop cleared, drive waits for "Enable operation".
  2. Apply 0x0007 (binary 0000 0111): add "Enable operation", drive powers the output stage.
  3. Apply 0x000F (binary 0000 1111): add "Enable ramp generator" and "Enable setpoint", drive begins following the position setpoint.
  4. To stop under controlled deceleration, drop bit 2 to 0 (quick stop).
  5. To coast, drop bit 1 to 0.
  6. To clear a fault, pulse bit 7 from 0 → 1 on a new control word write.
Idle bStart = 0 CW = 0x6 Coast/QS cleared CW = 0x7 Output stage on CW = 0xF Setpoint active bStart SW=0x31 SW=0x33

State transitions for the ACDS control word. Each transition is gated by reading the status word back before proceeding.

Status word is read-only. Bits 0, 1, 2, 4, 5, 6 of the status word reflect the underlying state machine; a Lenze drive will not enter Operation enabled until bits 0, 1, 2 of the control word are all 1. Do not write the setpoint word until you see status word bits 0, 1, 2 = 1 and bit 6 = 0 (no switch-on inhibit). The Lenze fault code, if any, is reported in the high byte of the status word (or via a separate acyclic parameter read); cross-reference is in the 9300 Communication Manual.

SFC14 / SFC15 Programming for Cyclic Data Exchange

For the integrated DP port of the CPU 314-2DP, the data from a DP slave is not in the process image. You must use SFC14 (DPRD_DAT) to copy consistent data from the slave to a DB, and SFC15 (DPWR_DAT) to write consistent data from a DB back to the slave. Both SFCs move a complete PPO as one consistent block; partial reads or writes are not possible.

Define a data block (e.g., DB100) that mirrors the PPO layout. For PPO3:

DATA_BLOCK DB100
TITLE = 'Lenze 9300 PPO3 image'
STRUCT
  ControlWord  : WORD;   // output word 0 - PZD1 to drive
  Setpoint     : WORD;   // output word 1 - PZD2 to drive (position)
  StatusWord   : WORD;   // input  word 0 - PZD1 from drive
  ActualValue  : WORD;   // input  word 1 - PZD2 from drive (actual pos.)
END_STRUCT
END_DATA_BLOCK

Call the read in OB1 (or OB35 for a fixed cycle) and the write right after. The RET_VAL of both SFCs returns W#16#0000 on success; non-zero values are described in the STEP 7 Online Help.

// Read inputs from drive (4 bytes for PPO3)
CALL "DPRD_DAT" (
  LADDR   := W#16#12C,                    // 300 decimal = W#16#012C
  RET_VAL := MW100,                       // 0 = OK; non-zero = error
  RECORD  := P#DB100.DBX 4 BYTE 4         // StatusWord + ActualValue
);

// Write outputs to drive (4 bytes for PPO3)
CALL "DPWR_DAT" (
  LADDR   := W#16#12C,
  RET_VAL := MW102,
  RECORD  := P#DB100.DBX 0 BYTE 4         // ControlWord + Setpoint
);

Common RET_VAL values from SFC14/SFC15:

RET_VAL Meaning Typical Cause
W#16#0000 No error
W#16#8090 Length parameter incorrect RECORD length does not match the configured slot
W#16#8091 LADDR outside the configured I/O LADDR word address, not byte address; or slot not configured
W#16#8092 DP protocol error Bus fault or slave offline
W#16#80A0 Negative acknowledge from slave Slave rejected the write (e.g., drive not in OP state)
W#16#80B0 DP protocol error, DP STOP CPU's DP interface in STOP; slave diagnostic interrupt pending
W#16#80C0 Data consistency lost New data from slave during read; retry the call

Length rules. For PPO3, SFC15 writes 4 bytes (2 PZD words) and SFC14 reads 4 bytes. For PPO1, both move 12 bytes; PPO2 = 20 bytes; PPO4 = 12 bytes; PPO5 = 28 bytes. The RECORD parameter must match the configured slot length exactly. SFC15 returns W#16#8090 if it does not.

For an OB35 (cyclic interrupt) implementation, place the calls in OB35 at, e.g., 100 ms, and have the HMI read recipe data from a separate recipe DB rather than from DB100. The drive-side cycle is independent of OB35; the drive latches the latest setpoint and status on each telegram.

Implementing the Positioning Sequence with TP270 Recipe

The motion recipe is built from the TP270-supplied parameters. The PLC's job is to (a) check the drive state, (b) write a target position, (c) wait for "position reached" in the status word, (d) dwell for the supplied time, and (e) repeat. The drive handles the motion profile (ramp, position controller, following-error window) internally, so the PLC never needs to interpolate the move.

S0: Idle Wait bStart S1: Fwd 14 mm + rForward S2: Hold 1 TON rHold1 S3: Back 2 mm - rBack1 S4: Hold 2 TON rHold2 bStart PosRch Hold1Done PosRch

Positioning sequence state machine. Each transition is gated by the drive status word and the local TON timer.

Recipe variables (loaded from the TP270 into DB200):

Tag Type Unit Default Comment
DB200.DBX0.0 bStart BOOL 0 Operator start, latched
DB200.DBD2 rForward REAL mm 14.0 Forward travel (positive)
DB200.DBD6 rHold1 REAL s 2.0 Dwell after forward move
DB200.DBD10 rBack1 REAL mm 2.0 First reverse travel (positive magnitude)
DB200.DBD14 rHold2 REAL s 0.2 Dwell after first reverse
DB200.DBD18 rBack2 REAL mm 0.1 Second reverse travel (positive magnitude)
DB200.DBD22 rSpeed REAL mm/s 50.0 Cap velocity; clamped against C0883

Position values from the TP270 are real-world millimetres. The drive expects a Lenze-internal position value (increments) on PZD2. Two options exist:

  1. Use the drive's scaling. Configure C0885 (position scaling factor) so that the integer fed in PZD2 maps directly to the recipe. With the default 100 incr/mm, 14 mm = 1400 increments. The PLC rounds rForward * 100 and writes the integer.
  2. Convert in the PLC. The PLC multiplies the real value by the scale and writes the integer. Advantage: the recipe is portable across drives with different scaling.

An STL outline of the sequence control in OB1 follows. It uses an internal state word (MW200) to track the current step and runs the cycle indefinitely until bStart is reset.

// Step 0: Wait for run request
      A   DB200.DBX0.0        // bStart
      JC  ST10
      L   0
      T   MW200
      BEA

// Step 10: Drive ON sequence
ST10: L   W#16#6
      T   DB100.DBW0         // ControlWord = 0x0006
      CALL "DPWR_DAT"        // write
      L   DB100.DBW4         // StatusWord
      L   W#16#31            // Ready + Run + Enabled
      AW
      L   W#16#31
      ==I
      JC  ST20
      BEA

// Step 20: Send forward setpoint
ST20: L   DB200.DBD2         // rForward
      L   1.0
      *R
      L   1.0e+2             // scale 100 incr/mm
      *R
      RND
      T   DB100.DBW2         // Setpoint (INT)
      L   W#16#F
      T   DB100.DBW0         // ControlWord = 0x000F
      CALL "DPWR_DAT"
      // wait for "position reached" in status word
      L   DB200.DBD2         // store target in DB210 for re-use
      T   DB210.DBD0
      L   21
      T   MW200
      BEA

// Step 21: Hold 1 (2 s)
ST21: ...   // TON timer on DB200.DBD6
      // after timer done, set Setpoint = -rBack1 (positive magnitude, sign by recipe)
      L   22
      T   MW200

// Step 22: Move back 2 mm
// Step 23: Hold 2 (0.2 s)
// Step 24: Move back 0.1 mm
// Step 25: Loop back to Step 10

The exact implementation depends on whether the TP270 is sending values via a recipe or via simple tags. With a TP270 configured as a Profibus slave with its own GSD, the values land in the PLC's input process image and can be moved into DB200 with a few MOVE blocks.

Commissioning, Diagnostics, and Verification

  1. Watch the LEDs. The CPU 314-2DP front panel has a "DP" LED (green) and a "BF" (bus fault) LED. After download, the DP LED should be solid green; the BF LED should be OFF. A steady BF indicates no Profibus activity; a flashing BF indicates a configuration or slave-address mismatch.
  2. Use STEP 7's "DP Slave Diagnostics". In HWConfig, right-click the Lenze slave and select DP-Slave-Diagnose. The diagnostic buffer gives the slave's state and any Profibus layer-2 errors. A common reading is Station failure when the 2133 module is unpowered.
  3. Monitor the PZD live. Open DB100 in the VAT table. After a successful SFC14 call, DB100.DBW4 (status word) should read 0x0531 on a healthy idle drive (Ready + Run + Enabled, plus "Operation enabled" and "DC bus charged"). On a fault, the high byte carries the Lenze fault code; the manual lists the cross-reference.
  4. Force a small move. With the PLC in STOP, set DB100.DBW0 = W#16#6 and DB100.DBW2 = 0 in the VAT and trigger a single SFC15 via the VAT's "Modify" function. The drive should power up the output stage (you will hear the contactor close). Then write W#16#F with a small setpoint (e.g., 100 increments = 1 mm) and confirm the motor turns. Monitor the actual position in DB100.DBW6 to see the move complete.
  5. Verify positioning accuracy. Measure the actual 14 mm / 2 mm / 0.1 mm with a dial indicator or a caliper. The drive's following error and positioning window (typically codes in the C090x range) determine the tolerance; tighter windows mean less margin for thermal drift.
  6. Check the recipe round-trip. Edit rForward on the TP270 from 14 mm to, e.g., 10 mm. Verify the value arrives in DB200.DBD2 by toggling a VAT. Then start the cycle and confirm the drive moves 10 mm, not 14 mm. This validates the HMI-to-PLC segment of the chain.

Troubleshooting Matrix

Symptom Likely Cause Diagnostic Step Fix
BF LED steady, no DP LED Wiring / termination Check cable, terminator ON at both ends Replace cable, switch terminator ON at end nodes
BF LED flashing Slave address mismatch or GSD mismatch Compare C0135 to HWConfig address; check 2133 firmware vs GSD Set C0135 to the same address used in HWConfig; obtain matching GSD
SFC15 returns 0x8090 RECORD length wrong Compare configured output length to RECORD length Use 4 bytes for PPO3, 12 for PPO1, 20 for PPO2, 12 for PPO4, 28 for PPO5
SFC15 returns 0x8091 LADDR outside configured I/O Check the byte address in HWConfig Use the exact byte address from HWConfig; for PPO3 at 300 use W#16#012C
SFC14 returns 0x80C0 Data consistency lost Read again on the next OB1 Retry call or move SFC14 to OB35 with consistent time-base
Drive powers up but ignores setpoint C0086/C0088 not 3 (fieldbus) Read drive parameters on keypad Set C0086 = 3, C0088 = 3, save, power cycle
Status word always 0x0000 C0087 not 3, or PPO mismatch Check C0087, C0140 Set C0087 = 3, C0140 = 3 (PPO3)
Drive faults OC (overcurrent) on first move Encoder feedback lost or motor code wrong Check resolver/encoder wiring; check C0005 Re-seat the resolver connector; set C0005 to the correct motor
Position is reversed (jog sign wrong) Motor direction set against axis Check C0011 (direction of rotation) Toggle C0011, or invert the sign of the recipe value
Position overshoots Position controller gain too low/high Check C0870..C0875 (position controller) Re-tune Kp and Ki of the position controller per the manual
TP270 shows "No connection" TP270 not in HWConfig, or wrong area pointer Add TP270 GSD to HWConfig; check area pointer Add TP270 slave at the configured address; set area pointer 1 to start at PEW 200
Move starts but aborts with F02 (following error) Mechanical jam or accel too high Reduce C0881, check for binding in the mechanics Lower acceleration; clear the jam; widen the following-error window

CP 342-5 Alternative Path

If the application uses a CP 342-5 instead of the integrated DP port, the read/write path is different. The CP 342-5 is a Profibus-DP master that exposes its data through a configurable input/output area on the S7-300 backplane. The standard blocks for it are FC1 (DP_SEND) and FC2 (DP_RECV), both supplied with the CP. The CP also requires a separate DP master configuration in HWConfig that lives on the CP, not the CPU.

For each slave, allocate a length in the CP's input/output area (e.g., 4 bytes for PPO3). Then in the user program:

CALL "DP_RECV" (
  CPLADDR := W#16#150,                  // CP 342-5 base address from HWConfig
  RECV    := P#DB100.DBX 4 BYTE 4,
  DPSTAT  := MW110
);

CALL "DP_SEND" (
  CPLADDR := W#16#150,
  SEND    := P#DB100.DBX 0 BYTE 4,
  DPSTAT  := MW112
);

The drive-side configuration (C0086..C0089, C0120, C0135, C0140) is identical regardless of whether the master is the CPU 314-2DP's integrated port or a CP 342-5. DPSTAT non-zero indicates a CP-internal error (e.g., slave offline); the CP 342-5 manual maps the bits.

Safe Torque Off (STO). The Lenze 9300 provides STO via dedicated hardware terminals on the drive (typically X100.1 / X100.2), not over Profibus. Do not rely on the control word to satisfy functional-safety requirements; wire STO to a hardwired safety relay or to a Profisafe source if your application requires SIL 2 / PL d. The Lenze 9300 Safety Manual details the wiring and the diagnostic coverage.

FAQ

Which PPO type should I pick for position control on a Lenze 9300 Servo?

Use PPO3 for the smallest cyclic telegram (4 bytes input / 4 bytes output: control word, setpoint, status word, actual value). Switch to PPO1 if you also need to acyclically read/write drive parameters (e.g., positioning window, ramp limits) without stopping the cycle.

What is the correct LADDR format for SFC14 / SFC15 on a CPU 314-2DP?

LADDR is a 16-bit word holding the byte address of the configured I/O. For a PPO3 placed at byte 300 in HWConfig, use LADDR = W#16#012C (decimal 300). Do not use the word address; using the word address (150) gives SFC15 error W#16#8091.

Do I have to set the control word bits in a specific order to start the drive?

Yes. The Lenze 9300 follows the ACDS state machine: send 0x0006 to clear coast/quick-stop; send 0x0007 to add "Enable operation"; send 0x000F to enable ramp and setpoint. Skipping steps leaves the drive in Switch-on inhibited (status word bit 6 = 1).

Why does the status word read 0x0000 even though the drive is powered?

The most common cause is C0087 (status word source) not set to 3 (fieldbus), or the PPO type in the drive (C0140) not matching the PPO type selected in HWConfig. Set both, save, and power-cycle the drive. A loose Profibus connector will also produce a frozen 0x0000 because the master stops refreshing inputs.

How do I send recipe values from a TP270 to the S7-300?

Add the TP270 GSD to HWConfig and assign it a Profibus address. Configure the TP270 area pointer 1 in the ProTool/WinCC flexible project to start at the desired input word area (e.g., PEW 200). Bind the recipe tags on the HMI to the corresponding word addresses. The PLC reads those words into DB200 at the top of OB1, then scales and writes them to the drive via SFC15.

Can the PLC stop the drive under Profibus control without a hardware STO?

Yes, by writing 0x0006 (controlled ramp stop via quick stop on bit 2) or by clearing bit 1 (coast stop). These are operational stops, not safety stops. For functional safety, always wire the hardware STO terminals (X100) to a safety relay or a Profisafe controller.

Back to blog