Logical rules operate on TRUE/FALSE values. They set an element based on whether some combination of other elements are TRUE or FALSE. The template is as folllows:Set Element1 to Element2 if Element3 is / is not true and Element4 is / is not true and Element5 is / is not true
NOTE: Unlike differential rules, logical rules can set the target element to any value, not just TRUE. If the conditions in a logical rule are satisfied, the target element (Element1) will be set to the value of Element2.
NOTE: Also unlike differential rules, a logical rule does not set the value of the target element if conditions of the rule are not satisfied. If the rule is not triggered, then the target element remains unchanged.
In logical rules, the last two elements are optional.
The LED Sample rules that are delivered with the NFCS are described in an earlier chapter. These provide good examples of logical rules.
Multiple rules and logical OR
Individual logical rules can contain multiple criteria which are combined with a logical AND. Sometime it's desirable to combine criteria with a logical OR. For instance, suppose that you have a set of discrete inputs connected to switches that detect dangerous conditions and you want to turn on an alarm if any of them are true. A single logical rule can't do this. However, you can create a set of rules all with the same target element as follows:Set Alarm to TRUE if FloorWet is true
Set Alarm to TRUE if OverTemp is true
Set Alarm to TRUE if DoorOpen is true and PrimaryBlower is true
Since logical rules do not set their target element if they're not triggered, multiple logical rules can act on the same target with the result that the target is set if any of the rules are triggered. Remember that discrete outputs default to FALSE if no rule acts on them. In this case, Alarm is a discrete output so it will end up with a value of false if none of these rules is triggered. If it were a variable, we'd need a rule at the beginning to set it to an initial value of false:Set Alarm to FALSE if Alarm is true
Example: Setback Rule
In the LED example, all of the logical rules set the target element to TRUE. This is the most common situation, and it makes perfect sense if the target element is a discrete output. However, the target could also be a variable or an analog output. In the differential rules section there was an example of a differential rule that provided the same functionality as a thermostat:Set ZoneValve1 if TopFloorTemp is at least ZeroDegrees less than TopFloorSetpoint with a deadband of CoupleDegrees
If there were a discrete input ( a switch, or timer contacts, or an occupancy sensor) that indicated whether the heated area were occupied, we could add a couple of logical rules to change the TopFloorSetpoint variable:Set TopFloorSetpoint to Comfortable if Occupied is true
Set TopFloorSetpoint to Cool if Occupied is not true
In this example, these elements are used: