Engineering
Left spine: folder tree (default 320 px, resizable). Tag column + inspector. Live pane at the bottom (height resizable).
Folders
Name filter keeps matching folders and their ancestors open. Rename on the toolbar. Width localStorage vion.pane.folders.
Folder metadata.area / metadata.maintenance bake into tag alarms at compile time.
Tag
Name: [A-Za-z_][A-Za-z0-9_]* (1–64); otherwise tag.name.invalid.
Important behavior fields:
| Field | Meaning |
|---|---|
dataType | float64, int64, bool, string, datetime, … |
source / connectionId+point | Field source |
scale | raw → engineering |
displayDecimals | 0–8 display |
states[{value,label}] | bool/int64 labels |
alarm | Alarm limits |
| totalizer | accumulator; reset is operate-like |
CSV: …/export|import/tags.csv.
UDT / udtInstance
Type members expand to tags on the instance. Nested types are limited (single-level faceplate view).
Live pane
Runtime tags as table or cards; quality filter all/good/uncertain/bad. Format displayDecimals. Height vion.pane.live.
Inject
Engineer/admin: POST|DELETE /api/v1/tags/{id}/inject — hold / substitute (command token).
Operate
Select-before-operate: POST /commands/select → lease (~5 s) → POST /commands/operate (or operate-bulk 1–16).
- Inhibit / maintenance → 409
command.inhibited - Expected value mismatch → 409
command.unexpected - Range → 400
command.range VION_COMMAND_REASON_REQUIRED→ empty reason 400- Step-up: if
VION_COMMAND_STEP_UPis set,POST …/step-up
Totalizer
POST …/totalizer/reset. Persistence VION_TOTALIZER_PATH.