You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Current »

New for 10.1.5 (draft preview). This is a preview of how the parent page will look in FrameworX 10.1.5 (planned April 2026). The parent page is the current 10.1.4 version. Content under review.

Define and manage tags in your UNS.

ReferenceModulesUNSUIAsset | Tags | UserTypes | Enumerations | Services | Monitor


UNS Tags (Reference) represent real-time variables and their associated historical records, providing a structured way to model process information by linking to physical devices, databases, or calculated values.

Tags in the Unified Namespace provide:

  • Real-time data representation
  • Historical record association
  • Device communication mapping
  • Hierarchical organization
  • Type-safe data handling
  • Array and template support

Tags form the foundation of the solution's data model, connecting field devices to visualization, logic, and storage.


Tag Types

Built-in Types

Type.NET TypeDescriptionRange
DigitalInt32Binary value0 or 1
IntegerInt32Whole numbers±2,147,483,647
LongInt64Extended integers64-bit signed
DoubleDoubleFloating pointIEEE 754 double
DecimalDecimalHigh precision28-29 significant digits
TextStringUnicode text2GB max
JsonStringJSON structured dataBuilt-in parsing
DateTimeDateTimeOffsetDate and timeYear 0001-9999
TimeSpanTimeSpanDurationDays to milliseconds
GuidGuidUnique identifier128-bit
DataTableDataTableIn-memory tableStructured data
ImageByte[]Binary contentAny size
TimerInt32Time patternsMultiple modes

Timer Types

ModeBehaviorUse Case
SquareWaveToggle 0/1 at intervalBlinking, heartbeat
PulseMomentary 0→1→0Triggers, events
DelayOffHold value then resetTOF timer
ComparerDaily scheduleTime-based control

Reference Type

Dynamic tag addressing:

// Set reference target
@Tag.Reference1.Link = @Tag.TankFarm/Tank1/Level.GetName();

// Use reference 
double level = @Tag.Reference1.Value;

Configuration Properties

PropertyDescriptionRequired
NameUnique tag identifierYes
TypeData type selectionYes
PathAsset tree locationNo
ArrayArray size (0 to N)No
StartValueInitial value at startupNo
ParametersType specific settingsNo
Min/MaxValue limitsNo
ScaleMin/MaxEngineering scaleNo
RetentiveValue persistenceNo
DomainServer/Client scopeNo
VisibilityExternal access levelNo
FormatDisplay formattingNo
UnitsEngineering unitsNo
EnumerationNumber to String (shows in Tag1.ValueAsString)No
DefaultSymbolSymbol used when dropping/pasting tags on displayNo
LabelsSemicolon-delimited alternative names. Imports from skos:altLabel, searchable via search_uns and runtime_search_uns. Unbounded text column (10.1.5+).No
SourceIriFull source IRI for the individual. External-system join key. Populated by the ontology importer, user-editable. Unbounded (10.1.5+).No
AttributesJSON column for ontology annotations not covered by the other columns (dcterms:*, alt-language labels keyed rdfs:label@pt, skos:note, owl:versionInfo, custom predicates). Runtime-mutable and retentive (10.1.5+).No
DescriptionDocumentation (1024 char)No

Ontology metadata columns (10.1.5+)

Tags in 10.1.5 carry three ontology columns alongside their real-time data: Labels, SourceIri, and Attributes. These columns populate from RDF/OWL individuals imported by the ontology importer and round-trip back through Export Tags → RDF / JSON.

  • Labels. Semicolon-delimited alternative names. Imports from skos:altLabel and skos:hiddenLabel. Searchable via search_uns (Designer) and runtime_search_uns (runtime) with one canonical scoring algorithm.
  • SourceIri. Full source IRI for the individual. External-system join key. Preserved on re-export, so round-trip is lossless.
  • Attributes. JSON column for ontology annotations not covered by other columns (dcterms:*, alt-language labels keyed rdfs:label@pt, skos:note, owl:versionInfo, custom predicates). Runtime-mutable and retentive. Use promote_retentive_attributes before export to roll runtime overlays back into the cold-start data.

See Industrial Ontology Integration How-to for the full model.


AI / MCP page action (10.1.5+)

When Designer is navigated to the Tags page, the following action is exposed via the designer_action MCP tool:

  • designer_action("export_graph", "rj"). Mirrors the Export Tags toolbar dropdown. Accepts format=json (FrameworX native, round-trips with the Import Tags wizard), format=rj (W3C RDF/JSON, default for graph stores like GraphDB / Stardog / Fuseki), or format=jsonld (falls back to rj in 10.1.5 with a warning, native emitter in 10.1.6). The exported file lands in the solution's Exchange folder.

The action is listed in the tabActions array returned by get_state() only when the Tags tab is active. See Export your UNS to RDF/OWL/GraphDB for the broader export reference.


Creating Tags

Method 1: Asset Tree

  1. Navigate to Unified Namespace → Asset Tree
  2. Right-click folder or click New Tag icon
  3. Enter tag name and properties

Method 2: Tags Grid

  1. Go to Unified Namespace → Tags
  2. Options:
    • Click New Item for dialog
    • Type directly in Name column
    • Paste from external source

Method 3: Import

  • Copy from another solution
  • Import from CSV files
  • Use Solution Import Tools
  • EngWrapper API

Tag Parameters, Type Specific Settings

Deadband

Limits value updates:

Absolute: +/- 5 units from last value
Percentage: 10% change required

EnumerationSet

Map values to text:

0 -> "Off"
1 -> "On"
2 -> "Auto"

Domain Configuration

DomainScopeUse Case
ServerGlobal across all clientsDevice data, shared values
ClientLocal to each sessionUser settings, local states

Visibility Levels

LevelExternal AccessUse Case
PrivateNoneInternal only
ProtectedRead-onlyMonitor only
PublicRead/WriteFull access

Affects: OPC UA Server, MQTT Broker, TcpDataAccess


Retentive Options

SettingSavesUse Case
NoneNothingTemporary values
ValueOnlyValue onlyOperator setpoints
PropertiesAll including valueComplete state
PropertiesOnlyAll except valueConfiguration

Storage: Dataset.DB.Retentive database


Format Strings

Numeric Formats

N0    -> 123        (no decimals)
N2    -> 123.45     (2 decimals)
C     -> $123.00    (currency)
P     -> 12.34%     (percentage)
X     -> 7B         (hexadecimal)
E     -> 1.23E+02   (scientific)

DateTime Formats

d     -> 3/15/2024  (short date)
T     -> 14:30:00   (long time)
yyyy-MM-dd HH:mm:ss -> 2024-03-15 14:30:00

Array Configuration

Array size N creates elements [0] to [N]:

Array = 5 creates:
Tag[0], Tag[1], Tag[2], Tag[3], Tag[4], Tag[5]
(6 elements total)

DataTable Tags

Using Queries

@Tag.DataTableTag = @Dataset.Query.MyQuery.SelectCommand();

Manual Population

@Tag.DataTableExample.StartBlockSet();
@Tag.DataTableExample[1].Column1 = value1;
@Tag.DataTableExample[2].Column2 = value2;
@Tag.DataTableExample.CommitBlockSet();

Runtime Attributes

Core Properties

PropertyTypeDescription
ValueTag TypeCurrent value
QualityIntegerOPC quality (0/64/192)
TimestampDateTimeOffsetLast change time

Quality Codes

  • 0: Bad quality
  • 64: Uncertain quality
  • 192: Good quality

Additional Configuration

The TagNames are frequently referenced in these other configuration Tables:

DevicesPoints

  • Node: Communication node
  • Address: PLC/device address
  • AccessType: Read/Write/ReadWrite

AlarmsItems

  • Condition: Trigger logic
  • Groups: Alarm categorization
  • Limits: Threshold values

HistorianTags

  • Table: Storage location
  • Deadband: Recording threshold
  • DeadbandType: Absolute/Percentage

Best Practices Checklist

  • Use meaningful names - Follow naming conventions
  • Set appropriate types - Match data characteristics
  • Configure retentive - Preserve critical values
  • Apply deadbands - Reduce unnecessary updates
  • Document tags - Use Description field
  • Organize in assets - Logical hierarchy
  • Set security - Control access levels

Troubleshooting

Tag not updating:

  • Check device communication
  • Verify Quality = 192
  • Review deadband settings
  • Confirm not disabled

Wrong value format:

  • Check Format string
  • Verify Units configuration
  • Review scale settings

Array issues:

  • Confirm index in range
  • Check array size setting
  • Verify element access

Retentive not working:

  • Check database connection
  • Verify retentive setting
  • Review database permissions
  • No labels