Add DB to TIA Portal V12 Watch Table: Complete Methods Guide

David Krause11 min read
SiemensTIA PortalTutorial / How-to
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

Overview: Why a Single-DB Watch Table Entry Is Hard in TIA Portal V12

The TIA Portal watch table (VAT) in V12 and V12 SP1 does not provide a native "drop an entire DB into a watch table" command. Operators must add each tag individually, which becomes impractical for large data blocks containing hundreds of struct members, recipe arrays, or UDT instances. This reference documents five field-validated methods to monitor and modify all elements of a Siemens S7-1200 / S7-1500 data block without manually typing every tag, plus the known V12 SP1 copy/paste defects that block two of those methods.

Scope: Procedures apply to STEP 7 V12.0 and V12 SP1 with S7-1200 firmware V4.x and S7-1500 firmware V1.x/V2.x. TIA Portal V13+ behavior diverges; the Monitor All button and the drag-from-DB-tree method became fully supported in V13 SP1 and later, but the workarounds below remain valid across V12 through V17 for legacy machines.

Prerequisites

  1. STEP 7 Professional V12 or V12 SP1 installed and licensed.
  2. Online connection to the target S7-1200 (PN/IE) or S7-1500 (PN/IE) via TCP/IP.
  3. PLC in RUN or RUN-P operating mode for live tag modification; STOP is acceptable for snapshot/start-value workflows.
  4. Compiled hardware configuration and program block (no compile errors in the DB).
  5. User rights: "Monitoring" plus "Force" if write access is required (Siemens Protection & Security setting in the CPU properties).
  6. The target DB must be downloaded to the CPU; offline/online block consistency is mandatory for the Open ONLINE route.

Method 1 - Custom PLC Datatype Wrapper DB (Most Reliable for New Projects)

This technique creates a one-tag DB that mirrors the structure of the target DB. Because the new DB has a single element, it is added to the watch table in one click and expanded with the > (expand) arrow.

  1. Open Project Tree > PLC_x > PLC data types.
  2. Add a new datatype, name it _DBn where n matches the source DB number.
  3. Inside _DBn create a single element named c of type Struct.
  4. Open the source DB, select Ctrl+A to highlight every member, then Ctrl+C.
  5. Right-click inside _DBn.c and Paste. Re-name the struct elements to match the original DB exactly.
  6. Create a new DB (e.g. DB_WatchMirror) with one tag of datatype _DBn at offset 0.0 (default).
  7. Open the Watch Table, drag "DB_WatchMirror".c from the project tree, or type the fully qualified name "DB_WatchMirror".c and press Enter.
  8. Click the green > (expand) icon next to the tag to disclose every struct element; all members become individually monitorable and editable.

Why it works: the VAT only handles the top-level tag; the expansion arrow drills into the custom datatype. A UDT wrapper effectively turns "N tags" into "1 tag" for the watch table's perspective.

Caveat: This is best implemented during project creation. For a running system already shipped, you must re-download the new wrapper DB; a hot reload is not supported on S7-1200/S7-1500. If the machine cannot be stopped, use Method 3 or 4 instead.

Method 2 - Bulk Copy and Paste from DB into Watch Table

  1. Open the target DB in the programming editor.
  2. Select all rows: Ctrl+A.
  3. Copy: Ctrl+C.
  4. Switch to the watch table, click the first empty row, and paste: Ctrl+V.
  5. Click Monitor all (the eyeglasses icon) to start live updating.
Element Type Paste Behavior in V12 Paste Behavior in V13+
Bool / Int / Real / DInt Pastes cleanly Pastes cleanly
Array of UDT Quotes appear around datatype, paste fails Pastes cleanly
Nested Struct with quoted name Manual fix required Pastes cleanly
String / WString Pastes cleanly Pastes cleanly

Method 3 - Online DB Monitor View (No Watch Table Required)

Starting with TIA Portal V12 SP1, the DB editor itself becomes a live monitor. This is the fastest path to read or write every member of a large DB without using a watch table at all.

  1. In the project tree, double-click the target DB.
  2. Establish an online connection (Online > Go online or click the Go online button).
  3. Click the Monitor all button (eyeglasses icon) in the toolbar of the DB editor. The Monitor value column populates with live values from the CPU.
  4. To edit: type the new value into the Monitor value cell of any row and press Enter. The change is written to the CPU on commit; a small green check confirms the write.
  5. Use F5 or View > Update to force a refresh on demand.
Edit limit: You can only modify the Monitor value column when the DB is non-optimized or when the tag is marked as settable. Tags declared with {S7_visible:=false} or inside an optimized block with read-only access may reject writes with the error 0x8001 ("Access denied").

Method 4 - Open DB Online (File Menu Route)

This method bypasses the project tree and is helpful when the offline copy of the DB has drifted from the online copy, or when working against a CPU whose project is not available locally.

  1. Open the DB in the editor (offline or empty file is fine).
  2. From the menu bar select File > Open ONLINE. TIA Portal fetches the live block contents from the CPU.
  3. Click the Monitor glasses icon to start live monitoring.
  4. Press F5 for on-demand refresh, or enable continuous update under View > Update > Continuous.
  5. To change values, type the new value in the Monitor value column and press Enter.
  6. To persist a value as a new start value, click the Snapshot icon, then Download to device. This rewrites the DB's initial values in the CPU's load memory.

Use case matrix:

Action Method 3 (Online DB) Method 4 (Open ONLINE)
Live read all members Yes Yes
Live write to working memory Yes Yes
Update start values from current No Yes (snapshot)
Read CPU without offline project No Yes
Bulk paste from another DB No Yes (from online editor)

Method 5 - Snapshot and Edit Start Values

For recipe data, setpoints, or configuration constants that should survive a CPU restart, modify the start values directly.

  1. Open the DB online (Method 4).
  2. Click Snapshot (camera icon). The Start value column is overwritten with the current Monitor value.
  3. Edit the Start value column for any tag.
  4. Click Download to device (or Save with Compile & Download). The new start values are written to the CPU's load memory and become active on the next cold restart or STOP-to-RUN transition.
Do not snapshot safety-relevant tags. A snapshot blindly overwrites every start value, which can defeat interlocks configured in the DB. Use a dedicated recipe DB or use Method 3 to write individual monitor values for safety logic.

Known TIA Portal V12 SP1 Bugs and Workarounds

Symptom Root Cause Workaround
Custom datatype names appear with double quotes ("") in the DB after copy/paste V12 SP1 string-escape defect during clipboard serialization Manually delete the quotes; let TIA Portal re-insert them on the next compile
"I cannot create a tag with a custom PLC datatype - the datatype is not selectable" Project-level option Permit access with PUT/GET is disabled, or the datatype library reference is broken Right-click PLC data types > Add new datatype; ensure the library version matches the CPU firmware
Paste into the watch table drops struct members silently Watch table does not expand pasted compound tags in V12 Paste into a UDT wrapper (Method 1) instead of directly into the watch table
Monitor value column shows 16#0000 for all members of a struct Optimized block access with symbol-only binding broken in V12 SP1 Uncheck Optimized block access in DB properties, recompile, download
Snapshot button is grayed out DB opened offline rather than online Use File > Open ONLINE (Method 4) first

Siemens released fixes for the quoted-datatype and watch-table paste defects in V13 SP1 and the cumulative V12 SP1 update package. If a machine is locked to V12 SP1, the wrapper-DB workaround (Method 1) is the only fully reliable path.

Step-by-Step Decision Flow

  1. Can the machine be stopped and recompiled? → Use Method 1 (UDT wrapper DB). Most maintainable.
  2. Is the system running and the project locked? → Use Method 3 (online DB monitor). Fastest, no rebuild.
  3. Do you need to update start values or read a CPU without an offline project? → Use Method 4 (Open ONLINE) plus Method 5 (snapshot).
  4. Are you developing a new project in V12? → Use Method 1 from the start; the small extra effort pays off over the machine's lifetime.

Verification Procedure

  1. After applying any of the five methods, click Monitor all and confirm the value column updates at the configured refresh rate (default 1 s; configurable under Tools > Settings > Online & Diagnostics).
  2. For write verification, change a Bool tag from FALSE to TRUE and read it back from the CPU using Online & Diagnostics > Read tag. A round-trip mismatch indicates a write-protect or know-how-protect barrier.
  3. For start-value verification (Method 5), perform a STOP-to-RUN transition and confirm the new value is loaded. On S7-1200, use Online > Reset (cold) to force a full restart.
  4. Cross-check the watch table or monitor view against a second tool (HMI tag list, S7-PCT, or a separate TIA instance on another engineering station) to rule out stale display caching.
  5. After bulk edit, perform a Compare online/offline to ensure the offline project still matches the CPU; otherwise the next download will overwrite the running values.

Troubleshooting Matrix

Symptom Likely Cause Resolution
Watch table row shows Invalid tag name Fully qualified name typo or DB number mismatch Use the format "DB_MyData".MyTag with exact case
Monitor value column grayed out CPU in STOP or no online connection Switch to RUN-P and re-establish Go online
Write rejected with 0x80D0 Area is read-only because of optimized block access Disable optimized access on the DB or use the HMI tag interface
Struct member shows --- after expansion UDT version mismatch between DB and watch table Recompile the project; refresh online view with F5
Newly added DB member is invisible online DB not re-downloaded to CPU Right-click the DB > Download to device > Software (only changes)
VAT paste inserts one row, ignoring the rest V12 SP1 watch-table paste defect on compound types Switch to Method 1 (UDT wrapper) or upgrade to V13 SP1+
Custom datatype is not selectable when adding a tag Project library not synchronized with CPU firmware Update the library or add the datatype via Project tree > PLC data types > Add new

Performance and Safety Notes

  • Live monitoring a large DB at a 250 ms refresh rate can add 3-5% to the S7-1200 CPU's communication load. Use 1000 ms for routine diagnostics and switch to 250 ms only during commissioning.
  • Writing monitor values to DBs that are also written by the user program (cyclic OB1) will cause a visual flicker in the watch table; the program always wins on the next cycle. Use Method 5 to update start values for persistent changes.
  • Know-how-protected blocks (Know-how protection enabled in DB properties) hide their members in the VAT. Only the symbol is shown, and writes return error 0x8082. Unlock the block with the password or contact the OEM.
  • For S7-1500F (fail-safe) CPUs, VAT writes to safety-related DBs are blocked at runtime regardless of access level. Use the safety administration editor for safety tag changes.

FAQ

Can I add an entire DB to a TIA Portal V12 watch table in one step?

No, the V12 watch table does not support "add DB" as a single command. The closest equivalent is to wrap the DB's structure in a custom PLC datatype and a one-tag mirror DB (Method 1), then expand the single tag in the VAT. Alternatively, use the online DB monitor (Method 3) to skip the watch table entirely.

Why does copy/paste from a DB into the watch table drop struct members in V12 SP1?

This is a documented V12 SP1 defect in the clipboard serializer. The watch table accepts the top-level tag but does not expand pasted compound types. The reliable workarounds are the UDT wrapper DB (Method 1) or upgrading to TIA Portal V13 SP1 or later where the paste behavior was corrected.

How do I monitor and change a large DB on a running S7-1200 without stopping the CPU?

Go online, open the DB in the editor, and click the Monitor all glasses icon. Type new values into the Monitor value column and press Enter. For values that must persist across a restart, use File > Open ONLINE and the Snapshot button to write new start values to load memory.

My custom PLC datatype does not appear in the selection list when I add a new tag - what is wrong?

Three common causes: (1) the datatype library version is incompatible with the CPU firmware; (2) know-how protection on the source DB hides the datatype reference; (3) the project is in a state with unresolved dependencies after an interrupted compile. Right-click the datatype, Recompile all, and re-add it under PLC data types > Add new datatype.

What is the difference between editing the Monitor value and the Start value in a DB?

The Monitor value is the live working-memory value read from the CPU. Editing it writes to working memory only and is lost on the next STOP-to-RUN transition. The Start value is stored in load memory and is loaded into working memory on every cold restart. Use the Snapshot icon to copy a monitor value into a start value, then download the DB to make the change permanent.

Back to blog