Ignition Module Tag Lifecycle
When you delete, rename, or disable history on an Ignition tag, the module sends a signal to Timebase so that the historian can record a clean state transition.
Overview
When you delete, rename, or disable history on an Ignition tag, the module sends a signal to Timebase so that the historian can record a clean state transition. This is done by writing a null value with a specific quality code to the tag's history record. Without this signal, Timebase would have no way to know that a tag had been removed, and charts might interpolate across the gap as if the tag had simply stopped reporting.
What Happens at Each Lifecycle Event
| Event | What the module does | Quality code sent |
|---|---|---|
| Tag deleted | Writes a null value to the old tag path, then stops tracking it | 8 (Bad_NotConnected) |
| Tag renamed | Writes a null value to the old path, then begins tracking the new path | 8 (Bad_NotConnected) |
| History disabled | Writes a null value to the tag path, then stops tracking it | 8 (Bad_NotConnected) |
| History provider changed | Writes a null value (tag is no longer this historian's responsibility) | 8 (Bad_NotConnected) |
| Module shutdown / Gateway restart | Writes null values for all currently tracked tags | 28 (Bad_Shutdown) |
The difference between quality 8 and 28 tells Timebase — and anyone viewing charts — what caused the gap:
- Quality 8 — the tag was intentionally removed, renamed, or disabled. The absence of data is permanent.
- Quality 28 — the gateway shut down. Data collection will resume when the gateway restarts.
Why This Matters
In Ignition's charts, a null value with Bad quality causes the trend line to break, indicating a deliberate gap rather than missing data. This prevents charts from drawing misleading interpolated lines across configuration changes.
For example:
- If you rename a tag from
Pump/SpeedtoPump/ShaftSpeed, Timebase records a clean end forPump/Speedand a fresh start forPump/ShaftSpeed. The chart showsPump/Speedending at the rename time, with no gap-filling. - If you restart the gateway, all tags show a clean shutdown marker. When the gateway comes back up and history resumes, each tag's chart shows the gap as a known outage rather than a data anomaly.
Gateway Shutdown
On a planned shutdown (restart, upgrade, or stop), the module sends null values with quality 28 for every tag it is currently tracking before the module unloads. This happens automatically — no action is required.
On an unexpected shutdown (power loss, crash), the null values may not be sent. In that case, Timebase shows a gap in the data without an explicit shutdown marker. This is normal behavior and does not cause data loss for the values that were written before the crash.
Tracked Tags
The module keeps an internal registry of every tag that has written data since the current session started. This registry is used only for the shutdown null-write — it is not persisted between gateway restarts. If the gateway is restarted normally, all tracked tags receive a shutdown null. On the next startup, the registry is empty and tags repopulate it as they write new data.
Troubleshooting
| Symptom | Likely cause | What to do |
|---|---|---|
| Chart shows a continuous line across a tag rename | The null value for the old path was not sent (unexpected shutdown) | This is a known limitation of unplanned shutdowns. For planned renames, restart the gateway cleanly to ensure the shutdown null is sent. |
Quality 8 values appearing unexpectedly |
A tag's history was briefly disabled and re-enabled, or the tag was renamed | Check the tag's history configuration in Ignition. Each disable/enable cycle produces a quality 8 marker. |
Quality 28 values appearing outside of restarts |
The module was stopped and restarted (e.g. during an upgrade) | This is expected. The module sends shutdown nulls when it unloads, even during hot upgrades. |
| Old tag path still shows data in charts after rename | Browse cache in Ignition or Timebase has not refreshed | Refresh the tag browser or wait for the browse cache to expire. The old path continues to exist in Timebase — it just has no new data after the null write. |