Siemens CP 341 Multi-Drop Modbus Wiring: Why Only One S7-314C-2PTP Slave Responds
A recurring commissioning fault with the Siemens CP 341 communications processor configured as a Modbus RTU master is that two (or more) RS-422 "4-wire" slaves cannot be addressed simultaneously: the master exchanges data with the first slave, but the second slave is silent. The fault is not in the program, not in the baud rate, and not in the slave Modbus addresses. The fault is electrical: RS-422 does not support multi-drop networking, and a multi-drop Modbus bus must use the RS-485 interface on every device. This reference explains the electrical reason, identifies the exact CP 341 and CPU 314C-2PTP variants required, and gives the wiring, termination, parameterisation, and commissioning procedure that resolves the issue. The same procedure applies to the equivalent multi-drop architectures on the CP 340 / CP 341 family and to any 15-pin Sub-D RS-485 / RS-422 PtP port in the SIMATIC S7-300 / S7-400 range.
1. Problem Statement
Configuration reported in the field:
- Master: SIMATIC S7-300 CPU 315-2DP with a CP 341 (order number
6ES7 341-1CH01-0AE0or6ES7 341-1CH02-0AE0), configured as Modbus Master RTU, RS-422 4-wire. - Slave 1: CPU 314C-2PTP (
6ES7 314-6BF0.-0AB0or6ES7 314-6BG0.-0AB0), RS-422 4-wire, Modbus address 1. - Slave 2: CPU 314C-2PTP, RS-422 4-wire, Modbus address 2.
Observed behaviour:
- Each slave communicates correctly with the master in isolation (point-to-point).
- When both slaves are wired in parallel, the master receives valid responses from slave 1 only.
- Removing slave 1's 15-pin connector allows slave 2 to respond correctly.
- Re-attaching slave 1 immediately silences slave 2 again.
- Modbus addresses 1 and 2 are correctly assigned in the program and confirmed by online diagnostics.
This is the signature of an electrical contention on a bus that has been wired in full-duplex RS-422. The CP 341's diagnostic buffer typically reports 0E 0C (frame error) and 0E 0B (response timeout) for the silent slave, while the working slave returns valid Modbus exception codes or register data.
2. Root Cause: RS-422 Cannot Tri-State, RS-485 Can
The differential balanced line drivers behind RS-422 and RS-485 look almost identical at the connector. The functional difference is the transmitter enable / disable behaviour of the line driver:
| Property | EIA-422 (RS-422) | EIA-485 (RS-485) |
|---|---|---|
| Differential driver | Yes | Yes |
| Transmitter tri-state control | No (always enabled when powered) | Yes (DE / RE control pin) |
| Drivers allowed on one twisted pair | 1 (single driver, up to 10 receivers) | 32 unit loads (multiple drivers allowed) |
| Network topology | Point-to-point, point-to-multipoint receive-only | True multi-drop (half- or full-duplex) |
| Max cable length at 19.2 kbit/s | 1200 m | 1200 m |
| Typical use | Legacy 4-wire point-to-point, e.g. printer port | Fieldbuses (Modbus, Profibus DP, BACnet MS/TP) |
When a multi-drop bus is built with RS-422 drivers, every slave's transmitter is always active on the wire. As soon as more than one slave's receiver is listening, the bus becomes a contention domain: slaves are simultaneously driving A and B in opposite directions, so the differential voltage collapses and the master sees a continuous framing error. The slave that happens to win the contention is the one physically closest to the master (lowest cable resistance); the other slaves appear "silent". This matches the reported symptom exactly.
RS-485 drivers have an enable pin (DE). Modbus RTU drivers are required to release the bus (tri-state) when not actively transmitting. The CP 341 and the CPU 314C-2PTP both contain RS-485 transceivers; they simply have to be parameterised into RS-485 mode (rather than RS-422 mode) for the multi-drop to work.
3. RS-422 vs RS-485: Wiring and Protocol Implications
RS-485 supports two wiring schemes:
- RS-485 4-wire (full-duplex) — one dedicated driver pair and one dedicated receiver pair. Permits simultaneous master ↔ slave traffic in both directions. Rarely used for Modbus RTU because Modbus RTU is fundamentally half-duplex.
- RS-485 2-wire (half-duplex) — a single differential pair is shared by all transmitters and receivers. All devices tri-state except when actually transmitting. This is the canonical Modbus RTU physical layer for multi-drop.
Because Modbus RTU is half-duplex (a master request is always followed by a slave response, never both at once), the 2-wire RS-485 variant is strongly preferred for multi-drop. It uses one less twisted pair, halves the cable cost, and removes any risk of master/slave direction mismatches on the second pair. Function codes 01 (read coils), 02 (read discrete inputs), 03 (read holding registers), 04 (read input registers), 05 (write single coil), 06 (write single register), 15 (write multiple coils) and 16 (write multiple registers) all fit cleanly into a 2-wire Modbus RTU frame.
4. Hardware Identification and Pin Assignments
4.1 CP 341 Order Numbers and Variants
| Order number (MLFB) | Interface | Engineering tool |
|---|---|---|
| 6ES7 341-1AH01-0AE0 | RS-232C (V.24) | STEP 7 V5.x / TIA Portal V13+ |
| 6ES7 341-1BH01-0AE0 | 20 mA current loop (TTY) | STEP 7 V5.x / TIA Portal V13+ |
| 6ES7 341-1CH01-0AE0 | RS-422 / RS-485 (X27) | STEP 7 V5.x / TIA Portal V13+ |
| 6ES7 341-1CH02-0AE0 | RS-422 / RS-485 (X27, GSD) | STEP 7 V5.x / TIA Portal V13+ |
4.2 CP 341 X27 (RS-422 / RS-485) Sub-D 15 Pin Assignment
The CP 341 RS-422/RS-485 variant uses a female 15-pin Sub-D connector labelled X27. The differential pair is labelled A / B. In Siemens manuals the polarity is fixed: A is the inverting (–) input/output in some legacy manuals and the non-inverting (+) in others; what matters is that every device on the bus agrees on which pin is A and which is B.
| Pin | Signal | Description |
|---|---|---|
| 1 | — | Shield — bond to backplane shield bar at master end |
| 2 | T(A) | Transmit A (driver output, RS-422 / RS-485 4-wire) |
| 4 | R(A) | Receive A (receiver input, RS-422 / RS-485 4-wire) |
| 5 | M5V | 5 V return (for internal terminator option) |
| 6 | P5V | +5 V (for internal terminator option) |
| 7 | GND | Logic ground / signal common |
| 8 | GND | Logic ground (loop to pin 7) |
| 9 | T(B) | Transmit B (driver output) |
| 11 | R(B) | Receive B (receiver input) |
| 15 | RTS | Direction control (RS-485 driver enable, 2-wire) |
Source: CP 341 manual, chapter "X27 pin assignment". Verify against the manual revision delivered with the module before commissioning.
4.3 CPU 314C-2PTP X2 (PTP Interface) Sub-D 15 Pin Assignment
The PTP interface on the S7-314C-2PTP is connector X2. The pin assignment matches the CP 341 X27 on the A/B data pair and on the ground pins. The CPU 314C-2PTP does not support RS-232 on this connector — only RS-422 or RS-485 (4-wire or 2-wire).
| Pin | Signal | Description |
|---|---|---|
| 1 | — | Shield |
| 2 | T(A) | Transmit A (driver output) |
| 4 | R(A) | Receive A (receiver input) |
| 7 | GND | Logic ground / signal common |
| 8 | GND | Logic ground |
| 9 | T(B) | Transmit B (driver output) |
| 11 | R(B) | Receive B (receiver input) |
Verify against: S7-300 CPU 31xC Technological Functions manual, chapter 4 "Point-to-point connection (PtP)" — see the Siemens S7-300 CPU 314C product page.
5. Solution: RS-485 2-Wire Multi-Drop Wiring
Switch every device on the bus from "RS-422 4-wire" to "RS-485 2-wire". Re-wire so that all devices share a single differential pair and a single common. The CP 341 and the CPU 314C-2PTP both expose R(A) and T(A) on pin 4 and pin 2 respectively; in RS-485 2-wire mode the transceiver internally bonds these two signals to the same net, so pin 2 and pin 4 of each device must be wired together at the connector.
5.1 Wiring Table (RS-485 2-Wire)
| CP 341 (master) | → | CPU 314C-2PTP slave 1 | → | CPU 314C-2PTP slave 2 |
|---|---|---|---|---|
| Pin 4 (R(A) / T(A) joined) | → | Pin 4 (R(A) / T(A) joined) | → | Pin 4 (R(A) / T(A) joined) |
| Pin 11 (R(B) / T(B) joined) | → | Pin 11 (R(B) / T(B) joined) | → | Pin 11 (R(B) / T(B) joined) |
| Pin 7 or 8 (GND) | → | Pin 7 or 8 (GND) | → | Pin 7 or 8 (GND) |
| Pin 1 (shield) | → | Pin 1 (shield) | → | Pin 1 (shield) |
Topology: daisy-chain, no stubs. Each device is a "drop" on the bus. The shield is bonded to the cabinet earth bar at one end only (typically at the master end) to avoid shield loops. Inside the connector, use a short jumper between pin 2 and pin 4, and a second jumper between pin 9 and pin 11, so that the RS-422 T and R pairs become a single 2-wire A/B pair.
5.2 Topology Diagram
5.3 If RS-485 4-Wire Is Specified
RS-485 4-wire (full-duplex) is electrically possible for Modbus RTU but operationally wasteful. If the customer specification demands it, use this pinout:
| CP 341 (master) | CPU 314C-2PTP slave 1 | CPU 314C-2PTP slave 2 |
|---|---|---|
| Pin 2 (T(A)) | Pin 4 (R(A)) | Pin 4 (R(A)) |
| Pin 4 (R(A)) | Pin 2 (T(A)) | Pin 2 (T(A)) |
| Pin 9 (T(B)) | Pin 11 (R(B)) | Pin 11 (R(B)) |
| Pin 11 (R(B)) | Pin 9 (T(B)) | Pin 9 (T(B)) |
Note that on the slave side the master T-pair drives both slave R-pins in parallel, and both slave T-pins are paralleled onto the master R-pair. Even here the slave transmitters are tri-state (RS-485), which is the only reason the paralleled T-pins do not contend.
6. Cable, Shield, and Termination
6.1 Cable
- Use a twisted pair, overall foil + braid shield cable with characteristic impedance ≈ 120 Ω. Examples: Belden 3105A, Lapp ETHERLINE 2×2×0.34, Helukabel Profibus DP.
- For RS-485 2-wire, one twisted pair carries A/B and a second pair (or the shield) carries GND.
- For RS-485 4-wire, two twisted pairs carry the T-pair and R-pair; a third conductor carries GND.
- Maximum recommended length: 1200 m at ≤ 19.2 kbit/s, ≤ 1000 m at 38.4 kbit/s, ≤ 200 m at 187.5 kbit/s (per EIA-485 and Siemens CP 341 manual).
6.2 Shielding
- Bond the cable shield to the cabinet PE bar at one end only (typically the master end) to prevent circulating currents.
- Use 360° EMC backshells (Sub-D metal hoods with clamp). Do not "pigtail" the shield to a Sub-D pin.
- If the cable enters multiple cabinets, bond the shield to the cabinet PE bar at the entry point of each cabinet, but only carry the signal ground (GND, pin 7/8) on the cable.
- Do not run the Modbus cable parallel to VFD output cables within 200 mm. Cross at 90° if they must intersect.
6.3 Termination Resistor
Install one 120 Ω ± 5 % resistor between A and B at each end of the bus. For a 3-device bus (1 master + 2 slaves) you install one terminator at the master's end and one at the physically last slave's end. The middle device is not terminated.
| Location | Termination? | Notes |
|---|---|---|
| CP 341 (master end) | Yes (recommended) | 120 Ω between pin 4 and pin 11 |
| CPU 314C-2PTP slave 1 (middle) | No | Mid-bus termination distorts the line |
| CPU 314C-2PTP slave 2 (last physical device) | Yes (mandatory) | 120 Ω between pin 4 and pin 11 |
On the CP 341, an internal 120 Ω terminator can be realised by inserting resistors between pin 5/6 (P5V/M5V) and pin 4/11 in the X27 connector hood. The standard 6ES7 341-1CH0.-0AE0 does not include a built-in DIP switch for this. Always use an external 120 Ω resistor unless the manual for your specific MLFB revision explicitly states otherwise. A 1/4 W carbon-film or metal-film resistor is sufficient.
6.4 Rule of Thumb for Termination
Termination is required when the propagation delay of the cable is not negligible compared to one bit time:
t_bit = 1 / baud_rate // 9600 bit/s -> 104 µs
t_prop ≈ 5 ns/m × cable_length // 1000 m -> 5 µs
Terminate if t_prop > t_bit / 10
At 9600 bit/s termination is needed above ~2 m; at 19.2 kbit/s, above ~1 m. In practice, always terminate the bus ends — leaving them open costs nothing in components and prevents hours of troubleshooting when noise or cable damage later distorts the line.
7. Modbus Node Address Configuration
Each slave on the bus must have a unique Modbus address in the range 1–247. The CP 341 master does not occupy a node address on the Modbus RTU bus (it is the master; the protocol is a query/response, not a peer-to-peer bus). The two CPU 314C-2PTP slaves do.
The Modbus node address for the CPU 314C-2PTP is set in the S7-300 program using the loadable Modbus Slave driver (see Siemens Industry Online Support for the Modbus RTU Slave driver manual). The address is read from the configured Slave address parameter when the driver is installed.
| Device | Modbus address | Parameter location (STEP 7) |
|---|---|---|
| CP 341 (master) | — (master, no address) | — |
| CPU 314C-2PTP slave 1 | 1 | "PtP parameters → Modbus slave → Address" |
| CPU 314C-2PTP slave 2 | 2 | "PtP parameters → Modbus slave → Address" |
The Modbus master issues requests with function codes 01–06, 15, 16, 23 etc. (per the Modbus Application Protocol Specification v1.1b3). The slave at the addressed node responds; all other slaves ignore the request. This is the addressing model — but it can only work if the slave transmitters are tri-stated, which is the RS-485 guarantee.
8. CP 341 Parameterization, Driver and Function Blocks
8.1 Interface Type
Open the CP 341 hardware object in HW Config (STEP 7 V5.x) or in the device configuration (TIA Portal). The interface parameter dialog exposes a "Protocol" / "Interface" selector. For Modbus RTU over RS-485:
- Interface: RS-485 2-wire (recommended) or RS-485 4-wire
- Half-duplex / Full-duplex: Half-duplex (required for Modbus RTU)
- Baud rate: 9600 bit/s typical; 19 200 bit/s acceptable. Master and all slaves must match.
- Parity: Even (Modbus RTU standard) — 8E1
- Data bits: 8
- Stop bits: 1
- Flow control: None
If the dialog still offers RS-422 4-wire, you can technically select it on the CP 341 hardware, but the slave side MUST be RS-485. Mixing an RS-422 master with RS-485 slaves will work electrically on a 2-wire bus because the electrical layer is compatible — but on the CP 341 side the tri-state control is not active, which re-introduces contention. Always select RS-485 on the CP 341 in this topology.
8.2 Modbus Master Driver and Dongle
Modbus RTU master protocol is not a built-in firmware function of the CP 341. It is provided as a loadable driver on a dongle. The relevant order numbers are:
| Order number | Description |
|---|---|
| 6ES7 870-1AA01-0YA0 | Modbus Master RTU driver (single licence, single CP 341) |
| 6ES7 870-1AB01-0YA0 | Modbus Slave RTU driver (for the CPU 314C-2PTP side) |
The driver is installed via the supplied CD and registered with the CP 341 at download time. Without the dongle installed on the CP 341, the master project will compile but the CP will refuse to start the Modbus protocol and report a "Protocol driver not loaded" event in the diagnostic buffer.
8.3 Sample Configuration (STEP 7)
After the dongle is recognised, the CP 341 is configured via the "CP 341 – Point-to-Point" parameter dialog:
- Select Protocol = MODBUS master RTU.
- Select Interface = RS-485 2-wire half-duplex.
- Set Baud rate = 9600, Parity = even, Data bits = 8, Stop bits = 1.
- Set Response timeout = 2000 ms.
- Define the Modbus job list with one entry per slave (e.g. Read holding registers from slave 1, function 03, start 0, count 10; Read holding registers from slave 2, function 03, start 0, count 10).
8.4 TIA Portal Notes
TIA Portal V13 SP1 and later supports the CP 341 in the device catalogue under "Communications modules → PtP". The Modbus RTU master protocol must be enabled in the device properties; the dongle still has to be physically installed. TIA Portal V17 / V18 added GSD-based configuration via the CP 341 GSD file. The same wiring and interface rules apply.
8.5 Function Blocks
The Modbus master driver for the CP 341 ships with two function blocks for the S7-300 program:
| FB / FC | Purpose |
|---|---|
| FB 8 — "P_SND_RK" | Sends a Modbus job to the CP 341 |
| FB 7 — "P_RCV_RK" | Receives the response from the CP 341 |
| FC 1 / FC 2 (or named TIA variants) | Auxiliary blocks to initialise / read the CP 341 status |
Typical call sequence in OB1 / OB35 (cyclic, time-multiplexed per slave):
// Master polls slave 1, then slave 2 in alternating OB35 cycles
CALL FB 8, DB 8
REQ := TRUE
LADDR := 256 // CP 341 logical base address
DB_NO := 100 // job data block for slave 1
DBB_NO := 0
LEN := 10
DONE := M 10.0
ERROR := M 10.1
STATUS := MW 12
// After DONE / ERROR, read the response
CALL FB 7, DB 7
EN_R := TRUE
LADDR := 256
DB_NO := 101 // response data block for slave 1
DBB_NO := 0
LEN := 20
NDR := M 11.0
ERROR := M 11.1
STATUS := MW 14
For multi-slave operation, allocate separate job / response DBs per slave, and interleave the calls in OB35 with a time-multiplex. Avoid calling FB 8 with a new request before the previous one has returned DONE or ERROR, or the CP 341 will report a "Job still active" diagnostic event.
9. CP 341 Diagnostic Buffer and Error Codes
The CP 341's diagnostic buffer is accessible from STEP 7 via CP 341 → Diagnostics → Diagnostic Buffer. The most common events encountered on a multi-drop Modbus RTU bus:
| Event ID | Meaning | Typical cause |
|---|---|---|
| 0E 0B | Receive timeout — no end-of-frame within monitoring time | Slave not transmitting; wrong address; A/B swapped; bus contention |
| 0E 0C | Frame error — parity, stop-bit or character framing fault | Baud rate mismatch; A/B polarity inverted; EMI; no termination |
| 0E 0F | Telegram length error — Modbus response length inconsistent with PDU | Wrong slave configuration; register count mismatch; bus noise |
| 0E 19 | Driver not loaded — Modbus protocol driver not present | Dongle 6ES7 870-1AA01-0YA0 not installed or not recognised |
| 0E 1A | Protocol error — driver and dongle revision mismatch | Driver and dongle belong to different firmware revisions |
10. Verification and Commissioning Checklist
- Physical: Confirm Sub-D hoods are full-metal, shield clamped 360°, cable shield bonded at master end only.
-
Electrical idle-line voltage: With the bus powered and all devices idle, measure the DC voltage between A and B at each device. RS-485 idle line should read ≥ 200 mV with the polarity
V_A − V_B > 0(i.e. A is more positive than B). If the polarity is inverted, you have wired A to B and B to A — swap one pair end-to-end. - Termination resistance: With power off, measure 60 Ω between A and B at any bus device (two 120 Ω in parallel). If the meter reads 120 Ω, only one terminator is fitted. If it reads 40 Ω, three are fitted and you must remove the middle one.
- Address uniqueness: Cycle through Modbus addresses 1 and 2 from the master and verify exactly one slave responds to each.
- Cyclic data: Run for ≥ 1 hour with the master reading holding registers from both slaves. Zero retries per cycle is the target.
- EMI / cable routing: Verify the Modbus cable does not run parallel to VFD output cables within 200 mm; cross at 90° if they must intersect.
- Diagnostic buffer clean: Confirm zero entries with ID 0E 0B / 0E 0C / 0E 0F over a 24-hour soak test.
11. Troubleshooting Matrix
| Symptom | Likely cause | Diagnostic | Action |
|---|---|---|---|
No slave responds; CP 341 reports 0E 19
|
Modbus driver dongle missing | Check CP 341 diagnostic buffer | Install dongle 6ES7 870-1AA01-0YA0 |
| Only one slave responds; the silent one is the one physically furthest from the master | RS-422 4-wire (no tri-state) on all devices | Inspect hardware configuration: protocol = RS-422 | Switch every device to RS-485 2-wire; re-wire to single pair |
Intermittent framing errors 0E 0C
|
No termination or wrong termination value | Measure 60 Ω between A and B with power off | Install 120 Ω at master end and at last slave end only |
| All slaves respond with exception code 02 (illegal data address) | Slave Modbus register map mismatch | Inspect slave DB; read raw request bytes | Verify holding register map; check data type (Word vs DWord) |
| Master reports timeout on slave 1 only | Slave 1 address collision (both set to 1) | Read each slave's "Modbus address" parameter | Assign unique addresses 1 and 2 |
| Bus works at low baud, fails at high baud | Excessive cable length / stubs / wrong cable | Measure cable length; inspect stubs | Use ≤ 1200 m at 19.2 kbit/s; remove all stubs |
| Bus works in lab, fails in cabinet (noisy) | Shield not bonded; PE / GND loop | Continuity check shield → PE bar | Bond shield at master end only; use 360° EMC hoods |
| Bus OK, but slave 2 always returns 0xFFFF for one register | Power brownout on slave 2 PS 307 | Measure 24 V at slave 2 supply terminals | Replace PS 307; check for over-loaded 24 V rail |
12. Frequently Asked Questions
Can I keep RS-422 4-wire and just add a hub?
No. RS-422 has no tri-state control, so an active RS-422 hub would have to buffer and re-time every direction. Two slaves on a single RS-422 bus will always contend because both transmitters are permanently enabled, and no amount of external wiring or repeater logic will fix that. The only correct fix is to rewire to RS-485 2-wire (or 4-wire) on every device.
Do I have to re-wire the Sub-D connectors if I switch to RS-485 2-wire?
Yes. In RS-422 4-wire the T pair (pins 2 and 9) and the R pair (pins 4 and 11) are routed separately. In RS-485 2-wire, the A signals (pin 2 + pin 4) and the B signals (pin 9 + pin 11) are bonded on the same net. The 2-wire bus uses only pins 4 and 11 of each device, with pins 2 and 9 looped to pins 4 and 11 inside the connector, and the parameterisation of the CP 341 / CPU 314C-2PTP changed to "RS-485 2-wire".
Does the CP 341 in RS-485 mode actually tri-state its transmitter when not transmitting?
Yes. In RS-485 parameterisation the CP 341 firmware asserts the DE (driver enable) line of the transceiver only while a frame is being transmitted. Between frames the driver is in high-impedance. This is what allows multiple slaves to share the bus without contention. In RS-422 parameterisation the DE line is held asserted, which is why the bus fails when more than one device is connected.
My CPU 314C-2PTP option says "RS-422/485" but does not list 2-wire. Can I still use 2-wire?
Yes. The PTP interface hardware of the CPU 314C-2PTP supports both RS-422 (full-duplex, 4-wire) and RS-485 (half-duplex, 2-wire and 4-wire). The selection is made in the STEP 7 / TIA Portal hardware configuration under "Interface" for the X2 PTP port. Choose "RS-485 2-wire" for Modbus RTU multi-drop.
Where exactly do I put the 120 Ω termination resistor?
At each end of the bus, between the A and B lines. For a 3-device bus (master + 2 slaves) install the resistor at the master connector and at the physically last slave connector. The middle device must not be terminated. The resistor should be 1/4 W carbon-film or metal-film, 120 Ω ± 5 %.
Is the CP 341 with order number 6ES7 341-1CH01-0AE0 obsolete?
The CP 341 family has been moved to the product phase-out notice by Siemens AG. For new projects, Siemens recommends the S7-1500 CM PtP (6ES7 540-1AA00-0AA0) or the ET 200SP CM PtP (6ES7 137-6AA00-0BA0). The CP 341 remains supported for spares on existing installations and the Modbus RTU driver dongle remains orderable. The wiring and protocol rules described in this article still apply to the replacement modules.