The input pins are sysSwitch, cmdMode, supplyTemp, effHeatSP, effCoolSP and allowAutoChange. The output pins are EFF_SETPT and EFF_TEMP_MODE. The control type input can be CVAHU or VAV. This function automatically calculates the effective temperature control mode based on the control type, system switch setting, network mode command, temperature set points, supply temperature and space temperature. From iteration to iteration, the Function Block keeps track of the previous command mode and the effective temperature mode. On power up or reset, these are cleared.
effTempMode indicates the current Mode determined by input states and arbitrated by control logic. SetTempMode does not generate all the possible Modes available. The valid enumerated values have the following meanings:
| effTempMode | Meaning |
| COOL_MODE=0 | Cool air is being supplied to the node via the central air supply and cooling energy is being supplied to the controlled space. |
| REHEAT_MODE=1 | Cool air is being supplied to the node via the central air supply. The air is being reheated by a local Heat source. |
| HEAT_MODE=2 | Heated air is being supplied to the node via the central air supply and heated air is being supplied to the controlled space. |
| EMERG_HEAT=3 | Emergency Heat is being supplied to the node via the central air supply. |
| OFF_MODE=255 | Controller is commanded off. |
Analog Inputs
| Range | |||||
| Input Name | Cfg | Low | High | Input Value | Description |
| sysSwitch | IN | 0 | 255 | unconnected | SystemSwitch = SS_AUTO(0) |
| invalid | SystemSwitch = SS_AUTO(0) | ||||
| VAL < low | SystemSwitch = SS_AUTO(0) | ||||
| VAL > high | SystemSwitch = SS_AUTO(0) | ||||
| cmdMode | IN | 0 | 255 | unconnected | val = CMD_AUTO_MODE(0) |
| invalid | val = CMD_AUTO_MODE(0) | ||||
| VAL < low | val = CMD_AUTO_MODE(0) | ||||
| VAL > high | val = CMD_AUTO_MODE(0) | ||||
| supplyTemp | IN | 0 | 255 | unconnected | SupplyTemp = invalid |
| invalid | SupplyTemp = invalid | ||||
| VAL < low | SupplyTemp = low | ||||
| Val > high | SupplyTemp = high | ||||
| spaceTemp | IN | 0 | 255 | unconnected | SpaceTemp = invalid |
| invalid | SpaceTemp = invalid | ||||
| Val < low | SpaceTemp = low | ||||
| Val > high | SpaceTemp = high | ||||
| effHeatSP | IN | >=- infinity | <+ infinity | unconnected | EffHeatSp = 68 |
| invalid | EffHeatSp = 68 | ||||
| effCoolSP | IN | >=- infinity | <+ infinity | unconnected | EffCoolSp = 75 |
| invalid | EffCoolSp = 75 | ||||
| allowAutoChange | IN_PAR | 0 | 1 | unconnected | allowAutoChange=1 |
| invalid | allowAutoChange=1 | ||||
| Val < low | allowAutoChange=1 | ||||
| Val > high | allowAutoChange=1 | ||||
Outputs
| Range | ||||
| Output Name | Cfg | Low | High | Description |
| effSetpt | OUT_FLT | 0.0 | 255.0 | If effTempMode=COOL_MODE then val= effCoolSetPt, else val=effHeatSetPt |
| effTempMode | OUT_DIG | 0 | 255 | See arbitration table for VAV and CVAHU behavior |
Configuration
Specify the control Type (controlType)
Input Enumerations
| sysSwitch | |
| SS_AUTO | = 0 |
| SS_COOL | = 1 |
| SS_HEAT | = 2 |
| SS_EMERG_HEAT | = 3 |
| SS_OFF | = 255 |
| cmdMode | |
| CMD_AUTO_MODE = 0 | = 0 |
| CMD_HEAT_MODE = 1 | = 1 |
| CMD_COOL_MODE = 2 | = 2 |
| CMD_OFF_MODE = 3 | = 3 |
| CMD_EMERG_HEAT_MODE = 4 | = 4 |
| CMD_NUL_MODE = 255 | = 255 |
The CVAHU arbitration logic for ControlType = 0 (CVAHU) is summarized by the table below:
| Space Temp | sysSwitch | cmdMode | effTempMode |
| X | X | CMD_OFF(3) | OFF_MODE(255) |
| X | X | CMD_EMERG_HEAT_MODE(4) | EMERG_HEAT(3) |
| X | X | CMD_COOL_MODE(2) | COOL_MODE(0) |
| X | X | CMD_HEAT_MODE(1) | HEAT_MODE(2) |
| X | X | ENUMERATION (5) through ENUMERATION (254) |
HEAT_MODE(2) |
| X | SS_COOL (1) | CMD_AUTO_MODE(0), CMD_NUL_MODE(255) | COOL_MODE (0) |
| X | SS_HEAT (2) or ENUMERATION(4) through ENUMERATION (254) |
CMD_AUTO_MODE(0), CMD_NUL_MODE(255) | HEAT_MODE(2) |
| X | SS_EMERGENCY_HEAT(3) | CMD_AUTO_MODE(0), CMD_NUL_MODE(255), | EMERG_HEAT(3) |
| X | SS_OFF (255) | CMD_AUTO_MODE(0), CMD_NUL_MODE(255) | OFF_MODE(255) |
| INVALID | SS_AUTO(0), invalid, unconnected, or a non-listed enumeration. | CMD_AUTO_MODE(0), CMD_NUL_MODE(255) | HEAT_MODE(2) |
| VALID | SS_AUTO(0), invalid, unconnected, or a non-listed enumeration. | CMD_AUTO_MODE(0), CMD_NUL_MODE(255), | COOL_MODE(0) or HEAT_MODE(2) (see note 2) |
X means Do not Care
Note 2: If allowAutoChange = 1 then allow to switch between HEAT_MODE and COOL_MODE. Must have valid effHeatSP and effCoolSP. If allowAutoChange = 1 and effHeatSp > effCoolSp, then effHeatSp is internally set to effCoolSP.
The VAV Mode arbitration logic for controlType = 1 (VAV) is summarized by the table below:
| Space Temp | sysSwitch | Supply Temp | cmdMode | effTempMode |
| X | X | X | CMD_OFF_MODE(3) | OFF_MODE(255) |
| X | X | X | CMD_EMERG_HEAT_MODE(4) | HEAT_MODE(2) |
| X | X | X | ENUMERATION (5) through ENUMERATION (254) |
COOL_MODE(0) |
| Valid | X | <70.0 | CMD_AUTO_MODE (0), CMD_HEAT_MODE (1), CMD_NUL_MODE (255) | COOL_MODE (0) or REHEAT_MODE (1) (see note 1) |
| Valid | X | <70.0 | CMD_COOL_MODE(2) | COOL_MODE (0) |
| Valid | X | 70.0 TO 75.0 | CMD_AUTO_MODE (0), CMD_HEAT_MODE (1), CMD_COOL_MODE (2), CMD_NUL_MODE (255) | COOL_MODE (0), REHEAT_MODE (1), HEAT_MODE (2) (see note 1 for transition between cool mode and reheat mode) |
| Valid | X | >75 | CMD_AUTO_MODE (0), CMD_HEAT_MODE (1), CMD_NUL_MODE (255) | HEAT_MODE(2) |
| Valid | X | Invalid or unconnected | CMD_HEAT_MODE (1) | HEAT_MODE (2) |
| Valid | X | Invalid or unconnected | CMD_COOL_MODE (2) | COOL_MODE (0) |
| Valid | SS_COOL(1) | Invalid or unconnected | CMD_AUTO_MODE (0), CMD_NUL_MODE (255) | COOL_MODE(0) |
| Valid | SS_HEAT(2) | Invalid or unconnected | CMD_AUTO_MODE (0), CMD_NUL_MODE (255) | HEAT_MODE(2) |
| Valid | SS_ EMERGENCY_HEAT(3) |
Invalid or unconnected | CMD_AUTO_MODE (0), CMD_NUL_MODE (255) | HEAT_MODE(2) |
| Valid | SS_OFF(255) | Invalid or unconnected | CMD_AUTO_MODE (0), CMD_NUL_MODE (255) | OFF_MODE(255) |
| Valid | SS_AUTO(0), invalid, unconnected, or a non-listed enumeration. | Invalid or unconnected | CMD_AUTO_MODE (0), CMD_NUL_MODE (255), | COOL_MODE(0) or REHEAT_MODE(1) (see note 1) |
| InValid | SS_AUTO(0), invalid, unconnected, or a non-listed enumeration. | Invalid or unconnected | CMD_AUTO_MODE (0), CMD_NUL_MODE (255), | COOL_MODE(0) |
X means Do not Care
Note 1: If allowAutoChange = 1 then allow to switch between REHEAT_MODE and COOL_MODE. Must have valid effHeatSP and effCoolSP.
If in cool mode and spacetemp < effheat setpt and space temp < effcoolsetpt - 1.0 then go to reheat mode. If in reheat mode and spacetemp > effCoolSetpt and spacetemp > effHeatsetpt + 1.0 then go to cool mode.