Variables are the core data elements used throughout EnvisionSCADA. They represent live process values, internal application values, client-side runtime state, and system-generated information.
Variables are used in pages, alarms, events, schedules, actions, scripts, APIs, historian logging, and gateway services. Because of this, understanding the variable naming format is essential when configuring or troubleshooting a project.
EnvisionSCADA supports four main variable groups: device variables, local variables, client variables, and system variables. Each group has its own purpose and runtime naming convention.
Variable Types
The following variable types are available at runtime.
| Variable Type | Runtime Name Format | Description |
|---|---|---|
| Device variable | DeviceName.VariableName | Variable linked to a configured driver device such as Modbus TCP, OPC UA, MQTT, Ethernet/IP, DNP3, ICMP, or Kafka-linked driver variables. |
| Local variable | LocalVariables.VariableName | Project variable stored locally inside EnvisionSCADA without an external device connection. |
| Client variable | client.VariableName | Browser-side runtime variable used by the current client session and page behavior. |
| System variable | SYSTEM.VariableName | Read-only or system-generated runtime information provided by EnvisionSCADA. |
No rows match the filter.
Device Variables
Device variables are the process values configured under a device driver page. They represent live values from PLCs, RTUs, field devices, protocols, and external systems.
The runtime reference format is DeviceName.VariableName. For example, a variable configured on a device named PLC1 with a variable name Pump1_Speed is referenced as PLC1.Pump1_Speed.
Device variables can include metadata such as units, scaling, historian settings, deadband, sample group, user groups, recipes, Modbus gateway address, OPC UA exposure, and write permissions depending on the driver type.
Local Variables
Local variables are internal project variables stored inside EnvisionSCADA. They are useful for calculations, intermediate states, script state memory, recipe support, and values that do not come directly from an external device.
The runtime reference format is LocalVariables.VariableName.
Local variables support the same general runtime usage as device variables. They can be displayed on pages, written by actions, historized, used in alarms and events, and accessed by scripts and schedules.
Client Variables
Client variables exist only in the active browser client. They are used for page interaction, popup state, embedded viewers, client-side language selection, and other runtime UI behavior.
The runtime reference format is client.VariableName. Client variables are handled directly in the browser and are not written to the server-side device variable dictionary.
Client variables are typically used in page scripts and object actions where local client-side state is required.
| Client Variable | Description |
|---|---|
| client.LocalDate | Current client-side local date. |
| client.LocalTime | Current client-side local time. |
| client.SelectedLanguage | Selected client language name or display value used by the runtime. |
| client.SelectedLanguageCode | Selected client language code. |
| client.PageScale | Current client page zoom or scale state. |
| client.ViewportWidth | Width of the browser viewport in pixels. Updated on every window resize, so a Visibility expression such as client.ViewportWidth >= 1900 acts as a responsive breakpoint (for example a full navigation bar on full HD and wider, a Menu button below it). |
| client.ViewportHeight | Height of the browser viewport in pixels. Updated on every window resize. |
| client.PageLayer | Current client page layer state. |
| client.LayerX | Client-side layer-related runtime state. |
| client.AlarmBanner_... | Client-side Alarm Banner state variables created per banner object instance. |
No rows match the filter.
System Variables
System variables are generated by EnvisionSCADA and provide runtime information about the current user session, server state, licensing, redundancy, historian, metrics, alarms, events, schedules, and service execution times.
The runtime reference format is SYSTEM.VariableName.
Some system variables are fixed names, while others use a prefix followed by a dynamic suffix such as a severity number, schedule name, event name, or alarm name.
| System Variable | Description |
|---|---|
| SYSTEM.BuildVersion | Current EnvisionSCADA build version. |
| SYSTEM.CurrentPage | Current runtime page. |
| SYSTEM.PageLibraryPath | Library path of the current page. |
| SYSTEM.PageNextAvailable | Indicates whether forward page navigation is available. |
| SYSTEM.PagePreviousAvailable | Indicates whether backward page navigation is available. |
| SYSTEM.UserName | Current logged-in user name. |
| SYSTEM.UserGroups | Current logged-in user groups. |
| SYSTEM.DefaultLanguage | System default language. |
| SYSTEM.SessionTimeout | Configured session timeout for the current user. |
| SYSTEM.SessionTimeoutTimer | Current elapsed session timeout timer for the user session. |
| SYSTEM.ActiveUsers | Information about active users. |
| SYSTEM.ServerDate | Current server date. |
| SYSTEM.ServerTime | Current server time. |
| SYSTEM.AuthorizationCode | Current license authorization code. |
| SYSTEM.LicenseStatus | Current license state such as licensed, demo, or unlicensed. |
| SYSTEM.DemoCounter | Remaining demo counter value. |
| SYSTEM.DemoResetTime | Demo reset timing information. |
| SYSTEM.LicenseExpiry | Expires On date of a Pilot License, as yyyy-MM-dd. Empty for a license without an Expires On date. |
| SYSTEM.LicenseDaysLeft | Whole days until the Expires On date of a Pilot License, 0 from that date on. Empty for a license without an Expires On date. |
| SYSTEM.TotalAlarms | Total alarm count. |
| SYSTEM.TotalAlarms_Severity1 ... SYSTEM.TotalAlarms_Severity4 | Alarm counts per severity. |
| SYSTEM.TotalEvents | Total event count. |
| SYSTEM.AlarmCount_... | Dynamic alarm count variables created per alarm grouping or context. |
| SYSTEM.EventInfo_... | Dynamic event information variables created per event context. |
| SYSTEM.ScheduleInfo_... | Dynamic schedule execution status per schedule name. |
| SYSTEM.ScheduleInfoReset_... | Dynamic schedule reset status per schedule name. |
| SYSTEM.MetricsComputerName | Computer name of the server. |
| SYSTEM.MetricsManufacturer | Server hardware manufacturer. |
| SYSTEM.MetricsOperatingSystem | Operating system name. |
| SYSTEM.MetricsOperatingSystemVersion | Operating system version. |
| SYSTEM.MetricsFreeRAM | Free RAM. |
| SYSTEM.MetricsUsedRAM | Used RAM. |
| SYSTEM.MetricsTotalRAM | Total RAM. |
| SYSTEM.MetricsPercentageUsedRAM | Percentage of used RAM. |
| SYSTEM.MetricsPercentageCPU | CPU usage percentage. |
| SYSTEM.MetricsHistorianDbSize | Historian database size metric. |
| SYSTEM.RedundancyRoleLocal / SYSTEM.RedundancyRolePartner | Current local and partner redundancy roles. |
| SYSTEM.RedundancySyncStateLocal / SYSTEM.RedundancySyncStatePartner | Current redundancy synchronization state. |
| SYSTEM.RedundancyIPAddressLocal / SYSTEM.RedundancyIPAddressPartner | Configured local and partner redundancy IP addresses. |
| SYSTEM.RedundancyPortLocal / SYSTEM.RedundancyPortPartner | Configured local and partner redundancy ports. |
| SYSTEM.RedundancyBackfillLag / SYSTEM.RedundancyBackfillPercent | Redundancy backfill progress information. |
| SYSTEM.RedundancySwitchRequested | Requested redundancy role switch state. |
| SYSTEM.Participant1IPAddress / SYSTEM.Participant2IPAddress | Configured redundancy participant IP addresses. |
| SYSTEM.Participant1Port / SYSTEM.Participant2Port | Configured redundancy participant ports. |
| SYSTEM.ConfigDBversion / SYSTEM.HistorianDBversion | Current configuration and historian database version information. |
| SYSTEM.CurrentPointCount | Current Point Count: the points the license check compares with the License Point Count. |
| SYSTEM.ExternalSourcePointCount | Number of enabled Local variables with External Source enabled. In this version they are counted but not yet part of the license check; a future version adds them to the Current Point Count. |
| SYSTEM.AlarmServiceExecutionTime | Alarm service cycle execution time. |
| SYSTEM.EventServiceExecutionTime | Event service cycle execution time. |
| SYSTEM.ScheduleServiceExecutionTime | Schedule service cycle execution time. |
| SYSTEM.HistorianServiceExecutionTime | Historian service cycle execution time. |
| SYSTEM.ICMPDriverServiceExecutionTime | ICMP driver service execution time. |
| SYSTEM.ModbusTcpServerExecutionTime / SYSTEM.ModbusRtuServerExecutionTime / SYSTEM.OPCUAServerServiceExecutionTime | Gateway service execution times. |
| SYSTEM.StandbyDatabaseManagerExecutionTime | Standby database manager execution time. |
| SYSTEM.PythonServiceExecutionTime | Python service execution time. |
No rows match the filter.
Python Runtime Variables
Python scripts also create runtime status variables for each configured script. These variables are exposed with a System. prefix in the Python engine implementation.
The name suffix is the Python script name.
| Variable | Description |
|---|---|
| System.PythonStatus_ScriptName | Current runtime state of the Python script. |
| System.PythonMsg_ScriptName | Last execution message or error text for the Python script. |
| System.PythonExecutionId_ScriptName | Execution identifier of the Python script run. |
No rows match the filter.
Notes
Device variables and local variables are published through the server-side variable dictionary. Client variables are handled in the browser and are used for client-specific runtime behavior.
Device and local variables can be historized depending on their configuration. System variables and client variables are informational runtime values and should be treated according to their specific use case.
Variable references in conditions, actions, scripts, and page bindings must use the exact runtime name, including the correct prefix and capitalization.