Overview
The Siemens S7-1200/1500 Controller TIA Portal Programming Guide (V1.6 version) focuses on optimizing programming and covers the core innovations of the S7-1200/1500, such as optimization blocks, new data types VNet, direct machine code compilation, general programming specifications (block structure, symbol addressing, memory management), hardware independent programming methods, STEP 7 Safety programming points, and visual automatic generation solutions. It explicitly recommends using optimization blocks instead of non optimization blocks, symbol addressing instead of absolute addressing, and global data blocks instead of bit memory. At the same time, it provides a large number of performance optimization techniques (such as avoiding deep call hierarchy and using loop instructions reasonably), aiming to help users achieve standardized, efficient, and reusable automation program development.
S7-1200/1500 Core Innovation
1. Programming languages and compilation optimization
Language support differences:
Programming language S7-1200 S7-1500
Ladder diagram (LAD) ✅ ✅
Function Block Diagram (FBD) ✅ ✅
Structured Control Language (SCL) ✅ ✅
Statement Table (STL) ❌ ✅
Sequential Function Graph ❌ ✅
Compilation method: S7-1200/1500 generates machine code directly for all languages, without the intermediate step of "LAD/FBD → STL → machine code" for S7-300/400, ensuring consistent performance for all languages.
2. Optimize block technology (core innovation)
Optimized block vs non optimized block:
Feature optimization block (recommended) Non optimization block (only compatible)
Data storage is automatically sorted by data type, stored in declared order without gaps, and may have gaps
The addressing method can be either symbolic addressing or absolute addressing
Retention settings: A single label can be set to maintain the entire block or not to maintain it
Download feature supports uninitialized download (RUN mode update) not supported
Fast access speed (processor optimized storage) slow
Setting method: By default, "Optimize Block Access" is enabled for new blocks, which can be batch modified in the "Program Block" list; The optimization properties of instance DB inherit from the associated FB.
3. New data types
Core new type:
Data Type Applicable Controller Purpose Key Features
VARIANT S7-1500; S7-1200 (FW4.1+) dynamic pointer with type detection, replacing the ANY pointer, supporting symbol access
Date_Time_Long (DTL) both support timestamp storage containing year/month/day/nanosecond, with symbol accessible sub fields (such as DTL. Hour)
Both LReal and LReal support high-precision floating-point numbers of 64 bits and 15 decimal places, making them suitable for precise calculations
LTime only has a long-term storage range of ± 106751 days for S7-1500 and supports nanosecond level accuracy
WSRING only supports S7-1500 Unicode strings for multiple languages (such as Chinese and Latin), with a maximum of 16382 characters
4. Key instruction upgrade
MOVE series instructions:
Advantages of Instruction Usage
MOVE supports single value copying and complete copying of structures/arrays
MOVE_SLK array partial copy specifies the starting index and quantity, efficiently processing the array
MOVE_SLK_VARIANT Dynamic Type Copy Run Time Detect Data Types, Supports PLC Data Types/Arrays
The serialize/deserialize structure and byte array conversion are used for communication frame packaging/unpacking, supporting VNet input
Other instructions:
TypeOf(): detects the data type pointed to by VNet on the label (SCL only);
RUNTIME: measures program/block running time, supports performance optimization;
Multi assignment (V14+): such as # a:=# b:=# c:=0; Simplify initialization.

Universal Programming Specification
1. Program block structure
Core block type:
Key features of block type functionality
Organizational block (OB) operating system call, management program execution including loop OB (OB1), interrupt OB (OB40 hardware interrupt), etc; S7-1200 up to 100 cycles/start OB, S7-1500 supports clock interrupt OB
Function (FC) has no state block and no independent storage temporary label. Only the current call is valid, and data needs to be passed through parameters; Support direct participation of return values in SCL formulas
Function block (FB) has a status block that requires the instance DB static label to maintain its value; The instance DB structure is defined by FB and cannot be modified separately
Data Block (DB) stores data in a global DB for all blocks to access; Instance DB is only associated with FB usage
Block Reuse Techniques:
Multiple instances: FB calls other FBs to store data in their own instance DB, reducing the number of instance DBs;
Typeization block: Store FB/FC/PLC data types in the global library, supporting cross project reuse and batch updates.
2. Memory management
Memory type and access speed (from fast to slow):
Optimize the temporary labels, FC/FB parameters, and non persistent static labels of the block;
Optimize the retention labels of blocks and optimize the global database;
Email:wang@kongjiangauto.com