| Module | Tables/UI | Runtime NS | Description |
|---|---|---|---|
| Uns | UnsTags | Tag | |
| UnsagProviders | - | ||
| Alarms | AlarmsGrups | Alarm.Group.<name |
Comprehensive product knowledge, for AI integration builders and advanced users.
Platform | Installation | Solution | Modules | Controls | Code | Troubleshooting
...
This page provides a comprehensive view of the FrameworX platform architecture, covering every module, data model, syntax rule, and integration pattern. It is designed for AI assistants working with FrameworX MCP services, system integrators building complex solutions, and advanced users who want a single-page understanding of how all platform components connect.
For getting started, see [Quick Start Guide]. For module-specific tutorials, see [BUILD section]. This page is the architectural map — not a tutorial.
This page provides a comprehensive view of the FrameworX platform architecture, covering every module, data model, syntax rule, and integration pattern. It is designed for AI assistants working with FrameworX MCP services, system integrators building complex solutions, and advanced users who want a single-page understanding of how all platform components connect.
For getting started, see [Quick Start Guide]. For module-specific tutorials, see [BUILD section]. This page is the architectural map — not a tutorial.
...
The Solution Designer is the Windows-based configuration environment where solutions are built and tested. The Runtime Engine (TServer.exe) executes solutions on any supported platform. Operator interfaces run as Rich Clients (WPF desktop), Web Clients (WebAssembly via Blazor), or Mobile Clients. The Solution Manager SolutionCenter provides a visual launcher for selecting and starting solutions.
...
Everything in FrameworX is an object in a unified namespace. Configuration, runtime, and navigation are three views of the same data:
| Configuration Table | Runtime Namespace Path | What It Represents |
|---|---|---|
| UnsTags, row "Tank1/Level" | Tag.Tank1/Level | A process data point |
| AlarmsGroups, row "Critical" | Alarm.Group.Critical | An alarm behavior group |
| DevicesNodes, row "PLC1" | Device.Node.PLC1 | A connected field device |
| ScriptsTasks, row "Startup" | Script.Task.Startup | An automation script |
| DisplaysList, row "MainPage" | Display.MainPage | An operator screen |
When you create a row in a configuration table, it immediately becomes a runtime object accessible via its namespace path. There is no separate deployment or compilation step — the runtime reads directly from the solution database.
...
TagName is used by AlarmsItems, HistorianHistorianTags, and DevicesPoints. It binds configuration to an existing tag. Format: tag path only, like Machine1/Tag1 — no Tag. prefix, no leading slash.ObjectName is used by ScriptsExpressions. It binds a calculation to a namespace object. Format: full namespace path like Tag.Machine1/Level — requires the namespace prefix, no @, no .Value..
ObjectName is used by ScriptsExpressions. It binds a calculation to a namespace object. Format: full namespace path like Tag.Machine1/Level — requires the namespace prefix, no @, no .Value.
Key Columns: When using write_objects, tables with a Name field require only the name. Tables using TagName or ObjectName require both key columns to uniquely identify an object:
| Table | Key 1 | Key 2 | Example JSON |
|---|---|---|---|
| AlarmsItems | TagName | Condition | {"TagName": "Tank1/Level", "Condition": "1 (Hi)"} |
| DevicesPoints | TagName | Node | {"TagName": "Tank1/Level", "Node": "PLC1"} |
| HistorianHistorianTags | TagName | HistorianTable | {"TagName": "Tank1/Level", "HistorianTable": "Table1"} |
| ScriptsExpressions | ObjectName | Expression | {"ObjectName": "Tag.Tank1/Level", "Expression": "Tag.Input1 + Tag.Input2"} |
Singleton tables (SolutionSettings, AlarmsGlobalSettings, RuntimeStartup, DisplaysClientSettings) have no key column — they contain a single configuration row. RuntimeExecutionProfiles for AI will show only the differences between Development and Production profiles, directly on the Designer UI it has more options.
...
MainPage plays a dual role. It is the default display loaded into the Content region at startup, and it also serves as the solution preview image — the Solution Manager SolutionCenter shows whatever is rendered on MainPage as the solution thumbnail when selecting solutions to open.
...
SecuritySecrets stores credentials for external system authentication. Secret values are write-only and cannot be read back through any API.
SolutionCategories defines labels applied to any object in the solution. The predefined MCP category marks AI-
...
created objects — AI can only modify objects that have this label. That label is added automatically when document was created by AI. User can apply or remove it manually in any object.
Four singleton configuration tables contain global settings with a single configuration row each:
SolutionSettings contains global solution parameters. AlarmsGlobalSettings provides alarm module defaults. RuntimeStartup controls startup behavior and runtime options. RuntimeExecutionProfiles defines connection replacements between Development and Production profiles — for example, different server addresses per execution profile.
...
...
...
FrameworX uses a category label system to control which objects AI can modify through the MCP for Designer service. Objects created through MCP tools are automatically labeled for AI access. In , with the label MCP added to the Category of object. In new solutions created from templates, all predefined objects (MainPage, default alarm groups, predefined databases) are also labeled, giving AI full creative control from the start.
...
| Term | Definition |
|---|---|
| Solution | A FrameworX project stored as a .dbSLN file containing all configuration |
| Tag | A data element in the Unified Namespace — the atomic unit of real-time data |
| UserType (UDT) | A custom tag template that defines member tags and auto-updates instances |
| Point | A tag mapped to a physical device address for reading/writing field data |
| Channel | A protocol configuration defining how to communicate with a class of devices |
| Node | A specific device address within a channel |
| Display | An operator interface screen (Canvas for absolute layout, Dashboard for grid layout) |
| Symbol | A user-authored reusable graphic component with customizable appearance and behavior |
| WizardSymbol | A pre-built symbol (TANK, VALVE, PUMP, MOTOR, BLOWER) with easy customization |
| CodeBehind | C# or VB.NET code embedded in a display for event handling and custom actions |
| Layout | A screen region definition (Header, Footer, Menu, SubMenu, Content) for the running application |
| Hot Reload | Applying configuration changes to a running solution without restart |
| Execution Profile | Development (unrestricted) or Production (operational restrictions) mode |
| TagProvider | An external data source that dynamically populates the UNS with tags |
| Asset() | A function for dynamic access to UNS paths, essential for TagProvider data |
| SolutionCenter | The application for selecting, launching, and managing solutions |
| SolutionCategories | Object labels applied across the solution — the MCP label marks AI-created objects. The labels each object has are visible on the Column/Property Category of the object. |
...
Getting Started: [Quick Start Guide] — Build your first solution in 30 minutes
...