PLC Tag Quality "Bad" After UDT Modification (TIA Portal/PLCSim Advanced to Ignition)

Hello everyone,

I'm having a persistent issue when modifying a User-Defined Data Type (UDT) in TIA Portal and then trying to read the updated tag values in Ignition.

My Setup:

  • PLC: Siemens S7-1512 simulated via PLCSim Advanced.

  • TIA Portal Project: Contains a Data Block (DB) with multiple instances of a custom UDT.

  • Ignition 8.3: Using the Siemens Enhanced Driver for connection.

  • Ignition Tag: An OPC Tag linked to an element of one of the UDT instances (e.g., DB_Name.UDT_Instance[0].Element).

The Problem:

  1. Initial State: Everything works perfectly. I can read and write to the Ignition OPC tag.

  2. Modification: I modified the UDT in TIA Portal (e.g., changed an element's data type from Int to Real/Float) and downloaded the changes to PLCSim Advanced.

  3. Result: The corresponding OPC tag in my Ignition Designer project immediately goes to Bad quality (e.g., Bad_Stale, Bad_ConfigurationError). I can no longer read or write to it, even though the Device Connection in the Ignition Gateway still shows as Connected.

Troubleshooting Performed:

I have already attempted toggling the "Optimized Block Access" setting for the Data Block containing the UDT instances (turning it off, downloading, and turning it back on/leaving it off), but this did not resolve the issue.

The "Fixes" (Temporary Workarounds):

To get the Ignition tag working again, I have to perform one of the following actions:

  • Re-download the original, unmodified TIA Portal project (which defeats the purpose of the change).

  • Go into the Ignition Gateway, navigate to the device connection, and Disable, then immediately Enable the connection. After this, the tag works fine with the new structure.

My Questions:

  1. Why does this happen? Why does a simple data type change inside a UDT cause the existing Ignition OPC tag to fail without triggering a connection error, and why does a simple connection re-initialization (Disable/Enable) fix it? Does the Siemens Enhanced Driver or the underlying S7 protocol cache the structure, and the modification somehow invalidates that cache?

  2. Is there a way to avoid the manual Disable/Enable step? Is there a setting I'm missing, or perhaps a script/method I can use in Ignition to force the driver to re-read the structure from the PLC after a TIA Portal download, without having to manually touch the gateway device connection?

Any insight into the communication protocol or the Enhanced Driver's behavior here would be greatly appreciated!

Thanks in advance!

Doing an edit/save on the connection forces it to reconnect, re-browse the symbols, and learn about the UDT definitions again. There should also be a UI option in the Ignition Gateway on each of these device entries to refresh the browse.

The S7 protocol has no means to notify consumers that UDT definitions have changed. If you change them you’ll have to force Ignition to “refresh” by one of these mechanisms.

4 Likes