Runtime Execution Profiles (Reference)
Manage database connections and device nodes for different environments, automating configuration changes between development, validation, and production stages.
Access: Runtime → Execution Profiles
Profile Overview
Execution Profiles eliminate manual configuration changes when moving solutions between environments:
| Profile | Purpose | Typical Use |
|---|---|---|
| Production | No replacements | Live system |
| Development | Dev connections | Testing/debugging |
| Validation | Test environment | QA/staging |
| Custom | User-defined | Lab/customer site |
Production profile uses solution's main configuration. Other profiles apply replacements at runtime.
Configuration Interface
Profile Settings
For each profile (Development/Validation/Custom):
| Setting | Function |
|---|---|
| Enable Profile Settings | Activate this profile |
| Set ReadOnly on Modules | Prevent modifications |
| On Startup Replace Connections | Define replacements |
Read-Only Modules
Select modules to protect from changes:
- Tags
- Devices
- Alarms
- Scripts
- Displays
AI Runtime-Write Gate
Each profile carries a per-profile gate that controls whether the DesignerMCP set_object_value tool is allowed to drive runtime values (Tag.* and other Object Model paths) under that profile. The tool is the AI authoring counterpart to a Script writing into a tag — same write semantics (eRunEvent.Changed: equal-write is silent), same kernel coercion, same downstream effects on subscribers (Scripts on Tag.Changed, Alarms watching the value, Historian on-change samplers, Device output handlers).
When a profile blocks AI runtime writes, the tool refuses with errorCode AI_OBJECT_WRITE_DISABLED and a structured payload pointing to this column — the AI surfaces the exact "uncheck the AIWriteReadOnly flag on this profile” guidance to the user.
| Profile | Default | Rationale |
|---|---|---|
| Production | Blocked | Customer install never exposes AI-driven runtime writes by default. Production profile is the safe baseline. |
| Development | Allowed | Engineer-sandbox default. DesignerMCP sessions are profile-locked to Development; the AI authoring loop sees the tool working out of the box. |
| Validation | Blocked | QA/staging is treated like Production for AI-write safety. Engineer opts in per solution by unchecking the flag. |
| Custom | Blocked | Lab / customer / training profile defaults to safe. Engineer opts in per solution as needed. |
The flag has the same polarity as the Read-Only Modules family above — checked means blocked, unchecked means allowed. Partner integrations that write tags via the WebAPI use a separate JWT-scoped gate model (see Runtime API reference) and are unaffected by this column.
Connection Replacement
Replacement Table Columns
| Column | Description | Example |
|---|---|---|
| ReplaceObject | Object to replace | DB_Production |
| Replace | Enable replacement | True/False |
| TableType | Configuration table | DatasetsDBs |
| ServerIP | New server address | 192.168.1.100 |
| ReplaceConnection | New connection string | Full connection |
| DateCreated | Entry creation | Timestamp |
| DateModified | Last change | Timestamp |
Supported Replacements
| Type | Table | Use Case |
|---|---|---|
| Database | DatasetsDBs | Different SQL servers |
| Device Node | DevicesNodes | Different PLCs |
| Historian | HistorianStorageLocation | Different storage |
| TagProvider | UnsTagProviders | Different sources |
Using Profiles
In Designer
- Go to Runtime → Startup
- Select Execution Profile
- Run solution
- Profile replacements apply automatically
Command Line
bash
# Development
TStartup.exe /solution:"solution.dbsln" /profile:1
# Validation
TStartup.exe /solution:"solution.dbsln" /profile:2
# Custom
TStartup.exe /solution:"solution.dbsln" /profile:3Windows Service Configuration
Running Profiles as Service
AutoStart is Production-only by default. To run other profiles:
- Enable AutoStart in Production profile
- Edit Registry Key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TStartup-<SolutionName>- Modify ImagePath:
# Original (Production)
TStartupService.exe /solution:"path\solution.dbsln" /port1:3101
# Modified (Development)
TStartupService.exe /solution:"path\solution.dbsln" /profile:1 /port1:3201Profile Index Values
| Profile | Command Parameter |
|---|---|
| Production | (none) |
| Development | /profile:1 |
| Validation | /profile:2 |
| Custom | /profile:3 |
Typical Configurations
Development Profile
Common replacements:
- Local test database
- Simulation devices
- Debug file paths
- Test email server
Validation Profile
Common replacements:
- Staging database
- Test PLCs
- QA file shares
- Test notifications
Custom Profile
Use cases:
- Laboratory setup
- Customer demo
- Training environment
- Pilot installation
Best Practices
Profile Design
DO:
- Keep Production unchanged
- Document all replacements
- Test profile switching
- Use meaningful names
DON'T:
- Modify Production directly
- Mix environment data
- Skip validation testing
- Use production credentials
Security Considerations
- Never store production passwords in profiles
- Use environment-specific credentials
- Limit profile access
- Audit profile changes
- Leave AI Runtime-Write blocked on Production / Validation / Custom unless an engineer has explicitly opted in for an authoring session
Verification
Check Active Profile
Monitor shows current profile:
- Info.ProfileName property
- Runtime System Monitor page
- Client status bar
Verify Replacements
Confirm replacements applied:
- Check connection strings
- Test device communication
- Verify database access
- Monitor data flow
Troubleshooting
| Issue | Cause | Solution |
|---|---|---|
| Profile not switching | Not enabled | Enable profile settings |
| Connections unchanged | Replace unchecked | Check replacement flag |
| Service wrong profile | Registry not updated | Edit ImagePath |
| Port conflicts | Same port used | Change profile ports |
AI set_object_value refuses with AI_OBJECT_WRITE_DISABLED | AI Runtime-Write Gate is blocked on the active profile | Open Runtime → Execution Profiles, select the active profile row, uncheck the AI runtime-write flag (Development is unchecked by default; Production / Validation / Custom ship checked). |
In this section...