User Tools

Site Tools



Variables and Expressions


In the ComfileHMI, a variable refers to a named location in the ComfileHMI hardware's memory.

If a variable is used without first being declared, it will be implicitly declared and available for use immediately.

  • All variables are global, so they must be given unique names, and can be used on any screen.
  • Variables can only store numeric values. Integers, floating point, and even 64-bit integers are supported).
  • Variables names are case-sensitive and support Unicode, so variable names can be expressed in any language.
  • Variable names cannot begin with numeric digits; they must begin with a letter or an underscore character. Variables names should not contain spaces.
    • A good example for a motor status variable could be Motor1
    • 123abc is invalid because it begins with a numeric digit
    • Motor Status is invalid because it contains a space

A list of variables in use can be obtained from the ComfileHMI Editor's main menu: ProjectView Addresses and Variables in Use.

String Variables

String variables were added in a subsequent version of the ComfileHMI Editor software. They are declared and used with $ prefix. For example $a="hello".

Internal Memory

Internal memory is a specific memory region in the ComfileHMI hardware. It is volatile, so it will be erased when the ComfileHMI hardware is powered off.

There are 1024 memory locations (indexed 0~1023) that can be written and read to. They can store 64-bit integers and double-precision floating point values.

  • set_mem(index, value) : Writes value to internal memory at index.
  • mem(index) : Reads the value current stored in internal memory at index.

Multiple values can be stored adjacently in internal memory by passing multiple value arguments to the set_mem function.

  • set_mem(index, value1, value2, …, valueN)

See the internal memory functions.

Conditional Expressions

Conditional expressions provide the ability to compare variables.

<, <=, ==, >=, >, != operators are supported. They are identical to the comparison operators used in the C programming language.
&& and || are boolean AND and boolean OR operators respectively.

MotorStatus > 1
Heater1 == 0true if Heater1 is equal to 0
Heater1 != 0true if Heater1 does not equal 0

Mathematical Expressions

+, -, *, /, and % operators are supported for performing math on variables. They are identical to the arithmetic operators used in the C programming language.

MotorStatus + 1

Bitwise Expressions

>>, <<, |, and & operators are supported for bitwise operations. They are identical to the bitwise operators used in the C programming language.

(bits >> 2) & 1


The Display and Location options provide the ability to specify how and where to display the widget. The default for the widget to always display.

Checking the based on condition option will provide the ability to show the widget based on a given condition. When the condition is met the widget is shown, otherwise it is hidden.

In the example below, the widget will be displayed when the motor status is 0. If other widgets or events in the ComfileHMI project cause the motor status to become 0, the widget will appear on the screen. Otherwise it will remain hidden.

The following video illustrates.

Back to ComfileHMI

comfilehmi/hmieditor_susik/index.txt · Last modified: 2021/08/17 18:02 by COMFILE Technology