Skip to content

The six tag kinds

Where a tag takes its value from is decided by its kind. There are six, and the list is fixed. You choose the kind when you create the tag, under Kind; it is fixed from then on.

Kind The value is The page says
Memory tag a value held here set by hand
Query tag the result of a query over your operational data the database
Connector tag what a machine reports over a connection a connection
Record tag a record, or one field of it the database
Script tag the result of a script computed here
Timer tag the time, on a fixed interval the clock

Memory tag holds a value and nothing else: Held here and nowhere else. Nothing outside sets it. Good for a setpoint, a switch, a list that several masks read.

Query tag computes over many records — a shift’s quantities, a key figure, a trend. You write the query yourself in SQL or let the Builder produce it. A query tag may only read.

Connector tag hangs off a connection, today MQTT or TCP. It has a Direction — reading, writing, or both (see Writing values). Its remaining fields — for MQTT the topic — come from the connector. If one of them does not fit what the connector expects, Save still saves the tag and lists a warning under the fields. The same happens when someone else gave the tag its connector first: the tag keeps that connector, and the warning names it — check that your fields fit it.

Record tag has two Levels, and the difference matters:

  • The whole record type — Reading gives the last record; writing appends one. This is the level a capture mask submits to.
  • One field of it — Reading gives the last value of that field. Writing is refused - the record type owns the value.

Script tag computes on read. It can also carry a conversion in both directions: the board shows bar, the machine speaks pascal, and one tag sits between them instead of two plus a script. A script that acts on a trigger is a different thing and lives under Scripts — a tag is not a button.

The editor on this page is the same one the Scripts page has. Everything TrakState offers a script lives under one name, system. — type it and the dot shows the whole list, so you never have to know a name in advance. Insert puts a runnable line at the cursor, and inside the quotes of system.tag.read("…") your own tag paths are offered. A new script tag opens with a three-line starting point rather than an empty box; it is not saved until you save it, and until then the tag reads uncertain. The full list is under Scripts → The script interface.

Timer tag ticks. Ticks every sets the interval: Between 250 ms and one day. Everything bound to this tag recomputes on each tick. Under Value you choose between Readable instant and Milliseconds (for arithmetic). The interval does not change what is read — it decides when a change is announced.

New tag asks for a Kind and a Tag (dotted path) — nothing more. The dialog says so itself: Everything else - the source, the value, the interval - is set on the tag’s own page. After creating it, that is where you land.

A tag with no source set is a valid state. It then reads Uncertain — the honest answer to “what is this” while nobody has said what it reads. Only the timer tag arrives with a default of five seconds, because a clock with no interval is not a clock.