Ignition Module Metadata Support
The module can send tag metadata from Ignition to Timebase alongside the tag's time-series data. Metadata includes engineering units, descriptions, format strings, and custom tag properties.
Overview
The module can send tag metadata from Ignition to Timebase alongside the tag's time-series data. Metadata includes engineering units, descriptions, format strings, and custom tag properties. Once stored in Timebase, this information is displayed alongside the data — for example, a chart axis can show the unit of measure, or a tooltip can show the description.
Metadata is stored per tag and only the current (latest) values are kept. Timebase does not track historical changes to metadata — if you change a tag's engineering unit, the new unit applies going forward.
Enabling Metadata for a Tag
Metadata collection is controlled by the Include Metadata setting on each tag individually:
- In Ignition Designer, open the Tag Browser.
- Right-click the tag and select Edit Tag.
- On the History tab, enable Include Metadata.
- Save the tag.
No additional configuration is required on the historian provider itself.
What Gets Sent to Timebase
When Include Metadata is enabled, the module maps the following Ignition tag properties to Timebase fields:
| Ignition Property | Timebase Field | Notes |
|---|---|---|
Tooltip |
d (Description) |
The tag's tooltip text, used as a description in Timebase |
Eng Unit |
u (Unit of Measure) |
The engineering unit (e.g. °C, PSI, m/s). Stored as a suffix UOM — displayed after the value. |
Format String |
f (Format) |
The display format string. See note on format compatibility below. |
| Data Type | t (Type) |
Always sent, even when Include Metadata is off. Ensures Timebase uses the correct data type. |
| Custom tag properties | fl (Custom fields) |
User-defined properties that are not part of Ignition's standard tag property set are collected into a key-value custom fields object. |
Data Type Mapping
The tag's data type is always included in metadata, regardless of the Include Metadata setting:
| Ignition Data Type | Timebase Type |
|---|---|
| Float4, Float8 | System.Double |
| Int1, Int2, Int4 | System.Int32 |
| Int8 | System.Int64 |
| Boolean | System.Boolean |
| String, DateTime, other | System.String |
Format String Compatibility
Ignition uses Java's DecimalFormat syntax for format strings; Timebase uses .NET's custom numeric format syntax. Most common patterns are identical between the two (0.00, #,##0.00, 0.0%) and are passed through directly.
However, the following Java-only patterns are not sent to Timebase, as they would render incorrectly:
- Single-quote literals (
'text') — used in Java for literal text in format strings - The currency placeholder (
¤) - More than two semicolon-separated sections (Java supports two; .NET supports three with different meanings)
If your format string uses any of these patterns, the f field is omitted from the Timebase metadata update. The existing value in Timebase is preserved — it is not cleared. A trace-level log entry is written with the tag path and format string for debugging.
Custom Properties
User-defined custom tag properties (those not part of Ignition's standard tag property set) are captured and sent to Timebase in the fl (custom fields) object. Each custom property appears as a key-value pair.
Known limitation: Custom property changes that occur without a simultaneous change to a standard property (Tooltip, Eng Unit, Format String, Data Type) may not be sent immediately. Custom property updates are captured the next time a standard property change triggers a metadata event. If custom properties change frequently without standard property changes, the
flvalues in Timebase may lag behind Ignition.
When Metadata Is Sent
Metadata is sent in two situations:
- Tag initialization — When a tag with Include Metadata enabled is first set up (or the module starts with the tag already configured), the current metadata values are sent to Timebase.
- Property change — When any of the monitored metadata properties (Tooltip, Eng Unit, Format String, or Data Type) changes on a running tag.
Metadata is only sent when values have actually changed. The module compares the new metadata against a local cache of what Timebase currently holds for each tag, and only sends an update if something is different. This avoids unnecessary API calls.
What Happens When Include Metadata Is Disabled
If you disable Include Metadata on a tag, the module stops sending Tooltip, Eng Unit, Format String, and custom properties to Timebase. The tag's data type continues to be sent (it is always required).
Disabling Include Metadata does not clear the existing metadata from Timebase. The last values that were sent remain on the tag record until something updates them.
Troubleshooting
| Symptom | Likely cause | What to do |
|---|---|---|
| Engineering units do not appear in Timebase charts | Include Metadata is not enabled, or Eng Unit is not set | Enable Include Metadata on the tag. Confirm the Eng Unit field is filled in. |
| Description in Timebase is wrong or missing | Tooltip property is empty or Include Metadata is off | Check the tag's Tooltip property in Ignition. Enable Include Metadata if it is disabled. |
| Format string is missing from Timebase | Format string uses Java-only syntax | Check whether the format string contains single quotes, the ¤ symbol, or more than two semicolons. These are skipped — use a compatible format string or set the format manually in Timebase. |
| Custom property changes are not reflected in Timebase | Only standard property changes trigger a metadata sync | This is a known limitation. Change any standard metadata property (e.g. add a space to the Tooltip and remove it) to trigger a sync that will also pick up the custom property change. |
| Metadata appears correct in Ignition but Timebase shows old values | Metadata cache mismatch | Restart the Ignition Gateway. The module will re-read the current Timebase tag records on startup and resync any differences. |