Problem Description: Configuration Tab Disappears After DB Creation
When configuring GET/PUT S7 communication between two S7-1200 CPUs in TIA Portal, the engineer inserts the GET or PUT instruction from the Instructions task card. TIA Portal automatically prompts for the creation of an instance data block (DB). At this point the Properties pane of the call options shows two tabs:
- General tab – call interface, name, and instance DB number.
- Configuration tab – where the S7 connection ID, partner address, local/remote pointer, and status tags are specified.
After the user confirms the instance DB by pressing OK, only the General tab remains. The Configuration tab is no longer visible, so the connection parameters cannot be wired to the instruction. The block compiles, but the GET/PUT instruction operates with default (empty) connection parameters and either returns STATUS = 0x0001 (communication error) or never transitions the DONE and ERROR outputs to valid states.
This defect is observed on TIA Portal V11 SP2 Update 4 and persists through V13/V14 unless specific ordering rules are observed. The same behavior has been reported on V15, V16, V17, and V18 with project libraries that reference older instruction versions.
Root Cause Analysis
Three independent root causes produce the missing Configuration tab symptom. Diagnose which applies before applying the fix.
Cause 1 – Instance DB Confirmed Before Configuration Pane Is Anchored
When the Call options dialog is open, the Configuration tab is rendered as a child of the dialog window, not of the inspector pane. Pressing OK closes the dialog before the configuration is bound to the project. The instruction retains no reference to the S7 connection, so the inspector collapses the configuration tree.
Cause 2 – PUT/GET Remote Access Not Permitted in the Partner CPU
Per the Siemens S7 Communication with PUT/GET manual, the partner S7-1200 must have the connection mechanism "Permit access with PUT/GET communication from remote partner" enabled. If it is disabled, the S7 connection is rejected at runtime and the inspector refuses to display parameters for a connection that cannot legally exist. The Configuration tab therefore remains hidden until the access flag is set.
Cause 3 – Stale Instruction Version After Project Migration
Projects originally created in TIA Portal V11 SP2 carry FB versions (PUT = FB15, GET = FB14) that are no longer compatible with the V18 instruction set. TIA Portal silently falls back to the legacy block, which lacks the inspector configuration UI. The block must be deleted and reinserted from the current Instructions palette to refresh the version.
Prerequisites
| Item | Specification |
|---|---|
| Engineering station | TIA Portal V16 or later (V18 recommended for S7-1200 firmware 4.6+) |
| S7-1200 CPU (local) | CPU 1211C / 1212C / 1214C / 1215C / 1217C, firmware 4.2 or higher |
| S7-1200 CPU (partner) | Any S7-1200 CPU, firmware 4.2 or higher (V4.5+ recommended) |
| Number of CPUs in project | Two, networked through a PROFINET or Ethernet subnet |
| S7 Connection resource | At least 1 free S7 connection on each CPU (default = 12 for S7-1200) |
| Data transfer per call | ≤ 400 bytes (PUT) and ≤ 400 bytes (GET) per the S7 Communication with PUT/GET reference |
| Partner access flag | "Permit access with PUT/GET communication from remote partner" = enabled on both CPUs |
Step-by-Step Resolution
Step 1 – Enable PUT/GET Access on Both CPUs
- Open the Project tree and select the local CPU (e.g.,
PLC_1 [CPU 1214C DC/DC/DC]). - Open Properties → General → Protection & Security.
- Under Connection mechanisms, tick Permit access with PUT/GET communication from remote partner.
- Repeat for the partner CPU (e.g.,
PLC_2). - Compile and download both CPUs.
Step 2 – Create the S7 Connection from the Device View
- Open Devices & Networks.
- Switch to the Network view, drag a line between the two CPU PROFINET ports, and confirm the S7 connection is created.
- Open the Connections group on the local CPU. The new S7 connection appears with a connection ID (e.g.,
1) – note this ID; it is required by the PUT/GET instruction. - Confirm the partner IP address, rack/slot, and TSAP are correct in Properties → General → Addresses.
Step 3 – Insert GET/PUT Instruction Without Closing the Configuration Pane
- Open the program block (e.g.,
Main [OB1]) of the local CPU. - From the Instructions task card, expand Communication → S7 Communication.
- Drag GET (or PUT) into a network. The Call options dialog opens.
- Enter a name (e.g.,
GET_PLC2) for the instance DB and the data block number. Do not press OK yet. - Click the Configuration tab inside the Call options dialog – not the inspector at the right edge.
- Fill in the connection ID (
1), local pointer (e.g.,%DB10.DBX0.0 BYTE 100), partner pointer (e.g.,%DB20.DBX0.0 BYTE 100), and status outputs (STATUS,ERROR). - Click OK only after all configuration fields show green check marks.
Per the TIA Portal V20 help on GET/PUT instructions, GET reads tags from a partner CPU, and PUT writes tags to a partner CPU. Configuration must be supplied at the moment the call is wired; once the instance DB is confirmed, the inspector pane is rebound to the DB and loses the instruction-level configuration tree.
Step 4 – Re-Open the Configuration Tab on an Existing Block
If the instance DB has already been confirmed and the Configuration tab is missing:
- Select the GET or PUT box in the network.
- In the Properties inspector (right edge of the editor), click the small arrow next to the GET/PUT instance to expand the sub-tree. The configuration parameters are now reachable.
- If the sub-tree is still empty, double-click the block header to open the instance DB; close it without changes. The inspector refreshes and the Configuration tab reappears.
- As a last resort, delete the block and re-insert it following Step 3 with the dialog open during configuration.
Step 5 – Compile and Download
- Compile → Software (rebuild all) on the local CPU.
- Resolve any warnings about uninitialized tags in the
REQ,ID,ADDR_1, orRD_1parameters. - Download to the local CPU and then to the partner CPU.
- Switch both CPUs to RUN.
Verification
| Check | Expected Result | Diagnostic Tool |
|---|---|---|
| Connection resource online | Connection state = ESTABLISHED, ID = 1 | Online & Diagnostics → Connections |
GET STATUS output |
0x0000 on success; 0x0001 on configuration error | Watch table on local CPU |
PUT STATUS output |
0x0000 on success; 0x7000 while idle | Watch table on local CPU |
| Data verification | Byte pattern written via PUT appears in the partner DB within one OB1 cycle | Watch table on partner CPU |
| Data validity | GET VALID = TRUE; data updated |
Watch table on local CPU |
| Connection diagnostics | No DEAD or RESOURCE_SHORTAGE entries in the diagnostic buffer | Online & Diagnostics → Diagnostic buffer |
Common GET/PUT STATUS Codes
| STATUS (hex) | Meaning | Corrective Action |
|---|---|---|
| 0x0000 | Job completed without error | None |
| 0x0001 | Communication error – check connection ID and partner address | Verify ID matches the S7 connection in Devices & Networks |
| 0x0080 | Access to remote partner denied (PUT/GET flag disabled) | Enable Permit access with PUT/GET communication from remote partner |
| 0x7000 | No job active (PUT/GET idle) | Normal state; pulse REQ to trigger |
| 0x7001 | First call after job start | Normal state |
| 0x7002 | Subsequent call while job in progress | Normal state |
| 0x8085 | Parameter error – ADDR or RD/SD pointer length exceeds 400 bytes | Reduce data area or split into multiple calls |
| 0x80A3 | Connection ID invalid | Check S7 connection resource |
| 0x80C3 | Short-term communication resource shortage | Reduce concurrent PUT/GET calls |
| 0x80F7 | Pointer access to non-existent DB or out-of-range byte | Verify partner DB number and length |
Data Size and Timing Limits
The PUT and GET instructions transfer a maximum of 400 bytes per call, as stated in the Siemens S7 Communication Sequencer PDF. For larger transfers, sequence multiple calls with the rising edge of REQ advancing a counter that re-points ADDR_1/SD_1 and RD_1/RD_2 to successive 400-byte slices.
| Parameter | Limit (S7-1200) | Notes |
|---|---|---|
| Max bytes per PUT | 400 | Documented ceiling |
| Max bytes per GET | 400 | Documented ceiling |
| Concurrent PUT/GET jobs | Up to 4 per CPU | Exceeding this returns 0x80C3 |
| Minimum OB1 scan time impact | ~5 ms per 100 bytes | Approximate; depends on partner load |
| S7 connection resources per S7-1200 | 12 total, shared with HMI and PG | Reserve 2 for PUT/GET |
Sample Structured Text Implementation
The following SCL (Structured Control Language) snippet demonstrates a bi-directional PUT/GET pair between two S7-1200 CPUs using connection ID 1.
// Local CPU PLC_1 – block: DataExchange_PLC1 [FB100]
// Connection ID = 1, partner IP = 192.168.0.20 (PLC_2)
#i_Trigger := "Clock_1Hz".CLK AND NOT "Clock_1Hz".CLK_old;
"Clock_1Hz".CLK_old := "Clock_1Hz".CLK;
// PUT: write 100 bytes from DB10 to PLC_2 DB20
IF #i_Trigger THEN
"PUT_PLC2"(REQ := TRUE,
ID := 1,
DONE => "bPutDone",
ERROR => "bPutError",
STATUS=> "wPutStatus");
"PUT_PLC2".SD_1 := P#DB10.DBX0.0 BYTE 100;
END_IF;
// GET: read 100 bytes from PLC_2 DB30 into DB11
IF "bPutDone" THEN
"GET_PLC2"(REQ := TRUE,
ID := 1,
DONE => "bGetDone",
ERROR => "bGetError",
STATUS=> "wGetStatus");
"GET_PLC2".RD_1 := P#DB11.DBX0.0 BYTE 100;
"GET_PLC2".ADDR_1 := P#DB30.DBX0.0 BYTE 100;
END_IF;
On the partner CPU (PLC_2), the matching Permit access with PUT/GET communication from remote partner flag must be set; no application logic is required on the partner side, since PUT/GET is server-transparent.
Firmware Compatibility Matrix
| S7-1200 Firmware | TIA Portal Minimum Version | PUT/GET Inspector Tab | Notes |
|---|---|---|---|
| V2.0 | V10.5 | Not available – use BSEND/BRCV | Legacy firmware |
| V3.0 | V11 | Available in V11 SP2 Update 4+ | Original target of this article |
| V4.0 | V12 | Available | Improved diagnostics |
| V4.2 | V13 SP1 | Available | Recommended baseline |
| V4.4 | V15.1 | Available | Adds optimized block access support |
| V4.5 | V17 | Available | Required for OPC UA + PUT/GET coexistence |
| V4.6 | V18 | Available | Current shipping revision |
Field-Proven Diagnostics Checklist
- Open the partner CPU Online & Diagnostics → Connections. Confirm exactly one S7 connection from the local CPU is listed and the state is ESTABLISHED.
- If the connection shows DEAD, check the partner's Diagnostic buffer for entry text containing "PUT/GET access denied" – this confirms Cause 2.
- Use Wireshark or Siemens S7Comm trace to capture the TPKT/COTP handshake. Look for a CC (Connect Confirm) with a TSAP reject – this also confirms Cause 2.
- If the Configuration tab is still missing after Step 4 above, close the project without saving, reopen it, and let TIA Portal re-link the block references.
- For V11 SP2 projects, install Update 5 or later via SIMATIC Automation Tool. Update 4 carries a known bug in the block inspector binding.
Edge Cases and Field Cautions
REQ pulse and prevent watchdog timeout on either CPU.FAQ
Why does the Configuration tab disappear after I press OK on the instance DB dialog?
During the initial call, the Configuration tab is rendered inside the Call options dialog. Once you press OK, the inspector re-binds to the instance DB and the instruction-level configuration tree collapses. Click the GET/PUT block in the network and re-open the Properties inspector; the configuration fields are reachable as a sub-tree of the block. If they are still empty, reinsert the block and fill the configuration before confirming the instance DB.
What is the maximum data size per PUT or GET call on an S7-1200?
Each PUT or GET call can transfer up to 400 bytes, per the Siemens S7 Communication with PUT/GET reference. Larger transfers must be sequenced in 400-byte slices by incrementing the ADDR/SD/RD pointers and re-triggering REQ.
Why does the local CPU report STATUS 0x0080 when GET/PUT runs?
STATUS 0x0080 means the partner CPU denied access. On the partner CPU, open Properties → General → Protection & Security → Connection mechanisms and enable Permit access with PUT/GET communication from remote partner, then recompile and redownload. The setting is documented in the S7 Communication with PUT/GET (S7-1500) manual.
Which TIA Portal version do I need for GET/PUT on an S7-1200?
Use TIA Portal V13 SP1 or later for firmware V4.2 CPUs, and V17 or later for V4.5 firmware. Projects originally created in V11 SP2 Update 4 should be upgraded to Update 5 or migrated to V16+; V11 SP2 Update 4 contains a known inspector binding defect.
Does GET/PUT require a program on the partner CPU?
No. PUT/GET is server-transparent on the partner CPU: the partner needs only the security flag enabled, the S7 connection established at the network level, and the data blocks defined. The local CPU's GET/PUT block reads or writes the partner DB directly without any matching instruction on the partner side.