Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Complete reference of all FrameworX objects: what you can create, dependencies, and minimum configuration.

ReferencePlatform Modules Reference → Object Model Quick Reference


Overview

Complete reference of all FrameworX objects, aimed to assist programmers and AI LLM tools.

Table of Contents
maxLevel2
minLevel2
indent10px
excludeSteps
stylenone

Architecture Concepts

The Triple Mirror Pattern

The FrameworX object model follows a one-to-three mirror system where the same structure reflects across:

LayerDescription
Designer UIModule organization and navigation tree
SQLite DatabaseTable structure in .dbSLN solution files
Git/DevOpsJSON export structure for version control


Learning one structure teaches you all three.

Three-Level Hierarchy

All configurable objects follow a consistent hierarchy:

  • Module Container (or RunDBRoot)
    • Collection Table (plural naming, e.g., AlarmsGroups)
      • Object Instance (singular naming, e.g., AlarmGroup)

Naming Conventions

ContextFormatExample
Single objectSingularDatasetDB, DatasetQuery
Table (collection)PluralDatasetsDBs, DatasetsQueries
Runtime pathSingularDataset.Query.Query1

Designer ↔ Object ↔ Database: One-to-one mapping across Designer UI pages, object model classes, and SQLite tables in the solution file (.dbSLN).


Named Objects vs Configuration Rows

Named Objects have unique names within their namespace and appear in the Designer navigation tree where users can create new instances. Internally, named objects are stored as tokens for efficient referencing — the Designer UI displays friendly names, but solution files store tokenized references.

Configuration Rows are objects without unique name identifiers, configured in grid/table editors:

Object TypeParentDescription
DevicePointDevicesPointsIndividual point mappings within a Node
AlarmItemAlarmsItemsIndividual alarm configurations within a Group
HistorianTagHistorianHistorianTagsTag assignments within a Historian Table
ScriptExpressionScriptsExpressionsExpression-based calculations


Quick Navigation

Module

...

4 Pillars GroupObjects
UNSData FoundationAssetFolder, Tag, UserType, Enumeration, TagProvider

...

DevicesIndustrial OperationsProtocol, Channel, Node, Point, AccessType
AlarmsIndustrial OperationsAlarmsGroup, AlarmsItem, AlarmsArea
HistorianIndustrial OperationsStorageLocation, HistorianTable, HistorianTag
DatasetsBusinessDatasetDB, DatasetQuery, DatasetTable, DatasetFile
ReportsBusinessReportForm, WebData
ScriptsBusinessScriptTask, ScriptClass, ScriptExpression, ScriptReference
SecurityUISecurityUser, SecurityPermission, SecurityPolicy, SecuritySecret
DisplaysUIDisplay, Layout, Image, Symbol

UNS (Data Foundation)

The Unified Namespace holds all process variables and provides the central data layer for all modules.

Objects

ObjectTableRuntime PathPurpose
TagUnsTagsTag.{name}Process variable
UserTypeUserTypesData structure template
Enumeration

...

UserTypesNumber↔String mapping
TagProvider Service

...

UnsTagProvidersExternal data source connection

Pre-defined Objects

None — user creates all objects.

Tag — Minimum Configuration

PropertyRequiredDefaultNotes
NameNo{Type}{N}Recommended to define meaningful name
TypeYesBasic type (Integer, Double, Text, etc.) or UserType
PathNoRoot (empty)Folder location in hierarchy
DescriptionNoRecommended for real projects

Tag Path and Access

Path Column ValueFull Access Syntax
(empty)Tag.TagName
\Line1\Machine1Tag.Line1.Machine1.TagName

UserType vs Tag

UserTypes and Tags have nearly identical structure:

  • Tag has PATH column (instance in hierarchy)
  • UserType has no PATH (template for creating Tags)

When a Tag uses a UserType, members are accessed as: Tag.Motor1.Speed, Tag.Motor1.Status

TagProvider Services

Enable dynamic external data without pre-defining tags:

  1. Create TagProvider Service with connection credentials
  2. Attach to a node in the Asset Tree
  3. Children are queried directly from external source
  4. Access via Asset("path") syntax only

Unified Namespace Reference


Devices (Industrial Operations)

Connects to field devices and maps device data to Tags.

Objects

ObjectTableRuntime PathPurpose
ProtocolDevicesProtocols— (internal)Built-in communication driver
ChannelDevicesChannelsDevice.Channel.{name}Protocol instance + settings
NodeDevicesNodesDevice.Node.{name}Device address
PointDevicesPoints— (internal)Tag ↔ device address mapping
AccessTypeDevicesAccessTypesDevice.AccessType.{name}Read/write behavior

*Protocol is built-in, query only

Pre-defined Objects

ObjectPre-defined Values
ProtocolAll built-in (Modbus, ControlLogix, MQTT, OPC UA, etc.)
AccessTypeRead, Write, ReadWrite

Hierarchy

Protocol (built-in, select only)

...

  • Channel (protocol

...

  • +

...

  • settings)

...

    • Node (channel

...

    • +

...

    • device

...

    • address)

...

      • Point (tag + address)

Dependencies

To CreateRequires
ChannelProtocol selection
NodeExisting Channel
PointExisting Node + Tag (auto-creates if omitted) + Address
AccessTypeNothing (standalone)


Point — Minimum Configuration

PropertyRequiredNotes
NodeYesParent node
TagYesAuto-created if not specified
AddressYesProtocol-specific syntax
AccessTypeNoDefaults to Read

Devices Module Reference


Alarms (Industrial Operations)

Monitors Tags for alarm conditions and manages alarm events.

Objects

ObjectTableRuntime PathPurpose
AlarmsGroupAlarmsGroupsAlarm.Group.{name}Behavior settings
AlarmsItemAlarmsItemsAlarm.Item.{name}Alarm definition
AlarmsAreaAlarmsAreasAlarm.Area.{name}Hierarchy organization

Pre-defined Objects

ObjectPre-defined Values
AlarmsGroupCritical, Warning, AuditTrail

Dependencies

To CreateRequires
AlarmsGroupNothing (standalone)
AlarmsItemExisting Tag + Existing Group
AlarmsAreaNothing (standalone tree)

AlarmsItem — Minimum Configuration

PropertyRequiredNotes
TagYesTag to monitor
ConditionYesTrigger expression
MessageYesAlarm message text
GroupYesCan use pre-defined (Critical, Warning, AuditTrail)
AreaNoOptional hierarchy placement

Alarms Module Reference


Historian (Industrial Operations)

Records Tag values over time for historical analysis.

Objects

ObjectTableRuntime PathPurpose
StorageLocationHistorianStorageLocationsHistorian.StorageLocation.{name}Where data is saved
HistorianTable

...

HistorianHistorianTablesHistorian.Table.{name}Storage conditions
HistorianTag

...

HistorianHistorianTagsHistorian.Tag.{name}Tag to historize

Pre-defined Objects


ObjectPre-defined Values
StorageLocationDataset.DB.TagHistorian (default to SQLite database

...

)
HistorianTableTable1 (basic settings)

Hierarchy


Hierarchy


  • StorageLocation

...

  • (database

...

  • connection)

...

    • HistorianTable (storage

...

    • rules)

...

      • HistorianTag (which

...

      • tags)

Dependencies

To CreateRequires
StorageLocationNothing (standalone)
HistorianTableExisting StorageLocation
HistorianTagExisting Tag + Existing HistorianTable


HistorianTag — Minimum Configuration

PropertyRequiredNotes
TagYesTag to historize
HistorianTableYesCan use pre-defined Table1

Historian Module Reference


Datasets (Business)

Connects to SQL databases for queries, table operations, and file I/O.

Objects

ObjectTableRuntime PathPurpose
DatasetDBDatasetsDBsDataset.DB.{name}Database connection
DatasetQueryDatasetsQueriesDataset.Query.{name}SQL statement
DatasetTableDatasetsTablesDataset.Table.{name}Direct table mapping
DatasetFileDatasetsFilesDataset.File.{name}File I/O

Pre-defined Objects

ObjectPre-defined Values
DatasetDBTagHistorian, AlarmHistorian, RuntimeUsers, Retentive (all SQLite by default)

Dependencies

To CreateRequires
DatasetDBNothing (standalone)
DatasetQueryExisting DatasetDB
DatasetTableExisting DatasetDB
DatasetFileNothing (standalone, unrelated to DBs)

DatasetQuery — Minimum Configuration

PropertyRequiredNotes
DatasetDBYesCan use pre-defined
QueryYesSQL statement, supports {TagName} for runtime substitution

Datasets Module Reference


Reports (Business)

Generates documents and handles web data interchange.

Objects

ObjectTableRuntime PathPurpose
ReportFormReportsFormsReport.Form.{name}Document template
WebDataReportsWebDataReport.WebData.{name}JSON/XML/Text data object

Pre-defined Objects

None.

Dependencies

To CreateRequires
ReportFormNothing (references Tags in template)
WebDataNothing (standalone)

Reports Module Reference


Scripts (Business)

Custom code execution in C#, VB.NET, or Python.

Objects

ObjectTableRuntime PathPurpose
ScriptTaskScriptsTasksScript.Task.{name}Event/time triggered code
ScriptClassScriptsClassesScript.Class.{name}Reusable function library
ScriptExpressionScriptsExpressionsScript.Expression.{name}One-line auto-executing expression
ScriptReferenceScriptsReferencesScript.Reference.{name}External DLL reference

Pre-defined Objects

None.

Dependencies


To CreateRequires
ScriptTaskNothing (can use Classes and References)
ScriptClassNothing (can use References)
ScriptExpressionNothing (references Tags in expression)
ScriptReferenceNothing (standalone)

ScriptExpression Note

ScriptExpressions can auto-trigger when referenced Tags change value.

Scripts Module Reference


Security (UI)

Users, permissions, and access control.

Objects

ObjectTableRuntime PathPurpose
SecurityUserSecurityUsersSecurity.User.{name}User account
SecurityPermissionSecurityPermissionsSecurity.Permission.{name}Permission flags
SecurityPolicySecurityPoliciesSecurity.Policy.{name}Login/session rules
SecuritySecretSecuritySecretsSecurity.Secret.{name}Protected credentials

Pre-defined Objects

ObjectPre-defined Values
SecurityUserAdministrator, Guest, User
SecurityPermissionAdministrator, Guest, Maintenance, Engineering, Supervisor, Operator, User, Group8–Group24
SecurityPolicyDefault policy

Dependencies

To CreateRequires
SecurityUserExisting Permission(s) + Existing Policy
SecurityPermissionNothing (standalone)
SecurityPolicyNothing (standalone)
SecuritySecretNothing (standalone)

SecuritySecret

Encrypted storage for passwords used in Datasets (DB connections) and Devices (device connections).

Security Module Reference


Displays (UI)

Operator interface screens and layouts.

Objects

ObjectTableRuntime PathPurpose
DisplayDisplaysDisplay.{name}UI screen
LayoutLayoutsLayout.{name}Frame organization
ImageImagesImage.{name}Imported graphic
SymbolSymbolsSymbol.{name}Reusable component

Pre-defined Objects

ObjectPre-defined Values
Symbol~2000 in Product Library

Dependencies

To CreateRequires
DisplayNothing (standalone)
LayoutExisting Displays to place in frames
ImageExternal file to import
SymbolNothing (standalone)

Display Types

TypePurposeElements Allowed
CanvasProcess synoptics, fixed positioningAll elements + graphic primitives
DashboardResponsive grid layoutAll elements (no primitives)

Displays Module Reference

Display Controls Reference


Configuration Dialogs

These are built-in settings dialogs to the solution or specific modules, not

...

objects

...

to be created. 

DialogLocationPurpose
Solution SettingsSolutionGlobal solution configuration
Alarm Global SettingsAlarmsAlarm module defaults
Display Client SettingsDisplaysClient behavior defaults

Solution Categories

Solution categories are metadata information labels, created by the user, that be can applied to any object in the system. 



All Objects Summary


ModuleObjects
UNSTag, UserType, Enumeration, TagProvider Service
DevicesProtocol*, Channel, Node, Point, AccessType
AlarmsAlarmsGroup, AlarmsItem, AlarmsArea
HistorianStorageLocation, HistorianTable, HistorianTag
DatasetsDatasetDB, DatasetQuery, DatasetTable, DatasetFile
ReportsReportForm, WebData
ScriptsScriptTask, ScriptClass, ScriptExpression, ScriptReference
SecuritySecurityUser, SecurityPermission, SecurityPolicy, SecuritySecret
DisplaysDisplay, Layout, Image, Symbol



Runtime Namespace Reference

Syntax by Context


ContextSyntaxExample
Scripts / CodeBehind@ prefix required@Tag.Temperature.Value
Expressions / GridsDirect accessTag.Temperature.Value
Display BindingFiltered by typeTemperature (tags only)

Domain Separation


DomainScopeExamples
ServerGlobal, synchronized across all clients@Server.Date, Tag.*, Alarm.*, Device.*
ClientLocal to each client process@Client.Username, @Client.DisplayName

Even on a single computer, separate processes maintain this separation for security and performance.

Built-in Namespaces

Built-in Namespaces Reference


Objects with Custom Editors

The following objects have dedicated visual editors. Content is stored in hidden *Contents tables managed internally by the system:

ObjectEditor Type
DisplayCanvas Editor (XAML)
SymbolCanvas Editor (XAML)
ScriptTaskCode Editor
ScriptClassCode Editor
ReportFormReport Designer
WebDataWebData Editor
DatasetQuerySQL Query Editor



Tag Types Reference

Built-in Types

Type NameType ID.NET TypeRange/Notes
Digital151Int320 or 1
Integer152Int32±2,147,483,647
Double153Double±1.79×10³??
Text154StringUnicode, 2GB max
DateTime155DateTimeOffsetYear 0001-9999
Long156Int64±9.2×10¹?
Decimal157Decimal28-29 significant digits
TimeSpan158TimeSpanDays to milliseconds
Timer162Int32Multiple timer modes
Counter163Int32Up/down counting
DataTable164DataTableIn-memory table
Image165Byte[]Binary content
Guid166Guid128-bit unique ID
Json167StringJSON with built-in parsing
Reference170DynamicTag reference

UserType References

UserTypes are assigned IDs starting at 201:

  • First UserType created: ID 201
  • Second UserType: ID 202
  • And so on...

In JSON, reference a UserType with: "Type": 201


See Also