SINAMICS S120 Reference Values: Scaling Active Power (r0032) Over PROFIBUS
SINAMICS S120 drives report internal quantities such as active power (r0032), output current (r0027), and output voltage (r0025) as normalized, percentage-based values. The normalization reference is defined by the four reference parameters p2000, p2001, p2002, and the calculated r2004. When these values are transmitted over PROFIBUS (or PROFINET) using the standard Siemens telegram (e.g., telegram 370, free telegram 999, or a customized standard telegram), the controller receives a raw 16-bit word that must be re-scaled to engineering units. This reference consolidates the official SINAMICS S120 parameter definitions, the raw value range, and the PLC-side rescaling formula required to recover absolute kW, A, and V values for an Active Line Module (ALM).
The official background is described in the SINAMICS S120 Drive Functions manual (function block diagrams, BICO sources, normalization rules). Parameter-level details (data type, units, default) are in the SINAMICS S120/S150 List Manual for the firmware version installed on the Control Unit (CU310-2, CU320-2, or CU320-3).
1. Overview: What the Reference Values Do
The S120 reference variables are the denominator of the normalized percentage system used throughout the drive's closed-loop and communication layer. They are independent of the actual load point and define the value that corresponds to 100% on the bus. Because the PROFIdrive process data is always transmitted in the normalized 16-bit range 0x0000 ... 0x7FFF (positive) and 0x8000 ... 0xFFFF (negative, two's complement), the controller cannot distinguish between "100% of rated current" and "100% of rated power" without applying the correct reference on its side.
The four reference variables are:
| Parameter | Name | Unit | Default Source / Meaning |
|---|---|---|---|
| p2000 | Reference frequency | Hz | Default = p0211 of the motor / mains (e.g., 50 Hz) |
| p2001 | Reference voltage | V RMS (line-to-line) | Default = rated terminal voltage of the line module (e.g., 400 V, 500 V, 690 V) |
| p2002 | Reference current | A RMS | Default = r0207[0] (rated unit current) |
| r2004 | Reference power (calculated) | kW | Calculated by the drive: r2004 = p2001 × p2002 × √3 / 1000 for a three-phase line module |
r0207, the rated operating data of the power unit, and the I²t / thermal model.2. Default Values and User-Defined Override
On first commissioning, SINAMICS pre-loads p2000, p2001, and p2002 with the rated nameplate quantities of the connected power unit. The values are write-protected only at the OEM / service level; in normal operation the user can change them via the operator panel, STARTER, or Startdrive. The new value becomes the new 100% point for every bus signal that uses that reference variable.
Typical reasons to change the defaults:
-
Round engineering value: Set
p2002to a "round" number (e.g., 500 A) so 50% on the HMI corresponds to 250 A and the operator can read the value at a glance. - Coordinated scaling across a parallel line-up: When several ALMs are operated in parallel (Basic Line Module paralleling, Smart Line Module paralleling, Active Line Module paralleling), all modules should report the same reference so the controller's scaling factor is identical for every slave.
-
Drives operating above rated: When an overload condition is allowed by the application, setting
p2002to the maximum continuous current (e.g., 540 A) instead of the rated 500 A keeps the percentage on the bus bounded to ±100% for normal operation and reserves the upper headroom for transient overloads. -
Customer-specific process unit: Some applications display the active power in mW or in % of an internal plant reference, in which case
r2004is re-written to the plant reference unit.
After any change of p2000, p2001, or p2002, the calculated r2004 is updated automatically by the drive firmware. r2004 is read-only; do not attempt to write to it.
3. Raw Value Format on the Bus (PROFIdrive Normalization)
Each PROFIdrive process data word is a 16-bit signed integer. The mapping to percentage is fixed by the PROFIdrive profile and is identical for SINAMICS S110, S120, S150, G120, and the SIMOTION / SIMATIC side:
| Percentage | Hex | Decimal (signed INT16) |
|---|---|---|
| +200% (overrange limit) | 0x7FFF | +32767 |
| +199.99% | 0x7FFF | +32767 |
| +100% | 0x4000 | +16384 |
| 0% | 0x0000 | 0 |
| -100% | 0xC000 | -16384 |
| -199.99% (underrange limit) | 0x8001 | -32767 |
| -200% | 0x8000 | -32768 |
For an Active Line Module, the active power r0032 is a signed quantity:
- Positive: the line module is drawing active power from the line (rectifier / motoring direction at the line side).
- Negative: the line module is feeding active power back to the line (regenerative mode).
When r0032 is mapped into a PZD word via telegram 370, telegram 999 (free), or a customized standard telegram, the value 0x4000 (= 16384 dec) corresponds exactly to the reference power r2004.
4. Rescaling Formula
The conversion from raw bus value to engineering units is identical for every normalized S120 quantity. The general form is:
abs_value = (raw_value / 16384) × reference_value
Applied to the three most common S120 quantities:
P[kW] = (raw_word / 16384) × r2004U[V] = (raw_word / 16384) × p2001I[A] = (raw_word / 16384) × p2002
For an Active Line Module, r2004 is calculated as the three-phase reference apparent power:
r2004[kW] = p2001[V_LL] × p2002[A] × √3 / 1000
For example, a 500 V / 500 A class ALM yields:
r2004 = 500 × 500 × 1.7321 / 1000 = 433.01 kW
The √3 factor reflects the conversion between line-to-line voltage and the equivalent three-phase apparent power, which is the PROFIdrive convention for the reference power of a line-side device. The value is independent of the actual power factor; it is the magnitude of the reference for the active-power signal.
5. Worked Example (500 V / 500 A ALM, telegram 370)
Assume an Active Line Module 6SL3330-1TE41-4AA3 (or comparable 500 V / 500 A class) with the following defaults:
-
p2001= 500 V (line-to-line) -
p2002= 500 A (RMS) -
r2004= 500 × 500 × √3 / 1000 = 433.01 kW
If the controller reads r0032 from PZD3 of telegram 370 and obtains 0x014B = 331 dec, the absolute active power is:
P[kW] = (331 / 16384) × 433.01
= 0.02020 × 433.01
= 8.74 kW
The value is positive, meaning the line is supplying 8.74 kW to the DC link at this instant. If the drive is later regenerating and the same telegram returns 0xFC00 (= -1024 dec), the scaled value is:
P[kW] = (-1024 / 16384) × 433.01
= -0.0625 × 433.01
= -27.06 kW
— i.e., 27.06 kW flowing from the DC link back into the line.
WORD_TO_INT or feed the word into the standard S7 PROFIdrive block as INT. SIMATIC S7-300/400 may need ITD after WAND with 0x7FFF for safety.6. Telegram Selection and BICO Wiring for r0032
There is no fixed "standard" Siemens telegram that exposes r0032 directly on an Active Line Module. The two practical options are:
-
Telegram 370 (line module, send-only to PLC): Provides actual values
r0025(voltage),r0027(current), andr0032(active power) in the first three PZD words. Telegram 370 is the most common choice for line-side monitoring on a separate PROFIBUS slave. -
Free telegram (telegram 999) or customized standard telegram: Use BICO to insert
r0032into any PZD slot viap2051[x]on PROFIBUS, orp2071[x]on PROFINET. The signal source for the active power actual value is connectorr0032[0](orr0032[1]for the smoothed value, depending on firmware). The slot number on the PLC side must match the PZD index configured in the drive.
For BICO interconnection rules, connector / signal numbers, and the meaning of p2051 / p2071, refer to the SINAMICS S120 Drive Functions manual, section "Communication" and "Free function blocks".
7. Configuration Procedure in STARTER / Startdrive
- Open the project offline and go online with the SINAMICS S120 Control Unit (CU320-2, CU320-3, or CU310-2 depending on the hardware).
- Navigate to Drive Unit → Line Module → Parameters and read the current values of
p2000,p2001,p2002, andr2004from the parameter list. - Cross-check the defaults against
r0207(rated unit current) andp0211(rated voltage / frequency of the power unit) before overwriting them. - Enter the desired reference values. Confirm with OK; the drive accepts them on the next ramp-up or after Copy RAM → ROM.
r2004updates automatically. - Open Communication → Telegram Configuration. For a free configuration, set telegram 999, add a new PZD word, and assign
r0032[0]as the signal source viap2051[x](PROFIBUS) orp2071[x](PROFINET). - Load the configuration to the drive and verify on the online PZD monitor that the expected word appears in the selected slot, with the expected sign when the line is energized and unloaded (should be near zero, with only the magnetizing / charging component visible).
- On the PLC side, configure the matching HW identifier and PZD length in the device configuration. The slot order must be byte-for-byte identical to the drive's PZD list; a slot offset will be silently interpreted as a different quantity.
8. Verification in the PLC
Before trusting the scaled value, perform the following checks on the PLC side:
-
Zero check: Force the drive into a defined state (e.g., ready, no run enable, no line contactor closed) and read the raw word for
r0032. It must be near 0 (±a few LSBs from measurement noise on r0025 / r0027). - Energized check: Enable the precharge and close the line contactor. The active power should jump to the magnetizing / capacitor-charging value. Cross-check this against the line-side power transducer or the HMI display of the same S120.
-
Load step check: Apply a known load on the DC link (e.g., a Motor Module running at a defined torque) and confirm the absolute kW reading matches the bus-scaled value × r2004 to within ±1%. The difference is mostly measurement noise on
r0025andr0027; for very high accuracy, use the smoothed valuer0032[1]instead ofr0032[0]. - Sign check: For regenerative operation, observe the sign of the raw word. A 0xC000 ... 0xFFFF value should scale to a negative kW. If the sign is missing, the word is being read as unsigned.
-
Reference consistency: If multiple S120 slaves are read, confirm that every slave uses the same
p2001/p2002values, otherwise the same scaling factor at the PLC will produce inconsistent absolute readings.
9. PLC-Side Scaling Code
The rescaling logic can be written once in the PLC and reused for every S120 word that uses the PROFIdrive normalized format. A compact S7-SCL example:
// S7-SCL: PROFIdrive PZD word to engineering unit
// Inputs:
// i_RawWord : INT - raw 16-bit PZD value from the drive
// r_Ref : REAL - reference value (r2004, p2001, p2002 ...)
// Output:
// r_Eng : REAL - engineering value (kW, V, A)
r_Eng := INT_TO_REAL(i_RawWord) / 16384.0 * r_Ref;
The same formula works for any quantity that uses the PROFIdrive normalization, regardless of the telegram in use. For a structured-block version that also handles the status word, fault word, and warning word, use the standard Siemens blocks SINA_SPEED (SINAMICS ↔ S7) or the legacy DSUB family; both internally apply the same formula with the reference value passed in as an FB input.
10. Parameter Reference
| Parameter | Access | Type | Description |
|---|---|---|---|
| p2000 | R/W | Float32 | Reference frequency, Hz. Default = rated frequency of the power unit / motor. |
| p2001 | R/W | Float32 | Reference voltage, V RMS (line-to-line). Default = rated terminal voltage of the power unit. |
| p2002 | R/W | Float32 | Reference current, A RMS. Default = r0207 (rated unit current). |
| r2004 | RO | Float32 | Reference power, kW. Calculated as p2001 × p2002 × √3 / 1000 for a three-phase line module. |
| r0032 | RO | Float32 | Active power actual value, kW. Signed: positive = line → DC link, negative = DC link → line. |
| r0025 | RO | Float32 | Output voltage actual value, V RMS (line-to-line). |
| r0027 | RO | Float32 | Output current actual value, A RMS. |
| r0207 | RO | Float32 | Rated unit current, A. Used as the default of p2002. |
| p0211 | R/W | Float32 | Rated frequency / rated voltage of the motor / power unit. Used as the default of p2000 / p2001. |
| p2051 | R/W | Word array | Signal sources for PROFIBUS send PZDs (free telegram 999). |
| p2071 | R/W | Word array | Signal sources for PROFINET send PZDs. |
11. Edge Cases and Field-Proven Caveats
11.1 Parallel Active Line Modules
When two or more ALMs are operated in parallel to share the DC-link current, the drive firmware does not automatically broadcast a single combined r0032. The standard practice is to use the master line module's r0032 for the total, then multiply by the number of modules, or to enable a user-defined calculation (Free Function Blocks) that adds the individual r0032 values and exposes the sum on a new connector. The p2001 / p2002 values must be identical for every module in the parallel group, otherwise the scaled values on the PLC side will be inconsistent.
11.2 Mains Voltage Below the Default p2001
If a 400 V module is operated on a 380 V supply and p2001 is left at the 400 V default, r2004 will report a reference power that is too high. The scaled value on the PLC side will read ~5% low. Either adjust p2001 to the actual mains voltage (380 V), or apply a correction factor on the PLC side. Always set p2001 to the actual nominal mains voltage, not the module's maximum rated voltage.
11.3 cos(φ) ≠ 1 on the Line Side
Active Line Modules regulate the line-side power factor to a value set by p3410 (line-side power-factor setpoint) or by the automatic reactive-power control. The active power r0032 follows the real component, while the apparent power and the reference r2004 use the line-to-line voltage × line current. The two are related by the power factor; the bus signal r0032 is the active power and is scaled against r2004 as documented, not against the apparent power.
11.4 PROFINET vs. PROFIBUS Byte Order
PROFIdrive specifies big-endian PZD word order on the wire. Most S7 PROFIdrive blocks handle this automatically. If a third-party gateway or a custom protocol handler is used, swap the high and low bytes of every PZD word before applying the scaling formula. The IEEE floating-point representation inside the drive's parameter channel is also big-endian and is similarly affected.
11.5 Firmware Differences
The default values of p2001 and p2002 can change between firmware versions, especially when a hardware revision adds a new power-unit type. After a firmware upgrade, read the current values of p2001 / p2002 / r2004 from the drive, then check the PLC-side scaling factor against the new r2004. Do not assume the old reference value is still in effect.
11.6 Smoothing vs. Instantaneous Value
Some firmware versions expose r0032[0] (instantaneous, sampled at the current control cycle) and r0032[1] (smoothed, time constant set in p0045). The smoothed value is preferred for HMI display and SCADA, while the instantaneous value is preferred for fast protection. Both use the same r2004 reference and the same rescaling formula.
12. Troubleshooting Matrix
| Symptom | Probable Cause | Remedy |
|---|---|---|
| PLC reads 0 kW although the line contactor is closed and the DC link is charged | Wrong PZD slot assigned; r0032 is in slot 3 but the controller reads slot 1 |
Verify the BICO source in p2051 / p2071 and align the HW configuration in TIA Portal / STEP 7 |
| Reading matches r2004 only at exactly 50% load | PLC uses unsigned WORD instead of signed INT16 | Convert the input word with WORD_TO_INT before applying the scaling formula |
| Value is twice the expected magnitude |
p2002 was halved by mistake (e.g., 250 A for a 500 A module) |
Reset p2002 to r0207 or to the desired engineering reference; perform a power-on reset |
| Reading never exceeds a few hundred watts although load is much higher | Telegram scaled to a different quantity, e.g. r0027 (current) interpreted as r0032 (power) | Verify the signal source on the drive side via trace / function generator; check the BICO source in p2051 |
| Value oscillates with drive utilization, but is consistently too low |
p2001 and p2002 are at defaults, but the actual mains voltage is below p2001 (e.g., 380 V supply on a 400 V default) |
Adapt p2001 to the actual nominal mains voltage or re-scale on the PLC using the corrected r2004 |
| Negative kW not visible on the HMI | Controller only monitors the absolute value | Display the signed raw word and apply the signed scaling formula |
| Reading is correct at the drive but wrong at the controller | Endianness mismatch (PROFIdrive is big-endian PZD; some gateways swap bytes) | Swap bytes manually or use the S7 standard PROFIdrive block, which handles this automatically |
| Scaling factor drifts over the life of the installation |
p2001 or p2002 was changed during a service intervention but the PLC was not re-parameterized |
Lock p2001 / p2002 at the OEM / service level (p0927 / p7760) and document the reference values in the project |
| Drive reports F08501 (PROFIBUS fault) when telegram 370 is added | Configured telegram length on the master (PLC) does not match the drive's actual PZD count | Set both sides to telegram 370 with the same I/O length; verify the slot length in the device configuration |
13. Safety and Configuration Considerations
Changing p2001 or p2002 does not affect the drive's closed-loop control or its safety functions; it only affects the scaling of communication data. The drive remains within its hardware current and voltage limits regardless of the reference value chosen. However, the following should be observed:
- Set
p2002to the rated or maximum continuous value of the application, not to a momentary peak. A peak value used as a reference causes 100% on the bus to correspond to an abnormal operating point and may trip the controller's scaling logic. - Document the reference values in the project documentation and the PLC tag database. A future service engineer who does not know the new reference value will apply the default scaling and read a nonsensical value.
- Use the same reference value for every ALM in a parallel line-up. Mismatched references lead to the same bus value representing different physical kW on different modules.
- Do not use the reference variables for closed-loop control inside the PLC. The reference value is for display and reporting; the drive's actual current and voltage limits are defined by
r0207,p0640, and the I²t model.
14. Related Quantities on the Same Telegram
For monitoring purposes, r0025 (voltage) and r0027 (current) are typically placed next to r0032 in the same telegram. With the same rescaling formula and the appropriate reference variable, the same PLC code can handle all three:
// S7-SCL: scale a complete ALM status word block
// Inputs:
// i_PZD2 : INT - raw value for r0025 (voltage)
// i_PZD3 : INT - raw value for r0027 (current)
// i_PZD4 : INT - raw value for r0032 (active power)
// r_RefU : REAL - p2001
// r_RefI : REAL - p2002
// r_RefP : REAL - r2004
// Outputs:
// r_U, r_I, r_P : REAL - engineering values
r_U := INT_TO_REAL(i_PZD2) / 16384.0 * r_RefU;
r_I := INT_TO_REAL(i_PZD3) / 16384.0 * r_RefI;
r_P := INT_TO_REAL(i_PZD4) / 16384.0 * r_RefP;
Apply the same approach for reactive power, line frequency, DC-link voltage, and any other normalized quantity reported by the drive. The reference variable to use is the one documented in the parameter list of the firmware version in use.
15. Notes on Direction of Power Flow
Active Line Modules can be operated in two directions depending on the parameterization of the control word, the DC-link state, and the line voltage:
- Rectifier (mains → DC link): r0032 > 0. The drive draws active power from the line; the bus returns a positive raw word in the range 0x0001 ... 0x7FFF.
- Regenerative (DC link → mains): r0032 < 0. The drive feeds energy back to the line; the bus returns a negative raw word in the range 0x8000 ... 0xFFFF.
Some applications (e.g., brake tests, downward-moving loads, UPS discharge) only ever see one sign. The scaling formula still applies, but the sign can be dropped in the PLC if only the magnitude is needed.
FAQ
Is the reference value the maximum current the ALM can deliver?
No. p2002 (reference current) is a scaling reference, not a limit. The continuous current limit is defined by r0207 and the I²t / thermal model. p2002 is simply the value that corresponds to 100% on the bus.
Why does my controller show the wrong sign for active power?
Either the raw PZD word is being read as unsigned (WORD) instead of signed (INT), or the drive is genuinely in a different power-flow direction than expected. Active power r0032 is signed: positive = mains → DC link, negative = DC link → mains (regenerative).
What is r2004 in a 500 V / 500 A Active Line Module?
With the factory defaults p2001 = 500 V and p2002 = 500 A, r2004 = p2001 × p2002 × √3 / 1000 = 433.01 kW. The drive recalculates r2004 automatically whenever p2001 or p2002 is changed.
Can I change p2002 to a different value than the rated current?
Yes, p2002 is freely writable. Many users align p2002 with a "round" engineering number or with the maximum continuous current of the application, but the value should remain meaningful and should not be set to a momentary measured quantity.
Which telegram should I use to read r0032 from an Active Line Module?
Use telegram 370 for a quick readout of the standard line-module values (r0025, r0027, r0032), or configure telegram 999 (free) with p2051 on PROFIBUS (or p2071 on PROFINET) to insert r0032 into any PZD slot. Telegram 370 and the BICO rules are documented in the SINAMICS S120 List Manual and the SINAMICS S120 Drive Functions manual.