TIA Portal Software Units: S7-1500 Multi-User Engineering Guide

David Krause12 min read
SiemensTechnical ReferenceTIA Portal
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

TIA Portal Software Units: S7-1500 Multi-User Engineering Guide

Software Units were introduced in TIA Portal V15.1 as a first-class project element for the SIMATIC S7-1500 and ET 200SP CPU families. They let multiple engineers work in parallel on the same CPU project, compile only the changed code segment, and download that segment without disturbing the other developers' sessions. The feature is bound to the project tree, not to a specific block folder, which is why the Software Units group appears in every TIA Portal V15.1+ project for a supported CPU and cannot be removed from the tree.

This reference explains what Software Units are, the firmware prerequisites, the per-CPU limits, why the project group is non-removable, the multi-user engineering workflow, and how to migrate older projects.

Engineer field note. Software Units are a TIA Portal V15.1+ project-element concept, not a runtime feature on the CPU. The CPU must still support the function (firmware gate) and the project must have been opened in V15.1 or later. Projects created in TIA Portal V15.0 do not contain the group and cannot be retrofitted without recreating the project in V15.1+.

1. Overview and Purpose

A Software Unit is a logical compilation and download container inside a TIA Portal project. It groups user code blocks (OBs, FBs, FCs, DBs, UDTs) into a single entity that:

  • Compiles independently of other Software Units in the same project.
  • Downloads independently of other Software Units.
  • Allows exclusive write access for one engineer at a time (multi-user checkout).
  • Exposes a defined interface (Published interface) to other Software Units.

The feature is documented in the Siemens guideline Guideline on how to use Software Units in TIA Portal (V1.1, PDF) and is conceptually aligned with the engineering practice of unit-based modular software applied at the PLC project level.

2. CPU and Firmware Prerequisites

CPU family Minimum firmware Software Unit support Notes
S7-1500 (standard CPUs) V2.5 or higher Yes Older V2.0 / V2.1 firmware is not sufficient.
S7-1500 redundant (R/H) V2.6 or higher (project-specific) Limited Check Siemens firmware release notes.
ET 200SP CPU V2.5 or higher Yes Same rule as S7-1500 standard.
S7-1200 Any No Software Units are S7-1500 / ET 200SP only.
S7-300 / S7-400 Any No Not supported.
WinCC Comfort/Advanced (HMI) Any No Software Units do not apply to HMI project elements.

Open the device configuration of the S7-1500 CPU, navigate to Properties > General > Catalog information to confirm the firmware version. The Software Units group is hidden from the project tree whenever the CPU firmware is below the required level, so an absent group in a V15.1+ project almost always points to a CPU firmware mismatch.

3. Project Structure and the Non-Removable Group

In a TIA Portal V15.1+ project for a supported CPU, the project tree contains the following fixed node under the CPU device:

PLC_1
  ├── Device configuration
  ├── Online & diagnostics
  ├── Program blocks
  ├── PLC tags
  ├── PLC data types
  ├── Watch and force tables
  ├── Traces
  ├── Receipts
  ├── Software units         <-- ALWAYS present, non-removable
  │     ├── MyUnit_1
  │     │     ├── OB1 (Main)
  │     │     ├── FB_Conveyor
  │     │     └── DB_Recipe
  │     ├── MyUnit_2
  │     └── _DefaultUnit (system-generated)
  └── ...

The Software units group itself is a project-element container created by TIA Portal the first time a supported CPU is inserted into a V15.1+ project. It is not a folder the user can right-click and delete. Three behavioral rules apply:

  1. The group is created automatically when the project is opened with a supported CPU in TIA Portal V15.1 or later.
  2. The group cannot be removed via the project tree context menu; no Delete option is exposed.
  3. The group is hidden (not removed) if the CPU is exchanged for one whose firmware is below the minimum, or if the project is opened in TIA Portal V15.0.
Why it is non-removable. TIA Portal expects at least one Software Unit per CPU because all program blocks must belong to exactly one compilation container. Removing the group would leave program blocks without a valid download target, so the IDE prevents the operation at the schema level. The recommended action is to ignore the group and work inside one of the units.

4. Software Unit Limits per CPU Family

The number of Software Units a CPU can host is bounded by both the CPU type and the loaded firmware. The exact ceilings are published in the Siemens guideline PDF referenced above. The table below summarises the public field-tested figures for the S7-1500 standard range; consult the latest Siemens release notes for your exact order number (6ES7-...).

CPU class Typical max. Software Units Typical max. blocks per unit Work memory impact
S7-1511 / 1513 10 - 20 Several hundred Negligible per unit
S7-1515 / 1516 20 - 30 Several hundred Negligible per unit
S7-1517 / 1518 30 - 50+ Several thousand Negligible per unit
ET 200SP CPU 1510 / 1512 10 - 20 Several hundred Negligible per unit
Decision path. The Siemens guideline PDF is the authoritative source for your specific order number. If the source PDF is silent on your CPU, count the existing Software Units in a representative project, leave 20% headroom, and verify by adding a test unit and triggering a full recompile.

Cross-unit interaction rules

  • Calls from one unit into another are allowed only through the Published interface of the called unit. Direct calls into private blocks of another unit generate a compile warning or error.
  • Global PLC tags and PLC data types remain shared and are not owned by any unit.
  • Instance DBs and multi-instance data must live in the same unit as the owning FB.
  • Shared DBs used across units must be marked as Accessible from outside.

5. Creating and Configuring a Software Unit

Prerequisites

  • TIA Portal V15.1 Update 4 or later (V15.1, V15.1 Update 1 through 9, V16, V17, V18 all carry the feature).
  • S7-1500 / ET 200SP CPU with firmware V2.5 or higher online or offline in the project.
  • Optional: TIA Portal Multiuser Server license for true parallel editing.

Step-by-step procedure

  1. Open the project in TIA Portal V15.1+.
  2. In the project tree, right-click Software units > Add new software unit.
  3. Assign a unit name that matches the machine subsystem (e.g. Unit_Conveyor, Unit_Packaging).
  4. Right-click the new unit and choose Properties > General to set the unit author, version, and comment.
  5. Switch to the Published interface tab and declare the FCs, FBs, UDTs and DBs that other units are allowed to call.
  6. Move or create OBs, FBs, FCs, and DBs inside the unit. Anything placed under the unit's branch becomes part of that unit's compilation.
  7. Compile only this unit via Right-click > Compile > Software (only this unit). Use Compile > Software (all) for a full project rebuild.
  8. Download with Right-click > Download to device > Software unit selection to push only the changed unit.
Verification. After a unit-only download, the S7-1500 CPU enters the RUN state without a full restart if the unit is tagged as Re-entrant / Initialisation-free in the unit properties. If the unit contains an OB 100 / OB 101 / OB 102, the CPU will perform a warm restart during the unit download.

6. Multi-User Engineering Workflow

Software Units are the building block of the TIA Portal multi-user workflow. The following SVG summarises the lifecycle of a unit under multi-user edit:

Server project TIA Multiuser Server Checkout unit Exclusive write lock Local edit + compile Engineer workstation Check-in Unit-only download RUN, no full restart Server returns merged state

Key behavioural rules

  • Only the engineer who has checked out a unit can write to it; the project server blocks the others.
  • Two engineers may compile their respective units independently, in parallel, without interfering.
  • Cross-unit calls go through the published interface, so a refactor of a private block in unit A does not break compilation in unit B.
  • The first download after a server merge is a full project download; subsequent edits can use unit-only download.

7. Compilation and Download Behaviour

When you compile all software, TIA Portal walks the dependency graph across units, validates the published interfaces, and produces a single .out download container. When you compile only this unit, the IDE skips the dependency walk and produces an incremental download for that unit only.

Action Scope CPU restart Use case
Compile > Software (all) Full project n/a (offline) After any published interface change
Compile > Software (only this unit) One unit n/a (offline) Iteration inside a unit
Download to device > All Full project Yes, warm restart First download, firmware change, or interface refactor
Download to device > Software unit selection One or more selected units No, if unit is restart-free Production hot-fix to a single subsystem
Engineering caution. A unit-only download requires the CPU to be in RUN and the project to be consistent with the on-line version. If the CPU firmware is below V2.5, TIA Portal falls back to a full download and shows a corresponding warning in the Inspector window.

8. Migration from Pre-V15.1 Projects

Projects created in TIA Portal V15.0 do not contain a Software units group. The following decision path is the recommended one:

  1. Open the V15.0 project in TIA Portal V15.1+ and run Project > Upgrade. The blocks remain under the old Program blocks node.
  2. Open the upgraded project. The Software units node will be created automatically because a supported CPU is present.
  3. Existing program blocks are not migrated into units. You must manually move them into a new unit, or leave them in a default unit.
  4. If the CPU firmware is below V2.5, upgrade the firmware first, then perform a full download to the new firmware, then proceed with unit restructuring.
Ambiguity path. If the source V15.0 project uses an S7-1200 CPU, Software Units remain unavailable even after upgrade, because the S7-1200 is not in the supported CPU family. The non-removable group is shown only when a supported CPU is present.

9. Best Practices and Field Notes

  • One machine subsystem per unit. Map a unit to a real-world function (conveyor, robot cell, dosing) rather than to a developer or a date.
  • Keep the published interface minimal. Declare only the FCs, FBs, UDTs and DBs that other units must call. The smaller the interface, the fewer cross-unit regressions.
  • Use a default unit for shared utilities. Put logging, alarm helpers, and common UDTs in one well-named unit (e.g. Unit_Common); do not duplicate them across units.
  • Tag units as restart-free where possible. This enables unit-only downloads to a CPU in RUN and minimises production interruptions.
  • Compile all before merging. A merge on the multi-user server does not re-compile. Force a full compile on the merged server project to catch interface mismatches before download.
  • Reserve one unit for HMI handshake DBs. DBs read by WinCC should live in a stable, rarely-changed unit to keep HMI reconnection logic deterministic.

10. Troubleshooting Matrix

Symptom Likely root cause Action
Software units group is missing in a V15.1 project CPU firmware below V2.5 or project opened in V15.0 Upgrade CPU firmware to V2.5+ and reopen in V15.1+
Software units group is present but cannot be deleted By design — required project element Ignore the group; create or use existing units inside it
Compile error "block X is not in the published interface of unit Y" Cross-unit call to a non-published block Add the called block to the published interface of the owning unit
Unit-only download prompts a warm restart Unit contains OB100/101/102 or has initialisation flags Review the unit properties; remove startup OBs from the unit or accept the restart
Other engineer cannot edit the same unit Exclusive checkout from multi-user server Wait for the active engineer to check the unit back in, or break the lease via the server administration tool
Published interface change breaks unrelated units Signature change in the called FB/FC Update the version comment in the published interface and re-compile all
WinCC cannot see DBs in a unit DBs not marked as accessible from outside the unit Right-click the DB > Properties > Attributes > enable "Accessible from outside the software unit"

11. Field-Proven Edge Cases

  • Firmware gate. Even when the project is opened in V15.1+, an S7-1500 CPU with firmware V2.0 keeps the Software units node hidden. Upgrading the CPU firmware requires a full download to the new firmware before units become visible.
  • Device exchange. Exchanging the CPU for one from the S7-1200 family hides the group but does not break compilation of existing program blocks. Reverse exchange restores the group and forces the IDE to reclassify blocks.
  • Library reuse. A master copy of a software unit can be created in the project library and instantiated into multiple CPU projects. The version of the master copy is independent of the consumer's units.
  • Re-entrancy. A unit marked Re-entrant can be downloaded without disturbing the running program. Re-entrancy fails if any block in the unit uses a non-re-entrant system function (e.g. legacy SFC calls).
  • Online diff. The online/offline compare honours the unit boundary. Diff reports are produced per unit, which simplifies change approval on a multi-engineer project.

12. FAQ

Why does the Software units group appear in my TIA Portal V15.1 project and how do I remove it?

The group is created automatically by TIA Portal V15.1+ for any S7-1500 or ET 200SP CPU with firmware V2.5 or higher. It cannot be removed because all program blocks must belong to exactly one compilation container, and the group is that container. Work inside the existing units; do not attempt to delete the group node.

Which S7-1500 firmware version is required for Software Units?

S7-1500 standard CPUs require firmware V2.5 or higher. ET 200SP CPUs follow the same rule. S7-1200, S7-300 and S7-400 do not support Software Units in any firmware.

Can a TIA Portal V15.0 project be retrofitted with Software Units?

No. Open the V15.0 project in TIA Portal V15.1+ and run Project > Upgrade; the Software units group appears automatically, but the pre-existing program blocks are not migrated. You must move them into a new unit manually.

Does a unit-only download restart the S7-1500 CPU?

No, provided the unit is marked as re-entrant and contains no startup OB (OB 100, OB 101, OB 102). Otherwise the CPU performs a warm restart. The same restriction applies to units that change the published interface of an FB that is in use.

Are Software Units available for WinCC or HMI project elements?

No. Software Units are limited to the PLC side of the project (S7-1500 / ET 200SP). WinCC Comfort, WinCC Advanced, WinCC Professional, and Unified HMI project elements do not participate in the unit structure, even if the conference thread was originally posted in a WinCC area.

How many Software Units can a single CPU host?

The exact number is firmware- and CPU-specific; it is published in the Siemens guideline PDF. Field-tested figures range from about 10 for an S7-1511 to more than 30 for an S7-1518. Consult the PDF for the order number in your project before designing the unit layout.

Can two engineers edit the same Software Unit at the same time?

No. The TIA Portal Multiuser Server enforces an exclusive checkout per unit. Other engineers see the unit as read-only until the active engineer checks it back in. Different units can be edited in parallel.

Back to blog