Rules/Expression Editor
ICONICS' Rules and Expression Engine in the GENESIS64 HMI/SCADA Suite has undergone major enhancements including:
-
Support for syntax coloring for easier understanding,
-
New IF/THEN/ELSE statements that provide better visualization of the statements,
-
A new back-end expression evaluation engine based in .NET and
-
A number of new functions.
This topic lists the rules/expressions that can be used within GENESIS64:
sin Function
Description:
Returns the sine of the specified angle
Parameters:
Parameter1: An angle, measured in radians
Returns:
A double precision floating point value
cos Function
Description:
Returns the cosine of the specified angle
Parameters:
Parameter1: An angle, measured in radians
Returns:
A double precision floating point value
tan Function
Description:
Returns the tangent of the specified angle
Parameters:
Parameter1: An angle, measured in radians
Returns:
A double precision floating point value
asin Function
Description:
Returns the angle whose sine is the specified number
Parameters:
Parameter1: A number representing a sine, where Parameter1 must be greater than or equal to -1, but less than or equal to 1.
Returns:
A double precision floating point value. An angle, measured in radians
acos Function
Description:
Returns the angle whose cosine is the specified number
Parameters:
Parameter1: A number representing a cosine, where Parameter1 must be greater than or equal to -1, but less than or equal to 1.
Returns:
A double precision floating point value. An angle, measured in radians
atan Function
Description:
Returns the angle whose tangent is the specified number
Parameters:
Parameter1: A number representing a cosine, where Parameter1 must be greater than or equal to -1, but less than or equal to 1.
Returns:
A double precision floating point value. An angle, measured in radians
sqrt Function
Description:
Returns the square root of a specified number.
Parameters:
Parameter1: A number
Returns:
A double precision floating point value. If Parameter1 is greater than or equal to zero, returns the square root. If Parameter1 is less than zero, returns not-a-number (NaN).
pow Function
Description:
Returns a number raised to a power
Parameters:
Parameter1: The number to be raised to a power
Parameter2: A power
Returns:
A double precision floating point value. Parameter1 raised to the power of Parameter2
log Function
Description:
Returns the logarithm of a specified number in a specified base
Parameters:
Parameter1: A number whose logarithm is to be found
Parameter2: The base of the logarithm
Returns:
A double precision floating point value. The logarithm of Parameter1 in the base Parameter2
ln Function
Description:
Returns the natural (base e) logarithm of a specified number
Parameters:
Parameter1: A number whose logarithm is to be found
Returns:
A double precision floating point value. The natural logarithm of Parameter1
exp Function
Description:
Returns e (natural logarithmic base constant) raised to the specified power
Parameters:
Parameter1: A number specifying a power
Returns:
The number e raised to the power of Parameter1
Remarks:
exp is the inverse of log
abs Function
Description:
Returns the absolute value of a specified number
Parameters:
Parameter1: A number
Returns:
A number that is greater than or equal to zero
ceil Function
Description:
Returns the smallest whole number that is greater than or equal to the specified number
Parameters:
Parameter1: A number
Returns:
The smallest whole number that is greater than or equal to Parameter1
floor Function
Description:
Returns the largest whole number less than or equal to the specified number
Parameters:
Parameter1: A number
Returns:
The largest whole number less than or equal to Parameter1
round Function
Description:
Rounds a value to the nearest integer
Parameters:
Parameter1: A number to be rounded
Returns:
The whole number nearest to Parameter1
roundto Function
Description:
Rounds a value to the specified number of decimal places
Parameters:
Parameter1: A number to be rounded
Parameter2: The number of decimal places in the return value
Returns:
The number nearest to Parameter1 that contains a number of fractional digits equal to Parameter2
min Function
Description:
Returns the smaller of two numbers
Parameters:
Parameter1: The first of two numbers to compare
Parameter2: The second of two numbers to compare
Returns:
The smaller of Paramter1 and Parameter2
max Function
Description:
Returns the larger of two numbers
Parameters:
Parameter1: The first of two numbers to compare
Parameter2: The second of two numbers to compare
Returns:
The larger of Paramter1 and Parameter2
IF THEN ELSE Conditional Branch
Description:
Returns the result of the THEN or ELSE branch depending on the value of the IF condition
Parameters:
Parameter1 (IF): A Boolean condition
Parameter2 (THEN): The value to return if Parameter1 is true
Parameter2 (ELSE): The value to return if Parameter1 is false
Returns:
Returns the result of the THEN or ELSE branch depending on the value of the IF condition
Remarks:
If the quality of Parameter1 is bad, the ELSE branch will be evaluated and returned
Example usage:
IF ({{tagname}} > 100)
THEN "high"
ELSE "low"
if Function
Description:
Conditionally returns the result of Parameter2 or Parameter3 depending on the value of Parameter1
Parameters:
Parameter1 (if): A Boolean condition
Parameter2 (then): The value to return if Parameter1 is true
Parameter2 (else): The value to return if Parameter1 is false
Returns:
Returns the result of Parameter2 or Parameter3 depending on the value of Parameter1
Remarks:
If the quality of Parameter1 is bad, Parameter3 will be returned
shl Function
Description:
Shifts the bits of the specified integer value to the left by the specified number of positions
Parameters:
Parameter1: A number for which to shift the bits
Parameter2: The number of positions by which to shift the bits
Returns:
The shifted number (an integer)
shr Function
Description:
Shifts the bits of the specified integer value to the right by the specified number of positions
Parameters:
Parameter1: A number for which to shift the bits
Parameter2: The number of positions by which to shift the bits
Returns:
The shifted number (an integer)
bittest Function
Description:
Tests if the bit at the specified position in the specified number is equal to 1
Parameters:
Parameter1: The number in which to test a bit
Parameter2: The zero-based index (from the right) of the bit to test
Returns:
True if the bit at the position specified by Parameter2 in the value specified by Parameter1 is 1
quality Function
Description:
Gets the quality of the specified value
Parameters:
Parameter1: a sub-expression, typically a variable (i.e. a tagname) for which to get the quality
Returns:
A quality value where 0 = Bad, 64 = Uncertain, and 192 = Good
setvalue Function
Description:
Assigns a value to a variable
Parameters:
Parameter1: a variable (i.e. a tagname)
Parameter2: a value to write to the variable
Returns:
A boolean. True if setvalue successfully initiated, False if setvalue failed (ex. trying to write to a readonly tag)
Remarks:
setvalue will be asynchronous for OPC tags, so ultimately a write to an OPC tag could fail after this function has already returned.
tostring Function
Description:
Converts the specified value to a string using culture-independent formatting
Parameters:
Parameter1: A value to convert to a string
Returns:
A string
tostringculture Function
Description:
Converts the specified value to a string using the current Operating System culture for formatting
Parameters:
Parameter1: A value to convert to a string
Returns:
A string
toformat Function
Description:
Converts the specified value to an explicitly formatted string using culture-independent format information
Parameters:
Parameter1: A value to convert to a string
Parameter2: A string designating the format for the returned string.
Returns:
A string
Remarks:
The format string for Parameter2 can be:
“D” : Integer with minimum number of digits required
“D#” : Integer with at least # digits (ex. D3 for a three digit integer)
“N” : Number (including digit grouping) with default number of decimal places (defined by culture formatting)
“N#” : Number (including digit grouping) with # number of decimal places (ex. N3 for three decimal places)
“F” : Number (without digit grouping) with default number of decimal places (defined by culture formatting)
“F#” : Number (without digit grouping) with # number of decimal places (ex. F3 for three decimal places)
“E” : Exponential notation with default number of decimal places (6 decimal places)
“E#” : Exponential notation with # number of decimal places (ex. E3 for three decimal places)
“G” : Number (equivalent of F or E, whichever produces the most compact string)
“G#” : Number (equivalent of F# or E#, whichever produces the most compact string)
“X” : Hexadecimal number with minimum number of digits required
“X#” : Hexadecimal with at least # digits (ex. X3 for a three digit hex number)
“P” : Number multiplied by 100 and displayed with a percent symbol
“P#” : Number multiplied by 100 and displayed with a percent symbol with # number of decimal places
“C” : A currency value
“C#” : A currency value with # number of decimal places
“R” : A string that can round-trip back to an identical number
toformatculture Function
Description:
Converts the specified value to an explicitly formatted string using the current Operating System culture for additional format information
Parameters:
Parameter1: A value to convert to a string
Parameter2: A string designating the format for the returned string.
Returns:
A string
Remarks:
The format string for Parameter2 can be:
“D” : Integer with minimum number of digits required
“D#” : Integer with at least # digits (ex. D3 for a three digit integer)
“N” : Number (including digit grouping) with default number of decimal places (defined by culture formatting)
“N#” : Number (including digit grouping) with # number of decimal places (ex. N3 for three decimal places)
“F” : Number (without digit grouping) with default number of decimal places (defined by culture formatting)
“F#” : Number (without digit grouping) with # number of decimal places (ex. F3 for three decimal places)
“E” : Exponential notation with default number of decimal places (6 decimal places)
“E#” : Exponential notation with # number of decimal places (ex. E3 for three decimal places)
“G” : Number (equivalent of F or E, whichever produces the most compact string)
“G#” : Number (equivalent of F# or E#, whichever produces the most compact string)
“X” : Hexadecimal number with minimum number of digits required
“X#” : Hexadecimal with at least # digits (ex. X3 for a three digit hex number)
“P” : Number multiplied by 100 and displayed with a percent symbol
“P#” : Number multiplied by 100 and displayed with a percent symbol with # number of decimal places
“C” : A currency value
“C#” : A currency value with # number of decimal places
“R” : A string that can round-trip back to an identical number
tonumber Function
Description:
Converts the specified value to a number using culture-independent format information
Parameters:
Parameter1: The value to convert to a number
Returns:
A number
Remarks:
If possible this function will try to convert the value to an integer number. If the value cannot be converted to an integer, this function will try to convert the value to a double-precision floating point number.
tonumberculture Function
Description:
Converts the specified value to a number using the current Operating System culture for formatting
Parameters:
Parameter1: The value to convert to a number
Returns:
A number
Remarks:
If possible this function will try to convert the value to an integer number. If the value cannot be converted to an integer, this function will try to convert the value to a double-precision floating point number.
tonumberbase Function
Description:
Converts the specified value in a specified base to a number
Parameters:
Parameter1: The value to convert to a number
Parameter2: The base of Parameter1 (this value must be 2, 8, 10, or 16). For example, use 16 if Parameter1 is a string that represents a Hexadecimal number.
Returns:
A number
toboolean Function
Description:
Converts the specified value to a boolean using culture-independent format information
Parameters:
Parameter1: The value to convert to a boolean
Returns:
A boolean value
tobooleanculture Function
Description:
Converts the specified value to a boolean using the current Operating System culture for formatting
Parameters:
Parameter1: The value to convert to a boolean
Returns:
A boolean value
asciitochar Function
Description:
Converts the specified ascii value(s) to equivalent character(s)
Parameters:
Parameter1: A number representing one or more ascii values. Each byte in the number represents one ascii character.
Returns:
A string containing one or more characters
asciitowchar Function
Description:
Converts the specified Unicode value(s) to equivalent Unicode character(s)
Parameters:
Parameter1: A number representing one or more Unicode values. Each 2 bytes in the number represents one Unicode character.
Returns:
A string containing one or more characters
chartoascii Function
Description:
Converts the specified character(s) to ascii value(s)
Parameters:
Parameter1: A string containing one or more characters. Each character in the string represents a 1 byte ascii value in the resulting number.
Returns:
An integer number
wchartoascii Function
Description:
Converts the specified Unicode character(s) to Unicode value(s)
Parameters:
Parameter1: A string containing one or more characters. Each character in the string represents a 2 byte Unicode value in the resulting number.
Returns:
An integer number
like Function
Description:
Performs a wildcard string search
Parameters:
Parameter1: The string in which to search
Parameter2: The pattern to search for in Parameter1
Parameter3: true to perform a case-sensitive search, false to ignore case
Returns:
True if Parameter2 is found in Parameter1.
Remarks:
Parameter2 may contain wildcards. Wildcard characters include:
? : Any single character
* : Zero or more characters
# : Any single digit (0-9)
[charlist] : Any single character in charlist
[!charlist] : Any single character not in charlist
To explicitly match these special wildcard characters as a literal character, enclose that character in square brackets. For example, to literally match an asterisk character (instead of a wildcard match), use [*]
len Function
Description:
Gets the length of a string
Parameters:
Parameter1: a string value
Returns:
The length of the string passed to Parameter1
substring Function
Description:
Extracts a portion of a string
Parameters:
Parameter1: A string from which to extract a substring
Parameter2: The zero-based index of the character in Parameter1 (starting from the left) at which to being the extraction
Parameter3: The length of the substring to extract
Returns:
The extracted substring
left Function
Description:
Returns the specified number of characters from the left side of a string
Parameters:
Parameter1: A string from which the leftmost characters are returned
Parameter2: The number of characters to return
Returns:
A string containing the specified number of characters from the left side of the input string
right Function
Description:
Returns the specified number of characters from the right side of a string
Parameters:
Parameter1: A string from which the rightmost characters are returned
Parameter2: The number of characters to return
Returns:
A string containing the specified number of characters from the right side of the input string
concat Function
Description:
Concatenates two strings together
Parameters:
Parameter1: The first string to concatenate
Parameter2: The second string to concatenate
Returns:
A string that is the result of appending Parameter2 to Parameter1
indexof Function
Description:
Returns the zero-based index of the first occurrence of a substring within a string
Parameters:
Parameter1: The string in which to search
Parameter2: The string to search for
Parameter3: The zero-based index at which to start searching in Parameter1
Returns:
The zero-based position of Parameter2 within Parameter1, or -1 if not found
replace Function
Description:
Search for text within a string and replaces all occurrences that text with a different substring
Parameters:
Parameter1: The string in which to search
Parameter2: The substring to search for
Parameter3: The text to insert in place of Parameter2
Returns:
A string equivalent to Parameter1 except that all instances Parameter2 are replaced with Parameter3
trim Function
Description:
Removes all leading and trailing occurrences of the specified set of characters from the specified string
Parameters:
Parameter1: The string from which to remove characters
Parameter2: A string where each character in the string belongs to the set of characters that will be trimmed. If this parameter is an empty string, all whitespace characters will be trimmed.
Returns:
The string that remains after all occurrences of the characters in Parameter2 are removed from the start and end of Parameter1.
Remarks:
Parameter2 represents a set of characters, not an exact string match
trimleft Function
Description:
Removes all leading occurrences of the specified set of characters from the specified string
Parameters:
Parameter1: The string from which to remove characters
Parameter2: A string where each character in the string belongs to the set of characters that will be trimmed. If this parameter is an empty string, all whitespace characters will be trimmed.
Returns:
The string that remains after all occurrences of the characters in Parameter2 are removed from the start of Parameter1.
Remarks:
Parameter2 represents a set of characters, not an exact string match
trimright Function
Description:
Removes all trailing occurrences of the specified set of characters from the specified string
Parameters:
Parameter1: The string from which to remove characters
Parameter2: A string where each character in the string belongs to the set of characters that will be trimmed. If this parameter is an empty string, all whitespace characters will be trimmed.
Returns:
The string that remains after all occurrences of the characters in Parameter2 are removed from the end of Parameter1.
Remarks:
Parameter2 represents a set of characters, not an exact string match
tolower Function
Description:
Converts all of the characters in the specified string to lowercase
Parameters:
Parameter1: A string
Returns:
The input string with all characters converted to lowercase
toupper Function
Description:
Converts all of the characters in the specified string to uppercase
Parameters:
Parameter1: A string
Returns:
The input string with all characters converted to uppercase
todatetime Function
Description:
Converts the specified value to a DateTime using culture-independent format information
Parameters:
Parameter1: The value to convert to a DateTime
Returns:
A DateTime value
Remarks:
If Parameter1 is a string, it should be in the following format:
[YYYY-MM-DD] [hh:mm[:ss][Z] [AM|PM]] (elements in square brackets are optional)
YYYY : year
MM : month
DD : day
hh : hours
mm : minutes
ss : seconds
Z : designates UTC time
AM or PM : include when using 12-hour clock time
The DateTime string representation may include date-only, time-only, or date and time.
Example Usage:
“2011-05-31 07:34:42 PM”
“2011-05-31 19:34:42”
“2011-05-31”
todatetimeculture Function
Description:
Converts the specified value to a DateTime using the current Operating System culture for formatting
Parameters:
Parameter1: The value to convert to a DateTime
Returns:
A DateTime value
Remarks:
If Parameter1 is a string, it should be in the following format:
[YYYY-MM-DD] [hh:mm[:ss][Z] [AM|PM]] (elements in square brackets are optional)
YYYY : year
MM : month
DD : day
hh : hours
mm : minutes
ss : seconds
Z : designates UTC time
AM or PM : include when using 12-hour clock time
The DateTime string representation may include date-only, time-only, or date and time.
Example Usage:
“2011-05-31 07:34:42 PM”
“2011-05-31 19:34:42”
“2011-05-31”
totimespan Function
Description:
Converts the specified value to a TimeSpan using culture-independent format information
Parameters:
Parameter1: The value to convert to a TimeSpan
Returns:
A TimeSpan value
Remarks:
If Parameter1 is a number, it is interpreted to be the total milliseconds of the TimeSpan. If Parameter1 is a string, it should be in the following format:
[-][d.]hh:mm[:ss[.ff]] (elements in square brackets are optional)
- : optional minus sign indicates a negative timespan
d : optional number of days
hh : hours (0 to 23)
mm : minutes (0 to 59)
ss : optional seconds (0 to 59)
ff : optional fractional seconds
Example Usage:
“1.05:30” = 1 day, 5 hours, 30 minutes
“4:10.05” = 4 hours, 10 minutes, 5 seconds
“00:00.10” = 10 seconds
totimespanculture Function
Description:
Converts the specified value to a TimeSpan using the current Operating System culture for formatting
Parameters:
Parameter1: The value to convert to a TimeSpan
Returns:
A TimeSpan value
Remarks:
If Parameter1 is a number, it is interpreted to be the total milliseconds of the TimeSpan. If Parameter1 is a string, it should be in the following format:
[-][d.]hh:mm[:ss[.ff]] (elements in square brackets are optional)
- : optional minus sign indicates a negative timespan
d : optional number of days
hh : hours (0 to 23)
mm : minutes (0 to 59)
ss : optional seconds (0 to 59)
ff : optional fractional seconds
Example Usage:
“1.05:30” = 1 day, 5 hours, 30 minutes
“4:10.05” = 4 hours, 10 minutes, 5 seconds
“00:00.10” = 10 seconds
frommilliseconds Function
Description:
Returns a TimeSpan from the specified number of milliseconds
Parameters:
Parameter1: The number of milliseconds to convert to a TimeSpan
Returns:
A TimeSpan representing the specified number of milliseconds
fromseconds Function
Description:
Returns a TimeSpan from the specified number of seconds
Parameters:
Parameter1: The number of seconds to convert to a TimeSpan
Returns:
A TimeSpan representing the specified number of seconds
fromminutes Function
Description:
Returns a TimeSpan from the specified number of minutes
Parameters:
Parameter1: The number of minutes to convert to a TimeSpan
Returns:
A TimeSpan representing the specified number of minutes
fromhours Function
Description:
Returns a TimeSpan from the specified number of hours
Parameters:
Parameter1: The number of hours to convert to a TimeSpan
Returns:
A TimeSpan representing the specified number of hours
fromdays Function
Description:
Returns a TimeSpan from the specified number of days
Parameters:
Parameter1: The number of days to convert to a TimeSpan
Returns:
A TimeSpan representing the specified number of days
totalmilliseconds Function
Description:
Returns the total number of milliseconds for the specified TimeSpan
Parameters:
Parameter1: A TimeSpan
Returns:
The total number of milliseconds in the specified TimeSpan
totalseconds Function
Description:
Returns the total number of seconds for the specified TimeSpan
Parameters:
Parameter1: A TimeSpan
Returns:
The total number of seconds in the specified TimeSpan
totalminutes Function
Description:
Returns the total number of minutes for the specified TimeSpan
Parameters:
Parameter1: A TimeSpan
Returns:
The total number of minutes in the specified TimeSpan
totalhours Function
Description:
Returns the total number of hours for the specified TimeSpan
Parameters:
Parameter1: A TimeSpan
Returns:
The total number of hours in the specified TimeSpan
totaldays Function
Description:
Returns the total number of days for the specified TimeSpan
Parameters:
Parameter1: A TimeSpan
Returns:
The total number of days in the specified TimeSpan
timesincelastchange Function
Description:
Returns the elapsed time since a value last changed
Parameters:
Parameter1: a sub-expression, typically a variable (i.e. a tagname)
Parameter2: a deltaValue (deadband) - Parameter1 must change by more than this amount to be considered a change
Parameter3: a TimeSpan or a number (milliseconds) - periodically recalculates the expression (in case the variable specified in Parameter1 is not changing, this refresh is needed to update the elapsed time)
Returns:
A TimeSpan or a number (milliseconds). The return type is determined by the type of value passed to parameter3
Example usage:
timesincelastchange({{tagname}}, 0, "0:00:10")
or
timesincelastchange({{tagname}}, 10, 30000)
trueforduration Function
Description:
Returns true if a boolean condition has been true for a specified amount of time (or longer)
Parameters:
Parameter1: a sub-expression that evaluates to a boolean condition
Parameter2: a TimeSpan duration that specifies how long Parameter1 must be true before this function will return true
Returns:
A Boolean. True if Parameter1 has been true for the amount of time specified in Parameter2 (or longer), false otherwise.
Example usage:
trueforduration({{tagname}} > 100, 5000)
or
trueforduration({{tagname}} > 100, "0:00:05")
or
trueforduration({{tagname}} > 100, fromseconds(5))
now Function
Description:
Returns the current local date and time at the moment this expression is evaluated
Parameters:
None
Returns:
The current local date and time at the moment this expression is evaluated
utcnow Function
Description:
Returns the current UTC date and time (Coordinated Universal Time) at the moment this expression is evaluated
Parameters:
None
Returns:
The current UTC date and time at the moment this expression is evaluated
pi Constant
Description:
Represents the ratio of the circumference of a circle to its diameter
e Constant
Description:
Represents the natural logarithmic base
true Constant
Description:
Boolean constant for a true condition
false Constant
Description:
Boolean constant for a false condition
< Operator
Description:
Determines whether or not one value is less than another value
Operands:
Operand1: The first value to compare
Operand2: The second value to compare
Result:
True if Parameter1 is less than Parameter2, false otherwise
Remarks:
If the data types of the two parameters are different, the parameters will both be converted to numbers for comparison. If the data types of the two parameters are the same, the parameters will be compared directly without any type conversion. This operator can be used to compare numbers, strings, DateTimes, and TimeSpans.
> Operator
Description:
Determines whether or not one value is greater than another value
Operands:
Operand1: The first value to compare
Operand2: The second value to compare
Result:
True if Parameter1 is greater than Parameter2, false otherwise
Remarks:
If the data types of the two parameters are different, the parameters will both be converted to numbers for comparison. If the data types of the two parameters are the same, the parameters will be compared directly without any type conversion. This operator can be used to compare numbers, strings, DateTimes, and TimeSpans.
<= Operator
Description:
Determines whether or not one value is less than or equal to another value
Operands:
Operand1: The first value to compare
Operand2: The second value to compare
Result:
True if Parameter1 is less than or equal to Parameter2, false otherwise
Remarks:
If the data types of the two parameters are different, the parameters will both be converted to numbers for comparison. If the data types of the two parameters are the same, the parameters will be compared directly without any type conversion. This operator can be used to compare numbers, strings, DateTimes, and TimeSpans.
>= Operator
Description:
Determines whether or not one value is greater than or equal to another value
Operands:
Operand1: The first value to compare
Operand2: The second value to compare
Result:
True if Parameter1 is greater than or equal to Parameter2, false otherwise
Remarks:
If the data types of the two parameters are different, the parameters will both be converted to numbers for comparison. If the data types of the two parameters are the same, the parameters will be compared directly without any type conversion. This operator can be used to compare numbers, strings, DateTimes, and TimeSpans.
== Operator
Description:
Determines whether or not one value is equal to another value
Operands:
Operand1: The first value to compare
Operand2: The second value to compare
Result:
True if Parameter1 is equal to Parameter2, false otherwise
Remarks:
If the data types of the two parameters are different, the parameters will both be converted to numbers for comparison. If the data types of the two parameters are the same, the parameters will be compared directly without any type conversion. This operator can be used to compare numbers, strings, DateTimes, and TimeSpans.
!= Operator
Description:
Determines whether or not one value is not equal to another value
Operands:
Operand1: The first value to compare
Operand2: The second value to compare
Result:
True if Parameter1 is not equal to Parameter2, false otherwise
Remarks:
If the data types of the two parameters are different, the parameters will both be converted to numbers for comparison. If the data types of the two parameters are the same, the parameters will be compared directly without any type conversion. This operator can be used to compare numbers, strings, DateTimes, and TimeSpans.
&& Operator
Description:
Returns true if both operands are true
Operands:
Operand1: The first Boolean value to logically combine
Operand2: The second Boolean value to logically combine
Result:
Returns true if both operands are true
Remarks:
Operands are automatically converted to Boolean if they are not already boolean
|| Operator
Description:
Returns true if either of the two operands are true
Operands:
Operand1: The first Boolean value to logically combine
Operand2: The second Boolean value to logically combine
Result:
Returns true if either of the two operands are true
Remarks:
Operands are automatically converted to Boolean if they are not already boolean
! Operator
Description:
Returns the logical inverse of the specified operand
Operands:
Operand1: The Boolean value to invert
Result:
If Operand1 is true, the result is false. If Operand1 is false, the result is true.
Remarks:
The operand is automatically converted to Boolean if it is not already a Boolean value
& Operator
Description:
The bitwise AND operator compares each bit of the first operand to the corresponding bit of the second operand. If both bits are 1, the corresponding result bit is set to 1. Otherwise, the corresponding result bit is set to 0.
Operands:
Operand1: The first value to combine
Operand2: The second value to combine
Result:
The bitwise AND combination of the two operands
Remarks:
Operands are automatically converted to integers if they are not already integers
| Operator
Description:
The bitwise OR operator compares each bit of the first operand to the corresponding bit of the second operand. If either bit is 1, the corresponding result bit is set to 1. Otherwise, the corresponding result bit is set to 0.
Operands:
Operand1: The first value to combine
Operand2: The second value to combine
Result:
The bitwise OR combination of the two operands
Remarks:
Operands are automatically converted to integers if they are not already integers
~ Operator
Description:
The bitwise NOT operator inverts each bit in a value. Any 1 becomes a 0 and any 0 becomes a 1.
Operands:
Operand1: The value for which to invert bits
Result:
The bitwise NOT of the operand
Remarks:
The operand is automatically converted to an integer if it is not already an integer
^ Operator
Description:
The bitwise XOR (exclusive OR) operator compares each bit of the first operand to the corresponding bit of the second operand. If only one of the bits is 1, the corresponding result bit is set to 1. Otherwise, the corresponding result bit is set to 0.
Operands:
Operand1: The first value to combine
Operand2: The second value to combine
Result:
The bitwise XOR combination of the two operands
Remarks:
Operands are automatically converted to integers if they are not already integers
+ Operator
Description:
Adds one value to another value
Operands:
Operand1: The first value
Operand2: The value to add to Operand1
Result:
The addition of Operand2 to Operand1
Remarks:
If both operands are strings, this operator will perform a string concatenation. If the first operand is a DateTime and the second operand is TimeSpan, the result will be a DateTime. If both operands are TimeSpans, the result will be a TimeSpan. Otherwise, the operands will be added as numbers.
- Operator
Description:
Subtracts one value from another value
Operands:
Operand1: The first value
Operand2: The value to subtract from Operand1
Result:
The subtraction of Operand2 from Operand1
Remarks:
If the first operand is a DateTime and the second operand is TimeSpan, the result will be a DateTime. If both operands are DateTimes, the result will be a TimeSpan. If both operands are TimeSpans, the result will be a TimeSpan. Otherwise, the operands will be subtracted as numbers.
* Operator
Description:
Multiplies one value by another value
Operands:
Operand1: The first value
Operand2: The value to multiply Operand1 by
Result:
The multiplication of Operand1 by Operand2
Remarks:
Operands are automatically converted to numbers if they are not already numbers
/ Operator
Description:
Divides one value by another value
Operands:
Operand1: The first value
Operand2: The value to divide Operand1 by
Result:
The division of Operand1 by Operand2
Remarks:
Operands are automatically converted to numbers if they are not already numbers
% Operator
Description:
Divides one value by another value and returns the remainder
Operands:
Operand1: The first value
Operand2: The value to divide Operand1 by
Result:
The remainder of the division of Operand1 by Operand2
Remarks:
Operands are automatically converted to numbers if they are not already numbers
( Open Parenthesis
Description:
The open parenthesis operator is used to designate the start of a group of operations. Operators have implicit priorities that determine the sequence in which they are evaluated (which does not necessarily match the order in which the operators are used in an expression). Grouping with parentheses can be used to override this implicit precedence of operations.
The default precedence of operations is:
/, *, %, -, +, !=, ==, >=, <=, >, <, ~, &, |, ^, !, &&, ||, functions, IF
) Close Parenthesis
Description:
The close parenthesis operator is used to designate the end of a group of operations. Operators have implicit priorities that determine the sequence in which they are evaluated (which does not necessarily match the order in which the operators are used in an expression). Grouping with parentheses can be used to override this implicit precedence of operations.
The default precedence of operations is:
/, *, %, -, +, !=, ==, >=, <=, >, <, ~, &, |, ^, !, &&, ||, functions, IF
0x Constant Prefix
Description:
A number following this prefix will be interpreted as a Hexadecimal constant
0t Constant Prefix
Description:
A number following this prefix will be interpreted as a Octal constant
0b Constant Prefix
Description:
A number following this prefix will be interpreted as a Binary constant
“ Constant String Delimiter
Description:
Text surrounded by double quotes is interpreted as a constant string
$“ Begin Escaped Constant String Delimiter
Description:
Place this delimiter at the beginning of a constant string for which the string will also contain literal double quote characters.
Example Usage:
$”This is a “string” containing double quotes”$
“$ End Escaped Constant String Delimiter
Description:
Place this delimiter at the end of a constant string for which the string will also contain literal double quote characters.
Example Usage:
$”This is a “string” containing double quotes”$
<< Begin Alias/Parameter Delimiter
Description:
Parameters or aliases are placeholders that are resolved to “actual” values before the expression is evaluated. Typically this is used to provide different variables/tags to an expression depending on the context.
Example Usage:
100 + {{<<parameter>>}}
>> End Alias/Parameter Delimiter
Description:
Parameters or aliases are placeholders that are resolved to “actual” values before the expression is evaluated. Typically this is used to provide different variables/tags to an expression depending on the context.
Example Usage:
100 + {{<<parameter>>}}
{{ Begin Variable Delimiter
Description:
Variables are named items in an expression that can change value during the lifetime of the expression. When the variable value changes, the expression result is recalculated. Typically variables represent live data such as OPC tags.
Example Usage:
100 + {{@sim64:Double.Ramp(5,0,100,0).Value}}
}} End Variable Delimiter
Description:
Variables are named items in an expression that can change value during the lifetime of the expression. When the variable value changes, the expression result is recalculated. Typically variables represent live data such as OPC tags.
Example Usage:
100 + {{@sim64:Double.Ramp(5,0,100,0).Value}}
See Also: