Overview: S7 VAT Tables in TIA Portal
The Variable Address Table (VAT), also referred to as the Watch Table (Beobachtungstabelle) in TIA Portal, is the principal online commissioning and diagnostic surface for S7-1200 and S7-1500 controllers. VATs let the engineer observe live process values, force outputs, and modify tag values while the CPU is in RUN or RUN-P mode. The table is opened from the project tree under Watch and Force Tables > Add new watch table and stored inside the program block container of the S7 CPU.
Unlike the legacy STEP 7 V11/V13 Watch Table, the TIA Portal VAT ships with a fixed column layout. The columns Address, Symbol, Display Format, Status Value, and Modify Value are bound to the underlying PLCTagTable data model; they cannot be dragged into a different order through the standard handle mechanism used by most Windows grid controls. Siemens Support and Siemens-internal documentation confirm that the order is fixed by design. Engineers commonly search for a way to rearrange the columns so that, for example, the Status Value sits next to the Address field. That operation is not available.
This reference documents the complete VAT column architecture, the legitimate workarounds for visual customization, and the alternative diagnostic tables that recover the lost flexibility when working on S7-1200 (firmware V4.2 and later) and S7-1500 (firmware V1.8 and later) targets.
Prerequisites and Supported Firmware
| Component | Minimum Version | Notes |
|---|---|---|
| TIA Portal | V13 SP1 / V14 / V15 / V15.1 / V16 / V17 / V18 / V19 | Column model identical across versions; only the icon set and ribbon layout differ. |
| S7-1200 CPU | Firmware V4.2 (CPU 1211C/1212C/1214C/1215C/1217C) | VAT online requires PUT/GET or HMI access rights. |
| S7-1500 CPU | Firmware V1.8 (ET200SP CPU variants require V2.0) | Security level must allow online modify. |
| WinCC Professional / Comfort | V13 or later | Same VAT XML can be reused on HMI tag tables. |
Modify Value column is greyed out. See the S7-1500 Protection Functions Manual.VAT Column Architecture
The TIA Portal VAT exposes five logical columns. Each column is bound to a specific read/write channel of the online interface; reordering would break the binding contract between the editor and the OPCPubSub streaming layer.
| Column | Internal Field | Read/Write | Editable Offline | Editable Online |
|---|---|---|---|---|
| Address |
%I0.0, %MW100, %DB1.DBD0
|
R | Yes | No |
| Symbol | PLC tag or global DB member | R | Yes | No |
| Display Format | BIN, HEX, DEC, BOOL, FLOAT, OCT, CHAR, DATE, TIME, STRING | R | Yes | No |
| Status Value | Live process value | R | No | Live (read-only) |
| Modify Value | Force / write trigger | W | Yes (queued) | Yes (one-shot or permanent) |
The internal storage model is PLCTagTableRow in the TIA Portal ES datamodel. Each row is identified by a 64-bit STagAddress structure composed of Area (Input/Memory/DB/Output/Timer/Counter), ByteOffset, BitOffset, and DataType. Reordering at the UI layer is disabled because the row object is hashed by the address for de-duplication and incremental compile.
Why Drag-and-Drop Does Not Work
Standard grid controls in Windows Presentation Foundation (WPF) expose a ColumnReorder drag handle that allows the user to swap column positions at runtime. The TIA Portal WatchTableControl (assembly Siemens.Engineering.WatchTables) intentionally suppresses this handle for three documented reasons:
-
Column-binding contract. The status column writes to
OPCMonitorStream; the modify column writes toOPCControlStream. Swapping them would corrupt the OPC UA subscription handle. -
Localized column captions. Column headers are loaded from the Siemens language resource (
WatchTable.ColumnStatus,WatchTable.ColumnModify). Reordering would break accessibility scripts that depend on a stable column order. -
Compatibility with legacy STEP 7. The VAT file format (
.xml, schemahttp://www.siemens.com/automation/Openness/SW/WatchTable/v1) preserves column order so that a table exported from V13 opens identically in V19.
Approved Workarounds for Column Layout
Even though the column order is fixed, three supported techniques tailor the visual layout to the engineer's preference. None of them require a project modification or rebuild.
Workaround 1 — Hide Columns via the View Menu
- Open the VAT in the project tree.
- Right-click any column header.
- Choose Show/Hide > Columns (or use the ribbon View > Show Columns).
- Uncheck Display Format or Modify Value to remove them from the surface.
- The table refreshes immediately; no compile is required.
This is the recommended approach for reducing visual clutter when the table is used purely for status monitoring. Hiding Modify Value is also a documented safety best practice during FAT (Factory Acceptance Test) where unintended writes must be prevented.
Workaround 2 — Collapse Column Width
If a column cannot be hidden because it is required by the row data (for example, Display Format is referenced by the row's serialization), drag the right border of the column header all the way to the left until the column is roughly 4 pixels wide. The header label disappears, but the column is technically still present and will print to PDF reports in its collapsed form. To restore the column, drag the border back to the right.
Workaround 3 — Use a Second Watch Table for Mirror Layout
When the engineer's preferred mental model places Status Value adjacent to Address, create two complementary VATs:
| VAT | Purpose | Columns |
|---|---|---|
| VAT_Monitor | Live status only | Address, Symbol, Status Value (Display Format hidden) |
| VAT_Control | Write-only interface | Address, Symbol, Modify Value (Status Value hidden) |
Open both tables in split-window mode (Window > Split Window Vertically) so the engineer sees the live status immediately to the right of the address while preserving full write access on the lower table.
Step-by-Step: Build a Custom VAT for Diagnostic Use
The following procedure creates a VAT focused on motor status monitoring. It illustrates the column editing flow and demonstrates the use of Display Format overrides.
Step 1 — Insert the VAT
- In the project tree, expand PLC_1 > Watch and Force Tables.
- Double-click Add new watch table.
- Rename to
VAT_Motor_Status.
Step 2 — Populate Rows
Insert the following symbolic addresses from the program. The Address column is auto-completed when a valid symbol is typed:
Row 1: "Motor1_RunCmd" Format=BOOL Modify=1
Row 2: "Motor1_Speed_act" Format=REAL Modify=
Row 3: "Motor1_Current" Format=REAL Modify=
Row 4: "Motor1_Temp" Format=INT Modify=
Row 5: "Motor1_FaultCode" Format=HEX Modify=
Step 3 — Force the Display Format
Click the Display Format cell and select the matching radix. For the FaultCode row, choosing HEX aligns with the S7 diagnostics buffer which reports fault numbers as 16-bit hex (for example, 0x7002 = over-temperature on S7-1500 motion resources).
Step 4 — Establish Online Connection
- Right-click
VAT_Motor_Statusand choose Go online > CPU_1. - The Status Value column populates within the configured acquisition cycle (default 500 ms).
- To change the cycle, use Online > Cycle Time > 100 ms / 500 ms / 1000 ms / 5000 ms. The 100 ms option requires
PG/PC interface = Ethernet TCP/IPwith adequate bandwidth.
Step 5 — Modify a Value
- Type the new value in the Modify Value column.
- Click the Modify button (single-shot, one scan) or the Modify all once icon.
- For a latched write, select Modify all permanently; the value is re-written every CPU scan until Stop modifying is invoked.
Event ID 16#4E8F ("Modify rejected - safety address"). Convert safety values through the F-shutdown DB to avoid this error.Alternative Diagnostic Surfaces
If the VAT column model is too restrictive for a given task, the following TIA Portal surfaces recover lost flexibility.
HMI Tag Tables
HMI Comfort Panels and WinCC RT Professional read tag lists that are stored separately in the HMI project. The HMI Tags editor allows column rearrangement, custom units, and scaling factor columns. Useful when the engineer wants both the PLC address and the engineering unit visible in one row.
Trace (S7-1500 only)
The Trace viewer (firmware V1.5+) records signals to a time-stamped buffer. It is the proper tool for trend analysis but not for live status. The trace configuration editor allows free-form column ordering within the configuration pane.
Web Server Diagnostics Pages
Standard S7-1500 Web pages expose Status of the modules, Diagnostic buffer, and user-defined WebDB variables. The user-defined pages can be authored with arbitrary column order using the User-defined Web pages editor. This is the closest equivalent to a fully customizable VAT.
Openness API / Scripted VAT Generation
For projects that need to generate hundreds of VAT rows from an Excel export, the TIA Portal Openness API (Siemens.Engineering.WatchTable) accepts a custom row list. The Openness interface does not, however, allow reordering columns; the column schema remains fixed.
Exporting, Importing, and Version Compatibility
VATs are stored as .xml inside the project archive. Export them via Right-click VAT > Export > XML. The schema is documented in the TIA Portal Openness manual.
| Operation | Menu Path | File Format | Notes |
|---|---|---|---|
| Export single VAT | Right-click > Export | XML (WatchTable v1) | Encrypts modify values with project password. |
| Import VAT | Right-click > Import | XML (WatchTable v1) | Address conflicts trigger a merge dialog. |
| Drag-and-drop into project | Drag from Windows Explorer into Watch and Force Tables | XML | Multi-VAT import supported. |
| Compare VATs | Right-click > Compare | Internal diff | Useful for FAT/SAT documentation. |
Troubleshooting Matrix
| Symptom | Likely Cause | Resolution |
|---|---|---|
| Columns cannot be reordered by drag | Column drag handle disabled by design | Use View > Show/Hide Columns or split-table mirror layout. |
| Status column shows dashes | CPU in STOP, or access rights insufficient | Bring CPU to RUN-P, raise protection level to Full access in CPU properties. |
| Modify column greyed out | CPU protection level > read-only | Switch to Full access or use a PG with the project password. |
| Status value flickers between two values | Acquisition cycle too short for OPC sampling | Increase cycle to 500 ms; check CPU scan time. |
| Symbol column blank for valid tag | Tag deleted from PLC tag table after VAT was created | Right-click row > Resolve symbolic names. |
| Modify rejected with Event ID 16#4E8F | Attempting to modify a fail-safe tag | Route through a non-safety shadow tag in the F-DB. |
| VAT file will not import into older TIA Portal | Schema version mismatch | Re-export from older project first; use Project > Migration. |
| Display Format defaults to HEX unexpectedly | Address is a pointer type (P#) |
Manually select DEC or BOOL; pointer addresses cannot be reformatted while online. |
Best Practices
- One VAT per logical subsystem. Avoid creating a single mega-table with 200+ rows; split by machine section for readability and faster online acquisition.
- Hide Modify Value during commissioning of safety circuits. Prevents accidental write-through to F-tag addresses.
-
Use HEX for fault-code tags. Aligns with the S7 diagnostic buffer (Event IDs
16#xxxx) so the operator reads both in the same radix. -
Document VAT naming convention. Recommended pattern:
VAT_<Area>_<Function>_<Mode>, e.g.VAT_Conveyor_Start_Read,VAT_Conveyor_Start_Write. - Lock the VAT after SAT. Right-click > Properties > Protection and enable the write-protection bit so junior engineers cannot modify the configuration post-handover.
- Avoid overlapping addresses across VATs. Although TIA Portal permits the same address in multiple VATs, conflicting modify commands queue unpredictably and can produce non-deterministic I/O behavior.
- Export the final VAT to the project archive. Preserve a snapshot in the as-built documentation so future service engineers inherit the original monitoring layout.
Verification Checklist
- Open the VAT in online mode and confirm the Status Value populates within one acquisition cycle.
- Modify a non-safety tag and confirm the value latches in the CPU.
- Toggle CPU to STOP and confirm the table reads correctly with stale values flagged.
- Export the VAT to XML and re-import into a sibling project to confirm portability.
- Run Project > Compile > Software (rebuild all blocks) with no warnings.
- Open the diagnostic buffer (Online > Diagnostic buffer) and confirm no Event IDs related to VAT modify failures.
Can I rearrange the columns in a TIA Portal VAT (Watch Table)?
No. Column order in TIA Portal VATs is fixed: Address, Symbol, Display Format, Status Value, Modify Value. Siemens does not expose a drag handle to reorder them. Use View > Show/Hide Columns to hide unwanted fields, or create a second mirrored VAT (one read-only, one write-only) and arrange the two side-by-side.
How do I hide a column in the VAT?
Right-click any column header, choose Show/Hide > Columns, and uncheck the columns you want to remove. You can also drag the column border to collapse the column to roughly 4 pixels wide if you want to keep it present for export/print purposes.
Why does the Status Value column show dashes online?
Status values appear as dashes when the CPU is in STOP, when the PG/PC does not have write/read rights to the project, or when the CPU protection level is set above the current access level. Switch the CPU to RUN-P, or raise the access level under CPU Properties > Protection & Security.
Can I modify a fail-safe (F) tag from a VAT?
No. TIA Portal rejects modifications of F-tags with diagnostic buffer Event ID 16#4E8F. Use the safety program's standard or shadow tags (F-DB outputs) and modify those instead. The F-runtime will then propagate the change according to the safety logic.
Where are VATs stored and how do I migrate them between TIA Portal versions?
VATs are stored as XML inside the project archive using the schema http://www.siemens.com/automation/Openness/SW/WatchTable/v1. They migrate automatically with the project during Project > Migrate. You can also right-click and Export a single VAT to XML and import it into another project.