PLCcheck

S5 Absolute Addressing vs. S7 Symbolic Addressing

Why S5 uses absolute addresses (E 0.0, MW 10, DB10.DW5) and S7 prefers symbolic names (Start_Button, Temperature, Motor.Speed). Migration strategy for converting absolute to symbolic.

·8 min read
S5S7addressingabsolutesymbolicsymbol tablePLC tagsTIA Portalmigration

Diesen Artikel auf Deutsch lesen

S5 Absolute Addressing vs. S7 Symbolic Addressing

S5 programs use absolute addresses — every operand is identified by its memory type and numeric address (E 0.0, A 4.0, MW 10, DB10.DW5). S7 programs can use both absolute and symbolic addresses, but TIA Portal is designed for symbolic programming — every address gets a name, and the program references names instead of numbers. Understanding this difference is essential for migration.

S5: Absolute Addressing

In S5, the program works exclusively with hardware addresses:

U  E 0.0       // What is E 0.0? Only the symbol table or the wiring diagram knows.
U  E 0.1       // Another mystery input.
=  A 4.0       // And an output with no context.

The symbol table (Zuordnungsliste) assigns names to addresses, but these names are comments — the compiled program only contains the numeric addresses. If the symbol table is lost (which happens frequently with legacy systems), the program becomes very difficult to understand.

S5 Symbol Table example:

E 0.0    "Start_Button"       Start pushbutton station 1
E 0.1    "Safety_Door"        Safety door contact (NC)
A 4.0    "Motor_1"            Conveyor motor 1
MW 10    "Speed_Setpoint"     Speed setpoint from HMI

S7: Symbolic Addressing

In S7 (especially TIA Portal), the program is written with symbolic names:

IF "Start_Button" AND "Safety_Door" THEN
    "Motor_1" := TRUE;
END_IF;

The symbolic names are part of the compiled program — they cannot be lost separately. The PLC tag table (successor to the S5 symbol table) is always synchronized with the program.

S7 PLC Tag Table:

Start_Button    BOOL    %I0.0      Start pushbutton station 1
Safety_Door     BOOL    %I0.1      Safety door contact (NC)
Motor_1         BOOL    %Q4.0      Conveyor motor 1
Speed_Setpoint  INT     %MW10      Speed setpoint from HMI

Why This Matters for Migration

1. Creating a Symbol Table from Scratch

Many S5 programs have no symbol table, or the symbol table is incomplete. Before migration, you should create or complete one:

This is the most time-consuming part of migration — but also the most valuable. A properly named program is 10× easier to maintain than one with absolute addresses.

2. TIA Portal Expects Symbolic Access

TIA Portal strongly prefers symbolic programming. While you can still use absolute addresses in TIA Portal (especially in migrated code), the system is designed for symbolic access:

3. The Converter Keeps Absolute Addresses

The Siemens S5→S7 converter preserves the absolute addresses from S5. It does not convert to symbolic. The result is S7 code that looks like S5 code — technically correct but hard to maintain.

Post-conversion improvement: After the basic migration works, gradually replace absolute addresses with symbolic names. Start with I/O addresses (most visible), then markers, then data block elements.

Practical Migration Strategy

Phase 1 (During Migration):

Phase 2 (Post-Migration, Gradual):

Phase 3 (Long-Term):

S5 "F" Notation

Some older S5 programs use the F notation (Flags) instead of M (Merker):

S5 (F notation)S5 (M notation)S7
F 0.0M 0.0%M0.0 or symbolic name
FW 0MW 0%MW0 or symbolic name
FY 0MB 0%MB0 or symbolic name

The F notation does not exist in S7. Replace all F references with M (or better, with symbolic names).

Frequently Asked Questions

Must I convert all addresses to symbolic before the migration works?

No. The migrated program works with absolute addresses. Symbolic conversion is a quality improvement that can happen gradually after the system is running.

What naming convention should I use?

There is no standard, but common conventions include: inputs prefixed with "i" or "Input_", outputs with "o" or "Output_", markers with "m" or no prefix. Use underscores, not spaces. Be descriptive: "Conveyor_1_Motor_Running" is better than "M100_5".


Maintained by PLCcheck.ai. Last update: March 2026. Not affiliated with Siemens AG.

Related Articles

Analyze your PLC code with AI

PLCcheck Pro explains, documents, optimizes, and migrates PLC code — automatically.

Try PLCcheck Pro →
← Back to Blog

Not affiliated with Siemens AG. S5, S7, STEP 5, STEP 7, and TIA Portal are trademarks of Siemens AG.