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.
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.
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.
The most frequent trigger in a working system is one of the following:
- 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.
- 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.
- A copy of the project from a sister machine with PPO4 hardware was loaded into this CPU without updating the slave's slot configuration.
- The ABB Drive Library FB500 (or equivalent user block) was re-imported and now expects a different PZD mapping. The ERR output going
TRUEafter 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) |
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
- Power on the ACS800 control panel (no drive run command required).
- Navigate to group 51 on the panel.
- Read 51.04 — confirm it reads
5(PPO5). If it reads something else, that is the entire problem. Set it to 5 and acknowledge. - Read 51.02 — note the PROFIBUS node address.
- 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
- Open the project in TIA Portal V16 (or STEP 7 V5.5 + HSP if that is the toolchain).
- Open Devices & Networks and locate the ACS800 slave on the PROFIBUS subnet.
- 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.
- Open the Catalog pane. Under Other field devices → PROFIBUS DP → Drives → ABB → RPBA-01, locate the slot entries.
- Delete the current slot and drag in the entry that corresponds to PPO5 (sometimes labelled "PPO Type 5: 2 PKW + 6 PZD").
- 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).
- Compile the hardware configuration (Project → Compile → Hardware (rebuild all)).
- Download the hardware configuration to the CPU (STOP mode download, then RUN).
Step 3 — Fix the S7 program if it was also touched
- Find every call to SFC14 (DPRD_DAT) and SFC15 (DPWR_DAT) that targets the ACS800 slot.
- 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.
- If you use the ABB Drive Library (e.g., FB500, FB501, FB502), re-import the version that matches PPO5. Check the FB500 input
PPO_TYPEor 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 |
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
- After downloading, the SF LED must clear within one DP cycle (~10 ms at 12 Mbit/s).
- The RPBA-01 status display must show its node address (e.g., "4") and not "OFF".
- 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).
- 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.
- 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.
- 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. If51.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.