Define the logical equation using the Advanced Logic Processor Configuration (ALPConfig) Row Edit: Expression tab
- Last UpdatedApr 24, 2025
- 7 minute read
Define the logical equation using the Advanced Logic Processor Configuration (ALPConfig) Row Edit: Expression tab
The Expression tab is used to define the logical equation that combines various input parameters. These inputs, their comparison operators, and their comparison values or states, are also configured through this tab.

To define the logical equation
-
In the Expression field, enter a logical equation that references the parameters listed in the Expression Parameters section.
The equation must adhere to the following rules:
-
It must evaluate to either yes or no.
-
It can only reference parameters with configured input paths.
-
It must use all of the configured expression parameters.
-
Besides the row value, the equation can contain only the following items:
-
( )
-
AND
-
OR
-
NOT
Note: The application evaluates the expression rules once the record is saved.
-
-
-
In the Transition Alarm Target Result field, select the expected target result for the Advanced Logic Processor (ALP):
-
yes
-
no
-
either
Note: When the Transition Alarm Target Result is achieved, a non-persistent alarm will be raised in the Controller's Alarm Summary.
-
-
In the Primary Input Path field, enter (or click [...] to select) the path to a RealTime database (RTDB) table field used in the logical equation appearing in the Expression field.
By default, the following tables and fields are available for selection.
Table
Field
tank
flag.cmsg
flevel
currentGO.volume
currentGS.volume
GOflow_rate
GSflow_rate
flag.alarm
hilow.hilow.hilim
hilow.hilow.lolim
hilow.hilow.hihilim
hilow.hilow.lololim
hilow.hilow.doithi
hilow.hilow.doithihi
hilow.hilow.doitlo
hilow.hilow.doitlolo
hilow.hilow.doitroc
status
flag.cmsg
flag.alarm
cursta
multistate
flag.cmsg
flag.alarm
inputCurRaw
valve
flag.cmsg
cursta
appFlags.logicState
flag.alarm
pump
flag.cmsg
cursta
appFlags.logicState
flag.alarm
ALPConfig
flag.cmsg
result
flag.alarm
analog
flag.cmsg
curval
flag.alarm
hilow.hilim
hilow.lolim
hilow.hihilim
hilow.lololim
hilow.doithi
hilow.doithihi
hilow.doitlo
hilow.doitlolo
hilow.doitroc
rate
flag.cmsg
currate
acccur
flag.alarm
hilow.hilim
hilow.lolim
hilow.hihilim
hilow.lololim
hilow.doithi
hilow.doithihi
hilow.doitlo
hilow.doitlolo
hilow.doitroc
remote
flag.cmsg
flag.alarm
Note: If you need to customize the list of the RTDB tables and fields that are available to select in the Primary Input Path and Secondary Input Path fields, you can modify the Advanced Logic Processor Configuration (ALPConfig) allowlist. For information on how to modify the allowlist, see Understand the Advanced Logic Processor Configuration (ALPConfig) allowlist.
-
Select the Operator required for the comparison.
The supported operators and values are listed below.
Field Type
Comparison Operators
Comparison Values
Numeric
=
>
>=
<
<=
Numerical value.
Boolean
=
yes or no.
Message set state
IN
The list of one or more state values belonging to the message set of the record specified in the Primary Input Path.
You cannot use the IN operator if Input Path has been selected in the Secondary Input Type field.
-
In the Secondary Input Type field, do one of the following:
-
To compare the value of the path in the Primary Input Path field to a constant value, select Constant Value.
-
To compare the value of the path in the Primary Input Path field to the one in the Secondary Input Path field, select Input Path.
-
-
Configure either the Constant Value or Secondary Input Path by doing one of the following:
-
If Constant Value is selected in the Secondary Input Type field, enter within the Constant Value field the value to be used in the comparison operation.
Notes: In the Constant Value field, a period must be used as a decimal separator for numerical values in all locales. For example, x.xx.
Additionally, for the Constant Value field you need to enter yes or no for Boolean values in all locales.If an Operator requiring a numerical value is selected, please make sure to provide a Constant Value that uses a period to indicate the decimal place—regardless of the locale. For example: x.xx
If an Operator requiring a boolean value is selected, please make sure to provide a Constant Value that is either yes or no—regardless of the locale.
-
If Input Path is selected in the Secondary Input Type field, enter in the Secondary Input Path field (or click [...] to select) the path to a RTDB table field to be used in the comparison operation.
Note: If you need to customize the list of the RTDB tables and fields that are available to select in the Primary Input Path and Secondary Input Path fields, you can modify the Advanced Logic Processor Configuration (ALPConfig) allowlist. For information on how to modify the allowlist, see Understand the Advanced Logic Processor Configuration (ALPConfig) allowlist.
-
-
Optional: If the comparison involves numeric values and a deadband is desired, enter a value in the Deadband field.
The deadband is entered as a time interval (in seconds) that is used to manage fluctuations around a numerical comparison value after the comparison evaluates to a 'yes' result. When the comparison evaluates to 'yes', the system will maintain the 'yes' result even if the value goes into the 'no' range as long as the value stays within the configured deadband. That is:
-
When the comparison X < Y evaluates to 'yes', it remains as 'yes' as long as X < (Y + deadband).
For example: analog.XAnalog.curval < 60 with a Deadband of 5

As the analog value decrements and moves towards 60, the comparison evaluates to 'no'. When the analog value falls below 60, the comparison evaluates to 'yes'. If the analog value goes back to 60 and above, it will continue to evaluate to 'yes' until it hits 65 (60 + 5). When the analog value reaches 65, it evaluates to 'no' and continues to do so until the analog value falls below 60.
-
When the comparison A > B evaluates to 'yes', it remains as 'yes' as long as A > (B - deadband).
For example: analog.XAnalog.curval > 60 with a Deadband of 5

As the analog value increments and moves towards 60, the comparison evaluates to 'no'. When the analog value goes above 60, the comparison evaluates to 'yes'. If the analog value goes back to 60 and below, it will continue to evaluate to 'yes' until it hits 55 (60 - 5). When the analog value reaches 55, it evaluates to 'no' and continues to do so until the analog value goes above 60.
Note: You cannot enter a value in the Deadband field if equal (=) is selected in the Operator field. A positive value must be entered in the Deadband field. The default value of zero (0) in the Deadband field means that no deadband is applied.
Notes: When you make a change to a row in the ALP record, the system automatically validates the entire row to ensure that all values in the row (Primary Input Path, Operator, Secondary Input Type, Constant Value, Secondary Input Path, and Deadband) are configured correctly.
For example, an expression cannot be saved unless the underlying data type is compatible across the Primary Input Path, Operator, Secondary Input Type, Constant Value, and Secondary Input Path fields. In addition, in the case where the IN operator is selected, the values entered in the Constant Value field must correspond to the valid message set state values or enumerated list values for the Primary Input Path specified before the expression can be saved. Also, for rows that rely on a base message (for example: status.ALPStatus01.flag.cmsg IN OPEN), if the underlying base message of the Primary Input Path is changed, the ptnum of the Secondary Input will never match any of the ptnums in the new base message causing the row to always evaluate to No. To address this scenario, after a base message change is made, please use the ADE form to reselect the Secondary Input values and re-save the ALP record.
Prior to configuring the Primary Input Path and Constant Value fields for the ALP record, due diligence is required to ensure that the RTDB records used for the ALP inputs are also properly configured. The ALP automatic validation only ensures that the input path exists and that its comparison value is appropriate. Second degree misconfigurations could cause the ALP Expression Parameter to become undefined and cause failures during logical evaluation. If this were to happen, the ALP would not be able to successfully update the result in the Expression field, and the Controller would be notified with an alarm indicating that an unexpected error occurred during the ALP evaluation.
In the Advanced Database Editor (ADE), input paths for ALP are immediately verified after creation. You will be unable to save if an invalid path is entered (this process also applies to comparison operators and value entries). If, at runtime, an input path becomes invalid (for example, is deleted), then the ALP will continue processing but will automatically count that row as 'yes.' A persistent configuration alarm will be generated to indicate that an input path has become invalid. The ALP record will be in an error state until the issue is resolved.
-