Siemens MM420 Profibus Setpoint Halved: P2000 Normalization Fix

David Krause22 min read
SiemensTroubleshootingVFD / Drives
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

Problem Statement: MM420 BOP Shows Half the Profibus Setpoint

A common field symptom on the Siemens MICROMASTER 420 (MM420) drive is that the frequency setpoint commanded from a SIMATIC S7 PLC over PROFIBUS-DP appears at the drive as exactly half (or, in other configurations, double) the value the application expects. A typical user observation: the FC14 send block from the Siemens example library is configured with drive_f_setpoint = 50.0, the block reports the actual frequency output as 50.0 Hz, but the Basic Operator Panel (BOP) on the MM420 displays 25.0 Hz and the connected motor runs at half the expected speed. The classic incident title captures the symptom as "frequency sent is double than frequency received" - the same 2:1 ratio, viewed from the controller side.

This symptom is a scaling and normalization issue inside the PROFIdrive profile layer, not a hardware fault. The drive is not defective, the bus is healthy, and the FC14 block is operating according to its internal math - the discrepancy is caused by a mismatch between the reference frequency declared in drive parameter P2000 and the value the application assumes when constructing the setpoint word. Resolving the issue requires reconciling the application's assumed reference frequency with the drive's P2000, confirming the maximum frequency limit in P1082, and verifying that the FC14 block reads P2000 from the drive rather than a local constant.

Symptom summary: The PLC reports the correct setpoint on its own side, but the BOP and the motor run at half (or double) the commanded value. No faults or alarms are raised. The drive accepts the telegram without diagnostic interruption because the normalized value is mathematically valid - it is only scaled to the wrong reference base.

PROFIdrive Normalization Fundamentals

The MM420, MM430, MM440, and SINAMICS G110/G120 inverters implement the PROFIdrive profile V4.1 for cyclic PROFIBUS-DP communication. Under this profile, the main speed setpoint occupies the first process data word (PZD1) of the standard telegram, and it is transmitted as a 16-bit normalized integer. The normalization convention is defined by PROFIdrive and is identical across all compliant drives:

Normalized value (hex) Decimal Meaning
0000H 0 0% of reference frequency (zero speed)
2000H 8192 50% of reference frequency
4000H 16384 100% of reference frequency (P2000)
7FFFH 32767 Approx. 200% (overrange; clamped by P1082)
8000H -32768 -100% (reverse; sign-extension in NSOLL)
C000H -16384 -100% (signed representation)

The reference frequency is the absolute Hz value the drive interprets as 100% setpoint. It is stored in drive parameter P2000[0]. The mathematical relationship between the PZD1 setpoint word (NSOLL) and the commanded frequency is:

f_commanded_Hz = (PZD1_word / 16384) × P2000[0]

This is the only scaling function the drive applies to PZD1. There is no second multiplier hidden in the firmware. If the controller sends PZD1 = 4000H and the drive produces 25 Hz when 50 Hz was expected, the only possible explanation within the PROFIdrive profile is that P2000[0] in the drive is set to 50.00 Hz and the application is misinterpreting the setpoint as already being in Hz. Conversely, if PZD1 = 4000H produces 50 Hz when 25 Hz was expected, the application is sending a pre-scaled value twice the intended one relative to P2000 = 50 Hz.

The "half" symptom almost always reduces to one of two root causes:

  1. P2000 is set higher than the application assumes (for example, P2000 = 100 Hz, but the application thinks P2000 = 50 Hz, so a 50% setpoint is interpreted as 50 Hz intended while the wire carries 50%, producing 50 Hz - but if the user re-enters the input as a percentage of the wrong P2000, the result is half).
  2. FC14 or equivalent block uses a hardcoded reference frequency constant that does not match the drive's actual P2000.

Parameter Map: P2000, P1082, P2050, P2051, P0971

The following drive-side parameters govern the setpoint scaling chain on the MM420. They are accessible from the BOP, AOP, STARTER commissioning tool, or any PROFIBUS-DP parameter access service (PKW channel). Default values shown are the factory defaults for MM420 firmware V1.0 - V3.2.

Parameter Name Default (MM420) Role in setpoint scaling
P2000[0] Reference frequency, motor 1 50.00 Hz Defines the Hz value that corresponds to 100% normalized setpoint (4000H). Single scaling anchor for PZD1.
P2001[0] Reference voltage, motor 1 1000 V Analog reference voltage for 100% - not used for PROFIBUS frequency scaling.
P2002[0] Reference current, motor 1 0.10 A Analog reference current for 100% - not used for PROFIBUS frequency scaling.
P1082[0] Maximum frequency, motor 1 50.00 Hz Hard upper clamp on output frequency. Setpoint commands producing more than P1082 are clamped.
P1080[0] Minimum frequency, motor 1 0.00 Hz Lower clamp. Positive commands below P1080 are clamped to P1080.
P1000[0] Selection of frequency setpoint source 2 (analog) Default 2 (analog input 1). For PROFIBUS control, set to 6 (PROFIBUS) or 7 (PROFIBUS + analog sum).
P2050[0] CI: PZD receive word, BICO input for NSOLL 52 Selects the BICO source of the speed setpoint. Default connector r2050[0] is fed by PZD1 of the PROFIBUS telegram.
P2051[0] CI: PZD receive word mapping index 0 (PZD1) Index for PZD-to-connector mapping. Typically 0 for NSOLL on PZD1.
P0971 Save parameters / factory reset 0 Setting to 1 saves all RAM parameters to EEPROM and restarts the drive. Required to make P2000 changes survive a power cycle.
P0918 PROFIBUS slave address 3 Station address. Verify with PLC hardware configuration.
P1120 / P1121 Ramp-up / ramp-down time 10.00 s / 10.00 s Ramp time applied between r0020 (setpoint) and r0021 (output). Affects transient appearance, not steady-state scaling.
P1091 - P1094 Skip frequencies 0.00 Hz Skip bands the drive avoids. Can produce apparent setpoint loss.
r0020 Frequency setpoint (ramp input) read-only Setpoint after ramp generator input. Should equal P2000 × (PZD1/16384) in steady state.
r0021 Actual frequency (output, smoothed) read-only Filtered, smoothed output frequency. Briefly differs from r0020 during ramps.
r0024 Output frequency (instantaneous) read-only Instantaneous inverter output. Default BOP display parameter.
r0060 CO/BO: actual speed RPM read-only Speed in RPM derived from r0024 using motor nameplate data (P0311 for poles).
Critical interaction between P2000 and P1082: If the application needs to command 60 Hz but the user changes P2000 to 60 Hz without also raising P1082 (still at the factory default 50 Hz), the drive clamps every setpoint above 50 Hz regardless of the PROFIBUS command. The BOP will show the clamped value, and the user will erroneously conclude that PROFIBUS scaling is broken. Always set P1082 >= P2000, and ideally P1082 to the absolute maximum the motor and driven load can accept.

Root Cause Analysis: Why the MM420 Shows Half the Setpoint

Walking through the user's scenario, the most likely sequence of events is:

  1. The drive was commissioned with default P2000 = 50.00 Hz and P1082 = 50.00 Hz.
  2. The user discovered the application needed to command values above 50 Hz, so they changed P2000 = 100.00 Hz expecting this to "raise" the scaling range.
  3. The FC14 block from the Siemens example (FC14 for MM4/G120 Profibus control - support entry 22078757) was configured with drive_f_setpoint = 50.0 Hz as a REAL input.
  4. FC14 internally computes the normalized value as NSOLL = (drive_f_setpoint / P2000) × 16384. With P2000 = 100, this yields NSOLL = (50/100) × 16384 = 8192 = 2000H.
  5. The drive receives PZD1 = 2000H, applies the PROFIdrive scaling with its own P2000 = 100 Hz, and computes f = (8192/16384) × 100 = 50 Hz. In theory the BOP should now show 50 Hz.

When the BOP instead shows 25 Hz, one of the following must be true:

  • P2000 was not actually written. The user changed the parameter on the BOP but did not press P/OK to commit it, or P0971 was not set to 1, or the change reverted after a power cycle. The drive is still running with P2000 = 50 Hz.
  • FC14 is using a hardcoded local variable for P2000 rather than reading it from the drive via PKW. If the local constant is 50.0 and the drive's P2000 is 100.0, the block sends 4000H, and the drive produces 100 Hz instead of 50 Hz - the opposite of the half symptom but a sibling cause.
  • The BOP is displaying r0024 (output frequency) during a ramp and the ramp parameters (P1120 ramp-up, P1121 ramp-down) are very long. During a slow ramp, the instantaneous output can be far below the setpoint. The user should compare r0020 (setpoint) with r0024 (output) to distinguish setpoint scaling from ramp behavior.
  • The setpoint is being routed to the wrong connector by parameter P2050, so the PZD1 word feeds a parameter other than the speed setpoint. The drive's main setpoint is still being commanded from a different source (for example, the fixed frequency or the analog input).
  • P1000 is still set to 2 (analog input) and the PROFIBUS setpoint is being ignored entirely. The BOP shows whatever the analog input is delivering - in many cases a fixed bias, a 0-10 V signal from a sensor at half-scale, or even the previous frequency hold.
  • The motor nameplate data is mismatched (wrong number of poles, wrong nominal frequency) and r0024 reflects a different physical reality than the setpoint. This is rare and usually causes wrong RPM rather than wrong Hz.
Field experience note: In the majority of MM420 "half frequency" cases on PROFIBUS, the resolution is one of two parameter actions: (a) saving P2000 to EEPROM with P0971 = 1, or (b) ensuring P2000 in the drive matches the P2000 value visible to the PLC block. Both fixes take under 5 minutes and require no hardware changes.

Step-by-Step Resolution Procedure

Use the following procedure to resolve the "MM420 PROFIBUS setpoint halved" symptom. The procedure assumes a SIMATIC S7-300/S7-400 PLC using Step 7 V5.x and the standard FC14 from the Siemens example library at Siemens support entry 22078757. For TIA Portal, the same parameter logic applies; substitute the equivalent DP-SEND/DP-RECV blocks from the TIA Portal library. The MM420 Operating Instructions are available at the Siemens Industry Online Support portal under entry 109477357 (search "MICROMASTER 420").

Prerequisites:

  • MM420 powered up and showing no fault state (r0002 = 0 or 1).
  • PROFIBUS-DP connection established, green LED on the PROFIBUS option module.
  • Step 7 project open with the FC14 instance DB available online.
  • STARTER commissioning tool or DriveMonitor (optional but recommended for live parameter read/write).

Procedure:

  1. Read the actual P2000 value from the drive. On the BOP, navigate to P2000 and confirm the value. If you have STARTER or DriveMonitor online, right-click the drive in the project tree and select "Online -> Read parameters". Record the live value of P2000. Do not trust the offline project value - parameter values can drift if RAM was not saved to EEPROM.
  2. Read the actual P1082 value. Repeat the read for P1082. Confirm P1082 >= P2000. If P1082 is less than P2000, raise P1082 to at least P2000 (or to the maximum safe motor frequency if that is lower).
  3. Confirm P1000 is set to PROFIBUS. Read P1000 and confirm the value is 6 (PROFIBUS), 7 (PROFIBUS + analog), or whichever PROFIBUS-led combination matches your application. If P1000 = 2 (analog), the PROFIBUS setpoint has no effect on the motor at all.
  4. Set P2000 to the intended reference frequency. Choose a value that: (a) is the maximum frequency the process will ever command in Hz for the motor in question, (b) matches the assumption embedded in the PLC's FC14 block, and (c) is less than or equal to P1082. Write the new value via BOP (press P, enter value, P to confirm, P to save) or via STARTER (write, then "Copy RAM to ROM").
  5. Save to EEPROM with P0971 = 1. This triggers a complete RAM-to-EEPROM save and a warm restart. The drive will be offline for a few seconds. Wait for the BOP to return to the run display before proceeding.
  6. Verify P2000 after restart. Power-cycle the drive (or wait for restart to complete) and read P2000 again. It must match the value you set. If it has reverted to 50.00 Hz, the EEPROM write failed - check the SD card / memory module if fitted, or repeat the save with the drive stopped.
  7. Inspect the FC14 block inputs in Step 7. Open the FC14 online and check: (a) the input drive_f_setpoint is the value in Hz you expect to command, (b) the internal scaling uses P2000 from the drive (or from a properly initialized DB) and not a hardcoded constant, and (c) the block is wired to the correct PZD slot (PZD1 for NSOLL, PZD2 for STW1 control word, etc.).
  8. Monitor the live PZD1 value. In Step 7 online, open the DB that contains the receive/telegram buffer and read the PZD1 word in hex. It should be 4000H when the application commands 100% of P2000, 2000H at 50% of P2000, and so on. If the value is consistently 2x or 0.5x the expected, the block's scaling math is wrong.
  9. Verify the drive's response. With a known setpoint (for example, 50% of P2000), read r0020 (setpoint, ramp input) and r0021 (actual frequency, output) on the BOP. They should converge to the same value once any ramp has completed. If r0020 matches the expected Hz but r0021/r0024 shows half, the issue is in the output stage, not the setpoint path - investigate P1082, motor nameplate, and any current-limiting or voltage-limiting reductions in the V/Hz curve.
  10. Check the BOP display source. By default the BOP alternates between r0000 (output frequency) and r0021. The user can confirm which parameter is on the BOP by pressing FN and the up arrow. If a custom display is configured, it may be showing a non-frequency value that is itself scaled.

PLC Block Configuration Detail: FC14 and Equivalent

The Siemens-supplied FC14 example block for MM4/G120 Profibus control is documented in the Siemens support entry 22078757. The block performs the following operations on each call:

  1. Reads the drive's P2000 value via the PKW (parameter channel) read service and stores it in a local REAL variable.
  2. Scales the user-supplied REAL frequency input (drive_f_setpoint) to a 16-bit normalized integer using the formula:

    NSOLL_INT = (drive_f_setpoint / p2000) × 16384.0

  3. Clamps the result to the range [0, 32767] (positive only by default; negative values require reversal-bit handling in STW1 bit 11).
  4. Truncates to integer and packages it as the low word of PZD1 of the output telegram.

Common FC14 misuse cases that produce the "half" symptom:

Error Effect Correction
FC14 input is a percentage (0-100), not Hz Block sends (50/100) × 16384 = 2000H assuming P2000 = 100; if the drive's P2000 is 50, the drive produces 25 Hz for what the user intended as 50 Hz. Confirm the FC14 input is REAL Hz, not REAL %.
FC14 does not read P2000 dynamically Block uses a project constant (e.g., 50.0). Drive's P2000 is actually 100.0. Block sends 16384 = 4000H, drive produces 100 Hz instead of 50 Hz - the inverse of the half symptom but the same class of fault. Edit FC14 to read P2000 from the drive on each call, or update the project constant and recompile.
Two FC14 instances both writing PZD1 Both blocks race to populate PZD1; the last writer wins. Effective setpoint is half of one and half of the other if they alternate at different OB1 cycles. Use a single FC14 instance, or a higher-level arbitration block.
DP cycle too short for PKW read P2000 read returns last cached value (initially 50.0 from project default), even after the drive's P2000 is changed to 100.0 online. Increase the DP update time, or use a separate PKW service to refresh P2000 after parameter changes.
Byte-swap on PZD1 (Big-Endian vs Little-Endian) Drive interprets the high byte as NSOLL and low byte as STW1 (or vice versa). The setpoint word effectively becomes (intended/256), which for typical values is dramatically reduced. Verify byte order in the Step 7 HW Config -> DP Slave Properties -> I/O Addresses. Re-import the GSD file if necessary.
FC14 instance DB overwritten by user logic User code writes to the FC14 instance DB directly, clobbering the PZD1 value the block just calculated. Route all setpoint changes through the FC14 input interface; do not write to the output DB directly.
Byte-swap is often overlooked. Some PLCs (notably certain third-party masters and older S7-300 CPU variants) transmit PZD words in reversed byte order. The symptom looks like a scaling problem but is in fact a byte-order mismatch. The PROFIdrive profile mandates big-endian (high byte first) word transmission, so a properly configured S7-300/S7-400 with the Siemens MM4 GSD file should not exhibit this. If it does, check the GSD file revision and the HW Config assignment.

Verification Procedure and Monitoring Parameters

After completing the parameter corrections, perform the following end-to-end verification to confirm correct scaling.

Static scaling check (motor permitted to spin unloaded):

  1. Set the PLC to command 0% setpoint (drive_f_setpoint = 0.0 or PZD1 = 0). Confirm motor is at rest and r0024 = 0.0 Hz.
  2. Set the PLC to command 50% setpoint (drive_f_setpoint = 0.5 x P2000). Confirm r0024 reads 0.5 x P2000 Hz +/- 0.1 Hz after ramp settling.
  3. Set the PLC to command 100% setpoint (drive_f_setpoint = P2000). Confirm r0024 reads P2000 Hz +/- 0.1 Hz.
  4. If your application requires frequencies above P2000, command 1.2 x P2000. Confirm r0024 clamps at P1082 (which must be >= 1.2 x P2000).

Dynamic scaling check (during ramp):

  1. Apply a 0 -> 50% step change.
  2. Plot r0020 (setpoint at ramp input) and r0021 (smoothed output) versus time. The two curves should track each other with the configured ramp time P1120.
  3. If r0020 = 25 Hz and r0021 = 25 Hz but the BOP shows 12.5 Hz, the BOP is displaying a different parameter (r0060 RPM, or r0031 torque) and not the actual frequency.

PKW parameter read-back:

  1. From the PLC, read P2000 via the PKW channel using SFC58/59 or the equivalent parameter access FB. The returned value must match the drive's BOP reading of P2000.
  2. Read P1082 in the same way. Verify it is the expected value.
  3. Read P1000 and P2050 in the same way. Verify the setpoint source and BICO routing match the application intent.

Edge Cases and Common Pitfalls

1. Switching the setpoint source from PROFIBUS to analog or fixed frequency. Parameter P1000 (selection of frequency setpoint source) defaults to 2 (analog) on the MM420. If the user has wired a PROFIBUS setpoint but did not change P1000, the drive is being commanded by the analog input and the PROFIBUS setpoint is ignored. In this case r0020 (setpoint) reflects the analog input, not the PROFIBUS value, and changing P2000 alone does not affect the operating frequency. Set P1000 = 6 (PROFIBUS) or P1000 = 7 (PROFIBUS + analog sum) as required.

2. Negative setpoints and reverse operation. The PROFIdrive NSOLL word is signed. If the application needs to command negative frequencies (reverse), bit 11 of the control word (STW1) must be set to enable reversal, and the PLC must transmit the negative normalized value in NSOLL (for example, C000H for -100%). Some FC14 implementations are positive-only and silently clamp negative inputs to 0. If the user enters -50 Hz, the block sends 0 and the drive does not run. Verify that the FC14 block supports negative setpoints if needed.

3. Motor with multiple nameplate frequencies (50/60 Hz regions). A motor rated 50 Hz used in a 60 Hz supply region (or vice versa) will have a P0310 nominal frequency that differs from the supply. P2000 is the reference for the drive's commanded setpoint, not the supply frequency. There is no inherent 50/60 Hz bias in P2000, but if the user assumes "P2000 = 50 Hz because the motor is 50 Hz" and then operates on a 60 Hz mains, the motor will under-speed. This is a different scaling issue from the "half" symptom but is worth ruling out.

4. Skip frequencies and bandwidth suppression. P1091 to P1094 define skip frequencies that the drive does not command even if the setpoint falls in the skip range. If the commanded frequency is in a skip band, r0024 will be parked at the boundary of the skip band, which can appear as the drive "ignoring" part of the setpoint. The PLC setpoint word is correct; the output is intentionally clamped. Verify the skip frequency parameters and clear them if not needed.

5. Vdc controller and current limit reductions. Under high load, the drive's Vdc controller (P1240) or current limit (P0640) can command a lower output frequency than the setpoint to protect the drive. The setpoint r0020 remains at the commanded value, but r0024 dips. This is not a PROFIBUS scaling issue; it is a motor/drive protection response. If the symptom appears only under load, investigate the V/Hz curve and current limits.

6. Two PROFIBUS masters or DP-V1 parameter services interfering. If a Class 2 master (for example, STARTER) is simultaneously writing to the drive's parameters (including P2000), it can overwrite the changes made by the Class 1 master (the S7 PLC). Confirm that STARTER is in monitor-only mode during normal operation, and disconnect the programming cable once commissioning is complete.

7. Two-parameter scaling: P2000 for the controller, P2000 for the visualization. Some HMI/SCADA packages display the PZD1 value in Hz by applying their own local scaling, which may use a constant that differs from the drive's P2000. The result is that the SCADA shows half the value the drive is actually applying. The drive is correct; the visualization is wrong. Confirm the SCADA's local scaling factor and update it to match the drive's P2000.

Cross-Platform Notes: MM430, MM440, SINAMICS G120

The parameter numbers and PROFIdrive scaling convention are identical across the MICROMASTER 4 family and the SINAMICS G120, G120C, G110, and G120P inverters, with minor firmware-dependent variations. The same FC14 / FC15 example block is applicable to all of them. Differences to be aware of:

Drive Firmware Notes
MM420 V1.0 - V3.2 PROFIdrive PPO types 1 and 3; PZD1 = NSOLL. PKW available.
MM430 V1.0 - V3.2 Same parameter layout as MM420; P2000 default 50 Hz; supports PPO 1, 3, 4.
MM440 V1.0 - V3.2 Same parameter layout; supports vector control with sensorless feedback. P2000 still the setpoint reference.
SINAMICS G120 (CU240 series) V4.3 - V5.2 PROFIdrive V4.1/V4.2. P2000 is present; the standard telegram selection is via p0922/p2079. Some telegram assemblies (e.g., telegram 1) use NWST/NACT instead of NSOLL/NIST; the PZD indexing differs but the 4000H = 100% x P2000 rule is unchanged.
SINAMICS G120C V4.5 - V5.2 Same scaling as G120. CU240S PN variant supports PROFINET but uses the same PROFIdrive convention.
SINAMICS G110 V1.0 - V2.0 MM4-derived firmware; P2000 and PROFIdrive scaling are identical to MM420.

For all variants, the resolution procedure is identical: confirm P2000 in the drive, confirm the PLC block scales against the same P2000 value, and save with P0971 = 1 (MM4) or "Copy RAM to ROM" (SINAMICS via STARTER). For SINAMICS, the equivalent of P0971 is p0977 (Save all parameters) or the "Copy RAM to ROM" button in STARTER.

Quick Reference: Frequency-to-PZD Conversion

The following table maps common frequency setpoints to PZD1 hex values for P2000 = 50.00 Hz. For other P2000 values, scale the table entries proportionally.

f_setpoint (Hz) % of P2000 PZD1 (hex) PZD1 (decimal)
0.0 0% 0000H 0
5.0 10% 0666H 1638
10.0 20% 0CCDH 3277
25.0 50% 2000H 8192
50.0 100% 4000H 16384
60.0 120% (clamped to P1082 if P1082 < 60) 4CCDH 19661
-25.0 (reverse) -50% E000H -8192

Frequently Asked Questions

Why does my MM420 show 25 Hz when the PLC sends 50 Hz via PROFIBUS?

The most common cause is a mismatch between the drive's P2000 reference frequency and the value the PLC block assumes. If P2000 in the drive is 50 Hz (the default), the PROFIdrive profile normalizes the PZD1 setpoint to (PZD1/16384) x P2000. A PZD1 value the application intends to mean 50 Hz may actually be 50% of 100 Hz (if the block scaled against P2000 = 100), yielding 50 Hz command but 25 Hz after the drive applies its own P2000 = 50. Verify P2000 in the drive, set P0971 = 1 to save it, and ensure the PLC block reads P2000 dynamically from the drive rather than using a hardcoded constant.

What is the difference between P2000 and P1082 on the MM420?

P2000 is the reference frequency - the Hz value that corresponds to 100% normalized setpoint. It is the scaling anchor. P1082 is the maximum frequency - a hard clamp on the drive's output. Any setpoint command that would produce an output above P1082 is clamped to P1082. To command 60 Hz reliably, both P2000 >= 60 Hz (so the normalized setpoint is meaningful) and P1082 >= 60 Hz (so the drive is allowed to reach it) are required.

How do I save parameter changes to the MM420 so they survive a power cycle?

Set P0971 = 1 on the BOP (navigate to P0971, press P, use arrows to select 1, press P to confirm). The drive will save all RAM parameters to EEPROM and restart automatically. The BOP will display a brief blank screen during the save. For STARTER, use the "Copy RAM to ROM" toolbar button. The save takes 5-15 seconds depending on the number of parameters modified.

What is the FC14 block in the Siemens example, and where can I get it?

FC14 is a freely available example FB/FC for Step 7 that handles the cyclic PROFIBUS-DP communication between an S7 PLC and an MM4 or SINAMICS G120 drive. It manages the PKW parameter read (to read P2000) and constructs the PZD1/PZD2 setpoint/control words. The example project and block source are available at Siemens support entry 22078757. The block is provided "as is" and is typically adapted to the specific application.

Can I use PROFIdrive with a non-Siemens PLC, and does the scaling still use 4000H = 100%?

Yes. PROFIdrive is a vendor-neutral profile maintained by PI (PROFIBUS and PROFINET International). The 4000H = 100% convention is part of the profile and applies to any compliant master and slave. Rockwell ControlLogix masters, ABB masters, Schneider M340/M580 masters, and third-party DP masters all use the same scaling when configured to the standard PROFIdrive telegram. The scaling math is identical regardless of the PLC platform.

Why does the BOP show r0024 at half the expected frequency even when the PLC reports the correct setpoint?

Check the BOP display source first: by default the BOP shows r0000 (output frequency, Hz). If a custom display has been configured to show r0060 (RPM), the value will differ from the commanded Hz by a factor of 60 / motor synchronous speed. For a 4-pole 50 Hz motor, that is 60/1500 = 0.04, but a 2-pole motor at 3000 RPM synchronous is 60/3000 = 0.02, so the displayed RPM at 50 Hz is 1500 or 3000, not 50. The user may be reading RPM and thinking it is Hz. Press FN + arrow keys on the BOP to confirm the displayed parameter is r0000 and not r0060.

Back to blog