S7-1200 GET/PUT Configuration Tab Missing in TIA Portal

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

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

  1. Open the Project tree and select the local CPU (e.g., PLC_1 [CPU 1214C DC/DC/DC]).
  2. Open Properties → General → Protection & Security.
  3. Under Connection mechanisms, tick Permit access with PUT/GET communication from remote partner.
  4. Repeat for the partner CPU (e.g., PLC_2).
  5. Compile and download both CPUs.
If this flag is not enabled, the local CPU refuses every remote PUT/GET request, and the S7 connection is reported as DEAD regardless of configuration. This is the single most common cause of GET/PUT failure on S7-1200 and is documented in the S7 Communication with PUT/GET (S7-1500) PDF.

Step 2 – Create the S7 Connection from the Device View

  1. Open Devices & Networks.
  2. Switch to the Network view, drag a line between the two CPU PROFINET ports, and confirm the S7 connection is created.
  3. 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.
  4. 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

  1. Open the program block (e.g., Main [OB1]) of the local CPU.
  2. From the Instructions task card, expand Communication → S7 Communication.
  3. Drag GET (or PUT) into a network. The Call options dialog opens.
  4. Enter a name (e.g., GET_PLC2) for the instance DB and the data block number. Do not press OK yet.
  5. Click the Configuration tab inside the Call options dialog – not the inspector at the right edge.
  6. 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).
  7. 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:

  1. Select the GET or PUT box in the network.
  2. 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.
  3. 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.
  4. 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

  1. Compile → Software (rebuild all) on the local CPU.
  2. Resolve any warnings about uninitialized tags in the REQ, ID, ADDR_1, or RD_1 parameters.
  3. Download to the local CPU and then to the partner CPU.
  4. 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

  1. Open the partner CPU Online & Diagnostics → Connections. Confirm exactly one S7 connection from the local CPU is listed and the state is ESTABLISHED.
  2. If the connection shows DEAD, check the partner's Diagnostic buffer for entry text containing "PUT/GET access denied" – this confirms Cause 2.
  3. 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.
  4. 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.
  5. 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

Optimized block access: If the partner DB is configured with Optimized block access (S7-1200 V4.0+ default), GET/PUT can still access it because PUT/GET uses absolute byte offsets and is independent of symbolic addressing. Do not turn off optimized access on the partner DB unless required for legacy reasons.
Cycle-time overshoot: A PUT/GET cycle that reads 400 bytes every OB1 scan can add 4-8 ms to the local scan time. Use a clock generator (e.g., 100 ms or 500 ms) to throttle the REQ pulse and prevent watchdog timeout on either CPU.
Know-how protection: If the partner CPU has Know-how protection enabled on any DB referenced by GET, the local CPU returns STATUS = 0x80F7. Remove the protection or copy the tags to an unprotected DB.
Routing through a third S7-1200: PUT/GET is a peer-to-peer protocol; it cannot traverse a third S7-1200 acting as a router. Use S7 routing via NetPro only for PG/HMI access, not for PUT/GET data exchange.

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.

Back to blog