Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Reverted from v. 61

Introduction to

the Scripts Module

Script module

The Scripts module allows you to write code for servers and clients in different languages Script module supports various programming languages, such as C#, VB.NET, Python, and JavaScript, enabling the creation of high-performance server-side and client-side scripts.

It offers a comprehensive set of features, including multi-threaded task execution, event-driven actions, creation of libraries for methods and classes, and integration with third-party libraries. The built-in code editor streamlines development with automated translation between C# and VB.NET and provides access to all .NET Framework classes available in Visual Studio. Furthermore, the Script module simplifies the development of solution distributed applications by using server or client domains and ensuring high performance through the compilation of custom code.

The Script module also allows users to extend graphics displays power by implementing Display Code Behind functions and provides debugging tools for quick identification and resolution of coding issues. 

On this page:

Table of Contents
maxLevel3stylenone


Purpose and Key Concepts

Below is a list of key concepts essential to understanding the Scripts ModuleThe Scripts module manages and executes user-defined scripts for automation and process control. It involves key concepts such as Script Tasks, Classes, Expressions, and References, which help create, manage, and interact with script-related objects.

Script Tasks

A Script Task is defines a code that executes in reaction to an event (trigger) or periodically at specified intervals. For example, you can create a Task to execute every second, or when any specific Tag in the Project has a new Value.

Script Classes

A Script Class is a library of functions and methods that you can consume on Script Tasks, Expressions , or from the Code Behind on the graphical Displays. Using The use of Scripts Classes allows a more efficient and clean organization of Project logic and calculations.

Script Expressions

A Script Expression allows When you need to execute one line of code after in a reaction to an event. Instead , instead of creating a Script Task, you can configure just one line at the Script Expressions table. For example, when one tag changes its value, and you want need to set another tag value, or call a Script Class, it is easier to define just the one - line Expression instead of a Task.

Scripts

Script References

A Script Reference is an external DLL References are external DLLs included for a script or display code compilation.

Scripts Functionality

Feature Highlights

The Alarms Module offers the following key features:

  • Multi-threaded task execution.
  • Event-driven actions.
  • Creation of libraries for methods and classes.
  • Integration with third-party libraries

    .


    Configuring the Script module

    Configuration Workflow

    Script module configuration workflow
    ActionWhere Comments

    Manage Class Scripts

    Scripts→ Classes. Learn more at Script Classes.


    Manage Task Scripts

    Scripts→ Task. Learn more at Script Tasks.


    Manage Expressions

    Scripts→ Expressions. Learn more at Script Expressions.


    Manage References

    Scripts→ References. Learn more at Script References.


    Track the module changes

    Scripts→ Monitor. Learn more at Scripts Monitor.



    Working with the Script module

    Runtime execution

    For a detailed understanding of the script execution process on the software framework, refer to the Scripts Runtime Execution and get insights into managing and optimizing scripts' performance.

    Monitoring the Script module

    The Scripts Monitor feature tracks and assesses script performance, providing crucial insights for optimizing your software platform. Dive into the Monitoring Scripts for an in-depth exploration of script monitoring techniques.

    Client-Server Programming

    To read more about client-server programming in the software framework context, please explore Client-Server Programming.

    Client-Server Data Security

    To ensure the security and integrity of your data within the software framework, explore Client-Server Data Security. This resource provides detailed information on safeguarding data exchanges between clients and servers, protecting your project from potential security risks.

    Leveraging Built-in Function Libraries

    The Script module provides several built-in classes and methods libraries that can greatly streamline your project development process. If you're interested in leveraging the powerful built-in function libraries of software framework, see Built-in Methods and Libraries for detailed documentation. 


    Troubleshooting and Best Practices

    Table of Contents
    maxLevel4
    minLevel3
    include#

    Troubleshooting and Common #Issues

    The Historian module may encounter some issues in its operation. Here are some common issues and their troubleshooting:

    Build Errors and Warnings: Make sure to check the 'BuildStatus' and 'BuildErrors' tabs to identify and address errors and warnings that arise during the build.

    Code Language: If you change the code language in the code editor, confirm that the code has been correctly converted to the selected language.

    Build Order: Ensure that the build order of the classes is set up correctly to avoid circular dependencies or initialization issues.

    Domain Selection: Ensure that the domain is selected correctly (Client or Server) based on the needs of your project.

    Expression Syntax: Check the syntax of the expressions, ensuring they comply with VB.Net or C# standards.

    Execution Settings: Ensure that the execution settings are correct, so that the expressions are executed as expected.

    Reference Issues: Make sure that all external references are configured correctly and that there are no compatibility issues or conflicts. Code Editor

    Syntax Errors: Check for syntax errors in the code. Use the 'Auto Format' feature to identify potential issues.

    Incremental Compilation Issues: Monitor the incremental compilation process to identify and resolve potential issues that may arise.

    Debugger Setup: Ensure that the debugger setup is correct to allow effective code debugging.

    Breakpoints and Watch Variables: Use breakpoints and watch variables effectively to identify and resolve issues.

    Best Practices and Recommendations

    Tasks

    Naming Convention: Use a coherent and descriptive naming convention to name the tasks.

    Task Domain: Select the appropriate domain for each task, considering whether the task is more suitable for client-side or server-side execution. 

    Classes

    Reusable Code: Promote code reuse through the creation of classes that encapsulate functionalities that can be reused in various parts of the project.

    Expressions

    Expression Optimization: Write optimized expressions to ensure efficient execution and to reduce resource usage.

    External Libaries 

    Library Management: Manage libraries and external components effectively to avoid conflicts and compatibility issues.


    Code Consistency: Maintain code consistency by following best practices and coding conventions. 

    Build Before Deployment: Always perform a build operation before deploying a project in a production environment to ensure that all scripts are correct and up to date.


    Script Runtime Attributes

    The Script namespace 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.


    ModuleScript properties

    Property

    Type

    Description

    Script.IsStarted

    Boolean

    Flag indicating if the module Dataset has started.

    Script.OpenStatusMessage

    String

    Message OK or error when initiating the module.

    See Namespaces Reference for the complete list of properties and available methods.



    In this section:

    Page Tree
    root@self
    spacesV10

    ...