This guide helps diagnose and resolve common issues in FrameworX 10.1. Problems are organized by category with symptoms, likely causes, and step-by-step solutions. Use the diagnostic tools and procedures described here to quickly identify and fix issues in your solution.
Quick Diagnostics Checklist
Initial Verification
- Services running (TWebServices, TServer)
- Network connectivity verified
- Firewall ports open (10108, 3101, solution-specific)
- License validated (including Runtime Clients)
- Guest user permissions configured
- Database connection established
- Client access working
Diagnostic Flow
1. Identify symptoms
2. Check logs (Event Viewer, TraceLogs)
3. Run diagnostics (/SaveLog:3)
4. Apply solution
5. Verify fix
6. Document resolutionStartup Problems
Runtime Won't Start
Symptoms:
- Service fails to start
- Error message on startup
- Runtime crashes immediately
- No response from server
Diagnostics:
cmd
# Check service status
sc query "TStartup-<SolutionName>"
# Review Windows Event Log
eventvwr.msc
# Check startup log
type "C:\Users\Public\Documents\FrameworX\TraceLogs\*.log"Common Causes and Solutions:
| Cause | Solution |
|---|---|
| Database connection failure | Verify connection string, check SQL Server is running |
| Port already in use | Change port or stop conflicting application |
| Missing license | Install valid license file |
| Corrupted solution | Restore from backup or repair database |
| Insufficient permissions | Run as administrator or check service account |
| Missing dependencies | Install .NET Framework and VC++ redistributables |
Detailed Resolution Steps:
- Check Database Connection
- Test connection string in Designer
- Verify SQL Server TCP/IP is enabled
- Check firewall rules for port 1433
- Test with SQL Management Studio
- Resolve Port Conflicts
cmd
netstat -ano | findstr :3101 tasklist | findstr [PID] - Verify License
- Check Runtime → License tab
- Ensure license is active
- Verify expiration date
Designer Won't Open
Symptoms:
- Designer crashes on launch
- Blank screen or frozen interface
- Error loading solution
- Missing menus or toolbars
Resolution Matrix:
| Error Message | Cause | Fix |
|---|---|---|
| "License not found" | No development license | Install development or combined license |
| "Solution is locked" | Another user editing | Check lock owner, force unlock if needed |
| "Out of memory" | Large solution | Increase memory, close other applications |
| "Failed to load module" | Corrupted installation | Repair or reinstall FrameworX |
Connection Issues
Device Communication Failures
Symptoms:
- Tags showing bad quality
- No data from devices
- Intermittent communication
- High error counts
Diagnostic Steps:
- Check Device Status
- Designer → Devices → Runtime Status
- Review error counts and last response time
- Test Communication
cmd
ping [device-ip] telnet [device-ip] [port] - Review Configuration
- Verify IP address and port
- Check device addressing
- Confirm protocol settings
Common Issues by Protocol:
| Protocol | Common Issue | Solution |
|---|---|---|
| Modbus TCP | Wrong unit ID | Verify slave address (often 1 or 255) |
| EtherNet/IP | Wrong slot | Check processor slot number |
| OPC UA | Certificate error | Accept server certificate |
| MQTT | Authentication | Verify username/password |
| BACnet | Wrong device ID | Scan network for devices |
Web Client Connection Checklist
1. Verify Server Process
cmd
# Check if TServer.exe is running
tasklist | findstr TServer
# Verify port (default 3101)
netstat -aon | findstr :31012. Check Guest User Permissions
Navigate to Security → Permissions:
- Verify GUEST user has "CLIENT START" or unrestricted access
- Guest user should be in GUEST group by default
3. Verify License
Runtime → License tab:
- Check "Runtime Web Clients" ≥ 1
- Verify license is active
4. Test Local Connection First
http://localhost:3101/html5
http://127.0.0.1:3101/smartclient5. Network Diagnostics
cmd
# Test connectivity
ping server-ip
# Test port
telnet server-ip 3101
# Trace route
tracert server-ip
# Check firewall
netsh advfirewall firewall show rule name=all | findstr 3101Smart Client Issues
Microsoft Blocks Download
Symptom: "Not a verified Microsoft application" warning
Solution:
- Windows Settings → Apps & features
- Under "Choose where to get apps"
- Change from "Microsoft Store only" to "Anywhere"
FIPS Compliance Error
Solution:
- Run
gpedit.mscas Administrator - Computer Configuration → Windows Settings → Security Settings → Local Policies → Security Options
- Set "System Cryptography: Use FIPS compliant algorithms" to Disabled
For Windows 10 Home (no gpedit.msc):
batch
@echo off
pushd "%~dp0"
dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >List.txt
dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Package~3*.mum >>List.txt
for /f %%i in ('findstr /i . List.txt 2^>nul') do dism /online /norestart /add-package:"C:\Windows\servicing\Packages\%%i"
pausePerformance Issues
High CPU Usage
Symptoms:
- CPU constantly above 80%
- System sluggish
- Client updates slow
- Delays in processing
Performance Analysis:
powershell
# Monitor process
Get-Process TStartup, TServer, TWebServices | Select Name, CPU, @{n='RAM(MB)';e={$_.WS/1MB}}
# Check thread count
Get-Process TServer | Select Threads, HandlesCommon Causes:
| Component | Cause | Solution |
|---|---|---|
| Scripts | Infinite loops | Review script logic, add delays |
| Devices | Too fast polling | Increase scan intervals |
| Expressions | Complex calculations | Simplify or use scripts |
| Database | Inefficient queries | Optimize SQL, add indexes |
| Graphics | Heavy animations | Reduce animation complexity |
Memory Leaks
Symptoms:
- Memory usage growing continuously
- Out of memory errors
- Performance degradation over time
Common Memory Issues:
| Source | Problem | Fix |
|---|---|---|
| Scripts | Objects not disposed | Implement using/Dispose patterns |
| Arrays | Growing without limit | Clear or limit array size |
| Events | Handlers not removed | Unsubscribe from events |
| Cache | No expiration | Implement cache timeout |
| Logs | Unlimited growth | Set max log size |
Performance Baselines
| Metric | Good | Warning | Critical |
|---|---|---|---|
| CPU Usage | <50% | 50-80% | >80% |
| Memory Usage | <60% | 60-85% | >85% |
| Disk Queue | <2 | 2-5 | >5 |
| Network Usage | <50% | 50-80% | >80% |
| Response Time | <100ms | 100-500ms | >500ms |
Data Issues
Tags Not Updating
Diagnostic Flow:
Check Device Communication
↓ OK
Check Point Mapping
↓ OK
Check Tag Configuration
↓ OK
Check Security Permissions
↓ OK
Check Runtime StatusTag Diagnostics:
- Use Property Watch to monitor value, quality, timestamp
- Enable Tag Trace: Designer → Tools → Diagnostics → Tag Trace
Historian Data Gaps
| Issue | Check | Solution |
|---|---|---|
| No data stored | Collection enabled? | Enable historian for tags |
| Gaps in data | Buffer overflow? | Increase buffer size |
| Wrong values | Compression settings? | Adjust deadband |
| Slow queries | Missing indexes? | Optimize database |
| Storage full | Retention policy? | Archive old data |
Alarm Issues
Alarm Flooding
Identify Chattering Alarms:
sql
SELECT Tag, COUNT(*) as Count
FROM AlarmHistory
WHERE Timestamp > DATEADD(hour, -1, GETDATE())
GROUP BY Tag
ORDER BY Count DESCRemediation:
- Add deadband to analog alarms
- Increase delay timers
- Implement alarm shelving
- Filter nuisance alarms
Notification Issues
Email Troubleshooting:
- Test SMTP: Designer → Alarms → Notification → Test Email
- Verify:
- SMTP server address
- Port (25, 587, 465)
- Authentication credentials
- TLS/SSL settings
- From address validity
Error Code Reference
Runtime Errors (FX-1xxx)
| Code | Message | Cause | Solution |
|---|---|---|---|
| FX-1001 | Database connection failed | Can't reach database | Check connection string |
| FX-1002 | License expired | Time-limited license | Renew license |
| FX-1003 | Port already in use | Port conflict | Change port or stop application |
| FX-1004 | Insufficient memory | Out of RAM | Increase memory |
| FX-1005 | Module load failed | Missing dependency | Reinstall |
Communication Errors (FX-2xxx)
| Code | Message | Cause | Solution |
|---|---|---|---|
| FX-2001 | Device timeout | No response | Check network and device |
| FX-2002 | Invalid response | Protocol mismatch | Verify protocol settings |
| FX-2003 | Connection refused | Device rejecting | Check device config |
| FX-2004 | Authentication failed | Wrong credentials | Verify username/password |
| FX-2005 | Certificate error | Invalid cert | Update certificates |
Database Errors (FX-3xxx)
| Code | Message | Cause | Solution |
|---|---|---|---|
| FX-3001 | Table not found | Missing table | Run database update |
| FX-3002 | Constraint violation | Duplicate key | Check duplicates |
| FX-3003 | Deadlock detected | Contention | Retry operation |
| FX-3004 | Timeout expired | Slow query | Optimize or increase timeout |
| FX-3005 | Disk full | No space | Free disk space |
Diagnostic Tools
Built-in Diagnostics
Runtime Information Monitor
- Access: Solution Center → Tools → Runtime Info
- Shows: Module status, memory, threads, connections
Communication Trace
- Access: Designer → Tools → Communication Trace
- Shows: Protocol messages, timing, errors
Log Analyzer
- Access: Solution Center → Tools → Log Analyzer
- Features: Filter by severity, search, export
Enable Verbose Logging
cmd
TStartup.exe /Solution:"C:\Solutions\MySolution.dbsln"
/SaveLog:3
/AutoRunDiagnostics:30
/LogDeviceWriteStartupExternal Tools
powershell
# Check service status
Get-Service -Name "TStartup-*", "TWebServices", "FrameworX*"
# Monitor process
Get-Process TStartup, TServer, TWebServices | Select CPU, WS, Handles
# Check network connections
Get-NetTCPConnection -LocalPort 3101
# Review event logs
Get-EventLog -LogName Application -Source "TStartup*" -Newest 50Recovery Procedures
Solution File Backup and Restore
A solution is a single SQLite file with the .dbsln extension. To back it up, copy the file while Designer and the runtime are closed, or use Export ZIP on the Solution Export page (see Solution Export Reference). To restore, close Designer and the runtime, then replace the file with the copy.
To check a solution file for damage, run the SQLite integrity check on a copy of the file:
sqlite3 "C:\Backup\MySolution.dbsln" "PRAGMA integrity_check;"Historian and alarm data kept on SQL Server or another external database are backed up and repaired with that database server's own tools, on the database the solution's storage location points to.
Solution Recovery
- Close Designer and the runtime.
- Restore the latest copy of the
.dbslnfile, or the solution from the latest ZIP export. - If the solution is tracked with Git export, its JSON files hold the configuration. See Git Integration and Export Reference.
- Open the restored solution in Designer and test it before returning it to production.
Start with Fewer Modules
When the runtime fails during startup, isolate the module that causes it. In Designer, open Runtime → Startup, clear the modules you suspect under Startup Modules on the profile you start, and start the runtime. Turn the modules back on one at a time to find the one that fails. See Runtime Startup Reference.
Preventive Maintenance
Daily Checks
- Review error logs
- Check device status
- Monitor performance
- Verify backups
Weekly Tasks
- Archive logs
- Review alarm statistics
- Check disk space
- Test redundancy
Monthly Maintenance
- Update software
- Optimize databases
- Review security logs
- Performance analysis
Getting Help
Before Contacting Support
- Document the issue (exact errors, steps to reproduce)
- Gather diagnostics (logs, system specs)
- Try standard remedies
Support Resources
- Documentation: docs.frameworkx.com
- Knowledge Base: Search error codes
- Community Forum: Share with other users
- Technical Support: Include diagnostic package
In this section...