Resolving S7-315 PN/DP to CP343-1 Lean PUT/GET Communication

David Krause11 min read
S7-300SiemensTroubleshooting
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

Overview

PUT/GET communication between a S7-315-2 PN/DP (CPU with integrated PROFINET interface) and an S7-315-2 DP equipped with a CP 343-1 Lean is one of the most common Siemens S7-300 data-exchange topologies. The PN/DP CPU acts as the PROFINET node directly, while the second PLC uses the CP as its Ethernet/PROFINET interface. When the project is configured in STEP 7 V5.x with NetPro, a single S7 connection routes PUT/GET services over ISO-on-TCP (RFC1006) through the CP.

This reference documents a recurring fault pattern where the user-side status word of FB15 (PUT) returns 25 (job in progress) for an extended period, then transitions to 02 (job completed with error / no resource available), while ICMP ping between the two controllers succeeds. The root causes are almost always one of the following:

  1. FB14/FB15 version mismatch (V1.1 retained from an older STEP 7 library instead of V1.2 from the current Communication Blocks library).
  2. CPU connection reservations exhausted (default 10 S7-Basic Communication reservations occupied and unavailable for PUT/GET).
  3. Missing or misconfigured S7 connection in NetPro on the CP-side station (no "S7-connection" defined, wrong partner slot, or wrong connection type).

The remediation procedure below systematically addresses all three root causes and restores reliable PUT/GET exchange.

Affected Hardware and Firmware

Component Order Number (MLFB) Firmware Role
S7-315-2 PN/DP 6ES7315-2EH14-0AB0 V3.x IO controller / PN node
S7-315-2 DP 6ES7315-2AG14-0AB0 V3.x IO controller / DP master
CP 343-1 Lean 6GK7343-1CX10-0XE0 V2.x / V3.x PROFINET / Ethernet CP for S7-300
STEP 7 6ES7810-4CC10-0YA5 V5.5 SP2 / SP3+ Engineering tool (NetPro)
SIMATIC_NET_CP library FB14/FB15 V1.2 PUT/GET for S7-300 via CP
The CP 343-1 Lean (6GK7343-1CX10-0XE0) supports a maximum of 4 S7 connections for PG/OP communication and a total of 8 connection resources. The integrated PN interface of an S7-315-2 PN/DP supports up to 16 S7 connections. Free CPU-side connection resources must be reserved explicitly when an external CP terminates the connection.

Symptom and Status Word Decoding

When FB15 "PUT" is called and the S7 connection is not properly configured, the user observes:

  • DONE = 0 — job not yet finished.
  • ERROR = 0 — no protocol-level error reported.
  • STATUS = 25 (W#16#0019) — job is in progress (DONE=0, ERROR=0).

If the status lingers for many seconds and then transitions to:

  • DONE = 1, ERROR = 1, STATUS = 02 (W#16#0002) — connection not established / no free connection resource.

This pattern means the block tried to issue a SEND/RESET on a connection that was never actually established in NetPro or has been removed from the active connection list. ICMP ping succeeds because the network layer is healthy — the failure is purely in the ISO transport / S7 connection layer above it.

Root Cause Analysis

Root Cause 1 — Wrong FB Library Pair

S7-400 systems use SFB14 / SFB15 for PUT/GET. S7-300 systems use FB14 / FB15 from the Standard Library → Communication Blocks. When a CP is fitted in the S7-300, the correct pair is:

  • FB14 "GET" and FB15 "PUT" from the SIMATIC_NET_CP library (CP-specific variant).

Using the generic Standard Library FB14/FB15 (which targets the integrated PN/DP interface of an S7-300 CPU) against a CP-terminated connection results in job errors. Always copy the FB14/FB15 instances from the SIMATIC_NET_CP library into the S7-300 station that owns the CP, and from the Standard Library into the CPU that has its own PN interface.

The library versions must be V1.2 or higher. Older versions (e.g., V1.1 distributed with STEP 7 V5.3) lack error-handling improvements and are known to deadlock on retry when the partner slot is misconfigured.

Root Cause 2 — CPU Connection Reservations

By default, the S7-300 CPU reserves 10 connection resources for S7-Basic Communication (PUT/GET via OP/multiplexer, BSEND/BRCV, etc.). When the user fits a CP, those reservations are NOT automatically redistributed. Result: when NetPro tries to bring up the new S7 connection through the CP, the CPU replies with "no resource available" because the reservation table is full of unused default slots.

Root Cause 3 — Missing NetPro S7 Connection

The CP-side station must have an explicit S7 connection object defined in NetPro pointing at the partner PN/DP CPU. The connection must be of type 03 (S7 connection), with the partner specifying rack 0, slot matching the PN/DP CPU, and the CP's own IP address set as the local endpoint.

Remediation Procedure

Step 1 — Update FB14 / FB15 to V1.2

  1. Open the STEP 7 project for the S7-315-2 PN/DP station.
  2. In SIMATIC Manager, open Libraries → Standard Library → Communication Blocks.
  3. Locate FB14 "GET" and FB15 "PUT" (icons show version 1.2). Right-click each and Copy.
  4. Paste into the project's Blocks container of the S7-300 station that owns the CP. Confirm "Overwrite" if older versions exist.
  5. For the CP side, repeat using SIMATIC_NET_CP library instead of Standard Library.
  6. Recompile HW Config and download to the target PLC.
Never mix FB14/FB15 V1.1 with V1.2 in the same project. If SFB14/15 are visible (S7-400 blocks), delete them — the S7-300 does not support SFB14/15.

Step 2 — Free CPU Connection Reservations

  1. Open HW Config for the S7-315-2 DP + CP 343-1 Lean station.
  2. Double-click the CPU (rack 0, slot 2). Select the Communication tab.
  3. Under Connection Resources Reserved for, lower the value for S7-Basic Communication from the default (10) to a small value such as 0 or 2.
  4. Confirm with OK and save / compile HW Config.

This frees resources for NetPro-managed S7 connections.

Step 3 — Define the S7 Connection in NetPro

  1. Open NetPro (right-click the project → Open ObjectNetPro, or menu Options → NetPro).
  2. Select the CP 343-1 Lean in the S7-315-2 DP station.
  3. If any S7 connections are already present on the CP, delete them (right-click → Delete).
  4. Right-click the CP → Insert New Connection.
  5. In the wizard select partner Unspecified, then connection type S7 connection.
  6. Click Apply. The connection is created and listed only on the local (CP) side.
  7. Open the connection properties → Address Details tab. Configure the partner:
Field Value
Partner IP Address IP of S7-315-2 PN/DP integrated PROFINET interface
Partner Rack 0
Partner Slot 2 (PN/DP CPU)
Connection Type 03 (S7 connection)
Local Rack / Slot 0 / 2 (CP-side CPU slot)
  1. Click OK, then Save and Compile NetPro.
  2. Download the connection configuration to both stations (CP-side first, then PN/DP CPU). Use PLC → Download to Target Station → All, or right-click the connection and use Download Selected and Partner Station.
Both stations must be downloaded from NetPro. Downloading only the user program (Blocks) without the connection data leaves the ISO transport layer unconfigured even though FB14/FB15 are present.

Step 4 — Cycle Power and Verify

After the download, perform a power cycle on the CP 343-1 Lean to clear its connection table, then trigger a PUT/GET cycle from the application program and observe the FB15 STATUS output:

  • STATUS = 0, DONE = 1, ERROR = 0 — connection is established and data transferred.

Reference PUT/GET Implementation

Calling FB15 "PUT" (S7-300 side via CP)

CALL "PUT" , DB15      // SIMATIC_NET_CP variant
REQ    := TRUE          // Trigger one-shot
ID     := W#16#0001      // Connection ID from NetPro (multiplexed)
DONE   := M100.0         // Job complete (no error)
ERROR  := M100.1         // Job complete with error
STATUS := MW102          // Status / error code
ADDR_1 := P#DB10.DBX0.0 BYTE 20  // ANY pointer to local send area
SD_1   := P#DB20.DBX0.0 BYTE 20  // ANY pointer to partner receive area

The connection ID is the hex value displayed in NetPro on the connection object. For a single S7 connection this is typically W#16#0001.

Calling FB14 "GET" (S7-300 side via CP)

CALL "GET" , DB14
REQ    := TRUE
ID     := W#16#0001
DONE   := M110.0
ERROR  := M110.1
STATUS := MW112
ADDR_1 := P#DB20.DBX0.0 BYTE 20  // Partner source
RD_1   := P#DB10.DBX0.0 BYTE 20  // Local destination

Diagnostic Procedure

  1. ICMP ping from a PG to both CPUs and to the CP IP addresses. Success here proves Layer 3 is healthy.
  2. Open SIMATIC Manager → Accessible Nodes. The CP 343-1 Lean must appear as an accessible node on the bus.
  3. Open CP Diagnostics from the CP context menu (online). Verify firmware version, MAC address, and IP subnet match the project.
  4. Open PLC → Monitor/Modify on the CP. Inspect Connection Overview. The S7 connection should show Established.
  5. In NetPro, right-click the S7 connection → Connection Status. The status should report "Connection established to partner".
  6. If still failing, view CPU Diagnostic Buffer (PLC → Diagnostic Buffer) and look for events of type "Connection terminated" or "No resource available".

Status Code Reference for FB14/FB15 (S7-300 via CP)

STATUS (hex) STATUS (dec) Meaning
0000 0 Job completed without error
0019 25 Job in progress (DONE=0, ERROR=0)
0002 2 No connection resource / S7 connection not configured
000A 10 Object state error (DB not loaded)
001F 31 Partner not reachable (timeout)
0081 129 Partner rejected the connection
0082 130 Connection aborted by partner
80A1 32929 Negative acknowledgement from CP
80A2 32930 DP/PN error in CP
80B1 32945 Illegal ANY pointer length
80B2 32946 DB does not exist on partner

If STATUS = 80B2, the partner DB number/range does not exist on the remote CPU. Check DB number on the partner side.

Connection Reservation Reference

Resource Type Default Reservation (S7-300) Recommended After CP Install
PG Communication 1 1
OP Communication 1 1
S7-Basic Communication 10 0–2
S7 Communication (NetPro) 0 Number of NetPro S7 connections (e.g., 1)
Total Available CPU-dependent (S7-315: 16 max)

Sum of all reservation rows must not exceed the CPU's total connection resources. For an S7-315-2 PN/DP and an S7-315-2 DP this is 16 each.

NetPro Connection Type Codes

Type Code Connection Type Use Case
01 MPI / PROFIBUS S7 DP backbone
03 S7 connection (ISO-on-TCP / PN) PUT/GET via CP or PN interface
04 S7 connection (ISO Transport) Industrial Ethernet ISO
0B TCP native Open communication via TCON/TSEND
13 UDP TUSEND/TURCV

For PUT/GET through the CP, always use type 03.

Common Pitfalls

  • Mixed FBs across libraries. Standard Library FB14/FB15 must not be used on a station whose CP terminates the S7 connection.
  • Skipping NetPro download. Compiling and downloading blocks without NetPro leaves the connection table empty on the CPU.
  • Wrong slot. The PN/DP CPU occupies slot 2. The DP-only CPU also occupies slot 2. Selecting slot 3 addresses the IM, not the CPU.
  • Reservation table not freed. Ten reserved "S7-Basic Communication" slots silently consume the connection pool.
  • CP 343-1 Lean vs CP 343-1. The Lean variant has 4 S7 connection resources; the full CP 343-1 has 16. Topology design must respect this.
  • TSAP/Rack mismatch. When using PUT/GET from a third-party OPC server with S7 protocol, TSAP must reflect rack/slot configuration.

Verification Checklist

  1. Both CPUs' diagnostic buffers contain no "no resource" or "connection aborted" events from the past 24 hours.
  2. FB14 / FB15 show STATUS = 0 after the first scan cycle in which REQ was set.
  3. DB contents on partner are mirrored as expected (e.g., DB20.DBD0 on CPU-A matches DB10.DBD0 on CPU-B).
  4. CP 343-1 Lean web server (if enabled) shows the active S7 connection in Information → Connections.
  5. NetPro online view shows green "established" indicators on both ends of the S7 connection.

Related Topology Notes

If a future migration is planned to S7-1500 or TIA Portal, the equivalent setup uses PUT/GET instructions from the Instructions → Communication → S7 Communication palette. The CPU connection-resource limitation still applies: enable sufficient S7 connection resources in the CPU properties under Communication → Connection resources. See the S7-1500 Communication Function Manual.

For reference of the S7-300 CP 343-1 Lean hardware, see the SIMATIC NET CP 343-1 Lean Operating Instructions. For S7-300 PUT/GET semantics, see the STEP 7 V5.5 Communication manual. For STEP 7 NetPro usage, see the STEP 7 V5.5 Configuring Hardware and Communication Connections Manual.

Why does FB15 STATUS read 25 ("in progress") indefinitely before flipping to 02?

STATUS 25 (W#16#0019) means the PUT request was accepted by the FB but the underlying CP cannot dispatch it because no S7 connection has been brought up in NetPro. After the CP's internal connection-attempt timeout elapses, STATUS flips to 02 (W#16#0002 = "no resource available"). Download the S7 connection from NetPro to both stations to clear the fault.

Should I use FB14/FB15 or SFB14/SFB15 for S7-300 PUT/GET?

Use FB14/FB15 for S7-300 CPUs. SFB14/SFB15 are reserved for S7-400. When the S7-300 routes traffic through a CP 343-1 Lean, copy the FB14/FB15 instances from the SIMATIC_NET_CP library (V1.2 or higher), not from the Standard Library.

How many S7 connections does the CP 343-1 Lean support?

The CP 343-1 Lean (6GK7343-1CX10-0XE0) supports a maximum of 4 S7 connections for PG/OP communication combined with PUT/GET. If more connections are needed, upgrade to the full CP 343-1 (6GK7343-1EX30-0XE0), which supports up to 16 S7 connections.

Why does ping succeed but PUT/GET fails?

ICMP operates at Layer 3 and only confirms IP routing. PUT/GET requires an ISO-on-TCP / S7 connection at Layer 7, established by NetPro and terminated at the partner CPU. A working ping therefore does not prove the S7 connection exists; it must be created explicitly in NetPro and downloaded to both stations.

Do I need to cycle the CP 343-1 Lean after changing NetPro?

Yes, a power cycle (STOP→RUN via MRES, or full power-off/power-on) clears the CP's internal connection table. This guarantees the new S7 connection from NetPro is re-established cleanly without stale entries from the previous configuration.

What does error 80B2 from FB14/FB15 mean?

STATUS 80B2 (W#16#80B2) means the partner does not have the DB referenced in ADDR_1 / SD_1. Create the DB on the partner CPU or correct the DB number in the ANY pointer of the PUT/GET call.

Back to blog