A Tag is a single point of data that a connector reads (or writes) — a robot's queue-empty flag, a PLC register, a CPU usage reading, a file drop, an error message. Every tag belongs to one connector and is configured on its own Details page in the Tag editor.
This page covers the fields every tag has, regardless of type. For the fields specific to one Tag Type (and what its Transform options do), see the pages linked in Tag Types below.
| Field | Description |
|---|---|
| I/O Type | How this tag's value flows. In — read from the device/source into Collect (the most common case). Out — written from Collect out to the device. InOut — both directions. Internal — never touches the device at all; its value is only ever set by something inside Collect (an Engine program, another tag's calculation, etc.). |
| Name | The tag's identifier. Must be unique within its connector — this is the name used in Engine programs, in the topic a tag publishes to, and in the tag lookups other parts of Collect use to find it. |
| Tag Type | Which kind of value this tag holds, and which set of behaviours (including Transform options) apply to it. See Tag Types below. Changing an existing tag's Tag Type is supported, but the tag stops updating until the change is actually deployed and the connector restarts with it — see the note under Retain Value. |
| Units | A free-text label (e.g. °C, rpm, mm) shown alongside the value for readers. Cosmetic only — it isn't validated or converted; entering the wrong units doesn't change the underlying value. |
| Address | Where this tag's value actually comes from (or goes to) on the device — the exact format depends entirely on the connector type (a PLC register number, a system variable path, an OPC node ID, etc.). Leave blank for a tag whose value is only ever set from inside Collect (see Internal above). |
| Type Attributes | A free-text field whose meaning depends entirely on the Tag Type — for the types that use it, it's a second, simpler configuration slot alongside Transform (below). For example, on a DecimalTag, entering 2 here rounds the value to 2 decimal places. Most tag types ignore it. See each Tag Type's own page for whether it's used and what it does. |
| Field | Description |
|---|---|
| Capture Changes Only | When checked, the tag only records/publishes a new reading when the value has actually changed (for numeric types, "changed" also respects Change Tolerance below). When unchecked, every single poll is recorded, even if the value is identical to the last one. |
| Publish Data | Master switch for sending this tag's value onward at all. The tag still updates and is visible inside Collect either way — this only controls whether anything gets published out. |
| Broker / AzureBroker | Which configured broker connection(s) this tag's value is actually sent to. Both, either, or neither can be selected; these only matter while Publish Data is checked. |
| Publish Interval | The minimum number of seconds between publishes to a broker, even if Capture Changes Only would otherwise publish sooner. 0 means no minimum — publish as soon as a change is captured. |
| Save Data With Aggregator | When checked, this tag's values are also captured by the SQL Aggregator connector for historical storage (if one is configured on this system). Independent of Publish Data — a tag can be aggregated without being published, or vice versa. |
| Retain Value | When checked, the tag's most recent reading(s) are saved to disk and restored automatically the next time Collect starts, so the tag doesn't come up empty after a restart or redeploy. Note: a retained value is only restored if the tag's Tag Type hasn't changed since it was saved — if you change a tag's type, its old retained value (saved under the old type) is discarded rather than restored, and you'll need a fresh reading from the device before it shows a value again. |
| Failsafe Value | The value returned for this tag when no real reading is available yet — most commonly right after Collect starts, before the first value has arrived from the device. |
| Initial Value | A starting value applied to the tag the moment it's created (when Collect starts or the config is deployed). Unlike a normal update, this doesn't count as a publish — it just gives the tag something sensible to show immediately rather than being empty until the first real read. |
| Change Tolerance | For numeric tag types, how far the value has to move to count as a "change" when Capture Changes Only is checked. A tolerance of 0 means any difference at all counts. Not applicable to tag types that compare values exactly (text, true/false, etc.) |
| Cache Size | How many past readings the tag keeps in memory. This history is what lets a tag answer "what was my value at (or just before) a given time" — a larger cache remembers further back, at the cost of a little extra memory per tag. |
| Type | Holds | Transform options | Type Attributes |
|---|---|---|---|
| BoolTag | True/false | NOT | Not used |
| IntTag | Whole number | SCALE | U — treat as unsigned |
| DecimalTag | Decimal number | SCALE | Decimal places, optionally combined with U |
| StringTag | Text | FORMAT, REMOVE, TRIM, TRIMSTART, TRIMEND, ASCII | Fixed length (pads/truncates) |
| CounterTag | Whole number, with running min/max | None | Not used |
| TimerTag | Elapsed running time | None | Not used |
| TimeSpanTag | A duration | None | Not used |
| DateTimeTag | A date and time | None | Not used |
| DataTag | Structured (JSON) data | JOLT transform spec | Not used |
| FileTag | File content | None | Not used |
| DiagnosticTag | System message log | None (system-managed) | Not used |
| ErrorTag | System error log | None (system-managed) | Not used |
Transform is a free-text field (not shown on every Details page — it only appears for tag types that support it) where you type the transform expression for that type, e.g. SCALE(0,4095,0,100). See each type's own page for its exact syntax and examples.
Type Attributes is a separate free-text field from Transform, also only meaningful for the tag types listed above — see each type's own page for its exact syntax.