Configuring MM440 and ABB ACS550/800 Profibus Communication

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

Configuring MM440 and ABB ACS550/800 Profibus Communication with S7-400

This technical reference covers the complete engineering workflow for integrating eight Siemens MICROMASTER 440 (MM440) inverters and ten ABB ACS550 / ACS800 drives on a single Profibus-DP network, controlled by a SIMATIC S7-400 CPU, with data displayed on WinCC faceplates. It expands the PPO4-only approach with explicit parameter numbers, normalization math, SFC14/SFC15 wrappers, and a reusable Function Block (FB) template for SCADA-driven Start/Stop, direction, and feedback.

1. System Architecture Overview

The network is a classical DP-V0 master/slave topology. The S7-400 (e.g., CPU 414-3 PN/DP or CPU 416-3) acts as the Class 1 master. MM440 drives connect through a Profibus option module (order code 6SE6400-1PB00-0AA0), and ABB ACS550/ACS800 drives connect through a RPBA-01 Profibus adapter. WinCC v7.x runs on a PC station connected via Industrial Ethernet or MPI for operator visualization.

S7-400 CPUDP Master (Class 1) WinCC StationSCADA Faceplates IE/MPI PROFIBUS-DP @ 1.5 Mbit/s (recommended) MM440 #1..#8 MM440 cont. ACS550 ACS550 cont. ACS800
Cable length & topology: At 1.5 Mbit/s, max trunk length is 200 m per segment. Use terminating resistors ON at both physical ends only. For 18 drives in one cell, plan two segments with an RS-485 repeater (e.g., 6GK1500-0AA10) if distance exceeds 200 m.

2. Prerequisites

  1. STEP 7 v5.5 or TIA Portal V15.1+ with the HSP (Hardware Support Package) for the S7-400 and the GSD files for MM440 (SIEM808F.GSD via 6SE6400-1PB00-0AA0) and ABB (ABB0810.GSD for RPBA-01).
  2. MM440 firmware ≥ 3.2 for full PPO4 consistency on 6-word PZD (verify with r0019 = drive firmware).
  3. ABB ACS550 standard firmware (550-01) and ACS800 system firmware ≥ ASXR7210 for type 4 PPO support.
  4. WinCC v7.4 SP1 or TIA WinCC Professional V15.1, plus a configured PC station routed to the S7-400.
  5. Import the ABB Drives function blocks for Siemens PLCs - Quick start-up guide (A_A4) for the proven FB template and TIA example project.

3. PPO Type Selection - Why PPO4

PPO (Parameter Process Object) telegrams split the cyclic payload into PKW (parameter channel) and PZD (process data). For drives that are fully configured at commissioning and operated exclusively through process data, PPO4 (0 PKW + 6 PZD) is the universal choice: it is supported on MM440 firmware 3.2+ and on ABB ACS550/ACS800 with the RPBA-01 adapter.

PPO Type PKW Words PZD Words OUT PZD Words IN Use Case
PPO1 4 2 2 Legacy parameter acyclic writes during run
PPO2 4 6 6 Full PKW + extended PZD
PPO3 0 2 2 Minimal cyclic I/O
PPO4 0 6 6 Selected: 0 PKW, 6 PZD for both vendors
PPO5 4 10 10 Heavily customized PZD

With PPO4 active, the first PZD word on the input side is always Status Word 1 (ZSW1) and the first output PZD is always Control Word 1 (STW1). The remaining 5 PZD words are freely mapped using vendor-specific BICO-style connectors (P2051 on Siemens, parameter group 51 on ABB).

4. MM440 Parameter Configuration

Set the following parameters via the BOP-2, STARTER, or the SIMATIC Manager drive commissioning tool. Each drive on the bus needs a unique Profibus address (default 0 → set per drive to avoid DP address conflict).

Parameter Value Meaning
P0700 6 Command source = Profibus (CB on COMM board)
P1000 6 Setpoint source = Profibus
P0927 1 Parameter changeable via Profibus
P2012 6 PZD length = 6 words (IN/OUT symmetrical)
P2013 0 PKW length = 0 words (PPO4)
P2051.0 51 OUT PZD2 → Control Word 1 (STW1)
P2051.1 21 OUT PZD3 → Main setpoint frequency (NSOLL)
P2051.2 52 OUT PZD4 → Control Word 2 (STW2) – not used, set to 0 if not needed
P2051.3 0 OUT PZD5 → reserved
P2051.4 0 OUT PZD6 → reserved
P2051.5 0 OUT PZD7 → reserved

On the receive side, MM440 returns the data in the order you bind through P2051 INx:

Parameter Value Meaning
P2051 IN0 51 IN PZD2 → Status Word 1 (ZSW1)
P2051 IN1 21 IN PZD3 → Actual frequency (NIST)
P2051 IN2 53 IN PZD4 → Status Word 2 (ZSW2)
P2051 IN3 27 IN PZD5 → Actual current (IAIST)
P2051 IN4 32 IN PZD6 → Actual power (PAIST)
P2051 IN5 39 IN PZD7 → Energy meter (kWh)

4.1 Normalization Reference Values (Siemens)

Siemens drives send process data as integers with reference to the values set in P2000P2004. The native Siemens protocol uses 0–16384 (4000hex) for 0–100% of the reference value. Use 4000hex for the speed setpoint in the PLC program to start at 100% and scale linearly.

Parameter Suggested Value Meaning
P2000 50.00 Hz Reference frequency for 100% / 4000h
P2002 Motor rated current × 1.2 (e.g., 7.2 A) Reference current; choose ≥ max operating current
P2003 Torque reference (Nm) Reference torque
P2004 150.0 % Reference power; values are returned as % of P2004

For example, if a motor nameplate is 5.5 kW and you set P2004 = 150%, then 100% power on the bus = 1.5 × 5.5 kW = 8.25 kW. Adjust to suit panel metering.

5. ABB ACS550 and ACS800 Parameter Configuration

ABB uses a parameter group 51 (51.xx) and 52 (52.xx) for process data. With RPBA-01, PPO4 is the supported type for both ACS550 and ACS800. The Profibus node address is set with parameter 51.02 (range 1–126).

Parameter ACS550 ACS800 (with RPBA-01) Meaning
51.01 (FBA type) 1 = Profibus 1 = Profibus Fieldbus adapter type
51.02 (Node addr) 4 (example) 5 (example) DP slave address (must match HW Config)
51.03 (Baud rate) 0 = auto 0 = auto Auto-detect 9.6 kbit/s to 12 Mbit/s
51.04 (PPO type) 4 4 0 PKW + 6 PZD
51.05 (Telegram type) PPO4 PPO4 Telegram = PPO4
51.06 (Comm loss t) 1.0 s 1.0 s Time before fieldbus-loss fault
10.01 (Ext1 start) 10 = Fieldbus 10.01 = COMM.CW Start/stop source
11.03 (Ref1 sel) 3 = FBA ref1 11.06 = FBA REF1 Setpoint source

5.1 ABB PZD Mapping (PPO4)

Unlike Siemens, the ABB mapping is fixed for the first two words but configurable for the remainder through 52.xx:

Slot ABB Default (Fixed) Note
OUT PZD1 Control Word Always CW (1 = Drive_CTRL_WORD1)
OUT PZD2 Reference 1 Frequency setpoint
OUT PZD3 Reference 2 (52.03) Typically unused, can be torque ref
OUT PZD4 52.04 (default 0) Free assignment
OUT PZD5 52.05 (default 0) Free assignment
OUT PZD6 52.06 (default 0) Free assignment
Slot ABB Default (Fixed Input) Note
IN PZD1 Status Word Always SW (1 = Drive_STATUS_WORD1)
IN PZD2 Actual 1 Actual frequency (rounded 0–20000)
IN PZD3 52.11 (default 0) Free – e.g., motor current
IN PZD4 52.12 (default 0) Free – e.g., motor power
IN PZD5 52.13 (default 0) Free – e.g., DC bus voltage
IN PZD6 52.14 (default 0) Free – e.g., fault word

5.2 ABB Normalization

ABB uses different scaling depending on the signal:

Signal Scale Example
Frequency (ref1, actual1) 0 – 20000 = 0 – 100% of 99.xx 50 Hz ref → 10000, 60 Hz → 12000
Motor current 0 – 10000 = 0 – rated current (param 99.06) 5.0 A at 10.0 A rated → 5000
Motor power -10000 – 10000 = -100% – 100% of rated power Sign indicates motoring (positive) vs regenerating (negative)
Status / Control Word Bit-mapped per ABB drive profile Bit 0 = ON, bit 1 = OFF, bit 3 = FAULT
Verify with the ABB Firmware Manual: the exact integer-to-engineering scaling for ACS800 system firmware ≥ ASXR7210 differs slightly from ACS550 standard firmware. Always cross-check with parameter group 99 (motor data) and the corresponding parameter description in the standard firmware manual for the firmware version on your drive.

6. S7-400 Hardware Configuration (HW Config)

  1. Open SIMATIC Manager → your S7-400 station → HW Config.
  2. Insert the CPU (e.g., 6ES7416-3XR05-0AB0) on rail 0, slot 3.
  3. Drag the MM440 GSD file (Profidrive Drive V3.1) from the catalog → set to PPO type 4 (slot 0: PPO type 4).
  4. Drag the ABB ACS550 / ACS800 GSD (RPBA-01 v2.x) → set PPO type 4.
  5. Assign unique DP addresses (e.g., MM440 #1 = 4, MM440 #2 = 5, …, ABB #1 = 12, …, ABB #10 = 21). The address MUST match the drive's parameter 51.02 (ABB) or Profibus address set via the DIP switch on the MM440 Profibus option board.
  6. Read the I-address and Q-address ranges. For a PPO4 slave they are 12 bytes of inputs and 12 bytes of outputs (6 PZD × 2 bytes).

Example mapping for the first MM440 (DP address 4) with PPO4:

Offset Address Word Content
Q 0 PQW 256 STW1 Control Word 1
Q 2 PQW 258 NSOLL Frequency setpoint (4000h = 100%)
Q 4 PQW 260 STW2 Control Word 2
Q 6 PQW 262 Free
Q 8 PQW 264 Free
Q 10 PQW 266 Free
I 0 PIW 256 ZSW1 Status Word 1
I 2 PIW 258 NIST Actual frequency (0–4000h)
I 4 PIW 260 ZSW2 Status Word 2
I 6 PIW 262 IAIST Actual current (0–4000h relative to P2002)
I 8 PIW 264 PAIST Actual power (0–4000h relative to P2004)
I 10 PIW 266 kWh Energy counter

7. SFC14 / SFC15 Programming on S7-400

Although you can read PIW/PQW directly for diagnostic or simple I/O, the recommended pattern for DP slaves with consistent user data > 4 bytes is to use SFC14 (DPRD_DAT) and SFC15 (DPWR_DAT). PPO4 (12 bytes) exceeds the 4-byte consistency limit, so SFC14/15 is mandatory for any guarantee of atomic reads/writes.

7.1 Sample SFC15 / SFC14 Call (Structured Text)

// Drive DB: "DRV_DB_MM4" (instance DB of FB_CTRL_MM4)
// Inputs:  iDP_Addr (BYTE) = 4   (logical DP address from HW Config)
// Outputs: DriveData_IN[0..5] (6 WORDs) populated by SFC14

// --- WRITE (PLC → drive) ---
DriveData_OUT[0] := iControlWord;        // STW1
DriveData_OUT[1] := iSetpointRaw;        // 4000h = P2000
DriveData_OUT[2] := 16#0000;             // STW2 (unused)
DriveData_OUT[3] := 0;
DriveData_OUT[4] := 0;
DriveData_OUT[5] := 0;

ret := DPWR_DAT(
    LADDR  := WORD#16#100,               // logical base address of slave (= 256 dec)
    RECORD := DriveData_OUT,             // ANY pointer to 12 bytes
    RET_VAL := wWriteRetVal);            // return code (0 = OK)

// --- READ (drive → PLC) ---
ret := DPRD_DAT(
    LADDR  := WORD#16#100,
    RECORD := DriveData_IN,              // 12 bytes, 6 WORDs
    RET_VAL := wReadRetVal);

// After return, wReadRetVal = 0 → DriveData_IN valid
iStatusWord     := DriveData_IN[0];      // ZSW1
rActualFreq_Hz  := WORD_TO_REAL(DriveData_IN[1]) / 16384.0 * 50.0;
rActualCurrent  := WORD_TO_REAL(DriveData_IN[3]) / 16384.0 * P2002_Motor;
rActualPowerPct := WORD_TO_REAL(DriveData_IN[4]) / 16384.0 * P2004_Pct;
Consistency: In HW Config, set the slave's I/O consistency to "Total length" (default in modern GSDs). When SFC14/15 is used, all 12 bytes are transferred atomically without being updated mid-scan. If you bypass SFC14/15 and read individual PIWs, the second half of the buffer may be updated between reads and you will get torn values.

7.2 Error Codes SFC14/15

RET_VAL (hex) Meaning Action
0000 No error
8090 Address not configured / slave missing Check DP address and wiring
8092 DP segment fault Check terminator, cabling
80A0 Negative acknowledgement from slave Check slave diagnostics buffer
80B0 Slave fault Slave in diagnostic state, call SFC13
80C0 Data inconsistency Length mismatch in RECORD
80C1 DP slave not ready Wait for slave startup

8. Normalization Math and Scaling

8.1 Siemens 0–16384 (4000hex) Reference

Siemens uses a 14-bit signed raw value where 4000hex = 16384dec represents 100% of the configured reference (P2000, P2002, P2003, P2004). For a motor with P2000 = 50 Hz and a raw value 0x4000 received on NIST:

rActualFreq_Hz = (NIST_raw / 16384.0) * P2000
              = (16384 / 16384.0) * 50
              = 50.0 Hz

For P2002 = 12.0 A and raw 0x4000 on IAIST, current = 12.0 A. For P2004 = 150% and raw 0x4000 on PAIST, power = 150% of motor rated. If the motor is 7.5 kW, that is 11.25 kW.

8.2 ABB 0–20000 Reference

ABB drives with default Drive Profile use 0–20000 = 0–100% of the reference speed (parameter 99.08). For a motor with 50 Hz rated:

rActualFreq_Hz = (Actual1_raw / 20000.0) * RatedFreq_Hz

For a raw value of 10000, frequency = 25 Hz. For motor current with reference = 99.06 (motor nominal current) and raw 0–10000, use the same divide by 10000 multiplication by 99.06.

9. Reusable Function Block for SCADA Faceplates

To reduce engineering time across 18 drives, wrap SFC14/15 calls in a single FB. The FB takes only the DP address and returns typed engineering values. This pattern is also used in the ABB Drives function blocks for Siemens PLCs quick start guide.

FUNCTION_BLOCK FB_DRIVE_CTRL
VAR_INPUT
    iDP_Addr       : BYTE;        // logical DP address from HW Config
    iRatedFreq_Hz  : REAL := 50.0;
    iRatedCurrent  : REAL := 10.0;
    iRatedPowerPct : REAL := 150.0;
    iCmdStart      : BOOL;        // from HMI
    iCmdStop       : BOOL;
    iCmdReset      : BOOL;
    iSetpoint_Hz   : REAL;
END_VAR
VAR_OUTPUT
    oReady         : BOOL;
    oRunning       : BOOL;
    oFault         : BOOL;
    oActualFreq_Hz : REAL;
    oActualCurrent : REAL;
    oActualPowerPct: REAL;
    oActualEnergy  : WORD;
    oControlWord   : WORD;
    oStatusWord    : WORD;
END_VAR
VAR
    sCtrl : WORD;
    sSetp : WORD;
    sOut  : ARRAY[0..5] OF WORD;
    sIn   : ARRAY[0..5] OF WORD;
    sRW   : INT;
END_VAR

BEGIN
    // 1. Compose control word (STW1) and setpoint
    sCtrl := 16#047E; // ready, no coast, no fault (set 0x047E for READY state)
    IF iCmdStart THEN sCtrl := sCtrl OR 16#000F; END_IF;
    IF iCmdStop  THEN sCtrl := 16#047E; END_IF;          // OFF1 (ramp stop)
    IF iCmdReset THEN sCtrl := 16#04C7; END_IF;          // Fault acknowledge bit 7
    sSetp := REAL_TO_WORD((iSetpoint_Hz / iRatedFreq_Hz) * 16384.0);

    sOut[0] := sCtrl;
    sOut[1] := sSetp;
    sOut[2] := 0;
    sOut[3] := 0;
    sOut[4] := 0;
    sOut[5] := 0;

    // 2. Write to drive (SFC15)
    sRW := DPWR_DAT(
        LADDR  := WORD#16#100 + INT_TO_WORD(iDP_Addr - 1) * 12,
        RECORD := sOut,
        RET_VAL := sRW);

    // 3. Read from drive (SFC14)
    sRW := DPRD_DAT(
        LADDR  := WORD#16#100 + INT_TO_WORD(iDP_Addr - 1) * 12,
        RECORD := sIn,
        RET_VAL := sRW);

    // 4. Decode status
    oStatusWord := sIn[0];
    oRunning    := (sIn[0] AND 16#0007) = 16#0007;  // bits 0,1,2 = RUNNING
    oFault      := (sIn[0] AND 16#0008) <> 0;      // bit 3 = fault active
    oReady      := (sIn[0] AND 16#0001) <> 0;      // bit 0 = ready to switch on

    // 5. Decode engineering values (Siemens 0–16384)
    oActualFreq_Hz  := WORD_TO_REAL(sIn[1]) / 16384.0 * iRatedFreq_Hz;
    oActualCurrent  := WORD_TO_REAL(sIn[3]) / 16384.0 * iRatedCurrent;
    oActualPowerPct := WORD_TO_REAL(sIn[4]) / 16384.0 * iRatedPowerPct;
    oActualEnergy   := sIn[5];
    oControlWord    := sCtrl;
END_FUNCTION_BLOCK
ABB variant: For ACS550/ACS800, the same FB works, but you must change the setpoint scaling from 16384 to 20000 in step 1, and the divisor in step 5 from 16384 to 20000 for the actual frequency. Use a generator input iSiemensProfile : BOOL to switch scaling. Control/Status word bit layouts are similar but not identical to Siemens; refer to the ABB Drive Profile document (parameter group 9 in the ACS550 firmware manual).

10. WinCC Faceplate Integration

  1. Create a WinCC tag for each drive's control and feedback. With SFC14/15 + a drive DB, point each tag at the DB word/byte.
  2. Use the ABB faceplate template from the ABB quick start-up guide (A_A4) as a reference for Siemens and ABB.
  3. Build a multi-instance faceplate that takes the drive index and displays: oActualFreq_Hz, oActualCurrent, oActualPowerPct, oActualEnergy, fault code, and the Status Word (raw + decoded bits).
  4. Configure a bit-level display: oReady, oRunning, oFault → colored indicators.
  5. Add a fault reset button bound to iCmdReset with a momentary pulse of 1 s.

11. Common Fault Codes (MM440, ACS550, ACS800)

Drive Code Meaning Field Action
MM440 F0001 Overcurrent Check ramp time, mechanical load
MM440 F0002 Overvoltage (DC bus) Check brake chopper / ramp-down
MM440 F0003 Undervoltage Check input supply, line dips
MM440 F0011 Motor overload (I²t) Check nameplate vs. P0304–P0305
MM440 F0070 CB (Comm Board) fault Check Profibus wiring, GSD mismatch
MM440 F0071 Profibus loss of setpoint Master stopped, check PLC
MM440 F0072 Profibus loss of process data SFC14/15 retry, check connector
ACS550 1 OVERCURRENT Check motor insulation, ramp
ACS550 2 DC OVERVOLT Increase decel ramp, add brake chopper
ACS550 3 DEV OVERTEMP Check fans, ambient temp
ACS550 4 MOTOR TEMP Check motor PTC, load
ACS550 10 PANEL LOSS Reconnect control panel
ACS550 31 FB PAR ERR Check group 51 settings
ACS800 FF01 OVERCURRENT Check motor & cable
ACS800 FF02 DC OVERVOLT Decel ramp / brake
ACS800 FF55 FIELD BUS COMMUNICATION Check RPBA-01 diagnostics

To surface the active fault code on the WinCC faceplate, map a free PZD slot (e.g., IN PZD3 on Siemens MM440 by setting P2051.2 = 53 for ZSW2, then bit-decode, or for direct fault number use a separate read through the PKW channel on a PPO2 slave if PPO4 is insufficient).

12. Troubleshooting Matrix

Symptom Likely Cause Action
Drive does not appear online DP address mismatch, terminator off Compare HW Config with drive parameter 51.02 / MM440 DIP switch
Bus runs but ZSW1 bit 0 = 0 Drive not enabled (OFF1 active) Set bit 0 of STW1 to 1 (ON command)
ZSW1 bits 0,1,2 toggle between states ON command not latched Maintain STW1 = 047Eh + 000Fh; check for one-shot pulse
Actual frequency always 0 P2000/P2002 wrong, or P2051 IN mapping incorrect Verify P2000 and P2051 indexing in STARTER
Frequency 100× too small Reading in Hz, not normalized Apply normalization with P2000
SFC14 RET_VAL = 8090 HW Config not compiled, or slave address typo Re-compile HW Config and download
PLC sees data only on a few cycles Direct PIW access bypassing consistency Switch to SFC14/15 with consistent data
MM440 F0070 on power-up CB not initialised yet Set P0927 = 1 and power cycle CB
ABB drive shows 31 FB PAR ERR 51.04 PPO type mismatch with PLC Set 51.04 = 4 to match PLC
Some drives comm loss during heavy traffic Bus speed too high, segment too long Reduce baud to 500 kbit/s, add repeater

13. Commissioning Procedure (Step-by-Step Verification)

  1. Power the bus with one drive at a time. Confirm BF (Bus Fault) LED is off on each MM440 Profibus option and on the RPBA-01.
  2. In HW Config, set the slot PPO type to 4 and download the configuration. Verify the S7-400 displays the slave in "Online → DP Master System → Bus Nodes".
  3. Open a VAT table and call SFC14 for the first drive. Confirm RET_VAL = 0 and ZSW1 (DriveData_IN[0]) is non-zero (e.g., 16#0E31 for "Ready, Voltage Enabled, No Fault").
  4. Write STW1 = 16#047E (Ready to switch on). Verify the drive displays state "rdy" and ZSW1 reflects bit 0 set.
  5. Write STW1 = 16#047F (ON command). Verify motor spins at 0 Hz. Increment setpoint word; verify frequency rises in proportion (NIST feedback).
  6. Scale-setpoint loop: send 4000h setpoint, confirm NIST = 4000h ± 10. Repeat for 2000h, 1000h, etc.
  7. Apply a step in load to verify ZSW2 and IAIST response. Confirm current normalization (P2002) gives the expected A value when fed with 4000h raw.
  8. Trigger a fault (e.g., unplug the encoder for closed-loop drives) and verify F0070 (MM440) or FB PAR ERR (ACS550) appears in the fault word on the bus.
  9. Test fault reset: write STW1 = 16#04C7 momentarily. Verify drive exits fault state.
  10. Once one drive is verified, replicate the FB to all 18 slaves by changing only the iDP_Addr input.

14. Multi-Drive Loopback Test (Telegram Inspector)

With the S7-400 in STOP, the CP 443-5 extended can be set to a diagnostic mode where it echoes the bus telegrams. Use this to confirm the slave is responding. Alternatively, capture telegrams with a Profibus monitor (e.g., Profinet / Profibus diagnostics hardware) and confirm:

  • PLC → drive: 6-word output telegram with STW1, NSOLL matching program values.
  • Drive → PLC: 6-word input telegram with ZSW1 indicating drive state, NIST = actual frequency in normalized form.
  • No slot error in slave diagnostics (SFC13 returns no fault, status = 0x32 for OK).

15. ABB Function Block Library Reference

The ABB Drives function blocks for Siemens PLCs quick start-up guide (PDF) provides:

  • A complete SIMATIC Manager and TIA Portal example project (S7-300/400 compatible).
  • Pre-built FBs (FB100–FB103) for ACS550/ACS800 PPO4 control.
  • HMI tag list and a WinCC faceplate.
  • Standard S7-300/400 GSD for the RPBA-01 module.
  • Default 51.xx and 52.xx parameter settings for one-click commissioning of the ABB drive.

Use this as the starting point if you have many ABB drives; the same template can be applied to MM440 with parameter adjustments from sections 4 and 5.

16. Glossary

Term Definition
PPO Parameter Process Object - the standard Profidrive telegram
PZD Process Data (cyclic, time-critical)
PKW Parameter Channel (acyclic, infrequent)
ZSW1 / STW1 Status Word 1 / Control Word 1
NIST / NSOLL Actual / setpoint normalized frequency (Siemens)
IAIST Actual current (Siemens)
RPBA-01 ABB Profibus adapter module for ACS550/ACS800
HW Config STEP 7 hardware configuration tool

17. FAQ

Can I use PPO4 for both MM440 and ABB ACS550/ACS800 on the same Profibus network?

Yes. PPO4 (0 PKW + 6 PZD) is supported on MM440 firmware 3.2+ and on the ABB RPBA-01 adapter for ACS550/ACS800. Set P2013 = 0 (PKW) and P2012 = 6 (PZD) on MM440, and 51.04 = 4 on ABB to match. The 6-word PZD process data slot provides 6 control + 6 feedback words per drive, sufficient for STW, setpoint, status, frequency, current, and power.

Do I have to use SFC14/SFC15, or can I read PIW/PQW directly?

For PPO4 (12 bytes per direction) you must use SFC14 (DPRD_DAT) and SFC15 (DPWR_DAT) to guarantee consistent data. S7-400 DP allows only 4-byte consistency on direct I/O access, so the second half of the buffer could be updated mid-scan and you would get torn values. Direct PIW/PQW access is acceptable only for diagnostic or single-word displays where torn data is irrelevant.

What is the difference between Siemens normalization 0-16384 and ABB 0-20000?

Siemens uses 0-4000h (0-16384 decimal) where 16384 represents 100% of the reference value defined in P2000 (Hz), P2002 (current), P2004 (power %). ABB uses 0-20000 where 20000 represents 100% of the reference frequency and 0-10000 for current. Multiply the raw value by the reference and divide by the full scale: Siemens freq = raw/16384 * P2000; ABB freq = raw/20000 * rated Hz.

How do I read the active fault code from the drive to the WinCC faceplate?

On MM440, the active fault number is parameter r0947 (1-65535). To bring it on the bus, you need a PPO type with PKW (PPO1, PPO2, or PPO5) to read r0947 acyclically, or you can use a status word bit indicating a fault (ZSW1 bit 3) and read r0947 once when the bit transitions. On ACS550/ACS800, the active fault is in parameter 0401 (last fault) or 0402. The same approach with PKW applies. An alternative is to reserve one of the free PZD words (e.g., PZD4) and map an integer scaling of the fault code through a 52.xx parameter on ABB or a free P2051 IN slot on MM440.

What GSD files and Profibus addresses do I need for 18 drives on one S7-400 master?

For MM440 use the GSD SIEM808F.GSD (older builds: SIEM807F.GSD) and assign DP addresses 4-11 for 8 drives. For ABB ACS550/ACS800 use the GSD from RPBA-01, file ABB0810.GSD, and assign DP addresses 12-21 for 10 drives. Set the physical DP address on the MM440 Profibus option card DIP switch, and on ABB set parameter 51.02. The S7-400 master supports up to 124 DP slaves and 32 per segment with an RS-485 repeater; 18 drives is well within limits.

Why does my drive report F0070 / FB PAR ERR after power-up?

F0070 (MM440) and FB PAR ERR / fault 31 (ACS550) both indicate that the Profibus option module initialised but the parameter set is inconsistent. The most common cause is P2013 ≠ 0 on MM440, or 51.04 PPO type not matching the PLC slot. Re-check the parameter list from section 4 (MM440) and section 5 (ABB), confirm PPO type 4 is selected on both sides, then power cycle the drive and the CB module.

Back to blog