WinCC Flexible Multi-User Engineering: STEP 7 and HMI on Two PCs

David Krause17 min read
SiemensTutorial / How-toWinCC
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

WinCC Flexible Multi-User Engineering with STEP 7 on Two PCs

When a control application outgrows a single engineering seat, Siemens classic toolchains (STEP 7 V5.x with Simatic Manager and WinCC flexible) can still be split between two physical PCs without migrating to TIA Portal. The PC that handles the PLC program and the PC that handles the HMI screens can be located on the same network, share a common project tree on a file server, and exchange the symbolic tag interface that links the controller's data block definitions to the panel's tag table. This reference documents the field-proven file-server pattern for this configuration, the symbolic tag integration mechanics, the multi-instance data block addressing rules, and the save-as versioning discipline that keeps older revisions recoverable while new work is being committed.

Scope: This article covers WinCC flexible 2008 SP5 / 2008 SP4 (HMI engineering) paired with STEP 7 V5.4 / V5.5 (Simatic Manager) on two PG-class Windows PCs sharing a file server. It does not cover TIA Portal multi-user (server-based or TIA Cloud), nor the older ProTool/ProAgent configurations. Migrate to WinCC (TIA Portal) - Engineering Manual for new installations.

1. Overview and Engineering Model

WinCC flexible is the engineering tool for SIMATIC Panels (OP 77B, TP 177, TP 277, MP 277, MP 377, and the later Comfort Panels) and for WinCC flexible Runtime panels. STEP 7 V5.x with Simatic Manager is the corresponding controller engineering tool for S7-300, S7-400, and ET 200S stations. The two tools share a tag interface: every PLC tag defined in STEP 7 with a symbolic name and a data block address can be made available to the HMI configuration as a symbolic HMI tag, and the panel runtime uses the same absolute address.

When the engineering is divided between two PCs, the model is straightforward:

  • PG #1 (PLC engineer): Runs Simatic Manager, edits the S7 program, defines symbols in the Symbol Table (S7-Program > Symbols), edits DBs and FBs, and compiles.
  • PG #2 (HMI engineer): Runs WinCC flexible, edits the project tree (screens, tags, alarms, recipes, area pointers, connections), and rebuilds the runtime file.
  • File server: Hosts the STEP 7 project (a directory tree of .s7p, .s7f, .s7l, and symbol files) and the WinCC flexible project (a directory tree rooted at <projectname>.hmi and the workspace *.hmi_workspace).

Both engineers work locally on their PG; changes are saved back to the server. The link between the two halves is the symbolic tag connection, which must be re-established whenever the project is opened on PG #2 if the STEP 7 part has changed.

2. Architecture Options for Distributed Engineering

Three architectures are realistic for the classic toolchain. The choice is dictated by network infrastructure, project size, and the team's version-control discipline.

Option Storage location Strengths Weaknesses Recommended use
A. File server (SMB share) UNC path on Windows file server, e.g. \\FS01\PROJ\LineA Simple, no extra tools, native Simatic Manager "Open project on server" workflow No native locking, file-level corruption risk if two users write simultaneously 1 PLC engineer + 1 HMI engineer on small/medium projects
B. Source control (SCCS / SVN / Git LFS) Simatic Manager archive *.arc committed to SCCS Atomic check-in, full audit trail, branch/merge STEP 7 has no native SVN/Git integration; manual check-in/out discipline Multi-engineer teams, regulated environments
C. Master / Local copy Server holds the "blessed" copy; each PG has a local working copy No risk of server corruption; engineers can be offline Manual copy and merge of binary .s7p files When SMB bandwidth is constrained

For most two-engineer teams the file server approach (Option A) is the right answer. It is the configuration documented in the Simatic Manager help and is sufficient when the engineers coordinate their check-ins verbally or via a change log.

3. Prerequisites and Licensing

Item Requirement
PG #1 OS Windows 7 SP1 / Windows 10 LTSC (per Simatic Manager release note)
PG #1 software STEP 7 V5.5 + SP4 (or V5.4 + SP8), Simatic Manager, optional S7-PLCSIM, optional S7-Technology / S7-Failsafe add-ons
PG #1 license STEP 7 floating or transferrable license (6ES7810-4CC10-0YA5 for V5.5)
PG #2 OS Same Windows baseline; mixed OS versions between PG #1 and PG #2 are allowed
PG #2 software WinCC flexible 2008 SP5 (6AV6613-0AA51-3CA5) or SP4; corresponding HSPs for the target panel
PG #2 license WinCC flexible ES engineering license (6AV6613-0AA51-3CA5) plus any runtime licenses for simulation
Server Windows Server 2008 R2 / 2012 R2 / 2016 file server with SMB share, NTFS, full read/write to both PGs, snapshot/backup schedule
Network Gigabit Ethernet, latency < 5 ms between PGs and server; static IPs recommended
Permissions Both PG accounts in the same Active Directory group; no roaming profiles on the engineering folder
Free disk ~5x project size on the server (project + 4 historical revisions from save-as)
License floating: WinCC flexible ES uses a license key bound to a dongle or a system fingerprint. If both PGs need full editing, two independent engineering licenses are required. A single license can be moved between PCs using the Automation License Manager (ALM) portable option, but never run two simultaneous editing sessions against the same WinCC flexible project.

4. File Server Deployment Topology

The recommended layout isolates the STEP 7 project and the WinCC flexible project under a per-line root. The server directory becomes the single source of truth for both halves of the project.

\\FS01\PROJECTS\LINE_A\
  +- S7_PROJ\                  <-- STEP 7 project, edited by PG #1
  |    +- line_a.s7p
  |    +- S7_PROJ\             <-- Simatic Manager compressed file store
  |    +- hmi_tags\            <-- exported symbol file (optional)
  +- HMI_PROJ\                 <-- WinCC flexible project, edited by PG #2
       +- TP277_S7_300.hmi_workspace
       +- TP277_S7_300.hmi
       +- im\                  <-- compiled runtime files
       +- lg\                  <-- generated logs
       +- pr\                  <-- source screens

An inline SVG of the deployment is shown below.

PG #1 - PLC Engineer Simatic Manager STEP 7 V5.5 SP4 Symbol Table / FBs / DBs PG #2 - HMI Engineer WinCC flexible 2008 SP5 Screens / Tags / Alarms TP 277 / MP 377 target File Server \\FS01\PROJECTS\LINE_A S7_PROJ\ (STEP 7) HMI_PROJ\ (WinCC flexible) SMB share, NTFS, snapshots SMB read/write SMB read/write Symbolic tag interface (STEP 7 <-> WinCC flexible)

5. STEP 7 Project Storage on the Shared Server

  1. On PG #1, open Simatic Manager and create the project at \\FS01\PROJECTS\LINE_A\S7_PROJ (menu File > New > Project).
  2. Insert the S7-300 or S7-400 station (Insert > Station > SIMATIC 300/400 Station).
  3. Open the hardware configuration (HW Config) and assemble the rack. Save and compile (Station > Save and Compile). The compiled S7HKP is required by the HMI tag integration later.
  4. Open the Symbol Table (S7 Program > Symbols). For every tag that will be exposed to the HMI, declare a symbolic name with a data type and a comment. Example:
Symbol Address Data type Comment
Motor1_Run DB101.DBX 0.0 BOOL Motor 1 run feedback
Motor1_Speed DB101.DBD 2 REAL Motor 1 actual speed (rpm)
LinePressure DB101.DBD 6 REAL Hydraulic pressure (bar)
OperatorMsgAck DB102.DBX 0.0 BOOL Acknowledge all HMI alarms
  1. Compile the S7 program (PLC > Compile and Download Objects, or Save and Compile on the program editor). The symbol information is what WinCC flexible will read.
  2. Save the project (File > Save or Ctrl+S). The full *.s7p tree is committed to the server share.
No concurrent editing: Simatic Manager locks the project as a whole when opened. PG #2 does not open the STEP 7 project; it only opens the WinCC flexible project. The STEP 7 part is the responsibility of PG #1 alone. This avoids the binary lock conflict that occurs if two Simatic Manager sessions open the same .s7p over SMB.

6. WinCC Flexible Project Integration on the HMI Engineering PC

  1. On PG #2, install WinCC flexible 2008 SP5. Install the matching HSPs (Hardware Support Packages) for the target panel, e.g. HSP for TP/OP/MP 277/377.
  2. Create the WinCC flexible project on the server share: File > New, target directory \\FS01\PROJECTS\LINE_A\HMI_PROJ, panel type TP 277 8" or MP 377 12" as required.
  3. Add a connection of type SIMATIC S7 300/400. Set the parameters:
    • Station address = S7 station rack/slot, e.g. rack 0 slot 2 (CPU 314) or rack 0 slot 3 (CPU 416)
    • Cycle acquisition = 1 s for status, 100 ms for control bits
    • Enable area pointers = ticked (required for date/time, PLC job, project ID)
    • Coordination area pointer must point to a free DB (e.g. DB 99) for life-bit supervision
  4. Save the project locally first (Ctrl+S) and verify the connection is reachable with Online > Accessible Nodes. Confirm the panel can resolve the S7 CPU's MPI/Profibus/Ethernet address.

7. Symbolic PLC Tag Integration Across the Two PCs

This is the critical step that makes the configuration viable. The HMI engineer needs to use the same symbolic names defined by the PLC engineer. There are two supported methods.

7.1 Method 1 - Direct integration (preferred)

WinCC flexible can read the symbolic tag table from the STEP 7 project directly. On PG #2, in the WinCC flexible tag editor, right-click and choose Insert > Tag from STEP 7. WinCC flexible prompts for the location of the STEP 7 project. Point it to \\FS01\PROJECTS\LINE_A\S7_PROJ. WinCC flexible will read the symbol table and add the symbols to the HMI tag table with the correct absolute address and data type.

  • If the STEP 7 project is on a different physical machine and the SMB share is not trusted, copy the S7_PROJ tree to a local working folder on PG #2 first, then point WinCC flexible at the local copy. Refresh after each PLC change.
  • After import, the HMI tag table shows both a Symbol (text) and an Address (e.g. DB101,DBX0.0). The HMI engineer should not edit the address manually; edits to the address will break the link.

7.2 Method 2 - Export / import of the symbol table

If the SMB link is unreliable, PG #1 exports the symbol table to a CSV or SEQ file (Symbol Table > Export) and commits it to a shared folder. PG #2 imports the file (WinCC flexible > Tools > Import Symbols). Re-import after every PLC tag change.

7.3 Symbol name length and character set

WinCC flexible limits symbolic tag names to 24 characters and rejects characters outside the Siemens S7 symbol set (A-Z a-z 0-9 _). STEP 7 accepts up to 24 characters per symbol. Both must be aligned before the project starts; renaming after the fact breaks HMI references in every screen, alarm, and recipe.

8. Multi-Instance DB Handling in the Distributed Workflow

Multi-instance data blocks (instance DBs that hold the static data of an FB) are common in structured S7 programs. The HMI engineer must address each instance correctly. There are two approaches.

Approach Symbol creation HMI address Trade-off
Per-instance DB Declare an instance DB for each call of the FB; expose only the relevant variables in the symbol table Direct: DB201.DBX 0.0 (Motor #1), DB202.DBX 0.0 (Motor #2) Simple HMI addressing, one symbol per motor; more DBs in the S7 program
Array of instances (multi-instance background DB) One shared instance DB holds all FB instances; each instance is at a fixed offset Indirect via index: DB[ (Motor# - 1) * InstanceSize + Offset ] Compact S7; HMI addressing is harder and the panel cannot resolve the offset symbolically without scripting

For two-PC engineering with WinCC flexible, the per-instance DB approach is strongly preferred: each motor, valve, or station gets its own DB and a unique symbolic name (Motor1_Run, Motor2_Run, etc.). The HMI engineer never needs to compute offsets; the symbol import pulls in every instance automatically.

Address clash warning: When copying an instance DB to add Motor #2, the symbol table entries for Motor #1 are sometimes duplicated with the same address. After inserting a new DB, run Symbol Table > Consistency Check in STEP 7 to surface duplicates before WinCC flexible re-imports.

9. Save-As Versioning Discipline

Because Simatic Manager and WinCC flexible have no native version control, the Save As workflow is the engineer's safety net. A practical scheme:

  1. At the start of every working day, PG #1 opens the project on the server and immediately File > Save As into a dated sibling folder: \\FS01\PROJECTS\LINE_A\_ARCHIVE\S7_2025-03-14_AM.
  2. PG #2 follows the same pattern: \\FS01\PROJECTS\LINE_A\_ARCHIVE\HMI_2025-03-14_AM.
  3. After any major milestone (new screen, new FB, new safety function), an additional Save-As snapshot is taken.
  4. Retain the last 10 daily snapshots and the last 5 milestone snapshots. Older ones can be compressed to .zip on the server.
  5. Never edit inside an archive folder. Archives are read-only by intent; the working copy is always the current project root.

For larger projects, automate the snapshot with a small batch script run from the task scheduler on PG #1:

@echo off
set DATE=%date:~-4%-%date:~3,2%-%date:~0,2%
xcopy "\\FS01\PROJECTS\LINE_A\S7_PROJ" "\\FS01\PROJECTS\LINE_A\_ARCHIVE\S7_%DATE%" /E /I /Y /R

10. Coordination, Locking, and Change Management

The file server pattern relies on human coordination. A simple change log file (CHANGELOG.txt in the project root) prevents collisions:

[2025-03-14 09:00] PG1 - added FB205 (ValveFB), inserted DB201-DB204, new symbols VALVE_x_Open, VALVE_x_Closed
[2025-03-14 09:15] PG1 - compiled HW Config, ready for HMI import
[2025-03-14 09:30] PG2 - imported symbols, added 4 new valve tags to screen "ValveOverview", rebuilt runtime
[2025-03-14 09:45] PG1 - changed Motor1_Speed to REAL, no DB layout change
[2025-03-14 10:10] PG2 - no change required, symbolic link updated automatically

Conventions to enforce:

  • PLC changes are committed in the morning, HMI changes in the afternoon (or vice versa, but never interleaved by both engineers within the same hour).
  • A PLC change that renames, deletes, or changes a data type of a symbol must be flagged in the change log so the HMI engineer knows to re-import the symbol table.
  • Use the Simatic Manager Reference / Cross-reference tool to see which symbols are still referenced before deleting them.

11. Verification, Compilation, and Consistency Checks

Before the runtime is built and transferred to the panel, run the following checks.

  1. STEP 7 side (PG #1):
    • PLC > Compile and Download Objects with full compile. No warnings about inconsistent DB structure or unresolved symbols.
    • Symbol Table > Consistency Check. All HMI-relevant symbols must be unique, properly addressed, and within an existing DB.
    • HW Config > Station > Consistency Check if a hardware change was made.
  2. WinCC flexible side (PG #2):
    • Project > Compiler > Check Consistency. All tag references must resolve.
    • Tools > Cross Reference for the tag table: every HMI tag used in screens, alarms, and recipes must point to a valid PLC symbol or a valid local tag.
    • Project > Generate Runtime. No compile errors. The generated runtime file is written to the project tree's im folder.
  3. Runtime transfer (PG #2, with the panel on the network):
    • Transfer > Transfer over Ethernet/Profibus/MPI. Enable Transfer on the panel (Control Panel > Transfer).
    • After transfer, watch the panel boot and confirm the HMI tag values reflect the current PLC state.
  4. Final online test with S7-PLCSIM (optional):
    • Run PLCSIM on PG #1, simulate I/O, observe the panel's screen updates in real time.

12. Troubleshooting Matrix

Symptom Likely cause Diagnostic step Remediation
WinCC flexible tag shows ### on the panel Connection error or wrong PLC address Panel > Control Panel > WinCC flexible > Connection test Verify the connection's MPI/Profibus/IE address matches the S7 CPU's physical port
Symbol import shows fewer tags than expected STEP 7 project not compiled, or symbols are inside non-instance DBs that WinCC flexible cannot resolve Open Simatic Manager > S7 Program > Symbols > ensure symbols have valid addresses in instance DBs Move symbols to instance DBs, recompile STEP 7, re-import
Symbol import shows Address collision for two tags Symbol table contains duplicate entries Symbol Table > Consistency Check Delete the duplicate symbol, recompile, re-import
Project opens read-only on PG #2 File share permissions, or another user holds a stale lock file (*.Lck) Check NTFS permissions on the share; look for orphan *.Lck files in the project root Grant Modify permission to the engineering group; delete orphan lock files
Simatic Manager on PG #1 reports "Project in use" when opening the project from the share A previous session was not cleanly closed, leaving a ~*.Lck or *.lock Inspect S7_PROJ for lock files, check the Simatic Manager session that may still be running on the other PG Close the other session, remove the orphan lock file, retry
Generated runtime fails to transfer to the panel Panel firmware does not match the WinCC flexible ES version, or compiled target wrong Panel > Control Panel > System > Version; compare to ES version Update the panel's image, or rebuild the runtime against the correct panel type
Tags update slowly on the panel Cycle acquisition is too long, or the area pointer is misconfigured WinCC flexible > Connections > Cycle / area pointer Reduce the cycle to 100 ms for fast tags; verify the area pointer DB is not reused by the S7 program
Compilation error: "Symbol longer than 24 characters" STEP 7 symbol name exceeds WinCC flexible's limit Symbol Table > filter by length Shorten the symbol name (and propagate the change to all screens, alarms, recipes)

13. Field-Commissioning Notes

  • When the project is small enough to live entirely on the local PG, do that first, then move the tree onto the share once both engineers confirm the workflow.
  • Disable Windows Defender real-time scanning on the engineering folders to avoid the 15-30 second scan that delays Save on first commit of a new project. Re-enable after the project is settled.
  • Set the SMB server signing to required (Server 2016+ default) - Simatic Manager and WinCC flexible both work with signing on.
  • Schedule server-side VSS snapshots every 6 hours during the project, retain 14 days. This is a safety net beyond the Save-As discipline.
  • When the project must be hand-carried to a customer site, archive the entire LINE_A folder with WinRAR or 7-Zip (no compression for large STEP 7 files; store-only mode is faster). Avoid cloud sync tools (Dropbox, OneDrive) on the engineering folder - they corrupt the lock-file logic.

14. When to Migrate to TIA Portal

The file server pattern works for the classic toolchain, but TIA Portal's multi-user engineering is more robust: it has project server mode, automatic merging, and a single integrated tag model across PLC and HMI. The migration decision depends on:

  • Panel family: Comfort Panels and WinCC Runtime Advanced/Professional are TIA-only. If the target is TP 277 or older, stay on WinCC flexible.
  • Controller family: S7-1500 and ET 200SP require TIA Portal.
  • Team size: Three or more engineers editing the same project line strongly favour TIA Portal server mode.
  • Long-term support: WinCC flexible 2008 SP5 was the final release. New SPs and security patches end in 2020+. See the TIA Portal - WinCC Engineering Manual for the recommended successor.

FAQ

Can two engineers edit the same STEP 7 project simultaneously over the file server?

No. Simatic Manager opens the entire .s7p tree with an exclusive lock. If PG #1 has the project open, PG #2 sees it as read-only. The two-PC pattern works because the PLC engineer (PG #1) owns the STEP 7 side and the HMI engineer (PG #2) only edits WinCC flexible - they do not open the same project at the same time.

How do symbolic HMI tags stay synchronized with STEP 7 after a PLC change?

Re-run the "Tag from STEP 7" import in WinCC flexible on PG #2. WinCC flexible reads the symbol table from the STEP 7 project on the share, updates the HMI tag addresses and data types, and flags any renamed or removed tags in the "Errors" tab. The change log on the server tells the HMI engineer when a re-import is needed.

Is a Windows file server required, or will a network-attached storage (NAS) work?

A NAS that exposes an SMB3 share with full NTFS permissions is acceptable for the read/write traffic. NAS devices with proprietary file systems (Synology Hybrid Mount, QNAP SnapSync) or with aggressive caching can corrupt the binary .s7p files. Use a plain SMB3 share on Windows Server, or a NAS with SMB3 and "bypass cache" enabled on the engineering share.

What is the smallest possible hardware configuration for this setup?

Two Windows 10 LTSC engineering PCs (16 GB RAM, 256 GB SSD) and a Windows Server 2016 Essentials or a small-form-factor PC running Windows Server 2019 with a 1 TB mirror. Gigabit Ethernet between all three. Total cost is dominated by the WinCC flexible and STEP 7 licenses, not the hardware.

Why does my panel show "---" for tags that compile without errors?

"---" is the placeholder for tags where the panel is not receiving any data. The most common cause is a wrong HMI connection address (the S7 station address on the connection does not match the CPU's MPI/Profibus/IP address). Run Control Panel > Transfer > Connection Test on the panel. The connection test resolves this in under 10 seconds.

Back to blog