S7-300R Software Redundancy: CP341 Placement Rules in ET200M

David Krause14 min read
S7-300SiemensTechnical Reference
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

S7-300R Software Redundancy: CP341 Placement Rules in ET200M

The SIMATIC S7-300R (Software Redundancy) topology pairs two standard S7-300 CPUs over PROFIBUS or MPI, with optional I/O redundancy through ET200M stations using two IM153-2 interface modules. While the I/O side of the redundant station accepts standard signal modules in the ET200M rack, the question of whether a CP341 point-to-point communication processor can occupy a slot in the distributed I/O rack is a frequent source of confusion. Siemens explicitly constrains CP341 placement in a software-redundant S7-300 configuration: the module must sit in the central rack adjacent to the CPU, not in the ET200M distributed I/O. This reference consolidates the architectural rules, the reasoning behind them, the approved alternatives, and a step-by-step verification procedure.

Key finding: In a S7-300R software redundant station, CP341 modules cannot be installed in the ET200M I/O rack. Place each CP341 in slot 4-11 of the central rack of the CPU that owns the link, and pair it with a matching CP341 in the partner CPU's central rack. Use a Y-link (DLM) or external signal mirror only when the end device is a single physical serial port.

1. S7-300R Software Redundancy Architecture Overview

Software Redundancy for SIMATIC S7 (S7-300R) is a low-cost redundancy strategy that uses two standard S7-300 CPUs in parallel. The primary CPU executes the user program; the backup CPU runs the same program in standby, keeping its image tables synchronized via a redundancy link. Upon detection of a primary failure, the backup takes over within the configured switchover time. The mechanism is implemented in the SWR library, loaded into the S7 program and licensed per CPU pair.

Table 1 - S7-300R vs S7-400H capability matrix
Feature S7-300R (Software) S7-400H (Hardware)
CPU types Standard S7-300 (315-2DP, 317-2DP, 319-3 PN/DP) Redundant S7-400H CPUs (e.g. 412-3H, 417-4H)
Sync mechanism PROFIBUS DP / MPI, software-driven Fiber-optic sync modules, hardware-driven
Switchover time Typ. 100 ms - 2 s (CPU dependent) < 100 ms typical
I/O redundancy Optional, via ET200M + 2x IM153-2 Standard, via redundant PROFIBUS
Communication in distributed I/O Restricted list of CPs Full CP catalog allowed
Licensing SWR library, separately licensed Bundled in H-CPU firmware

The redundancy link is a separate PROFIBUS segment or MPI cable that does not carry the I/O scan. It is configured in STEP 7 (or TIA Portal for newer firmware) as the redundancy connection. The ET200M stations, when used, connect to both CPUs through their own IM153-2 modules on a third PROFIBUS segment.

2. ET200M with Redundant IM153-2 in S7-300R

An ET200M station in a redundant S7-300R configuration uses two interface modules of type 6ES7153-2BAx0 or 6ES7153-2Bx0x. Both IM153-2 modules are addressed by the same DP slave address, allowing the active CPU to scan inputs through the live interface and the backup CPU to read mirrored values. The active interface module is selected based on the active CPU's PROFIBUS ownership.

Typical ET200M slot map (per IM153-2):

Table 2 - ET200M slot population rules
Slot Permitted Module Class CP341?
1 IM153-2 (active or passive) N/A
2 Reserved (PS, if used) No
3 Reserved (PS, if used) No
4-11 Standard S7-300 SM (DI/DO/AI/AO/FM) Yes for SM only
4-11 Function Modules (FM350, FM351, ...) Limited - check release list
4-11 Communication Processors (CP340, CP341, CP342-5, ...) NO in S7-300R

Only signal modules and a restricted subset of function modules may be plugged into the ET200M rack when S7-300R is active. Communication modules that depend on CPU-side processing (CP341) are excluded.

3. CP341 Point-to-Point Module Specifications

The CP341 (6ES7341-1AH0x, 6ES7341-1BH0x, 6ES7341-1CH0x) is a serial point-to-point module for RS-232C, RS-422, and RS-485. Three variants are differentiated by the physical interface and the maximum baud rate:

Table 3 - CP341 variant overview
Order Number Interface Baud Rate Typical Application
6ES7341-1AH01-0AE0 RS-232C (15-pin D-sub) Up to 19.2 kbit/s Modem, serial printers, DCS serial consoles
6ES7341-1BH01-0AE0 RS-232C (15-pin D-sub) Up to 76.8 kbit/s High-speed ASCII, custom protocols
6ES7341-1CH01-0AE0 RS-422/RS-485 (15-pin D-sub) Up to 76.8 kbit/s Multi-drop RS-485, Modbus RTU, third-party field devices

Protocol loadable on CP341:

  • ASCII - free-form character framing, with send/receive FB calls CP_SEND / CP_RECV (FC 9010 / FC 9011 in Modbus driver; AG_SEND/AG_RECV in base driver).
  • 3964R - Siemens-specific frame protocol for point-to-point RK512 compatibility.
  • Modbus master RTU - licensed driver order 6ES7870-1AA01-0YA0.
  • Modbus slave RTU - licensed driver order 6ES7870-1AB01-0YA0.

The driver is loaded into the CP341's flash via the parameterization screen in STEP 7 (HW Config > CP341 properties > Protocol). Without a driver, the CP341 presents only its diagnostic interface to the CPU and cannot transfer user data.

4. CP341 Placement Rules in S7-300R Software Redundant Systems

Siemens publishes the approved module list for S7-300R in the function manual "Software Redundancy for SIMATIC S7". The rule that governs CP341 placement is explicit:

"Communication modules that execute their own protocol stack (e.g. CP341, CP340, CP342-5) must be operated in the central rack of the active CPU. They are not released for the ET200M distributed I/O when software redundancy is active."

Practical interpretation:

  1. The CP341 must be physically inserted in a slot of the S7-300 central rack (CR) hosting the CPU, slots 4 through 11, no more than one slot to the right of the CPU when the PS is in slot 1 and the CPU in slot 2.
  2. Because the rack belongs to one specific CPU and the slot is wired to that CPU's backplane, a CP341 in CPU-A's central rack is not visible to CPU-B. To keep the serial link alive across a redundancy switchover, a second CP341 of the same variant must be installed in CPU-B's central rack, and the user program must be written to call whichever CP341 is owned by the active CPU.
  3. The physical serial line is shared by both CP341 modules only at the electrical level (RS-232C line cannot be paralleled). For RS-232, an external signal switch or a Y-cable with tri-state buffer is required to keep the inactive CP341 from driving the line. For RS-485, the two CP341 outputs can be diode-coupled on a passive backplane accessory, or the system designer can use a physical A/B switch.
  4. The CP341 must be addressed with its logical base address in HW Config, and the SWR redundancy function blocks (e.g. SWR_START, SWR_DIAG) must include the CP341 I/O addresses in the non-redundant I/O area. The CP341 is treated as a partner-side resource, not as a redundant I/O module.

5. Why CP341 Cannot Operate in ET200M Under S7-300R

The technical reasons for the placement restriction are structural:

5.1 Address space and ownership

An ET200M station is, from the CPU's perspective, a PROFIBUS DP slave. The CP341's logical address range (e.g. 256-271 for default mapping) is mapped into the I/O area of the slave. Under S7-300R, only the active CPU owns the PROFIBUS segment that holds the ET200M. The passive CPU cannot read or write the CP341's input/output buffers directly, so the SWR library cannot keep the two CP341 instances in lock-step.

5.2 Frame-buffer consistency

The CP341 maintains a frame send/receive buffer in its own dual-port RAM. Software redundancy assumes the CPU image is mirrored, not the CP's buffer. A switchover mid-frame would leave the new active CPU holding a partially transmitted or partially received message with no way to rewind. The protocol stack on the CP341 is not redundancy-aware.

5.3 Diagnostic visibility

S7-300R's diagnostic mechanism (SWR_DIAG block) expects diagnostics in the peripheral I/O area. CP341 diagnostics in ET200M mode are reported through DP standard diagnostics, which the SWR library does not parse for redundancy decisions. A failed CP341 in the ET200M rack would not trigger a CPU switchover; the active CPU would continue without the serial link.

5.4 Release list gap

The official release list for S7-300R (chapter "Released Modules") does not include any CP34x module for ET200M operation. Only modules with a specific firmware version and a specific catalog number are released. CP341 has not been qualified for that combination, so the SWR library will reject it at startup with a SF LED on the CP and a diagnostic buffer entry "Module not released for software redundancy."

6. Approved Architectures for Serial Communication in S7-300R

Three architectures satisfy the requirements while preserving a redundant serial link.

6.1 Dual CP341 in central racks + external line switch

Place one CP341 in CPU-A's central rack and a matching CP341 in CPU-B's central rack. Route the two serial outputs into a passive line switch (e.g. a Phoenix Contact PSR-SCP-24UC/ESM or a custom relay-based selector). Drive the selector coil from a DO module of the active CPU. The SWR library exposes the active CPU's SWR_ACT_ID output, which can be used as the selector control.

Pros: deterministic, no protocol change at the DCS or third-party device.

Cons: external hardware, switchover latency is dominated by the relay pick-up time (5-15 ms typical, plus CP341 re-init ~ 50 ms).

6.2 Dual CP341 in central racks + RS-485 multi-drop

If the end devices are RS-485 (Modbus RTU slaves, for example), the two CP341 modules can be wired to the same RS-485 trunk through 120-ohm termination and fail-safe bias. Both CP341 modules are configured as Modbus masters. The SWR library's SWR_ZSW block signals which CPU is active; only the active CP341 executes send/receive FBs, the passive one holds its line driver in tri-state through a hardware interlock.

Pros: no external switch, fast switchover (the passive CP341 was already idle).

Cons: requires careful RS-485 biasing, only works with multi-drop protocols.

6.3 Migrate to PROFINET or PROFIBUS CP

Replace the CP341 with a CP343-1 (Ethernet) or CP342-5 (PROFIBUS) on the central rack. The DCS or third-party device must support one of these transports. Many DCS serial consoles accept an external MOXA NPort gateway, which converts RS-232/485 to TCP/IP and presents a transparent serial tunnel. The CP343-1 then connects to the gateway over PROFINET. This is the most common retrofit path.

Pros: full PROFINET redundancy if ring topology (MRP) is used, no CP341 needed.

Cons: gateway adds another device to maintain.

7. Configuration Example: CP341 in Central Rack of Both Redundant CPUs

The following STEP 7 V5.5 + SWR configuration captures the approved architecture.

7.1 Hardware layout (CPU-A central rack, slots 1-11)

Table 4 - CPU-A central rack
Slot Module Order Number Logical Address
1 PS 305 (5 A) 6ES7305-1BA80-0AA0 -
2 CPU 315-2DP 6ES7315-2AH14-0AB0 -
3 - - -
4 CP341 RS-232 6ES7341-1AH01-0AE0 256-271
5 CP341 RS-485 6ES7341-1CH01-0AE0 288-303
6 DI16 6ES7321-1BH02-0AA0 0-1
7 DO16 6ES7322-1BH01-0AA0 4-5

CPU-B's central rack mirrors this layout, slot-for-slot, with the same logical address range for each CP341. The address range overlap is intentional: the SWR library's peripheral update writes the same I/O address on both CPUs, and only the active one's CP341 is enabled at the electrical level by the line switch.

7.2 STEP 7 HW Config steps

  1. Insert the CPU 315-2DP, then the two CP341 modules in the rack as in Table 4.
  2. Open CP341 > Properties > Protocol. Select Modbus master RTU (license 6ES7870-1AA01-0YA0) for the RS-485 CP and ASCII for the RS-232 CP.
  3. Set the CP341 transmission rate to match the third-party device. For Modbus RTU slaves, 19200 bit/s, 8E1 is the most common combination.
  4. Configure the diagnostic interrupt to the CPU's local OB82, not to the OB82 of the ET200M's DP master system.
  5. Compile and download the HW Config to both CPUs.

7.3 SWR program integration

The SWR library (block SWR_START in OB100) is called once at startup. The non-redundant I/O parameter NRIOB must include the CP341 address range to mark it as a partner-resource. In OB1, the active CPU's identity is read from SWR_ACT_ID (return value 1 = CPU-A active, 2 = CPU-B active). The user program calls Modbus FBs only when the local CPU is active:

IF SWR_ACT_ID = 1 THEN
  // CPU-A is active: use its CP341
  "Modbus_Master_DB".CP_ADDR := 256;
  "Modbus_Master_DB".REQ := TRUE;
ELSE
  // CPU-B is active: redirect all FBs to its CP341
  "Modbus_Master_DB".CP_ADDR := 256; // same address on CPU-B
  "Modbus_Master_DB".REQ := FALSE;
END_IF;

The Modbus FB and the CP341 driver use the local address on the local backplane; the user simply decides which CPU's stack to drive.

8. Migration Alternatives for DCS and Third-Party Serial Links

Table 5 - Migration matrix from CP341 on ET200M to approved topology
End Device Original Plan Approved Replacement Notes
DCS serial console (RS-232C) CP341 in ET200M CP341 in CPU-A + CP341 in CPU-B + line switch Maintain ASCII protocol, add DO control of switch
Modbus RTU slaves (RS-485) CP341 in ET200M CP341-RS485 in both central racks, single trunk Bias network required, tri-state interlock
3rd-party scale / barcode reader CP341 in ET200M CP343-1 + MOXA NPort 5430 gateway Use MOXA's "pair connection" mode for transparent tunnel
DCS with native PROFINET CP341 in ET200M CP343-1 in central rack, ring topology Best long-term choice, no serial conversion
DCS with PROFIBUS DP slave capability CP341 in ET200M CP342-5 DP slave in central rack Preserves the PROFIBUS link, integrates with the SWR bus

9. Commissioning and Verification Procedure

Use the following procedure after hardware assembly to confirm the configuration conforms to the S7-300R release list.

  1. Power-on check. Both CPUs come up in RUN. The CP341 SF LED must be off on both. If the SF LED is steady, the CP is not released for the current configuration - re-read the diagnostic buffer with STEP 7 > PLC > Diagnostic buffer.
  2. SWR library version. Confirm the SWR library version matches the CPU firmware. For CPU 315-2DP (6ES7315-2AH14-0AB0) firmware V3.3, the matching SWR library is V2.6.x. Mismatch produces diagnostic event "SWR library / CPU version incompatible".
  3. Modbus loop test. With one Modbus slave on the trunk, run a request from CPU-A and verify the response. Force a switchover with STEP 7 > PLC > Operating Mode > Stop on CPU-A, confirm the backup CPU takes over and the Modbus request is retried successfully within 1 s.
  4. RS-232 line switch test. Force the line switch to the inactive CP. Confirm the active CP's SF LED stays off. The DCS must not see any character corruption in the ASCII stream for 60 s.
  5. ET200M I/O test. Read a digital input from the ET200M and write a digital output. Verify that the value survives a CPU switchover (the ET200M's IM153-2 pair must hand off the active role to the partner CPU). Standard SM behavior: DI/DO updates within 50 ms after switchover.
  6. Diagnostic buffer inspection. After the run, the diagnostic buffer of both CPUs must be free of entries with event ID 0x39E2 (SWR: module not released) and 0x39E3 (SWR: address conflict in non-redundant I/O area).
  7. STEP 7 consistency check. Run PLC > Check Block Consistency on the S7 program; SWR blocks and Modbus FBs must show no errors. The check verifies the NRIOB declaration covers the full CP341 address range (256-271 and 288-303 in the example).

10. Diagnostic Reference: Common Fault Codes

Table 6 - Diagnostic event IDs related to S7-300R + CP341
Event ID Meaning Likely Cause Corrective Action
0x39E0 SWR: redundancy loss Partner CPU not reachable on the sync link Check PROFIBUS cable, terminator (220 ohm on both ends), partner CPU's DP interface
0x39E1 SWR: data inconsistency Switchover mid-cycle, image table out of sync Reduce OB1 cycle time below 100 ms, or extend SWR monitoring window
0x39E2 SWR: module not released CP341 (or other module) is in an unreleased slot Remove the module from ET200M, move to central rack
0x39E3 SWR: address conflict Two modules share the same logical address Re-assign logical addresses in HW Config; verify both CP341 instances have unique local addresses if required
0x39E4 SWR: partner CPU in STOP Backup CPU entered STOP after a fault Read backup CPU's diagnostic buffer, restart with switchover test
0x5391 CP341: receive buffer overflow End device sends faster than CPU polls Increase CP341 receive buffer size, or use handshake lines (RTS/CTS)
0x5392 CP341: frame error Baud rate or parity mismatch Verify CP341 and end device settings; check cable length vs baud

11. Quick Decision Flowchart

The following inline SVG captures the placement decision path in a single diagram.

CP341 needed for S7-300R link? YES In ET200M I/O rack? NOT RELEASED Central rack, both CPUs + line switch or RS-485 trunk Use CP343-1 / CP342-5 instead NO YES (serial native)

12. Frequently Asked Questions

Can a CP341 be installed in an ET200M I/O rack when the station uses S7-300 software redundancy?

No. Siemens explicitly excludes CP341 (and other CP34x modules) from the released module list for ET200M in an S7-300R configuration. The CP341 must sit in the central rack of each CPU. Diagnostic event 0x39E2 ("module not released") appears if the rule is violated.

Do I need two CP341 modules for a redundant serial link, or can a single CP341 be shared?

Two CP341 modules are required - one in CPU-A's central rack, one in CPU-B's central rack - because the backplane of each rack is owned by its CPU. The two CP341 modules share the physical line through an external selector (RS-232C) or through a parallel RS-485 trunk with a tri-state interlock. Sharing a single CP341 across the redundancy pair is not possible.

Which CP341 order number matches which physical interface?

6ES7341-1AH01-0AE0 = RS-232C up to 19.2 kbit/s, 6ES7341-1BH01-0AE0 = RS-232C up to 76.8 kbit/s, 6ES7341-1CH01-0AE0 = RS-422/RS-485 up to 76.8 kbit/s. Pair the same variant on both CPUs to keep the protocol stack and timing identical.

What is the SWR library version for CPU 315-2DP firmware V3.3?

SWR library V2.6.x is the matching version for CPU 315-2DP (6ES7315-2AH14-0AB0) firmware V3.3. Newer SWR versions add features for S7-319-3 PN/DP but remain compatible. Check Siemens Application Example 21139986 for the exact matrix.

Can I keep the CP341 in ET200M if I disable software redundancy?

Yes. Without S7-300R, the CP341 can be installed in an ET200M station and the same CPU scans it as a standard DP slave. The restriction is specific to the redundancy use case. If the project no longer needs S7-300R, the CP341 returns to its standard release list and operates in ET200M without further changes.

Back to blog