Integrating ABB S800 I/O with Siemens S7-300 via PROFIBUS DP

David Krause16 min read
Industrial NetworkingSiemensTutorial / 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

System Overview: ABB S800 I/O on a Siemens PROFIBUS Master

The ABB S800 I/O platform is widely deployed in process plants where ABB System 800xA, Advant Master, AC450, or Freelance DCS controllers pair with S800 modules. The CI830 (order code 3BSE013262R1) is the PROFIBUS DP-V1 communication interface that lets the same S800 family be reached from a third-party master such as the Siemens SIMATIC S7-300 CPU 315-2DP. From the Siemens perspective, the CI830 behaves as a standard DP-V0/V1 slave; from the ABB side it acts as a ModuleBus master to up to twelve S800 I/O modules (DI810, DO810, AI810, AO810, AI830, AO845, DX820, etc.).

When an S7-300 is the PROFIBUS master, every CI830 shows up in HWConfig as a DP slave with twelve empty slots that map one-to-one to the physical ModuleBus positions on the right-hand side of the CI830. Misalignment between the slot list inside HWConfig and the physical module arrangement is the single most common reason that "everything is configured but the Fault LEDs stay on," which is exactly the symptom observed when a CPU 315-2DP and a CI830 SW*1.3 were first wired together.

Siemens S7-300CPU 315-2DP6ES7 315-2AG10Addr 2 (Master)DP Master PortRS-485PROFIBUS DP1.5 Mbps, 6 mABB CI8303BSE013262R1FW 1.3 / 1.4Addr 3 (Slave)DP Slave / ModuleBus MasterModuleBusPosition 1DI810 (3BSE008508R1)16 DI / 24 VDCPosition 2DO810 (3BSE008510R1)16 DO / 24 VDCSlots 3–12 emptySlots 1–12 in HWConfig map to physical ModuleBus positions 1–12

Prerequisites: Hardware, Firmware, and Software

Component Role Order Code / Version
Siemens CPU 315-2DP PROFIBUS DP master 6ES7 315-2AG10-0AB0 (or 2AF03 / 2AH14 variants)
Siemens STEP 7 Engineering tool V5.5 + SP2 or later (HWConfig included)
SIMATIC Manager Project tree / HWConfig host Bundled with STEP 7 V5.x
ABB CI830 PROFIBUS DP-V1 / ModuleBus gateway 3BSE013262R1
CI830 Firmware On-board runtime SW*1.3 or SW*1.4 (match the GSD!)
ABB DI810 16-channel digital input 3BSE008508R1
ABB DO810 16-channel digital output 3BSE008510R1
CI830 GSD file Slave description for STEP 7 ABB_0F70.GSD (or ABB_0F70_1.3.GSD)
PROFIBUS cable Segment wiring Siemens 6XV1830-0EH10 or equivalent, terminated at both ends
Termination Bus termination Siemens 6ES7972-0DA00-0AA0 active terminator (recommended for new installations)
Check the firmware label before doing anything else. The CI830 ships with two production firmware lines: SW*1.3 (legacy) and SW*1.4 (current). STEP 7 will happily load either GSD, but if the GSD version does not match the burned firmware, parameter negotiation aborts mid-cycle and every downstream S800 module lights its Fault LED. The DIP-switch block on the front of the CI830 prints the firmware line in plain text; verify against the label before importing the GSD.

GSD File Selection and Installation in SIMATIC Manager

The CI830 GSD identifies the device to STEP 7 with PROFIBUS Ident Number 0x0F70. ABB publishes firmware-keyed GSDs: a v1.3 GSD for legacy modules and a v1.4 GSD for current production. Both work, but the GSD must match the firmware burned into the CI830; a v1.4 GSD downloaded against a v1.3 module produces parameter negotiation failures that look identical to a wiring or slot-mismatch fault.

  1. Close every instance of SIMATIC Manager and HWConfig.
  2. Copy the GSD file (ABB_0F70.GSD) and the associated bitmap (ABB_0F70.bmp) into <STEP7>\S7DATA\GSD.
  3. Start SIMATIC Manager → Options → Install GSD File… → browse to the GSD.
  4. Wait for the catalog rebuild to finish; this may take 30-60 s on older workstations.
  5. Open HWConfig and confirm the new slave appears under PROFIBUS DP → Additional Field Devices → I/O → ABB.
If multiple GSD files for the same Ident Number live in \S7DATA\GSD, the most recently dated one wins silently. Move unused revisions into an archive folder (e.g. \S7DATA\GSD\archive) so that they are not re-picked by the catalog rebuild.

For very old projects that still use the older catalog layout, the CI830 sometimes appears under PROFIBUS DP → Other Field Devices → ABB → S800 → CI830. The path is cosmetic; the slave Ident Number 0x0F70 is what the master uses during parameterization and is what matters at runtime.

HWConfig Network Topology and Slave Insertion

Open HWConfig for the S7-300 station, double-click the DP interface row of the CPU 315-2DP, and set the master address (default 2) and the operating mode DP Master. On the PROFIBUS line, drag the CI830 symbol from the catalog onto the bus and assign the slave address that matches the rotary DIP switches on the module (3 in the reference configuration).

Set the baud rate to a value supported by every segment. For a short panel cable, 1.5 Mbps is typical; for plant wiring that exceeds 100 m, drop to 500 kbps or 187.5 kbps. The CI830 auto-detects baud rate from the master's parameterization frames, so no baud switch is required on the module itself.

Baud Rate Max Segment Length (Type A cable) Typical Use
9.6 kbps 1 200 m Very long segments, legacy slaves
187.5 kbps 1 000 m Long plant trunks
500 kbps 400 m Mid-size panels
1.5 Mbps 200 m Default for cabinet wiring
3 Mbps 100 m High-density I/O drops
6 Mbps 100 m Reserved; not all CI830 fw revisions support it
12 Mbps 100 m Not supported by CI830 (DP-V1 spec upper bound)
CI830 firmware SW*1.3 supports up to 6 Mbps; SW*1.4 also supports 6 Mbps but is most stable at 1.5 Mbps in field deployments. Do not exceed the segment length for the selected baud rate: the bus timing budget is unforgiving and a single over-length segment will give you random retries that look like configuration errors.

Critical Step: CI830 Slot Assignment and Parameter Positions

This is the step that the original integrator missed and the root cause of the persistent Fault LEDs. The CI830 exposes twelve slots in HWConfig (slots 1–12; slot 0 is occupied by the CI830 itself). Slots 1–12 represent the ModuleBus positions that physically sit on the right-hand side of the CI830 baseplate.

For each populated position you must:

  1. Insert the matching S800 module (DI810, DO810, AI810, AO810, …) into the correct HWConfig slot — slot 1 = leftmost physical position, slot 2 = next to it, and so on.
  2. Double-click the inserted module to open the Properties – DP Slave dialog.
  3. Switch to the Parameter Assignment tab.
  4. Set the ModuleBus Position (also called "Position" or "Slot Index") to the same number as the HWConfig slot. Modules shipped from ABB default to position 1.
  5. Save the slot and repeat for every physical module.

If two slots share the same position, the CI830 reports a configuration mismatch and every affected I/O module lights its Fault LED red. If a HWConfig slot is left empty while the physical position is populated, the CI830 raises the same diagnostic against the physical module. Either way, the user's observation that "both Fault lamps are ON while Power on the CI830 is green and both Tx and Rx are steady yellow" is the canonical signature of a configuration error during the parameterization phase, not a wiring error.

HWConfig Slot Module Order Code Physical Position on CI830 Parameter Position
0 CI830 (DP slave) 3BSE013262R1
1 DI810 3BSE008508R1 Leftmost slot 1
2 DO810 3BSE008510R1 Second slot 2
3–12 Empty / future modules Empty Leave empty
PROFIBUS Startup State MachinePower-onWait_PrmWait_CfgData_ExchangePrm reject → Fault LEDCfg mismatch → Fault LEDSlot empty → Fault LEDWhen the master rejects Cfg, all downstream I/O modules light Fault while CI830 Power stays green and Tx/Rx show steady yellow.

Note also that an empty HWConfig slot is not an error — the CI830 accepts gaps in the slot list, and so does the S7-300 master. What you cannot do is assign two modules to the same slot index, or place a module in a slot index that is empty on the baseplate.

PROFIBUS Address and Baud Rate Configuration

The CI830 station address is set with a rotary switch on the front of the module. Address 0 is reserved for master-class operation; addresses 1–125 are valid slave addresses per IEC 61158. Address 3 used in the reference configuration is legal, but it must not collide with the master address (2) or with any other slave on the segment. The DIL switch has 8 bits; the LSB is switch 1 and the MSB is switch 8. The resulting address is read at power-on; changing the address requires a power cycle of the CI830.

Use this binary-to-decimal mapping to set the switch:

Address = Σ (switch_i × 2^(i-1))   for i = 1..8
Example: switches 1+2 ON, others OFF → 1×1 + 1×2 = address 3

The baud rate is not switched on the CI830; the slave auto-detects the master's baud rate from the received parameterization telegram. Make sure the master's profile supports the rate you selected (e.g. "DP, 1.5 Mbps" in HWConfig → Properties → Network Settings).

LED Diagnostics: Decoding Tx/Rx/Fault Behavior

The CI830 has four front-panel LEDs that map cleanly to PROFIBUS DP state. The combination described by the integrator — Power ON, Tx and Rx steady yellow, Fault ON on the S800 modules — is a configuration error during Wait_Cfg, not a physical-layer fault.

LED Color Off Flashing Steady
PWR Green No 24 V supply to CI830 Self-test / bootloader active Module healthy
Tx Yellow Slave silent (no token) Token passing, normal traffic Constant retransmit — usually Prm/Cfg reject
Rx Yellow No frames received Receiving frames from master Receiving noise or short frames — check termination
Fault Red No diagnostic error Diagnostic pending (ext_diag) Hardware fault, configuration mismatch, or missing module

On the S800 I/O modules (DI810, DO810, …):

LED Meaning
Power (green, steady) Module powered and internal OK
Fault (red, steady) No ModuleBus communication OR configuration reject from CI830
Fault (red, flashing) Internal module fault (replace module)
Steady yellow on both Tx and Rx is a diagnostic clue, not a wiring failure. It indicates that the CI830 is receiving parameterization frames from the master and is trying to reply, but the reply is being dropped because the master's configuration does not match the CI830's view of the ModuleBus. That is a configuration error, not a cable problem. Check the slot/position assignment described in the previous section before you swap cables.

PROFIBUS Analyzer-Based Debugging

If the Fault LEDs persist after the slot/position alignment, capture the PROFIBUS frames during startup. Tools such as the Softing PROFIBUS Inspector, Indu-Sol PROFIBUS-INspektor NT, or Siemens BT200 tap the segment in parallel (in-line tap or at the diagnostic connector) and decode every master/slave telegram. This is the fastest way to discriminate between parameterization, configuration, and application-layer failures.

Frames to Capture

  • Set_Slave_Address (SSA) — broadcast from the master in the parameterization phase; sometimes disabled depending on master profile.
  • Parameterization (Prm) — the master tells each slave its address, watchdog, and Ident Number. The slave replies with Prm_Res; a reject raises diagnostic byte 0x0A.
  • Check_Cfg — the master tells each slave which slots are populated and with what I/O lengths. The slave replies with Check_Cfg_Res; a mismatch raises 0x0B "Configuration Error".
  • Slave_Diag — slave-initiated diagnostics with the standard PROFIBUS DP diagnostic header (first byte 0x08 = station_status_1).
  • Data_Exchange — cyclic I/O; absence of Data_Exchange frames after a successful Cfg handshake indicates that the CI830 is healthy but the I/O modules are not.

Diagnostic Byte Mapping

station_status_1 Bit Name Meaning
0x01 Diag_Station_Non_Existent Master cannot reach slave; address wrong or cable broken
0x02 Diag_Station_Not_Ready Slave still in power-on / self-test
0x04 Diag_Cfg_Fault Check_Cfg rejected; configuration mismatch (slot/position)
0x08 Diag_Extended_Not_Supported Master asked for ext_diag but slave does not support it
0x10 Diag_Not_Supported Function not supported by slave (e.g. SSA on CI830)
0x20 Diag_Invalid_Slave_Response Slave reply timing violated — baud rate or segment issue
0x40 Diag_Prm_Fault Prm rejected; Ident Number or parameter data wrong
0x80 Diag_Master_Lock Slave is locked to another master (CiR / redundancy)

A typical "Fault LED on every I/O module" capture looks like this:

  1. Master → Slave: Prm with Ident Number 0x0F70, accepted.
  2. Master → Slave: Check_Cfg listing slot 0 = CI830, slot 1 = DI810 (4 bytes I), slot 2 = DO810 (2 bytes O), slots 3-12 empty.
  3. Slave → Master: Check_Cfg_Res negative (configuration error).
  4. Slave → Master: Slave_Diag with station_status_1 = 0x04 and extended diagnostic bytes identifying the offending slot.
  5. Master retries every bus cycle; Tx and Rx on the CI830 stay lit because it is constantly retransmitting.

If the analyzer instead shows Prm_Res negative with 0x40, the Ident Number is wrong — you loaded the wrong GSD for the firmware. Reload the matching GSD and rebuild the catalog.

Compilation, Download, and Online Verification

  1. Save and compile HWConfig (Station → Save and Compile → All). The compile log must report No errors; warnings about "consistent I/O lengths" can usually be ignored.
  2. Download HWConfig to the CPU (PLC → Download). The CPU goes into STOP briefly and returns to RUN with the new PROFIBUS configuration.
  3. Go online (PLC → Connect to Target System → PROFIBUS). Right-click the CI830 row → Slave Diagnostics. The diagnostic buffer must show Configuration OK and the I/O modules must report No fault.
  4. In the S7 program, map the I/O areas. By default the CPU assigns:
    • DI810 to inputs IW 0..IW 1 (16 bits packed in 2 bytes).
    • DO810 to outputs QW 0..QW 1.
  5. Force a digital output on the DO810 (SET QW 0 or via VAT/PLC → Monitor/Modify) and read back the corresponding input on the DI810 to close the loop.
Process image update. STEP 7 updates the process image once per OB1 cycle. If you force an output from the VAT table while the CPU is in STOP, the output will not change because OB1 is not running. Either put the CPU in RUN-P and tick "Force", or write a small STL snippet inside OB1 to toggle the output for commissioning.

Troubleshooting Matrix

Symptom Probable Cause Diagnostic Step Fix
CI830 PWR ON, Tx/Rx steady yellow, all S800 Fault ON Slot/position mismatch in HWConfig Open HWConfig → check slot index vs. parameter position on each module Re-assign ModuleBus Position = HWConfig slot number for each module
CI830 PWR ON, Tx yellow flashing, Rx OFF, S800 Fault ON Ident Number mismatch (wrong GSD) Capture Prm_Res with PROFIBUS analyzer Replace GSD with version that matches CI830 firmware (1.3 ↔ 1.3, 1.4 ↔ 1.4)
CI830 PWR ON, Tx/Rx OFF, S800 Fault ON Wrong PROFIBUS address or no cable Check rotary switch vs. HWConfig; check 24 V on bus connector Set DIP to match HWConfig; verify termination at both ends
CI830 PWR flashing, S800 Fault OFF CI830 in self-test or firmware update mode Wait 30 s; if still flashing, check firmware label Reflash via ABB FieldKit tool if firmware corrupt
CI830 PWR ON, no Fault, but S800 modules not updating ModuleBus termination missing on rightmost module Check MTU terminator on last S800 baseplate Insert MTU termination plug on the last empty slot
Sporadic comm loss at high baud Segment too long for selected rate, or EMI from VFD Measure A-B signal with oscilloscope; check shield grounding Lower baud rate to 500 kbps; reroute cable away from drives; use 6XV1830-0EH10
CPU goes to STOP with SF LED on DP master lost a slave (cable break or duplicate address) CPU diagnostic buffer → "DP slave failure" Check duplicate addresses; verify connectors; check shield continuity
DI810 Fault flashing red Module internal fault (not configuration) Swap module to a known good slot Replace module; verify input voltage on field side

Field-Proven Caveats and Version Compatibility

  • GSD vs. firmware. v1.3 and v1.4 GSDs are not interchangeable. A v1.4 GSD loaded against a v1.3 module will pass Check_Cfg but fail during the user-parameter handshake; the symptom is identical to a slot-mismatch fault.
  • Empty slots are allowed. Leaving HWConfig slots 3–12 empty does not produce a Fault LED, as long as the physical positions 3–12 are also empty. If you populate a physical slot without a matching HWConfig entry, the CI830 reports a configuration error against the slot itself.
  • ModuleBus termination. The last S800 module on the baseplate must have a termination plug (TU811 or TU813) inserted in the unused end connector. Without it, modules at the far end of the chain report intermittent faults that look like configuration errors but happen only at certain baud rates.
  • Hot-swapping. The CI830 supports hot-removal of I/O modules only if the slot is empty in HWConfig. Removing a module whose slot is configured causes the CI830 to raise an ext_diag "module missing" and any process image mapping to that module will freeze at the last value.
  • CPU 315-2DP variants. The CPU 315-2DP comes in several MLFB variants; all of them support the CI830, but only the -2AG10 and later revisions support DP-V1 class 2 read/write services. If you only need DP-V0 cyclic I/O, any 315-2DP works.
  • STEP 7 version. STEP 7 V5.5 SP2 or later is recommended. STEP 7 V5.4 will load the CI830 GSD but may not display the ModuleBus Position parameter correctly in HWConfig; you would have to drop into the object properties (DP slave → Object Properties → Parameter Assignment) to set it manually.
  • Cross-vendor best practice. When integrating ABB S800 with Siemens masters, always define the slot list in a separate project first, export it as a "type file", and import it into each station. This avoids drift between the HWConfig slot index and the CI830 ModuleBus Position across multiple stations.
  • SF LED on the CPU. If the CPU 315-2DP shows a steady SF (red) after the download, the CPU has detected a DP slave failure. Open PLC → Diagnostics/Setting → Hardware Diagnostics to see which slave is missing; do not clear the diagnostic buffer until you have written down the slave address and the event ID.
  • PROFIBUS vs. PROFINET. The CI830 is PROFIBUS DP only. If the S7-300 is a CPU 315-2PN/DP, you still need to wire the CI830 to the DP port, not the PN port. The PN port will not enumerate the CI830 even if the GSD is installed in the catalog.

FAQ

Why do all my ABB S800 modules show Fault LED while the CI830 itself shows Power ON and Tx/Rx steady yellow?

This is the canonical signature of a configuration mismatch in HWConfig. The CI830 is receiving parameterization frames and trying to respond, but its Check_Cfg response is rejected because the HWConfig slot list does not match the physical ModuleBus arrangement. Open HWConfig, expand the CI830 slave, and verify that every physical I/O module occupies the same HWConfig slot number as the "ModuleBus Position" set under Properties → Parameter Assignment.

Can I use a CI830 firmware SW*1.4 GSD with a CI830 SW*1.3 module?

No. The Ident Number is the same (0x0F70), but the user-parameter handshake is different between firmware lines. A 1.4 GSD loaded against a 1.3 module produces a Prm_Res reject with diagnostic byte 0x40, and the CI830 raises a configuration fault on every downstream I/O module. Always match the GSD to the firmware label printed on the front of the module.

What is the maximum number of S800 I/O modules I can put on a single CI830?

Twelve. The CI830 exposes slots 1–12 in HWConfig and twelve physical ModuleBus positions on its right-hand side. You can populate any subset of those positions; empty positions are allowed. The total cyclic I/O payload is limited by PROFIBUS DP (244 bytes input + 244 bytes output per slave), which is well above what twelve S800 modules typically produce.

Do I need to terminate the last S800 module on the baseplate?

Yes. The right-most S800 module must have a TU811 or TU813 termination plug in the unused end connector. Without it, modules at the far end of the chain show intermittent Fault LEDs that change with baud rate and ambient temperature, and the CI830 reports a "module missing" diagnostic that does not correlate with any slot in HWConfig.

Will this work on a Siemens CPU 315-2PN/DP?

Yes, but the CI830 must be wired to the DP port, not the PN port. The PROFINET interface on the 315-2PN/DP will not enumerate the CI830 even though the GSD is installed in the STEP 7 catalog, because the CI830 is a PROFIBUS DP-V1 slave and does not speak PROFINET. Use the integrated DP port for the CI830 segment and reserve the PN port for PROFINET-only devices such as ET200SP or SINAMICS drives.

Back to blog