Key Concepts
- ScriptTask: Script unit triggered by events or timers for automated execution
- ScriptClass: Reusable C#/VB.NET/Python class library used by scripts and displays
- ScriptExpression: Single-line expression for lightweight event-driven actions
- ScriptReference: External .NET assemblies referenced by scripts and displays
What It Does
The Scripts Module enables server-client programming and parallel execution through:
- Event-Driven Automation - Execute code in response to tag changes, alarms, or system events
- Time-Based Processing - Run tasks on schedules, intervals, or specific times
- Reusable Libraries - Create method collections for consistent calculations across the solution
- Expression Evaluation - Perform simple calculations and updates without full task overhead
- External Integration - Import third-party .NET assemblies and Python packages
- Multi-Threaded Execution - Run tasks in parallel for maximum performance
Configuration Workflow
Step | Action | Description |
---|
Create ScriptClasses | Build function libraries | Define reusable methods for your solution |
Create ScriptTasks | Implement business logic | Add data processing and automation code |
Create ScriptExpressions | Add simple actions | Single-line responses to events |
Add ScriptReferences | Include external libraries | Import DLLs for extended functionality |
Runtime Behavior
Execution Environment
The server creates dedicated processes with multi-threading to execute tasks and expressions based on configured triggers. Each process runs in isolated application domains for security and performance.
Client-Server Architecture
Scripts execute primarily server-side for consistency across all clients. Client-side execution available for WPF displays when web compatibility not required.
Performance Monitoring
Built-in diagnostics track execution time, CPU usage, and error states for each task, enabling optimization and troubleshooting.
Feature Highlights
- Multi-Language Support - C#, VB.NET, and Python 3 in a single solution
- Integrated Code Editor - IntelliSense, debugging, breakpoints, and step-through execution
- Server and Client Domains - Scripts execute globally (server) or locally (client)
- Flexible Triggers - Date, time, condition, tag change, or interval-based execution
- Native Object Access - Direct IntelliSense access to tags, datasets, alarms as .NET objects
- Python Integration - Configure any Python interpreter version per project
- Code Translation - Convert between C# and VB.NET automatically
- Exception Protection - Automatic error handling prevents script failures from affecting system
- Multi-Threaded Processing - Parallel task execution with thread pool management