Extend solutions with Python, C# and VB.NET logic.
Reference → Scripts| Tutorial | How-to Guide | Reference
Links to Alarms Module tutorials, concepts, and how-to guides
On this page:
Scripts Module (Reference) provides automation and business logic capabilities through classes, tasks, expressions, and integrated development tools. It enables:
Scripts execute primarily server-side for web compatibility, with optional client-side execution for WPF-only deployments.
Table of Contents | |||||||
---|---|---|---|---|---|---|---|
|
|
→ Solution / Alarms / Items - tags and conditions to generate alarm. Include AlarmGroup for Ack/Log settings and AlarmArea for hierarchy.
→ Solution / Alarms / Groups - Collection of AlarmItems sharing properties such as AckRequired and LogEvents.
→ Solution / Alarms / Areas - Hierarchical grouping of AlarmGroups for better organization.
→ Solution / Alarms / Audit Trail - Logs events on Operation actions, and on selected system events.
Scripts Module configuration workflow
Action
Where
Comments
Manage ScriptClasses
Scripts / Classes
Create or Import you function Library. Learn more at Scripts Classes.
Manage ScriptTasks
Scripts / Tasks
Create or Import Tasks. Learn more at Scripts Tasks.
Manage ScriptExpressions
Scripts / Expressions
For simple event or time driven actions, use Expressions. Learn more at Scripts Expressions.
Manage Script References
Scripts / References.
If you code required their party libraries, include the references. Learn more at Scripts References.
The key concept to be aware of regarding the execution of the tasks and expressions defined in the Script Module is that they execute on the server computer.
Only the CodeBehind of the displays is executed on each client computer. The script classes can be consumed by both server and client stations.
Current solutions are prioritizing user interfaces that are portable, meaning the exact same drawing and display configuration can run as a WPF Windows Rich Client or as a web HTML5 page inside a browser. If you intend to run the graphical interface only on WPF Windows and not on web pages, it is possible to enable this in Solution / Settings to allow tasks and expressions to run on the client side.
For complex solutions or very large solutions, it's useful to get a deeper understanding of the Module execution process. Read more at Script Engine (Reference) if that is your case.
Section | Path | Purpose |
---|---|---|
Classes | Scripts → Classes | Reusable methods and functions |
Tasks | Scripts → Tasks | Event-driven automation logic |
Expressions | Scripts → Expressions | Simple calculations and method calls |
References | Scripts → References | External DLL integration |
Code Editor | Scripts → Code Editor | Integrated development environment |
Action | Where | Purpose |
---|---|---|
Create Classes | Scripts → Classes | Build reusable function libraries |
Define Tasks | Scripts → Tasks | Implement automation logic |
Add Expressions | Scripts → Expressions | Configure simple calculations |
Import References | Scripts → References | Add external assemblies |
Edit Code | Scripts → Code Editor | Write and debug scripts |
Default Configuration:
Web Compatibility:
Access script objects at runtime:
csharp
// Access Script Classes
var result = @Script.Class.ClassName.Method();
// Monitor Script Tasks
int count = @Script.Task.TaskName.ExecutionCount;
TimeSpan cpu = @Script.Task.TaskName.LastCPUTime;
For complex or large solutions requiring optimization: → See [Script Engine (Reference)] for deep technical details
→ [Script Classes (Reference)]
→ [Script Tasks (Reference)]
→ [Script Expressions (Reference)]
→ [Script References (Reference)]
→ [Code Editor (Reference)]
Build Errors:
Circular Dependencies:
Tasks Not Running:
Performance Issues:
DLL Not Loading:
Namespace Conflicts:
Breakpoints Not Hit:
Variable Inspection:
Excerpt Include | ||||||
---|---|---|---|---|---|---|
|
Page Tree | ||
---|---|---|
|
The Namespace Script is the entry point for all objects related to the Scripts module.
The Script.Class
object lists all configured tables and its runtime properties. The Script.Task
object lists all configured database connections and their runtime properties.
Examples:
Script Task Properties
Property
Type
Description
Script.Task.Task1.ExecutionCount
Integer
Number of times the Script Task <Task1> was executed.
Script.Task.Task1.LastCPUTime
TimeSpan
The Amount of CPU used the last time the Script Task Task1 was executed.
→ Read more about Objects and Namespaces.
The Scripts module may encounter some issues in its operation. Here are some common issues and their troubleshooting:
In this section: