S7-1200 to S7-400H Redundant PROFINET Communication Setup

David Krause14 min read
Industrial NetworkingSiemensTechnical Reference
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

1. Overview

Connecting a SIMATIC S7-1214C (firmware V4.0 or higher) to a SIMATIC S7-412-5H high-availability system requires explicit design choices because the two platforms handle redundancy at different layers. The S7-400H pair provides controller-level redundancy with sub-100 ms bumpless failover through fiber-optic sync modules; the S7-1200 is a single-CPU device and cannot itself be redundant. The redundancy in this scenario is therefore link-level on the PROFINET segment and connection-level in the application: only one S7-400H CPU is the active partner at any time, and the S7-1200 application must tolerate (or hide) the brief switchover.

This reference consolidates the field-proven options, explains why Media Redundancy Protocol (MRP) and PROFINET system redundancy (S2) are not directly usable with an S7-1200 in this role, and walks through the S7-communication configuration with PUT/GET and the T-block family that the S7-400H can use to back up the S7-1200 partner address.

2. S7-400H Redundancy Architecture

The S7-400H is a hot-standby system built around two identical H-type CPUs (e.g. 412-5H, 414-5H, 416-5H, 417-5H) sharing one SIMATIC S7-400H rack or two racks connected by sync-module fiber-optic links. The two CPUs run in parallel; one is the master, the other is the reserve. Event-driven synchronization keeps both internal image, program counter, and tag values aligned so that a fault on the master causes the reserve to take over at the exact instruction boundary without losing process state.

From the outside (an S7-1200, an HMI, or a SCADA client), the system presents itself as a single IP endpoint. The PROFINET device name and IP of the master are normally the ones the S7-1200 configures as the partner. Internal H-system mechanisms such as the backup HMI connection (H-CPU partner IP) and the system IP give a single, fixed address for the active CPU.

Table 1 - S7-400H redundancy characteristics relevant to an external S7-1200
Characteristic Value / Behavior
Sync mode Event-driven (fiber-optic sync modules, e.g. 6ES7960-1AA04-0XA0)
Failover time Typically < 100 ms; bumpless for the user program
External view Single PROFINET interface per H-CPU; logical single partner
Sync-link failure H-system enters solo mode and alarms; no immediate failover
PN interface on 412-5H 1 integrated PROFINET port, plus optional CP 443-1

Reference: SIMATIC S7-400H Fault-Tolerant Systems (Entry ID 82478488) and the S7-400H System Manual (Entry ID 90885106).

3. PROFINET Redundancy Options Compared

PROFINET defines several redundancy mechanisms. Only some are usable when an S7-1200 sits at one end of the link.

Table 2 - PROFINET redundancy modes and S7-1200 / S7-400H applicability
Redundancy mechanism Function S7-1200 capable S7-400H applicable Notes
MRP (Media Redundancy Protocol, IEC 62439-2) Ring topology, < 200 ms reconfiguration MRP client only; cannot be MRP manager Yes, via a managed switch (e.g. SCALANCE) acting as MRP manager Single PROFINET interface on S7-1214C rules out ring manager role
MRPD (MRP with duplicate frames) Zero-loss ring failover Not supported Not supported on 412-5H Requires special PROFINET ASICs
PROFINET System Redundancy (S2) IO controller uses two ARs to one device Not supported (single AR only) Supported on S7-400H as of FW 6.0 with PN IO V4.0 Designed for redundant IO devices, not for IO controllers
PROFINET Shared Device Two IO controllers share one IO device Yes, but unrelated to H failover Yes Distributes sub-slots to two controllers
Application-level redundancy S7-1200 polls S7-400H twice; H-system uses partner-IP substitution Yes - this is the practical path Yes - via H-system IP, partner IP, system IP Combined with S7 PUT/GET or T-blocks

The Cisco IE9300 documentation describes PROFINET system redundancy modes and is useful background on how AR (Application Relationship) and CRP (Communication Relation Protocol) handle failover, although the S7-1200 endpoint is not a candidate for S2 itself: PROFINET System Redundancy - Cisco IE9300 Configuration Guide.

4. Why the S7-1200 Cannot Be an MRP Manager

MRP requires one node in the ring to take the role of MRP manager. The manager sends test frames and reconfigures the ring on link loss. To act as MRP manager, a device must support the MRP manager role in its PROFINET stack, and the typical S7-1200 CPU ships with MRP client support only - it can participate in a ring managed by a switch such as a SCALANCE XC-200, XC-300, or a third-party managed switch, but it cannot itself be the ring manager.

Even when an S7-1200 variant (e.g. CPU 1215C, CPU 1217C) exposes two physical RJ-45 ports labeled PN1 and PN2, these share a single PROFINET interface internally (one MAC, one IP, one device name). They cannot be split into two independent PROFINET interfaces that each carry their own MAC, which is a prerequisite for acting as an MRP manager with a second port or for a true S2 device.

Field consequence: the typical topology is a linear or star PROFINET segment with a managed switch at the center. The S7-1200 connects once to that switch; the switch may then either (a) sit in an MRP ring together with the two H-CPUs' PROFINET ports or (b) connect both H-CPUs through separate switch ports for S7-400H internal redundancy only.

5. Communication Protocol Selection

Three protocol families are available in TIA Portal V15 and later, with the following support matrix against S7-400H.

Table 3 - Protocol options for S7-1200 <-> S7-400H
Protocol Blocks used S7-1200 S7-400H Redundancy behavior
S7 Communication (PUT/GET) PUT, GET in both CPUs Yes (instructions in TIA Portal) Yes (FB15 PUT_S, FB14 GET_S in STEP 7 V5.x or TIA blocks) Connection re-established by the new master after H-failover; S7-1200 may see a brief disconnect
T-Blocks (TCP) TSEND_C, TRCV_C, TUSEND, TURCV Yes (Open User Communication over TCP) Yes (FB63 TSEND, FB64 TRCV, FB65 TUSEND, FB66 TURCV) Same as PUT/GET; connection is to the H-system IP / partner IP
Open User Communication (UDP / ISO-on-TCP) TCON, TSEND, TRCV, TDISCON Yes Yes (FB65 TCON etc.) Application must implement redundancy; not provided by the blocks
S7 Distributed I/O (PROFINET IO) n/a (controller/device role) Only as IO controller of subordinate devices Yes as IO controller or device H-system can act as redundant IO controller on S2-capable devices

Recommendation: Use PUT/GET for the simplest configuration. Use T-blocks when (a) the data volume per cycle is large and you need stream-style transfer with sequence checking, or (b) you want the connection to terminate on a user-defined TCP port and a partner IP you can swap on the fly.

6. PUT/GET Configuration Procedure

The S7-1200 can be either the client (issuing PUT/GET) or the server (responding to PUT/GET). For S7-400H redundancy, the client role is the easier choice: the S7-1200 actively reconnects after an H-failover, while the server role on the H-system is bound to a single physical CPU at a time.

6.1 Prerequisites

  • TIA Portal V16 or later (V15 SP1 is the minimum for some 412-5H FW 6.0 features)
  • S7-1200 CPU firmware V4.2 or later (V4.4 recommended for the latest PUT/GET reliability fixes)
  • S7-412-5H firmware V6.0 or later (V6.0.7 or later recommended for the H-system IP partner-substitution behavior)
  • S7-400H is configured as an H-station with both CPUs at the same FW level
  • PROFINET network: managed switch (e.g. SCALANCE XC-200) with both H-CPU ports and the S7-1200 port connected

6.2 Step-by-step on the S7-1200 (TIA Portal)

  1. Open the S7-1200 project, then Devices & Networks > Networks view > Connections.
  2. Select S7 connection as the connection type.
  3. Set Local end = S7-1200, Partner end = the S7-400H station. Enter the H-system IP (system IP) or the partner IP of the H-station as the partner address.
  4. Activate the Establish active connection check box on the S7-1200 side; the H-system is passive.
  5. From the Ladder / FBD / SCL editor, drop PUT or GET into a cyclic OB (e.g. OB1 or OB35).
  6. On the connection configuration, ensure the partner interface is the PROFINET interface of the S7-400H (slot 0 / interface X1 / X2 depending on rack).
  7. Compile and download to the S7-1200.

6.3 Step-by-step on the S7-400H (TIA Portal, H-station)

  1. Open the H-station project, verify that the H-system is enabled: Properties > System > H operation must show both H-CPUs configured.
  2. Set the system IP (H-system identifier) under Properties > PROFINET interface > Ethernet addresses. The S7-1200 partner address must be this system IP, not the IP of CPU0 or CPU1.
  3. Verify that the S7 connection is configured as unspecified on the H-side; the active endpoint is the currently master CPU.
  4. Compile and download both H-CPUs; perform the H-system download (separate for each CPU in the correct order - first CPU 0, then CPU 1, or use the bulk H-download in TIA Portal).
  5. Switch to run on both CPUs and confirm green RUN / RUN-R on both.

6.4 The "no optimized DB" rule

When the S7-1200 uses PUT/GET as a server, the data blocks that the partner reads or writes must be non-optimized. With Optimized block access enabled (the default for new DBs in TIA Portal), the partner CPU cannot resolve symbolic addresses and PUT/GET returns STATUS = 0x81 (or the S7-1200 returns DONE=0, ERROR=1, STATUS = 80C3 / 80B1 depending on firmware).

Fix: open the DB on the S7-1200, Properties > Attributes, uncheck Optimized block access. Recompile, reload. The absolute addresses are now stable, and the PUT/GET operand list on the S7-400H side must reference those absolute addresses, e.g. DB100.DBB0, DB100.DBW2.

7. T-Blocks for Hot-Standby Transfer

The S7-400H can act as a TCP server using TSEND / TRCV (FB63 / FB64) or the unsolicited variants TUSEND / TURCV (FB65 / FB66). The S7-1200 uses TSEND_C and TRCV_C from the Instructions > Communication > Open User Communication palette.

Configuration of the connection on the S7-1200:

  • Connection type: TCP
  • Partner IP: H-system IP (system IP of the S7-400H)
  • Partner port: e.g. 2000 (must match the S7-400H TCON IDB port)
  • Local port: 0 (any) or a fixed port for firewall purposes
  • Active connection establishment: true on the S7-1200 side

Behavior on H-failover: the TCP connection terminates when the master CPU stops processing. The reserve CPU is now the active one but the TCP endpoint is fresh; it must accept a new connection from the S7-1200. The S7-1200's TSEND_C with CONT=1 will retry; the connection re-establishes in tens of milliseconds. There is no data loss on the application side provided the S7-400H application uses T-blocks in the program on both H-CPUs (the reserve's T-blocks become the new active path automatically).

8. Network Topology

Two topologies are field-proven.

S7-1200CPU 1214C SCALANCE XC-200Managed Switch S7-400H CPU 0(Master or Reserve) S7-400H CPU 1(Master or Reserve) Sync modules(fiber) PROFINET (S7) PN X1 PN X2

Topology A (above): linear / star through a single managed switch. The S7-1200 has one path. The S7-400H is internally redundant.

S7-1200CPU 1214C S7-400H CPU 0 S7-400H CPU 1 Sync MRP ring (S7-400H only, S7-1200 is a client if it supports MRP client role)

Topology B: the two H-CPUs sit in a PROFINET MRP ring with the managed switch as MRP manager. The S7-1200 connects to the switch off the ring, or as an MRP client on the ring. Ring failure between the switch and one H-CPU is recovered in < 200 ms.

Field caveat: an S7-1214C FW V4.2 supports the MRP client role; an S7-1214C FW V4.0 does not. Verify the firmware on the device label (e.g. 6ES7 214-1AG40-0XB0 for V4.2) before claiming MRP client capability.

9. H-System Failover Behavior from the S7-1200 Side

When the S7-400H master fails (PROFIBUS / PROFINET fault, CPU stop, hardware fault), the following sequence is observable on the S7-1200:

  1. 0 ms - master CPU enters STOP or fault state; reserve begins master-takeover.
  2. ~50-100 ms - reserve is the new master. The PROFINET stack on the new master is fresh. Existing TCP connections (S7 connection or T-block) are terminated with FIN / RST.
  3. ~100-500 ms - the S7-1200 sees the connection close. The PUT / GET block reports ERROR=1, STATUS = 0x80C3 / 0x8181 (resource error, partner not reachable). TSEND_C with CONT=1 reports BUSY until the connection is re-established.
  4. ~500-2000 ms - the S7-1200 opens a fresh S7 or TCP connection to the H-system IP. DONE=1 on the next call.

Application implication: the S7-1200 program must debounce or filter the connection error for at least 2 seconds and keep the last good process values in a non-volatile DB (retentive marker area, MB0-MB15, or a non-optimized DB with Enable retain). Alarm bursts on the HMI side are common during the first second.

10. Diagnostics and Troubleshooting Matrix

Table 4 - Common faults and corrective actions
Symptom on S7-1200 Status / code Likely cause Corrective action
GET / PUT returns error immediately STATUS=0x80B1 / 0x80C3 Optimized DB access on S7-1200; partner address wrong Disable optimized block access; verify absolute DB addresses in the partner list
Connection establishes, then drops every few minutes STATUS=0x8181 Access list on S7-1200 blocks partner; H-system IP not set Enable PUT/GET server in S7-1200 connection properties; ensure H-system IP is configured, not CPU0 IP
T-block stays BUSY indefinitely after H-failover No error code CONT=0; partner never accepts new connection Set CONT=1, ensure H-side TCON is configured on the H-system IP and listens for incoming connections
Data values inverted or wrong byte order n/a (no error) Big-endian / little-endian mismatch, or word vs byte swap Use SWAP instruction on the S7-1200, or call PUT with ADDR_i referencing the correct byte
S7-400H reports SF on PROFINET after connecting Diagnostic buffer entry "Connection aborted" S7-1200 sends an unconfigured connection type Set connection type to S7 connection on both ends; check TIA Portal project consistency
MRP ring does not close MRP manager reports "ring open" permanently SCALANCE not set as MRP manager, or ring port mis-configured Enable MRP manager on the SCALANCE; assign the ring ports explicitly

11. Verification and Commissioning

After configuration, perform the following verification on the live system before sign-off:

  1. Online connection test: in TIA Portal, right-click the S7-1200, Online & Diagnostics > Accessible devices, confirm the H-system IP responds. Repeat for both H-CPUs' individual IPs to confirm the rack is alive.
  2. Bidirectional PUT/GET test: write a test value from the S7-1200 to a non-optimized DB on the S7-400H, and from the S7-400H back to a different non-optimized DB on the S7-1200. Verify both data flows with the HMI or STEP 7 watch table.
  3. Forced failover test: in TIA Portal on the H-station, run Online > H-station > Master-Changeover. Observe on the S7-1200: connection drops, STATUS=0x8181, recovers within 2 s, DONE=1 on the next call.
  4. Network fault test: physically disconnect the PROFINET cable from the active H-CPU. The S7-400H should switch to the reserve within a few hundred milliseconds; the S7-1200 application should remain alive.
  5. Sync-link pull test: pull one sync-module fiber. The H-system enters solo mode; the S7-1200 sees a normal operating state (no failover) but the H-station alarms. Document the alarm handling.
  6. Retain / restart test: cycle power on the S7-1200 with Retain enabled on the relevant DBs. After restart, the connection to the H-system is rebuilt automatically; no reconfiguration is required.
Safety caveat: the S7-1200 is a single CPU. Any SIL / PL requirement for the overall control loop must be evaluated separately, typically with a separate S7-1500F / S7-400F pair or a safety relay for the SIL portion. The H-system of the S7-400 is process-safety capable only with F-type H-CPUs (e.g. 416F-3 PN/DP), not with a 412-5H.

12. Frequently Asked Questions

Can an S7-1200 act as MRP manager in a PROFINET ring with an S7-400H?

No. The S7-1214C has a single PROFINET interface and supports the MRP client role at best (firmware V4.2 or later). Use a managed switch such as a SCALANCE XC-200 as the MRP manager, with the S7-1200 as a ring client or as an off-ring star participant.

Which IP address of the S7-400H should I configure as the partner on the S7-1200?

Use the system IP (also called the H-system IP) of the S7-400H station, not the IP of CPU 0 or CPU 1. The system IP is the H-station's logical identity and is bound to whichever CPU is the current master.

Do I have to disable optimized block access on the S7-1200 data blocks?

Yes, for any DB that the S7-400H reads or writes via PUT/GET. Optimized blocks use symbolic addressing with gaps, and the S7-400 PUT/GET operand list is purely absolute. Without disabling it, the S7-1200 returns STATUS=0x80B1 or 0x80C3 and no data is exchanged.

Does the S7 connection survive an H-failover without a reconnection handshake?

No. The S7-connection to the failed master CPU is closed. The S7-1200 client automatically opens a new connection to the H-system IP, which is now served by the reserve CPU. The gap is typically 0.5 to 2 seconds. Treat this as a transient fault in the application.

Can I use Open User Communication (ISO-on-TCP) instead of PUT/GET?

Yes, via TCON, TSEND, TRCV, TDISCON on both sides. The behavior on H-failover is identical to TCP T-blocks. ISO-on-TCP adds sequence and acknowledges but the connection is still terminated on master CPU loss and must be re-established. PUT/GET remains the lowest-overhead option for small cyclic data.

Back to blog