26th March 1999

SeaChange Fan Coil Controller with Standby and Occupancy control from a networked PIR sensor.

FCURX4b1, FCUDX4b1, FCUFX4b1, 

General


The controller provides control of heating and cooling for a Fan Coil or office space as described for standard SeaChange Fan Coil controllers, see the SeaChange CD for more details. This version has extended Occupancy features and has been adapted to facilitate Open System binding.

Occupancy Control


The controller has a setpoint for when the area is occupied (SPFC also nviOccSetpoint) and a setpoint for when the area is not Occupied (nviNoOccSetpoint), a non occupied Cooling setpoint is also calculated to be the same amount above the Occupied setpoint as the not Occupied setpoint is below it. So if the Occupied setpoint is set to 20 and the non occupied (heating) setpoint is 10, then the non occupied cooling setpoint will be 30.

Similarly heating and cooling setpoints are calculated above and below the Occupied setpoint with a deadband of 1C between them. This deadband can be adjusted with a configuration variable (SPDB) or by changing nviSetPtDbnd.

The Occupied and non Occupied setpoints will be provided by binding the appropriate network variables to a SeaChange Zone Controller, or other LonWorks device. The SeaChange Zone Controller will provide optimum start based on occupation time profiles stored within it, the outside temperature, the time of day and the space temperature and will reflect the Occupation status using the output network variable nvoOccupancy. This variable must be bound to all Fan Coil controllers controlled by this Zone Controller.

The Fan Coil controller will control to the setpoint indicated by nviOccupancy. If this variable shows not occupied, then the status of nviPIROccupancy will be checked, if this changes to OC_OCCUPIED then, after an adjustable delay has elapsed (PIRD), and PIROccupancy still shows OC_OCCUPIED the Fan Coil Controller will switch to the Occupied setpoint. The Fan Coil nvoOccupancy network variable will show this state by sending OC_BYPASS (temporarily occupied).

Standby mode

It is intended that nviPIROccupancy is bound to an occupancy sensor which is part of the lighting system.  During the normal daily occupied period, as defined by the Zone Controller's time profile, the data from the lighting system's occupancy sensor is used to change the deadband between the heating and cooling setpoint. The occupied deadband is defined on config variable Setpoint Deadband (SPDB also nviSetPtDbnd) and this will be increased by adding the value of Standby Deadband (SBDB also nviSetPtStbyDbnd) when nviPIROccupancy shows unoccupied.

If nviPIROccupancy shows OC_OCCUPIED when nviOccupancy (from Zone) changes to OC_UNOCCUPIED then the Fan Coil will continue running until the PIR indicates unoccupied, this caters for staff remaining in the office after normal office hours.

Outside Normal Working Hours

If nviPIROccupancy changes to OC_OCCUPIED outside normal office hours, nviOccupancy is UN_OCCUPIED, then the PIR needs to continuously send OC_OCCUPIED for the delay time defined by PIRD (default 10 minutes) before the Fan Coil will switch to occupied. This prevents the system being activated by short term visits by cleaners or staff briefly returning to their desks. Once activated the Fan Coil will run on for a minimum time RMIN (default 10 minutes) after the last OC_OCCUPIED signal from the PIR, this is to prevent short cycling of the Fan Coil.

If the Fan Coil controller does not have a network variable bound to nviPIROccupancy then the Occupied Deadband is controlled solely by SPDB.

Factory Test

If the controller is powered up with the registration button depressed then it will enter a factory test mode.

Warning: this mode changes the selectors on nviConfigData and nviConfigPara to suit the factory test equipment so the unit will need to be re-commissioned when replaced in a system.

Manual setup


The Controller has a manual mode which cycles through the following steps by pressing the override button repeatedly.

  1. Hold override button until the status light flashes, indicating manual, at this stage the controller is put into occupied mode and the outputs will activate to control to the Occupied setpoint.
  2. Press override once, the controller will demand full heating, the temperature indicator will show red.
  3. Press override again, the controller will demand full cooling. The temperature indicator will show yellow.
  4. Press override again automatic mode indicated by status led not flashing



Manual mode can be cancelled over the network using configuration variables.

Alarm Response


The controller will detect if it's sensor fails open circuit or short circuit or if it reads outside the range 1-40C. A common sensor fail alarm will be generated and broadcast to the network as nvoConfigData with the size field set to 0. The network interface needs to decode the config variable number, the label, and the source address. The controller can then be polled to get it's location label for identification of the alarm to the user.

The controller will take action on the alarm depending on the setting of config ALRM. When this parameter is set to 2, a sensor fail alarm will set the controller to manual with both heating and cooling set to zero, the fan will run if the controller is Occupied.

The controller will also shut down the fan coil on receipt of a STOP alarm if ALRM=3. The Fan Coil will remain shut down until receipt of a CLEAR alarm from the same address. Alternatively the alarm can be cleared by setting ALRM to zero.

Configuration Variables


The variables nviConfigPara and nvoConfigData are used to allow configuration variables and all measured variables both real and calculated to be made available at any Zone Controller. It is necessary for the Network interface for the supervisor to have matching input and output network variables. The output config network variables need to be bound to all the corresponding input network variables on all SeaChange nodes, also they need to be bound to the network interface's corresponding input network variables as shown in this diagram.




This binding scheme causes the binding tool to create a common selector for all ConfigPara network variables and similarly for all ConfigData network variables, it also puts all SeaChange nodes in one group, this allows any Zone Controller to access the data from any other SeaChange node. The SeaChange nodes create output network variable messages from within the application code using the same network variable selector as the same type input network variable. These messages are addressed to the requesting node.

If a SeaChange network interface module (SLTX) is used together with the PC program SeaChange Doorway then the configuration variables may be displayed and changed from the PC.
If a non SeaChange interface is used then some programming will be needed to access the configuration variables at the network interface. The network interface needs to create config variable requests on nvoConfigPara and decode the reply received on nviConfigData. The structures for these variables are

ConfigPara
Single byte, unsigned variable requesting config parameter 1-255

ConfigData
Neuron C structure of the form
typedef struct cnfg_data{
    unsigned int        number;
    unsigned int        label[4];
    unsigned int        size;             //used to decode differing data formats
    long                      minimum;
    long                      maximum;
    unsigned int       relative :1;
    unsigned int       unit        :7;
    unsigned int       spare;
    unsigned int        dp;
    }cnfg_data;

number : the config parameter number
label      :a four character ascii label
size       :allows for different packing formats
                    0 used for alarm formats
                    1 variables are single byte integers
                    2 variables are signed long (2 bytes)
                    3 variables are TRN format  (3 bytes)
minimum:        minimum value for this variable
maximum: maximum value for this variable
value        :value of the variable

For Open Systems product ConfigData is always sent with size=2.


Configuration variables supported