Wood Heating
System Design
Control Logic
Software Design
Electrical Schematic
Simple system w/ storage
Domestic Hot Water
Heat Storage
Solar Hot Water
System Components
User Guide
Programming Guide
Failsafe Design
Sample Application
LM35 Sensor Assembly
Pinout Info
Poor Man's VS Circ
Plastic Pipe Collector
Forum Solar-TodayWood-TodayBurn Planner
<Prev Next>

Planning Rules and Variables

The only purpose of rules is to set the outputs of the NFCS to desired values for the current conditions. Desired values are determined by our intended system behavior. For each system behavior that depends on the NFCS, we'll need one or more rules. Reviewing the system behaviors, let's describe each in terms of the NFCS signals and outputs that are involved. For the NFCS, 'true' means the same as 'on' or 'powered' or 'non-zero'.

  1. The system should use heat from the wood boiler if heat is available.

    No rule required.

  2. The oil boiler should not run if the wood boiler is capable of providing heat.

    Need a rule to power the 'backup disable' relay if the wood boiler outlet is hot:

    Backup Disable is true if wood boiler is hot

  3. The system should manage the zone valves to keep the top floor and main floor temperatures at a comfortable temperature.

    Need rules to power the 'force' relays for each floor if the floor is cold:

    Top floor force is true if top floor is cold

    Main floor force is true if main floor is cold

  4. The system should maintain the domestic hot water temperature according to the aquastat in the DHW tank.

    Need a rule to power the 'DHW force' relay if the DHW demand relay contacts are closed:

    DHW force is true if DHW is cold

  5. If the wood boiler is not hot, the system should automatically switch to provide heat from the oil boiler.

    No additional rule needed - #2 above will accomplish this.

  6. If heat is coming from the oil boiler, the living space temperature should be maintained at a lower level.

    Need rules to set the target temperature for each floor to different values based on which heat source is active. These rules will be deferred to a later chapter.

  7. If the NFCS is not connected or is not running, heat should be provided by the oil boiler.

    Accomplished by the failsafe box - no rules required.

These rules must be translated into NFCS rules. As discussed in the programming guide, the NFCS has only three rule types:

  1. Differential rules, which set an element to TRUE or FALSE based on the difference between two elements (usually temperatures)

  2. Logical Rules, which set an element to the value of another element based on whether additional elements are true or false

  3. Timer rules, which set an element to TRUE for a period of time based on the state (true or false) of another element

The next step is to determine how to express the rules described above using the NFCS rule types. Each rule type has a template that describes the terms that are required. These are discussed in more detail in the Programming Guide.

Starting with the first rule, it appears that it might be expressed as a differential rule. The phrase 'wood boiler is hot' implies a difference between the actual temperature and a reference temperature. This is the purpose of a differential rule.

In this case, the actual temperature is available because there is a temperature sensor installed on the wood boiler outlet.

The template for a differential rule looks like this:

Set [Element 1] if [element 2] is at least [element 3] (less than | greater than | equal to) [element 4] with a deadband of [element 5]

Start by restating the rule in the simplest possible form, using data element names.

Set Backup Disable if wood boiler outlet is more than wood boiler minimum temperature

The differential rule template requires some additional values. In this case, the 'difference' term isn't needed, so that can be set to zero. A value for deadband is required as well. Five degrees is reasonable for this situation. Here's the expanded rule:

Set Backup Disable if wood boiler outlet is at least zero degrees less than wood boiler minimum with a deadband of five degrees

Variables will be needed to carry the values for wood boiler minimum, zero degrees, and five degrees.

'Top Floor Force' and 'Main Floor Force' will need similar differential rules:

Set Top floor force if top floor temperature is at least zero degrees less than top floor setpoint with a deadband of two degrees

Set Main floor force if main floor temperature is at least zero degrees less than main floor setpoint with a deadband of two degrees

Variables will be needed to carry the values for top and main floor setpoints as well as 'two degrees'.

DHW is a different case. The DHW temperature is not available, so a differential rule won't work. Instead, there is a discrete input that has a value of 'true' when the DHW is cold. In this case. a logical rule will work:

Set DHW Force to TRUE if DHW Cold is true

This is all that is need for controlling the domestic hot water.


The rules desired system behavior using the NFCS rule structure. Before rules can be created, Data Elements are needed to hold values that will be used in the rules. A data element that holds a value is called a 'variable'.

In the discussion above, we used 'Two Degrees' and 'Five Degrees' as values for deadband. It would be better to use names that don't include the value, since it might be desirable to experiment with different values. It would be confusing to have a variable named 'Two Degrees' that had a value of 1.5. A better name might be 'Thermostat Deadband', for instance.

<Prev Next>