1. Overview: The S7-200 to WinCC Flexible Tag Import Problem
The S7-200 Micro PLC family (CPU 221, 222, 224, 224XP, 226) is programmed with STEP 7 Micro/WIN (versions 4.0 through 4.0 SP9). HMI projects targeting the same controller family are typically built with SIMATIC WinCC flexible 2008 (the last release that supports the S7-200) and runtime panels such as the TP177B (6" touch panel, mono or color, DP or PN/DP variant).
A long-standing limitation of this combination is that WinCC flexible cannot browse the S7-200 offline symbol table the way the TIA Portal / WinCC combination browses the S7-300/400 symbol table. There is no "PLC > Symbol Table" tree in WinCC flexible for an S7-200 device, and no direct .S7P import path analogous to what is available for the S7-300/400. Engineers must therefore transfer symbols and addresses out of STEP 7 Micro/WIN, convert them, and import them into the HMI project.
This article documents the field-proven procedure for doing that conversion cleanly, the prerequisites that must be in place, the exact CSV shape that WinCC flexible expects, the secondary path through OPC/Kepware for users who cannot author a CSV manually, the TP177B-to-S7-200 communication settings that often get the project stuck at runtime, and a verification matrix for commissioning.
2. Prerequisites and Supported Environment
Before any tag import is attempted, verify the following are in place on the engineering PC and on the plant network.
| Item | Required | Notes |
|---|---|---|
| STEP 7 Micro/WIN | V4.0 SP5 or later, up to SP9 | Owns the offline project containing the symbol table |
| WinCC flexible (ES) | 2008 SP2, SP3, SP4, or SP5 | SP5 is the only release that still ships S7-200 device drivers |
| Microsoft Excel (or any CSV-capable editor) | 2003/2007/2010/2013/2016/365 | Used to normalize the symbol table into a CSV |
| TP177B firmware | WinCC flexible 2008 image, build > V1.1.0.0 | Proceed via ProSave / Ethernet restore |
| S7-200 CPU firmware | Any released firmware (e.g. CPU 224XP rel. 2.0) | Firmware updates are applied with Micro/WIN |
| Connection cable | PC/PPI (USB or RS-232) for setup; PC Adapter USB (MPI/DP) for HMI panel | TP177B DP has a single RS-485 MPI/DP port; TP177B PN/DP has Ethernet plus MPI/DP |
Two official Siemens knowledge-base entries anchor the procedure and should be on hand while working:
- Siemens Support Entry 19514638 – "WinCC flexible and S7-200 communication" (entry describing the S7-200 device driver in WinCC flexible and the PPI/MPI address model).
- Siemens Support Entry 22834940 – "Importing/exporting tags in WinCC flexible" (canonical reference for the CSV import grammar; the original entry was authored for S7-300/400 but the file shape is identical for S7-200).
3. Why S7-200 Lacks Native Symbol Integration
The S7-300/400 stores its offline symbol table inside the STEP 7 project (file *.S7P / *.S7L) and writes a symbol export (*.SEQ, *.SDF) that WinCC flexible can read through the "S7 Import/Export Assistant." The S7-200 is fundamentally different:
- STEP 7 Micro/WIN stores the offline symbol table inside the
*.mwpproject file in a proprietary, non-documented format. Micro/WIN does not produce a*.S7Pfile. - The S7-200 device driver in WinCC flexible is a connection-only driver; it knows the protocol (PPI/MPI on RS-485, or Ethernet via the CP 243-1 / CP 243-1 IT) but does not have a project importer.
- The S7-200 CPU's online symbolic name service is read-only and is exposed over PPI/MPI; however, WinCC flexible does not consume it.
The net effect is that every tag used on a TP177B project bound to an S7-200 must be created either manually in WinCC flexible or by external CSV import. The remaining sections walk through the CSV import path because that is the path that scales to projects with several hundred tags.
4. Method 1: CSV Export from STEP 7 Micro/WIN to WinCC Flexible
The end-to-end CSV path is composed of four discrete steps:
- Author and verify the symbol table inside STEP 7 Micro/WIN.
- Export the symbol table to a tab-delimited or comma-delimited text file.
- Restructure the text file to the column order that WinCC flexible expects, populating the data-type column that Micro/WIN does not write.
- Run "Import Tags" in WinCC flexible and validate the imported names against the S7-200 connection.
The four steps are detailed in sections 5 through 8.
5. Building and Verifying the Symbol Table in STEP 7 Micro/WIN
Open the *.mwp project that will be used at commissioning and switch to the Symbol Table editor (left navigation pane > "Symbol Table" or menu View > Component > Symbol Table). A clean symbol table is the foundation of the CSV; ambiguous symbols produce ambiguous tags on the HMI.
Authoring rules that matter at import time:
- Symbol names must be unique within the table. Duplicate symbols are silently dropped by the WinCC flexible importer. A 24-character limit applies in Micro/WIN; WinCC flexible accepts up to 32 characters and warns beyond that.
-
Address column must be a valid S7-200 absolute address:
I0.0…I15.7,Q0.0…Q15.7,M0.0…M31.7,V0.0…V10239.7,VB0…VB10239,VW0,VD0,SM0.0…SM549.7,T0…T255(current value),C0…C255(current value),AIW0…AIW110,AQW0…AQW110. WinCC flexible will reject addresses outside these ranges. -
Bit-level addressing is written as
V100.3(byte 100, bit 3). The Micro/WIN display puts a space between byte and bit (V100.3); this is preserved into the export and must be retained when the CSV is read by WinCC flexible. -
Word / DWord overlap. WinCC flexible imports both
VW100and the overlapping bitsV100.0..V101.7as independent tags. This is legal but the user is responsible for not writing both in the PLC program simultaneously, or the HMI will display undefined values. - Comments are carried into the WinCC flexible "Comment" column. They are useful as a sanity check at commissioning but are not used for tag resolution.
After authoring, compile the project (menu PLC > Compile or Ctrl+F9) and confirm there are zero errors. Open the Status Chart (Variable Table / VAT) and confirm every symbol is resolvable. This catches typos that would otherwise become import errors in WinCC flexible.
6. Building the WinCC Flexible-Compatible CSV File
6.1 Export from Micro/WIN to a tab-delimited text file
From the Symbol Table editor, use File > Export... (or click the export icon on the toolbar) and save the file as Text File with Tabs (TXT). The resulting .txt file contains the four columns that Micro/WIN stores:
Symbol Address Comment Symbol Comment
Motor_Run Q0.0 Pump 1 drive contactor
TankLevel VW100 Analog input from level probe (0-27648)
HighPressure V200.4 Boiler cutoff
If File > Export is greyed out, the table contains unsaved edits; press F9 to compile, save the project, and retry.
6.2 Open in Excel and add the data-type column
Open the .txt in Excel. The Text Import Wizard appears: select Delimited, check Tab, finish. The four columns land in cells A…D.
Insert a new column between the address and the comment. Name it Data Type. The address grammar determines the data type; map as follows.
| Address grammar | Data Type in CSV | WinCC flexible data type |
|---|---|---|
Ix.y / Qx.y / Mx.y / Vx.y / SMx.y
|
BOOL |
Bool (1 bit) |
IBx / QBx / MBx / VBx / SMBx
|
BYTE |
Byte (unsigned 8) |
IWx / QWx / MWx / VWx / AIWx / AQWx
|
WORD |
Word (unsigned 16) |
IDx / QDx / MDx / VDx
|
DWORD |
DWord (unsigned 32) |
Tx / Cx
|
WORD |
Word (current value, 0…32767) |
For signed interpretation, use the same address and change the CSV data type to INT (16-bit signed) or DINT (32-bit signed). This is the standard way to bring analog readings into the HMI as signed values; the S7-200 stores AIWx as 0…27648, so a WORD is technically correct, while scaled values from VD often need REAL.
| Numeric data | CSV data type | Behavior in WinCC flexible |
|---|---|---|
| Analog scaled to engineering units (float) | REAL |
IEEE 754 single, address VDx
|
| Counter current value as 32-bit | DINT |
S7-200 HSC current value |
| String buffer |
STRING + length column |
Max length 80 in WinCC flexible for S7-200 |
6.3 Final column layout expected by WinCC flexible
WinCC flexible's CSV importer (under Project > Compiler > Tags > Import, or Tags editor > Import/Export) accepts the following column order. The header row is mandatory and is case-insensitive; the order is enforced.
Name;PLC tag;Data type;Length;Address;Acquisition;Cycle;Lower limit;Upper limit;Linear scaling;Comment
For an S7-200 import the values map as shown below.
| Column | Value for S7-200 import | Notes |
|---|---|---|
| Name | Symbol name from Micro/WIN | Renames are not required |
| PLC tag | Blank, or repeat of Name | WinCC flexible ignores this for S7-200; some imports require a value, so duplicating the Name is the safe default |
| Data type |
BOOL, BYTE, WORD, INT, DWORD, DINT, REAL, STRING
|
Set per the address grammar |
| Length | Number of characters (STRING only); 1 for everything else | 1…80 for STRING on S7-200 |
| Address | S7-200 absolute address | Bit space, no quotes, no leading zero suppression |
| Acquisition |
Cyclic, On demand, or On change
|
Use Cyclic for process values, On demand for setpoints entered on the HMI |
| Cycle | 1…60000 ms | 1000 ms is a safe default; tighter cycles stress PPI/MPI bandwidth |
| Lower limit / Upper limit | Numeric range or blank | Used by input fields for limit checking |
| Linear scaling |
No for raw values, Yes only when the CSV has its own engineering scale |
Recommended: No and let the PLC scale |
| Comment | Free text | Carried through into the HMI tag list |
6.4 Save the file with the correct separator
Save the file as CSV (Comma delimited) (*.csv). WinCC flexible's importer auto-detects the locale separator, but if the project runs in a German-locale PC the importer expects semicolons. To avoid this entirely, save with the explicit separator the importer states in its first dialog; otherwise use the regional setting trick:
- Control Panel > Region > Additional settings > List separator > set to
;(if needed). - Re-open Excel, save the file as CSV.
- Restore the list separator to
,.
Encoding must be ANSI (the default for the "CSV (Comma delimited)" save) or UTF-8 with a BOM. WinCC flexible cannot read UTF-8 without a BOM on legacy S7-200 panels.
7. Importing the CSV into WinCC Flexible
- Open the WinCC flexible project that contains the TP177B device and the S7-200 connection. Confirm the connection exists: Project > Communication > Connections. The connection type must read SIMATIC S7-200.
- Open the Tags editor (left navigation pane, or Project > Tags).
- Right-click the tag list > Import/Export > Import... (or use the menu Tags > Import/Export > Import).
- Select the CSV file. The first dialog asks for the column separator (comma / semicolon / tab) and the text qualifier.
- Click Next. The importer previews the result with a green tick or red cross per row.
- Cross out red rows, fix the CSV, and re-import. A typical cause of a red row is a name that begins with a digit, contains a space, exceeds 32 characters, or duplicates an existing tag in the project.
- Click Import. The tags appear under the selected connection (the S7-200).
- Compile the project (Project > Compiler > Tags, or Project > Rebuild all) and confirm the tag compilation report is empty.
After compilation, a tag cross-check is mandatory. Open Project > Compiler > Cross References and confirm every imported tag is referenced by at least one screen; unreferenced tags compile but indicate a typo or an orphaned symbol table entry.
8. Configuring Communication Between TP177B and S7-200 CPU
A working tag list does not guarantee runtime communication. The TP177B must be told how to reach the S7-200 CPU and on which address. The configuration lives in the connection, not in the tags.
8.1 Connection parameters in WinCC flexible
Open the connection to the S7-200 and confirm the following. Defaults are correct for a single-panel, single-CPU network, but they must be set explicitly because Micro/WIN's PPI defaults (address 2, 9.6 kbps) differ from WinCC flexible's defaults.
| Field | Value | Notes |
|---|---|---|
| Device | TP177B (Mono or Color, DP or PN/DP) | Matches the panel that will run the project |
| Connection type | SIMATIC S7-200 | The only choice for S7-200 |
| Profile | PPI (default) or MPI | Use PPI for direct panel-to-CPU; use MPI when the panel sits on a multi-drop MPI bus with other S7-300/400 stations |
| Baud rate | 9.6 kbps / 19.2 kbps / 187.5 kbps | Must match the S7-200 system block; 187.5 kbps is the most common plant default and offers the best update time |
| Highest station address (HSA) | 15 or 31 | Defines the maximum address scanned on the bus; set to the highest address in the network |
| HMI station address | 1 (default) | The panel is the master; do not duplicate with the CPU address |
| CPU station address (PLC) | 2 (S7-200 default) | Matches the address set in Micro/WIN under System Block > Communication Ports |
8.2 S7-200 side configuration
Open the project in STEP 7 Micro/WIN and open System Block > Communication Ports. The settings on Port 0 (or Port 1, if the HMI is wired to Port 1) must mirror the connection parameters above:
- PLC address: 2.
- Baud rate: 187.5 kbps (or the value chosen on the HMI).
- Retry count: 3.
- Address selection: "User Defined" (so the address is preserved across downloads).
Download the System Block to the CPU before transferring the WinCC flexible project to the TP177B.
8.3 Cable and wiring
For a direct PPI link between TP177B and S7-200, use a standard MPI/DP cable terminated on both ends with the Siemens 6ES7901-0BF00-0AA0 (RS-485) connector or equivalent. Pin 3 (Data B / green) and pin 8 (Data A / red) on the S7-200 Port 0 plug go to pins 3 and 8 of the TP177B MPI/DP plug. Terminating resistors on both ends must be ON (the switch on the bus connector). For multi-drop MPI networks, only the physical ends of the bus must be terminated; intermediate stations are OFF.
For an Ethernet link, install a CP 243-1 (6GK7243-1EX01-0XE0) or CP 243-1 IT (6GK7243-1GX00-0XE0 / -1GX01-0XE0) in the S7-200 rack. The TP177B PN/DP supports Ethernet to a CP 243-1 through the "SIMATIC S7-200 (Ethernet)" connection driver. The TP177B (non-PN) variant cannot use this driver.
8.4 Runtime verification
On the TP177B, switch to the project. Open the Service > Commissioning screen. The connection icon must show green. If it shows yellow, the panel has polled the CPU and received a bad response — check the baud rate and station addresses. If it shows red, the panel has not reached the CPU — check the cable, terminating resistors, and Port address selection in the System Block.
9. Method 2: Using OPC/Kepware STEP 7 Tag Import
Projects that have to be commissioned by engineers without direct access to STEP 7 Micro/WIN — for example, system integrators handed a CSV from the OEM — can use a third-party HMI/SCADA server such as KEPServerEX (PTC) and its Siemens TCP/IP Ethernet driver. The driver has a tag-import wizard that reads a STEP 7 project file (*.S7P) and builds the tag database automatically. The mechanics of the import are documented in the vendor knowledge base:
-
KEPServerEX – Siemens TCP/IP Ethernet Driver: Tag Import. The page describes selecting Tag Import Type: Step 7 Project File and pointing the wizard at a
*.S7Pfile.
This path requires the S7-200 to be on Ethernet (CP 243-1 or CP 243-1 IT) because the KEPServerEX driver for STEP 7 project import communicates with the S7-200 over ISO-on-TCP. There is no equivalent PPI/MPI tag-import wizard.
Once KEPServerEX is exposing the tags, WinCC flexible can subscribe to the OPC DA server exposed by KEPServerEX via the OPC channel — this is an alternative to writing the tags directly into the WinCC flexible tag database by hand. For a brand-new project with several hundred tags, the OPC path is faster to stand up but adds a moving part (the KEPServerEX service) that must be commissioned, licensed, and protected against Windows restarts.
10. Verification and Commissioning Checks
Walk through the following checklist after the CSV import and connection configuration are complete. Each item maps to a measurable pass/fail.
| # | Check | Expected result | Pass criteria |
|---|---|---|---|
| 1 | Compile the WinCC flexible project | Zero errors in the tag compilation report | No red entries in Output Window > Tags |
| 2 | Cross-reference every imported tag | Each tag is used on at least one screen | Project > Cross References shows non-zero use count |
| 3 | Connect PC to S7-200 with Micro/WIN PPI | Communication OK | Micro/WIN shows the CPU in "Communications" |
| 4 | Compare CSV to Micro/WIN symbol table | Same count, same addresses |
diff or manual row-by-row match |
| 5 | Transfer project to TP177B | Transfer completes | ProSave or Ethernet transfer reports OK |
| 6 | Check Service > Commissioning > Connection | Connection icon is green | Polling succeeds within the cycle time |
| 7 | Force a bit from Micro/WIN, observe HMI | HMI indicator follows PLC state | Toggle Q0.0 in status chart, watch HMI |
| 8 | Enter a setpoint on the HMI, observe PLC | PLC receives the value | Watch VW100 in status chart while typing on panel |
| 9 | Disconnect the cable, observe HMI | Connection icon turns red within 3× cycle time | Confirms the panel actually polls the CPU |
| 10 | Reconnect the cable | Connection icon returns to green | Confirms the panel re-establishes the link on its own |
11. Troubleshooting Matrix
| Symptom | Likely cause | Verification | Fix |
|---|---|---|---|
| CSV import: red row on a single symbol | Name starts with digit, has a space, exceeds 32 chars, or duplicates a tag already in the project | Open CSV, inspect the failed row | Edit symbol in Micro/WIN, re-export, re-import |
| CSV import: every row red | Wrong separator (comma vs. semicolon) or UTF-8 without BOM | Re-open CSV in a hex editor; look for EF BB BF at file start |
Save as CSV (Comma delimited) in Excel; set regional list separator to match |
| Tag compiles but is shown gray on HMI | Tag is unused; warning only | Cross-reference | Either use the tag on a screen or remove it |
| Runtime: connection icon yellow | Wrong baud rate or address mismatch between panel and CPU | Service > Commissioning > Diagnostic | Re-set System Block in Micro/WIN; re-transfer the project |
| Runtime: connection icon red | Cable, terminator, or wrong port on the CPU | Loopback test, swap cable, try Port 1 | Replace cable, enable terminators, move HMI to Port 1 |
| HMI shows "####" on a numeric field | Address is wrong or symbol is not present in the S7-200 at runtime | Status chart for the same address in Micro/WIN | Correct the symbol table, re-import |
| HMI value freezes for several seconds, then resumes | Baud rate too low for the number of tags and cycle | Reduce the number of tags polled or raise baud rate to 187.5 kbps | Set PPI/MPI to 187.5 kbps on both sides; raise cycle to 2 s on non-critical tags |
| Tags import as "<no PLC>" | CSV's connection column was missing or pointed at a connection that does not exist | Project > Connections | Add the S7-200 connection first, re-import, or use the standard import dialog that maps to the S7-200 connection |
| String tags show only one character | Length column in CSV is 1 instead of the buffer length | Inspect the CSV | Set Length to the actual buffer length, up to 80 for S7-200 |
| HMI writes cause PLC to fault | HMI is writing to a bit-mapped word (e.g. V100) and the PLC also writes to V100.0 / V100.1, causing a write race | Check program cross-reference for the word | Move HMI tags to non-overlapping V memory or use VW/VD from a dedicated HMI range |
12. Field-Proven Caveats
-
Word overlap is silent. Micro/WIN and WinCC flexible both allow
VW100,VB100,VB101,V100.0…V101.7to coexist. At runtime, all of them are valid. The program is responsible for not writing the same byte from two places at once. - PPI is master/slave. The TP177B is the master and the S7-200 CPU is the slave. If the S7-200 is supposed to be a master on the same bus (e.g. talking to a drive), the network must be redesigned; the TP177B cannot operate as a slave to the S7-200.
- Cycle time vs. tag count. On a 187.5 kbps PPI bus, a 32-byte read takes about 18 ms. A 100-tag project that reads 4 bytes per tag takes 1.8 s of bus time per poll; a 1 s cycle is therefore marginal. Plan for 2 s on slow networks or move high-rate analog tags to a CP 243-1 Ethernet link.
- CPU 224 XP port assignment. The CPU 224 XP has Port 0 and Port 1. Micro/WIN downloads use Port 0 by default. If the HMI cable is on Port 0, Micro/WIN cannot download while the HMI is polling — pause the HMI or use Port 1 for the HMI.
- Firmware version matters. The CPU 224 XP ships in two incompatible firmware trains: pre-2.0 (use the legacy PPI driver in WinCC flexible) and 2.0 and later (the "S7-200 (PPI/Modbus)" driver). A wrong driver selection compiles fine but cannot establish a connection at runtime.
13. Frequently Asked Questions
Can WinCC flexible import the S7-200 symbol table directly, the same way it does for S7-300/400?
No. The S7-300/400 path goes through a STEP 7 project (*.S7P) that WinCC flexible can read; the S7-200 path uses STEP 7 Micro/WIN, which stores the symbol table in a proprietary *.mwp file that WinCC flexible cannot open. The CSV export/import procedure described in sections 5–7 is the only fully supported route inside WinCC flexible. See Siemens Support Entry 22834940 for the official procedure.
What CSV column order does WinCC flexible expect for an S7-200 import?
Name, PLC tag, Data type, Length, Address, Acquisition, Cycle, Lower limit, Upper limit, Linear scaling, Comment. The header row is mandatory. The Address column must contain a valid S7-200 absolute address (e.g. VW100, V200.4, Q0.0), and the Data type must be one of BOOL, BYTE, WORD, INT, DWORD, DINT, REAL, STRING. UTF-8 with BOM or ANSI are both accepted; UTF-8 without BOM fails on legacy TP177B panels.
Why does the TP177B show a yellow or red connection icon at runtime even though the project compiles cleanly?
Compilation success means the tags are syntactically valid, not that the bus is wired correctly. A yellow icon means the panel is reaching the CPU but the response is corrupted — check that the baud rate and station addresses match between WinCC flexible's connection (default 187.5 kbps, HMI address 1, CPU address 2) and the S7-200 System Block. A red icon means the panel is not reaching the CPU — check the cable pinout, the bus terminator switches, and the active Port (Port 0 vs Port 1) on the CPU.
Can I use Ethernet instead of PPI between the TP177B and the S7-200?
Yes, but only with the TP177B PN/DP variant and a CP 243-1 (6GK7243-1EX01-0XE0) or CP 243-1 IT (6GK7243-1GX01-0XE0) installed in the S7-200. WinCC flexible then selects the "SIMATIC S7-200 (Ethernet)" connection driver and the panel reaches the CPU at the CP 243-1's IP address on port 102 (ISO-on-TCP). The legacy TP177B DP variant (without Ethernet) cannot use this driver.
What is the maximum tag count and the best cycle time for a TP177B on PPI to a CPU 224 XP?
On a 187.5 kbps PPI bus with 32-byte reads, the panel can comfortably poll roughly 100 tags at a 2 s cycle. Tighter cycles are possible on smaller projects but the bus becomes the bottleneck long before the CPU does. For larger tag counts, move the panel to Ethernet over a CP 243-1 and the cycle can drop to 250–500 ms without bus saturation. Always set the "Acquisition" column to On demand for setpoints and Cyclic only for values that the operator must see updating live.