Resolving S7-300 PPO Type Mismatch with ABB ACS800 via RPBA-01

David Krause15 min read
Industrial NetworkingSiemensTroubleshooting
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 Overview

An S7-300 CPU 315-2DP (order number 6ES7315-2AH14-0AB0) controlling an ABB ACS800 drive over PROFIBUS DP through an RPBA-01 communication adapter enters a fault condition after a configuration change. Three symptoms appear together and form the diagnostic signature of a PPO (Parameter Process Data Object) type mismatch:

  • The S7-300 SF (System Fault) LED is lit on the CPU front panel.
  • The RPBA-01 module shows OFFLINE on its seven-segment / status display.
  • The CPU diagnostic buffer records: "current online configuration data differs from the offline configuration data" and "Error in the lower level compartment" (OB82 / OB100 / OB122-related event).

The drive no longer responds to start/stop or speed reference commands, even though the PROFIBUS cable, shielding, and termination are intact. The root cause is a PPO type drift between what is configured in the ABB drive (parameter 51.06 on the ACS800 panel / DriveStudio), what the S7-300 master sends in its DP slave slot configuration, and what the user's S7 program reads/writes with SFC14 / SFC15 or the ABB Drive Library FB500.

Field tip: A "lower level compartment" diagnostic event on the S7-300 is not a hardware failure. It is the CPU reporting that the PROFIBUS DP slave described in HW Config (offline project) no longer matches the slave it sees on the wire (online). The slave is alive, but it is telling the master: "I am a PPO5 device, you configured me as something else."

PPO Types Reference (PROFIdrive Profile)

The PPO type is a PROFIdrive (IEC 61784-1 / PROFIBUS Profile for Variable Speed Drives, version 4.x) frame definition that defines how Parameter data (PKW) and Process Data (PZD) words are packaged inside a single PROFIBUS DP cycle. The RPBA-01 module on the ACS800 supports the following PPO types as listed in the RPBA-01 PROFIBUS DP Adapter User's Manual:

PPO Type PKW Words PZD Words Total Words Typical Use
PPO1 4 2 6 Read/write parameters + 16-bit reference (legacy)
PPO2 4 6 10 Full parameter access + 32-bit reference + extended status
PPO3 0 2 2 Minimal cycle, control word + 16-bit reference only
PPO4 0 6 6 Standard cyclic control/status, no acyclic parameter channel
PPO5 2 6 8 Compact parameter read/write + 6 PZD words (most common for ACS800)
PPO6 2 4 6 Variant used with specific ABB FW loads

PPO5 Frame Layout (used in this fault)

For an ACS800 configured as PPO5 with an RPBA-01, the cyclic I/O image is structured as follows. The S7-300 input/output addresses in TIA Portal must be sized to this exact 8-word (16-byte) footprint, or the master will flag a configuration mismatch on the next DP parameterization telegram.

PPO5 Telegram — 8 words (16 bytes) cyclic PKW 1 PNU / Sub-idx / Value (Hi) PKW 2 Value (Lo) / Status PZD1 Control Word PZD2 Reference (16b) PZD3 User 1 PZD4 User 2 Word 0 Word 1 Word 2 Word 3 Word 4 Word 5 PKW (2 words) PZD OUT (master → drive, 4 words) PZD IN (drive → master, 4 words on the read-back image)

Critical: The input and output areas of the S7-300 must be the same length. A PPO5 expects 8 input words and 8 output words. If HW Config declares 10 (PPO2) or 6 (PPO4), the RPBA-01 rejects the parameterization frame and refuses to leave OFFLINE.

Root Cause Analysis

Three configuration sources must agree. Any disagreement produces the symptoms above.

ACS800 / RPBA-01 Drive param 51.06 = PPO5 S7-300 HW Config Slave slot = PPO5, 8 IW / 8 QW S7 Program SFC14/15 length = 8 words All three must agree on PPO type & I/O length Mismatch → SF LED, OFFLINE on RPBA-01, diag buffer entry Most common cause: TIA Portal device catalog inserted wrong GSD variant

The most frequent trigger in a working system is one of the following:

  1. A GSD file (ABB_0812.GSD for RPBA-01) was re-imported, and the device catalog in TIA Portal re-defaulted the slave to a different PPO type. TIA Portal V16 ships multiple "slots" per PPO; if the user re-places the device from the catalog it may default to PPO4 (no PKW), and the ACS800 stays at PPO5.
  2. The S7 program was edited and the constant LEN input to SFC14/SFC15 was changed (e.g., from 8 to 6 or 10), causing the CPU to write a wrong-length frame that the RPBA-01 rejects.
  3. A copy of the project from a sister machine with PPO4 hardware was loaded into this CPU without updating the slave's slot configuration.
  4. The ABB Drive Library FB500 (or equivalent user block) was re-imported and now expects a different PZD mapping. The ERR output going TRUE after a DPRD_DAT call is the classic symptom of a length mismatch between the configured slot and the actual read length.

Hardware Identification

Before changing anything, confirm the physical devices match what is in the project. The most important identifiers:

Device Order Number (MLFB / ABB Code) Firmware Notes
S7-300 CPU 315-2DP 6ES7315-2AH14-0AB0 Firmware V3.3; integrated PROFIBUS DP master (MPI/DP port X2)
ABB ACS800 ACS800-01 / -02 / -04 / -31 / -104 series System FW 2.x or newer supporting RPBA-01 GSD rev. 3.0+
RPBA-01 Profibus Adapter 3AFE 64475771 See EN_RPBA01_UM_F; supports baud rates 9.6 kbit/s to 12 Mbit/s
RPBA-01 GSD file ABB_0812.GSD Identifies PPO1 / PPO2 / PPO3 / PPO4 / PPO5 / PPO6 slots

On the ACS800, the RPBA-01 configuration is held in parameter group 51 (Communication). The relevant entries per the RPBA-01 User's Manual:

ACS800 Parameter Name Setting for PPO5
51.01 Module type PROFIBUS-DP (RPBA-01)
51.02 Node address Must match HW Config slave address (typically 4–6)
51.03 Baud rate Auto-detect (default), or fixed 1.5 / 3 / 6 / 12 Mbit/s
51.04 PPO type 5 (this is the actual mismatch point)
51.05 HW/SW selection HW (use DIP switches on RPBA-01) or SW (use parameters)
51.06 Output PZD3 / PZD4 mapping Application-specific (e.g., 6 = SpeedRef, 7 = TorqueRef)
Critical: Drive parameter 51.04 is the runtime switch. After changing 51.04 the RPBA-01 must be power-cycled or the drive given a fieldbus reset (parameter 51.27 = 1 → 0 in newer FW loads) for the new PPO type to take effect. A live change does not re-parameterize the running PROFIBUS link.

Diagnostic Buffer Interpretation

The two diagnostic-buffer entries reported in the original fault map to specific events on the CPU 315-2AH14. Decode them as follows before changing configuration:

Buffer Text Event ID (typical) Meaning
"current online configuration data differs from the offline configuration data" 0xE070 / DS 0x00A1 Slave parameterization failed; slave exists at the address but its GSD-described I/O length does not match HW Config
"Error in the lower level compartment" 0xE023 / OB82 entry DP slave diagnostic interrupt — RPBA-01 sent a diagnostics frame with ext-diag flag set
Station failure 0xE080 Slave dropped off the bus; usually follows the previous two if not corrected
Station return 0xE080 (return) Confirms slave re-entered data exchange

Open the buffer in TIA Portal under Online → Diagnostics → Diagnostic buffer on the CPU. The event will list the slave's PROFIBUS address and the expected vs. actual I/O length. The expected length is what HW Config was compiled with; the actual length is what the slave's GSD identifies for the slot it is presenting.

Step-by-Step Resolution

The fix has three parts. Do them in order; do not skip verification between steps.

Step 1 — Confirm the drive-side PPO type

  1. Power on the ACS800 control panel (no drive run command required).
  2. Navigate to group 51 on the panel.
  3. Read 51.04 — confirm it reads 5 (PPO5). If it reads something else, that is the entire problem. Set it to 5 and acknowledge.
  4. Read 51.02 — note the PROFIBUS node address.
  5. Cycle the RPBA-01 power (or perform fieldbus reset per FW) so the new PPO type is loaded.

Step 2 — Fix the TIA Portal / STEP 7 project

  1. Open the project in TIA Portal V16 (or STEP 7 V5.5 + HSP if that is the toolchain).
  2. Open Devices & Networks and locate the ACS800 slave on the PROFIBUS subnet.
  3. Double-click the slave. The device view should show a single slot configured for the PPO. If the slot shows 4 PZD words (PPO4) but the drive is PPO5, you have a configuration mismatch.
  4. Open the Catalog pane. Under Other field devices → PROFIBUS DP → Drives → ABB → RPBA-01, locate the slot entries.
  5. Delete the current slot and drag in the entry that corresponds to PPO5 (sometimes labelled "PPO Type 5: 2 PKW + 6 PZD").
  6. Verify the I/O addresses. PPO5 occupies 8 input bytes and 8 output bytes starting from the configured start address (commonly IB 0–QB 7, or PIW 256/PQW 256 in modular addressing).
  7. Compile the hardware configuration (Project → Compile → Hardware (rebuild all)).
  8. Download the hardware configuration to the CPU (STOP mode download, then RUN).

Step 3 — Fix the S7 program if it was also touched

  1. Find every call to SFC14 (DPRD_DAT) and SFC15 (DPWR_DAT) that targets the ACS800 slot.
  2. The LEN input on both calls must equal 8 for PPO5 (8 words = 16 bytes; SFC14/15 use byte length, so LEN = 16 when called with the byte form, or LEN = 8 when using W#16#0008 for word form — confirm the version you have). Most TIA Portal V16 examples pass LEN = 16 in B#16#10.
  3. If you use the ABB Drive Library (e.g., FB500, FB501, FB502), re-import the version that matches PPO5. Check the FB500 input PPO_TYPE or its internal constant — many versions of the library are PPO-specific (a "PPO5" FB500 and a "PPO4" FB500 may share the same FB number but differ in their instance DB layout).

TIA Portal V16 Configuration Detail

For the CPU 315-2AH14-0AB0, the integrated DP master is on interface X2 (MPI/DP). The default S7-300 GSD for ABB_0812 lists the RPBA-01 under the following identifier. Use the slot that matches PPO5.

Slot / Module in Catalog Input Words Output Words Consistent Over
PPO1 6 6 Total
PPO2 10 10 Total
PPO3 2 2 Total
PPO4 6 6 Total
PPO5 8 8 Total
PPO6 6 6 Total
Consistency: On S7-300, the entire PZD area should be configured for total consistency (SFC14/15 access). If the slot is set to byte consistency by accident, the first read may succeed but later words will be incoherent with the first, producing intermittent control faults that look like PPO mismatch but are actually consistency. Set "Consistency" to "Total length" in the slot properties.

Programmatic Verification (SFC14 / SFC15)

For PPO5 with 8 input + 8 output words, the canonical read/write block is SFC14 (DPRD_DAT) for inputs and SFC15 (DPWR_DAT) for outputs. A minimal example for the S7-300:

// Inputs from ACS800 (PPO5: 8 words read)
CALL  SFC   14                       // DPRD_DAT
       LADDR := W#16#100              // Start address of slave I area (example: PIW 256)
       RET_VAL := MW 200              // Return code (0 = OK; W#16#80A1 = length mismatch)
       RECORD := P#DB10.DBX0.0 BYTE 16 // 16 bytes = 8 words, into a shared instance DB
// Outputs to ACS800 (PPO5: 8 words write)
CALL  SFC   15                       // DPWR_DAT
       LADDR := W#16#100              // Start address of slave Q area
       RECORD := P#DB10.DBX16.0 BYTE 16 // 8 words: PZD1 control, PZD2 ref, PZD3/4 user
       RET_VAL := MW 202              // Return code

The most telling return code is W#16#80A1 — this is what SFC14/15 return when the LEN input does not match the configured slot length. It is exactly the error the user observed on FB500's ERR output when DPRD_DAT is used. If you see 0x80A1, you have a length mismatch and the PPO type selected in HW Config is wrong; if you see 0 and the SF LED is still on, the HW Config side is correct and the issue is upstream (cable termination, node address, baud rate).

Verification and Commissioning

  1. After downloading, the SF LED must clear within one DP cycle (~10 ms at 12 Mbit/s).
  2. The RPBA-01 status display must show its node address (e.g., "4") and not "OFF".
  3. Open an online watch table on the input DB. PZD1 (status word) should read a non-zero value reflecting the drive state (typically 0x0C3C once the drive is magnetized, 0x0C31 when ready, 0x0C77 when running).
  4. Write the ABB control word 0x047F (fieldbus control, ramp enable, no fault) to PZD1 of the output DB. The drive should transition to "Ready" and then to "Running" with a non-zero reference.
  5. If a second PZD word is used as a 16-bit speed reference in RPM or %-scaled (parameter 51.06 mapping), populate it and verify the drive follows.
  6. Check the diagnostic buffer once more; no new "configuration differs" entries should appear.

Troubleshooting Matrix

Symptom Likely Cause Action
SF LED on, RPBA-01 OFFLINE PPO type mismatch (most common) Match drive param 51.04 with HW Config slot
SF LED on, RPBA-01 node address visible, ERR = 0x80A1 on SFC14 Length mismatch in SFC14/15 LEN input Set LEN = 16 bytes (or word-length 8) to match slot
SF LED on, RPBA-01 node address visible, drive in fieldbus loss fault (FF30) Drive param 51.27 = 0 (comm loss disabled) and cable broken Enable comm loss; check cabling
SF LED off, no comm loss, drive ignores commands Control word bit pattern wrong or 51.06 mapping wrong Verify ABB control word sequence (0x0476 → 0x047F)
SF LED off, intermittent control Byte consistency instead of total consistency Set slot to "Total length" consistency
RPBA-01 shows node but SF LED blinks then steady DP slave diagnostic interrupt, external diag bit set Read slave diagnostic with SFC13 (DPNRM_DG) and decode
Everything green but FB500 ERR = TRUE Library FB built for different PPO Re-import correct PPO-specific library; recompile instance DB

Field Notes and Common Pitfalls

  • GSD vs. HSP: TIA Portal V16's device catalog for the RPBA-01 comes from the GSD file (ABB_0812.GSD). When you install a newer GSD and then re-insert the slave, TIA may place a different default PPO. Always verify the slot after re-inserting the device — do not assume it preserved the previous choice.
  • DIP switches vs. parameters: The RPBA-01 has a bank of DIP switches. If 51.05 = HW, parameter 51.04 is ignored and the switches decide PPO type. If 51.05 = SW, parameters decide and DIP switches for PPO are ignored. They can fight each other if you do not commit to one mode. SW mode is recommended for the workflow described in this article.
  • Cold restart required: Changes to 51.04 do not take effect on a live bus. Plan a short drive stop, parameter change, and RPBA-01 power cycle.
  • PKW length in PPO5 is 2 words, not 4. PPO1 / PPO2 carry 4 PKW words. If the S7 program was written against PPO1/PPO2 and you switch to PPO5, every read/write to a parameter must be re-coded for the shorter 2-word PKW structure (no high/low word splitting as in PPO1/PPO2).
  • Drive parameter 51.06 / 51.07 on the ACS800 select which drive-side signals are mapped to PZD3 and PZD4. These do not affect PPO type; they only affect process data content. A PPO5 type can carry any combination in PZD3/PZD4 (e.g., torque reference, actual speed, current).
  • Watchdog on CPU 315-2AH14: A 0x80B0 buffer entry ("DP slave failure") immediately after a PPO fix usually means a residual watchdog from the prior mismatch state. It will clear on the next successful cycle; you do not need to power-cycle the CPU.

After the three-step fix and the verification, the SF LED clears, the RPBA-01 enters data exchange, and the ACS800 resumes control from the S7-300. If the SF LED persists after a correct PPO5 match, escalate to a physical-layer check (termination, shielding, baud rate, repeater if the segment exceeds 100 m at 12 Mbit/s or 1200 m at 9.6 kbit/s per IEC 61158-2).

FAQ

What PPO type should I use for an ABB ACS800 on RPBA-01?

PPO5 is the most common choice. It provides 2 PKW words for parameter read/write plus 6 PZD words (control word, 16-bit reference, and 4 user-mapped words), which is enough for almost all ACS800 control loops. PPO1 / PPO2 are used if the application needs 4 PKW words for legacy parameter handling; PPO4 is used if the application does not need acyclic parameter access at all. Pick the one that the ACS800 parameter 51.04 agrees with and the S7-300 HW Config slot agrees with — they must match.

Why does my S7-300 SF LED light up after I change the PROFIBUS configuration in TIA Portal?

Because the new HW Config no longer matches what the slave is presenting on the wire. The CPU 315-2DP will refuse to enter data exchange with a slave whose configured I/O length differs from the slave's GSD description, and it raises the SF LED plus a diagnostic buffer entry such as "current online configuration data differs from the offline configuration data". Either reload the previous configuration, or change the drive's PPO type (parameter 51.04) to match the new slot.

What does the W#16#80A1 return code from SFC14 / SFC15 mean?

It means the LEN input to SFC14 (DPRD_DAT) or SFC15 (DPWR_DAT) does not match the configured length of the PROFIBUS slot. For PPO5, LEN must be 16 bytes (8 words). For PPO4 / PPO1 / PPO6, LEN must be 12 bytes. For PPO2, LEN must be 20 bytes. Mismatched LEN is the most common cause of FB500's ERR output going TRUE on the ABB Drive Library.

Do I have to power-cycle the RPBA-01 after changing ACS800 parameter 51.04?

Yes. The PPO type is read by the RPBA-01 at startup. Changing 51.04 in the drive's control panel updates the drive's stored value, but the RPBA-01 only re-reads it after its own power-on reset. The safe sequence is: stop the drive, change 51.04, acknowledge, cycle 24 V to the RPBA-01, then bring the bus back up. On firmware loads that expose parameter 51.27 (fieldbus reset), setting 51.27 = 1 and then back to 0 achieves the same effect without removing power.

Is PPO5 the same as ABB's "Standard Telegram 1" used on PROFINET with FENA-11 / RETA-02?

Functionally similar (control word + reference + user words) but not byte-compatible. Telegram 1 on PROFINET follows the PROFIdrive profile's Standard Telegram 1 layout, while PPO5 on PROFIBUS follows the older PROFIdrive 4.x PPO definition. If you migrate an ACS800 from RPBA-01 to FENA-11 / RETA-02 you must re-map the S7 program, not just swap the GSD.

Back to blog