Problem Details
Engineers configuring Open User Communication on SIMATIC S7-1513-PN CPUs in TIA Portal V16 report a deterministic IDE crash when assigning a new connection to a TSEND_C block. The failure is reproducible on a single CPU inside a multi-PLC project while other CPUs in the same project (for example, S7-1215) configure the same block without error.
Symptom signature
- Inserting a
TSEND_Cblock (FB/instance) in the affected S7-1513-PN program. - Setting Partner =
unspecified. - Setting Connection type =
TCPand Configuration Mode =Use program blocks. - Clicking the Connection data drop-down and selecting
<new>. - TIA Portal terminates unexpectedly. No error dialog, no save prompt; the Siemens.Automation.Portal.exe process exits.
Scope
- UDP connections, ISO-on-TCP, and protocol-specific configuration modes do not trigger the crash.
- The same project, copied to a new TIA Portal project, still produces the crash when configured against the affected S7-1513-PN.
- TSEND_C blocks on S7-1215 stations in the same project configure cleanly, isolating the failure to a single CPU object's project metadata.
Root Cause Analysis
The crash is not a code defect inside TSEND_C itself. TSEND_C is the standard Open User Communication block on the S7-1200/1500 platform that sets up, monitors, and tears down a TCP or ISO-on-TCP connection (see TSEND_C and TRCV_C - Send and Receive Data Using Ethernet in the TIA Portal manual collection, and the application document Open User Communication with TSEND_C and TRCV_C). The instruction works correctly at runtime; the failure occurs inside the TIA Portal editor while it tries to instantiate a new connection descriptor bound to the CPU.
Most likely causes (in order of frequency observed in the field):
- Project database inconsistency – the per-CPU XML/IM cache used by the editor diverges from the program blocks container. The crash path is triggered only on the S7-1500 because the connection-descriptor wizard enumerates ISO transport resources differently for S7-1500 PROFINET interfaces.
- Sub-version mismatch – TIA Portal V16 was released with several update levels (V16, V16 Update 1 through V16 Update 9). The connection-assignment wizard was patched in later updates.
-
Residual references after deep copy – when an S7-1500 station is cloned and its variable names are renamed, internal cross-references between the connection configuration and the renamed symbols can leave dangling pointers that the wizard dereferences during
<new>expansion. -
IM folder divergence – Siemens' own FAQ on TIA project repair explicitly calls out the
IMfolder as a corruption vector that produces exactly this class of editor crash when configuring communication blocks.
Identifying the Affected Configuration
Before applying any fix, confirm that the failure matches the documented signature exactly. Use the matrix below to triage the symptom.
| Trigger | Crash? | Diagnostic value |
|---|---|---|
| TCP + Use program blocks + S7-1513-PN | Yes (deterministic) | Confirms project/CPU interaction |
| TCP + Use program blocks + S7-1215 | No | Rules out block defect |
| UDP + Use program blocks + S7-1513-PN | No | Rules out CPU firmware |
| ISO-on-TCP + Use program blocks + S7-1513-PN | No | Confines defect to TCP wizard path |
| TCP + Programmed connection data (manual IDB) | Crash still possible | Internal IDB does not heal the cache |
| Same CPU copied to a new empty project | Yes | Damage is bound to the CPU object, not the project tree |
If your symptom does not match the first row exactly, the remedies below may not apply. Verify the connection type and the configuration mode before proceeding.
Prerequisites for Recovery
- Administrative rights on the engineering station (required to write the project cache and the TIA Portal installation directory).
- Current TIA Portal V16 installation media or access to the Siemens Industry Online Support update channel.
- A full
.zap16archive of the affected project before any modification. - Access to the TIA Portal support request portal in case the local remedies fail.
Solution 1: Update TIA Portal to the Latest V16 Patch
Siemens ships a cumulative update train for V16. The connection-wizard regression that triggers the crash on TCP/Use program blocks with S7-1500 CPUs is fixed in later V16 updates.
- Open Help > Installed software and record the current TIA Portal version (for example,
V16.0 + Update 2). - Open the Siemens Support page Updates for STEP 7 / WinCC / S7-PLCSIM in the TIA Portal and download the highest available V16 update that matches your installed base.
- Close TIA Portal, including the TIA Portal Server and any open TIA instances.
- Run the update package as administrator. Do not run a parallel installation.
- Reboot the engineering station.
- Reopen the project and repeat the TSEND_C configuration. The
<new>entry in the connection-data drop-down should now expand without terminating the IDE.
Solution 2: Delete the IM Folder of the TIA Project
The IM (Internal Model) folder caches the compiled view of the project. A divergence in this folder is the documented cause of editor crashes that are not reproducible on different stations. This is the same remedy Siemens recommends for general TIA project corruption symptoms.
- Close TIA Portal completely.
- Make a backup copy of the project folder (for example, copy
Project_S7-1500.ap16toProject_S7-1500_backup.ap16). - Rename the project from
.ap16to.zipand extract the archive with a standard ZIP tool. - Inside the extracted tree, navigate to
IM(orSystemIMin newer TIA Portal versions). - Delete the entire
IMfolder. - Re-zip the contents back into a
.ap16archive, or keep the extracted folder and reopen TIA Portal on the directory form. - Open the project. TIA Portal rebuilds the IM folder on first compile.
- Re-run Compile > Software (rebuild all) on the affected S7-1513-PN station.
- Insert a
TSEND_Cblock, choose TCP + Use program blocks, and click<new>in the connection-data drop-down.
IM folder while TIA Portal holds the project open. Always close the IDE first and operate on a backup copy.Solution 3: Archive and Retrieve the Project
Archiving and retrieving forces the TIA Portal to rewrite the project file in a current schema. This has recovered projects in the field when Solution 2 alone does not clear the editor cache.
- In TIA Portal, choose Project > Archive > Archive project. Select the
.zap16format and a known path. - Close TIA Portal.
- Choose Project > Retrieve and select the freshly created archive. Specify a new project name and a new target directory.
- Open the retrieved project and run Compile > Software (rebuild all).
- Re-test the TSEND_C configuration on the S7-1513-PN.
Solution 4: Rebuild the S7-1500 Station in a New Project
When the IM cache is not the cause, the corruption is bound to the S7-1500 station object. Rebuilding the station in an empty project removes the object-level cache entirely.
- Create a new TIA Portal V16 project.
- Add a new S7-1513-PN with the same article number and firmware version as the original.
- Add the S7-1215 stations used by the same machine.
- Copy the program blocks (FCs, FBs, DBs) from the original project to the new project. Do not copy connection descriptors or the TSEND_C instance DB; recreate them.
- Configure the PROFINET interface, IP addresses, and subnet exactly as on the original machine.
- Re-create the
TSEND_Cinstances from scratch: insert the block, set Partner =unspecified, Connection type =TCP, Configuration Mode =Use program blocks, and click<new>in the connection-data drop-down. - Verify the block compiles and downloads cleanly.
Solution 5: Use a Different Configuration Mode Temporarily
If the crash blocks commissioning and a hot fix is required, bypass the wizard by using a hand-written connection DB. The TSEND_C instruction accepts a connection ID resolved through the project connection table; you can populate that table by a different path.
- Create a new
TCONconnection via Devices & Networks > Network view > Connections > New connection. - Configure the partner, IP, port, and connection type as TCP.
- Reference the auto-generated connection ID directly in the
TSEND_Cblock by setting Configuration Mode =Use configured connection dataand selecting the newly created connection from the drop-down. - Switch back to Use program blocks only after the project is in a clean state.
Verification
After applying any of the solutions, perform the following verification sequence before downloading to the live S7-1513-PN:
- Open the project, navigate to the affected S7-1513-PN, and insert a fresh
TSEND_Cinstance. - Set Partner =
unspecified, Connection type =TCP, Configuration Mode =Use program blocks. - Click the Connection data drop-down and select
<new>. TIA Portal must open the connection dialog and assign a new connection ID without terminating. - Compile the project with Compile > Software (rebuild all). There must be no warnings referencing orphaned connection descriptors.
- Download to the CPU and run a TCP loopback test against the partner. Confirm
STATUS=16#0000(no error) on the rising edge ofREQ. - Repeat the same sequence on a different S7-1500 station if available, to confirm the project is in a clean state.
Common Error Codes Returned by TSEND_C After Recovery
After the editor crash is fixed, runtime errors may still appear if the connection was not fully rebuilt. Use the table below as a quick reference.
| STATUS (hex) | Meaning | Remedy |
|---|---|---|
| 16#0000 | No error | Connection established, send in progress or completed |
| 16#7000 | No job active | Wait for the next call |
| 16#7001 | First call, connection establishment running | Wait |
| 16#7002 | Connection establishment completed, send in progress | Wait |
| 16#8085 | Connection ID already in use | Reassign a unique ID via the connection dialog |
| 16#80A1 | Connection or port already in use | Change the local or remote port |
| 16#80C3 | Temporary resource error | Reduce the number of simultaneous TSEND_C calls |
| 16#80C4 | Internal communication error | Check PROFINET cabling and IP configuration |
Full STATUS semantics are documented in the TIA Portal help for the TSEND_C instruction and in the application document Open User Communication with TSEND_C and TRCV_C.
When to Escalate to Siemens Support
If all five solutions above fail to clear the crash, escalate through the official Siemens Industry Online Support Support Request channel. Before opening the request, gather:
- The exact TIA Portal V16 patch level (Help > Installed software).
- The article number and firmware version of the affected S7-1513-PN.
- The article numbers and firmware versions of the S7-1215 stations that do not exhibit the issue.
- The project archive (
.zap16) of the failing configuration. - A list of the remedies already attempted (Solutions 1 through 5).
Provide this package so that support can reproduce the failure against the same CPU and patch level without requiring an additional round-trip.
Prevention and Best Practice
- Always keep TIA Portal V16 at the latest available V16 update. The V16 release train is a stable branch; the latest update does not introduce new features and is therefore safe to install on active engineering stations.
- Avoid cloning entire S7-1500 stations and renaming variables in bulk. If cloning is required, recompile the cloned station from scratch with Compile > Software (rebuild all) before opening any communication-block configuration dialog.
- Periodically archive and retrieve the master project. This rewrites the project schema and clears transient editor cache inconsistencies before they trigger crashes.
- Track CPU firmware with the S7-1500 CPU firmware update utility and align it with the TIA Portal patch level to avoid cross-version edge cases.
- Document each TSEND_C instance with a unique connection ID, even though TIA Portal will assign one automatically. Unique IDs make runtime STATUS decoding faster.
Why does TIA Portal V16 crash only when I select TCP and Use program blocks on an S7-1500?
The crash is triggered by the connection-descriptor wizard used by the S7-1500 PROFINET interface. UDP and ISO-on-TCP paths use a different descriptor generation routine that is not affected. The defect is bound to the CPU object's project cache, not to the TSEND_C instruction itself.
Can the same S7-1513-PN accept a TSEND_C connection in a different project?
Yes. The hardware is unaffected. If you copy only the S7-1513-PN station into a new empty TIA Portal project, the connection configuration works. The failure is bound to the corrupted project metadata of the original station object.
Do I need to update the S7-1500 CPU firmware to fix the crash?
No. The crash is in the TIA Portal editor, not in the CPU firmware. Updating TIA Portal V16 to the latest V16 update and clearing the IM folder is sufficient in the majority of reported cases. CPU firmware updates are recommended for independent reasons (security and stability) but do not address this specific symptom.
Will deleting the IM folder of the TIA project lose my program code?
No. The IM folder is a generated cache that TIA Portal rebuilds on the next compile. Program blocks, tags, hardware configuration, and connection data are stored in other folders of the project archive. Always close TIA Portal and back up the project before deleting the IM folder.
Is the TSEND_C instruction itself safe to use on S7-1500 CPUs in TIA Portal V16?
Yes. TSEND_C is the standard Open User Communication instruction for the S7-1200/1500 platform, fully documented in the TIA Portal manual collection and the Open User Communication application document. The crash is an editor defect, not a runtime instruction defect, and is fixed by updating TIA Portal and clearing the project cache.