The Application Generation Wizard provides a guided workflow for creating a SCADA application by guiding you through defining digital twin models, their hierarchy, variables, and data bindings to real devices.

In the SCADA/HMI architecture, Digital Twins act as the central data model that connects external devices, data processing, and visualization.

Controllers, sensors, and other external devices are connected to the platform via drivers and connectors. These devices provide raw data streams that are received by Iotellect SCADA/HMI.

This data is then mapped to Digital Twin variables using bindings. Digital Twins represent logical objects of the system (e.g., factories, areas, devices) and store their state in a structured and unified way.

HMI screens (see Creating HMIs) are built on top of Digital Twins and use their variables for visualization and control. Instead of interacting directly with devices, UI components read and write Digital Twin variables.

As a result:

  • external devices provide data

  • bindings map this data to Digital Twins

  • Digital Twins store and organize system state

  • HMI components visualize and control this state

The wizard is based on core platform entities such as models, their variables, bindings, and devices. The wizard organizes application configuration in a streamlined workflow, comprising the following steps:

Step 1 — Properties

Step 2 — Hierarchy

Step 3 — Connectivity

Step 4 — Launch

Step 1 — Properties

Create a new Application and define its main properties:

  • Name: Unique identifier of the application to be created.

  • Description: Short textual description of the application. Used as a display name in UI elements.

  • Comment: Extended description of the application. Intended for additional details.

Step 2 — Hierarchy

Define Hierarchy

Define the hierarchy of business objects and their digital twins (e.g., factory, charging station). Each row in the Configure Hierarchy table represents a Digital Twin Type (model template).
Digital Twins (instances) will be created later based on this hierarchy.

Add a row to the Configure Hierarchy table for each digital twin and configure it with the following properties:

  • Object/Twin Container Name: Context name where Digital Twin instances will be created (e.g., factories, areas).

  • Object/Twin Container Description: Human-readable name of the container.

  • Object/Twin Type Name: Internal identifier of the Digital Twin type (e.g., factory, area).

  • Object/Twin Type Description: Display name of the Digital Twin type.

  • Parent: Defines parent-child relationship.

  • Properties: Define properties for each Digital Twin (e.g., Voltage, Current).

  • Aggregate Properties: Collect data from child Digital Twins.

The Hierarchy Preview panel reflects the structure in real time.

Configure Properties

Define properties for each Digital Twin model (e.g., Voltage, Current). Properties (variables) are defined at the model level and inherited by all instances. The following properties are supported:

  • Name: Variable identifier.

  • Description: Human-readable description of the variable.

  • Format: Data type of the variable.

  • Writable: Indicates whether the variable can be modified externally.

  • History Saving: Indicates whether variable values are stored for historical/statistical processing.

  • Enable Emulation: Enables automatic value generation for the variable, which allows testing without real devices.

Configure Aggregated Properties

Define aggregated values based on data from child Digital Twins. Aggregated Properties allow collecting and calculating metrics (e.g., average, minimum, maximum) from lower-level twins in the hierarchy. The following properties are supported:

  • Description: Human-readable name or description of the aggregated property.

  • Source: Source Digital Twin type or context from which data is collected.

  • Property: Variable (property) from the source twins used for aggregation.

  • Field: Specific field within the property.

  • Average: Enables calculation of the average value across source twins.

  • Minimum: Enables calculation of the minimum value.

  • Maximum: Enables calculation of the maximum value.

  • Total: Enables calculation of the total (sum) of values.

Step 3 — Connectivity

Bind Digital Twin variables to external data sources. This step defines how device data is mapped to Digital Twin variables.

Before configuring bindings, devices must be created or available in the system in the Connections panel. These devices act as data sources for bindings and are referenced in the Bindings table. Devices created or available in this section are later selected in the Device/Source Reference Name field in the Bindings table.

Bind Digital Twin variables to external data sources (Device variables). This step defines how device data is mapped to Digital Twin variables.

The Connections section is used to connect real devices to the platform using supported drivers (e.g., MQTT, Kafka, HTTP, Virtual Device, etc.). These connections define how the platform receives data from external systems.

Twin Properties — displays Digital Twin variables and their current values for validation.

The following binding scenarios are supported:

In this scenario, data from a single device or data source is distributed across multiple Digital Twin instances.

The following data binding modes are supported:

Event Processing — Used when data is delivered via incoming events.

Periodic Query — Used when data is retrieved from the data source on a schedule.

In this scenario, multiple devices or data sources provide data to a single Digital Twin instance. This scenario does not use Event Processing or Periodic Query modes and is configured using direct variable mappings from multiple sources.

One Device/Source → Many Digital Twins

This scenario comprises Event Processing and Periodic Query options.

Event Processing

Use this mode when data is delivered via incoming events from a device or data source.

When an event is received, its data becomes available as a Default Data Table for further processing.

Configured expressions are evaluated against this data:

  • If the expression returns a scalar value, it is assigned directly to the target variable.

  • If the expression returns a table, it is mapped to the variable structure.

To configure event processing, add one or more bindings in the Bindings table and define the following parameters:

  • Twin Variable: Target Digital Twin variable to be updated.

  • Device/Source: Selected device or data source (e.g., MQTT, KAFKA). Typically, this device must be selected or created in the Connections panel before configuring bindings.

  • Device/Source Event: Event type generated by the source (e.g., Message from MQTT).

  • Condition Expression: Expression used to filter incoming data.

  • Value Expression: Expression defining how the value is extracted or calculated.

  • Twin Context Expression: Expression resolving the Digital Twin instance path. (e.g., users.admin.spaces.space1).
    Defines target Digital Twin instance. Creates missing twins only if parent exists and only if Twin Auto Creation checkbox is selected. Does not create full hierarchy chain.

  • Twin Auto Creation: Target Digital Twins are created only if the checkbox is selected.

Periodic Query

Periodic Query executes requests to the data source and processes results in the same way as event data, but initiated by the system on a schedule. The following parameters are supported:

  • Query Expression: Expression returning a Data Table from the source.

  • Value Expression: Defines how Query Expression results are mapped to variables. Multiple variables may be mapped in a single query.

Many Devices/Sources ↔ One Digital Twin

This scenario is used when a single Digital Twin aggregates or consumes data from multiple independent devices or data sources. Each binding defines how a specific device contributes data to the same Digital Twin instance by means of the following properties:

Device/Source Reference Name: Name of the variable that will store the reference to the device context used to retrieve data from the Device/Source Variable.

Test Device/Source: Selected device from the Connections panel (e.g., virtual).

Twin Variable: Target Digital Twin variable to be updated.

Device/Source Variable: Variable from the selected device used as a data source.

Value Conversion Expression: Expression used to transform or convert incoming values before assigning them to the digital Twin Variable. If left empty, the value will be assigned as is.

Apply Bindings

Apply Bindings button is used to validate and execute configured bindings for testing purposes.

It allows previewing results and identifying errors in the configuration. The results can be observed in the Twin Properties section. Variable values are updated in real time based on the logic defined in the Bindings table.

Events

Events section displays execution results of bindings in real time after Apply Bindings is executed.

It includes both successful data updates and error messages, allowing validation of binding logic.

Step 4 — Launch

After clicking Create Digital Twin models are created with the structure and bindings.

After launching, the system navigates to the application environment (e.g., scadaApplication dashboard), where the created application becomes available.

Create Instances and Validate

  • Create Digital Twin instances

Instances are created in the application tree under the defined hierarchy (e.g., users.%username).

Use the context menu (right-click) on a parent node and select Create.

  • Observe variable updates

Variable values can be monitored in the configuration view of created instances and are updated according to configured bindings.

Was this page helpful?