Overview of the SIMATIC S7-1200 Platform
The SIMATIC S7-1200 is a compact programmable logic controller designed for small to medium automation tasks where discrete and analog I/O, motion primitives, and PROFINET connectivity must coexist on a single backplane. The platform combines the CPU, signal modules (SM), signal boards (SB), communication modules (CM/CP), and basic HMI panels under a single engineering umbrella that evolved from STEP 7 Basic into the current TIA Portal releases. Per the SIMATIC S7-1200 System Manual, the controller is positioned as a successor bridge between the legacy S7-200 line and the mid-range S7-300 family, sharing the S7-300's PROFINET interface model and OB/FB/FC program structure while keeping the footprint and price point of the S7-200.
For a current product perspective, Siemens documents the next-generation SIMATIC S7-1200 G2 as the evolution of this platform, adding motion control, machine safety, and data transparency features while preserving the same engineering model. The architectural baseline covered in this article applies to both generations: PROFINET as the primary interface, IEC 61131-3 languages, and DB/FB-based timer instantiation.
Engineering Software Evolution: STEP 7 Basic to TIA Portal
The original S7-1200 launched with STEP 7 Basic, a streamlined engineering tool targeting the controller plus the Basic Panel HMI line. Subsequent TIA Portal releases (STEP 7 v10.5 Basic, then STEP 7 v11 / v11.x) merged the S7-1200, S7-300, S7-400, and WinCC configuration into one common framework branded Total Integrated Automation. Two licensing tiers are relevant for S7-1200 work:
| Tier | Coverage | HMI Inclusion | Languages Available |
|---|---|---|---|
| STEP 7 Basic | S7-1200 only | WinCC Basic (Basic Panels) | LAD, FBD (STL/SCL optional via SUS) |
| STEP 7 Professional | S7-1200, S7-300, S7-400 | WinCC Comfort/Advanced rolled in | LAD, FBD, STL, SCL, GRAPH (per SUS) |
STL (Statement List) and SCL (Structured Control Language) were added to the S7-1200 instruction set as optional upgrades purchased through a Software Update Service (SUS). Migration utilities for converting S7-200 (MICRO/WIN) projects into S7-1200 format are bundled in the higher-tier TIA releases, but the conversion is not 100% bit-identical; plan for manual cleanup of unsupported instructions, memory layout differences, and timer rewrites.
PROFINET Interface: Connection Budget
The CPU's integrated PROFINET port is the primary communication channel for programming, HMI, peer-to-peer S7 communication, and open Ethernet. The S7-1200 System Manual (Section 7, PROFINET) defines the following maximum concurrent connections per CPU:
| Connection Class | Maximum Connections | Used By |
|---|---|---|
| HMI to CPU | 3 | Basic Panels, Comfort Panels, WinCC Runtime, third-party HMIs using the S7 driver |
| Programming device (PG) | 1 | TIA Portal online, firmware update, trace upload |
| S7-1200 program communication (T-blocks) | 8 | TSEND_C, TRCV_C, TCON, TDISCON, TSEND, TRCV over ISO-on-TCP / TCP |
| Passive S7-1200 ↔ active S7 CPU | 3 | GET/PUT from active S7-300/400, ETHx_XFER from active S7-200 |
An S7-1200 CPU acts as a passive device for legacy S7 GET/PUT and ETHx_XFER connections. When the S7-1200 initiates the communication itself, it must use the T-block (TSEND_C / TRCV_C / TCON) instruction set; S7-1200 to S7-1200 PUT/GET is therefore not supported as a peer-initiated exchange and must be modeled with T-blocks on both sides.
Verification: Connection Census
- Open the device view of the CPU in TIA Portal and double-click the PROFINET interface.
- Select Properties > Connection resources and confirm the live connection count does not exceed 3 + 1 + 8 + 3 = 15 total.
- For each T-block FB instance, verify the
CONNECTparameter points to a valid TCON_DB and that the partner is reachable via the configured port (default ISO-on-TCP port 102).
IEC Timer Implementation in Static Memory
The S7-1200 does not expose the legacy S7-200 style T0–T255 timer word. Instead, the firmware implements IEC 61131-3 timers as multi-instance capable function blocks. Three timer types are available in the instruction tree under Timers:
| IEC Block | Behavior | Typical Use |
|---|---|---|
| TP | Pulse — output true for PT duration regardless of input length | One-shot actuation |
| TON | On-delay — output true after input held for PT | Debounce, start delay |
| TOF | Off-delay — output true while input is true, holds for PT after falling edge | Cool-down, hold-open |
The recommended pattern is to declare the timer inside the STAT section of the function block that uses it. TIA Portal then places the timer instance data inside the FB's instance DB automatically — no separate global DB is created for each timer. Compare this with S7-300 behavior where every IEC timer consumed its own dedicated DB and quickly fragmented the DB numbering plan.
FUNCTION_BLOCK "Motor_Startup"
VAR
Start_PB : BOOL; // input
Running : BOOL; // output
Start_Dly : TON; // IEC on-delay, instance lives in the instance DB
END_VAR
BEGIN
Start_Dly(IN := Start_PB, PT := T#3s);
Running := Start_Dly.Q;
END_FUNCTION_BLOCK
This pattern keeps timers scoped to the FB and prevents the proliferation of global DBs that plagued S7-300 projects. The same approach applies to counters (CTU, CTD, CTUD) and edge-detection bits.
System Clock Byte and Time-of-Day Functions
Like the S7-300, the S7-1200 exposes a configurable clock memory byte. Setting the clock byte in the CPU properties causes TIA to toggle individual bits of that byte at fixed frequencies. The default bit-to-frequency mapping is:
| Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Period (s) | 2.0 | 1.6 | 1.0 | 0.8 | 0.5 | 0.4 | 0.2 | 0.1 |
| Frequency (Hz) | 0.5 | 0.625 | 1.0 | 1.25 | 2.0 | 2.5 | 5.0 | 10.0 |
Clock memory is enabled under Properties > System and clock memory in the CPU device view. If the byte appears silent in logic, confirm that the byte address is set (default is MB0 when enabled) and that no other logic is overwriting the byte. Time-of-day reads use RD_SYS_T (DTL output) and WR_SYS_T (DTL input); both work against the CPU's buffered real-time clock, which is maintained by the capacitor-backed RTC for typically 20 days at 25 °C after power removal.
S7-200 to S7-1200 Migration: Mechanical and Wiring Pitfalls
Mechanically, the S7-1200 mimics the S7-200 form factor and footprint, but the I/O terminal layout is not a drop-in replacement. The analog inputs on most S7-1200 CPUs (CPU 1211C/1212C/1214C/1215C/1217C) are located on the top of the unit, adjacent to where the S7-200 placed its 120 VAC power terminals. Swapping a S7-200 for a S7-1200 without re-routing the wiring will route 120 VAC next to sensitive analog inputs, creating a noise hazard and a potential insulation breakdown.
| Check | Action |
|---|---|
| Power terminal location | Verify 120/230 VAC supply lands on the S7-1200 power terminals, not on the analog channel strip. |
| Analog shield grounding | Re-terminate analog shields to the CPU ground bar, not to the cabinet door. |
| Symbolic vs. absolute addresses | Re-tag every I/O point; the migration tool maps V-memory to global DBs, not to I/Q addresses. |
| Timers and counters | Replace T0–T255 TON/TOF with IEC TP/TON/TOF blocks placed in FB static memory. |
| Subroutines (SBR) | Convert to FCs and FBs; SBR/RET pattern does not exist in TIA. |
Third-Party HMI Integration: Red Lion G3 Example
The S7-1200's symbolic, tag-based addressing model mimics ControlLogix and is not natively understood by the S7-300 ISO-on-TCP driver in Red Lion's G3 / G310 HMI line (Red Lion Crimson 3 runtime). For the G3 to communicate with an S7-1200 over Ethernet, the integrator must:
- Disable symbolic addressing on the S7-1200 DBs that the HMI will read (TIA: DB Properties > Attributes > Optimized block access = unchecked).
- Drive the HMI protocol with the Red Lion Siemens S7-300/400 driver and reference tags using the absolute
DBx.DBByyypattern. - Configure the S7-1200 to allow GET/PUT access by an active partner: Properties > Connection mechanisms > Permit access with PUT/GET communication = enabled.
This forces a return to the absolute address model that most S7-300 users are familiar with and trades the design benefits of optimized blocks for interoperability. A native S7-1200 symbolic driver from Red Lion is the long-term solution but depends on Red Lion's driver roadmap rather than Siemens.
Modbus TCP and Open Ethernet Drivers
At launch, the S7-1200 could not natively speak Modbus TCP or used a generic open TCP socket; only S7 communication was available over PROFINET. Subsequent firmware updates introduced the MB_CLIENT and MB_SERVER instruction set for Modbus TCP plus the generic TCON / TSEND / TRCV / TDISCON open-user-communication blocks for arbitrary TCP and ISO-on-TCP traffic. To enable Modbus TCP:
- Update the CPU firmware to the latest release listed on the Siemens Industry Online Support portal.
- Insert a
MB_CLIENTorMB_SERVERinstance DB in the program. - Wire
CONNECTto aTCONconfiguration pointing at the partner IP and port 502. - Map the Modbus holding registers to a global DB and configure
MB_DATA_PTRaccordingly.
Modbus RTU on the serial CM 1241 module requires MB_COMM_LOAD to parameterize the port and MB_MASTER / MB_SLAVE for the application logic.
AS-Interface and Fieldbus Availability
The S7-1200 family did not ship with a native ASi master module at first release. ASi networks must be brought in via a PROFIBUS ASi gateway (e.g., Siemens DP/AS-i Link 20) connected to the S7-1200 through a PROFIBUS master module (CM 1243-5) or via a third-party DP/AS-i gateway connected to the PROFINET port through a PROFINET/PROFIBUS coupler. This added cost and latency compared with the S7-200, which had a more integrated ASi path through certain CP modules. Subsequent module rollouts added DP and AS-i gateways specifically targeted at the S7-1200 backplane.
Troubleshooting Matrix
| Symptom | Likely Root Cause | Verification / Fix |
|---|---|---|
| HMI loses connection after a few minutes | Exceeded 3 simultaneous HMI connections; one HMI is not releasing the TSAP | |
| GET/PUT from S7-300 returns error 80C4 | Optimized block access enabled on the target DB; PUT cannot resolve symbolic name | Disable optimized access on the DB; absolute addressing only |
| IEC timer never expires | ||
| Clock memory byte stays at zero | ||
| Red Lion G3 shows comm loss | ||
| Modbus TCP partner times out | ||
| Analog inputs read noisy after S7-200 swap |
Programming Language Selection and Performance Notes
LAD (Ladder) and FBD (Function Block Diagram) are the default graphical languages and are adequate for the vast majority of S7-1200 applications. STL is available with an SUS upgrade and is preferred for compact, bit-level work; SCL is preferred for math, loops, and array processing. The S7-1200 firmware executes all three languages from the same compiled MC7 code path, so runtime differences are negligible. What does differ is editor responsiveness: WinCC Flexible (and to a lesser extent TIA WinCC) shows a noticeable lag when changing properties because the editor round-trips through MSSQL on every selection change. If editor latency is unacceptable, dedicate an SSD for the TIA project directory and disable antivirus on-the-fly scanning for *.ap* project files.
Future-Proofing and Lifecycle Planning
The S7-1200 platform is a long-running Siemens line. When planning a new deployment:
- Lock the TIA Portal version (V16, V17, V18, V19) used to commission and document it; upgrading TIA mid-project often triggers a CPU firmware update and may invalidate tested recipes.
- Buy the SUS for the TIA license to receive two annual updates and firmware compatibility for the lifetime of the project.
- Use absolute (non-optimized) DBs for any tag that a third-party HMI or SCADA must read; reserve optimized (symbolic) DBs for internal program use.
- For machine builders shipping product, freeze the CPU firmware version and document it on the nameplate so field service can match the same firmware revision.
The TIA Portal manual collection documents the latest instruction set and CPU variants; the S7-1200 G2 product page describes the next-generation platform for new designs. For current pricing and stocking information, refer to authorized Siemens distributors; commercial listings such as Siemens S7-1200 on Amazon can be useful for cross-checking catalog numbers but always confirm against the Siemens Industry Mall for the latest part numbers.
How many PROFINET connections does an S7-1200 CPU support?
The integrated PROFINET port supports 3 HMI, 1 programming device, 8 S7-1200 program (T-block), and 3 passive S7 communication connections, for a total of 15 concurrent connections per the S7-1200 System Manual.
Why are there no S7-200 style T0–T255 timers on the S7-1200?
The S7-1200 implements IEC 61131-3 timers (TP, TON, TOF) as multi-instance function blocks. Declare the timer in the STAT section of the FB that uses it; the instance data lives in the FB's instance DB so no global DB per timer is required.
Can a Red Lion G3 HMI read symbolic S7-1200 tags?
The Red Lion Siemens S7-300/400 driver requires absolute DB addressing. Disable optimized block access on the S7-1200 DBs, enable PUT/GET access, and reference tags as DBx.DBByyy from Crimson 3.
How is Modbus TCP enabled on the S7-1200?
Update the CPU firmware to a release that includes MB_CLIENT and MB_SERVER, then add a TCON configuration for port 502 to the partner and wire MB_DATA_PTR to a global DB of Modbus holding registers.
What is the clock memory byte and how is it enabled?
The clock memory byte is a freely assignable MB whose bits toggle at fixed frequencies (0.5 Hz to 10 Hz). Enable it under CPU Properties > System and clock memory in TIA Portal and assign a free MB address; the bits then drive cyclic logic without additional timer blocks.