Overview of MICROMASTER 440 PROFIBUS Communication
The Siemens MICROMASTER 440 (MM440) inverter family exchanges data with a SIMATIC S7-300 or S7-400 CPU over PROFIBUS-DP through the optional PROFIBUS module (catalog number 6SE6400-1PB00-0AA0 or the type-plate-compatible variant for the firmware in use). The drive acts as a PROFIBUS-DP slave, the S7 CPU as the class 1 master, and the data exchange follows the PROFIdrive profile defined in IEC 61800-7-1.
Two data channels are available inside every PROFIdrive telegram:
- PKW (Parameter-Kennung-Wert) – 4 words (8 bytes) used for acyclic parameter read/write transactions. Any drive parameter (P or r) can be addressed, one parameter per transaction. Standard PROFIdrive AK codes 0–15 are supported.
- PZD (Prozessdaten) – 2 to 10 words (4 to 20 bytes) used for cyclic process data. The Control Word 1 (STW1) and Speed Setpoint (NSOLL) are always the first two PZD outputs. The Status Word 1 (ZSW1) and Actual Speed (NIST) are always the first two PZD inputs. Additional PZD inputs are freely mappable to user-selected parameter numbers via P2051.
The combination of PKW and PZD length is called a PPO (Parameter-Process-data-Object). Five standard PPO types are defined: PPO1, PPO2, PPO3, PPO4, PPO5. The choice is made in STEP 7 HW Config and determines the I/O address space allocated to the drive in the PLC.
This article covers the configuration steps, parameter mapping, and PLC code required to read output voltage (r0025), output current (r0027), and active power (r0032) from the MM440 into the S7 PLC over PROFIBUS-DP.
Prerequisites
Before integrating the MM440 into a STEP 7 project, confirm the following items are in place:
- Hardware: MM440 inverter with the PROFIBUS option module installed in slot D of the control board. The module supports baud rates from 9.6 kbit/s to 12 Mbit/s with auto-detect enabled by default.
- Firmware: MM440 firmware version 2.x or higher. The parameter set exposed via the PROFIdrive profile was expanded in later releases; consult the MICROMASTER 440 Parameter List for the firmware-specific parameter range. The parameter list is only valid in combination with the Operating Instructions or the Reference Manual of the MM440.
- STEP 7: STEP 7 V5.4 SPx or higher (for S7-300/400) with the MM4 GSD file installed. The GSD file (SIEM808D.GSD or the variant matching the module revision) and the associated bitmap files must be copied under S7DATA → GSD in the STEP 7 installation path. TIA Portal uses the same GSD file.
- Drive ES (optional): The DRIVE ES SIMATIC package provides a parameter editor and pre-built function blocks (FC10, FC14, FC15, etc.). A subset of the blocks is also available as a free download from the Siemens Industry Online Support portal for some drive families; the diagnostic and commissioning wizards require the licensed package.
PROFIdrive PPO Types and Telegram Selection
The PPO type defines the telegram structure used between the master and the drive. The MM440 supports PPO1 through PPO5 as defined in the PROFIdrive profile v3.0. The breakdown of each PPO is shown below.
| PPO Type | PKW Words | PZD Output Words | PZD Input Words | Total Words | Use Case |
|---|---|---|---|---|---|
| PPO1 | 4 | 2 | 2 | 8 | Parameter access + minimal process data (STW1 + NSOLL, ZSW1 + NIST) |
| PPO2 | 4 | 4 | 4 | 12 | Parameter access + 2 free monitoring values |
| PPO3 | 0 | 2 | 2 | 4 | Fast control only (no parameter access) |
| PPO4 | 0 | 6 | 6 | 12 | High-speed control + 4 free monitoring values |
| PPO5 | 0 | 10 | 10 | 20 | Maximum monitoring bandwidth (8 free values) |
To monitor voltage, current, and power continuously, PPO2, PPO4, or PPO5 is required. PPO2 includes the PKW channel for occasional parameter access plus 2 PZD inputs for free mapping. PPO4 and PPO5 sacrifice the PKW channel for additional PZD slots, which is appropriate when parameters are configured once via the BOP/AOP or Starter and the application only needs to read process data cyclically.
The PPO type is selected in HW Config from the slave's slot configuration and must match parameter P0922 in the drive (P0922 = 1 for PPO1, 2 for PPO2, 3 for PPO3, 4 for PPO4, 5 for PPO5). If P0922 = 0, the drive accepts the telegram configured by the master.
PKW and PZD Data Exchange
The PKW channel consists of 4 words (8 bytes) that are exchanged cyclically but used for acyclic parameter transactions. The structure of the PKW words is as follows:
| Word | Name | Description |
|---|---|---|
| PKW1 (PKE) | Parameter-Kennung (ID) | Bits 0–10: Parameter number (0–2047), Bit 11: SPM toggle bit, Bits 12–15: AK (request/response ID) |
| PKW2 (IND) | Index | Array sub-index (for array parameters) or 0 for scalar parameters |
| PKW3 (PWE) | Parameter value (low word) | Lower 16 bits of the 32-bit parameter value |
| PKW4 (PWE) | Parameter value (high word) | Upper 16 bits of the 32-bit parameter value |
Reading a parameter is performed in two telegram cycles:
- Read request (master → drive): Set AK = 1 (request parameter value, array word), IND = 0, PWE = parameter number. The master toggles the SPM bit (bit 11 of PKE) for each new request.
- Read response (drive → master): The drive replies with AK = 1 or 4 (response) and places the value in PWE. The AK bit 12 toggle indicates the drive has finished processing the request.
For 16-bit parameters, only PKW3 is used and PKW4 is zero. For 32-bit parameters (most r-parameters), both PKW3 and PKW4 carry the value with the LSW in PKW3 and MSW in PKW4 (little-endian word order on the wire). For 32-bit floating-point values, the IEEE-754 format is used.
Standard Siemens library blocks FC1 (PKW read) and FC2 (PKW write) for SIMATIC S7 handle the toggle-bit protocol. The blocks are included in the DRIVE ES library and in the free SIMATIC function-block downloads. An alternative acyclic DP-V1 path uses SFB 52 (RDREC) and SFB 53 (WRREC) to read/write parameters without consuming cyclic PKW words. The DP-V1 path is preferred for diagnostic tools.
The PZD words carry real-time process data. The first two PZD output words are always the Control Word 1 (STW1) and Speed Setpoint (NSOLL). The first two PZD input words are always the Status Word 1 (ZSW1) and Actual Speed (NIST). Additional PZD inputs are freely mappable to user-selected parameter numbers using P2051 (indices 0–7).
The PZD mapping works as follows:
- Each PZD input slot (indices 2–7 of P2051) is assigned a parameter number that the drive should transmit cyclically in that slot. Indices 0 and 1 are reserved for ZSW1 and NIST.
- The drive's free-connect telegram assembly reads those parameters each DP cycle and writes the scaled values to the PZD input area of the next outgoing telegram.
- Parameter P0922 (telegram type) must match the slot count configured in HW Config; otherwise, the drive signals F0070 (PROFIBUS telegram failure) and falls back to the last valid configuration.
Common monitoring parameters for the MM440 are listed below. The "PZD index" column indicates the slot in P2051 (index 0 = ZSW1, index 1 = NIST, indices 2–7 = free). The scaling is documented in the MICROMASTER 440 Parameter List.
| Parameter | Name | Unit | Data Type | Scaling (per LSB) | PZD Index |
|---|---|---|---|---|---|
| r0021 | Actual frequency | Hz | FLOAT | 0.01 Hz | 2 (or fixed at 1 for NIST) |
| r0025 | Output voltage | V | FLOAT | 1 V | 2–7 |
| r0027 | Output current | A | FLOAT | 0.01 A | 2–7 |
| r0031 | Torque | Nm | FLOAT | 0.1 Nm | 2–7 |
| r0032 | Active power | kW | FLOAT | 0.01 kW | 2–7 |
| r0039 | Energy consumption | kWh | FLOAT | 1 kWh | 2–7 |
When entering the parameter number into P2051, only the numeric index is used (e.g., 25 for r0025). The drive automatically places the scaled value in the PZD slot.
Hardware Configuration in STEP 7 (HW Config)
The following procedure configures the MM440 in STEP 7 V5.x as a PROFIBUS-DP slave with PPO4 (0 PKW + 6 PZD) for cyclic monitoring of voltage, current, and power. The same steps apply to PPO2 or PPO5 with adjusted slot counts.
- Open the SIMATIC Manager and load your project. Open the S7 station and double-click Hardware to launch HW Config.
- Install the MM4 GSD file (SIEM808D.GSD) if it is not already listed. Use Options → Install GSD File and restart HW Config if required.
- From the PROFIBUS-DP catalog, locate Drives → Siemens AG → SIMOVERT MASTERDRIVES / MICROMASTER / SIMODRIVE (the exact label depends on the GSD version). Drag the MICROMASTER 4 slave onto the PROFIBUS subnet.
- Assign a unique PROFIBUS address to the slave. The address must match P0918 in the drive.
- Open the slot configuration. Select the first free slot (slot 0 is the slave itself). Insert the PPO4 module from the catalog. The slot list should show 0 PKW, 6 PZD OUT, and 6 PZD IN (24 bytes output, 24 bytes input).
- Note the I and Q addresses assigned by HW Config. By default, the first MM4 is mapped to the next free input and output area. You can change the base address by clicking the slot and editing the addresses.
- Save and compile the HW Config (Station → Save and Compile). Download the configuration to the CPU. The CPU will go through a restart; the MM4 should establish DP communication (PROFIBUS LED green on the option module).
The same procedure in TIA Portal uses Devices & Networks → add MM4 from the device catalog → select PPO4 in the device view → compile and download.
Mapping MM440 Parameters to PZD Inputs
Once PPO4 is selected, the drive accepts up to 6 PZD input words. Word 1 is always ZSW1 (status word) and word 2 is always NIST (actual speed). Words 3–6 are configurable via P2051 indices 2–5 (P2051.0 = ZSW1, P2051.1 = NIST, P2051.2–5 = free slots).
To map voltage, current, and power, enter the following parameters at the MM440 BOP or via Starter/DRIVE ES:
| Parameter | Index | Value | Description |
|---|---|---|---|
| P2051.0 | 0 | 52 | Status Word 1 (ZSW1, fixed) |
| P2051.1 | 1 | 21 | Actual speed NIST (fixed) |
| P2051.2 | 2 | 27 | r0027 output current (A) |
| P2051.3 | 3 | 25 | r0025 output voltage (V) |
| P2051.4 | 4 | 32 | r0032 active power (kW) |
| P2051.5 | 5 | 31 | r0031 torque (Nm, optional) |
Save the settings with the BOP (long-press the P key) or use Starter's Copy RAM to ROM function. The mapping takes effect immediately and does not require a CPU restart, but the MM440 must be powered cycled to apply a new P0922 if the telegram length changes.
For a PPO2 configuration (with PKW), the drive only provides 2 PZD input words for free mapping (indices 2 and 3), so the application must either drop one signal or use the PKW channel to read additional parameters acyclically. For a PPO5 configuration, indices 2–7 are all available, allowing six monitoring values to be read cyclically in addition to ZSW1 and NIST.
Quick Commissioning Parameters for PROFIBUS Control
For the drive to accept commands and setpoints from the PLC, the following parameters must be set. The defaults are usually correct for a PROFIBUS-only system, but the values should be verified during commissioning:
| Parameter | Name | Value for PROFIBUS | Description |
|---|---|---|---|
| P0700 | Selection of command source | 6 | PROFIBUS / fieldbus command source |
| P1000 | Selection of frequency setpoint | 6 | PROFIBUS / fieldbus setpoint |
| P0918 | PROFIBUS address | 3 (example) | Must match HW Config and be unique on the bus |
| P0922 | PROFIBUS PZD telegram selection | 4 (PPO4) | Set explicitly or leave at 0 to use the master telegram |
| P1070 | Main setpoint | 2050.2 | Connector for the PZD speed setpoint (NSOLL) source |
For detailed commissioning steps, refer to the Siemens Industry Online Support FAQ MICROMASTER 4 (MM4): Setting up an MM4 with a Profibus module.
Function Block FC14 and Reading Process Data
Siemens provides a sample FC14 (and supporting DB) in the DRIVE ES library for reading/writing MM4 process data over PROFIBUS-DP. The block encapsulates the cyclic data exchange and returns the actual speed, current, and torque as structured outputs. The block is called once per DP cycle (typically in OB1) with the following interface:
CALL "MM4_CTRL"
LADDR := W#16#100 // Logical base address from HW Config
STW := MW100 // Control word output (STW1)
NSOLL := MD104 // Speed setpoint (REAL, rpm or %)
ZSW := MW200 // Status word input (ZSW1)
NIST := MD204 // Actual speed (REAL)
PZD2_IN := MW208 // First free PZD input (per P2051.2)
PZD3_IN := MW210 // Second free PZD input (per P2051.3)
PZD4_IN := MW212 // Third free PZD input (per P2051.4)
PZD5_IN := MW214 // Fourth free PZD input (per P2051.5)
FAULT := M120.0 // Drive fault flag
WARN := M120.1 // Drive warning flag
READY := M120.2 // Drive ready
ACT_CURR := MD300 // Output current (scaled, A)
ACT_VOLT := MD304 // Output voltage (scaled, V)
ACT_POWR := MD308 // Active power (scaled, kW)
The exact block interface varies by DRIVE ES version. The free PZD inputs must match the P2051 mapping in the drive. If the application uses PPO2, only PZD2_IN and PZD3_IN are populated; the remaining inputs return zero.
For a more compact implementation, the block can be replaced by direct PQW/PIW reads inside OB1, with the PZD words scaled manually using the normalization described in the parameter list. The following snippet shows the typical scaling in STEP 7 STL for a PPO4 slave at base input address 256:
// Read PZD inputs (example addresses for PPO4 at base IB 256)
L IW 262 // PZD2 input (r0027 output current, scaled by 0.01 A)
ITD // Convert to DINT
DTR // Convert to REAL
L 1.000000e+002 // Divisor
/R // Result in A: e.g., 45 → 0.45 A
T MD300 // Store in instance DB
L IW 264 // PZD3 input (r0025 output voltage, V)
ITD
DTR
// No scaling required; raw value = V
T MD304
L IW 266 // PZD4 input (r0032 active power, scaled by 0.01 kW)
ITD
DTR
L 1.000000e+002
/R // Result in kW
T MD308
For trending or logging, the scaled values should be latched at a defined sampling rate (e.g., in OB35 with a 100 ms period) and moved to a separate DB to avoid mixing real-time and historical data.
Verification and Diagnostics
After commissioning, verify the cyclic data exchange with the following steps:
- Open HW Config and select the MM4 slave. The DP Slave Diagnostics function shows the slave state (RUN / FAIL / CLEAR). A green PROFIBUS LED on the option module confirms bus health.
- In the S7 CPU, open a variable table (VAT) and add the PZD input addresses. The Status Word (ZSW1) should show bit 0 = 1 (ready to switch on) and bit 10 = 1 (f/n reached) within a few seconds of a start command.
- Trigger a start command from the PLC (STW1 = 047E hex for OFF1, then 047F hex for ON). Monitor ZSW1 in the VAT. The actual speed (NIST) should ramp to the setpoint within the configured ramp time.
- Read r0027, r0025, and r0032 via PKW (PPO1/PPO2) or read the PZD inputs (PPO2/PPO4/PPO5) and verify the values match the BOP display.
If the values are stuck at zero or the ZSW1 fault bit is set, check the following:
- Drive in fault state: r0947[0] holds the current fault code. Common MM4 faults include F0001 (overcurrent), F0002 (overvoltage), F0003 (undervoltage), F0011 (motor overcurrent), F0035 (auto-restart failed), F0041 (motor data identification failure), and F0070 (PROFIBUS telegram failure).
- Mismatch between P0922 and HW Config: drive signals F0070 and rejects the cyclic data.
- PROFIBUS address conflict: two slaves with the same P0918 will cause bus errors.
Troubleshooting Matrix
| Symptom | Probable Cause | Action |
|---|---|---|
| CPU does not enter RUN after HW Config download | Telegram length mismatch (P0922 ≠ HW Config) | Set P0922 to 0 to follow master telegram, or set it explicitly to match the PPO type |
| PROFIBUS LED red on option module | Bus termination, address conflict, or wiring | Check P0918, verify terminating resistors at both ends, inspect connector pinout (A1/B1 to A1/B1) |
| ZSW1 always 0x0000 | Drive in fault or PPO not selected | Reset drive faults; verify P0922 = 4 for PPO4 |
| r0027 / r0025 / r0032 read 0 even when running | P2051 mapping not applied | Set P2051 indices to the parameter numbers and save parameters with long-press P on the BOP |
| F0070 fault after telegram change | P0922 changed but PLC not restarted | Cycle drive power or trigger a CPU restart to re-establish DP |
| STW1 written but no response | P0700 ≠ 6 or command source not PROFIBUS | Set P0700 = 6 (command source) and P1000 = 6 (setpoint source) |
| PKW read returns AK=7 (error) | Parameter number out of range, parameter read-only, or wrong array index | Verify the parameter exists and is read-accessible; check the array index in IND |
| Negative current value | Motor running in reverse direction | Apply absolute value or interpret sign based on ZSW1 bit 14 (motor rotation direction) |
| Power reading slightly negative at no-load | Drive consumes reactive power at idle | Use r0034 (active power) for signed bidirectional measurement, or apply a deadband |
Additional Tools and Library Blocks
For larger fleets of MM4 drives, the DRIVE ES SIMATIC package provides a parameter editor and a set of pre-built function blocks (FB10, FC14, FC15, etc.) that handle the PKW/PZD handshake automatically. The blocks are also available as a free download from the Siemens Industry Online Support portal for some drive families. The free versions typically include the basic PKW/PZD wrappers but exclude the diagnostic and commissioning wizards. If a smaller PLC (e.g., S7-314C-2DP) is used with multiple drives, the library blocks reduce program development time and ensure consistent parameter access.
For modern SIMATIC systems, the TIA Portal supports the MM4 via the same GSD file used in STEP 7. The slot configuration and PZD addressing work the same way; only the editor UI differs. S7-1200 and S7-1500 CPUs can communicate with the MM4 over PROFIBUS using the CM 1243-5 (master) or CM 1242-5 (slave) communication modules, with the SFB 126 / SFB 127 (DP-V1) blocks handling acyclic read/write of any drive parameter.
FAQ
What PPO type should I select to read voltage, current, and power on an MM4?
Use PPO2 if you also need acyclic parameter access via PKW, PPO4 for the best balance of speed and bandwidth (6 PZD inputs = 4 free monitoring values), or PPO5 if you need all eight free monitoring slots. For voltage, current, and power specifically, PPO4 is sufficient and is the most common choice.
How do I map r0025, r0027, and r0032 to the PZD inputs?
Set P2051.2 = 27, P2051.3 = 25, and P2051.4 = 32 on the MM440 BOP or via Starter. The drive will then place the scaled values of r0027, r0025, and r0032 in PZD input words 3, 4, and 5 of each PROFIBUS telegram. Save the parameters with a long press of the P key on the BOP.
Can I change the PPO type while the PLC is running?
No. Changing P0922 or the HW Config telegram alters the I/O address space and the cyclic data length. The CPU will stop with a peripheral address error until the new configuration is reloaded. Always download a new HW Config and cycle the drive power when switching PPO types.
What scaling factor is used for r0027 and r0032 on the MM4?
r0027 (output current) is normalized to 0.01 A per LSB and r0032 (active power) is normalized to 0.01 kW per LSB. r0025 (output voltage) is in raw volts. Divide the raw INT value by 100 to obtain the engineering value for current and power; the value can be negative when the motor is regenerating.
Where do I find the complete list of MM4 parameters?
The complete parameter list, including data types, scaling, and access levels, is in the MICROMASTER 440 Parameter List (PDF, valid for the Operating Instructions / Reference Manual of the MM4). The Operating Instructions and Reference Manual are available on the Siemens Industry Online Support portal under the MM4 product page.