Latest version:5.0.1 build 1126.November 28, 2025.
The Script Executefilter module extends our data loggers with a flexible scripting engine that can process, filter, and transform incoming data packets before export. It supports several scripting languages in the same environment. This allows you to implement custom business logic without changing the main application. The plugin works on any supported system and does not depend on 3rd-party applications.
This plugin is intended for technical professionals who need to perform custom calculations, modify parser variables, or implement conditional routing based on incoming data. Instead of writing a separate external application, you can embed the required logic directly inside the data logging chain. The result is a compact and maintainable configuration where parsing, transformation, and export steps are defined in one place.
Script Execute supports PascalScript, C++Script, JScript, and BasicScript. You can choose your preferred language in your configuration. The engine provides a wide range of programming language features such as variables, constants, functions, procedures, standard operators, and exception handling. It also offers type compatibility checking, access to standard helper classes, and the ability to keep values between executions.
The following scenario shows how Script Execute can filter incoming packets in Advanced Serial Data Logger and adjust parser variables. Assume a device sends periodic status lines through a serial port in this format:
2026-01-02 08:00:00;DEVICE01;TEMP=24.5;STATE=OK 2026-01-02 08:00:00;DEVICE01;TEMP=99.9;STATE=OVERHEAT 2026-01-02 08:00:00;DEVICE01;TEMP=32.1;STATE=OK
The data logger’s parserextracts the following variables:
DATE_TIME_STAMP = "2026-01-02 08:00:00" DEVICE_ID = "DEVICE01" TEMP_VALUE = 24.5 STATE_VALUE = "OK"
Now you want to implement a rule that:
You can select “Script Execute” as a filter after the parser. In PascalScript the script could look like this:
var temp: double; begin // Drop packet if state is not OK if GetVariable('STATE_VALUE') <> 'OK' then begin DiscardDataPacket(); exit; end; // Normalize temperature format temp := GetVariable('TEMP_VALUE'); SetVariable('TEMP_VALUE', FormatFloat('0.0', temp)); // Add new flag variable if temp > 30.0 then SetVariable('HIGH_TEMP_FLAG', '1') else SetVariable('HIGH_TEMP_FLAG', '0'); end.
With this script, the second line with STATE=OVERHEAT is completely removed from the further processing chain. The remaining packets receive a new “HIGH_TEMP_FLAG” variable that can be exported to a database , file, or OPC tag. This keeps the export data clean and standardized without changing the main logger configuration.
2026-01-02 08:00:00;DEVICE01;TEMP=24.5;STATE=OK;HIGH_TEMP_FLAG=0 2026-01-02 08:00:00;DEVICE01;TEMP=32.1;STATE=OK;HIGH_TEMP_FLAG=1
Script Execute adds a powerful scripting layer to our data loggers. It lets you implement complex rules, calculations, and responses without changing your devices or core logging configuration. By applying scripts to your data, you can create data processing solutions that are precisely tuned to your needs.
All plugins | Deadband | Expressions | Aggregator | Digital inputs filter | Script execute | Events generator | Redirect data | Redirecting data to a TCP server | Data timeout | Alarms Professional | Data Encode | Data From List | Failover | Summary statistics