Configuring GET_S for S7-300 Ethernet: Resolving Error Code 1 in TIA Portal V14 Cross-Project S7 Communication
When an S7-300 station configured in STEP 7 V5.5 and a second S7-300 station configured in TIA Portal V14 must exchange data through PUT and GET_S blocks, the client CPU frequently returns error code 1 immediately on the first call. The connection appears under the online "Connections" tab as Exists offline only, then flips to Faulty, although both CPUs are reachable as accessible devices and the reverse direction (PUT from V5.5 → V14) works correctly. The root cause is an incorrect connection configuration for cross-project S7 communication; the fix is to use an unspecified S7 connection on the GET_S side and download that configuration only to the client CPU.
1. Problem Statement and Symptoms
Field symptoms reported with the V14 configuration:
-
GET_S(FB 20, family S7 communication, standard library) returnsSTATUS = W#16#0001on the first call and never leaves that state. - Online view of the client CPU → "Connections" tab shows the configured partner as Exists offline only, then transitions to Faulty within one refresh.
- Both CPUs appear in "Accessible devices" with their PROFINET/CP IP addresses, confirming layer-1/layer-2 reachability.
-
PUTfrom the V5.5 project (which calls the V14 partner) succeeds, proving the Ethernet path and the remote DB are valid. - Only one
GET_Sjob is in use; no resource exhaustion on the client.
The asymmetry between PUT (works) and GET_S (fails) is the diagnostic fingerprint: it indicates the failure is on the V14/TIA side of the S7 connection, not on the network, not on the partner, and not on the data area.
2. System Configuration Reference
| Position | Station A (Server / PUT caller in V5.5) | Station B (Client / GET_S caller in V14) |
|---|---|---|
| CPU | CPU 315-2 PN/DP, 6ES7315-2EH14-0AB0, FW V3.3 | CPU 315-2 PN/DP, 6ES7315-2EH14-0AB0, FW V3.3 |
| Communication module | CP 343-1, 6GK7343-1EX30-0XE0, FW V3.0 | CP 343-1, 6GK7343-1EX30-0XE0, FW V3.0 |
| Engineering tool | STEP 7 V5.5 + SP4 | SIMATIC TIA Portal V14 SP1 (Update 7 or later) |
| IP addressing | CP 343-1, e.g. 192.168.0.10/24 | CP 343-1, e.g. 192.168.0.11/24 |
| S7 connection type | S7 connection, ISO-on-TCP (port 102) | S7 connection, ISO-on-TCP (port 102) |
| Role | Server (passive) for the GET_S; Client (active) for its own PUT | Client (active) for GET_S; Server (passive) for the reverse PUT |
The CP 343-1 (EX30) supports up to 16 S7 connections for S7 communication, PUT/GET included. The CPU 315-2 PN/DP integrated PROFINET interface supports up to 16 S7 connections, but the S7 communication services are limited to operator interface, program, and S7 routing roles when the PN interface is used alone; pairing with CP 343-1 is the recommended path for pure S7 PUT/GET between two S7-300 stations.
3. Root Cause Analysis
Error code W#16#0001 on GET_S (FB 20) means connection error — the partner is not reachable on the configured connection or the local resource could not establish it. The TIA V14 "Faulty" state of the partner entry confirms that the local S7 connection DB could not be initialized to a usable endpoint.
The architectural reason is the S7 connection model in TIA Portal V14:
- Project-internal S7 connection: Both endpoints exist inside the same TIA project. TIA creates the connection in both PLCs, assigns a matching Local ID / Partner ID, and the user downloads the connection configuration to both stations.
- Project-crossing S7 connection (this case): The partner is configured in a different engineering project (here STEP 7 V5.5). TIA cannot generate a partner endpoint that exists in the V5.5 project, so any project-internal connection type will fail to validate and download correctly. The remedy is the unspecified connection.
On a TIA cross-project S7 connection, only the side that actively opens the connection (i.e. the CPU where the GET_S/PUT block runs) needs the connection DB. The partner CPU is configured only as a passive partner by having the relevant data blocks present and accessible; its S7 connection side is implicitly the matching end of the TCP/ISO-on-TCP socket opened by the active CPU.
Two additional secondary causes produce the same STATUS = 1 symptom in the field and must be ruled out before declaring the connection type the cause:
- CP 343-1 IP address / subnet mismatch between the offline TIA project and the online CP.
- Connection resource exhausted on the CP — the CP firmware reports a connection-limit error (W#16#80C3) which the
GET_Sblock surfaces asSTATUS = 1after a few retries.
4. S7 Communication Architecture Used by GET_S
GET_S (FB 20, IEC-style counterpart to the legacy GET / SFB 14 pair) is part of the "SIMATIC 300/400, Standard Library → Communication Blocks" set. It uses the S7 protocol over an ISO-on-TCP (RFC1006, port 102) transport channel established by the local CPU/CP. The block behaves as a S7 client that:
- Opens the S7 connection referenced by the
IDinput (DWORD, points at the local connection DB or the local endpoint ID). - Transmits a read request for the area defined by
REQ,SD_i(source address on partner), andLEN_i. - Waits for the read response from the partner CPU.
- Writes the received data into the
RD_i(receive destination) area on the local side. - Sets
DONE = 1,ERROR = 0on success, orERROR = 1withSTATUSset to the W#16#xxxx error code on failure.
Because step (1) requires a working S7 connection before the read can even be issued, the very first execution of GET_S with a non-existent connection always returns STATUS = W#16#0001. The block does not retry — the application must retrigger REQ or call the block cyclically with a rising edge at REQ.
5. Configuring an Unspecified S7 Connection in TIA V14
The correct configuration for cross-project S7 communication from the V14 client is an unspecified S7 connection on the CPU that calls GET_S. Steps:
- In the TIA Portal V14 project tree, select the client CPU (the CPU 315-2 PN/DP that owns the CP 343-1 used as the Ethernet interface).
- Open Properties → Communication → S7 connections, or, in Devices & Networks, add a new connection of type S7 connection.
- Choose the local endpoint as the CP 343-1 (Ethernet interface), not the PN port of the CPU. The CP owns the IP and the S7 connection resources for S7 communication.
- In the Partner field, select "Unspecified". Do not browse the project for the partner CPU — the partner is not part of the TIA project.
- Enter the partner IP address (the IP of the remote CP 343-1, e.g. 192.168.0.10). Use the S7 connection port 102 (default, ISO-on-TCP).
- Set the Connection resource on the local CP to a free local ID, e.g.
W#16#0001toW#16#000F. Avoid duplicates — the local ID must be unique within the CPU. - Set the Active connection establishment checkbox to enabled on the client side. The server side (V5.5) is configured passively by STEP 7 V5.5 with the active-establishment flag cleared.
- Compile the project. The connection is now owned by the TIA V14 client only; the V5.5 project does not need a matching entry because its connection is created by V5.5's own S7 connection editor and downloaded to the V5.5 CPU.
- Download the project only to the TIA V14 CPU/CP. The CP receives its S7 connection DB and the active-establishment parameter; the V5.5 side remains untouched.
6. GET_S / PUT Parameter Mapping
| Parameter | Direction | Type | Value in this case |
|---|---|---|---|
| REQ | IN | BOOL | Rising edge starts the read job (e.g. M0.0) |
| ID | IN | WORD | Local connection ID from the unspecified S7 connection (e.g. W#16#0001) |
| NDR | OUT | BOOL | 1 = new data received (for block-driven flow, otherwise leave) |
| DONE | OUT | BOOL | 1 = job finished without error |
| ERROR | OUT | BOOL | 1 = job finished with error; see STATUS |
| STATUS | OUT | WORD | W#16#0000 on success; W#16#0001 on connection error |
| SD_1 / SD_2 / SD_3 / SD_4 | IN | VARIANT | Partner source area; e.g. P#DB20.DBX0.0 BYTE 20
|
| RD_1 / RD_2 / RD_3 / RD_4 | OUT | VARIANT | Local receive area; e.g. P#DB30.DBX0.0 BYTE 20
|
| LEN | IN | WORD | Length of data in bytes (consistent with SD/RD pointer) |
For the symmetric PUT (FB 15) on the V5.5 side, swap SD/RD semantics: the V5.5 PUT is the active write into the V14 partner's data area, with its own connection ID created in V5.5 and a matching passive S7 connection in the V14 TIA project (or the reverse: active on V14, passive on V5.5 — both directions can be active in their own S7 connection).
7. S7 Connection Establishment on the Wire
The ISO-on-TCP transport connection is opened with a standard RFC1006 handshake. For the cross-project case, the TCP three-way handshake is initiated by the active partner (the V14 CPU in this scenario), which then performs the S7 CR (Connection Request) TPDU. The partner CC (Connection Confirm) TPDU references the configured local ID of the partner. The S7 connection remains open until either side sends a DR (Disconnect Request) or the keep-alive times out (default 30 s on the CP 343-1).
When the V14 project is downloaded with the unspecified S7 connection, the CP 343-1 stores the connection record in its connection table (max. 16 entries for S7 connections on EX30). The connection record contains:
- Local TSAP (transport service access point, e.g.
10.00for the CP 343-1 in slot 1 of rack 0) - Remote TSAP (the S7 partner's TSAP; in the V5.5 project this is the slot 1 CP TSAP, e.g.
10.00, or a custom TSAP if explicitly set) - Local IP / remote IP
- Connection role (active / passive)
- Local ID (W#16#0001 in this case)
01.01 by default (rack.slot); for slot 1 it is 01.01 and the CP often uses 10.00 for S7 connections on the CP itself. Verify the TSAP by inspecting the partner's online "Accessible devices" view in TIA → "Online & Diagnostics" → "Functions" → "Set PG/PC Interface". An incorrect TSAP produces the same STATUS = 1 on GET_S because the connection is rejected at the S7 layer.8. GET_S / PUT Error Code Reference
| STATUS (hex) | Meaning | Typical field cause |
|---|---|---|
| 0000 | Job completed without error | — |
| 0001 | Connection error (active CPU could not establish the S7 connection) | Wrong connection type, IP, TSAP, or partner not configured passively |
| 0002 | Negative acknowledgment from partner | Partner DB does not exist or access protection denied |
| 0003 | Error in receive area (RD_i) | RD_i pointer length mismatch or area protection violated |
| 0004 | Error in send area (SD_i for PUT) | SD_i pointer length mismatch or wrong DB number on the local side |
| 0005 | Connection not yet established (block called cyclically while connection is being set up) | Normal during the first 1-2 s after download; retry automatically |
| 0006 | Resource exhausted on local side | Too many concurrent PUT/GET jobs on the same CPU/CP |
| 0007 | Reset request received from partner | Partner CPU went to STOP; will clear when both CPUs are RUN |
| 80A1 | Negative acknowledgment: write-protect error | Partner CPU in STOP, or DB is write-protected |
| 80B0 | Object access error | Wrong DB number or DB not loaded on partner |
| 80C3 | Resource bottleneck on partner | CP connection limit reached on the partner |
| 80C4 | Communication error | Ethernet link drop, switch issue, or CPU/CP in STOP |
The full STATUS list is published in the SIMATIC standard library help and in the TIA Portal V14 Online Help under Communication Blocks → GET_S / PUT.
9. Step-by-Step Resolution Procedure
-
Verify the CP firmware version. The CP 343-1 (EX30) must run at firmware V3.0 or higher for compatibility with TIA V14 projects. Older CP 343-1 EX11/EX21 firmware limits the S7 connection table and may produce
STATUS = 1on the active side. Use Online & Diagnostics → Module Information to read the firmware; update the CP if needed. - Confirm both CPUs are online and reachable. In TIA V14, Online → Accessible Devices must list both CP 343-1 modules with their IP addresses. If one is missing, fix the Ethernet path first — the S7 connection cannot work without layer-1/layer-2 reachability.
-
Check the partner's IP address and TSAP. The TSAP of the partner (V5.5 CPU / CP) must be entered correctly in the unspecified connection. Default TSAP for an S7-300 CP in slot 1 is
10.00for S7 communication. - Replace the project-internal connection with an unspecified connection. Follow section 5. The TIA V14 project must not reference a CPU that does not exist inside the TIA project.
- Set the active-connection-establishment flag on the V14 client only. The V5.5 partner must be passive (default for S7 connection in V5.5). If the V5.5 project has the partner as active too, the connection will not be established because both endpoints wait for the other.
- Download only the V14 client CPU + CP. Do not attempt to download to the V5.5 CPU; that belongs to a foreign project. The S7 connection DB on the CP 343-1 is built from the local connection record downloaded to the V14 CP.
-
Verify the S7 connection online. In TIA, go Online → Online & Diagnostics on the CP 343-1 → Functions → Connection Diagnostics (in some firmware versions: Connection Status). The S7 connection should show ESTABLISHED within a few seconds after the first
GET_Scall with risingREQ. -
Call GET_S cyclically with rising edge on REQ. Wire a clock-bit or one-shot to
REQ.STATUS = 0001on the first call is normal if the connection is still being established; the second call should report success. -
Check the partner DB. Confirm that the DB referenced in
SD_1exists on the V5.5 CPU and is not optimized (S7-300 only supports standard DBs, not optimized — S7-300 has no optimized DB concept, so the default is fine). The DB must be loaded and accessible without password protection if the S7 connection is configured without password. -
Capture a Wireshark trace (optional, advanced). Filter on
tcp.port == 102. The S7 connection request should appear from the V14 client IP to the V5.5 partner IP. If no SYN is visible, the issue is the local S7 connection DB (recheck section 5). If SYN is sent and SYN-ACK is received but no S7CRfollows, the TSAP is wrong.
10. Verification and Acceptance Test
After downloading the V14 project with the unspecified connection, run the following checks before declaring the line production-ready:
- Online connection status = ESTABLISHED. Confirm in the CP 343-1 online diagnostics. The S7 connection record should show partner IP and TSAP correctly and a non-zero "active since" timestamp.
-
GET_S DONE = 1, ERROR = 0, STATUS = 0000. On the V14 client, the first successful read populates the local
RD_1area with the data from the partner DB. - Cross-check in the watch table. Open a watch table in TIA V14 with the partner DB contents (if mirrored through a PUT) and the local receive DB; they should match.
- PUT/GET symmetry. Trigger a write from V5.5 (PUT) and a read from V14 (GET_S) for the same data block; both should complete with STATUS = 0000 within one cycle each.
-
CPU STOP/RUN test. Stop the V14 CPU. The V5.5 PUT should report
STATUS = 0007(reset). Restart the V14 CPU. The nextGET_Sshould re-establish automatically and return STATUS = 0000 without manual download. -
Cyclic re-trigger test. Force
REQ= 0 for several seconds, then re-trigger. The job should complete each time without leaking resources on the CP.
11. Common Field Pitfalls and Their Diagnostics
| Observed | Likely cause | Diagnostic step | Fix |
|---|---|---|---|
| STATUS = 0001, connection "Faulty" | Wrong connection type (project-internal instead of unspecified) | Devices & Networks → S7 connections | Change partner to "Unspecified", enter partner IP |
| STATUS = 0001, CP online shows no S7 conn record | Project not downloaded to the CP, or downloaded to the wrong CP | CP online diagnostics → Connection table | Download project to the CP that owns the Ethernet interface |
| STATUS = 0001, SYN visible in Wireshark but no S7 CR TPDU | TSAP mismatch | Check partner TSAP in V5.5 project | Enter correct TSAP (e.g. 10.00) in the unspecified connection |
| STATUS = 0002 after connection establishes | Partner DB number wrong, or DB does not exist on V5.5 | Open V5.5 project, list DBs | Correct SD_i pointer to point at an existing DB |
| STATUS = 80A1 after connection establishes | Partner CPU in STOP, or partner DB write-protected | V5.5 CPU online view | Switch partner CPU to RUN; remove write protection on the partner DB |
| STATUS = 0006 after working for hours | Connection resource exhaustion on CP | CP online diagnostics → open connection count | Close idle connections; consolidate jobs |
| Connection ESTABLISHED but data is old | REQ not re-triggered; block called with REQ = 1 continuously (single-shot semantics) | Watch REQ in online view | Re-trigger REQ with rising edge after DONE / ERROR |
| CPU 315-2 PN/DP cannot reach the partner | PN port used for S7 communication without CP 343-1 | Net diagnostics on PN port | Move S7 communication to CP 343-1 |
12. TIA Portal V14 Specifics Relevant to This Case
TIA Portal V14 introduced changes to the S7 connection editor and the way partner endpoints are validated. Notable items for cross-project S7 communication:
- The Unspecified partner option is the only project-crossing connection type supported for S7 connections to non-TIA or non-imported partners in V14.
- The connection resource (Local ID) is assigned by TIA when the connection is created; you can re-map to a free ID but the value must be unique within the local CPU/CP and must match the
IDinput ofGET_S/PUT. - For S7-300 + CP 343-1, V14 SP1 or later is recommended because earlier V14 builds had a known issue where the unspecified connection's partner IP was not always committed to the CP's S7 connection record until the project was re-compiled and downloaded a second time. The TIA Portal V14 update history and the Siemens Industry Online Support entry "Changes in TIA Portal V14" cover this and other V14 changes; consult the official V14 release notes for the exact fix list.
- V14's project view shows the connection under Connections on the local CPU; if the partner is unspecified, the online view shows the partner as a generic entry, not as a CPU type — that is the expected state for cross-project communication.
For the full V14 change list, see the official Siemens TIA Portal V14 release documentation at Changes in TIA Portal V14.
13. Field Commissioning Checklist
- CPU 315-2 PN/DP firmware ≥ V3.3; CP 343-1 EX30 firmware ≥ V3.0.
- CP 343-1 IP address matches the offline TIA project (subnet, mask, gateway).
- Partner (V5.5) IP address and TSAP entered in the unspecified S7 connection.
- Active connection establishment enabled on the V14 client only.
- Local connection ID noted; matches
IDinput ofGET_S/PUT. - Partner data block (DB number, length, type) verified to exist and be accessible on the V5.5 CPU.
- Project downloaded to V14 CPU + CP; V5.5 project unchanged.
- CP connection table shows the S7 connection record with status ESTABLISHED after first
GET_Scall. -
GET_Sreturns STATUS = 0000 with correct data;PUTfrom V5.5 returns STATUS = 0000 with correct data. - CPU STOP/RUN cycle of either partner does not require re-download.
Why does GET_S return error code W#16#0001 even though both CPUs are reachable?
W#16#0001 means the S7 connection itself could not be established, not that the partner is offline. The most common cause in TIA V14 is configuring a project-internal S7 connection to a partner that lives in a different engineering project. Use an unspecified S7 connection on the CPU that calls GET_S, enter the partner IP and TSAP, enable active connection establishment, and download only to the local CPU/CP.
Do I have to configure the partner in TIA V14 if the partner is in a STEP 7 V5.5 project?
No. TIA Portal cannot know about a partner defined in a different project. Configure an unspecified partner with the partner's IP address and TSAP. The V5.5 partner only needs the matching data blocks and a passive S7 connection (default in V5.5) so it can accept the active-open call from V14.
Why does PUT from V5.5 work but GET_S from V14 fails with the same two CPUs?
Each direction of S7 communication is a separate S7 connection. The V5.5 PUT works because V5.5 created an active S7 connection in its own project and downloaded it to the V5.5 CPU. The V14 GET_S fails because the TIA V14 project still uses a project-internal connection that has no matching endpoint in the V5.5 project. Create the unspecified connection on the V14 side only; do not duplicate it on the V5.5 side.
What TSAP do I use for the partner in the unspecified connection?
For a CP 343-1 in slot 1 of rack 0, the default TSAP for S7 communication is 10.00 (hex). For an S7-300 CPU with integrated PN interface used as the partner, the default TSAP is 01.01. Always verify the partner TSAP in the V5.5 project under "Properties → Interface → S7 Connection" before entering it in TIA V14.
Can I run GET_S on the CPU 315-2 PN/DP's PROFINET port instead of the CP 343-1?
You can, but the PN interface of the S7-300 CPU only supports S7 communication with PG/PC, HMI, and S7 routing. For peer-to-peer S7 PUT/GET between two S7-300 stations, use the CP 343-1 (or CP 343-1 Lean / CP 343-1 Advanced) as the communication interface. This is also the configuration assumed in the TIA V14 connection editor when an S7 connection is created on the CP 343-1.
How many S7 connections can the CP 343-1 (EX30) handle in parallel?
The CP 343-1 (6GK7343-1EX30-0XE0) supports up to 16 S7 connections total, including OP, PG, S7 routing, and S7 communication. Each unspecified S7 connection used by GET_S/PUT consumes one slot. If the CP reports STATUS = 0006 on GET_S, free resources by closing idle connections or consolidating data into fewer jobs.