The functions listed here can be used in expressions in the ComfileHMI editor.
Functions with a single argument:
sinh(value): Hyperbolic Sine
cosh(value): Hyperbolic Cosine
tanh(value): Hyperbolic Tangent
floor(value): Rounds number down to the nearest integer value.
ceil(value): Rounds number up to the nearest integer value.
exp(value): e raised to a given exponent
log(value): Natural Logarithm
log10(value): Log base 10
fabs(value): absolute value
sqrt(value): square root
Functions with 2 arguments:
pow(x,y): x raised to the power y
fmod(x,y): the remainder of x divided by y.
Functions with 5 arguments:
scale(input, minimum input, maximum input, minimum output, maximum output): Scales
inputproportionally to (
minimum input) / (
Functions with a variable number of arguments:
max(x,y,z,…): Returns the largest value from the argument list
min(x,y,z,…): Returns the smallest value from the argument list
max_index(x,y,z,…): Returns the index of the largest value in the argument list
min_index(x,y,z,…): Returns the index of the smallest value in the argument list
avg(x,y,z,…): Returns the average of all values in the argument list
stdev(x,y,z,…): Returns the standard deviation of all values in the argument list
The following functions can be used to detect communication problems between the ComfileHMI and the PLC.
timeout_result(): Returns 1 if the last communication resulted in a timeout waiting for a response. Return 0 if no timeout occurred.
timeout_count(): Returns the total number of times a communication timeout occurred since the project was executed.
reset_timeout_count(): Resets the timeout count returned from
The following functions are used to read from and write to internal memory.
set_mem(index, value): Writes
valueto internal memory at
mem(index): Reads the value current stored in internal memory at
set_mem(index, value1, value2, …, valueN)
Functions associated with the system. They take no arguments.
action_group_repeat_index(): Retrieves the number of times a user event was executed.
idle_seconds(): Returns the number of seconds since the screen was last touched.
idle_minutes(): Returns the number of minutes since the screen was last touched.
prev_screen_id(): Returns the id of the screen that the current screen navigated from.
screen_id(): Returns the id of the screen the current screen.
tick_count(): The number of milliseconds since the system was powered on.
touch_duration(): The number of milliseconds since the last time the screen was touched. If the screen has never been touched -1 is returned.
cpu_usage(): Returns the current CPU utilization as a percentage.
Functions to convert between data types.
text_to_num(string): Parses a character string in base 10.
num_to_text_int(number): Prints a number as a base 10 integer character string.
num_to_text_int(number, digits): Prints a number as a base 10 integer character string with leading 0's. Ex:
num_to_text_int(3.14, 4)prints “0003”.
num_to_text_hex(number): Prints a number as a base 16 integer character string.
num_to_text_hex(number, digits): Prints a number as a base 16 integer character string with leading 0's
num_to_text_dec(number, fractional digits): Prints a number as a base 10 character string with a given number of fractional digits. Ex:
num_to_text_dec(3.14159, 4)= “3.1416”
In the Add Action –> Run Action Group properties, in the Advanced Options is the ability to pass a primary and secondary parameter to the actions (Add Action Parameter and Add Secondary Action Parameter respectively) .
The parameters can then be read from within the executing action using the following functions.
action_param: Retrieves the primary parameter passed to an action.
sub_action_param: Retrieves the secondary parameter passed to an action group.
Functions with no argument.
year(): The current year
month(): The current month (1~12)
day(): The day of the month
day_of_week(): The day of the week (0~6), 0 = Sunday
hour(): The hour of the day (0~23)
minute(): The minute component of the current hour (0~59)
second(): The second component of the current minute (0~59)
rand(): returns a random number in the range of 0~32767 (0x7FFF)
Functions that take 1 argument but return no value.
set_year(value): Sets the current year
set_month(value): Sets the current month (1~12)
set_day(value): Sets the day of the month
set_hour(value): Sets the hour of the day (0~23)
set_minute(value): Sets the minute component of the current hour (0~59)
set_second(value): Sets the second component of the current minute (0~59)
srand(seed): Sets the seed value for generating random numbers with the
It is recommended to call
srand(tick_count()) to seed the random number generator before using