0% found this document useful (0 votes)
5 views3 pages

Tov 1 Area

The document outlines a routine for monitoring timed override requests from VAV boxes in a specified area, controlling the area's occupancy status based on user-defined override times. It includes variable definitions, initialization, and logic for handling override and cancel requests. The routine is designed to execute once a minute and is intended for use with specific UCMs, ensuring proper operation within the same BCU.

Uploaded by

ziddialirajpoot
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views3 pages

Tov 1 Area

The document outlines a routine for monitoring timed override requests from VAV boxes in a specified area, controlling the area's occupancy status based on user-defined override times. It includes variable definitions, initialization, and logic for handling override and cancel requests. The routine is designed to execute once a minute and is intended for use with specific UCMs, ensuring proper operation within the same BCU.

Uploaded by

ziddialirajpoot
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

PROGRAM Area_1_TOV

// Written: 4/17/97

// Modified:

// Properties Read:

// Properties Modified:

// Routine Summary:
/// This routine monitors the timed override request from all the
/// vav boxes in an area and controls the area's {Present Value} to
/// occupied for a user-edited amout of time. It also monitors all the
/// timed override cancel requests and releases the area from TOV if
/// there is a cancel request.

// We recommend that this cpl object, the Area object and all the
// VAV objects reside in the same BCU. If possible, do not put this
// cpl object in one BCU to control Areas in another BCU.

// This routine is currently written for the VAV II/III UCM. Other
// UCMs also recognize the TOV (and cancel) signal, but their property
// names may not be exactly the same. This routine should work
// very well for other UCMs as long as the correct properties are used.

/// Routine Execution: This program is executed once a minute.

/// Routine Text File: TOV1AREA.CPL

// ***** Define Variables *****


// In this section, the programmer defines the variables used throughout
// this routine. The only variables that require editing are in the "User
// Edited Variables" section. No other changes are required.

DEFINT
On = 1, // Enumeration for On
Up = 1, // Enumeration for Up
Occupied = 2, // Enumeration for Occupied
Unoccupied = 0, // Enumeration for Unoccupied
Remaining_Time, // time remaining in the override
TOV_Flag, // Status of TOV condition
i, // FOR Loop counter
Cancel_Flag, // Status of TOV cancel condition
Override_Time, // Length of time area will be overridden

// ***** begin User Edited Variables *****


Group_Size = 5 // Total number of VAV boxes in the Area

DEFOBJ
Area, // the Area object to be overridden
VAV[Group_Size] // the array of VAV objects in the Area

// The variable below is the {Present Value} property of an analog


// output object in the database. This allows the user to change the override
// time from a graphic or from objects & properties. If analog outputs are
// not used, simply enter the number of override minutes here rather than the
// Obj&Property.
// For example, Override_Time = 120
// Important! Use the Add Obj&Property selection under the Edit menu
// to select the correct property.

Override_Time = {Override Time 1}.{Present Value}

// define the Area object in the database that will be controlled


// by this routine. Also define the vav box objects that are
// monitored for the timed override signal.

// Important! Use the Add Object selection under the Edit menu
// to select the correct objects.

// Assign the Area object. This routine will control this Area to
// occupied mode if a timed override request is received from any
// of its VAV boxes.
Area = {1st Floor Area}

// Assign the array of VAV Objects. An override signal from any VAV
// box in this array will override the Area into the occupied mode for
// Override_Time minutes.
VAV[1] = {VAV Box -01-067}
VAV[2] = {VAV Box -01-068}
VAV[3] = {VAV Box -01-069}
VAV[4] = {VAV Box -01-070}
VAV[5] = {VAV Box -01-071}

// ***** end User Edited Variables *****


// No changes are required beyond this point.

// Initialize Variables:

Remaining_Time = Local.{Saved Value}[1]


TOV_Flag = Local.{Saved Value}[2]

// For-Next loop: in this section a for-next loop is used to check each


// VAV box. If the box is not communicating it is ignored. If it is
// communicating, its {Timed Override Request} property is checked. If
// there is a request we set the two flags and set the remaining time to
// override time (user defined). Then exit the for-next loop; only
// one request is needed to start or reset the override. The
// {Timed Override Cancel} property of each box is also checked. If there
// are no override requests, and there is a cancel request, its flag is set.
// Note that override requests have priority over cancel requests and that
// any override request resets the override time (even if another request
// is currently counting down).

FOR i = 1 to Group_Size STEP 1


IF (VAV[i].{Communication State} = Up) THEN
IF (VAV[i].{Timed Override Request} = On) THEN
TOV_Flag = 1
Cancel_Flag = 0
Remaining_Time = Override_Time
EXIT FOR
END IF
IF ((VAV[i].{Timed Override Cancel} = On) and (TOV_Flag = 1)) THEN
Cancel_Flag = 1
END IF
END IF
NEXT
// In this section, if an override is currently in process, check to see
// if it has timed out or been cancelled. Release the Area if that is the
// case. If not, check whether the Area needs to be put in occupied mode
// and subtract one minute from the time remaining in the override.

IF (TOV_Flag = 1) THEN
IF ((Remaining_Time = 0) or (Cancel_Flag = 1)) THEN
TOV_Flag = 0
Cancel_Flag = 0
Remaining_Time = 0
CONTROL (Area, {Present Value}, Unoccupied, 14, RELEASE)
ELSE
IF (Remaining_Time = Override_Time) THEN
CONTROL (Area, {Present Value}, Occupied, 14, SET)
END IF
Remaining_Time = Remaining_Time - 1
END IF
END IF

// Save Remaining_Time and TOV_Flag to local saved values


// and exit the routine.

Local.{Saved Value}[1] = Remaining_Time


Local.{Saved Value}[2] = TOV_Flag

END // end of timed override routine

You might also like