Infinity Controller Programmer'

Controlling Tomorrow’s World
This manual is included for informational purposes
only. It is superceded by the
SX 8000 Programmer’s Guide, Version 2.0.
Infinity Controller
Programmer’s Guide
Electronic Version
Andover Controls Corporation
www.PDF-Zoo.com
i
Version 1.4
Reproduction or distribution forbidden.
Copyright  1993–1996 by Andover Controls.
Subject to change without notice.
Order No. 30-3001-166
Copyright  1993
Andover Controls Corporation
300 Brickstone Square
Andover, Massachusetts 01810
All Rights Reserved.
IMPORTANT NOTICE
The number of points, files, system objects, entries in a log or array, exchanged points, and statements you can program are all subject to memory and
system limitations. Controller scan speed is reduced as you increase the number objects defined and amount of communication activity on the network.
Various operations or activities on the system will affect system performance.
You should check the amount of memory available frequently (see the Andover Controls 9000 programmer’s guides for details). Consult with your Andover Controls representative concerning the amount of memory your installation requires.
Examples in this book are for illustrative purposes only and must never be
used in an actual building.
This product is subject to change without notice. This document does not constitute any warranty, express or implied. Andover Controls Corporation reserves the right to alter capabilities, performance, and presentation of this
product at any time.
ii
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
The following trademarks are used in this manual:
CROSSTALK is a registered trademark of Digital Communications
Associates, Inc.
IBM is a registered trademark of International Business Machines, Inc.
VT is a trademark of Digital Equipment Corporation.
The following are registered trademarks of Andover Controls Corporation:
Andover Controls Plain English
EnergyNet
Infinet
Andover Controls Corporation
www.PDF-Zoo.com
iii
Preface
The Andover Controls Infinity CX Programmer’s Guide is a two volume set.
The volumes present the following:
• Volume 1—Getting Started Programming
• Volume 2—Advanced Programming/Access Control
If you are using the control system for HVAC, you should proceed
through this manual sequentially. If you are using the control system for
access control, begin with Chapter 21 in Volume 2.
If you do not know anything about HVAC, this manual does not provide
adequate information. The examples in it are extremely simplistic for
purposes of illustrating programming techniques and concepts. For
complete information on HVAC or programming HVAC, refer to other
sources.
iv
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Volume 1—Getting Started
Programming
The Andover Controls Infinity Controller Programmer’s Guide Volume
1 presents step by step instructions for setting up the controller system
and fundamental programming in Andover Controls Plain EnglishTM.
Whether you use this system for HVAC or for access control, you
should already have installed your hardware before you attempt to set
up the Infinity CX system. If you do not know how to arrange your
network to set up your hardware, refer to the EnergyNet and Infinet
Configuration Guide.
The chapters of this book present the following:
• Chapter 1—Understanding Controller Hardware
• Chapter 2—Setting Up EnergyNet and Infinet
• Chapter 3—Setting Up Logons, LBuses, Terminals, and Printers
• Chapter 4—Naming and Defining Points
• Chapter 5—An Overview of the Programming Process
• Chapter 6—Writing Fundamental Programs
• Chapter 7—More Fundamental Keywords
• Chapter 8—Working with Triggers, Logs, and Special Conversions
• Chapter 9—Altering and Further Developing Programs in Your Set
• Chapter 10—Creating and Using Numeric, String, and DateTime
Points
For more advanced programming, refer to Volume 2.
Andover Controls Corporation
www.PDF-Zoo.com
v
Volume 2—Advanced Programming
and Access Control
The Andover Controls Infinity Controller Programmer’s Guide Volume
2 presents instructions for programming with advanced keywords in
Andover Controls Plain EnglishTM. This volume is a continuation of
Volume 1 and assumes you have read Volume 1.
If you are using controllers for access control only, you should begin
with Chapter 21 in this volume. This volume also covers creating your
own functions, setting up and using data files, and programming DCX
250, modems on Infinity CX and CMX controllers, expansion modules,
and more. It also has a special chapter on debugging techniques.
The chapters in this volume present the following:
• Chapter 11—Programming with Advanced Keywords
• Chapter 12—Defining Your Own Functions
• Chapter 13—Creating, Using, and Searching for Data in Files
• Chapter 14—Debugging Techniques
• Chapter 15—Programming the DCX Screen
• Chapter 16—Programming Modules, ReaderDoors, and Lighting
Controllers
• Chapter 17—Dialing Modems
• Chapter 18—Advanced Functions for Experts
• Chapter 19—Loading and Saving Programs
• Chapter 20—Operating on Battery Backup
vi
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
• Chapter 21—Introducing and Planning Access Control
• Chapter 22—Setting Up Areas and Doors for Access Control
• Chapter 23—Setting Up Persons for Access Control
• Appendix A—Keystrokes
• Appendix B—Error Messages
• Appendix C—DCX Graphic Controls and Frame Styles
• Appendix D—Storing Areas and Persons on Infinity CX 9000/220
Andover Controls Corporation
www.PDF-Zoo.com
vii
viii
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Chapter 1
Understanding
Controller Hardware
This chapter presents the following topics:
•
•
•
•
www.PDF-Zoo.com
About the Controller Network
Knowing about Point Types
Expansion Modules Inputs and Outputs
Small Network Controllers
Understanding Controller Hardware
About the Controller Network
Elements of the
Network
The Andover Controls control system consists of:
• One or more Infinity CX controllers.
Or one Infinity CMX controller for a smaller network.
• One or more Infinity SX 8000 workstations (optional).
• Input/output units (IOUs) attached to each Infinity CX
9000. (For best performance we recommend you use only
three.) The Infinity CX 9500 has its own inputs and
outputs.
• An optional series of smaller controllers called Infinet
controllers that may each have optional EMX modules. All
Infinity CX controller may have at least one Infinet.
• At least one computer terminal (screen) for human access
to the system. (Can also be a computer running a VT100
terminal emulator communications package, such as
CROSSTALK.)
• An optional printer for printing messages.
You might find it useful to draw a sketch of the network,
showing each item.
Figure 1-1 shows what a map of a typical network looks like.
Find Controller Tags
You should have a tag that came from each controller, IOU,
or Infinet controller. The tag has the serial number and location of the equipment. You may want to label your map so it
reflects the actual layout of the controller system.
Each Infinity CX controller on that map can have one or more
input output units (IOUs). Each IOU has a number the controller identifies it by. That number is marked on the map.
1-2
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Understanding Controller Hardware
Figure 1-1. Sample Map of a Network
Infinet Cable
SCX
900
SCX
900
IOU
IOU
IOU
Infinity CX 9000
LBUS Cable
EnergyNet
Cable
SCX
900
LCX
800
IOU
IOU
TCX
850
SCX
900
IOU
Infinity CX 9500
VT100
Infinity CX 9000
TCX
850
SCX
900
Infinity CX 9500 (has built-in inputs and outputs)
Infinity SX 8000
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
1-3
Understanding Controller Hardware
Knowing about Point Types
Input and Output Points
Each IOU on the controller has 32 universal input sensors and
16 outputs, which may be universal, tristate, or Form C (ON
and OFF). The “universal” inputs and outputs accept input
from and send output to several types of sensors or devices
without any hardware alterations.
We refer to all these sensors and transmitters as input and output points.
Input and output points are Infinity’s way of interacting with
the environment.
An input point is constantly receiving information about, for
instance, the temperature in a room. While that temperature
remains within a set range (say 68 to 72), the controller takes
no action.
If the heat is off and not needed, the controller does not turn it
on. When the temperature drops below 68 or rises above 72,
the point triggers a response from the controller.
Usually, only when a point changes does the controller take
action. Types of points other than inputs and outputs are described in Chapter 5.
Plain English Names
Rules for Naming Points
The controller cannot act on a point unless you tell it the name
and location of the point. So you must assign a name to each
point.
Points and other items on the controller can be named with up
to 16 alphabetic and numeric characters, including periods
and underscores. The first character must be alphabetic.
You can enter the name in upper and lowercase the first time
so it is more readable than all caps, but the controller under-
1-4
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Understanding Controller Hardware
stands it as the same name in either case. For example, the
controller reads the following two names as the same:
SupplyAir
SUPPLYAIR
The first is obviously easier for you to read. If you enter it that
way the first time, later, even when you enter SUPPLYAIR,
the controller will reprint it on the screen as SupplyAir each
time you open the program file.
Procedures to tell the controller the names of all the points are
in Chapter 4.
Locating Controller Points
You might want to make copies of the drawings on the next
few pages, one for each Infinity CX 9000 IOU and each Infinet
controller on the network.
The drawings show the input and output points and the numeric labels supplied at by Andover Controls. In your
drawing, you write a name next to each input and output that
defines its purpose. Note which IOUs are tristate, universal, or
Form C.
You can later follow these drawings when setting up points.
If you have many IOUs connected to one Infinity CX 9000, or
a great many Infinet controllers, these drawings may help
avoid confusion.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
1-5
Finding Points on IOUs
Understanding Controller Hardware
Figure 1-2 is a drawing of an IOU, showing the input and
output points (usually used with Infinity CX controllers).
INPUTS
F
g
i
u
of
Infinity CX 9000 Name CentralPlant
2
1
IOU Number
Universal Points
OUTPUT
NUMBERS
OUTPUTS
Points on IOUs
1-6
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Understanding Controller Hardware
Figure 1-3 is a drawing of a Infinet controller, SCX 900
showing the input and output points.
Points on an SCX 900
Figure 1-3. Drawing Showing SCX 900 Points
X
X
AC
INPUT
GND
X
NEU
X
LCD VIEW ANGLE
X X
X X
X X
X X
X
X X
X X
x
F19, 3A, 250V
SLOW BLOW
x
EPROM
USE COPPER
CONDUCTORS ONLY
AC INPUT VOLTAGE SELECTION
24V
115V
230V
From To From To From To
E1
E3
E1
E4
--E2
E5
E2
E7
E2
E7
TP10
E6 TP10
E6 TP10
E4
X X
HOT
X
X
1
x
x
x
x
x
x
x
x
x
SCX
x
ADJ
x
X
+
X
- On
Off
Auto
Off
ADJ
3.6 V
x
X
X
X
-
3
x 2 x
STATUS
Off
+On
INPUTS
ADJ
x
X
X
X
X
X
X
X
X
X
X
X
X
RET INPUT
X
X
X
X
X
X
X
X
X
X
X
X
RET
1
2
RET OUT
7
8
1/8 A
-On
Off
Auto
x
x
3
Off
REFERENCE
RESISTOR
RET X
X 1 2
3 X
X 3
X
4 X
X
X 5 4
RET X
X
X 7 6
5 X
X
X
8
6 X
X
CPU
x
4
+On
ADJ
x
- On
Off
Auto
x
5
+On
ADJ
IN
x
-O n
Off
Auto
x
RD
1/8 A
x 5 x
Off
9
10
INPUT
REFERENCE
RESISTOR
RET
9
X
11 X
10
xx
xx
X
x 11 12
x
12 X
X
X
x
x
X
x
x
RET X
13
xx 14
x
X
X
13 Xxx
X
xx 15
X
14 X
x 16
xx
X
X
RET
15
16
OUT
+On
ADJ
x
- On
Off
Auto
+
–
SHLD
ADJ
x
IN
RESET
X
Infinity Controller Programmer’s Guide
X
x
x 8
Off
NC
C
NO
I
V
GND
GND
I
V
NC
C
NO
X
X
X
X
X
X
X
X
X
X
X
X
NC
C
NO
I
V
GND
GND
I
V
NC
C
NO
1/8 A
8
NC
C
NO
I
V
X
X
X
X
X
X
X
X
X
X
X
X
GND
I
V
NC
C
NO
+On
F1
1/8 A
X
X
Form C
Tristate
+On
Auto
7
x
x 7 x
x
INFINET
6
x
OVERRIDE
+ 24 V
EXTERNAL
-On
Off
Auto
Off
SERVICE
PORT
X
x
+On
ADJ
X
X
X
x 6
Off
X
X
X
X
X
X
X
X
X
X
X
X
TD
x 4 x
Off
INPUTS
www.PDF-Zoo.com
Form C
Tristate
- On
Off
Auto
NC
C
NO
I
V
GND
GND
I
V
NC
C
NO
x
+On
F14
2A
2
x 1
X
X
X
X
X
X
X
X
X
X
X
X
X
X
EXPANSION
PORT
X
1-7
OUTPUT
Understanding Controller Hardware
Points on an TCX 850
Figure 1-4 is a drawing of a TCX 850, showing the input and
output points. The TCX 851 is similar, but has only the first
four inputs.
Figure 1-4. Drawing Showing TCX 850/851 Points
OUTPUTS
INPUTS
G
N
D
N
E
U
H
O
T
C
OUT1
NO
C
OUT2
+
IN1
NO
C
OUT3
RET
IN2
NO
C
OUT4
RET
+
IN3
+ ON
RET
– ON
IN4
IN5
RET
MIN
INPUTS
IN6
IN7
SP
MAX
INPUT 8
+
SHLD
–
–
1-8
www.PDF-Zoo.com
+
Infinity Controller Programmer’s Guide
Understanding Controller Hardware
Figure 1-5 shows the TCX 853 inputs and outputs. The
universal inputs are 5 through 6, the airflow inputs 7 and 8.
Points on an TCX 853
Figure 1-5. Drawing Showing TCX 853 Points
G
N
D
N
E
U
H
O
T
C
OUT1
NO
C
OUT2
+
IN1
NO
C
OUT3
RET
IN2
RET
INPUTS
IN3
NO
C
OUT4
+
+ ON
IN5
RET
RET
IN4
IN6
RET
RET
Inputs
–ON
INPUT 7
INPUT 8
+
SHLD
–
–
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
+
1-9
OUTPUTS
Understanding Controller Hardware
Points on an LCX 800
Figure 1-6 is a drawing of an LCX 800, showing the input and
output points.
Figure 1-6. Drawing Showing LCX 800 Points
G
N
D
N
E
U
H
O
T
OUT1
NC
C
NO
OUT2
OUT3
NC
C
NO
NC
C
NO
OUTPUTS
NC
C
NO
+
–
OUT4
SHLD
OUT5
INPUTS
NC
C
NO
RET
IN1
IN2
RET
IN3
IN4
RET
IN5
IN6
RET
IN7
IN8
OUT6
OUT7
NC
C
NO
OUTPUTS
NC
C
NO
OUT8
1-10
www.PDF-Zoo.com
NC
C
NO
Infinity Controller Programmer’s Guide
Understanding Controller Hardware
Figure 1-7 is a drawing of an LCX 810, showing the input and
output points.
Points on an LCX 810
Figure 1-7. Drawing Showing LCX 810 Points
AC
INPUT
USE COPPER
CONDUCTORS ONLY
GND
NEU
xxxxxxxxxxx IN
xxxxxxxxxxx OUT
INPUT
REFERENCE
RESISTOR
1
+
2
3.6V
INPUTS
RET
1
2
RET
3
4
RET
5
6
RET
7
8
3
–
4
CPU
STATUS
LIGHTS
INPUTS
TD
5
RD
6
7
OVERRIDE
+
–
SHLD
INFINET
SERVICE
PORT
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
NC
C
NO
NC
C
NO
NC
C
NO
NC
C
NO
8
+24V
EXTERNAL
EXPANSION
PORT
1-11
NC
C
NO
NC
C
NO
NC
C
NO
NC
C
NO
OUTPUTS
HOT
Understanding Controller Hardware
Figure 1-8 shows the ACX 700 supervisory input points.
Points on an ACX 700
Figure 1-8. Drawing Showing ACX 700 Points
AC
INPUT
USE COPPER
CONDUCTORS
ONLY
GND
AC INPUT VOLTAGE SELECTION
24V
115V
230V
NEU
FROM TO FROM TO
E6
E4
P1
HOT
E7
E3
E1
E6
E4
P1
E5
E2
E1
FROM TO
-E4
P1
-E5
E2
ACX700
F1
3A,250V
SLOW BLOW
+
PWR
ON
+12VDC
-INPUT
B1
3.6V
1.8AHr
LITHIUM
IN1
RET1
IN2
RET2
IN3
RET3
IN4
RET4
INPUTS
KEYPAD 1
C1
C2
C3
R1
R2
R3
R4
RET
KEYPAD 2
C1
C2
C3
R1
R2
R3
R4
RET
–
SUPERVISORY
INPUTS
IN5
RET5
IN6
RET6
IN7
RET7
IN8
RET8
TAMPER
SWITCH 9
RESET
EXT
TAMPER
ABA
SWITCH
+5V
LED
I/DATA
O/CLK
GND
+5V
LED
I/DATA
O/CLK
GND
OVERRIDE
DOORS
AUTO/OFF/ON
DOOR 1
OUTPUT
WIEGAND
READER 1
READER 2
CPU
TD
AUTO/OFF/ON
DOOR 2
OUTPUT
ABA
RD
OUTPUT 3
WIEGAND
INFINET
+
–
SHLD
+24VDC CLASS 11
160 A
m
SERVICE
PORT
EXPANSION
PORT
1-12
www.PDF-Zoo.com
AUTO/OFF/ON
OVERRIDE
Infinity Controller Programmer’s Guide
Understanding Controller Hardware
For this special controller, you do not set up ordinary points.
Instead, you set up Doors, as described in Chapters 21, 22,
and 23 of Volume 2. Doors are similar to points. Each door
has a channel number. Door1 is channel 1, Door2 channel 2.
You can also connect a door to Output 3 (channel 3).
You do not set up the card readers or keypads as input points,
but associate a card reader or keypad with a particular door by
assigning the channel number (Reader1 is channel 1, Reader2
is channel 2) to the card reader for the particular door.
You can, in addition, set up the supervisory inputs as input
points. For information about the types of sensors you can
wire to supervisory inputs, and for more information about
Doors and access control, see Chapters 21, 22, and 23. Refer
to Chapter 4 for how to set up supervisory point types.1
1. For an alternative method of setting up doors, see Chapter 16.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
1-13
ACX 700 Has Doors
Understanding Controller Hardware
Figure 1-9 is a drawing of an LCX 890, showing the input and
output points, and the location of the switches for momentary
manual control.
Points on an LCX 890
Figure 1-9. Drawing Showing LCX 890 Points
Momentary
Switches
Output
Relays
(Max Number
Possible
Shown—24)
24 VAC
Rectified
Power
Terminal for
Occupancy
Sensor
Digital
Inputs
LCX 890
INPUTS
Universal
Inputs
EMX 170 or SP 100 Port
1-14
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Understanding Controller Hardware
Expansion Module Inputs and
Outputs
You may attach a limited number of expansion modules to each
Infinet controller model. The number is based on the following:
Caution—Memory Limitation
You may run out of memory before the maximum number of
expansion points, so keep the number to a minimum.
• Never use more than two of any particular model number.
• The total number of inputs or outputs that are on the
modules must never be more than the number allowed on
the Infinet controller—see the table below.
• You must set the first output module on the chain to Board
1, the second to Board 2, the third to Board 1, the fourth to
Board 2, and so on—no matter which model number
modules. When you start the input modules, start at
Board 1 again and continue to alternate from 1 to 2.
• A single EMX 190 must be the last output module on any chain.
Two of them must be the last two output modules on any chain.
• A SmartSensor (EMX 170) must be the last module on any chain.
• If all modules attached to a single controller consume
more than 110 mA, you must add an external power supply
to the chain. To determine the milliamps each module consumes and whether or not you require an external power
supply, see the ACC EMX Modules Configuration Guide.
Based on the table, you can have up to eight expansion
outputs on a LCX 810. So you can, for example, have two
EMX 150s (two outputs each) and two EMX 155s (two outputs
each) on that controller, for a total of eight expansion outputs.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
1-15
Attach Limited Number
of Expansion Modules
Understanding Controller Hardware
You may never have more than two of any single module.
Table 1-1. Number of Base, Expansion Module, and
Total Inputs/Outputs Allowed for Various Controllers
Controller
Model No.
Inputs
Base
Outputs
Exp
Total
Base
Exp
Total
TCX 850/851
8
17
25
4
2
6
LCX 810
8
17
25
8
8
16
SCX 900
16
17
33
8
8
16
ACX 700
8
21
29
3
4
7
An alternative would be to have two EMX 150s (with two
outputs each), one EMX 151 (with two outputs), and one EMX
140 (with two outputs). Again, the total is eight expansion
outputs.
You can mix inputs with outputs so that, in addition to the
outputs, you could have two EMX 160s and one EMX 170. Be
sure to put the EMX 170 at the end of the chain.
Note
Note that EMX 140 and 150 expansion module outputs do not
give standard feedback indicating when you are controlling the
point manually or what its manual control setting is.
Setting the Board
Switches
Be sure you set the Board switch of the first module to Board
1, and the second to Board 2 (see illustrations that follow for
location of Board switch) and you put one immediately after
the other. (Never set the first one to Board 2.) The same
applies for every EMX model that has a Board switch—except
the EMX 190. No matter which Board you just set the last
output module to, you must set the first EMX 190 to Board 1
and the second to Board 2. Since the EMX 190s must be the
last output modules on the chain, you can then switch to input
modules, and start again at Board 1. (Be sure to put together a
1-16
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Understanding Controller Hardware
map showing the chain of EMX modules for each Infinet
controller using them.)
Figure 1-10 illustrates a sample map of EMX modules on an
SCX 900 controller, using the maximum number of inputs and
outputs allowed. (You assign input and output numbers later,
in Chapter 4.)
Figure 1-10. Sample of EMX Modules on an SCX 900
You assign these output
numbers very carefully,
as covered in Chapter 4.
SCX
900
External
Power
Supply
EMX 150—Board 1 Output 9—Voltage
2 Outputs
Output 10—Voltage
EMX 150—Board 2 Output 11—Current
2 Outputs
Output 12—Current
EMX 140—Board 1 Output 13—Pneumatic
2 Outputs
Output 14—Pneumatic
1
EMX 190—Board 1
Output 15—ReaderDoor
1 Output
EMX 190—Board 2 Output 16—ReaderDoor
1 Output
EMX 160—Board 1 Inputs 17–24—Digital
8 Digital Inputs
EMX 160—Board 2
Inputs 25–32—Digital
8 Digital Inputs
EMX 170 Input 33—Temperature
—1 Input
Even if you do not have a second pneumatic output (as on an EMX 141 or EMX 143), you must
count outputs as if it were there.
1
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
1-17
Understanding Controller Hardware
Points on an EMX 160
Figure 1-11 is a drawing of an EMX 160 input module,
showing the inputs, labeled 1 through 8. The inputs can be
digital or counter.
You number the inputs on the module sequentially after the
highest input number on the Infinet controller it is attached to.
For instance, if you put the module on an SCX 900, the Board
1 module would have inputs 17 through 24, and the Board 2
module would have inputs 25 through 32.
Figure 1-11. Drawing Showing EMX 160 Points
EMX 160
BOARD
1
2
RET
IN1
IN2
RET
IN3
IN4
INPUTS
RET
IN5
IN6
RET
IN7
IN8
EXTERNAL
POWER
1-18
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Understanding Controller Hardware
Figure 1-12 is a drawing of an EMX 150 output module,
showing the outputs, labeled A and B. The outputs can be
voltage or current.
Points on an EMX 150
You number the outputs sequentially after the highest output
number on the Infinet controller. For instance, if you put the
module on a TCX 850, the Board 1 module would have outputs 5 and 6, and the Board 2 module would have outputs 7
and 8.
The two knobs adjust the two outputs between 0 and 20 V.
You can set the override switch to manual or automatic. You
cannot, however, get feedback through the controller telling
you that either of these outputs is set to manual control with
the OVERRIDE switch or telling what the override setting is.
Figure 1-12. Drawing Showing EMX 150 Points
BOARD
1
2
EMX150
OUTPUT
A
OVERRIDE
RET
I
V
A
AUTO
OUTPUTS
MAN
B
OUTPUT
B
RET
I
V
A
B
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
1-19
Understanding Controller Hardware
Figure 1-13 is a drawing of an EMX 170 SmartSensor module.
This module has a single temperature input.
Figure 1-13. Drawing Showing
the EMX 170 Point
A SINGLE INPUT
EMX 170 Input Is
Temperature Input
The input on the EMX 170 is automatically the only
temperature input point number assigned after the original
inputs on the controller. Even if you have no other expansion
module, you must always assign the EMX 170 sensor the
highest possible input number in the entire chain of modules.
(On SCX controllers, number 33. On LCX and TCX
controllers, number 25.)
1-20
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Understanding Controller Hardware
Figure 1-14 is a drawing of an EMX 151 module. This module
has two analog outputs that must be controlled by the
controller because they have no manual override switches.
Points on an EMX 151
You can use one or two modules of this type in a single chain.
Figure 1-14. Drawing Showing EMX 151 Points
BOARD
1
2
EMX151
OUTPUT
RET
A
OUTPUTS
I
V
OUTPUT
B
RET
I
V
EXTERNAL
POWER
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
1-21
Understanding Controller Hardware
Points on an EMX 155
Figure 1-15 is a drawing of an EMX 155 module. This module
has two Form C outputs. You can use one or two modules of
this type in a single chain.
Figure 1-15. Drawing Showing EMX 155 Points
BOARD
1
2
EMX155
OUTPUT
A
NC
OVERRIDE
C
A
AUTO
OFF
NO
ON
NC
C
B
NO
OUTPUT
B
EXTERNAL
POWER
1-22
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Understanding Controller Hardware
Figure 1-16 is a drawing of an EMX 190 module. This module
has a single output. Infinity identifies all the inputs wired to
the module in terms of the output.
The EMX 190 must always be the last output module on the
chain. If you have one, it must be Board 1. If you have two
EMX 190s they must be the last two output modules and they
must be Board 1, then Board 2, no matter which board number
precedes them.
Figure 1-16. Drawing Showing EMX 190 Points
EMX190
BOARD
1
DOOR SWITCH
RTN
EXIT REQUEST
RTN
2
CARD
READER
INPUT
RTN
0-CLK
1/DATA
LED
+5V
ReaderDoor
Output
OVERRIDE
NC
DOOR
C
OUTPUT
NO
OFF
ON
WIEGAND
24VDC
AUTO
ABA
CLASS II
OVERRIDE
CARD READER
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
1-23
Points on an EMX 190
Understanding Controller Hardware
Points on an EMX 140
Figure 1-17 is a drawing of an EMX 140 module. This module
has two pneumatic outputs. You can manually override this
output by removing the air flow tube. The controller does not
give you feedback telling you the output is being manually
controlled, but it does give you the value of the output when
you have it in this “manual override” state.
Figure 1-17. Drawing Showing EMX 140 Points
EMX140
CHANNEL
A
CHANNEL
B
SUPPLY AIR
OUT
OUT
SUPPLY AIR
PNEUMATIC
OUTPUTS
+
EXTERNAL
POWER
BOARD
1
2
–
0-20
MA
RET INA RET INB
1-24
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Understanding Controller Hardware
You can purchase variations on this module with only one
pneumatic output, but you must treat those models as if they
have two by skipping an output for the second one.
So, if you assign a single pneumatic output the number 13,
then you cannot assign 14 to another module. Skip 14 and assign 15 to the next module output.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
1-25
EMX 140 Modules Have
One or Two Outputs
Understanding Controller Hardware
Small Network Controllers
Small Networks Can
Employ CMX Controller
In certain situations, you may require only a single Infinet and
no EnergyNet. These situations would be sites with few controllers and/or few programs (since the memory available in
any Infinet controller is limited). You may want to call such a
site to monitor it.
For a single Infinet where you do not always require a terminal, you may want to employ the Infinity CMX controller.
The Infinity CMX is a scaled down Infinity CX. The Infinity
CMX has the following features/limitations:
• A port for an Infinet that can have up to 32 Infinet
controllers.
• An RS-232 port you can use for two purposes, but only one
at time:
— Built-in modem automatically set to 2400 baud.
— A terminal.
When you set up the port as a UserPort, you set it up for a
terminal. However, when another party (such as another
site or an operator in another building) calls in over the
modem, the modem always takes control of the port.
Once a modem call occurs, the controller automatically
logs you (or any other operator) out of the terminal and
closes any open files. If you have been altering a program
and have not saved it when the modem call occurs, you
lose the changes.
1-26
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Understanding Controller Hardware
When to Use CMX Controllers
Andover recommends that you use an CMX controller with a
terminal only in situations where you do not expect the terminal and the modem to conflict with one another. For instance,
here are some possible situations:
• If you are calling in on the modem only after 5 p.m., when
the operator is no longer using the terminal.
• If you intend to construct a dump file for the CMX on
another controller and then load it, rather than developing
programs on the controller at its terminal.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
1-27
CMX Terminal and
Modem Can Conflict
Understanding Controller Hardware
1-28
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Chapter 2
Logging On and Setting Up
EnergyNet and Infinet
We recommend you read this chapter sequentially to get
started on an Infinity CX or CMX controller. Go to the
terminal and carry out all of these procedures to set up the
controllers on each EnergyNet and Infinet:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Logging on for the First Time
Using the Command Window
Printing in the Command Window
Using the Menus
Setting the Date and Time
Making Changes Inside the Window
Defining Infinity CX Controllers
Setting Controller Attributes
Defining the Infinet Controller Network
Setting Infinet Attributes and Finding Controllers
Opening Infinet Controllers
Understanding Infinet Controller Attributes
Accessing (Connecting to) Other Controllers
An Alternative Method of Connecting to Other Controllers
Note
Keystrokes are unique for each terminal type. This manual uses
standard key names. You can look up the specific keystrokes for
your terminal in the Keystroke Reference card (enclosed) or in
Appendix A. Keep the reference card by your terminal until you
are well acquainted with the keystrokes. Note that you may use
some keys differently in different situations.
www.PDF-Zoo.com
Setting Up EnergyNet/Infinet
Logging On for the First Time
Terminal Displays the
Infinity Window
Once you have installed the hardware, when you first approach
any terminal or computer on an Infinity CX controller, the
screen is blank. You activate Infinity CX windows as follows:
1. Type WINDOW. The word does not appear on the screen.
Instead, a box appears that takes up most of the screen. The
box is called a “window.” (If you do not have windows, go
to Logging On without Windows on the next page.)
Figure 2-1 shows the Infinity window.
Figure 2-1. Infinity Window
View
Edit
Connect
Logout
Infinity
(C) 1990 Andover Controls Corporation
Version 1.2
User Name
Password
In the center of the window are two smaller boxes (text
boxes), one labeled User Name and the other Password.
Since you, the system administrator, are the first user, you
must enter the predefined user logon ACC and the
password provided with your hardware.
The cursor (the blinking box) should be at the beginning of
the User Name text box.
2-2
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Setting Up EnergyNet/Infinet
2. Type ACC in the first text box and press the NEXT
ATTRIBUTE key to move to the next text box. (Or arrow
to it with the down arrow key.)
Passwords Do Not
Display
3. Type your password in the second text box.
To prevent others from seeing the password, the controller
does not show the word as you type it.
4. Press the EXECUTE key to proceed.
A new window should appear on the screen. The
EXECUTE key always moves on to the next window or
completes an action.
You are now ready to proceed with the next section.
If the window does not appear, you may have made a mistake
typing the password. Try logging on again. If you continue to
fail, contact your Andover Controls representative.
Logging on without Windows
If you have an Infinity CX 9100 controller, you can log on to
the controller from a blank screen so that you can work with
dump files:
1. Type COMMAND. The word does not appear on the
screen. Instead, Login: appears.
2. Type ACC and press the EXECUTE key. The ACC does
not appear on the screen. Password: appears.
3. Type ACC again and press the EXECUTE key. If you
make a mistake in the password, Login: appears again and
you must enter the logon and password again.
When you have logged on successfully, the R> prompt
appears.
If you cannot log on successfully, contact your Andover
Controls representative.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
2-3
Setting Up EnergyNet/Infinet
Using the Command Window
The Command Window
As soon as you have logged on to the controller, a window
inside the main window appears. This is called the
“Command window.”
Figure 2-2 shows that window. The cursor is on View the far
left selection on the Main menu bar. The Main menu bar is the
narrow strip across the top of the screen. To move the cursor
from the Main menu bar to the Command window, press the
CANCEL WINDOW key (see the Keystroke Quick Reference
card). To bring it back to the menu bar, press CANCEL
WINDOW again.
In the Command window you can enter single-line
instructions called “command lines.” Command lines tell the
controller to do something now.
Figure 2-2. Command Window of the FLOOR1
Controller
View
Edit
Connect
Logout
Command Window – FLOOR1
R>
You can use most keywords on the command line. In the
Andover Controls Plain English Language Reference, each
keyword has a section labeled Modes Available In. If
“command line” is listed, the keyword can be used on the
command line.
2-4
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Setting Up EnergyNet/Infinet
A PRINT Command Line
You can find out the date using a keyword called PRINT. To
print, for instance, the date, type
PRINT DATE
after the R> prompt and press the EXECUTE key.
Figure 2-3 shows that the date prints immediately.
Figure 2-3. Printing the Date on Command Line
View
Edit
Connect
Logout
Command Window – FLOOR1
R> PRINT DATE
June 23, 1992 2:25:51
R>
If the date is incorrect, you change it as described later in this
chapter.
Proceed with the next section to print more information.
Summary
• Command lines tell the controller to act now.
• You can use keywords to form command lines.
• You type command lines after the R>.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
2-5
Print the Date
Setting Up EnergyNet/Infinet
Printing in the Command
Window
Print System Variable
Values
You can use the PRINT keyword to print the following
predefined names in the Command window:
TOD
HOUR
MINUTE
SECOND
Each of these is already defined by the controller. They are
called “system variables,” because the controller system
keeps track of their values.
To print the time of day (TOD) enter this command line:
PRINT TOD
To print the current hour, minute, or second, enter one of these
command lines:
PRINT HOUR
PRINT MINUTE
PRINT SECOND
Figure 2-4 shows the commands in the window.
Remember not to type the R>. The R> indicates where you
may type.
To print TOD again, press the up arrow key until the cursor
lands on the command line that says PRINT TOD. Then press
the EXECUTE key.
2-6
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Setting Up EnergyNet/Infinet
Figure 2-4. PRINT Command Lines
View
Edit
Connect
Logout
Command Window – FLOOR1
R> PRINT TOD
8:30 am
R> PRINT HOUR
8
R> PRINT MINUTE
30
R> PRINT SECOND
22
R>
Notice that PRINT TOD reappears below all the other
command lines along with the new time.
Now that you have seen how to get information from the
controller, proceed to the next section to see how to put it into
the controller.
Summary
Use the PRINT Keyword
• You can use the PRINT command to print predefined
names in the Command window.
• Predefined names are called “system variables.”
• TOD, HOUR, MINUTE, and SECOND are system
variables.
• Type command lines after the R> that appears.
• Repeat a command line by moving the cursor back up to
the command line and pressing the EXECUTE key.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
2-7
Setting Up EnergyNet/Infinet
Using the Menus
The Main Menu Bar
Across the top of the screen is a 1/4-inch wide bar called the
“Main menu bar.” Each word along that bar is the name of a
menu.
Figure 2-5 shows the Main menu bar, a pulldown menu, and
the status bar. (Your status bar may be different from the one
shown here.)
Figure 2-5. Main Menu Bar, Pulldown Menu, and
Status Bar
View
Edit
Connect
Users
Points
Files
CommPorts
Controller
Infinet Controller
System Date & Time
System Variables
Persons
Areas
Doors
Messages 0
CX: BoilerRm
Logout
MAIN MENU BAR
PULLDOWN
MENU
STATUS BAR
October 24 1992
08:23:45
1. To move the cursor along the menu bar, you press the right
and left arrow keys.
2. To select a menu, press the EXECUTE key while the name
is highlighted.
OR
To both move the cursor to the menu and select the menu
at once, press the first letter of the menu name on the
keyboard. For example, as in the figure above, you press
2-8
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Setting Up EnergyNet/Infinet
E and the Edit menu pulls down. This type of menu is
called a “pulldown” menu.
3. To select an item from any pulldown menu, you arrow to
it using the up and down arrow keys, until it is highlighted.
Then press the EXECUTE key.
OR
4. Press the key for the first highlighted letter in that menu
item. (The first highlighted letter is not always the first
letter of the word.)
Throughout this book when you are directed to select from
a menu, we say “select Edit Points,” because you first
select the Edit menu, then the Points menu item.
In the next section, you set the time and date by opening
the System Date & Time window with through the
menus.
Summary
• The bar across the top of the screen is the “menu bar” and
contains the names of several menus.
• The menus that pull down from the bar are called
“pulldown menus.”
• To select a menu from the menu bar you press either the
arrow and EXECUTE keys or the first letter in the menu
name.
• To select a pulldown menu item press either the arrow and
EXECUTE keys or the key for the first highlighted letter
in the item.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
2-9
Selecting from the
Pulldown Menu
Setting Up EnergyNet/Infinet
Setting the Date and Time
Set the System Time
Before you do anything else, you must set the date and time
for your controller. (Later, when you set up other controllers,
you can easily send them the same date and time. This way,
you set the date and time only once.)
Select Edit System Date & Time from the menu bar.
Figure 2-6 shows selecting from the pulldown menu.
Figure 2-6. Selecting Edit System Date & Time
View
Edit
Connect
Logout
Users
Points
Files
CommPorts
Controller
Infinet Controller
System Date & Time
System Variables
Persons
Areas
Doors
Messages 0
CX: BoilerRm
October 24 1992
08:23:45
Figure 2-7 shows the window that appears after you press the
EXECUTE key. The cursor is in the Date and Time text
box. You enter both the date and time on that line.
You can press the DELETE LINE/TEXT key (refer to the
Infinity CX Keystroke Quick Reference) to erase the date and
time from the text box. The cursor should then be at the
beginning of the box. You now enter the new date and time all
in the same box.
If, after erasing it, you want to bring the original date and time
back, press the RESTORE TEXT key.
2-10
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Setting Up EnergyNet/Infinet
Figure 2-7. System Time Window
View
Edit
Connect
Logout
System Time – FLOOR1 DATE
Date and Time
August 20, 1990 13:30:26
OK
CANCEL
If you want to delete only the time (the last few characters in
the text box), arrow over to the first letter to remove and press
the DELETE TO RIGHT key. Characters to the right of the
cursor erase. You can then type the new time.
More ways to move the cursor in this window and others are
explained in the section called Making Changes Inside the
Window, later in this chapter.
Setting Date
You may enter the date using all numbers or spelling the
month as either the full word or the three-letter abbreviation.
You can separate the month, day, and year with spaces,
slashes, dashes, periods, commas, or any combination of them.
Setting Day and Month
If you enter 3-2-92, the controller automatically interprets it
as March 2, 1992, rather than as February 3, 1992. You can,
however, enter the day first if you:
• Spell the month as a word.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
2-11
Press Certain Keys
to Erase/Restore Text
Setting Up EnergyNet/Infinet
• Use numbers for both month and day only if the day is
greater than 12, since any number between 1 and 12 could
be a month. (So, 15-12-90 becomes December 15, 1990.)
Setting Year
The Year May Be Two or
Four Digits
You may enter the year as a two- or four-digit year. You may
enter it before or after the day or month.
Sample Dates
Input
Output
9 January 1992
92 8 Mar
91, July 6
91-8-Apr
9/22/91
January 9, 1992
March 8, 1992
July 6, 1991
April 8, 1991
September 22, 1991
Setting Time
You must keep hours, minutes, and seconds together when
you enter the time, but you do not have to enter seconds.
You can enter the time as 24-hour time or include AM or PM
with the 12-hour time:
Input
Output
14:24:09
9:25 PM
10:30:22 AM
1:24:36 PM
14:24:09
21:25:20
10:30:22
13:24:36
You can enter AM or PM anywhere in the date-time.
The controller translates 12-hour time into the 24-hour clock.
For instance, 3:00 PM becomes 15:00:00.
2-12
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Setting Up EnergyNet/Infinet
Sample Date and Time Input
Input
Output
July 92, 8 PM 9:25
91, Aug 6 8:52:35 PM
9/22/91 6:6 PM
AM 9 Jan 1990 6:00
July 8, 1992 21:25:00
August 6, 1991 20:52:35
September 22, 1991 18:06:00
January 9, 1990 6:00:00
Steps to Completing
the Date and Time
1. Enter the complete date and time in the Date and Time
text box.
You must enter a complete and acceptable date and time
before the controller lets you leave the Date and Time
text box.
2. Press the NEXT ATTRIBUTE key to move to the OK
button and press the EXECUTE key to execute the
process. If you press the CANCEL button, the time reverts
to what it was before.
The date and time are stored in the controller’s memory.
The cursor returns to the menu bar.
You can also press EXECUTE from the Date and Time
text box at any time to save and close the window, just as
you did in the User window. Or you can press the SAVE
key.
3. Select Edit System Date & Time from the menu bar.
Notice that the date and time have changed to the one you
entered.
The next section covers how to move around and erase/add
text in the windows. You learn the keystrokes in the quick
reference card as you proceed.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
2-13
Change and Check the
Date and Time
Setting Up EnergyNet/Infinet
Making Changes Inside the
Window
Alter User Attributes in
the Window
Below is how to make changes inside all windows in the
Infinity CX, including Open and Edit windows. (Refer to the
quick reference card for exact keystrokes.)
Erasing Text
To erase all text while the cursor is in the text box, press the
DELETE LINE/TEXT key. The cursor lands to the far left.
Moving to Left/Right Side of Text Box
To move the cursor to the far left of the text box without
erasing the text, press the LEFT SIDE key.
To move the cursor to the far right of the text box without
erasing the text, press the RIGHT SIDE key.
Restoring Text
If, after erasing or changing it, you want to bring the text back,
press the RESTORE TEXT key.
Deleting Text
To delete text in front of the cursor (to the right) one character
at a time, press the DELETE TEXT key.
To delete text in back of the cursor (to the left) one character
at a time, press the BACKSPACE key.
To delete only characters to the right of the cursor, arrow over to
the first letter to remove and press the DELETE TO RIGHT key.
Canceling the Information
To cancel the information in the window, press CANCEL
WINDOW or MENU BAR. The window closes, and the
cursor returns to the Main menu bar.
2-14
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Setting Up EnergyNet/Infinet
Inserting Additional Text
To insert additional characters in the text box without
overwriting current ones, press the INSERT TEXT key.
Saving Information and Closing Window
To save changes, you can press the SAVE key. Or you can press
the EXECUTE button from any location in the window except
on a button other than SAVE. Or press the SAVE button.
Table 2-1. Keys to Edit Attributes in Windows
Key or Keys
Action
Arrow Keys
Move the cursor left and right or up
and down a list of selections.
DELETE LINE/TEXT
Erases all text in the text box the cursor is in.
RESTORE TEXT
Returns text in text box to what it was
before you changed it.
BACKSPACE
Erases the single character that appears before it. (Erases backward).
INSERT TEXT
When you press it, then type, inserts
text where cursor is in text box.
DELETE TEXT
Erases the single character that appears after it. (Erases forward).
LEFT SIDE
Moves cursor to left side of text box.
RIGHT SIDE
Moves cursor to right side of text box.
DELETE TO RIGHT
Deletes text to right of cursor.
NEXT ATTRIBUTE
Moves cursor forward one attribute.
PREVIOUS
ATTRIBUTE
Moves cursor back one attribute.
CANCEL WINDOW
or MENU BAR
Closes window and erases changes.
Then returns cursor to menu bar.
EXECUTE or SAVE
Saves all attributes. EXECUTE
saves if not on a button that directs
another action.
To set up controllers, proceed to the next section.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
2-15
EXECUTE Can Also Save
Attributes
Setting Up EnergyNet/Infinet
Defining Infinity CX
Controllers
(If you are working on an Infinity CMX controller, you may
skip this section and the next one—these steps are optional.
Begin, instead with Defining the Infinet Controller Network.)
Give Each Controller a
Name
The Infinity CX 9000s and Infinity CX 9500s on your network
of controllers are all connected by a cable called EnergyNet.
In the menu, we call the controllers on this cable simply
Controllers, while we call the other family of controllers
Infinet controllers.
Before the Infinity CX controllers can interact, each has to
know about the others. To tell all controllers about all other
Infinity CX controllers on the EnergyNet, proceed as follows:
1. Refer to your network map. You need to know the name
and DIP switch setting of each controller.
2. Select Edit Controllers from the Main menu bar.
Figure 2-8 shows the menu.
Figure 2-8. Selecting Edit Controllers
View
Edit
Connect
Logout
Users
Points
Files
CommPorts
Controllers
Infinet Controllers
System Date & Time
System Variables
Persons
Areas
Doors
2-16
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Setting Up EnergyNet/Infinet
Figure 2-9 shows the Open a Controller window.
Figure 2-9. Open a Controller Window
View
Edit
Connect
Open a Controller
Window
Logout
Open a Controller
Controller
3. Find the name of your controller on the network map.
4. Enter the name from the network map into the Controller
text box and press the EXECUTE key.
The Controller window appears. You fill in the
information about the controller as explained in the next
section.
Although they are not on the EnergyNet, the CMX 220 and
230 models are also “controllers” that function like Infinity
CX controllers, so you can enter information about them as
described here for other Infinity CX controllers; however, you
do not have to. The information is optional for CMX
controllers.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
2-17
Setting Up EnergyNet/Infinet
Setting Controller Attributes
Set EnergyNet Controller
Attributes
Figure 2-10 shows the Controller window.
Figure 2-10. Controller Window
View
Edit
Connect
Logout
Controller – Floor1
SAVE
Name Floor1
Description
Serial Number
CANCEL
DELETE
Model
VIEW
Status
Ethernet ID
Appears Only
for 9200
Controllers
EnergyNet ID
EthernetId 0:40:11:0:0:2
TEACH
RESET
Notice that each text box is labeled: NAME, DESCRIPTION,
MODEL, and so on. These labels are called “attributes.”
The attribute name, as stored in the controller, may differ
from the label shown on the screen; if it does, the controller
view of the attribute is shown in capital letters in parentheses.
You enter attributes of each controller as follows:
1. Name—Already contains the name of the controller as
you typed it in the previous window. It may be up to 16
characters long and must start with a letter of the alphabet.
You can include underscores, periods, and numbers in the
name. If you change it here, the new name replaces the old
name throughout the network.
2-18
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Setting Up EnergyNet/Infinet
2. Description—Type a description of the controller if you
want to. It is optional.
3. Serial Number (SERIALNUM)—Later, displays the
serial number of the controller. You do not enter it.
4. Model—Later, displays the model number of the
controller. You do not enter it.
5. Status(COMMSTATUS)—Displays OffLine or
OnLine, depending on whether the Infinity CX 9000 is on
the network or not. You cannot change the status.
6. EnergyNet ID (NETWORKID)—Enter the number that
the DIP switch on the controller is set to. That switch
identifies each controller by a unique number between 1
and 254. The number should be on your network map, if
you have one. (On a network of both controllers and
workstations, you assign numbers 1 through 223 to Infinity
CX controllers and 224 through 254 to Infinity SX 8000
workstations.) Once you have assigned an ID, you cannot
change it.
This text box does not appear for the CMX controllers.
7. EthernetId (ETHERNETID)—This text box appears
only if you are setting up an Infinity CX 9200, which runs
on a network called Ethernet. The unique Ethernet ID
assigned at the factory displays in this text box.
8. Press the SAVE button to save the controller settings. The
window automatically closes.
Or you can press the CANCEL button to cancel the
settings.
9. Repeat the steps in the section before this one and in this
section to give a name to every controller on EnergyNet.
10. When you have assigned each controller a name and
EnergyNet ID, connect to an EnergyNet controller
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
2-19
DIP Switch Setting
Identifies Controller
Setting Up EnergyNet/Infinet
through the Connect menu. (Do not carry out the next
step while connected to an Infinet controller.) If you are
on a CMX controller, skip the rest of this section.
11. Open the Controller window (for any controller) and press
the TEACH button.
As shown in Figure 2-11, a message window appears.
Figure 2-11. Message Window during Teach
Teach Mode is Active.
Give the Teaching
Process a Few Seconds
The controller now goes out and assigns the names to the
controllers with the corresponding NETWORKIDs. It then
fills in the model and serial number and finds the status
(COMMSTATUS) of each controller. It teaches all on-line
controllers about not only all other controllers on-line, but
about all controllers off-line as well.
In addition, teach mode teaches all controllers on
EnergyNet that the names you assigned belong to
particular controllers.
Since you have already set the date and time, Infinity also
teaches each controller that same date and time.
You cannot access the controller until teaching stops.
2-20
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Setting Up EnergyNet/Infinet
Looking at the Controller Summary
Once Infinity has taught all the controllers about the network,
the Controller Summary window appears on the screen.
Figure 2-12 shows the Controller Summary window.
Figure 2-12. Controller Summary Window
View
Edit
Connect
Logout
Controller Summary - Floor1
Name
Model
ID
Status
Floor1
Floor2
CentralStation
9000
9500
8000
1
2
223
OnLine
OnLine
OnLine
Note that all controllers should be OnLine because you
connected them to the EnergyNet. If any are still OffLine,
check them, properly connect them, and press TEACH again.
If you assigned more than one controller the same
NETWORKID number, a new window appears.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
2-21
EnergyNet Summary
Gives Overview of All
Setting Up EnergyNet/Infinet
Figure 2-13 shows the message that the window displays.
Figure 2-13. Message Window in Response to
Duplicate IDs
You Have Assigned More Than One
Controller the Same ID Number
12. If you see a controller in the summary that you want more
information about, arrow down until it is highlighted and
press the EXECUTE key to open its Controller window.
13. Press the CANCEL WINDOW key to close the summary.
If you close the summary by mistake, press VIEW to
reopen it.
From the Controller Summary window, you can now take
any of the following actions:
You Cannot Delete
Connected Controller
1. You can press DELETE to delete any controller other than
the one you are directly physically connected to or the one
you have connected to through the Connect menu.
2. Do not press RESET now. RESET erases the controller
and all its points and programs. If you press RESET,
Infinity tells you that RESET destroys all points and
programs and asks if you want to cancel. Press YES to
cancel the reset.
You are now ready to proceed with the next section, where
you set up the Infinet controllers.
2-22
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Setting Up EnergyNet/Infinet
Summary
Identify Infinity CX
Controllers
• You must identify all Infinity CX controllers as on the
network using the Edit Controllers menu selection.
• The status of the controller is either OnLine or OffLine.
• Each controller has a DIP switch that identifies it by being
set to a unique number from 1 to 254.
• In a network of both controllers and workstations, Infinity
CX controllers must have IDs 1 to 223 and Infinity SX 8000
workstations 224 to 254.
• The EnergyNet ID text box (NETWORKID attribute) in
the Controller window contains the number the DIP
switch is set to.
• While setting up any particular controller, you can press
CANCEL to erase information you have not yet saved.
• You use TEACH to tell each controller its name and to
retrieve its model number and serial number.
• You can press DELETE to delete a controller from the
network, but cannot delete the one you are connected to or
your terminal is physically connected to.
• You can press VIEW to open the Controller Summary
window.
• If you press RESET, you erase all programs and other
information in the controller.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
2-23
Setting Up EnergyNet/Infinet
Defining the Infinet Controller
Network
Each Infinity CX 9000 series controller on the EnergyNet
network has communication ports (comm ports). Some of
these comm ports can connect Infinet cabling to the controller
Infinity CX or CMX controller. On this cabling, you install
Infinet controllers.
Define the Comm Port as
an Infinet Port
Before you can define any Infinet controllers that are on the
network, you must define the port the Infinet cabling is
connected to as an Infinet port, as follows:
1. Select Edit Comm Ports from the Main menu bar.
Figure 2-14 shows the menu.
Figure 2-14. Selecting Edit Comm Ports to Set Up
Infinet
View
Edit
Connect
Logout
Users
Points
Files
Comm Ports
Controllers
Infinet Controllers
System Date & Time
System Variables
Figure 2-15 shows the Open a Comm Port window that
appears.
2-24
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Setting Up EnergyNet/Infinet
Figure 2-15. Open a Comm Port Window
View
Edit
Connect
Logout
Open a Comm Port
Controller
Name
Verify the Name of the
EnergyNet Controller
2. Verify the name of the Infinity CX controller from the
network map.
3. If the correct name does not appear in the Controller text
box, press the BACKSPACE key or DELETE TEXT key
to erase it. Then type the correct name.
Or press the SHOW LIST key to see a list of controller
names. To select a name, arrow to it. When the correct
name is highlighted, press the EXECUTE key to put the
name in the Controller text box.
4. Arrow to the Name text box (or press the NEXT
ATTRIBUTE key to get there).
5. Press the SHOW LIST key for a list of the comm port
names on the controller. For an Infinity CX 9000, three
names appear, COMM1, COMM2, and COMM3. For
other 9000 series controllers, you may also see COMM4.
On still other models, you may see only UserPort and
InfinetPort.
6. Refer to your network map to find out which port has an
Infinet on it. For the Infinity CX 9000 or 9200, you can
have one or two Infinets. For other models, you can have
only one Infinet.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
2-25
Setting Up EnergyNet/Infinet
For an Infinity CX 9000, the port must be COMM1 or
COMM2. For an Infinity CX 9500, it must be InfinetPort.
For an Infinity CX 9200, the port must be COMM1 or
COMM2. On a CMX 220 or 240, it must be InfinetPort.
Refer to the table below to be sure you are selecting the
correct port.
Table 2-2. Comm Ports for Infinet on Infinity
CX and CMX Controllers
Never Select UserPort
for Infinet
Controller
Model
Comm Ports That Can Have Infinet
Attached to Them
9000
COMM1 and COMM2
9200
COMM1 and COMM2
9500
InfinetPort
220/240
InfinetPort
Never select UserPort for Infinet.
If you have a DCX 250 mounted inside your 9000
controller, you must set up COMM2 as an Infinet, since
this DCX 250 is always on the Infinet on COMM2.
A DCX 250 that stands alone in an enclosure can be on
either COMM1 or COMM2.
If you plan to connect the LSX 280 laptop computer service
tool to the service port inside the Infinity CX 9000, you
should make COMM2 an Infinet.
7. Arrow to the name of the comm port for Infinet and press
the EXECUTE key to put it in the Name text box.
2-26
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Setting Up EnergyNet/Infinet
Summary
Select the Infinet Type
• Infinet cables on the Infinity CX 9000 are connected
through one of the three communications ports.
• Up to two of the communications ports on an Infinity CX
9000 can be for Infinets, only one on an Infinity CX 9500
or Infinity CMX 220/230.
• The three comm ports on the Infinity CX 9000 are
predefined as COMM1, COMM2, and COMM3. Only
COMM1 or COMM2 can have an Infinet attached to it.
• The predefined Infinet port on an Infinity CMX controller
is called InfinetPort.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
2-27
Setting Up EnergyNet/Infinet
Setting Infinet Attributes
and Finding Controllers
Give Infinet Attributes
Figure 2-16 shows the Comm Port window that appears.
The Mode and the LEARN and VIEW buttons do not appear
until you select Infinet in the DefaultMode box.
Figure 2-16. Comm Port Window
View
Edit
Connect
Logout
Comm Port – Floor1 Comm1
Name
LocalNET
DefaultMode
(X) Printer
( ) Window
( ) Command
( ) Infinet
( ) Lbus
( ) AutoSet
( ) TankNet
Mode
Description
Infinet Cable
Baud
( ) Baud300
( ) Baud1200
( ) Baud2400
( ) Baud4800
( ) Baud9600
(X) Baud19200
SAVE
CANCEL
LEARN
VIEW
Infinet
You enter the following attributes:
1. Name—Already contains the name of the port. You can
change it here. It may be up to 16 characters long and must
start with a letter of the alphabet. You can include
underscores, periods, and numbers in the name. If you
change it here, the new name replaces the old name
throughout the network.
2. Description—Type a description of the comm port if
you would like. It is optional. This information is strictly
for you and does not affect the controller.
2-28
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Setting Up EnergyNet/Infinet
3. DefaultMode—Select Infinet for the Infinet cable. If
you are setting up Infinet on an Infinity CMX controller,
Infinet is automatically selected for you.
4. Baud—Automatically set to Baud19200.
5. Mode —You cannot change this box. It displays the current
way the comm port is operating, Infinet.
6. After you select the Infinet type, the LEARN button
appears. Press the LEARN button.
As shown in Figure 2-17, a message window appears.
Figure 2-17. Message Window during Learn
Learn Mode is Active.
The controller now goes out and explores the network.
It finds the serial numbers and assigns IDs to all Infinet
controllers on that comm port. It then finds the model and
status.
You cannot access the controller until it stops learning,
within 15 seconds.
Once learn mode is complete, the Infinet Summary
appears.
Figure 2-18 shows the window. It contains the known
attributes of each Infinet controller on the comm port.
Infinity has assigned each a name based on its serial
number.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
2-29
Give the Controller a Few
Seconds to Learn
Setting Up EnergyNet/Infinet
Figure 2-18. Complete Infinet Summary
View
Edit
Connect
Logout
Infinet Summary – FLOOR1
Port
COMM1
COMM1
COMM1
COMM1
COMM1
COMM1
COMM1
COMM1
COMM1
Name
lc_0989001_0
lc_0989002_0
lc_0989003_0
lc_0989004_0
lc_0989005_0
lc_0989006_0
lc_0989007_0
lc_0989008_0
lc_0989009_0
Model Serial Number
850
0989001
850
0989002
850
0989003
850
0989004
850
0989005
900
0989006
900
0989007
900
0989008
900
0989009
ID
01
02
03
04
05
06
07
08
09
Status
OffLine
OffLine
OffLine
OffLine
OffLine
OffLine
OffLine
OffLine
OffLine
7. You can select a controller from the list to rename it or you
can return to the comm port information.
To select a controller, arrow to it and, while it is
highlighted, press the EXECUTE key. The Infinet
Controller window opens. If you select this option, you
may skip the next few steps and skip the next section.
Continue with the section titled Understanding Infinet
Controller Attributes.
OR
To return to the comm port information, press the
CANCEL WINDOW key and the Comm Port window
appears.
8. If you close the Infinet Summary window before you
have had a chance to look at the list, you can press the
VIEW button to reopen the window. (Do not press
LEARN again to open the window, only to relearn the
network.)
2-30
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Setting Up EnergyNet/Infinet
9. Press the SAVE button, SAVE key, or EXECUTE key to
save the comm port attributes and all the Infinet controller
information on that comm port. The window automatically
closes.
If you have network problems, refer to the EnergyNet and
Infinet Troubleshooting Guide.
Summary
Select the Infinet Type
• Infinet cables on the Infinity CX 9000 are connected
through one of the three communications ports.
• Up to two of the communications ports on an Infinity CX
9000 can be for Infinets, only one on an Infinity CX 9500
or Infinity CMX 220/230.
• The three comm ports on the Infinity CX 9000 are
predefined as COMM1, COMM2, and COMM3. Only
COMM1 or COMM2 can have an Infinet attached to it.
• The predefined Infinet port on an Infinity CMX controller
is called InfinetPort.
• You must select Infinet for the DEFAULTMODE of the
comm port.
• After you select Infinet, the MODE displays as Infinet.
• After you select Infinet, the BAUD is automatically
Baud19200.
• Press the LEARN button to have Infinity automatically
assign names and ID numbers to each Infinet controller on
the comm port.
• Press the VIEW button to open the Infinet Summary
window.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
2-31
Setting Up EnergyNet/Infinet
Opening Infinet Controllers
Select Edit Infinet
Controller
Once you have defined an Infinet connection port for the
Infinet controllers on the Infinity CX controller, you may then
open each Infinet controller to alter its name and look at its
other attributes, as follows:
1. Select Edit Infinet Controllers from the Main menu
bar.
Figure 2-19 shows the menu.
Figure 2-19. Selecting Edit Infinet Controllers
View
Edit
Connect
Logout
Users
Points
Files
CommPorts
Controller
Infinet Controller
System Date & Time
System Variables
Persons
Areas
Doors
2-32
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Setting Up EnergyNet/Infinet
Figure 2-20 shows the Open a Controller window.
Figure 2-20. Open an Infinet Controller Window
View
Edit
Connect
Logout
Open an Infinet Controller
Controller
Infinet Ctlr
2. Verify the name of the Infinity CX 9000 controller from the
network map. If the correct name does not appear in the
Controller text box, press the LEFT SIDE key to move to
the left side of the box. Then type over the name there with
the correct one. Or use the SHOW LIST key to select
another name.
You can also erase names in the text boxes with the
BACKSPACE or DELETE TEXT keys.
3. Arrow to the Infinet Ctlr text box (or press the NEXT
ATTRIBUTE key).
4. Refer to the tag for the controller you want to define. Enter
a name for that controller. The name may be up to 16
characters long and must start with a letter of the alphabet.
You can include underscores, periods, and numbers in the
name.
5. Press the EXECUTE key.
The Infinet Controller window appears. You fill in the
information about the Infinet controllers as explained in
the next section.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
2-33
Select the Infinity CX
Controller
Setting Up EnergyNet/Infinet
Understanding Infinet
Controller Attributes
Can Give Each
Controller a Description
Figure 2-21 shows the Infinet Controller window.
Figure 2-21. Infinet Controller Window
View
Edit
Connect
Logout
Infinet Controller – Floor1 Room2
SAVE
Name Room2
Model 850
Version 1.4
SAVE AS
Description Air Flow Controller
CommPort COMM1
CANCEL
Infinet ID 01
Serial Number 0989001 Status OnLine
DELETE
Error 0
RESET
Error Time 0
Error Count 0
Reconfigs
0
You set the attributes as follows:
1. Name—Already contains the name you assigned the
Infinet controller in the previous window. If it is incorrect,
change the name. The new name replaces the old name
throughout the network.
2. While the cursor is in the Name text box, press the SHOW
LIST key. The Infinet Summary window appears.
3. Arrow down to the controller that has a serial number
matching the one on the tag from the hardware. (Compare
the numbers carefully.) When the correct controller is
highlighted, press the EXECUTE key to select it. That
controller’s attributes now fill the other text boxes.
2-34
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Setting Up EnergyNet/Infinet
4. Model—Displays the model number of the controller.
You cannot change it.
5. Version—Displays the version of the controller PROMs.
6. Description—Type a description of the Infinet controller
if you want to. It is optional. You can enter up to 32
characters including blanks.
7. CommPort (PORT)—Displays the name of the particular comm port this Infinet is on, either COMM1, COMM2,
or InfinetPort.
8. Infinet ID (INFINETID)—Displays the Infinet ID. You
cannot change the ID. (You can elect to press SHOW LIST
with the cursor in this text box to see the summary.)
9. Serial Number (SERIALNUM)—Displays the serial
number of the Infinet controller. You can verify it against
the tag that was on the hardware. You cannot change the
serial number. (You can elect to press SHOW LIST with
the cursor in this text box to see the summary.)
10. Status (COMMSTATUS)—Displays OffLine or OnLine, depending on whether the Infinet controller is on
the network or not. (Later may also display Reconfig or
Pause to indicate activity on the network.) You cannot
change the status.
11. Error (INFINETERROR)—Displays the last error that
occurred on the controller.
12. Error Time (INFINETERRTIME)—Displays the date
and time the last error occurred.
13. Error Count (INFINETERRCNT)—Displays the
number of errors that have occurred. You later reset the
error count to zero from an Andover Controls Plain
English program.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
2-35
Infinet Controller Models
Setting Up EnergyNet/Infinet
14. Reconfigs (RECONFIGS)—Displays the number of
reconfigurations that have occurred on the Infinet that
controller is on. You later reset to zero from a program.
15. Press the SAVE AS button to save the controller settings
without closing the window.
16. Type the correct name for the controller in the Name
text box that appears. When you press the EXECUTE
key, the controller is saved with that name. The new
name also appears in the Infinet Summary window.
The cursor lands in the Name text box.
17. Press the SHOW LIST key and the Infinet Summary
window appears, showing all the information known
about each controller on the same comm port.
Select an Infinet
Controller
18. Arrow down to the next controller you want to define
and, while it is highlighted, press the EXECUTE key.
Again, be sure you carefully compare the serial number
to the one on the tag.
The information about that controller appears in the
Infinet Controller window—all except the name.
19. Press SAVE AS and enter the correct name in the Name
text box that appears. When you press the EXECUTE
key, the new name appears in the Infinet Summary
window.
20. Repeat the last three steps, selecting the next controller
each time and renaming it. Remember you are assigning
the name after you select the controller from the list.
21. When you have renamed the last Infinet controller on
that comm port, press the SAVE button, SAVE key, or
EXECUTE key to save the controller information. The
window automatically closes.
2-36
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Setting Up EnergyNet/Infinet
22. Repeat the entire process for the other comm port if you
have more than one Infinet.
Do not press RESET now. RESET erases the controller
and all information on the controller. If you press
RESET, Infinity asks if you want to cancel. Press YES to
cancel the reset.
You can work on any controller you have defined from
one terminal. To see how, read the next section.
Summary
• You must define all Infinet controllers.
• The CommPort for the Infinet controller is the name of
the port the Infinet is connected to.
• LEARN assigns the Infinet ID of each Infinet controller.
• The Serial Number of the controller should match the
one on the tag for that controller.
• The status is usually either OnLine or OffLine.
• The Error text box displays the last error on the particular
controller; Error Time displays the date and time it occurred.
• Error Count displays the number of errors since you last
set it to zero.
• Reconfigs displays the number of times the Infinet
comm port has reconfigured itself since you last set it to
zero.
• To see the Infinet Summary from inside the Infinet
Controller window, press the SHOW LIST key inside the
Name, Infinet ID, or Serial Number text box.
• To select a controller from the Infinet Summary, arrow down
to it and, when it is highlighted, press the EXECUTE key.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
2-37
Infinet Is Located on a
Comm Port
Setting Up EnergyNet/Infinet
Accessing (Connecting to)
Other Controllers
After you have told the controller about all other controllers
on the network, you can work on any controller on EnergyNet
or Infinet from your terminal.
You can connect to any controller on EnergyNet or Infinet. If
the controller is an Infinet controller, you must first indicate
the EnergyNet controller it is on. You connect to a particular
controller as follows:
Connect to Another
Infinity CX 9000
1. Select Connect from the Main menu bar.
Figure 2-22 shows the Open a Connection window that
appears.
Figure 2-22. Open a Connection Window
View
Edit
Connect
Logout
Open a Connection
Controller
Floor1
Infinet Ctlr
2. To change the Infinity CX 9000 name displayed in the
Controller text box, you can:
• Erase the name displayed and type another controller
name
OR
2-38
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Setting Up EnergyNet/Infinet
• Press the SHOW LIST key to bring up a choice list of
Infinity CX 9000 controllers.
The list of Infinity CX 9000 controllers is in
alphabetical order.
Press the up and down arrow keys (UP and DOWN) or
the PAGE UP and PAGE DOWN keys to move up and
down the list of Infinet controllers to highlight the one
you want.
3. Press the EXECUTE key to put the name of the Infinity CX
controller in the Controller text box. If you are
connecting only to an Infinity CX controller, skip to the last
step on this page.
4. Press NEXT ATTRIBUTE to move to the Infinet Ctlr
text box.
5. If you want to access an Infinet controller, repeat step 2,
only this time type or select the name of an Infinet
controller.
The list of Infinet controllers is in alphabetical order.
6. Press the EXECUTE key. Now you can take action on the
Infinity CX 9000 or Infinet controller you selected here.
The controller name or names appear in any Open
window each time you select an item from the Edit menu.
In the next section, you find out how to carry out this same
action from inside the Command window.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
2-39
Change to Another
Infinet Controller
Setting Up EnergyNet/Infinet
An Alternative Method of
Accessing Other Controllers
You can work on a controller other than the one your terminal
is physically connected to. Proceed as follows:
Connect to Controllers
with the Connect Menu
1. Press the CANCEL WINDOW key. The cursor moves to
the Command window.
2. Type CD (change direct connection) followed by the name
of an Infinity C (EnergyNet) controller:
CD FLOOR1
3. If the controller is on Infinet, you give first the Infinity CX
controller that the Infinet is connected to, then the Infinet
controller name:
CD FLOOR1 ROOM2
Figure 2-23 shows a CD command in the Command
window. (Remember not to type the R>.)
Figure 2-23. CD Command Line
View
Edit
Connect
Logout
Command Window – FLOOR1
R> CD FLOOR1 ROOM2
R>
2-40
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Setting Up EnergyNet/Infinet
4. Press the EXECUTE key. Now you can take action on the
Infinity CX 9000 or Infinet controller you gave here. The
controller name or names appear in the Open window
each time you select an item from the Edit menu.
You can now proceed to the next chapter, where you set up the
Lbuses, terminals, and printers. You then create your own
logon and password, finally, create logons and password for
all others who use the controller system.
Summary
• You can access another controller after you have given
names to all the controllers on your network.
• You can connect to another controller either from the Main
menu bar or from the Command window.
• On the Main menu bar, arrow to the Connect menu and
press the EXECUTE key.
• In the Command window, type the CD command
followed by the name of the Infinity CX controller, then the
Infinet controller.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
2-41
Two Ways to Connect to
Another Controller
Setting Up EnergyNet/Infinet
2-42
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Chapter 3
Setting Up LBuses,
Terminals, Printers, TankNets,
and User Logons
We recommend you read this chapter sequentially. You carry
out the procedures in this chapter (listed below) on an Infinity
CX controller or Infinity CMX controller through the terminal.
You begin with LBUSes. If you do not have any LBUSes,
skip those sections and begin with terminals. If you have a
TankNet, after you complete the printers section, you set up
your TankNet. The sections are as follows:
•
•
•
•
•
•
•
•
•
•
•
•
•
www.PDF-Zoo.com
Defining the LBUS for Input/Output Units
Setting LBUS Attributes
Defining Terminals or Printers
Setting Terminal Attributes
Setting Up Modem Attached Directly to the Controller
Setting Up Modem Attached to a Terminal
Setting Printer Attributes
Defining the TankNet for Tank Probes
Setting TankNet Attributes
Creating Your Own Logon
Creating Other User Logons, Assigning Security Levels
Copying All User Logons to Multiple Controllers
Setting the Password for Keypads on Infinet Controllers
LBuses, Terminals, Printers, TankNets, Users
Defining the LBUS for Input/
Output Units
One Comm Port
Connects the LBUS
The LBUS cable connects all input-output units (IOUs) to the
Infinity CX 9000 controller. You may or may not have an
LBUS on your controller. If you have one, you must tell the
controller about it.
Each Infinity CX 9000 controller on the EnergyNet network
has three “communication ports” (comm ports). They are
called communication ports because they allow information
to travel into and out of the controller. One (and only one) of
those ports can be used for an LBUS cable, and the port must
be either COMM1 or COMM2.
You must define one of the comm ports for the LBUS of that
Infinity CX 9000, as follows:
1. Select Edit Comm Ports from the Main menu bar.
Figure 3-1 shows the menu.
Figure 3-1. Selecting Edit Comm Ports
View
Edit
Connect
Logout
Users
Points
Files
CommPorts
Controller
Infinet Controller
System Date & Time
System Variables
Persons
Areas
Doors
Figure 3-2 shows the Open a Comm Port window.
3-2
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
LBuses, Terminals, Printers, TankNets, Users
Figure 3-2. Open a Comm Port Window
View
Edit
Connect
Logout
Open a Comm Port
Controller
Name
2. Verify the name of the Infinity CX 9000 controller from the
network map. If the correct name does not appear in the
Controller text box, press the DELETE LINE/TEXT key
to erase the name. Then type the correct name. Or use the
SHOW LIST key to select another name.
3. Arrow to the Name text box (or press NEXT
ATTRIBUTE) and press the SHOW LIST key for a list of
the comm port names. The three predefined names appear
in a choice list: COMM1, COMM2, and COMM3.
4. Select COMM1 or COMM2 and press the EXECUTE key.
(You may change the name in the next window.) Then
press the EXECUTE key to move to the next window.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
3-3
Select a Comm Port
Name
LBuses, Terminals, Printers, TankNets, Users
Setting LBUS Attributes
Give LBUS Attributes
Figure 3-3 shows the Comm Port window that appears.
Figure 3-3. Comm Port Window for LBus
View
Edit
Connect
Logout
Comm Port – FLOOR1
Name
COMM1
DefaultMode
( ) Printer
( ) Window
( ) Command
( ) Infinet
(X) Lbus
( ) AutoSet
( ) TankNet
Mode
Description
LBUS for IOUs
Baud
( ) Baud300
( ) Baud1200
( ) Baud2400
( ) Baud4800
( ) Baud9600
(X) Baud19200
SAVE
CANCEL
Lbus
You enter the following attributes:
1. Name—Already contains the name of the port. It may be
16 characters long and must start with a letter of the
alphabet. You can include underscores, periods, and
numbers in the name. If you change it here, the new name
replaces the old name throughout the network.
2. Description—Type a description of the comm port if
you would like. It is optional. This information is strictly
for you and does not affect the controller.
3. DefaultMode—Select LBUS for the LBUS cable.
4. Baud—Automatically set to Baud19200.
3-4
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
LBuses, Terminals, Printers, TankNets, Users
5. Mode —You cannot change this box. It displays the current
way the comm port is operating, Lbus.
6. Press the SAVE button, SAVE key, or EXECUTE key to
save the comm port attributes. The window automatically
closes.
Summary
• The LBUS on the Infinity CX 9000 network is connected
through one of the three communications ports.
• Only one of the three comm ports can be for an LBUS.
• The LBUS is connected on COMM1 or COMM2.
• You must select Lbus for the DEFAULTMODE of the
comm port.
• After you select Lbus, the MODE displays as Lbus.
• After you select Lbus, the baud is automatically set to
Baud19200.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
3-5
Select the LBUS for the
DefaultMode
LBuses, Terminals, Printers, TankNets, Users
Defining Terminals or Printers
The computer screens attached to your network are usually
referred to as “terminals” because they are endpoints on the
network.
(A terminal can also be a complete computer running an
ANSI terminal emulation package.)
Note
Minimum Free Memory
for Second Terminal
If you would like more than one terminal, check the
amount of free memory by typing PR FREEMEM in the
Command window. If you do not have at least 400,000
bytes of free memory, do not add a second terminal to your
Infinity CX 9000 controller or the comm port you try to set
it up on becomes unusable.
You connect terminals and printers to the comm ports to allow humans to interact with and/or communicate with the
controller.
Connecting to Infinity CX 9000
You can connect a terminal or printer to any of the open RS232 ports on Infinity CX 9000. (COMM1 and COMM2 RS232 ports are not “open” if you are using their corresponding
RS-485 ports.) If you connect any of these through a modem,
the preinstalled modem is on COMM3.
(COMM3 can connect only to terminals, printers, computers,
or modems, but not to LBUS or Infinet.)
If you connect, for example, a terminal through a modem,
when you define the comm port, you define it for a terminal.
3-6
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
LBuses, Terminals, Printers, TankNets, Users
Connecting Terminal to
an Infinity CMX Controller
Connect Terminals,
Printers
You can connect a terminal to the UserPort on an Infinity
CMX controller.
Caution
Remember that on an Infinity CMX controller, the modem
always preempts the terminal and takes over control of the
UserPort, even when an operator is logged on and actively
using the port. The operator could lose changes to an
unsaved program or other item when the modem call
occurs.
You should not connect a printer to the CMX UserPort.
Setting Up the Terminal
Define a terminal or printer on your Infinity CX 9000 or terminal on your Infinity CMX controller as follows:
1. Select Edit Comm Ports from the Main menu bar.
Figure 3-4 shows the menu.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
3-7
LBuses, Terminals, Printers, TankNets, Users
Figure 3-4. Selecting Edit Comm Ports
View
Edit
Connect
Logout
Users
Points
Files
CommPorts
Controller
Infinet Controller
System Date & Time
System Variables
Persons
Areas
Doors
Figure 3-5 shows the Open a Comm Port window that
appears.
Figure 3-5. Open a Comm Port Window
View
Edit
Connect
Logout
Open a Comm Port
Controller
Name
DELETE LINE/TEXT
Erases Entire Name
2. Verify the name of the controller from the network map. If
the correct name does not appear in the Controller text
box, press the DELETE LINE/TEXT key to erase the
name. Then type the correct one. Or use the SHOW LIST
key to select another name.
3. Check your network map for the name of your terminal,
computer, or printer.
3-8
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
LBuses, Terminals, Printers, TankNets, Users
4. On an Infinity CX 9000, press the SHOW LIST key and
select COMM3.
Connect Terminals,
Printers
OR
On an Infinity CMX controller, press the SHOW LIST key
and select UserPort.
5. When the comm port you want is in the Name text box,
press the EXECUTE key to proceed.
The Comm Port window opens. To fill in the text boxes
in that window, proceed to the next section.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
3-9
LBuses, Terminals, Printers, TankNets, Users
Setting Terminal Attributes
Give Terminals and
Computers Attributes
Figure 3-6 shows the Comm Port window. If you opened
COMM3 on an Infinity CX controller, it is already predefined
as a terminal, but you may want to change how it is set up.
Figure 3-6. Comm Port Window for Terminal
View
Edit
Connect
Logout
Comm Port – FLOOR1
Name SCREEN1
DefaultMode
( ) Printer
(X) Window
( ) Command
( ) Infinet
( ) Lbus
( ) AutoSet
( ) TankNet
Mode Window
Description Terminal in Basement
Baud
( ) Baud300
( ) Baud1200
( ) Baud2400
( ) Baud4800
(X) Baud9600
( ) Baud19200
TerminalType
(X) VT100
SAVE
( ) VT220
( ) WYSE
CANCEL
CurrentUser len
DirectConnect X
You enter the following attributes for a terminal or computer
with or without a modem (see next section for printer attributes):
1. Name—Change the comm port name to the name of your
terminal in the Name text box. It may be 16 characters
long and must start with a letter of the alphabet. You can
include underscores, periods, and numbers in the name. If
you change it here, the new name replaces the old name
throughout the network.
2. Description—Type a description of the comm port if
you would like. It is optional. This information is strictly
for you and does not affect the controller.
3-10
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
LBuses, Terminals, Printers, TankNets, Users
3. DefaultMode—Select one of the following three:
• Select Window to display the windows and menus.
You would choose this option for most terminals.
If a terminal is on a modem and you set it up to run in
Window mode, to get started on that terminal, you must
type an ampersand (&) to receive the Infinity window.
• Select Command to display a screen with no
windows or menus, only the Login prompt.
(This choice is available only on an ICS AC 9100 or on
AC 220 controllers with model number 230 or higher.
See your Andover Controls representative for details.)
Figure 3-7 shows the screen that later appears on that terminal
if you select Command for DEFAULTMODE.
Figure 3-7. The Command Screen
Login:
If a terminal is on a modem and you set it up to run in
Command mode, to get started on that terminal, you
must type an ampersand (&) to receive the Login prompt.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
3-11
Window, Command, or
AutoSet Modes
LBuses, Terminals, Printers, TankNets, Users
On the Command screen, you enter your logon name
and wait for further prompts. On this screen, you
cannot move the cursor up and down as you can in the
Command window.
• Select AutoSet if you want to be able to switch
between Window and Command, or if you want to
connect to an Infinity SX workstation Version 1.3.
Later, when you turn on the terminal, it comes up
totally blank. You type one of the following and press
the EXECUTE key after it (the word does not appear
on the screen):
COMMAND
or
WINDOW
COMMAND brings up the Login prompt that appears
on the Command mode screen. WINDOW brings up
the logon window. To change the mode, you log out,
and when the screen becomes blank again, type
COMMAND or WINDOW.
Select the Baud Rate of
the Terminal
4. Baud—Select the baud rate your terminal or computer is set
to. See the terminal manufacturer’s manual for procedures to
set the baud rate or find out the default baud rate setting.
5. TerminalType—Select the brand of terminal, VT100,
VT220, or WYSE, for an actual terminal or VT100 for a
computer emulating one.
6. CurrentUser—You cannot change this box. It displays
the user name of the person currently logged on through
that communications port.
7. Mode—You cannot change this box. It displays the current way the terminal is operating, either in Window or
Command mode. If you selected AutoSet, the mode
may change periodically.
3-12
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
LBuses, Terminals, Printers, TankNets, Users
8. DirectConnect —If your terminal or computer is set up
through a modem, press the space bar in this box to toggle it to
FALSE (no X appears), otherwise (the X appears) it is TRUE.
The modem itself is not the type of equipment you define;
instead, you define the equipment attached to the other end
of the modem—the terminal or computer—and then set
DirectConnect to FALSE.
Make DirectConnect
TRUE If Not on Modem
9. Press the SAVE button, SAVE key, or EXECUTE key to
save the terminal or printer attributes. The window
automatically closes.
If your terminal is on a modem, complete the steps in one of
the next two sections. Otherwise, skip those sections. If you
are setting up a printer, skip the modem sections and go to the
next.
Summary
• You select Window as the DEFAULTMODE of your
terminal for most Infinity CX and CMX controllers.
• You can select Command for the DEFAULTMODE of the
terminal or computer if it is an Infinity CX 9100 or CMX 230.
• You can select AutoSet for the DEFAULTMODE of the
any terminal if you want to switch between Command
and Window modes, or to connect to an Infinity SX 8000.
• The MODE displays either Window or Command,
depending on the mode the terminal is currently operating in.
• You leave DIRECTCONNECT set to TRUE if your
computer or terminal is not set up through a modem.
• You select the terminal type based on the brand.
• You may want to change the name of the port from COMM1,
COMM2, or COMM3 to the name of your terminal.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
3-13
Select Window as
DefaultMode
LBuses, Terminals, Printers, TankNets, Users
Setting Up Modem Attached
Directly to the Infinity CX
Controller
Preinstalled Modems Are
Already Set Up
If your modem shipped already installed inside the Infinity CX
9000or in a retrofit kit, you can skip this section.
If your modem was shipped alone without a retrofit kit, you
must set it up to work on an Infinity CX 9000 or a terminal.
To set up a modem to be attached to a comm port on a
controller, proceed as follows:
1. If you have already installed it, disconnect the modem
ribbon cable from the port inside the Infinity CX 9000
cabinet and attach it to a dumb terminal. (You can use a
computer if you run a terminal emulation package, such as
CROSSTALK.)
2. Set the terminal or emulation package to 9600 baud.
3. On the dumb terminal, enter each of the following
commands and press the RETURN key (EXECUTE key)
after each one (the modem sends OK to the terminal after
each command):
AT&F
AT&C1
AT&D21
AT\N3
AT%C1
AT\J
1. Do not include this command if you are still operating Version 1.0.
3-14
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
LBuses, Terminals, Printers, TankNets, Users
AT%B9600
(The last two characters are zeros.)
AT\Q1
ATS0=1 (The character before the equal sign is zero.)
ATE
ATQ1
(Characters do not show on the screen and no
response appears.)
AT&W (Characters do not show on the screen and no
response appears.)
4. Reconnect the modem ribbon cable to the controller.
Modem Is Ready
Your modem is now ready.
Summary
• You do not have to set up a modem if it ships already
installed or in a retrofit kit.
• You connect a dumb terminal to the modem to set it up.
• You enter a series of commands on the dumb terminal that
set up the modem.
• Once you have entered the commands, you reconnect the
modem ribbon cable to the controller and your modem is
ready to operate.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
3-15
LBuses, Terminals, Printers, TankNets, Users
Setting Up Modem
Attached to a Terminal
on Infinity CX Controller
You Set Up a Modem to
Attach to a Terminal
To set up a modem you want attached to a terminal for calling
an Infinity CX controller across town or across the country,
proceed as follows:
1. If you have already connected your terminal to Infinity CX
9000 and the controller is powered up, disconnect the
terminal from the controller.
If your terminal is a computer, you must run a terminal
emulation package, such as CROSSTALK and be in dumb
terminal mode.
2. Set the terminal or emulation package to 9600 baud.
3. Connect the modem to the terminal with a standard ribbon
cable.
Do not use the same cable that connects the terminal to the
Infinity CX 9000 to connect your modem to your terminal.
Andover Controls does not supply the correct cable; the
one provided is designed only to connect the terminal to
the controller. The pinouts for each cable type are included
in the Andover Controls Infinity CX 9000 Hardware
Installation Guide.
4. On the dumb terminal, enter each of the following
commands and press the RETURN key (EXECUTE key)
after each one (the modem sends OK to the terminal after
each command). Be sure you enter them in the order listed:
AT&F
AT&C1
AT&D21
3-16
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
LBuses, Terminals, Printers, TankNets, Users
AT\N3
AT%C1
AT\J
Last Two Characters Are
Zeros
AT%B9600 (The last two characters are zeros.)
AT\Q1
ATS0=1 (The character before the equal sign is zero.)
AT&W
5. Reconnect the ribbon cable of the terminal (or computer)
to the comm port on Infinity CX 9000.
Your modem is now ready.
For how to log onto the Infinity CX, see Chapter 2. For a list
of modem commands to dial and hang up the modem, see the
modem documentation.
Summary
• If you want to attach a modem to a terminal, you must set
it up.
• You connect a dumb terminal to the modem to set it up.
• You use a standard ribbon cable to connect a dumb
terminal to the modem.
• You enter a series of commands on the dumb terminal that
set up the modem.
• Once you have entered the commands, you reconnect the
terminal to the controller and your modem is ready to
operate.
1. Do not include this command if you are still operating Version 1.0.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
3-17
LBuses, Terminals, Printers, TankNets, Users
Setting Printer Attributes
Give Printers Attributes
Figure 3-8 shows the Comm Port window.
Figure 3-8. Comm Port Window for Printer
View
Edit
Connect
Logout
Comm Port – FLOOR1 Comm3
Name SCREEN1
DefaultMode
(X) Printer
( ) Window
( ) Command
( ) Infinet
( ) Lbus
( ) AutoSet
( ) TankNet
Description Printer in Lab
Baud
( ) Baud300
( ) Baud1200
( ) Baud2400
( ) Baud4800
(X) Baud9600
( ) Baud19200
SAVE
CANCEL
Mode Printer
You enter the following attributes for a printer:
1. Name—Change the comm port name to the name of your
printer in the Name text box. It may be 16 characters long
and must start with a letter of the alphabet. You can
include underscores, periods, and numbers in the name. If
you change it here, the new name replaces the old name
throughout the network.
2. Description—Type a description of the comm port if
you would like. It is optional. This information is strictly
for you and does not affect the controller.
3-18
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
LBuses, Terminals, Printers, TankNets, Users
3. DefaultMode—Select Printer for a printer.
Select Printer for
DEFAULTMODE
4. Baud—Select the baud rate your printer is set to. See the
manufacturer’s manual on the printer for procedures to set
the baud rate or find out the default baud rate setting.
5. Mode—You cannot change this box. It displays the current
way the comm port is being used, for a Printer.
6. Press the SAVE button, SAVE key, or EXECUTE key to
save the terminal or printer attributes. The window
automatically closes.
You have now set up every physical part of your controller
system—except the points. Before you proceed to Chapter 4
to set up the points, you must define who can have access to
the system, covered in last few sections of this chapter.
Summary
• You select Printer for the DEFAULTMODE of a printer.
• You may want to change the name of the port from
COMM1, COMM2, or COMM3 to the name of your
printer.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
3-19
LBuses, Terminals, Printers, TankNets, Users
Defining the TankNet
for Tank Probes
TankNet Connects Tank
Probes to Controllers
The TankNet cable connects to many Infinity CX controllers
and to the CMX 240 controller. You may or may not have a
TankNet on your controller. If you have one, you must tell the
controller about it.
Each Infinity CX 9000/9200 or CMX 240 controller has
“communication ports” (comm ports). They are called
communication ports because they allow information to travel
into and out of the controller. You can use one and only one
of those ports on any controller for TankNet cable. Which port
depends on the model number of the controller.
You define one of the comm ports for the TankNet of that
controller, as follows:
1. Select Edit Comm Ports from the Main menu bar.
Figure 3-9 shows the menu.
Figure 3-9. Selecting Edit Comm Ports
View
Edit
Connect
Logout
Users
Points
Files
CommPorts
Controller
Infinet Controller
System Date & Time
System Variables
Persons
Areas
Doors
Figure 3-10 shows the Open a Comm Port window.
3-20
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
LBuses, Terminals, Printers, TankNets, Users
Figure 3-10. Open a Comm Port Window
View
Edit
Connect
Logout
Open a Comm Port
Controller
Name
2. Verify the name of the Infinity CX 9000 controller from the
network map. If the correct name does not appear in the
Controller text box, press the DELETE LINE/TEXT key
to erase the name. Then type the correct name. Or use the
SHOW LIST key to select another name.
3. Arrow to the Name text box (or press NEXT
ATTRIBUTE) and press the SHOW LIST key for a list of
the comm port names. The predefined names appear in a
choice list. The comm port you can choose depends on the
model of the controller. Below are the comm ports you can
choose for TankNet:
• 9000 series—COMM1 or COMM2
• 9200—COMM1, COMM2, COMM3, or COMM4
• 240—CUSTOMPORT
4. Select the comm port your TankNet is wired to and press
the EXECUTE key. (You may change the name in the next
window.) Then press the EXECUTE key to move to the
next window.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
3-21
Select a Comm Port
Name
LBuses, Terminals, Printers, TankNets, Users
Setting TankNet Attributes
Give TankNet Attributes
Figure 3-11 shows the Comm Port window that appears.
Figure 3-11. Comm Port Window for TankNet
View
Edit
Connect
Logout
Comm Port – FLOOR1
Name
COMM1
DefaultMode
( ) Printer
( ) Window
( ) Command
( ) Infinet
( ) Lbus
( ) AutoSet
(X) TankNet
Mode
Description
LBUS for IOUs
Baud
( ) Baud300
( ) Baud1200
( ) Baud2400
(X) Baud4800
( ) Baud9600
( ) Baud19200
SAVE
CANCEL
TankNet
You enter the following attributes:
1. Name—Already contains the name of the port. It may be
16 characters long and must start with a letter of the
alphabet. You can include underscores, periods, and
numbers in the name. If you change it here, the new name
replaces the old name throughout the network.
2. Description—Type a description of the comm port if
you would like. It is optional. This information is strictly
for you and does not affect the controller.
3. DefaultMode—Select TankNet for the TankNet cable.
4. Baud—Automatically set to Baud4800.
3-22
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
LBuses, Terminals, Printers, TankNets, Users
5. Mode —You cannot change this box. It displays the current
way the comm port is operating, TankNet.
6. Press the SAVE button, SAVE key, or EXECUTE key to
save the comm port attributes. The window automatically
closes.
Summary
• The TankNet on the Infinity CX 9000 network is connected
through one of the communications ports.
• The TankNet is connected to COMM1 or COMM2 of the
Infinity CX 9000.
• The TankNet is connected to COMM1, COMM2,
COMM3, or COMM4 of the Infinity CX 9200.
• The TankNet is connected to the CUSTOMPORT of the
CMX 240.
• You must select TankNet for the DEFAULTMODE of
the comm port.
• After you select TankNet, the MODE displays as
TankNet.
• After you select TankNet, the baud is automatically set to
Baud4800.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
3-23
Select TankNet for the
DefaultMode
LBuses, Terminals, Printers, TankNets, Users
Creating Your Own Logon
Define Who Can Use
Controller
To prevent unauthorized access to the system, you tell the
controller about who can use the system. You do this by
assigning each user a logon name. The logon is the name the
person logs on with.
Before you assign any other user logons, be sure to define
yourself as the ACC user and change the password to one
unique for your controller system. Follow these steps:
1. Be sure you are connected to an Infinity CX controller.
2. Select Edit User from the menu bar.
3. The Open a User window appears.
Inside all Open and Edit windows, you press the NEXT
ATTRIBUTE key to proceed from text box to text box
(press the PREVIOUS ATTRIBUTE key to move
backwards) and press the EXECUTE key to move on to
the next window.
Figure 3-12 shows the Open a User window.
Figure 3-12. Open a User Window
View
Edit
Connect
Logout
Open a User
Controller
Name
3-24
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
LBuses, Terminals, Printers, TankNets, Users
4. The name of the Infinity CX 9000 controller you are
connect to appears in the Controller text box. If you
expect to work on a different controller most of the time,
erase the controller name, type the new one, and press
NEXT ATTRIBUTE to proceed to the next text box. You
cannot create logons on an Infinet controller. (To assign a
password for the keypad on SCX 900 or LCX 810, see the
end of the chapter.)
If you decide you want to change the controller name, you
can erase it while the cursor is in the text box by pressing
the DELETE LINE/TEXT key. The entire name erases
and the cursor moves to the far left.
To move the cursor to the far left of the text box without
erasing the controller name, press the LEFT SIDE key.
Then type over the name.
If after erasing it, you want to bring the controller name
back, press the RESTORE TEXT key.
If you want to delete only the last few characters in the
controller name, arrow over to the first letter to remove
and press the DELETE TO RIGHT key. Characters to the
right of the cursor erase.
If you decide not to take any action, press CANCEL
WINDOW to erase the information, close the window, and
return the cursor to the Main menu bar.
More ways to move the cursor in this window and others
are explained in the section called Making Changes Inside
the Window, in Chapter 2.
5. Type the name you expect to log on with in the Name text
box. Since you are the system administrator, you should
type ACC.
6. Press the EXECUTE key to proceed to the User window.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
3-25
A Logon Gives Access to
All Controllers
LBuses, Terminals, Printers, TankNets, Users
Figure 3-13 shows the User window.
The User Window
Figure 3-13. User Window
View
Edit
Connect
Logout
User – FLOOR1 Kevin
User Name
Kevin
Full Name
SAVE
Password
Login Program
Logout Program
(
(
(
(
(
(
(
(
SAVE AS
)
)
)
)
)
)
)
)
Security Level
No Access
View Only
Acknowledge Alarms
Change Values
Enable/Disable
Configure
Program
Administrate
CANCEL
DELETE
TEACH
Notice that each text box is labeled: USER NAME, FULL
NAME, and so on. These labels are called “attributes.”
The attribute name, as stored in the controller, differs from
the label shown on the screen. Below, the controller view
of the attribute is shown in capital letters in parentheses.
You may enter each attribute as follows:
7. User Name (NAME)—You should already see the name
you entered in the Open a User window. This is the
name you use to log on. You cannot change or delete the
ACC name. (You may, however, create more than one
Administrate level user.)
8. Full Name (FULLNAME)—Type your full name, up to
32 characters, including spaces. You can include a period
3-26
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
LBuses, Terminals, Printers, TankNets, Users
after your middle initial if you want. This name is for
information only—you do not log on with it.
9. Password (PASSWORD)—You enter your password.
It can be up to 16 alphanumeric characters, including
underscores, periods, and numbers, but must start with a
letter of the alphabet.
10. Login Program (LOGINPROGRAM)—You type the
name of the program you want to automatically run each
time you log on. You may leave this text box blank until
you have written a program.
11. Logout Program (LOGOUTPROGRAM)—You type
the name of the program you want to automatically run
each time you log out. You may leave this text box blank
until you have written a program.
12. Security Level (LEVEL)—You arrow down to the
Administrate radio button. Press the space bar to select
it. For ACC, Infinity has already selected Administrate.
Administrate is the security level of the administrator,
who has access to all user passwords, programs, and
functions on all controllers. You are usually the only user
with such control.
You may, however, have more than one user with Administrate security level.
13. Press the NEXT ATTRIBUTE key until the cursor lands
on the SAVE button and press the EXECUTE key. This
is called “pressing the SAVE button.”
(You can also press the QUICK BUTTON key, then S,
to press the SAVE button. See Appendix A for a complete list of quick button keys.)
You press SAVE to save the information you have entered only on the controller you are connected to. The
window automatically closes.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
3-27
One User Should Have
Administrate Control
LBuses, Terminals, Printers, TankNets, Users
(You can also press EXECUTE from anywhere in the window, except on a button, to save and close the window.)
The controller now knows who you are and that you are the
administrator.
Logout with Logout
Menu
Now, log out by arrowing across the menu bar to Logout and
pressing the EXECUTE key. Or type LOGOUT in the
Command window and press EXECUTE.
Try logging on again using your new name and password.
Once you have logged on successfully, you are ready to create
logons for other users.
3-28
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
LBuses, Terminals, Printers, TankNets, Users
Summary
• Open the User window by selecting Edit User from the
Main Menu bar.
• You use the appropriate keys to enter the logon name of
the user in the Name text box.
• The first administrator keeps the ACC logon name. You
cannot delete the ACC user or change its name.
• You can (and should) assign the ACC user (yourself) a
new password up to 16 characters long.
• You may give the name of a program that runs each time
you log on and another that runs each time you log off.
• The ACC user is automatically at Administrate security
level. You cannot change the security level for ACC.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
3-29
You Cannot Change ACC
Security Level
LBuses, Terminals, Printers, TankNets, Users
Creating Other User Logons,
Assigning Security Levels
Assign Each User a
Security Level
Before anyone else can use the controller system, you must
tell the controller who that person is.
You tell the controller about each user approximately the
same way that you told it about yourself in Creating Your
Own Logon, only you assign each user an appropriate security
level.
The security level ensures that the user cannot delete points or
programs or make other changes unless you authorize them.
Quick Method of Setting Up
All Users on a Single Controller
You set up a user as follows:
1. Select Edit Users from the Main menu bar.
2. In the Open a User window, enter the Infinity CX 9000
name in the Controller text box and then the user name
in the Name text box. The user name is the name the user
later logs on with, and should be 16 characters or less,
starting with a letter of the alphabet; it can include
underscores, periods, and numbers, as well as letters.
3. Press the EXECUTE key to go to the User window.
4. Fill in the User Name that the user logs on with, the Full
Name of the user, and the Password. (To assign a
password for the keypad on SCX 900 or LCX 810, see the
end of the chapter.)
5. If you have not yet written a login or logout program, leave
those text boxes blank, otherwise type the names of the
programs in the text boxes.
3-30
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
LBuses, Terminals, Printers, TankNets, Users
6. Select a security level for that user by arrowing to the
appropriate level and pressing the space bar—see the
levels described on this page and the next.
7. Press the SAVE AS button. The Open a User window
appears.
8. Type the logon name of the user in the Name text box.
You have now set up one user.
9. Repeat steps 4 through 8 for each user, only each time you
press SAVE AS, change the name to another name and
press the EXECUTE key.
10. When you have finished defining all users, press the
SAVE button to save the information and close the window. Or press the EXECUTE key anywhere inside the
window except on a button. Or press the SAVE key from
anywhere in the window.
User Security Levels
The actions the user can take at each security level include all
of those of all lower levels and the following:
• No Access—Lowest level. You have no access.
• View Only—Can view summary windows of points,
system variables, Infinet controllers, messages, files, and
others, but cannot open windows with further information.
Can view the item but not change anything. Can print point
or system variable values and run programs in the
Command window if the program’s COMMANDLINE1
attribute is TRUE. A user you assign to this level may not
access the Edit menu.
• Acknowledge Alarms—Same as View Only. Has
more capabilities on Infinity SX 80000 workstations.
1. You learn about the COMMANDLINE attribute in Chapter 5.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
3-31
User Security Levels
LBuses, Terminals, Printers, TankNets, Users
• Change Values—Can change point or system variable
values in the Point, System Variable through the View
menu or the Command window. Cannot alter any other
attributes of a point. Can change values of changeable
system variables (such as HOUR or DATE). Can open a
program from the summary window, look at the lines and
statements, even alter the statements, but cannot save any
changes.
• Enable/Disable—Can change point or system variable
values and enable or disable them through the View menu
or the Command window. Cannot enable or disable
programs.
• Configure—This is the first level user that can load or
save the database.
Security Levels Are for
Particular Controllers
Can delete a point (even if it is disabled) or change any of
its attributes. Can alter any attributes of a program or other
file, including all information in the File Configuration
window. Can change the program text or delete any file.
This is the first user level that can alter triggers. This level
can also clear messages from the Messages window.
The user on this level can run programs from the command
line even if the COMMANDLINE attribute is FALSE.
• Program—Same as Configure for this version; to be
determined.
Only Administrator Can
Change Users
• Administrate—Can change anything in the controller.
Only users on the Administrate level can create more
users, change user security levels, or change passwords.
No user below this level (on Infinity CX) can add, delete,
or change any attribute of an EnergyNet or Infinet
controller or a comm port. This level user is also the only
user who can change the system time and date.
The security level applies to the controller whose name is
displayed in the Controller text box. So, you can give a
3-32
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
LBuses, Terminals, Printers, TankNets, Users
single user Change Values level access on one Infinity CX
9000 and View Only access on another.
If one Infinity CX 9000 handles building access and several
others handle HVAC control, then you would want the head
of security to have Configure security level on the first
controller and View Only security level on the others.
You need to set up each user on every controller the person
should have access to, but not by repeating the process you
just carried out. You can create the same users with the same
security levels on every Infinity CX controller from one
terminal (see the next section), then individualize each
controller as required.
Summary
User Access Changes
for Each Controller
• Before anyone else can use the system, you must tell the
controller who that person is.
• You fill in each user’s logon name, full name, password,
and security level.
• You can also include login and logout program names in
the user attributes. The programs are optional.
• You press the SAVE button when you have finished
defining one user and do not want to define more.
• You can also press the SAVE key or EXECUTE key to
both save information and close the window in one stroke.
• Press the SAVE AS button to save the user under the same
or another name without closing the window. You use
SAVE AS to define multiple users.
• The user’s security level applies to the controller you
assign it on. You can assign the same user different
security levels on different controllers.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
3-33
LBuses, Terminals, Printers, TankNets, Users
Copying All User Logons
to Multiple Controllers
Copy All User Logons to
Multiple Controllers
You can set up users on every controller on your EnergyNet
without leaving your terminal by carrying out the following
steps:
1. Create all the user logon names on a single controller.
2. Open the User window for any user.
3. Press the TEACH button.
4. The Teach window appears.
Figure 3-14 shows the Teach window.
Figure 3-14. Teach Window
View
Edit
Connect
Logout
Teach
(X) This User Only
( ) All Users
OK
CANCEL
5. You can teach all controllers about only the user you
opened or about all users on the controller you are
connected to. Press the DOWN key to move the X down to
All Users and the UP key to move it back up to This
User Only.
3-34
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
LBuses, Terminals, Printers, TankNets, Users
6. Press the OK button to begin the teaching process.
If you selected This User Only, in a few minutes every
controller on EnergyNet has the same information about
the user you have open.
If you selected All Users, in a few minutes every
controller on EnergyNet has the same information about
all users on the controller you are connected to.
You may not want to all users to have the same security
level on every controller on the EnergyNet, so plan
accordingly.
7. After you press TEACH here, you can then connect to any
particular controller separately and alter the security level
of any user.
8. Later, if you change a user logon name or password, you
must press TEACH to be sure the information is the same
on all Infinity CX controllers on the EnergyNet.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
3-35
Press OK Button
to Begin Teaching
LBuses, Terminals, Printers, TankNets, Users
Caution
Teach Controllers
Since this is the first time you have taught the controllers on
EnergyNet about users, you teach every controller all of the
attributes you have assigned each user:
• NAME
• FULLNAME
• LEVEL
• PASSWORD
• LOGINPROGRAM
• LOGOUTPROGRAM
Once you have taught the controller about a user, if you
use TEACH again, the control system teaches only the
FULLNAME and PASSWORD of any user the controller already knows about; it does not teach the logon name or
security level.
This means that if you want to change a user security level to
NoAccess, you must change that user on each controller.
If you want to give all users a logon program, you should
give it to all users the first time you press TEACH.
Otherwise, you must modify each user at each controller.
Now, if you do not have any Infinet controllers with keypads,
you have finished setting up the controller system. You can
now proceed to Chapter 4, where you assign all points.
If you do have Infinet controllers with keypads, you must
assign a password for each keypad as covered in the next
section.
3-36
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
LBuses, Terminals, Printers, TankNets, Users
Summary
Teach Saves Time
• To save time, you can create all user logons on one
controller then teach them to the other controllers on
EnergyNet.
• Be sure that the first time you teach about users, you have
set all attributes you want to set. Later, if you change those
attributes, you must change them for each user separately
on each controller.
• You press the TEACH button in the User window to teach
all controllers about either a single user or all user on the
controller you are connected to.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
3-37
LBuses, Terminals, Printers, TankNets, Users
Setting the Passwords for
Keypads on Infinet Controllers
Give SCX 900 and LCX
810 Keypads Passwords
If you have a keypad on an SCX 900 or LCX 810 controller,
you must set the password for each one. You must have the
Admin security level to carry out this procedure. You set the
password using a special word called LCDPASSWORD, as
follows:
1. Press the CANCEL WINDOW key as many times as
necessary to get to the Main menu bar and press C to get
to Connect.
Figure 3-15 shows the Open a Connection window that
appears.
Figure 3-15. The Open a Connection Window
View
Edit
Connect
Logout
Open a Connection
Controller FLOOR1
Infinet Ctlr ROOM 2
2. If the name of the Infinity CX controller in the Controller
text box is not the one the Infinet controller is connected
to, change it to the correct name.
3. Press NEXT ATTRIBUTE to move to the Infinet Ctlr
text box.
3-38
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
LBuses, Terminals, Printers, TankNets, Users
4. Type the name of the Infinet controller and press the
EXECUTE key.
5. Select Edit System Variables from the Main menu bar.
6. Press the SHOW LIST key to see a list of the system
variables.
Set LCDPASSWORD
Equal to the Three Digits
7. Arrow down to LCDPASSWORD and press the
EXECUTE key until you have opened the System
Variables window.
8. Enter the password in the text box to the right of Name.
The password must be three digits.
You can change it to any three digits you like at any time.
No one else can change the password unless you assign
that person the Administrate security level.
9. Press the SAVE button or the EXECUTE key to save the
new password.
10. Repeat these steps for each keypad.
You can now proceed to Chapter 4, where you assign all
points.
Summary
• To assign a password to an SCX 900 or LCX 810 keypad,
you must have Administrate security level.
• To assign the keypad password:
Connect to the controller from the Connect menu.
Open the System Variable window for LCDPASSWORD
and enter three digits you choose for the password.
• When you press the SAVE button or EXECUTE key, the
three digits become the password for that controller’s
keypad.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
3-39
LBuses, Terminals, Printers, TankNets, Users
3-40
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Chapter 4
Naming and Defining
Points
Note
Before you define any points, consider that EMX 140 and 150
expansion module outputs do not give standard feedback
indicating when you are controlling a point manually or its
manual control setting. If you want this kind of feedback from
a particular piece of equipment, do not use an EMX 140 or 150
to control it.
For more information see Chapter 1 and Chapter 10.
We recommend you read this chapter sequentially. In it you
define points used in the sample program in Chapter 5. This
chapter presents the following generic procedures:
•
•
•
•
•
•
•
•
•
•
www.PDF-Zoo.com
Naming Points
Setting Point Attributes
Filling in Point Details
Understanding How Input and Output Points Update
Naming Several Similar Points
Converting to Electrical Units
Knowing about Tristate Points
Naming a Tristate Point
Setting Up MIN, MAX, and SP Points on TCX 850
Naming Points on Another Controller
Naming Points
• An Alternative Method of Naming Points on Other
Controllers
• Viewing Points
• Deleting a Point from the View List
• Printing a Series of Point Values
• Being Sure the Reference or Ground Voltage Is Correct
4-2
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Naming Points
Table 4-1 shows the input and output points we name in this
chapter.
Table 4-1. Input and Output Points
Point
Controller
Model
Point Type
StaticPress
Floor1 AHU
SCX 900
Voltage Input
FanStatus
Floor1 AHU
SCX 900
Digital Input
SupplyFan
Floor1 AHU
SCX 900
Digital Output
PrehtValve
Floor1 AHU
SCX 900
Current Output
ReturnFan
Floor1 AHU
SCX 900
Digital Output
Dampers
Floor1 AHU
SCX 900
Current Output
MinAirFlow
Floor1 Room1
TCX 850
Voltage Input
HWTemp1
CENTRALPLANT
CX 9000 IOU
Thermistor
Burner
CENTRALPLANT
CX 9000 IOU
Digital Output
HWConvValve
CENTRALPLANT
CX 9000 IOU
Current Output
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
4-3
Naming Points
Naming Points
Select Edit Points
Once you have logged on and gathered information on the
points you need, to name a point:
1. Select Edit Points from the pulldown menu.
Figure 4-1 shows how the pulldown menu looks.
Figure 4-1. Selecting Edit Points from the Menu
View
Edit
Connect
Logout
Users
Points
Files
CommPorts
Controller
Infinet Controller
System Date & Time
System Variables
Persons
Areas
Doors
Figure 4-2 shows the window that appears on the screen.
Figure 4-2. Open a Point Window
View
Edit
Connect
Logout
Open a Point
Controller
Infinet Ctlr
Name
4-4
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Naming Points
In the Open a Point window, the cursor is in the Name
text box.
2. Refer to the Infinity CX 9000 or Infinet controller drawings
from Chapter 1.
The name of your Infinity CX 9000 is displayed in the
Controller text box. Because you are not working on a
SCX 900 or other Infinity CX 9000 controller, the Infinet
Ctlr text box is empty. To name a point on this “Infinet
controller,” you have two options:
• Type the name of a new point after Name. It may be
up to 16 characters long and must start with a letter of
the alphabet. You can include underscores, periods,
and numbers in point names.
OR
• Press the SHOW LIST key to bring up a list of already
defined points. This list is called a “choice list.”
Use the up and down arrow keys or the PAGE UP and
PAGE DOWN keys to move up and down the choice
list to highlight the point you want.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
4-5
Name the Point in the
Open a Point Window
Naming Points
The points are listed by types first, then alphabetically
within the type. They are listed in the following order:
Choice Lists Are in Order
• Input
• Output
• Numeric
• Datetime
• String (Infinity CX controllers only)
3. To select a point from the list of points, press the
EXECUTE key while the point is highlighted. The name
of the point appears in the Name text box.
If you make a mistake, you can erase text with either the
BACKSPACE (erase backwards) key or the DELETE
TEXT key (erase forward).
To cancel, press the CANCEL WINDOW key or the
MENU BAR key to return to the Main menu bar.
4. Then press the EXECUTE key to proceed.
4-6
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Naming Points
Summary
Points Must Be Named
To name a point:
1. Select Edit Points from the Main menu bar.
2. In the Open a Point window, you type the name of a new
point in the Name text box.
OR
In the Open a Point window, you press the SHOW LIST
key to see a choice list of point names already assigned
that you may want to change.
You choose one of the point names using one of these:
• Arrow keys.
• PAGE UP and PAGE DOWN keys.
Then press the EXECUTE key to complete the selection.
3. Press the EXECUTE key to proceed.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
4-7
Naming Points
Setting Point Attributes
Point Window
As shown in Figure 4-3, the Point window appears after you
have named your point.
Figure 4-3. Point Window for an Input Point
View
Edit
Connect
Logout
Point – CENTRALPLANT HWTemp1
Units
Value
Name HWTemp1
= 0.00
deg F
1
IOU Number
Channel Number
Type
(X) Input
( ) Output
( ) Numeric
( ) Datetime
( ) String
State
( ) Disabled
(X) Enabled
Labels Are Attributes
1
Electrical Type
( ) Voltage
( ) Digital
( ) Counter
(X) ACC Temp (DEG F)
( ) ACC Temp (DEG C)
( ) RTD Temp (DEG F)
( ) RTD Temp (DEG C)
( ) TankProbe
( ) Supervised
SAVE
SAVE AS
CANCEL
DETAILS
Remember, the labels are called “attributes.” Some attributes are
abbreviated in the controller’s memory. They are abbreviated as
shown in capital letters below. You set attributes as follows:
1. Name (NAME)—You can change the name on this
screen. It may be up to 16 characters long and must start
with a letter of the alphabet. You can include underscores,
periods, and numbers in the name. If you rename it here,
the new name replaces the old name.
The value (VALUE) of the point later appears in the text
box after the equal sign.
4-8
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Naming Points
2. The text box to the right of the VALUE automatically sets to
the engineering units (UNITS) associated with the particular
sensor type (ELECTYPE) you select. If you want, you can
change the type of engineering units in this text box.
3. Type (TYPE)—Arrow to your choice and press the space
bar. The X appears in the parentheses.
If you select Input, the Electrical Type box stays on the screen
as is. If you select Output, the Electrical Type lists
different types.
If you select Numeric, String, or Datetime, the
Electrical Type box and the IOU Number and
Channel Number disappear from the screen, because
those attributes are not applicable.
Figure 4-4 shows how the Type box appears when you
connect to an Infinet controller.
Figure 4-4. TYPE Attribute Selections on an Infinet
Controller
Type
( ) Input
(X) Output
( ) Numeric
( ) Datetime
The controller also automatically removes the String selection
from the Type box if you are connected to an Infinet controller.
4. State (STATE)—Arrow to your choice and press the
space bar. The X appears in the parentheses.
Set the State to Enabled, so you do not have to enable
the point before you can use it.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
4-9
NAME, VALUE, UNITS
Are Together
Naming Points
5. IOU Number (IOU)—This attribute applies only to Infinity
CX 9000 controllers. Refer to the network map. You may
recall that each controller on that map has one or more inputoutput units, called IOUs. Each IOU is numbered. If you are
setting up a TankNet probe, be sure the IOU number is 0.
Type the IOU number from the map into this text box.
Assign Channel Number
6. Channel Number (CHANNEL)—Refer to controller
drawing. Each input or output point (channel) is numbered.
Type the number of the input or output point from the
controller into this text box. If you are setting up a TankNet
probe, you must check the address setting of the probe. Address
setting 0 to channel 1, 1 corresponds to channel 2, and 2
corresponds to channel 3. Subsequent addresses correspond to
subsequent channel numbers in the same way. Refer to the
Infinity CX 9200 Installation Guide for exact switch settings.
If you are not using any EMX expansion modules, go to the
next step now.
Caution
You must be absolutely correct in assigning the channel number and electrical type to a point on an EMX module. Be sure
you know the order the modules are chained in and the type of
each input/output on the chain. Remember Board 1 must always be immediately before Board 2 for modules of the same
model number.
Suppose, for example, when you attempt to assign a Board 1
module with a pneumatic output and you assign it the voltage
type by mistake. Infinity does not know you meant the pneumatic output, and sets the voltage output on another Board 1
instead. The output then controls the equipment attached to
the voltage output—the wrong equipment! So, be very careful when naming your EMX inputs and outputs.
4-10
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Naming Points
If you are using EMX expansion modules, you should be
careful to assign the inputs and outputs the appropriate
number based on the type of controller and the electrical type
of the input or output. Be sure you have a map to follow.
Be sure you assign the Board 1 outputs for the first module
with the first expansion output numbers, then Board 2 outputs
for the second module with the next output numbers, then
Board 1 outputs for the third module, and so on, in the order
they occur regardless of the module model number. (Be sure
you have read and followed the ACC EMX Modules
Configuration Guide when you install modules.)
Before you assign a channel number to any EMX 170 or
190 module input or output, go to the next two steps and
assign an electrical type. Then come back to this step and
assign the Channel. Be sure you assign both before you
save the point.
7. Electrical Type (ELECTYPE) for an input—Select the
type of input the point senses from the following:
• Voltage—Select this type if the point is a voltage sensor
or a current sensor. The controller always gives a voltage
for the sensor with this type, so if you want the value to be
a current (milliamps), you enter a conversion, as described
in Chapter 8.
• Digital—Select this type if the point is an ON or OFF sensor.
• Counter—Select this type if the point is a pulse
counter. A pulse counter counts the falling edges of an
input waveform.
• ACC Temp (DEG F or DEG C)—Select one of these
types (degrees Fahrenheit or degrees Celsius) only if
the point uses a standard Andover Controls
Corporation thermistor. You also select this type for the
SmartSensor module (EMX 170) input.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
4-11
Select the Electrical
Type for Inputs
Naming Points
For the EMX 170 input, you must assign a particular
input number that changes from one Infinet controller
to another. It is always the highest input number
possible on that controller.
Assign EMX 170 Correct
Channel Number
Table 4-2 shows the input number you must assign if
you use an EMX 170 expansion module on any of the
various Infinet controllers.
Select RTD Type Only
for Properly Wired RTDs
• RTD Temp (DEG F or DEG C)—Available only on
Infinity CX 9500. Select this type only for an ACC RTD
wired to two consecutive inputs where the first is an odd
number—and assign the odd number as the Channel.
Table 4-2. Numbers You Must Assign
Particular Expansion Inputs/Outputs on
Various Controllers
EMX 190 Outputs
EMX 170 Input
Output Number(s)
Input Number
TCX 850/851
7 for Board 1and 8 for Board 2
25
LCX 810
15 and 16
25
SCX 900
15 and 16
33
ACX 710
4 and 5
26
Controller
Model No.
• TankProbe—Available only if you have a probe on
TankNet. Select this type for a tank probe.
• Supervised—Available only for access control.
These inputs apply to the eight supervised inputs
(labeled Supervisory) on the ACX 700 controller. Do
not set them up as inputs unless you want to control
them through an Andover Controls Plain English
program or associate them with alarms. You normally
set up these “inputs” as part of the Door, as explained
in the chapter on doors and areas. See the SX 8000
Programmer’s Guide for how you associate these
inputs with alarms.
4-12
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Naming Points
8. Electrical Type (ELECTYPE) for an output—Select the
type of output.
Assign Outputs to the
Correct Channels
Figure 4-5 shows the Electrical Type radio button box.
The types you can select are:
• Voltage—Select this type if the point is a voltage output.
• Digital—Select this type if the point is Form C, which
sets equipment to ON or OFF. (Output 3 on a ACX 700
is digital.)
• Current—Select this type if the point is a current output.
• Tristate—Select this type if the point is a tristate output.
Figure 4-5. Point Window for an Output Point on an
Infinity CX Controller
View
Edit
Connect
Logout
Point – CENTRALPLANT Burner
Name Burner
Type
( ) Input
(X) Output
( ) Numeric
( ) Datetime
( ) String
State
( ) Disabled
(X) Enabled
=
0.00
1
IOU Number
Channel Number
Electrical Type
( ) Voltage
( ) Digital
(X) Current
( ) Tristate
( ) Pneumatic
( ) ReaderDoor
( ) HiResVoltage
( ) HiResCurrent
1
SAVE
SAVE AS
CANCEL
DETAILS
• Pneumatic—Applies only to Infinet controllers. Select
this type for the EMX 140 expansion module outputs. If
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
4-13
Naming Points
you have an EMX 141 or 143 with only one output, you
must skip an output for the missing one.
• ReaderDoor—Applies only to Infinet controllers other than the ACX 700.
Note
Do not assign any doors on an ACX 700 as ReaderDoor
type points. Set them up as Doors following the instructions in the chapter on doors (if you have access control).
Select this type for a door with a card reader. The card
reader and door switch may be on a ACX 710 controller
(see Chapter 1 and Chapter 16) or a EMX 190 module.
Refer to the table (on previous page) for the output numbers you must assign if you use a EMX 190 expansion
module on any of the various Infinet controllers. The
numbers must be the highest output numbers possible for
the controller.
Assign EMX 151 Outputs
to HiRes Types
• HiResVoltage—Applies only to Infinet controllers.
Select this type for an voltage output.
• HiResCurrent—Applies only to Infinet controllers.
Select this type for an EMX 151 current output.
4-14
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Naming Points
Figure 4-6 is a sample of the kind of map you might want
to follow when setting up your EMX module inputs and
outputs. A map like this helps you avoid making errors.
Sample Map of EMX
Modules
Figure 4-6. Sample Map of EMX Modules on an SCX
900 Controller
The EMX 190 outputs must be
output numbers 15 and 16.
For only one EMX 190, the
output would be number 15
on Board 1 or 16 on Board 2.
SCX
900
External
Power
Supplies
EMX 150
Board 1
Output 9—Voltage
Output 10—Voltage
EMX 150
Board 2
Output 11—Current
Output 12—Current
EMX 141
Board 1
Output 13—Pneumatic
(Count Output 14 but do
not assign)
EMX 190
Output 15—ReaderDoor
Board 1
EMX 190
Board 2
Output 16—ReaderDoor
EMX 160
Board 1
Inputs 17–24—Digital
EMX 170
—1 Input
Input 33—Temperature
The EMX 170 input must
be input number 33.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
4-15
Naming Points
Strings Have a String
Size
9. If you selected String for the type, you must define one
other attribute.
String Size (STRINGSIZE)—Set to the number of
characters in the string. It is set to 132 automatically and
stays that value if you do not change it.
Figure 4-7 shows settings for a MESSAGE point with a
STRINGSIZE of 45. Notice that this point is on the Infinity
CX controller. You cannot have string points on an Infinet
controller.
Figure 4-7. Point Window for a String Point
View
Edit
Connect
Logout
Point – Floor1 Message
Name Msg.Spec =
Type
( ) Input
( ) Output
( ) Numeric
( ) Datetime
(X) String
State
( ) Disabled
(X) Enabled
4-16
www.PDF-Zoo.com
The Preheat Valve Is OPEN
String Size 45
SAVE
SAVE AS
CANCEL
DETAILS
Infinity Controller Programmer’s Guide
Naming Points
10. Press the NEXT ATTRIBUTE key to move to the
DETAILS button; then press the EXECUTE key.
(This is called “pressing the DETAILS button.”)
Press the Details Button
11. If you do not want to fill in the point details, you may
press the SAVE button, EXECUTE key, or SAVE key.
The controller saves the point and closes the window.
You can also press the CANCEL button to cancel the point
definition.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
4-17
Naming Points
Summary
Press CANCEL to Cancel
the Point
• You can set some point attributes in the Point window.
• Some attributes are NAME, TYPE, STATE, ELECTYPE,
IOU, and CHANNEL.
• Once you fill in the attributes, you can press the NEXT
ATTRIBUTE key to move to the DETAILS button; then
press the EXECUTE key to open the Details window.
• When you assign point numbers, you must assign the
inputs and outputs to the corresponding channel on the
controller.
• EMX modules are the following types with the following
types of inputs and outputs:
EMX 140—Two Pneumatic Outputs (Some variations on
the model have only one output; however, you must always treat each EMX 140 as if it has two outputs.)
EMX 150—Two Voltage/Current Outputs
EMX 151—Two High Resolution Voltage/Current Outputs
EMX 155—Two Digital Outputs (Form C)
EMX 160—Eight Digital Inputs
EMX 170—One Temperature Input
EMX 190—One Reader Door Output
4-18
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Naming Points
We strongly recommend you have a map of the chain of
EMX modules. You must be sure to assign the correct type
and always assign Board 1 inputs/outputs to numbers lower than those for Board 2 of the same model number
module.
If you have any questions about how to set up a module
chain, refer to the ACC EMX Modules Configuration
Guide included with the module.
• The EMX 170 module input must always have the highest
input number possible for the controller.
• The EMX 190 module outputs must always have the
highest output number possible for the controller.
• String points require an attribute called STRINGSIZE.
• When you should move to a button and press the
EXECUTE key, we say “Press the button,” rather than
explaining how each time.
• You can press the CANCEL button to cancel the point.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
4-19
Refer to Modules
Configuration Guide
Naming Points
Filling in Point Details
Press the Details Button
Once you have pressed the DETAILS button, the Details
window appears.
As shown in Figure 4-8, the input point details define the
point in more detail.
Figure 4-8. Input Point Details Window
View
Edit
Connect
Logout
Point – Floor1 AHU StaticPress
Description
Static Pressure
Display Format
SAVE
###.##
Exported X
Threshold
CANCEL
.02
LOGS
Conversion
Auto-Conversion
Inches
Volts
Top
5
5
Bottom
0
1
TRIGGERS
DELETE
Figure 4-9 shows how the output point details differ from
those for input points.
You set these additional point attributes as follows:
1. Description (DESCRIPTION)—Enter a description of
the point if you would like. It is optional. This description
later displays in View menu windows.
2. Display Format (FORMAT)—Automatically set to the
display format associated with the engineering units you
selected in the Point window. You can change the display
format in this text box.
4-20
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Naming Points
Figure 4-9. Output Point Details Window
View
Edit
Connect
Logout
Point – CENTRALPLANT HWConvValve
Description
HW Converter Valve
SAVE
Display Format %###
Exported
X
CANCEL
Conversion
Auto-Conversion
Open
LOGS
mA
Top
1
20
Bottom
0
4
TRIGGERS
DELETE
Pound signs each stand for a digit or character. A dollar
sign and three pound signs ($###) always print out ON, –
ON, or OFF for a digital or tristate point. The percent sign
followed by three pound signs prints 1 as 100%. So units
of % Open do not require the percent sign, as it prints with
the number. More format details are described under the
PRINT keyword in the Andover Controls Plain English
Language Reference.
3. Exported (EXPORT)—You do not change this setting.
An X appears here if the point is being used by another
program in a different controller.
4. Threshold (THRESHOLD)—(Appears for input points
only.) Enter the amount of change that must occur before
the input should update. For instance, you may want the
temperature updated only if it changes by at least 2
degrees.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
4-21
Additional Point
Attributes
Naming Points
5. Conversion (CONVERSION)—Enter a conversion if
you need to convert electrical units to engineering units or,
for outputs, convert in the other direction.
You Enter a Conversion
Formula
If your units do not automatically convert, use this field for
the formula. The conversion can contain up to 132 characters. After you fill the portion of the box that shows on the
screen, it scrolls so that you can continue to fill it. Only input or output points can have a conversion.
6. Top (ENGSCALETOP)—(Input and output points only.)
In the grid at the bottom of the screen, enter the top of the
scale for the point in the first column to the right of Top
under the units that appear. The units you put next to
Engineering Units reappear here. If a Current output
were in %Open, you might enter 1 (100%) for top of scale.
(See Display Format for where % sign appears.)
7. Bottom (ENGSCALEBOT)—Enter the bottom of the
scale for the point in the first column to the right of
Bottom under the units that appear. For the bottom, you
might enter 0 for 0%.
8. Top (ELECSCALETOP)—The second column to the
right of Top is automatically labeled with Volts for a
Voltage type, Pulses for a Counter, and mA for a
Current type. Enter what you want your engineering
units’ top of scale to convert to in electrical units. The
controller automatically converts engineering units to this
value. You would enter 20 mA for the example in step 7.
9. Bottom (ELECSCALEBOT)—Same as top of scale. You
enter 4 mA for the example in step 8.
4-22
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Naming Points
Special Attributes of Digital Inputs
Figure 4-10 shows the details for a digital input point that has
been inverted. Notice that another text box, Invert On/Off,
appears for digital points.
Figure 4-10. Input Point Details Window for Digital
Type Input with Inverted ON/OFF
View
Edit
Connect
Logout
Point – Floor1 AHU FanStatus
Description
Fan Status is Inverted
SAVE
Display Format $###
Invert On/Off X
Exported X
CANCEL
LOGS
Conversion
TRIGGERS
DELETE
Invert On/Off (INVERT)—(Appears for digital points
only.) Press the space bar (the X appears) to invert ON and
OFF. Press the space bar again to return to normal ON/
OFF.
Special Attributes of Supervised Inputs
A supervised input point requires that you tell the controller
the type of resistor.
Figure 4-11 shows the input point Details window for a
supervised input. In this case, the switch is normally open and
the resistor is in series.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
4-23
You Can Invert a Digital
Point
Naming Points
Figure 4-11. Input Point Details Window for
Supervised Type Input
View
Edit
Connect
Logout
Point – Floor1 Room1 GlassBreak
Description
GlassBreak Sensor in Room1
SAVE
Display Format $######
Exported X
CANCEL
Resistor Type NOSeries
Conversion
LOGS
TRIGGERS
DELETE
Set the Resistor Type
Resistor Type—This text box appears only if you
selected Supervised for the electrical type. Here, press
the SHOW LIST key and select the type of resistor in the
supervised input from the choice list: NOSeries,
NOParallel, NOSerPar, NCSeries, NCParallel,
NCSerPar. If the resistor is for a supervised input on an
EMX 190 (channel 9, 10, 11, or 12), you must select
NOSeries, NOParallel, NCSeries, or NCParallel;
other options are not available on the EMX 190.
Special Attributes of Numeric Points
Figure 4-12 shows how the numeric point details differ from
those for input and output points.
Setpoint (SETPOINT)—Set to ON by pressing the space
bar so that the (X) appears. When ON, the controller
remembers the current value as the setpoint.
4-24
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Naming Points
Figure 4-12. Numeric Point Details Window
View
Edit
Connect
Logout
Point – Floor1 Room1 NUM
Description
Display Format %###
SAVE
Setpoint
CANCEL
Exported X
LOGS
TRIGGERS
DELETE
Special Attributes of String Points
String Point Details
Figure 4-13 shows the string point details.
Figure 4-13. String Point Details Window
View
Edit
Connect
Logout
Point – Floor1 Message
Description
SAVE
Setpoint
CANCEL
LOGS
TRIGGERS
DELETE
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
4-25
Naming Points
Special Attributes of DateTime Points
DateTime Point Details
Figure 4-14 shows the datetime point details.
Figure 4-14. DateTime Point Details Window
View
Edit
Connect
Logout
Details – Floor1 AHU DTS
Description
SAVE
Setpoint
Exported
X
CANCEL
LOGS
TRIGGERS
DELETE
For the sample program, connect to the AHU SCX 900 and
name this output point:
SUPPLYFAN—Output (channel) 1. The supply fan. Set the
electrical type to Digital.
4-26
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Naming Points
Saving the Point
To save the point, press the SAVE button to return to the
Point window and press SAVE there. Or, you can press the
SAVE key or EXECUTE key anywhere in either window, as
long as you do not press EXECUTE on a button that directs
another action (such as TRIGGERS).
You can press the TRIGGERS button to set triggers, but first
you must have written a program. We show how to set up logs
and triggers in a later chapter.
You can press DELETE to delete the point at any time. Note
that users with access level below Configure cannot delete
points.
Summary
• After you press the DETAILS button, the Details window
appears on the screen.
• You fill in the details about each point.
• Input and output points can have a conversion.
• Input, numeric, string, and datetime points can be arrays.
• You can press the TRIGGERS button to set triggers.
• You can press the DELETE button to delete the point.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
4-27
Press SAVE Button or
Press SAVE key
Naming Points
Understanding How Input and
Output Points Update
Exactly how do input points update? Each input constantly receives an ELECVALUE, a raw value, from the environment.
If the ELECVALUE changes, the controller converts it to the
VALUE. Otherwise, the input VALUE does not update.
Input Updating
Figure 4-15 illustrates how an input point updates.
Figure 4-15. Process of Input Point Update
Pressure
Sensor
P/V
ELECVALUE:
CONVERSION:
(Occurs only when new
ELECVALUE is different
from old ELECVALUE)
2.6 Volts
If Number
of Volts
Changes,
Convert to psi
UNITS
= psi
VALUE:
60 psi
(Value updates only when difference between new VALUE
and old VALUE is at least the THRESHOLD value)
4-28
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Naming Points
An output point updates similarly, only the VALUE changes
first. If you change the setting of an output, the controller then
converts the VALUE to an ELECVALUE.
The ELECVALUE is the number of volts or milliamps (or
other raw units) that actually set the output equipment to the
new value.
Output Updating
Figure 4-16 illustrates how an output point updates.
Figure 4-16. Process of Output Point Update
VALUE:
60 % Open
UNITS
= % Open
CONVERSION:
ELECVALUE:
If % Open
Changes,
Convert
to milliamps
(Occurs only when new
VALUE is different
from old VALUE)
12 mA
Damper
Output
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
4-29
Naming Points
Naming Several Similar Points
Alter the Point, Then
Save It Under New Name
Once you have named the first output point, to name several
more output points, you can alter the first point’s settings and
just change the name. How do you do it?
You use the SAVE AS button.
SAVE AS
Use the SAVE AS Button
After you have filled in the attributes for the SUPPLYFAN,
you can use SAVE AS to save it and quickly create the three
additional points needed for the sample program, as follows:
1. If you are in the Details window for the SUPPLYFAN,
press SAVE to return to the Point window.
2. Press the SAVE AS button.
3. A new Open a Point window appears on top of the
Point window.
4. Enter the name of the point you now have open
(SUPPLYFAN) in the Name text box. Be sure it is the
exact same name, then press the EXECUTE key. You
have now saved the current point under its own name.
Now, create the next point as follows:
1. Change the output (CHANNEL) number to the output for
the next point.
You cannot change the TYPE unless you leave the
window and open it again, so make another output point.
2. Move to and press the DETAILS button and fill in the
details of the next point.
3. Press SAVE to return to the Point window.
4-30
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Naming Points
4. Press SAVE AS again. A new Open a Point window
appears on top of the Point window.
5. Type the name of the new point in the Name text box and
press the EXECUTE key. You now have two output
points.
6. When you have given names to all your output points,
press SAVE to leave the window and repeat the process for
your input, numeric, datetime, and string points.
Additional points you need to name for the sample program
are:
• RETURNFAN—Output (channel) 2. The return fan. Set
the electrical type to Digital.
• DAMPERS—Output (channel) 5. The dampers. Set
electrical type to Current. Top of scale should be 1
(100%) and bottom 0 in engineering units of %OutsideAir;
top 20 mA and bottom 4 mA in electrical units. For the
dampers 100% OutsideAir means 100% outside air and no
return air. And 0% OutsideAir means all return air. (So, at
60% OutsideAir, the air mixture contains 40% return air.)
• PREHTVALVE—Output (channel) 8. The preheat coil
valve. Set the electrical type to Current. Top of scale
should be 1 and bottom of scale 0 under the first column in
engineering units of %Open; top 4 mA and bottom 20 mA
in electrical units.
The PREHTVALVE is the reverse of the scale for the
DAMPERS point. Why? Because this valve is normally
open and the bottom of scale is the closed setting.
To set up the auto-conversion for this point, proceed to the
next section.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
4-31
Sample Program Points
Naming Points
Converting to Electrical Units
GOAL: To assign electrical units so that they automatically
convert PREHTVALVE settings.
% Open Converts to
Milliamps
Remember, the PREHTVALVE is the preheat coil valve. The
top of scale in engineering units should be 1 (100%) and the
bottom 0.
The translation into electrical units is in milliamps. Usually, 0
converts to 4 mA to open and 1 to 20 mA to close; in this case,
the electrical units are reversed.
When you say CLOSE this valve, it really means “set this
valve to the bottom of its scale.” Unless you reverse the electrical units, the bottom of the scale for this valve is OPEN.
To set the point so that it opens when you say OPEN and closes when you say CLOSE, you must have the automatic
conversion convert engineering units to the opposite positions
on the scale in electrical units.
Figure 4-17 shows how the electrical and engineering units
are set to opposite scales to setup the conversion.
The auto-conversion in the illustration makes OPEN open the
valve and CLOSE close the valve.
You can use the auto-conversion grid only for points that are
Voltage, Current, or Counter.
Other types of points require that you enter a conversion in the
Conversion text box.
To set ON to OFF and OFF to ON in similar circumstances for
a Digital point, you put an X after Invert On/Off in the
Details window.
4-32
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Naming Points
Figure 4-17. Auto-Conversion Setting
View
Edit
Connect
Logout
Point – CENTRALPLANT PrehtValve
Description
Preheat Coil Valve
SAVE
Display Format %###
Exported
X
CANCEL
Conversion
Auto-Conversion
Open
LOGS
mA
Top
1
4
Bottom
0
20
TRIGGERS
DELETE
When you want % Open (or % anything) for units, set your
display format to %###. This format automatically multiplies
the engineering units by 100, so 1 becomes 100, .8 becomes
80, and .15 becomes 15. Later when you PR the point value,
it lists the valve, set at .8, as shown below:
PrehtValve = 80 % Open
Summary
• You can set the Auto-Conversion grid to convert units
to their opposite values.
• You can convert analog or counter points with the autoconversion.
• You can display the value of 0 to 1 engineering units as 0
to 100% by using %### as the display format.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
4-33
Auto-Convert Analog
and Counter Points
Naming Points
Knowing about Tristate Points
Where Tristate Points Are Found
Tristate Points on IOUs
and Infinet Controllers
A tristate point can be on one of three controllers:
• An Infinity CX 9000 IOU with all tristate output points.
• An SCX 900 or similar Infinet controller where two
universal outputs are wired to be one tristate.
• A TCX 850, which has one dedicated tristate output.
(Details on tristate points are included in the installation guide
for each controller.)
Tristate Points on SCX 900s
When two universal outputs combine to make one tristate output on an SCX 900, you indicate the situation to the hardware
by setting a slide switch. (See the Andover Controls SCX 900
Installation Guide for details.) The two outputs are always an
odd number, followed by an even number.
Under these conditions, the controller does not know how you
wired the points. So, you need to tell it that the output is
tristate. You select Tristate in the Electrical Type box.
When you use two outputs as one tristate output, you set only
one of two outputs (output 1 for outputs 1 and 2 or output 3
for outputs 3 and 4, and so on) in the Point window.
4-34
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Naming Points
Figure 4-18 shows how the two are wired together.
Figure 4-18. Wiring Two Outputs on an SCX 900 to
Form One Tristate Output
Odd
Output
Even
Output
NC
C
NO
I
V
GND
GND
I
V
NC
C
NO
C
+ON
You can wire as
a current or voltage
output on even
output number.
OFF
–ON
(If you run short of points, you can assign the even numbered
output as a Voltage or Current type, but not as a Digital.
You would wire the V or I and the ground (GND)). So when
output 3 becomes tristate, output 4 can be voltage or current.
Summary
• Tristate points are either on IOUs of an Infinity CX 9000,
on a TCX 850, or on an SCX 900.
• Tristate points on SCX 900 are formed by setting a slide
switch and wiring two points, an even and odd output, as
one.
• The TCX 850 has one dedicated tristate output.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
4-35
Odd Output is Tristate,
Even is Analog
Naming Points
Naming a Tristate Point
GOAL: To name a tristate point, called CHILLERVANES,
for the chiller vanes on the second IOU of the CENTRALPLANT Infinity CX 9000.
You name a tristate output point as follows:
1. Start on the terminal connected to the CENTRALPLANT
Infinity CX 9000 or connect to that controller using the
Connect menu.
2. Select Edit Points from the Main menu bar.
3. Enter the point name (CHILLERVANES) and press the
EXECUTE key.
CHILLERVANES Is on a
Tristate IOU
4. Enter all point attributes (including IOU 2 and CHANNEL
7 for output 7) and move to the DETAILS button.
5. Press the DETAILS button to open the Details window.
6. Enter a description and display format if you want to.
7. Move to and press the SAVE button.
8. When the Point window displays, press the SAVE AS
button. Enter the name of the point you just defined to save
the changes to the information under that name.
Save the Altered Info to
Another Tristate Point
9. Repeat the steps above, saving the points to different
controllers and point names, until you have entered all the
tristate points you need.
10. Once you have finished creating points, press the
EXECUTE key to save the information and close the
window. You can also press the SAVE key or the SAVE
button; each automatically closes the window.
4-36
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Naming Points
Summary
• To have a tristate point on an Infinity CX 9000, you must
have a tristate IOU attached to the controller.
Use SAVE AS to Enter
More Than One Point
• You use SAVE AS to enter one point after another.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
4-37
Naming Points
Setting Up MIN, MAX, and SP
Points on TCX 850
GOAL: To assign names and types to the MIN, MAX, and SP
knobs (inputs 5, 6, and 7) on TCX 850 controllers.
Assigning TCX 850 Input Points
TCX 850 Knobs Are
Programmable Inputs
You set the three knobs on the TCX 850 labeled MIN, MAX, and
SP (inputs 5, 6, and 7, in that order) manually.
They all read in voltage, from 0 to 5.12 V, so you must set
them up as voltage inputs in the Point window.
But what do you do with them?
You can program MIN and MAX to be, for instance, the minimum and maximum air flow. When you turn them clockwise,
you increase the voltage. Increasing the voltage can either increase or decrease the air flow, depending on how you set up
the auto conversion.
Figure 4-19 shows the way you could set up MIN as a point
called MINAIRFLOW with an auto-conversion.
4-38
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Naming Points
Figure 4-19. Input Point Details Window
View
Edit
Connect
Logout
Point – Floor1 Room1 MinAirFlow
Description
Minimum Air Flow in Room 1
Display Format
SAVE
%###
Exported X
CANCEL
Threshold .05
LOGS
Conversion
Auto-Conversion
Inches
Volts
Top
1
5.12
Bottom
0
0
TRIGGERS
DELETE
You can also program SP for any purpose that you would like,
such as to set the setpoint.
Summary
• The knobs on the TCX 850 are inputs 5, 6, and 7. You can
set them to Voltage type and convert them to any purpose
you would like.
• You can use MIN and MAX knobs to set minimum and
maximum air flow.
• You can use SP to set the setpoint for air flow.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
4-39
Program SP for Any
Purpose
Naming Points
Naming Points on Another
Controller
Select Connect from the
Main Menu Bar
If the point you are naming is on an Infinity CX 9000 or Infinet
controller different from the one you are working on, refer to
your network map.
Find the type and name of the controller the point is on.
1. Select Connect from the Main menu bar.
Figure 4-20 shows the Open a Connection window that
appears.
Figure 4-20. Open a Connection Window
View
Edit
Connect
Logout
Open a Connection
Controller
Floor1
Infinet Ctlr
The name of your Infinity CX 9000 is displayed in the
Controller text box.
2. To change the Infinity CX 9000 name, you can:
• Erase it using the DELETE LINE/TEXT key and type
the name of another Infinity CX 9000.
OR
4-40
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Naming Points
• Press the SHOW LIST key to bring up a choice list of
Infinity CX 9000 controllers.
The list of Infinity CX 9000 controllers is in
alphabetical order.
Use the up and down arrow keys or the PAGE UP and
PAGE DOWN keys to move up and down the list of
controllers to highlight the one you want.
Press the EXECUTE key to put the name you want in
the Controller text box.
3. Press the NEXT ATTRIBUTE key to move to the Infinet
Ctlr text box (or press the down arrow key).
4. Repeat step 2, only this time type or select the name of an
Infinet controller.
The list of controllers is in alphabetical order. Arrow down
to AHU.
Press the EXECUTE key to place the name in the text box.
5. Press the EXECUTE key.
6. When the OK button appears, press the EXECUTE key
again. From now on, the Infinity CX 9000 you selected
here and the Infinet controller are the ones that will appear
in the Open a Point window each time you select Edit
Points.
(Later, you can use Connect to connect to a different
controller.)
7. Return to the section called Naming Points and proceed to
name the points on the controller you are now on.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
4-41
Select the Name of an
Infinet Controller
Naming Points
An Alternative Method of
Naming Points on Other
Controllers
Change Controllers with
CD Command
1. Press the CANCEL WINDOW key. The cursor moves to
the Command window.
2. Type CD followed by the name of the Infinity CX
controller and the name of the Infinet controller, as in the
example that follows:
CD FLOOR1 ROOM4
Figure 4-21 shows the CD command in the Command
window.
Figure 4-21. CD Command Line
View
Edit
Connect
Logout
Command Window – FLOOR1
R> CD FLOOR1 ROOM2
R>
3. Press the EXECUTE key. Now you name points on the
Infinity CX 9000 or Infinet controller you selected here.
The controller name or names appear in the Open a
Point window each time you select Edit Points.
4-42
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Naming Points
4. Return to the section on Naming Points you read earlier.
5. To select another controller and name points on it, repeat
these steps.
Summary
• You can connect to another controller either from the Main
menu bar or from the Command window.
• On the Main menu bar, arrow to the Connect menu and
press the EXECUTE key.
• In the Command window, type the CD command
followed by the name of the Infinity CX controller, then the
Infinet controller.
• The names of the controller or controllers you connect to
appear in the Open a Point window each time you select
Edit Points.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
4-43
Two Ways to Connect to
a Controller
Naming Points
Viewing Points
Display Information
about Points
After you return to the Main menu bar, select View Points.
Information about the named points appears.
The name of each point is in the far left column.
As shown in Figure 4-22, the other columns contain the other
attributes:
The VALUE attribute is either ON or OFF for each fan in the
sample program. The other points, however, are in units of
% Open and % OutsideAir.
The TYPE attribute reveals whether each point is Input,
Output, Numeric, String, or Datetime. If the point is an
input or output point, the point summary gives the IOU number if applicable (under I) and the channel number (under C)
after it.
The STATE attribute should be set to Enabled.
Figure 4-22. Point Summary Window
View
Edit
Connect
Logout
Point Summary – Floor1 AHU
Name
Value Units
SupplyFan OFF
ReturnFan OFF
Dampers
100% OutsideAir
PrehtValve 100% Open
Type
I C
Output
Output
Output
Output
0, 1 Enabled
0, 2 Enabled
0,3 Enabled
0,4
State
Enabled
Notice that the points shown in the summary are the ones on
the AHU SCX 900 Because they are not on IOUs, the IOU
number is 0. The number after the zero is the channel.
4-44
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Naming Points
the actual output number. To see points on other SCX 900s or
other Infinity CX 9000 controllers, first connect to that controller through the Connect menu.
If you see a point in the summary that you want more information about, arrow down until it is highlighted and press the
EXECUTE key to open its Controller window.
The SUPPLYFAN, RETURNFAN, DAMPERS, and
PREHTVALVE points are the ones you use in Chapter 5 to
write your first program.
Press the CANCEL WINDOW key to close the window. The
cursor returns to the Main menu bar.
Summary
• Select View Points from the Main menu bar.
• View the name, value, units, type (including IOU and
channel numbers), and state.
• If a point is on an Infinet controller, the IOU number is 0.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
4-45
Press EXECUTE to Close
the Window
Naming Points
Deleting a Point from the View
List
You Can Delete Point
from View List
While you are displaying the summary you opened with View
Points, you can delete a point from the list.
Arrow down to the point you want to delete and when it is
highlighted, press the DELETE TEXT key.
You have then removed that point from the controller.
Figure 4-23 shows removing the DAMPERS point. (Do not
actually delete the point. You use the point in the sample
program in the next chapter.)
Figure 4-23. A Selected Point in the Point Summary
Window
View
Edit
Connect
Logout
Point Summary – Floor1 AHU
Name
Value Units
SupplyFan OFF
ReturnFan OFF
Dampers
100% OutsideAir
PrehtValve 100% Open
Type
I C
Output
Output
Output
Output
1, 1 Enabled
1, 2 Enabled
1,3 Enabled
1,4
State
Enabled
You can also return to the point Details window and remove
the point by pressing the DELETE button.
In either case, when you try to delete a point, a window appears on the screen asking if you want to cancel.
Figure 4-24 shows the window.
4-46
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Naming Points
Figure 4-24. A Message to Prevent Accidentally
Deleting a Point
Delete a Point
You are about to delete this point. Do you want to cancel?
YES
NO
Press the YES button to cancel or the NO button to actually
delete the point.
Summary
• You can delete a point from the Details window.
• You can delete a point from the View Points list using
the DELETE TEXT key.
• If you decide you want to cancel, and not delete the point,
press the YES button to cancel.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
4-47
Press EXECUTE to Close
the Window
Naming Points
Printing a Series of Point
Values
Print Particular Point
Values with P or PR
Another way to see a series of point values, and to look at only
the specific ones you want to see, is to use the P (or PR) keyword in the Command window. P prints a series of points
and their values. You enter P and a list of points separated by
commas, like this:
P OAT, SPACE20TEMP, SPACE8TEMP
The results that print on the screen include the name of the
point, its value, and the engineering units of the point.
Figure 4-25 shows the commands in the window. (Remember
not to type the R>. The R> indicates where you may type.)
Figure 4-25. P or PR Command Lines
View
Edit
Connect
Logout
Command Window – Floor1 AHU
R>P OutsideAir, SpaceTemp
OutsideAir = 56 degrees F
SpaceTemp = 66 degrees F
R>PR SupplyFan, PrehtValve
SupplyFan = ON
PrehtValve = 100%Open
You can also display system variable and point values on the
LCD of the keypad found on some Infinet controllers (SCX
900 and LCX 810 controllers). Details on how to display them
are in the Andover Controls Infinity CX Operator’s Guide.
4-48
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Naming Points
Summary
• You can use the P (or PR) command to print the point
name or predefined name and its value in the Command
window.
• If you use P, the units are printed after the value.
• P and PR are the same command.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
4-49
P Prints the Name, Value,
and Units
Naming Points
Being Sure the Input Voltage
or Ground Voltage Is Correct
Check Input
or Ground Voltage
Suppose all inputs on your TCX 850 series or LCX 800 series
controller show a value of 999.99. How could that happen?
If the input or ground voltage to one input is too high,
Infinity sets all inputs on that controller to the 999.99 value
until situation is corrected.
If this occurs, get out your Volt-Ohm Meter and test each input to find out which has the high input or ground voltage.
Consult the hardware installation guide for any TCX 85
series of LCX 800 series controller to find out the correct
ground voltage for the inputs on that controller.
4-50
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Chapter 5
An Overview of the
Programming Process
This chapter presents these procedures while it develops one
sample program using the points created in Chapter 4:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
www.PDF-Zoo.com
Defining the Program Action
Talking to the Controller
Understanding Keyword Formats
Acting on Lists of Points
Writing the Program
Creating a Program File
Setting File Attributes
Entering a Program
Entering Statements
Exiting and Saving a Program
Searching for Errors
Starting a Program from the Command Window
Monitoring Point Values
Monitoring Program Action
Stopping a Program
Overview of Programming
5-2
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Overview of Programming
Table 5-1 shows the input and output points we program with
in this chapter.
Table 5-1. Input and Output Points
Point
Controller
Model
Point Type
SupplyFan
FLOOR1 AHU
SCX 900
Form C Output
PrehtValve
FLOOR1 AHU
SCX 900
Current Output
ReturnFan
FLOOR1 AHU
SCX 900
Current Output
Dampers
FLOOR1 AHU
SCX 900
Form C Output
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
5-3
Overview of Programming
Defining the Program Action
You Set a Program Goal
You begin by deciding what you want your controller to do.
GOAL: To have the controller activate morning warmup.
You instruct the Infinity CX 9000 controller and network of
Infinet controllers using an English-like programming language called Andover Controls Plain English. You write
instructions in that language that direct the controller.
You must break your instructions down into single-action
steps.
Activating morning warmup means, for a given air handler,
using 100% return air (0% outside air), turning on the fan,
then opening the preheat valve.
Outline Every Step
To tell the controller to activate the morning warmup, you
must remember to tell it every step required to do so. You
would break down the steps in chronological order:
1. Close the dampers (to have only return air).
2. Turn on the supply air fan.
3. Turn on the return air fan.
4. Turn on the preheat coil.
The order you put the steps in is the order the controller
actually carries them out in. The time that elapses between
steps, however, is so short you do not notice it; so the actions
appear to be occurring at the same time.
Since the actions occur in such quick succession, order is only
significant where you introduce time delays. You might, for
instance, close the dampers, then wait 15 seconds to be sure
they are completely closed before proceeding to turn on the
fans.
5-4
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Overview of Programming
The controller needs to know:
• Specific actions to take (listed on previous page).
• The Infinity CX 9000 IOUs, SCX 900s, or TCX 850s the
points are on. For the sample program, let’s say that the
points are on the FLOOR1 Infinity CX 9000’s AHU SCX
900.
• The points that go with the damper, fans, and heater the
controller is to act on. They are all output points. The
dampers are DAMPERS, the fans are SUPPLYFAN and
RETURNFAN, and the preheat coil is PREHTVALVE.
You should then choose the controller to store the program
on. Since the outputs are on the SCX 900 called AHU attached
to the Infinity CX 9000 called FLOOR1, you should change
the controller setting to FLOOR1 AHU before you write the
program. You should always connect to the controller the
outputs are on before you write the program that controls
them.
Summary
To plan a program:
• Decide what you want the controller to do.
• Break down the action into single-action steps.
• Find the locations of the equipment it is to act on (see the
map of the network).
• Find the names of the points (see any controller drawings
you may have).
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
5-5
Locate Points on
Controllers
Overview of Programming
Talking to the Controller
Controller Language
The controller knows a limited set of words. They include:
• Words in the Andover Controls Plain English language,
called “keywords.”
• Names you give to items on the controller, such as points,
terminals, printers, and so on. Names are explained in
Chapter 1. Procedures for naming points are in Chapter 4.
• Reserved words the controller knows, such as POINT,
PROGRAM, and NAME. You cannot use these words as
names.
Plain English Keywords
Fundamental Keywords
The Infinity CX 9000 controller knows approximately
40 fundamental Andover Controls Plain English keywords.
With these words you can program the controller to execute
fundamental process/building control.
Some fundamental keywords the controller knows that you
can use to write the sample program are:
TURN
ON
OFF
THE
AND
OR
OPEN
CLOSE
The controller also has approximately 130 additional
advanced keywords. These words are the source of Infinity’s
power. You can exercise Infinty’s full capability by learning
these advanced words.
5-6
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Overview of Programming
Summary
Three Types of Words
You talk to the controller using three types of words:
• Andover Controls Plain English keywords.
• Names of points, terminals, printers, Infinet controllers,
and Infinity CX 9000s.
• Reserved words such as POINT, PROGRAM, and
NAME.
Andover Controls Plain English has approximately 40
fundamental keywords and over 130 advanced keywords.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
5-7
Overview of Programming
Understanding Keyword
Formats
Keyword Formats
Some keywords tell the controller to take action. In Andover
Controls Plain English some of them are:
OPEN
TURN
The sentence (instruction) you create with an action keyword
is called a “statement.” You write, for instance, a “TURN
statement.”
A statement is any complete instruction that tells the program
what to do next or what action to take in the controller.
Each keyword has one or more formats that tell how you use
the keyword in a statement. If you look up TURN in the
Andover Controls Plain English Language Reference, the
format looks like this:
Format 1
TURN ON output_point_list
TURN OFF output_point_list
Format 2
TURN output_point_list ON
TURN output_point_list OFF
All words in CAPITALS in the format must be entered in the
instruction. You must use ON or OFF with TURN.
All words in bold italics must be replaced with a name,
number, or other item. Words in bold italics are required.
You replace output_point_list with a single output point
name or a list of those names. You list the points with commas
5-8
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Overview of Programming
separating one from the next. Any time you see list, you can
also use a single item.
Words in nonbold italics can be replaced with an item but are
not required to complete the statement.
Turning ON and OFF Points
Since all of the points for the sample program are output
points, any of them can be used with TURN. Here are some
sample TURN statements:
TURN OFF THE SupplyFan
TURN THE PrehtValve ON
Setting SUPPLYFAN to ON or OFF makes sense because the
fan has an electrical type of Digital, which you turn ON or
OFF.
But what does a TURN statement do to the PREHTVALVE
when its electrical type is Current and its value can be from
0 to 100% Open?
TURN ON sets the output point to the top of the scale (you
indicated it in the Details window) and TURN OFF sets it to
the bottom of the scale. Top of scale, in this case, is 1 (fully
open) and bottom is 0 (fully closed).
TURN acts on all output points that have a top and bottom of
scale the same way. Two types of output points have this kind
of scale:
• Voltage
• Current
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
5-9
Use TURN with Output
Points
Overview of Programming
Limitations of TURN
You can use TURN on a tristate point, but you cannot use
TURN to set a tristate point to –ON. Think of ON and OFF as
top and bottom of scale for a tristate point and you can see that
TURN acts on all points the same basic way. This is why you
should avoid using TURN with tristate points.
5-10
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Overview of Programming
Summary
Keyword Formats and
Points
• You form a statement with an action keyword.
• A statement is a complete instruction that tells the program
what action to take or what to do next.
• Each keyword has one or more formats.
• All words in CAPITALS in the format must be entered as
shown.
• All words in bold italics in the format must be replaced
with a name, number, or other item.
• All words in nonbold italics in the format can be replaced
with a name, number, or other item, but are not required.
• You must use ON or OFF with TURN.
• You must have at least one output point in a TURN
statement.
• TURN sets an output point with an output type of Voltage
or Current to the top or bottom of its scale.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
5-11
Overview of Programming
Acting on Lists of Points
Use Commas between
Points
With TURN and many other action keywords, you can list
two or more point names with commas between them:
TURN OFF THE SupplyFan, THE ReturnFan
TURN ON THE SupplyFan, ReturnFan, PrehtValve
The AND Keyword
You can use the AND keyword to complete a list:
TURN OFF THE SupplyFan AND THE PrehtValve
TURN ON THE SupplyFan, ReturnFan AND PrehtValve
The THE Keyword
The THE keyword is optional. You can use it to make your
statements read like English.
Sample Lists with CLOSE and OPEN
Notice that one of the formats for CLOSE is almost the same
as for TURN:
Format: CLOSE output_point_list
CLOSE THE DAMPERS, VENTS
CLOSE THE VENTS, DAMPERS, VALVES
5-12
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Overview of Programming
One of the formats for OPEN is also like the format for
TURN:
Format:
OPEN output_point_list
OPEN THE VENTS AND THE DAMPERS
OPEN THE VENTS, DAMPERS AND VALVES
Format for OPEN
Statement
Both OPEN and CLOSE set the values of points that have an
electrical type other than Digital to the top of scale for OPEN
(or ON) and bottom of scale for CLOSE (or OFF).
Summary
• You can use lists of points with the TURN, CLOSE, and
OPEN keywords.
• You can form lists with commas between points.
• You can list two items with AND between them.
• You can end long lists with AND between the last two
items.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
5-13
Overview of Programming
Writing the Program
Plan Steps to Carry Out
Now to write the MORN.WARMUP program, refer to the list
of steps we formed earlier:
1. Close the dampers.
2. Turn on the supply air fan.
3. Turn on the return air fan.
4. Turn on the preheat coil.
You use these keywords: TURN, ON, OFF, CLOSE, OPEN,
and THE.
You also use the output points you have named:
SUPPLYFAN, RETURNFAN, DAMPERS,
PREHTVALVE. (Remember that closing the dampers means
setting them to the bottom of scale, 0% outside air and 100%
return air.)
Form Statements
The steps above can each form a program statement:
CLOSE THE DAMPERS
TURN ON THE SupplyFan
TURN ON THE ReturnFan
OPEN THE PrehtValve
In Andover Controls Plain English, you can say almost
anything you can say in English, as long as the words are
keywords, and the statements are set up following the format.
Notice that each single-action statement takes only one
physical line.
You must now enter these words into the program file. But
before you do, you must create that file.
5-14
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Overview of Programming
Summary
Summary of
Programmer Process
To write the program, you do the following:
• Look at the steps and find the appropriate keywords.
• Find the names of the points on your controller drawings.
• Create the statements using the keywords. Make your
statements like English sentences.
• Make each single-action statement only one line.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
5-15
Overview of Programming
Creating a Program File
Controller Files Are Like
File Folders
A controller file is like a file folder you would put in a filing
cabinet, only it is stored in the controller. You create a
program file to store the statements that tell the controller
what to do.
As shown in Figure 5-1, after you return to the Main menu
bar, you select Edit Files.
Figure 5-1. Selecting Edit Files from the Menu
View
Edit
Connect
Logout
Users
Points
Files
CommPorts
Controller
Infinet Controller
System Date & Time
System Variables
Persons
Areas
Doors
Figure 5-2 shows the Open a File window that appears on
your screen. The cursor is in the Name text box. You press
the NEXT ATTRIBUTE key to move from one text box to the
next. (Press the PREVIOUS ATTRIBUTE key to move
backwards.)
1. To name the file, do the following:
• Type the name of a new file. It may be up to 16
characters long and must start with a letter of the
alphabet. You can include underscores, periods, and
numbers in file names.
OR
5-16
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Overview of Programming
• Press SHOW LIST to bring up a choice list of files.
Figure 5-2. Open a File Window
View
Edit
Connect
Logout
Open a File
Controller
Infinet Ctlr
Name
Use the up and down arrow keys or the PAGE UP and
PAGE DOWN keys to move up and down the list of
points to highlight the one you want.
To select a file from the list, press the EXECUTE key
while the file is highlighted, or press CANCEL
WINDOW to cancel.
2. Press the EXECUTE key to proceed.
Name the sample program MORN.WARMUP.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
5-17
Selecting from Choice
List
Overview of Programming
Setting File Attributes
You Set File Attributes
As shown in Figure 5-3, as soon as you have named your file,
the File window appears.
Figure 5-3. File Window
View
Edit
Connect
Logout
File – Floor1 AHU
Name
MORN.WARMUP
Description Warms up heating
(X) Program
State
( ) Disabled
( ) Function
(X) Enabled
Type
( ) Data
( ) Report
FLOWTYPE
( ) Looping
(X) FallThru
( ) AutoStart
(X) Command Line
SAVE
CANCEL
DELETE
DETAILS
You press the NEXT ATTRIBUTE key to move from text
box to text box. (Press PREVIOUS ATTRIBUTE to move
backwards.)
Each mid-size box is labeled: TYPE, STATE, FLOWTYPE.
The text boxes are labeled NAME and DESCRIPTION. The
check boxes are also labeled, AUTOSTART and
COMMANDLINE.
The labels are called “attributes.” You set file attributes as
follows:
1. Name (NAME)—Change it if you want. It may be up to
16 characters long and must start with a letter of the
alphabet. You can include underscores, periods, and
5-18
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Overview of Programming
numbers in file names. If you change it here, the new name
replaces the old name, not only here, but throughout the
controller system—in every program, function, or other
file.
2. Description (DESCRIPTION)—Type one in the text
box if you want.
3. Type (TYPE)—Arrow to Program and press the space
bar to put the X there. This file is a program file.
Instructions for creating function files are in Chapter 12
and data files are in Chapter 13.
4. State (STATE)—Arrow to Enabled and press the space
bar to allow the controller to run the program. If you set it
to Disabled you must enable it before the controller can
run the program.
5. Flowtype (FLOWTYPE)—Arrow to FallThru and
press the space bar. FallThru means that the program
lines are carried out in the order you list them. For now,
your programs should be FallThru.
Looping means that the program remains on the line it is
on until the program directs it to another line. Looping
programs are explained in Chapter 6.
6. AutoStart (AUTOSTART)—Move to it and press the
space bar to select it if you want the program to start as
soon as you have saved the file. (AUTOSTART also starts
the program immediately after you load it from a tape or
disk. However, once you disable the file, it does not start
again until you give it a command to start. More on this
later.)
7. Command Line (COMMANDLINE)—Move to it and
press the space bar to select it if you want to be able to start
the program from the command line by typing only the
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
5-19
Selecting FLOWTYPE to
Control Looping
Overview of Programming
program name (without RUN) and pressing the
EXECUTE key.
8. Press NEXT ATTRIBUTE repeatedly or arrow over to the
SAVE button; then press the EXECUTE key. The file
Editor window appears.
You can also press the CANCEL button and start over or
press DELETE to remove the file.
At any time while you are inside the File window you can
press the SAVE key. This key saves the information about the
file, no matter where you are in the window, even on a button.
To save from anywhere in the File window except on a
button, press the EXECUTE key.
Returning to the File Window
Returning to the File
Window
Once you have left the File window, you can return to it as
follows:
1. Press the CANCEL WINDOW key to return to the File
menu bar.
2. Press F for File and C for Configuration to open the File
window where the attributes display.
The File window opens.
5-20
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Overview of Programming
Summary
• You set file attributes in the File window.
• You can use several buttons in the File window:
Buttons in the File
Window
• SAVE—Takes you to the previous window or the
Editor window where you can enter your program.
• CANCEL—Cancels the file information and exits to
the Main menu bar.
• DELETE—Removes the file from the controller.
• DETAILS—Opens the Details window.
• You can press the SAVE key at any time while in the File
window to save the information about the file.
• You can return to the File window by pressing CANCEL
WINDOW, and selecting File Configuration.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
5-21
Overview of Programming
Entering a Program
Type Your Program in
the Editor Window
As shown in Figure 5-4, once you have defined your file, the
Editor window appears on the screen.
Figure 5-4. Editor Window
File
Edit
Search
Check
Tools
FLOOR1 AHU MORN.WARMUP
The Editor window is where you type your program.
You see the path to the Infinet controller (FLOOR1 AHU) and
the name of the program (MORN.WARMUP) at the top of the
window.
Notice that the menu bar has changed. This new menu bar is
called the “File menu bar.”
You can press CANCEL WINDOW to go back and forth
between the Editor window and the File menu bar.
5-22
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Overview of Programming
Summary
Press CANCEL WINDOW
to Enter and Leave Editor
• The Editor window is where you type your program.
• The name of the Infinity CX 9000, the Infinet controller,
and the name of the program appear at the top of the
window.
• Once you are inside the Editor window, the menu bar
changes to the File menu bar.
• Press CANCEL WINDOW to go back and forth between
the File menu bar and the Editor window.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
5-23
Overview of Programming
Entering Statements
Before you can type your program, you must know how to
move around inside the editor.
Table 5-2 shows the keys you press to move the cursor.
Compare the customized names to the keystrokes for your terminal’s keyboard in Appendix A.
Special Keys Move
Cursor
Table 5-2. Editor Keys
Key or Keys
Action
Arrow Keys
Move the cursor anywhere on the
screen.
INSERT TEXT
At any position on the screen, inserts
text after you press it.
DELETE TEXT
Erases the single character that is after it. (Erases forward).
BACKSPACE
Erases the single character that appears before it. (Erases backward).
DELETE WORD
Erases one word left to right (Erases
forward).
PREVIOUS WORD
Moves the cursor left (back) one
word.
NEXT WORD
Moves the cursor right (forward) one
word.
INSERT LINE
Inserts a blank line below the one the
cursor is on.
DELETE LINE
Removes the entire line the cursor is
on.
PAGE UP
Moves cursor up to previous screen.
PAGE DOWN
Moves cursor down to next screen.
BEGIN
Takes the cursor to the top of the file
and positions it in the leftmost position in that line.
END
Takes the cursor to the bottom of the
file.
5-24
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Overview of Programming
Table 5-2. Editor Keys (cont)
Special Keys Move
Cursor
Key or Keys
Action
DELETE TO RIGHT
Deletes text to the right of the cursor
through the end of the line.
LEFT SIDE
Moves the cursor to the far left end of
the line it is on.
RIGHT SIDE
Moves the cursor to the far right end
of the line it is on.
TOP SCREEN
Moves the cursor to the top of the visible screen.
BOTTOM SCREEN
Moves the cursor to the bottom of the
visible screen.
MARK BLOCK
Marks the beginning of a block of text
where the cursor is when you press
it. You move the cursor to the end of
the block of text. You can then select
functions from the Edit menu in the
File menu bar to cut, copy, or paste
the block.
QUICK CMD
Allows you to use quick commands.
CANCEL WINDOW
Moves cursor to menu bar if in the
editor, to editor if in menu bar.
RETURN (Same
Key as EXECUTE)
Ends a physical line of text and
brings the cursor to the beginning of
the next line.
Until you become well acquainted with the characters, you
may want to refer to the Infinity CX Keystroke Reference card,
supplied with this manual.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
5-25
Overview of Programming
Using the RETURN Key in Editor
Cannot Erase the
RETURN Keystroke
If you are operating on a VT100 terminal, after you press the
RETURN key at the end of a line in the editor, on some
terminals you cannot use BACKSPACE to erase the text. The
cursor does not back up onto the previous line with
BACKSPACE. You arrow up to the previous line and then
press the BACKSPACE key to delete backward and the
DELETE TEXT key to delete forward.
See Figure 5-5. Try entering the program.
Figure 5-5. MORN.WARMUP Program
File
Edit
Search
Check
Tools
FLOOR1 AHU MORN.WARMUP
CLOSE THE Dampers
TURN ON THE SupplyFan
TURN ON THE ReturnFan
OPEN THE PrehtValve
Moving the Cursor to the End
Try to use the down arrow key to move the cursor below
PREHTVALVE. The cursor moves down and then, no matter
how many times you press the arrow key, moves no further.
The reason you cannot move the cursor further is that you
have typed nothing there. As far as the cursor is concerned
this space does not exist.
Press the RETURN key several times below the last program
line. Now try moving the cursor down. Notice that the cursor
moves to any position on the line, as long as you have typed
at least one space (or one RETURN) on it.
5-26
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Overview of Programming
Saving Typing Time
Later, to save typing time, you may want to experiment with
the quick commands. Quick commands are a series of single
letter keystrokes that bring up entire keywords after you press
the QUICK COMMAND key.
When you are ready to use quick commands, see Appendix C
of the Andover Controls Plain English Language Reference
for a complete list.
Other Features of the Infinity CX Editor
You can enter up to 400 physical lines in any Infinity CX file.
The Infinity CX editor also has several menus. The menu
names are shown along the File menu bar.
You use these menus to carry out various activities from
inside the file.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
5-27
Enter Up to 400 Lines in
Any File
Overview of Programming
Exiting and Saving a Program
Saving Your Program
Once you have typed in the program, do the following:
1. Press CANCEL WINDOW to go to the File menu bar.
2. Select Check from the File menu bar.
When the controller checks a program, it looks at every
word to be sure it understands what you want it to do and
checks the program for errors.
The words No Errors!! should appear at the bottom of the
window in the File status bar.
Figure 5-6 shows where the message appears on the
screen.
Figure 5-6. “No Errors” Message
File
Edit
Search
Check
Tools
FLOOR1 AHU – MORN.WARMUP
CLOSE THE Dampers
TURN ON THE SupplyFan
TURN ON THE ReturnFan
OPEN THE PrehtValve
No Errors!!
The cursor returns to the Editor window.
3. Press CANCEL WINDOW to go to the menu bar again.
4. Select File Save to save the file.
5. Press CANCEL WINDOW to go to the menu bar again.
5-28
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Overview of Programming
6. Select File Quit to leave the file.
The cursor returns to the Command window.
The controller does not save the program unless it is free of
errors. To see how to correct errors, read the next section.
Warning—To Advanced Programmers
If when you try to save a program, you receive a Controller
Not Responding message and the Infinity CX controller
becomes OffLine, the problem may not be a communications
problem at all. To diagnose the problem, wait approximately
10 seconds and see if the controller becomes OnLine again.
If it does, a program is taking longer than 10 seconds to
execute one line and gives the impression it is off-line. The
Infinity CX recovers after approximately 10 seconds and you
can then save the file.
The problem is really in the program—any program that
takes more than 10 seconds to execute a single line is not
following good programming practices. You should
rewrite the program to reduce the number of times it loops
on that line.
Summary
• Select Check from the File menu bar to check for errors.
• Select File Save from the File menu bar to save the
program file.
• Select File Quit from the File menu bar to leave the
program file and return to the Command window.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
5-29
Programs Must Be Free
of Errors
Overview of Programming
Searching for Errors
Finding Errors
While the file is still open, sometimes when you select
Check, you receive a message in the File status bar (bottom
of screen) saying ERROR: Statement or expression is
not correct. This message means the controller has found an
error. This particular message indicates a very basic error.
(If you have no errors, go to the next section.)
The most common error is one that makes the statement
incorrect: incorrectly using the keyword format. The keyword
format is the format explained in the reference manual. For
the message above, you need to look at how you used the
format. More on how to find such errors is included in
Chapter 6. For now, let’s see how to find the location of each
error.
The cursor lands on the physical line that has the error.
You correct that error. Then to search for the next error,
proceed as follows:
1. Press the CANCEL WINDOW key to bring the cursor to
the File menu bar.
2. Select Search Next Error. The cursor automatically
goes to the next physical line with an error.
3. Correct the error.
4. Repeat steps 1 and 2 until you’ve corrected all errors.
You can search for errors starting at the bottom of the
file instead of the top. You would then select Search
Previous Error and the cursor would go back to the last line
with an error on it. The cursor goes to that line even if you
have fixed the error, until you select Check again.
5-30
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Overview of Programming
When you have moved the cursor to every line with an error
on it, you the receive this message: No Errors!!
If the error is a format error such as not enough parentheses or
an IF..THEN structure error, correcting the first error may
correct all the others. If you suspect this, select Check again
and see if the errors are gone.
Summary
Search for Errors with
Search Menu
• You can start to search programs for errors from the
Search menu on the File menu bar.
• If a statement is not correct, it is usually an error in
following the keyword format or a typo.
• You select Search Next Error to find the errors one at a
time from the top of the file down.
• You select Search Previous Error to find the errors one
at a time from the bottom of the file up.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
5-31
Overview of Programming
Starting a Program
from the Command Window
Keywords to Start
Programs
From the Command window, you can start your program.
You can use the following keywords to start one or more
programs:
RUN
OPEN
START
ROTATE
You enter the command line by naming one or more programs
after the keyword. You type:
RUN HEATPROGRAM, FANPROGRAM
OPEN VENTS
ROTATE HEATINGPROG TO STARTUP
To start a program on a Infinet controller from an Infinity CX
9000, you enter the name of that Infinet controller, then the
program name. For example if the HEATINGPROG were on
the AHU SCX 900, you would run it like this:
RUN AHU HEATINGPROG
START AHU HEATINGPROG
Since the MORN.WARMUP program is on a SCX 900, you
type the command line to start the sample program from the
FLOOR1 Infinity CX 9000 like this:
START AHU MORN.WARMUP
Or you could connect to the AHU SCX 900 and type the
command line to start the sample program from its own
controller like this:
START MORN.WARMUP
5-32
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Overview of Programming
Figure 5-7 shows the command line to start the sample
program while on the Infinet controller. The command
appears after the R> prompt.
Figure 5-7. START MORN.WARMUP Command Line
View
Edit
Connect
Logout
Command Window – FLOOR1 AHU
R> START MORN.WARMUP
Summary
• You can start programs from the Command window.
• You can start one or more programs from the same
command line.
• You can use these four keywords to start programs: RUN,
OPEN, START, ROTATE.
• To start a program located on an Infinet controller from the
Infinity CX 9000, after RUN include the name of the
Infinet controller, then the program name.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
5-33
Start Programs from
Command Window
Overview of Programming
Monitoring Point Values
Seeing Point Values
Have Changed
Now you want to see your program do something! So you
return to the Main menu bar and select View Points.
As shown in Figure 5-8, the point values should be set to those
you expect the sample program to set them to.
Notice that the damper is still set to 0% OutsideAir
(equivalent of closed or OFF) and the heat coil is now set to
100% Open (equivalent of open or ON, which is the top of the
scale of the point).
Figure 5-8. Point Summary Window
View
Edit
Connect
Logout
Point Summary – FLOOR1 AHU
Name
Value
SupplyFan
ReturnFan
Dampers
PrehtValve
Units
ON
ON
0% OutsideAir
100%Open
Type
Output 1, 1
Output 1, 2
Output 1, 5
Output 1, 8
State
Enabled
Enabled
Enabled
Enabled
If the value of a point is not set to the one you expect, you
should go back into the program and check each keyword
statement to be sure it is correct.
5-34
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Overview of Programming
Summary
• To see a point value change in response to a program,
select View Points from the menu bar.
• The Point Summary window shows the current value of
each point.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
5-35
Use Point Summary
Window
Overview of Programming
Monitoring Program Action
Seeing Program Action
in File Details Window
Another way to monitor your program is to proceed as
follows:
1. Select Edit File from the Main menu bar.
2. When the Open a File window appears, press the SHOW
LIST key and select the file you want to open.
3. When the Editor window appears, go to the File menu bar
and select File Configuration. The File window
appears.
4. From the File window, press the DETAILS button.
As shown in Figure 5-9, the Details window for that program
appears on the screen.
Figure 5-9. File Details Window
View
Edit
Connect
Logout
Details Floor1 AHU MORN.WARMUP
Default Port
SCREEN1
SAVE
10/5/91 8:03 AM
Last Changed
Current Line
Current Line Start
File Size
CANCEL
1
10/30/91 10:01 AM
100
Program Status Active
5-36
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Overview of Programming
You cannot change any of the information in this window. It
is updated by the controller. The information in each text box
is explained below:
1. Default Port (DEFAULTPORT)—The name of the
terminal screen the program was run from.
2. Last Changed (LASTCHANGE)—The date and time
the program was last altered.
3. Current Line (CURRENTLINE)—The name or number
of the currently active line of the program (more about this
in the next chapter). The current line of MORN.WARMUP
is line 1 because, although no label has been given, the first
line is always line 1.
4. Current Line Start (LINESTARTTIME)—The date and
time the current line began executing.
5. File Size (FILESIZE)—The number of characters (bytes)
in the file. 1024 bytes is 1KB. If you have used a
substantial amount of memory, you may want to start
monitoring how much is left using the FREEMEM
keyword, described in Chapter 11.
You use this information to determine how much memory
is taken and how much is still available.
6. Program Status (STATUS)—Active or Inactive.
Summary
• Open the File window and press DETAILS to see what a
program is doing.
• The Details window of a file tells which line is currently
running.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
5-37
Find When Program
Started Current Line
Overview of Programming
Stopping a Program
Keywords to Stop
Programs
The following keywords stop one or more programs:
STOP
CLOSE
To enter the command line type:
STOP HEATUP, FANS
CLOSE VENTS
STOP HEATING
Figure 5-10 shows some STOP command lines in the
Command window.
Figure 5-10. STOP and CLOSE Command Lines
View
Edit
Connect
Logout
Command Window – FLOOR1 AHU
R> STOP MORN.WARMUP, HEATUP
R> CLOSE VENTS
R> STOP FANS
5-38
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Overview of Programming
Summary
• You can stop a program from the Command window.
• Type STOP or CLOSE and the name of the program or
programs you want to stop.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
5-39
Stop Programs from
Command Window
Overview of Programming
5-40
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Chapter 6
Writing
Fundamental
Programs
We recommend you read Chapter 4 and Chapter 5 before you
read this chapter, and then proceed sequentially in this one.
This chapter includes brief sample programs and presents
these programming concepts:
• Planning the Instructions
• Limiting When Action Is Taken
• Continuously Testing the Limitation
• Setting Up Comparisons with IS
• Taking Action at a Certain Time
• Taking Multiple Actions at a Certain Time
• Forming Line Labels
• Using Line Labels to Control Program Flow
• Applying Elapsed Time
• Monitoring the Line a Program Is On
• Taking Action on Certain Days
• Finding Format Errors
www.PDF-Zoo.com
Fundamental Programs
6-2
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Fundamental Programs
Table 6-1 shows the input and output points used in this chapter.
Table 6-1. Input and Output Points
Point
Controller
Model
SupplyFanST
BLDG1 FLOOR1
SCX 900
Digital Input
PrehtValve
BLDG1 FLOOR1
SCX 900
Current Output
ReturnFan
BLDG1 FLOOR1
SCX 900
Form C Output
Dampers
BLDG1 FLOOR1
SCX 900
Current Output
BurnerST
CENTRALPLANT
CX 9000 IOU
Digital Input
OutsideAir
CENTRALPLANT
CX 9000 IOU
Thermistor Input
HWPump1ST
CENTRALPLANT
CX 9000 IOU
Digital Input
Burner
CENTRALPLANT
CX 9000 IOU
Form C Output
HWPump1
CENTRALPLANT
CX 9000 IOU
Digital Output
HWP1ISOValve
CENTRALPLANT
CX 9000 IOU
Digital Output
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
Point Type
6-3
Fundamental Programs
Planning the Instructions
Steps to Planning
Generally, the steps you must take to plan and write a program
are:
1. Decide what you want the controller to do.
2. Break down the action into single-action steps.
3. Find the locations of the equipment it is to act on, on the
map of the network.
4. Find the names of the points on the controllers or
controller drawings.
5. Find the keywords you need.
Keywords are presented as required in this manual and all
are covered in detail in Andover Controls Plain English
Language Reference.
6. Write the program.
How to write programs is outlined in Chapter 5, this
chapter, and subsequent chapters in this manual.
7. Check the program for errors.
See Appendix B for how to respond to the various error
messages that may occur.
8. Save the program.
How to save a file is explained in this chapter. How to save
it to magnetic media is covered in detail under the SAVE
command in the Andover Controls Plain English
Language Reference.
Figure 6-1 shows a diagram of the planning process.
6-4
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Fundamental Programs
Figure 6-1. Diagram of the Planning Process
Read the
blocks
from top
to bottom
Diagram of Planning
Process
Decide What
to Have the
Controller Do
Make Action
into Single
Steps
Find the
Controller the
Points Are On
Find the
Names of the
Points Needed
Find the
Keywords
Needed
Write the
Program
Check the
Program
Save the
Program
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
6-5
Fundamental Programs
Limiting When Action Is
Taken
GOAL: When the supply fan is on, turn on the preheat valve
for the warmup.
How do you tell the controller to turn the preheat valve on
only when the supply fan is on?
First, let’s break down the actions to take. The single-action
steps to turn the valve on if the fan is on are as follows:
1. Check to see if the supply fan status is on.
2. If the fan is on, turn on the preheat valve.
Flowchart Shows
Program Flow
Figure 6-2 shows a diagram of the program flow. This
diagram is called a “flowchart” because it charts the flow of
the program.
Figure 6-2. Flowchart of WARMUPl
Start
Is
the supply fan
ON?
Read
from
Top to
Bottom
YES
Turn On the
Preheat valve
End
6-6
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Fundamental Programs
The two points you need to write the program are an input
point called SUPPLYFANST (which gives the supply fan
status) and an output point called PREHTVALVE.
To check the status of the fan, you would use the keywords IF
and THEN as follows:
IF THE SupplyFanST IS ON THEN...
The next step is to turn the heat on. You can use the keyword
OPEN to form the statement:
...OPEN THE PrehtValve
As shown in Figure 6-3, in the completed program, the two
steps must be combined in one line:
Figure 6-3. WARMUP Program
File
Edit
Search
Check
Tools
FLOOR1 AHU WARMUP
IF THE SupplyFanST IS ON THEN OPEN THE PrehtValve
The TRUE-FALSE
Comparison
A Statement That
Could Stand On
Its Own
This complete statement is called an IF..THEN statement.
The IF half of the statement is a TRUE-FALSE comparison.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
6-7
Decide Points Required
for Program
Fundamental Programs
Figure 6-4 repeats the WARMUP program so you can view it
while you read the explanation that follows.
Figure 6-4. WARMUP Program
File
Edit
Search
Check
Tools
FLOOR1 AHU WARMUP
IF THE SupplyFanST IS ON THEN OPEN THE PrehtValve
The TRUE-FALSE
Comparison
A Statement That
Could Stand On
Its Own
The controller checks the point called SUPPLYFANST. If it
is ON, the statement is TRUE. If it is OFF, the statement is
FALSE.
The comparison must be TRUE for the controller to carry out
the action after THEN.
THEN Part Contains
Standard Statement
Notice that the THEN half of the statement contains a
statement that could stand on its own. You can put any action
statement after THEN.
If the comparison is FALSE, and the program is set to
FallThru in the File window, the controller skips the THEN
statement and goes on to the next action in the program. In this
case, there is no next action, so the program ends.
6-8
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Fundamental Programs
Summary
• You can draw a diagram of the flow of program action
called a “flowchart.”
IF and THEN Limit When
Action Occurs
• You can limit when action occurs using IF..THEN.
• The IF half of the IF..THEN statement is a TRUE-FALSE
comparison.
• The THEN half of the IF..THEN statement contains a
statement that could stand on its own.
• When the TRUE-FALSE comparison is TRUE, the
controller carries out the THEN statements.
• When the TRUE-FALSE comparison is FALSE, the
controller skips the THEN statements and goes to the next
statement or, if there is no next statement, ends the
program.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
6-9
Fundamental Programs
Continuously Testing the
Limitation
Let’s take another look at the WARMUP program. The controller checks to see if the supply fan is on. If the fan is not on, the
controller skips the action after THEN and ends the program.
How do you get the controller to check again to see if the supply fan is on? You could run it repeatedly using RUN on the
command line, but that would quickly become impractical.
Controller Scans All
Statements
When the controller processes each program statement, it
“scans” all statements in order. The scan “flows” from
statement to statement. (Chapter 9 gives more details on
scanning.) It scans a statement or group of statements more
than once if you change the program FLOWTYPE.
Changing the Flow of the Scan
To change the program flow so it automatically keeps
checking the status of the supply fan, you do the following:
1. Go the Main menu bar and select Edit File.
2. Once the Editor window opens, to see the file attributes,
select File Configuration from the File menu bar.
3. When the File window appears, move to the FLOWTYPE
attribute (using the NEXT ATTRIBUTE key) and select
Looping.
Figure 6-5 shows the FLOWTYPE attribute reset to
Looping.
Figure 6-5. FLOWTYPE File Attribute Set to Looping
FLOWTYPE
(X) Looping
( ) FallThru
6-10
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Fundamental Programs
Each FLOWTYPE makes the program work differently:
• If WARMUP is FallThru, the controller starts at the
beginning and carries out each statement until the end. The
flow of the program action “falls thru” the statements until
the end.
• If WARMUP is Looping, the controller repeats the
current action until instructed to do otherwise. Once you
start a looping program, it runs continuously until you
disable or stop it.
You saw the flowchart of WARMUP as a FallThru program
in the previous section. It started at the beginning and stopped
at the end.
Figure 6-6 shows the program flow if WARMUP is a
Looping, rather than FallThru, program.
Figure 6-6. Looping Flowchart of WARMUP
Is
supply fan
ON?
NO
Keep
Checking
YES
Open the
Preheat Valve
Notice that the flowchart does not have ovals that say “start”
and “end.”
The reason is that it does not really start in one place and it
never ends. Instead it runs continuously, testing to see if the
supply fan is on and opening the preheat valve when it is.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
6-11
FLOWTYPEs Are
Looping and FallThru
Fundamental Programs
Starting FallThru Programs
Set a Trigger for
FallThru Programs
If the program is FallThru, you do not have to start it by
entering RUN on the command line (or from another
program). You can, instead, start it by setting a “trigger.” A
trigger is a point that starts a program. When the trigger point
value changes, it “triggers” (starts) the program.
In the sample given here, the SUPPLYFANST could be a
trigger to start the WARMUP program.
If SUPPLYFANST were a trigger, when the SUPPLYFANST
changed from OFF to ON or ON to OFF, the program would
then start, test the status, and take the appropriate action. After
completing the action, the program would stop and wait to be
triggered again.
Starting Looping Programs
In contrast, if the program is looping, you start it by either
entering a RUN command on the command line or setting it
to AUTOSTART in the File window. Once the looping
program starts, it does not stop unless you disable it or enter a
STOP command on the command line.
Both Opening and Closing Equipment
Notice that WARMUP opens the preheat valve, but when
does it close it?
The program is not complete until it tells the controller both
when to open and when to close the valve. You should always
handle opening and closing a particular piece of equipment
(or turning it on and off) in the same program. Otherwise,
because the controller scans programs in the order they appear
on the firing order list, and the entire scan of all programs
occurs in a fraction of a second, you could run into a conflict
between one program’s instructions and another’s.
6-12
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Fundamental Programs
For example, if WARMUP opens the preheat valve and, later
in the scan, STOPVALVE closes it, the preheat valve never
actually opens. Problems arise when a program in between
WARMUP and STOPVALVE thinks the preheat valve is
open and proceeds to run other equipment that should not be
run when the valve is closed.
So, let’s alter the sample program to control both opening and
closing the valve.
NEW GOAL: When the supply fan is on, open the preheat
valve. When the fan is off, close the valve.
The single-action steps are:
1. Check to see if the supply fan is on or off.
2. If the fan is on, open the preheat coil valve.
3. If the fan is off, close the preheat coil valve.
Figure 6-7 shows the expanded flowchart for the program.
Figure 6-7. Expanded Flowchart of WARMUP
Is the
Fan ON or
OFF?
Keep
Checking
OFF
ON
Open the
Preheat Valve
Close the
Preheat Valve
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
6-13
Same Program Both
Opens and Closes Valve
Fundamental Programs
Figure 6-8 shows the looping version of the WARMUP
program, made up of two IF..THEN statements.
Figure 6-8. Expanded Looping WARMUP Program
File
Edit
Search
Check
Tools
FLOOR1 AHU WARMUP
IF THE SupplyFanST IS ON THEN OPEN THE PrehtValve
IF THE SupplyFanST IS OFF THEN CLOSE THE PrehtValve
In this looping program, the controller constantly executes the
statements. The controller may also repeat a group of
statements defined as a line under a label. (More about line
labels is included later in this chapter.)
Selecting Looping or FallThru
FallThru Programs Are
More Efficient
The same program can be FallThru. The FallThru
FLOWTYPE saves controller time by running the program
only when necessary. The controller runs more efficiently
with FallThru programs, but you may find instances when
Looping programs are useful.
6-14
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Fundamental Programs
Summary
• A FallThru program carries out each statement in order.
• A Looping program repeats the current action until it is
told to do something else.
• To set program flow, you set the FLOWTYPE attribute in
the File window to Looping or FallThru.
Scanning Is Processing
Statements
• Each time the controller processes statements in all
programs, that action is called “scanning.”
• The controller scans all programs in the order you list them
in the “firing order list.”
• FallThru programs use the controller more efficiently that
Looping programs.
• Turning ON and OFF the same piece of equipment in one
program is the safest way to avoid conflicts related to the
firing order list.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
6-15
Fundamental Programs
Setting Up Comparisons with
IS
GOAL: To turn on the return air fan when the supply air fan
is on.
You can form many different types of TRUE-FALSE
comparisons with one word—IS.
IS Statements Can Be in
Different Forms
You have seen IS used in an IF..THEN statement. You can
use IS to form comparisons that check to see if two items are
equal as follows:
IF THE SupplyFanST IS ON THEN...
IF THE SupplyFanST IS EQUAL TO ON THEN...
IF THE SupplyFanST EQUALS ON THEN...
IF THE SupplyFanST = ON THEN...
All of these comparisons state the same idea. You can see how
flexible the Andover Controls Plain English language is.
The single-action steps to turn on the return air fan when the
supply air fan is on are as follows:
1. Check to see if the supply air fan is on.
2. If the supply fan is on, turn on the return fan.
3. If the supply fan is off, turn off the return fan.
Figure 6-9 shows the flowchart of the program.
You need two points to write the program, SUPPLYFANST
(status input) and RETURNFAN.
The keywords you need to write the program are IF, THEN,
IS (or EQUALS, = , IS EQUAL TO), ON, OFF, TURN, and
THE.
6-16
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Fundamental Programs
Figure 6-9. Flowchart of ACTIVATE.FAN
Keep
Checking
Is
Supply Fan
ON?
YES
NO
Turn Off the
Return Fan
Turn On the
Return Fan
Figure 6-10 shows the program.
Figure 6-10. ACTIVATE.FAN Program—Looping
File
Edit
Search
Check
Tools
FLOOR1 AHU ACTIVATE.FAN
IF THE SupplyFanST IS ON THEN TURN ON THE ReturnFan
IF THE SupplyFanST IS OFF THEN TURN OFF THE ReturnFan
Summary
• You use the IS keyword to form comparisons.
• IS, IS EQUAL TO, EQUALS, and = all have the same
meaning.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
6-17
IS Has Many Aliases
Fundamental Programs
Taking Action at a Certain
Time
GOAL: To start the MORN.WARMUP at 8:30 a.m. and stop
it after 9:00 a.m.
Test the Time of Day,
Stored as TOD
How do you tell the controller when to act? You have it check
the Time of Day, stored in the controller as TOD.
When you print it, TOD always gives the time on the 12-hour
clock, so 6:00 in the evening is 6:00 pm and 6:00 in the
morning is 6:00 am.
You can compare TOD to the time with a colon or without,
but if you use the colon you must give either “am” or “pm”
(with no periods). Without the colon, you must give the 24hour time. So, 9:00 in the morning is either 9:00 am or 900
and 6:00 in the evening is either 6:00 pm or 18:00 or 1800.
If you do not give “am” or “pm”, the controller assumes you
mean a.m.
Usually time is not tested for an exact moment, because exact
moments do not last longer than a minute. It is a good practice
to use IS GREATER THAN or IS LESS THAN when testing
the time.
IF TOD IS GREATER THAN 8:30 am THEN...
IF TOD > 8:30 am THEN...
All the above TRUE-FALSE statements test to see if the time
of day (TOD) is greater than 8:30 in the morning.
You can also see if the time is greater than or equal to a
certain time of day (TOD):
IF TOD IS GREATER THAN OR EQUAL TO 8:30 am THEN...
IF TOD >= 8:30 am THEN...
6-18
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Fundamental Programs
IS LESS THAN is particularly useful in setting one boundary
for a range of time while IS GREATER THAN sets the other:
IF TOD > 8:30 am AND TOD < 9:00 am THEN...
The above statement illustrates one common way to use TOD.
(Methods employing IS BETWEEN are covered in Chapter 7.)
Another common use of TOD involves both GREATER
THAN OR EQUAL TO and LESS THAN OR EQUAL TO:
GREATER THAN and
LESS THAN with TOD
IF TOD IS >= 8:30 am AND TOD <= 9:00 am THEN...
The single-action steps to start and stop the warmup are:
1. Check the time of day.
2. If the time of day is greater than or equal to 8:30 a.m. but
less than or equal to 9:00 a.m., start the warmup.
3. If the time of day is less than or equal to 8:30 a.m. but
greater than or equal to 9:00 a.m., stop the warmup.
To start the warmup, you tell the controller to start the
program you wrote in the previous chapter. You can use the
STOP and START keywords to run and stop the morning
warmup from inside another program.
Figure 6-11 shows that program.
Figure 6-11. STRT.WARMUP Program—Looping
File
Edit
Search
Check
Tools
FLOOR1 AHU STRT.WARMUP
IF THE TOD >= 8:30 am AND TOD <= 9:00 am THEN START MORN.WARMUP
IF THE TOD <= 8:30 am AND TOD >= 9:00 am THEN STOP MORN.WARMUP
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
6-19
Fundamental Programs
To form the same program with less words, you can use the
ELSE keyword.
Figure 6-12 shows how ELSE saves words.
Figure 6-12. Modified STRT.WARMUP Program
File
Edit
Search
Check
Tools
FLOOR1 AHU STRT.WARMUP
IF THE TOD >= 8:30 am AND TOD <= 9:00 am THEN START MORN.WARMUP
ELSE STOP MORN.WARMUP
If you want, you can also put ELSE on the same physical line.
Figure 6-13 shows another program that puts IF, THEN, and
ELSE all on one physical line.
Notice that in OCCUPY.WARM, the IF part of the
IF..THEN..ELSE statement does not contain a comparison
formed with IS. For an ON or OFF point, ON is the same as
TRUE and OFF is the same as FALSE. So when IF looks at
OCCUPIED and sees ON, the “comparison” is TRUE.
Figure 6-13. OCCUPY.WARM Program
File
Edit
Search
Check
Tools
FLOOR1 AHU OCCUPY.WARM
’Triggered by OCCUPIED
IF OCCUPIED THEN START WARMUP ELSE STOP WARMUP
6-20
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Fundamental Programs
The following are equal comparisons when the OCCUPIED
point is a numeric point you can set to ON or OFF:
IF OCCUPIED THEN...
is the same as
IF OCCUPIED IS ON THEN...
Also, the following are equal comparisons testing for OFF:
IF NOT OCCUPIED THEN...
is the same as
IF OCCUPIED IS OFF THEN...
Summary
• TOD (Time of Day) always gives the time in 12-hour time.
• You can compare TOD to 8:00 (automatically becomes
a.m.), 8:00 am, 800, 8:00 pm, or 2000. Whenever you use
the colon, the 12-hour time is required and if you do not
use the “am” or “pm,” a.m. is assumed. Whenever you use
the 24-hour time, you cannot use the colon.
• Usually you use IS GREATER THAN or IS LESS THAN
when comparing the time.
• You use the ELSE keyword to tell the controller what to
do if the TRUE-FALSE comparison is FALSE.
• In an IF..THEN comparison, when you test a numeric
point, ON is the same as TRUE and OFF is the same as
FALSE.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
6-21
ON Is the Same as TRUE,
OFF as FALSE
Fundamental Programs
Taking Multiple Actions at a
Certain Time
GOAL: After 8:00 a.m. and before 9:00 a.m. run the morning
warmup.
Can Have More Than One
Action After THEN
The following TRUE-FALSE comparison checks to see if the
time is after 8:00 a.m.
IF THE TOD > 8:00 am THEN...
This TRUE-FALSE comparison checks to see if the time is
before 9:00 a.m.:
IF THE TOD < 9:00 am THEN...
The two statements can be combined as follows:
IF THE TOD > 8:00 am AND TOD < 9:00 am THEN...
Since there is more than one action after THEN, they can each
be put on a separate physical line below the IF..THEN
comparison.
Figure 6-14 shows the resulting program.
Figure 6-14. WARMUP Program—Looping
File
Edit
Search
Check
Tools
FLOOR1 AHU WARMUP
IF THE TOD > 8:00 am AND THE TOD < 9:00 am THEN
CLOSE THE Dampers
TURN ON THE SupplyFan
TURN ON THE ReturnFan
OPEN THE PrehtValve
ENDIF
6-22
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Fundamental Programs
When you use more than one statement after THEN, you must
do each of these:
• Put them on separate physical lines below THEN.
• Close the IF..THEN statement with ENDIF.
Summary
• You can take action at a certain time by forming a TRUEFALSE comparison with TOD.
• When two or more actions occur after THEN, they can
each be on separate physical lines below IF..THEN and the
statement must be closed with ENDIF.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
6-23
Put Two or More
Statements Below THEN
Fundamental Programs
Forming Line Labels
You Put Several
Statements in a Line
You can use “line labels” to put several statements into one
“line.” A line is a statement or series of statements that all
belong together under one line label. If the line has multiple
statements, they are all executed at the same time.
You label a line using the LINE keyword as follows:
LINE TESTING.TEMP
The word LINE warns you that what follows is a line label.
TESTING.TEMP is the line label. You form the line label to:
• Tell the line’s purpose.
• Define the line as a unit.
The label tells that what follows is one line, even if it is
several statements.
The line label, like any other name, can be up to 16 characters,
including underscores, periods, and numbers, but must start
with a letter.
An example of a line follows:
LINE HEATING
TURN ON THE Burner
OPEN HWP1ISOValve
START THE HWPUMP1
START CONVRTR.PRGM
You may notice that this line is similar to the program from
Chapter 5. Here, however, all the statements from one
program are placed in one line.
Why would you want to make them all one line?
6-24
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Fundamental Programs
Because all of those actions are for one goal: to activate the
heat.
You don’t want this line to run all the time—only when the
outside air temperature drops. So you use the word GOTO to
go to the next line when it is appropriate.
The GOTO Keyword
You need to send the program to the line when the
temperature is less than 50. You do this with a keyword called
GOTO.
GOTO tells the program the line to run. It uses the line label
to identify the line. A GOTO statement looks like this:
GOTO HEATING
You can use it after THEN. A TRUE-FALSE comparison
determines if the temperature is less than 50 degrees:
IF THE TEMP < 50 THEN GOTO HEATING
Next, we write a real program with two lines.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
6-25
Combine Related
Actions in One Line
Fundamental Programs
Using Line Labels to Control
Program Flow
GOAL: To activate the heat when the outside air temperature
is below 50 degrees and deactivate it when the temperature is
above 50 degrees.
Use GOTO to Switch
Lines
To go from activating the heat to deactivating it, you use the
GOTO keyword.
GOTO tells the program which line to run. It uses the line
label to identify the line. A GOTO statement looks like this:
GOTO HEATING
The single-action steps you would use to activate the heat and
then deactivate it when the temperature changes are:
1. Check the temperature.
2. If the temperature is below 50 degrees:
• Turn on the burner.
• Open the hot water pump isolation valve.
• Start the hot water pump.
• Start the converter control program.
3. If the temperature is above 50 degrees:
• Turn off the burner.
• Turn off the hot water pump.
• Close the hot water pump isolation valve.
• Stop the converter.
Figure 6-15 shows a flowchart of the program.
6-26
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Fundamental Programs
Just as in the last looping program, the program stays on the
same line until it is told to go to the other line.
Figure 6-15. Flowchart of HEAT.NOHEAT
Is
the Temp <
50?
NO
YES
Is
the Temp >
50?
Turn on the
Burner
NO
YES
Open the HW
Pump Valve
Turn off the
Burner
Start the HW
Pump
Stop the HW
Pump
Start
Converter
Close the HW
Pump Valve
Stop the
Converter
If the TRUE-FALSE comparison is FALSE, the program
skips the THEN and carries out the statements after ELSE.
Figure 6-16 shows the looping program. Before HEATING
starts heating, it checks the temperature.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
6-27
Looping on a Line of
Statements
Fundamental Programs
Figure 6-16. Looping HEAT.NOHEAT Program
File
Edit
Search
Check
Tools
CENTRALPLANT HEAT.NOHEAT
LINE HEATING
IF THE OutsideAir > 50 THEN GOTO NOTHEATING
ELSE
TURN ON THE Burner
OPEN HWP1ISOValve
TURN ON THE HWPump1
START CONVRTR.PRGM
ENDIF
LINE NOTHEATING
IF THE OutsideAir < 50 THEN GOTO HEATING
ELSE
TURN OFF THE Burner
TURN OFF THE HWPump1
CLOSE HWP1ISOValve
STOP CONVRTR.PRGM
ENDIF
ELSE, like THEN, may have multiple statements following it,
each on a separate physical line.
Many Statements After
ELSE Require ENDIF
If there are multiple statements after ELSE, the entire
IF..THEN..ELSE statement must end with ENDIF.
Because all actions in the same line occur at the same time,
this program is not ideal. Some time should elapse between
starting the burner and activating the converter control
program.
The next program shows how to use elapsed time.
6-28
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Fundamental Programs
Summary
• To go from one line to another, you use GOTO, followed
by a line label.
• You form line labels with the LINE keyword.
• A line label should tell the purpose of the line.
• If the TRUE-FALSE comparison is FALSE, the controller
skips the THEN statements and carries out the ELSE
statements.
• You can have multiple statements after ELSE, but the
ELSE group must end with ENDIF on its own physical
line.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
6-29
Use GOTO Folllowed by
a Line Label
Fundamental Programs
Applying Elapsed Time
GOAL: When the outside air temperature is less than 50, turn
on the burner; wait 3 minutes before setting it to high, then
start the converter control program. Turn off the burner when
the temperature is above 50 degrees.
Elapsed Time in Days,
Hours, Minutes, Seconds
You can use the amount of time that has elapsed since the
program has been on the current (active) line to keep the
controller on that line. You use:
TD (Time in Days)
TH (Time in Hours)
TM (Time in Minutes)
TS (Time in Seconds)
You form TRUE-FALSE comparisons as follows:
IF TM > 15 THEN...
IF TH > 1 THEN...
IF TD > 2 THEN...
IF TS > 25 THEN...
You can add a line to the HEAT.NOHEAT program you
wrote earlier to determine when the burner has been on for 3
minutes before proceeding:
IF TM > 3 GOTO ADJUSTING
Remember that the controller continues to run the same line
until GOTO directs it to another line.
6-30
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Fundamental Programs
So to turn the burner on without doing anything else, you put
that action on a separate line:
Put Action on Separate
Line to Isolate
LINE START.BURNER
TURN ON THE Burner
IF TM > 3 THEN GOTO ADJUSTING
Figure 6-17 shows how the order of lines and statements
influences the action of the program. Here HEAT.NOHEAT
starts the CONVRTR.PRGM before going to the adjusting
phase.
Figure 6-17. Timed HEAT.NOHEAT Program
File
Edit
Search
Check
CENTRALPLANT HEAT.NOHEAT
LINE NOTHEATING
IF THE OutsideAir < 50 THEN GOTO START.BURNER
ELSE
TURN OFF THE Burner
STOP THE HWPUMP1
CLOSE THE HWP1ISOValve
STOP THE CONVRTR.PRGM
ENDIF
LINE START.BURNER
TURN ON THE Burner
IF TM > 3 THEN
START THE CONVRTR.PRGM
GOTO ADJUSTING
ENDIF
LINE ADJUSTING
TURN THE BurnerHiFire ON
OPEN THE HWP1ISOValve
TURN ON THE HWPump1
IF THE OutsideAir > 50 THEN GOTO NOTHEATING
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
6-31
Tools
Fundamental Programs
Monitoring the Line a Program
Is On
Let’s try running the HEAT.NOHEAT program on the last
page.
Details on how to exit and save a program file are in
Chapter 5 if you need a memory jogger.
1. Press the CANCEL WINDOW key to enter the
Command window and type:
RUN HEAT.NOHEAT
2. Press the EXECUTE key.
3. To check the line the program is on, first return to the Main
menu bar. Then select View Programs.
View Program Summary
from Main Menu Bar
As shown in Figure 6-18, the Program Summary window
displays this information:
• File name.
• Name of the line the file is currently running.
• The amount of time that has elapsed since the program
has been on the current line, displayed as TD, TH, TM,
and TS.
• State of the file—E for enabled, D for disabled.
• Status of the file—A for active, I for inactive.
6-32
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Fundamental Programs
Figure 6-18. Program Summary Window
Logon
Edit
View
Connect
Program Summary – FLOOR1 AHU
Name
HEAT.NOHEAT
Current Line
START.BURNER
TD TH TM TS
0
0
1
75
State
E/A
You can display this window and see the whole minutes and
whole seconds that have elapsed (here, 1 minute and 15
seconds shows as 1 whole minute under TM and 75 seconds
under TS). You can see that the current line, because it is
appropriately named, actually tells you what action is taking
place—starting the burner.
To see this same screen from inside a program, you select
Tools View Program Summary from the File menu bar.
Summary
• You run a program in the Command window by entering
RUN and the program name.
• Select View Programs to see information about
programs in the controller.
• The Program Summary window shows each program,
the line it is currently running, how long it has been on that
line, the STATE (enabled or disabled) of the program, and
the STATUS of the program (active or inactive).
• To see the program summary from inside a program, select
Tools View Program Summary.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
6-33
RUN and Program Name
in Command Window
Fundamental Programs
Taking Action on Certain Days
GOAL: To lower the hot water setpoint on Sundays and raise
it to the usual level on other days of the week.
WEEKDAY Is Equal to
Current Day of Week
How do you tell the controller to lower the setpoint on a
particular day? You have it check the day of the week, stored
in WEEKDAY in the controller. The WEEKDAY is one of
the following:
SUNDAY
MONDAY
TUESDAY
WEDNESDAY
THURSDAY
FRIDAY
SATURDAY
SUN
MON
TUE
WED
THU
FRI
SAT
1
2
3
4
5
6
7
You can compare WEEKDAY to the fully spelled-out day of
the week, the abbreviated day, or the number of the day.
So all these TRUE-FALSE comparisons are valid:
IF WEEKDAY IS SUNDAY THEN...
IF WEEKDAY IS SUN THEN...
IF WEEKDAY IS 1 THEN...
The single-action steps to turn down the heat on Sundays are:
1. Check the day.
2. If the day is Sunday and the burner is ON, lower the hot
water setpoint.
3. If the day is not Sunday, run the HEAT.NOHEAT
program.
Figure 6-19 shows the flowchart of the program.
6-34
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Fundamental Programs
Figure 6-19. Flowchart of SUNDAY.HEAT
Is
the day Sun
?
YES
Is
NO
the Burner
ON?
Keep
Checking
NO
Run
HEAT.NOHEAT
YES
Lower the
Setpoint
The points you need are as follows:
• BURNERST—An input point to find the status of the
burner, ON or OFF.
• HWSETPT—A numeric point set to 130 for normal or 100
for Sundays.
Forming a Numeric Point
Since it is neither input nor output, but holds a number, you
must define HWSETPT as a numeric point, as follows:
1. Select Numeric for TYPE in the Point window.
2. Put an X next to Setpoint in the Details window by
pressing the space bar when the cursor is in the
parentheses. Once the point is a setpoint, the controller
remembers the point value along with the name whenever
you save the controller information with the SAVE
command.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
6-35
Numeric Point Holds a
Number
Fundamental Programs
Joining Two TRUE-FALSE Comparisons
Use AND to Join TRUEFALSE Comparisons
You can join the two or more TRUE-FALSE comparisons in
one statement using AND as follows:
IF WEEKDAY IS SUN AND THE BurnerST IS ON
THEN...
Remember, the burner is on only if the temperature outside is
less than 50 degrees. So if the burner is off, you do not need
to adjust the setpoint.
Figure 6-20 shows the resulting program.
Figure 6-20. SUNDAY.HEAT Program—Looping
File
Edit
Search
Check
Tools
FLOOR1 AHU SUNDAY.HEAT
IF WEEKDAY IS SUN AND THE BurnerST = ON THEN~
SET THE HWsetpt TO 100
ELSE RUN HEAT.NOHEAT
Notice the squiggly character (~) at the end of the first
physical line in the above program. This character, called a
tilde, continues the statement on the next physical line.
To continue any statement on the next physical line, insert a
tilde (~), press the EXECUTE key, and keep typing.
6-36
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Fundamental Programs
An Alternative Approach
You can also integrate the SUNDAY.HEAT and
HEAT.NOHEAT programs, so that HEAT.NOHEAT
includes the question of what day it is.
It is easiest to insert the weekday check under ADJUSTING,
since the burner should still be on when the temperature
drops, but not on high.
It is also good to test for NOT SUNDAY, since that means the
day can be any other weekday. The NOT keyword comes in
handy in this situation.
Three minutes should go by before the controller turns off the
burner after adjusting it. So, a TRUE-FALSE comparison can
check the elapsed time at the end of the ADJUSTING line.
Figure 6-21 shows the looping HEAT.NOHEAT program
with both statements altered under ADJUSTING.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
6-37
Add a Test for the Day of
Week
Fundamental Programs
Figure 6-21. Modified HEAT.NOHEAT Program
File
Edit
Search
Check
Tools
CENTRALPLANT HEAT.NOHEAT
LINE NOTHEATING
IF THE OutsideAir < 50 THEN GOTO START.BURNER
ELSE
TURN OFF THE Burner AND THE HWPump1
CLOSE THE HWP1ISOValve AND THE CONVRTR.PRGM
ENDIF
LINE START.BURNER
TURN ON THE Burner
IF TM > 3 THEN
START THE CONVRTR.PRGM
GOTO ADJUSTING
ENDIF
LINE ADJUSTING
TURN THE BurnerHiFire ON ’Sets Burner to High
OPEN THE HWP1ISOValve
TURN ON THE HWPump1
IF THE WEEKDAY IS NOT SUNDAY THEN
SET THE HWsetpt TO 130
ELSE
SET THE HWsetpt TO 100
ENDIF
IF THE OutsideAir > 50 AND TM > 3 THEN GOTO NOTHEATING
6-38
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Fundamental Programs
Adding Comments
Also, to make a program more readable, you can include a
“comment” on the same physical line or on a separate one.
The controller ignores comments.
To add a comment, type a single quotation mark and type the
text after it. Do not exceed the length of the physical line. The
following is an example of a comment:
’This is a comment. Program ends here.
(See also the comment in the HEAT.NOHEAT ADJUSTING
line.)
Summary
• You can take action on certain days of the week by
forming a TRUE-FALSE comparison with WEEKDAY.
• WEEKDAY contains one of the days of the week. It can
be a number, fully spelled-out name, or three-letter
abbreviation.
• You can use two TRUE-FALSE comparisons in one
statement by joining them with AND.
• You can create a numeric point by setting the TYPE to
Numeric in the Point window.
• You can make any point a setpoint by putting an X next to
Setpoint in the point’s Details window.
• You can continue a long statement on the next physical
line by putting a tilde (~) at the end of the first physical
line.
• You add a comment to a program by typing a single
quotation mark before it.
• A comment cannot be longer than a physical line.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
6-39
Controller Ignores
Comments
Fundamental Programs
Finding Format Errors
Check Selection Finds
Format Errors
After you select Check from the File menu bar, you see the
words you’ve feared in the message bar at the bottom of the
Editor window: Statement or expression is not
correct.
Look for the cursor. The cursor is on the first statement
containing an error.
Here are some basic problems you can look for in that
statement:
1. Be sure you have used the keyword with correct
accompanying words.
For example, with TURN, be sure you used ON or OFF.
You cannot say TURN VALVE1 TO 70. You can use
MOVE, SET, ADJUST, or CHANGE to set VALVE1 to a
particular setting rather than simply ON or OFF.
2. Be sure you have spelled the point names correctly. If not,
you may receive a message that says No item with that
name exists.
The controller may know a point called SupplyFan, but
not one called SuplyFan. If you do not spell the name
correctly, the controller does not know which point you
mean and considers that an error.
(If you included a symbol that does not belong in the name,
you receive a message saying Symbol(s) are not from
the correct set.)
3. Be sure you have spelled all keywords or their aliases
correctly.
If you typed RUM instead of RUN, the controller cannot
guess the correct word.
6-40
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Fundamental Programs
4. If you put a list of points or programs in a statement, be
sure you didn’t leave out a comma or put in an extra one.
STOP HEATER, FAN COIL, VALVE needs another
comma between FAN and COIL.
STOP, HEATER, FAN, COIL, VALVE should not have a
comma after STOP.
5. If you put a list of points or programs in a statement, be
sure you use AND or OR only once.
STOP HEATER OR FAN OR COIL OR VALVE is not
correct. STOP HEATER AND FAN AND COIL AND
VALVE is not correct.
Be Sure Statements Are
Complete
6. Be sure you have all the required information in the
statement.
If all you said was MODULATE VALVE and did not say
to what setting or what percentage of scale, the statement
would not be complete.
7. Be sure you put IF and THEN on the same physical line.
You cannot break an IF..THEN statement between IF and
THEN, only after THEN. If you do break an IF..THEN
statement after THEN, check to be sure you used ENDIF
or ELSE as required.
8. With IS, check to be sure you used the correct words for an
operator.
Do no use IS and > together. The symbols do not require
IS; they are alternatives to IS GREATER THAN, IS LESS
THAN, and similar wordings.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
6-41
Fundamental Programs
9. Be sure comments start with a single quotation mark.
If you leave the quotation mark out, the controller thinks
the comment is a programming statement using incorrect
words.
(If the comment does have the quotation mark, but exceeds
the 132 character limit, you receive a message that says
Comment has more than 132 characters.)
Refer to the Andover Controls Plain English Language
Reference for more on formats.
Appendix Has Complete
List of Messages
Also, refer to the appendix for a list of messages that can
occur and how to correct the related errors.
6-42
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Chapter 7
More
Fundamental
Keywords
This chapter includes brief sample programs strictly for the
purpose of illustrating some fundamental keywords and
programming concepts. The chapter presents these
programming concepts:
• Comparisons with IS NOT
• Comparisons with IS and OR
• Comparisons with IS NOT and OR
• Comparisons with Ranges
• Changing Point Values
• Setting Tristate and Other Pulsing Outputs
• Setting Values with Expressions
• Forming Expressions with TIMES and DIVIDED BY
• Forming Complex Expressions
• Changing the Controller Hour
• Setting the Hour
• Acting on a Change in the Hour of the Day
• Finding More Errors
• Finding Runtime Errors
• Helpful Hints
www.PDF-Zoo.com
More Fundamental Keywords
7-2
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
More Fundamental Keywords
Table 7-1 shows the input and output points used in this chapter.
Table 7-1. Input and Output Points
Point
Controller
Model
Point Type
Humidifier
FLOOR1 AHU
SCX 900
Current Output
SupplyFan
FLOOR1 AHU
SCX 900
Digital Output
ReturnFan
FLOOR1 AHU
SCX 900
Digital Output
Damper
FLOOR1 ROOM101
TCX 850
Current Output
HWConvValve
CENTRALPLANT
CX 9000 IOU
Current Output
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
7-3
More Fundamental Keywords
Comparisons with IS NOT
GOAL: To turn off the humidifier when it is not a weekday,
otherwise allow it to operate.
Comparisons with IS
NOT vs. IS
Just as you can form TRUE-FALSE comparisons with IS, you
can form them with IS NOT.
IS NOT forms comparisons that check to see if two items are
not equal as follows:
IF THE WEEKDAY IS NOT TUESDAY THEN...
IF THE WEEKDAY IS NOT EQUAL TO TUE THEN...
IF THE WEEKDAY DOES NOT EQUAL TUE THEN...
IF THE WEEKDAY <>TUE THEN...
All of the above statements make exactly the same
comparison even though they are each worded slightly
differently.
The single-action steps to turn the humidifier off when it is
not a weekday are:
1. Check to see what day it is.
2. If the day is not a weekday, turn off the humidifier.
3. Otherwise turn on the humidifier.
Figure 7-1 shows the flowchart of the program.
The point you need to write the program is HUMIDIFIER.
You also need to check the WEEKDAY.
7-4
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
More Fundamental Keywords
Figure 7-1. Flowchart of HUMID.CTRL
Is it
not Mon thru
Fri?
NO
Start the
Humid.Prgm
Keep
Checking
YES
Turn Off the
Humidifier
You can check to see if the WEEKDAY is in a range of
weekdays using THRU like this:
IF THE WEEKDAY IS NOT MON THRU FRI THEN...
THRU is always inclusive, so MON THRU FRI includes both
Monday and Friday. The statement can also be phrased like
this:
IF WEEKDAY IS NOT EQUAL TO TUE THRU FRI THEN...
Or the statement can be phrased like this:
IF THE WEEKDAY IS NOT TUE THRU FRI THEN...
Since the week starts with Sunday and ends with Saturday,
you cannot have a range of FRIDAY THRU MONDAY,
because Friday and Saturday are in one week and Sunday and
Monday are in the next week.
The range must contain days all in the same week. It may not
run from Saturday of one week to Sunday of the next.
Figure 7-2 shows the program.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
7-5
Must Have Range within
One Week
More Fundamental Keywords
Figure 7-2. HUMID.CTRL Program—Looping
File
Edit
Search
Check
Tools
FLOOR1 AHU HUMID.CTRL
IF THE WEEKDAY IS NOT Mon THRU Fri THEN TURN OFF the Humidifier
ELSE START HUMID.PRGM
7-6
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
More Fundamental Keywords
Summary
• You can form TRUE-FALSE statements with IS NOT.
• You can set up a range with THRU, such as MONDAY
THRU FRIDAY.
Range with THRU is
Always Inclusive
• The THRU range is always inclusive.
• A range of weekdays must always include days in the same
week, starting with Sunday and ending with Saturday.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
7-7
More Fundamental Keywords
Comparisons with IS and OR
GOAL: To modulate the humidifier if the day of the week is
Monday, Wednesday, or Friday and to turn off the humidifier
if the day is Sunday, Tuesday, Thursday, or Saturday.
You can see if a name or number is in a list by forming
another type of TRUE-FALSE statement:
IF WEEKDAY IS IN MON, WED OR FRI THEN...
IF WEEKDAY IS IN MON, WED, FRI THEN...
If one of the days is the weekday, the statement is TRUE.
Even if you leave out the OR, with IS the word OR is always
understood.
EITHER Goes with OR
You can also put the word EITHER in the statement:
IF WEEKDAY IS EITHER MON, WED, FRI THEN...
You must precede a list with IN or EITHER.
The single-action steps to see if the weekday is Monday,
Wednesday, or Friday are:
1. Check the day of the week.
2. If day of the week is Monday, Wednesday, or Friday, then
modulate the humidifier.
3. Otherwise turn off the humidifier.
Figure 7-3 shows the flowchart of the program.
7-8
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
More Fundamental Keywords
Figure 7-3. Flowchart of HUMID.CTRL
Is the
Day Mon, Wed
or Fri?
NO
Turn off the
Humidifier
Diagram of Planning
Process
Keep
Checking
YES
Modulate the
Humidifier
The only point you need is HUMIDIFIER.
You run the HUMID.PRGM to modulate the humidifier.
Figure 7-4 shows the program.
Figure 7-4. HUMID.CTRL Program with List
File
Edit
Search
Check
Tools
FLOOR1 AHU HUMID.CTRL
IF THE WEEKDAY IS EITHER MON, WED OR FRI THEN START HUMID.PRGM
ELSE TURN OFF THE HUMIDIFIER
Summary
• In TRUE-FALSE comparisons with IS the word OR is
understood in a list.
• You must use the word EITHER or IN before a list.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
7-9
More Fundamental Keywords
Comparisons with IS NOT and
OR
GOAL: To turn off the humidifier if the day of the week is
not Monday, Thursday, or Saturday and modulate the
humidifier otherwise.
Test to See if Name Is
Not in List
A TRUE-FALSE statement can test to see if a name or
number is not in a list:
IF WEEKDAY IS NOT IN MON, THU, SAT THEN...
You can also use the word NEITHER:
IF WEEKDAY IS NEITHER MON, THU, OR SAT THEN...
If the weekday is not any of them, the statement is TRUE.
The single-action steps to turn off the humidifier if the
weekday is not Monday, Thursday, or Saturday are:
1. Check the day of the week.
2. If the day of the week is not Monday, Thursday, or
Saturday, turn off the humidifier.
3. Otherwise run the humidity control program.
Figure 7-5 shows the flowchart of the program.
7-10
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
More Fundamental Keywords
Figure 7-5. Flowchart of HUMID.CTRL2
Is the
day not Mon, Thu
or Sat?
NO
Modulate
the
Humidifier
Keep
Checking
YES
Turn off the
Humidifier
The only point you need is HUMIDIFIER.
The HUMID.PRGM program modulates the humidifier.
Figure 7-6 shows the program.
Figure 7-6. HUMID.CTRL2 Program—Looping
File
Edit
Search
Check
Tools
FLOOR1 AHU HUMID.CTRL2
IF WEEKDAY IS NOT MON, THU OR SAT THEN TURN OFF THE HUMIDIFIER
ELSE START THE HUMID.PRGM
Summary
• You can use NOT or NEITHER to see if a name or number
is not in a list.
• You must use IN or NEITHER before the list.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
7-11
More Fundamental Keywords
Comparisons with Ranges
GOAL: To modulate the humidifier if the weekday is
Monday, Tuesday, Wednesday, or Thursday and turn the
humidifier off otherwise.
Whether you plan to see if a value is in a list or not in a list,
you can use a range of values like this:
IF ZONE1TEMP IS 60 THRU 62 THEN...
IF ZONE1 IS NOT 70 THRU 72 THEN...
Notice that you do not include IN in either of these
statements.
Give Lower Number in
Range First
Be sure to give the number at the bottom of the range first.
Since temperatures and other point values are rarely exactly
equal to a whole value, ranges are useful.
Another way to phrase a range is as follows:
IF WEEKDAY IS BETWEEN MON AND THU THEN...
IF WEEKDAY IS NOT BETWEEN THU AND SAT THEN...
Both THRU and BETWEEN are always inclusive. You
cannot use the symbols <> with THRU or BETWEEN.
As discussed earlier, a range must be within the same week.
Remember, the week starts with Sunday.
The single-action steps to reach the goal are:
1. Check the day of the week.
2. If the weekday is between Monday and Thursday, then run
the humidity control program.
3. Otherwise turn off the humidifier.
Figure 7-7 shows the flowchart of the program.
7-12
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
More Fundamental Keywords
Figure 7-7. Flowchart of RANGEPROG
Is the
Day Mon thru
Thurs?
NO
Turn Off
the Humidifier
Keep
Checking
YES
Start the
Humid.Program
The only point you need is HUMIDIFIER.
The HUMID. PRGM program modulates the humidifier.
Figure 7-8 shows the program.
Figure 7-8. RANGEPROG Program—Looping
File
Edit
Search
Check
Tools
FLOOR1 AHU RANGEPROG
IF WEEKDAY IS BETWEEN MON AND THU THEN START HUMID.PRGM
ELSE TURN OFF THE HUMIDIFIER
Summary
• You can set up a range in a TRUE-FALSE statement with
THRU or BETWEEN.
• Both THRU and BETWEEN are always inclusive.
• You cannot use <> with THRU or BETWEEN.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
7-13
More Fundamental Keywords
Changing Point Values
Use Keywords to
Change Point Values
You can change the value of a point from within your
program or from the command using one of these three
keywords:
TURN (ON or OFF)
SET
MOVE
The TURN Keyword
You can use TURN as described in Chapter 5 to turn a point
or points ON or OFF.
The SET Keyword
The SET keyword sets the value of any type of point to any
appropriate value, as follows:
SET THE ROOM101 SpaceSP TO 72
SET THE ROOM101 SpaceSP = 72
The SET keyword itself is optional and understood with the
equal sign:
ROOM101 SpaceSP = 72
The MOVE Keyword
Remember that each analog output point has a top of scale and
bottom of scale. You can use MOVE to convert engineering
units to electrical units to control an output point, using the
top and bottom of scale for that point.
If a valve has engineering units of 0 to 360 degrees, and the
corresponding electrical units are 0 to 20 mA, when you move
the setting to 180 degrees, it sets to 10 mA.
7-14
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
More Fundamental Keywords
To give engineering units in a statement and have them
automatically convert to electrical units, you use MOVE (or
MODULATE) as follows:
MOVE THE HWConvValve TO .8
You can also MOVE a valve to a percentage of a scale from 0
to 1 engineering units. To do this you would set up an autoconversion in the Details window so that the engineering
units are, for example, % Open, and the bottom of scale is 0,
the top of scale 1.
See Figure 7-9. Notice that the corresponding number of
milliamps is from 0 to 20. One hundred percent open (1.0)
corresponds to 20 mA. Fifty percent open (.5) corresponds to
10 mA, halfway between 0 and 20 mA.
Figure 7-9. Auto-Conversion of Units
View
Edit
Connect
Logout
Details – CENTRALPLANT HWConvValve
Description
HWConvValve
Display Format
EXIT
%###
Exported X
CANCEL
Conversion
LOGS
Auto-Conversion
Open
mA
Top
1
20
Bottom
0
0
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
TRIGGERS
DELETE
7-15
MOVE Automatically
Converts Units
More Fundamental Keywords
Set Valve Using a
Percentage of Scale
The following statement sets the valve to the amount in
electrical units (milliamps) that corresponds to .8 engineering
units (% Open):
MOVE THE HWConvValve TO 80%
The corresponding value in electrical units on a scale of 0 to
20 mA becomes 16 mA. So the above statements sets the
valve to 16 mA.
Note
To use the percentage to set a valve, the scale in engineering
units must be from 0 to 1. Otherwise, the percentage does not
give an accurate setting.
You can also move the position of a valve to ON (top of scale)
or OFF (bottom of scale):
MOVE THE HW.VALVE TO OFF
You can move a valve to a certain value to, for instance, set a
temperature setpoint:
MOVE THE SpaceSP TO 72
Remember, MODULATE is the same as MOVE, so you can
use it in appropriate statements:
MODULATE THE HWConvValve TO 50%
7-16
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
More Fundamental Keywords
The ADJUST and CHANGE Keywords
Other alternatives to SET are ADJUST and CHANGE. Each
requires that you use TO in the statement and never use the
equals sign:
ADJUST THE HW.VALVE TO OFF
CHANGE THE SpaceSP TO 72
LET is another substitute for SET, but requires that you use
the equal sign and never use TO:
LET SpaceSP = 68
Summary
You can set a value with the following keywords:
• TURN—ON or OFF.
• SET—With the equal sign (=) or TO.
• SET is optional, so you can set a point as follows:
TEMP = 72
• MOVE or MODULATE—Can move to a setting in
engineering units that the controller converts to electrical
units, or can move to ON, OFF, or a number.
• MOVE or MODULATE to a percentage of scale—You
can move a valve or similar modulating point to a
percentage of a scale if and only if you set the scale in
engineering units to from 0 (bottom) to 1 (top).
• ADJUST—With TO only, not the equals sign.
• CHANGE—With TO only, not the equals sign.
• LET—With the equals sign only, not with TO.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
7-17
Aliases of SET Are LET,
ADJUST, CHANGE
More Fundamental Keywords
Setting Tristate and Other
Pulsing Outputs
Set Tristate and Digital
Points to Pulsed Values
Tristate output points and digital outputs are controlled by
pulsing. Although you can set a tristate point to ON, –ON, or
OFF and you can set a digital point to ON or OFF, you can
also set each to pulse.
To set a pulsing point to ON, OFF, or –ON for a specific
number of seconds, you can set the point to a number.
You may, for example, set a vent that is controlled by pulsing
(rather than current) to a value of 90 using either SET or
MOVE (or MODULATE), and the point stays set to ON for
90 seconds:
MODULATE THE VENT TO 90
The point pulses for that number of seconds.
You can set a tristate point the same way, or set a tristate point
to a negative number and it remains set to –ON for that
number of seconds:
MODULATE THE ROOM101 Damper TO –60
A tristate point also pulses when given a numeric setting
rather than one of the three standard settings.
7-18
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
More Fundamental Keywords
Summary
You can set a pulsing point value as follows:
• Digital outputs to ON or OFF.
• Tristate outputs to ON, –ON, or OFF.
• Digital or tristate outputs to a positive number to set them
to ON for that number of seconds.
• Tristate outputs to a negative number to set them to –ON
for that number of seconds.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
7-19
Set Tristate Outputs to
–ON with Negative Value
More Fundamental Keywords
Setting Values with
Expressions
GOAL: To set the hot water temperature setpoint based on
the lowest space temperature. The range for the setpoint is
100 to 180 degrees Fahrenheit.
Set a Numeric Point to
An Expression
You can set a value of an output point (or numeric point) to
any number or any expression that gives a number.
For instance, instead of setting the setpoint to a specific
number of degrees, you can set it to a formula that gives a
number, such as:
CHW.SETPT PLUS .25
or
CHW.SETPT + .25
180 MINUS LOWSPACEFCTR
or
180 – LOWSPACEFCTR
You then set a value as follows:
SET HWTEMP.SETPT TO 180 – LowSpaceFctr
Or you can update a setting by adding to its current value:
SET CHWTEMP.STPT = CHWTEMP.STPT + .25
This statement sets the new chilled water temperature setpoint
to the current chilled water temperature setpoint plus .25.
The single-action steps to set the hot water temperature are:
1. Check the lowest space temperature to determine the
lowest space temperature adjustment factor
(LOWSPACEFCTR).
2. Set the hot water temperature setpoint based on the
LOWSPACEFCTR.
7-20
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
More Fundamental Keywords
3. Be sure hot water is between 100 and 180 degrees.
Keep Value within a
Range
Figure 7-10 shows the flowchart of the program.
You need two numeric points, called HWTEMP.SETPT and
LOWSPACEFCTR.
Figure 7-10. Flowchart of WATERTEMP
Keep
Checking
Check the LowSpace Factor
Is
180 – LowSpaceFctr
< 100?
YES
Set the Hot
Water Temp
to 100 degrees
NO
Set the
Is
NO Hot Water
180 – LowSpaceFctr
Temp
>180 ?
based on
LowSpaceYES
Fctr
Set the Hot
Water Temp
to 180 degrees
Figure 7-11 shows the program that combines the two steps in
one statement. The controller automatically checks the lowest
space temperature to update the LOWSPACEFCTR point
value.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
7-21
More Fundamental Keywords
Figure 7-11. WATERTEMP Program—Looping
File
Edit
Search
Check
Tools
FLOOR1 AHU WATERTEMP
IF 180 MINUS LowSpaceFctr IS 100 THRU 180 THEN
SET HWTEMP.SETPT TO 180 MINUS LowSpaceFctr
ELSE
IF 180 MINUS LowSpaceFctr < 100 THEN HWTEMP.SETPT = 100
IF 180 MINUS LowSpaceFctr > 180 THEN HWTEMP.SETPT = 180
ENDIF
You can also substitute the following for the comparisons in
the program:
IF 180 MINUS LowSpaceFctr IS BELOW 100 THEN...
IF 180 MINUS LowSpaceFctr IS ABOVE 180 THEN...
IS BELOW Means IS
LESS THAN
You can use IS BELOW for IS LESS THAN and IS ABOVE
for IS GREATER THAN.
An alternative way to write this program is shown in
Chapter 8 under the MINIMUM and MAXIMUM keywords.
7-22
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
More Fundamental Keywords
Summary
Use PLUS and MINUS to
Form Expressions
• You can use the keywords PLUS and MINUS to form
expressions.
• You can substitute the symbols + and – for the keywords.
• You can use an expression anywhere you would use a
number.
• You can set a point value to an expression.
• You can use IS BELOW for IS LESS THAN.
• You can use IS ABOVE for IS GREATER THAN.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
7-23
More Fundamental Keywords
Forming Expressions with
TIMES and DIVIDED BY
As you saw in the last two pages, forming expressions in
Andover Controls Plain English is really straightforward.
Use TIMES and DIVIDED
BY to Form Expressions
Expressions that require multiplication and division are
formed with the TIMES and DIVIDED BY keywords.
Suppose that, for instance, you want to perform calculations
on the outside air temperature before you use it.
To set up a calculation with multiplication in it, you use
TIMES or the asterisk (*):
OutsideAir TIMES RATEOFRISE
OutsideAir * RATEOFRISE
Suppose, also, that you want to calculate the average kwh
usage. To set up a calculation with division in it, you use
DIVIDED BY or the slash (/):
SET KWH = KWMeter DIVIDED BY SCAN + KWH
SET KWH = KWMeter / SCAN + KWH
SCAN is a system variable (a keyword that Infinity assigns a
value) that measures the length of the controller scan of all
programs. You learn more about SCAN later in this manual.
You can also combine multiplication and division in one
expression.
7-24
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
More Fundamental Keywords
Summary
• You can use the keywords TIMES and DIVIDED BY to
form expressions.
• You can substitute the asterisk (*) for TIMES and the slash
(/) for DIVIDED BY in expressions.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
7-25
Use Asterisk and Slash
Symbols
More Fundamental Keywords
Forming Complex
Expressions
You can combine addition, subtraction, multiplication, and
division in one expression as follows:
STARTHR = 6.0 + (70 – OutsideAir) * OATCHANGE/TIME
Use Parentheses in
Complex Expressions
If the parentheses were not in the above statement, the
OUTSIDEAIR would be multiplied by the OATCHANGE
before subtracting OUTSIDEAIR from 70. The result would
not be useful.
The “Order of Calculation” is important, because without the
parentheses, the controller would give a different result.
The controller always carries out the operation in parentheses
first.
All multiplication and division are carried out from left to
right, and are always carried out before addition and
subtraction.
Addition and subtraction are also carried out from left to right.
So, the controller carries out the calculation above in the
following order:
1. Subtracts OUTSIDEAIR from 70 (the first parentheses).
2. Multiplies the result of step 1 by OATCHANGE.
3. Divides the result of step 2 by TIME to set the rate of rise.
4. Adds the result of step 3 to 6.0.
7-26
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
More Fundamental Keywords
Summary
• You can form one complex expression using multiple
operations.
• The controller carries out operations in parentheses first.
• Multiplication and division are carried out before addition
and subtraction; all four of these operations are carried out
from left to right.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
7-27
Processes Occur in a
Specific Order
More Fundamental Keywords
Changing the Controller Hour
You can use SET to set a system variable called HOUR. The
HOUR is automatically updated by the controller, but you can
change the setting for daylight savings time or a time zone
change. (Daylight savings time is the only reason to reset
HOUR once Infinity is functioning.)
Must Have Administrate
Access to Set HOUR
You must be at Administrate security level to change the
HOUR.
You set the hour like this:
SET HOUR TO 6
Or you can set the hour in any one of the following ways:
SET HOUR = 5 + 1
HOUR = HOUR – 1
SET HOUR TO HOUR + 1
You cannot set any date or time system variable except
HOUR and DATE. All of the others are set and updated by the
controller. Here is a list of the others:
WEEKDAY
DAYOFYEAR
MONTH
DAYOFMONTH
YEAR
HOUR
MINUTE
SECOND
HOD (Hour of Day)
TOD (Time of Day)
WEEKDAY and TOD were introduced earlier. The others are
covered in the Andover Controls Plain English Language
Reference.
7-28
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
More Fundamental Keywords
You also cannot delete any system variable, since each is a
permanent part of Infinity.
Summary
• HOUR and DATE are the only system variables you can
set.
• You must be at Administrate security level to set
HOUR.
• You can set HOUR equal to an expression that contains
HOUR. (HOUR = HOUR MINUS 1). The hour to the right
is the old value of HOUR.
• You cannot delete any system variable.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
7-29
You Can Set HOUR and
DATE
More Fundamental Keywords
Setting the Hour
GOAL: To set HOUR when daylight savings time begins.
To set the HOUR when daylight savings time begins, you
need to check for the correct day every time the
DAYOFYEAR changes.
DAYOFYEAR Is Number
from 1 to 365
DAYOFYEAR is the number from 1 to 365 that stands for a
particular day of the year. January 1 is 1, January 2 is 2, and,
finally, December 31 as 365.
The single-action steps are:
1. Check the month to see if it is April.
2. Check the day of the month to see if it is the first week
(between 1 and 7).
3. Check the day of the week to see if it is Sunday.
4. If it is the day daylight savings time starts, at 2:00 a.m. set
the HOUR to one hour later than the current hour.
5. If it is the day daylight savings time starts, but it is not yet
2:00 a.m., wait until 2:00 a.m., then set the HOUR.
Figure 7-12 shows the flowchart of the program.
First you set up the TRUE-FALSE comparisons:
IF MONTH IS NOT APRIL THEN STOP DAYLIGHT
IF DAYOFMONTH IS BETWEEN 1 AND 7 THEN...
IF WEEKDAY IS SUNDAY THEN...
IF HOUR = 2 THEN...
Then you form the statement to set the HOUR:
SET HOUR TO HOUR + 1
7-30
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
More Fundamental Keywords
Figure 7-12. Flowchart of DAYLIGHT
Flowchart of Daylight
Program
Start
Is
the month
April?
NO
YES
Is
day of month
1-7?
YES
Is
weekday
Sun?
NO
NO
YES
NO
Is
the Hour
2?
YES
Set the Hour to
DST
End
Figure 7-13 shows the program that results when you
combine the steps.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
7-31
More Fundamental Keywords
Figure 7-13. DAYLIGHT Program—FallThru
File
Edit
Search
Check
Tools
FLOOR1 AHU DAYLIGHT
’Triggered by DAYOFYEAR
LINE ADJUSTHOUR
IF THE MONTH IS APRIL AND DAYOFMONTH IS BETWEEN 1 AND 7~
THEN
IF THE WEEKDAY IS SUNDAY THEN GOTO SETHOUR
ELSE STOP DAYLIGHT
ENDIF
LINE SETHOUR
IF THE HOUR = 2 THEN
SET THE HOUR TO HOUR + 1
STOP DAYLIGHT
ELSE GOTO ADJUSTHOUR
Notice that tilde (~) continues the IF..THEN statement as if it
were on the same physical line. ELSE with only one statement
after it fills in for ENDIF.
You definitely don’t want the DAYLIGHT program to be
looping. It would continue to check the month, day of month,
and day of week over and over during the same day. What you
really want it to do is check only when the DAYOFYEAR
changes.
Set it to FallThru in the File window so that after it runs, it
ends.
Set a Trigger to Start
Program
Then, so that it starts only when the DAYOFYEAR changes,
you set a trigger (see the next chapter).
7-32
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
More Fundamental Keywords
Summary
• The system administrator is the only user who can set the
HOUR.
• DAYOFYEAR is the number of the day of the year, from
1 to 365.
You Can Put One IF..
THEN Inside Another
• You can place an IF..THEN statement inside another
IF..THEN statement (after THEN).
• To make a program run once, then stop, you set it to
FallThru in the File window.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
7-33
More Fundamental Keywords
Acting on a Change in the
Hour of the Day
GOAL: To leave the supply and return fans on for 1/2 hour
after the building is no longer occupied.
Steps to Planning
To take action at a specific hour of the day (HOD), the
controller has the HOD system variable.
The HOD Keyword
The HOD, unlike the HOUR, cannot be changed. It gives the
hour of the day in decimal form. If it is 2:30, the HOD is 2.5.
If it is 3:30, the HOD is 3.5.
You can use HOD like this:
IF THE HOD > 6.5 THEN TURN OFF THE LIGHTS
But HOD is most useful in calculations. Since it is not
possible to add 3:30 + 1 to get 4:30, how do you add an hour
to the time?
Adding to the Hour
You add an HOD of 3.50 + 1 to get 4.50 and the controller
automatically understands that an HOD of 4.5 is 4:30.
Similarly, you add .5 to the HOD to add 1/2 hour, making 3.25
into 3.75, or 3:45.
The single-action steps are:
1. Check to see if the building is still occupied.
2. If it is occupied, continue checking.
3. If the area is not occupied, proceed.
4. Check the current HOD to see if 1/2 hour has gone by.
5. If 1/2 hour has not gone by, keep checking.
7-34
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
More Fundamental Keywords
6. If 1/2 hour has gone by, turn off the supply fan and return
fan.
Figure 7-14 shows the flowchart of the program.
Figure 7-14. Flowchart of TIMEOUT.FAN
Is
Occupied On
?
NO
Keep
Checking
NO
Keep
Checking
YES
Has
1/2 Hour Gone
By?
YES
Turn off the Fans
Points Required
You need the SUPPLYFAN and RETURNFAN points. You
also need a customized keyword called OCCUPANCY,
which checks for occupancy and sets it to ON or OFF.
You can make a note of the current hour by putting it in
LASTHOUR using a SET statement, as follows:
SET LASTHOUR = HOD
The trouble with this is that LASTHOUR doesn’t mean
anything to the controller. You must define it as a point.
Since it is neither input nor output, but holds a number, you
must define it as a numeric point in the Point window, by
selecting Numeric for TYPE.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
7-35
Diagram of Planning
Process
More Fundamental Keywords
So, in addition to the other points, you need the LASTHOUR
point.
Completing the Program
Calculate Hour Using
HOD
You would construct the calculation to see if 1/2 hour has
gone by like this:
IF THE HOD = THE LASTHOUR + .5 THEN...
Remember that if you use two or more statements after
THEN, you must end the block with ENDIF.
Remember, also, that you can label a line with either the
keyword LINE or the name of the line followed by a colon.
The colon is used in the example here.
Figure 7-15 shows the complete program.
Figure 7-15. TIMEOUT.FAN Program—Looping
File
Edit
Search
Check
Tools
FLOOR1 AHU TIMEOUT.FAN
OCCUPIED:
SET LASTHOUR = HOD
IF OCCUPANCY() = OFF THEN GOTO TIMING
TIMING:
IF THE HOD = THE LASTHOUR + .5 THEN
TURN OFF THE SupplyFan
IF and
ENDIF
Pair
TURN OFF THE ReturnFan
ENDIF
IF OCCUPANCY() = ON THEN GOTO OCCUPIED
If the building is occupied, then the LASTHOUR is set over
and over until OCCUPANCY is OFF. When OCCUPANCY
7-36
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
More Fundamental Keywords
is OFF, the controller goes to TIMING and uses the last value
of LASTHOUR in TRUE-FALSE comparison with HOD.
Summary
HOD Is a Decimal Form
of HOUR
• HOD is the decimal form of the hour of the day.
• HOD is most useful in calculations, where you add hours
to the current hour.
• You can create a numeric point using the NUMERIC
keyword at the top of your program.
• You can use a numeric point in any program on the
controller.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
7-37
More Fundamental Keywords
Finding More Errors
After you select Check from the File menu bar, you see these
words at the bottom of the Editor window: ERROR:
Statement or expression is not correct or similar
words indicating an error.
Remember, the cursor is on the first statement containing an
error.
Errors Include Missing
Parenthesis
Check first to see if any of the errors described at the end of
Chapter 6 have occurred. If you still cannot find the error,
check the following:
1. Be sure that for every opening parenthesis you have a
closing one.
Check all equations twice for this easy-to-miss error.
2. Be sure you have not tried to set a system variable other
than HOUR or DATE unless you have the Admin security
level. The error for such a statement would say something
like You cannot change value of system variable.
3. Be sure all ranges start with the lowest number and end
with the highest. (Remember also that a range of weekdays
must include only days within the same week.)
4. Check to be sure every IF has a THEN. In everyday
English you can say IF THE TEMP < 50 TURN ON THE
HEAT, but in Andover Controls Plain English, the THEN
is required:
IF THE TEMP < 50 THEN TURN ON THE HEAT
5. Check to be sure every IF..THEN comparison is complete;
for example, the following is incorrect:
IF WEEKDAY IS SUN OR MON THEN...
7-38
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
More Fundamental Keywords
The OR keyword must go between two complete
comparisons, as follows:
IF WEEKDAY IS SUN OR WEEKDAY IS MON THEN...
Other correct ways to phrase the comparison are as
follows:
IF WKD IS BETWEEN SUNDAY AND MONDAY THEN...
IF WEEKDAY IS SUNDAY THRU MONDAY THEN....
You can look up any messages that occur in Appendix B,
where we explain what you can do to resolve each message.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
7-39
Messages Help You
Resolve Issues
More Fundamental Keywords
Finding Runtime Errors
Eliminate All Format
Errors with Check
Suppose you have eliminated all format errors or other errors
Check found. Later, you run the program and discover a new
kind of error—the runtime error. Two types of runtime errors
can occur:
• Errors that the controller identifies
The controller finds a problem and disables the program
because you tried to use a keyword or point in a way that
does not work. The controller gives you a message that
points to the problem.
• Logical errors (you must identify)
The program does not do what you want it to, or does it at
the wrong time, temperature, or the like. The controller
does not know anything is wrong—you must recognize the
problem.
7-40
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
More Fundamental Keywords
Errors the Controller Identifies
Suppose the fan is not being turned on when it should be. How
do you know which program has failed to operate the fan?
Sometimes the controller can tell you. When the controller
finds a problem in a program, it disables the file.
You look at the Disabled Program Summary window
and find a program that has been disabled.
You can then open the File Configuration window and the
error appears in the lower left corner of the window. An error
message that appears once the program is running is called a
“runtime error message.”
The controller gives a variety of runtime error messages. We
present the messages and explanations for them in Appendix
B. Each explanation gives steps you can take to resolve the
error.
Examples
One error that produces a runtime error message is attempting
to set a tristate point with TURN or any point to a value that
is not correct for it.
For example, if you set a digital point to –ON, that would be
an error. The error would say something like Set a point or
var to value of wrong type.
Another error that produces a runtime error message is naming the wrong path for the point. The error would say Path
name is not an actual path.
For instance, the path to the fan might be CENTRALPLANT
TOWER FAN and you might have named only TOWER FAN
in the program.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
7-41
Analyze Error Messages
More Fundamental Keywords
Sometimes you calculate the value you want to set the HOUR
to. If the controller calculates 26, when the program tries to
set HOUR to 26, the runtime error message says Must set
HOUR to value from 0 to 23.
The tricky part of finding the error is determining which line
the error is on in the program. Unlike format error messages,
runtime error messages do not indicate which line the error is
on. You have to investigate—open the program and look for
a situation that might produce that particular error.
To learn some techniques that help pinpoint the source of the
error, refer to Chapter 14.
Errors You Identify (Logical Errors)
Statements Must
Contain Correct Logic
Let’s look at an example of a logical runtime error. Suppose
the burner is running almost constantly, even when the
building is not occupied. You set the burner to manual control
and turn it off for now.
You look at the Disabled Program Summary and find the
controller has not disabled any programs.
You search through your programs for statements controlling
heating processes. You find this statement:
IF 3 THEN GOTO HEATING
The statement above is in the correct format, because
comparisons (after IF and before THEN) must be a number or
give a numeric result.
Since 3 is numeric, the statement is TRUE. The problem with
the statement is that it is always TRUE. So even if it is 80
degrees Fahrenheit outside, the program still goes to the
HEATING line. The same happens with this statement:
IF SUNDAY THEN GOTO HEATING
7-42
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
More Fundamental Keywords
No matter what the actual day is, SUNDAY is always greater
than 0, so the controller considers the statement TRUE. Only
a value of 0 would be FALSE, and SUNDAY is never 0.
These examples are errors in logic.
To correct these statements, you correct the comparisons:
IF WEEKDAY IS TUE THEN GOTO HEATING
IF WEEKDAY IS SUNDAY THEN GOTO HEATING
Debugging Techniques
Runtime errors are also called “bugs.” The process of finding
those errors is called “debugging.” Many sophisticated
techniques exist for debugging programs. We discuss these
techniques in Chapter 14.
Summary
Two types of runtime errors exist:
• Errors the controller recognizes and disables a program
because of. You can open the File Configuration
window and find an error message. Look up how to
resolve each message in Appendix B or apply techniques
discussed in Chapter 14.
• Logical errors. Refer to Chapter 14 for debugging
techniques that help uncover logical and other runtime
errors.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
7-43
Debugging Techniques
More Fundamental Keywords
Helpful Hints
You can save yourself from potential problems by following
some guidelines when you write your programs.
Adding Comments
Use Comments to
Remember Triggers
Suppose a fallthru program should be running but is not. What
do you do? Start by checking to see if its trigger is enabled.
How do you know the program’s trigger? Maybe you remember them all, but it is not likely.
To jog your memory later, when you first write the program,
enter a comment at the top that tells the program’s trigger.
Figure 7-16 shows a trigger comment at the top of a program.
Figure 7-16. Comment to Name the Trigger of
FallThru Program
File
Edit
Search
Check
Tools
FLOOR1 OccTest
’Trigger is Occupied
If Occupied = ON THEN RUN Chiller.Prog ELSE STOP Chiller.Prog
Comments may also be useful to tell the following:
• The program that calls this program.
• The program or programs that call this function.
• The functions this program calls.
For more on functions, refer to Chapter 12.
7-44
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Chapter 8
Working with Triggers, Logs,
and Special Conversions
We recommend you read Chapters 5, 6, and 7 before you read
this chapter. This chapter presents:
• Taking Action Only When a Point Changes
• Setting Point Triggers
• Triggering a Program by the Day of Year
•
•
•
•
•
•
•
•
•
Understanding Logs and Arrays
Setting Up Logs and Arrays
Setting the Entry Type and Interval
Finding the Sum of Logged Values
Finding the Average of Logged Values
Finding the Minimum or Maximum Logged Value
Converting a Flow Sensor Input Point
Converting a Voltage Producing Transducer Input Point
Setting Auto-Conversion Voltage Scale of Current Input
Point on the SCX 900
• Naming a Series of Points with/without Conversions
• Enabling and Disabling Points
• Summary of Buttons in Point Windows
www.PDF-Zoo.com
Triggers and Logs
8-2
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Triggers and Logs
Table 8-1 shows the input and output points used in this
chapter.
Table 8-1. Input and Output Points
Point
Controller
Model
Point Type
OutsideAir
CENTRALPLANT
CX 9000 IOU
Thermistor Input
SupplyAir
BLDG1 FLOOR1
SCX 900
Thermistor Input
FLOW
BLDG1 ROOM101
TCX 850
Voltage Input
StaticPress
BLDG1 BASEMENT
LCX 800
Voltage Input
PRESSURE
BLDG1 FLOOR1
SCX 900
Voltage Input
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
8-3
Triggers and Logs
Taking Action Only When a
Point Changes
GOAL: Keep HEAT.NOHEAT inactive and start it only
when the outside air temperature is below 50 degrees.
You could have HEAT.NOHEAT running constantly, always
checking the temperature and turning off the burner, but you
would tie up controller time needlessly if the temperature
were in, for instance, the 80s.
Some Points Trigger
Programs
Instead, you could leave the program inactive until the point
value changes. Using a point like this is called “triggering” a
program, and the point is called a “trigger.”
The point value is updated only when the temperature
changes by an amount equal to the THRESHOLD attribute
setting. (For instance if the THRESHOLD is 2 degrees, then
the point VALUE updates only if the temperature changes by
at least that amount.) So the program is not triggered every
time the temperature changes by a small fraction of an
amount, but only when the temperature changes by a
significant amount.
The ways you can start the HEAT.NOHEAT program are:
• Run it from the command line or from another program
using RUN, OPEN, or START.
• Have it automatically start as soon as you exit the file
editor.
• Have it triggered by a point value changing.
• Have it triggered by a system variable changing.
System variables are related to date and time. WEEKDAY,
for instance, is a system variable. They are called system
variables because the controller system sets their values. You
8-4
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Triggers and Logs
cannot change the WEEKDAY, because its value is related to
the date the system stores.
The system variables are:
DAYOFYEAR
MONTH
DAYOFMONTH
YEAR
HOUR
MINUTE
SECOND
HOD (Hour of Day)
TOD (Time of Day)
System Variables Can Be
Triggers
You can use them to trigger an action when the month
changes, the year changes, or the season (using
DAYOFYEAR) changes.
Summary
• You can start a program from the command line.
• You can have a program start automatically.
• You can have a program triggered by a point or system
variable.
• System variables are date and time values updated by the
controller.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
8-5
Triggers and Logs
Setting Point Triggers
Triggers Are Points That
Start Programs
A trigger is a point that starts a program. To set a trigger you
alter the point as follows:
1. Select Edit Points from the menu bar.
Press the SHOW LIST key and select a point name from
the choice list. Press the EXECUTE key and the Point
window appears.
2. Move to and press the DETAILS button.
3. In the Details window, press the TRIGGERS button.
Figure 8-1 shows the Triggers window that appears.
Figure 8-1. Triggers Window for OUTSIDEAIR Point
Logon
Edit
View
Connect
Triggers CENTRALPLANT OutsideAir
Program Name
HEAT.NOHEAT
Programs to Trigger
ADD
DELETE
EXIT
(If you have not yet saved the point, a popup message box
appears stating that the point does not exist and asking if you
want to create it. Press the OK button to proceed.)
8-6
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Triggers and Logs
To make OUTSIDEAIR trigger a program you add the
program name to the list as follows:
1. To enter the name of the program:
• Type the name in the Program Name text box.
OR
• Press the SHOW LIST key to see a list of names and
select one.
Use the up and down arrow keys or the PAGE UP and
PAGE DOWN keys to move up and down the list of
names to highlight the one you want.
Press the EXECUTE key to put the name in the
Program Name text box.
Press ADD to Add
Trigger to List
2. Press the ADD button.
The program name appears in the Programs to Trigger
window.
Figure 8-2 shows the HEAT.NOHEAT program in the
Triggers window.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
8-7
Triggers and Logs
Figure 8-2. Triggers Window with Program Added
Logon
Edit
View
Connect
Triggers CENTRALPLANT OutsideAir
Program Name
Programs to Trigger
ADD
HEAT.NOHEAT
DELETE
EXIT
Triggers Listed in
Window
Instead of pressing ADD, you can press DELETE to delete
the program in the Program Name text box from the list.
Press EXIT to return to the Details window.
You could have OUTSIDEAIR trigger several programs by
adding them all to the Programs to Trigger list.
8-8
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Triggers and Logs
Summary
• A trigger is a point or system variable that starts a program.
• To set point triggers you select Edit Points from the
menu bar. After you open the point, go to the Details
window and press the TRIGGERS button.
Press TRIGGERS to
Open Trigger List
• In the Programs to Trigger window is a list of
programs the point triggers.
• You can press the ADD or DELETE button to add or
delete a program from the program list.
• You can press EXIT to return to the Details window.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
8-9
Triggers and Logs
Triggering a Program by the
Day of Year
GOAL: To trigger the DAYLIGHT program (see preceding
chapter) by the DAYOFYEAR system variable.
Triggers Limit When
Program Runs
So that you don’t have to start the DAYLIGHT program
manually, or run it continually, it should run only when the
DAYOFYEAR changes. A change in the DAYOFYEAR
should trigger the program.
You can make a system variable a trigger, just as you can
make a point a trigger. To set up DAYOFYEAR as a trigger:
1. Select Edit System Variable from the Main menu bar.
2. When Open a System Variable appears on the screen,
press the SHOW LIST key to see a list of the system
variables. Arrow to the variable name and press the
EXECUTE key.
3. Press the EXECUTE key to continue.
4. Move to the DETAILS button and press it.
5. Move to the TRIGGERS button and press it.
6. Now type the name of the program in the Program
Name text box.
Figure 8-3 shows the program name in the Triggers
window.
8-10
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Triggers and Logs
Figure 8-3. Triggers Window for DAYOFYEAR
Logon
Edit
View
Connect
Triggers FLOOR1 AHU DAYOFYEAR
Program Name
DAYLIGHT
Programs to Trigger
ADD
DELETE
EXIT
7. Press the ADD button.
8. Press the EXECUTE key or SAVE key to save the triggers
and return to the previous window. Or press the EXIT
button to return to the previous window.
From now on, whenever the DAYOFYEAR changes the
program checks to see if it’s the day to reset the HOUR. If it
isn’t, the program stops until DAYOFYEAR changes again.
You can also set a system variable to trigger programs from
inside a program file by selecting Tools Edit a System
Variable from the File menu bar. You then proceed as
detailed in Chapter 5.
Summary
To trigger a program with a system variable, you edit the
system variable and add the program name to the Programs
to Trigger list.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
8-11
Set a System Variable
from Tools Menu
Triggers and Logs
Understanding Logs and
Arrays
Sometimes you may want the controller to update a point
every few minutes or every hour, and save the values it has recorded up to that time.
Logs
Logs Automatically
Update
Logs are points that automatically update and save the “readings” from the environment.1
You can picture the values of the SUPPLYAIR log in a table.
Table 8-2 shows the SUPPLYAIR log positions labeled with
index numbers.
Table 8-2. SUPPLYAIR Log Values
Index
1
2
3
4
5
6
7
8
Value
72
73
75
74
73
72
71
73
Last Value
Recorded
In a log, you can access the last (most recent) value recorded
in the first position:
PRINT SupplyAir[1]
1. Logs can be input, output, numeric, string, or datetime points. The example
here illustrates an input. More about other types of logs appears in future
chapters.
8-12
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Triggers and Logs
The previous statement prints 72, the value held in the first
position in the log.
The second to the last value recorded is in the second position:
PRINT SupplyAir[2]
The above statement prints 73.
The third to the last value is in the third position, the fourth in
the fourth position, and so on.
Arrays
Arrays, like logs, save more than one value, but, unlike logs,
they do not automatically update. Your program must update
an array.
Table 8-3 shows the AVSUPPLYAIR array positions labeled
with index numbers.
Table 8-3. AVSUPPLYAIR Array Values
Index
1
2
3
4
5
6
7
8
Value
72.5
73.1
71.2
78.2
72.1
76.5
77.5
74.2
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
Last Value
in Array, but Not
Necessarily Last
One Recorded
8-13
Arrays Update When
Programs Set Them
Triggers and Logs
You Must Set Array
Values in a Program
Since the array does not automatically update, you may have
a program calculate a total and place it in an array as follows:
SET AVSupplyAir[3] TO AVERAGE(SupplyAir)1
This program statement sets the third position in the
AVSUPPLYAIR array to the average supply air temperature.
You write similar statements to set other values in the array.
You can also use some advanced programming techniques to
change the index number (see later chapters).
Later, you can access the values recorded as follows:
PRINT AVSupplyAir[2]
This statement prints the second value in the array, 73.1
You can access the last value in an eight-item array as
follows:
PRINT AVSupplyAir[8]
This statement prints the last value in the array, 74.2.
Remember, you can set an array from a program, but you cannot set a log.
A point can be a log or an array; it cannot be both.
1. We present the AVERAGE keyword later in this chapter.
8-14
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Triggers and Logs
Summary
• Logs are points that automatically update and save the
“readings” from the environment.
• Arrays are points that contain a series of values set by
programs.
• Each entry in a log or array has a numbered position. The
number of the entry is called the “index number.”
• You access entries in a log or array by the name and index
number; you access the third entry in a SUPPLYAIR log
as follows:
PRINT SupplyAir[3]
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
8-15
Get Log Entries with
Index Numbers
Triggers and Logs
Setting Up Logs and Arrays
To make a point log values, do the following:
1. Select Edit Points from the Main menu bar.
2. Enter a new point name or choose a name from the choice
list and press the EXECUTE key.
3. Enter all point attributes or press the NEXT ATTRIBUTE
key to move through them to the DETAILS button.
4. Press the DETAILS button.
5. Enter all the attributes or press the NEXT ATTRIBUTE
key to move through them to the LOGS button.
Press the LOGS button to open the Logs window.
Figure 8-4 shows the Logs window.
Logs Window
Figure 8-4. Logs Window for Automatic Log
View
Edit
Connect
Logout
Point – FLOOR1 AHU SupplyAir
LOGS – FLOOR1 AHU SupplyAir
Number of Entries 95
Log Type
(X) Automatic Log
( ) Manual Array
Entry Type
(X) LogInstantaneous
( ) LogAverage
( ) LogMinimum
( ) LogMaximum
SAVE
CANCEL
Interval
Days 0
Hours 0
Minutes 15
Seconds 0
8-16
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Triggers and Logs
You set the attributes as follows:
1. Number of Entries (SIZE)—Put the number of entries
in the log, up to 32,767. For instance, if you want the
supply air temperature entry updated every hour, you can
place the values in a log with 23 items.
2. Log Type—Select Automatic Log or Manual Array.
The controller updates the log automatically and your
program updates the array. If you select Manual Array,
the rest of the attributes disappear from the screen, since
they apply only to automatic logs.
3. Entry Type (LOGTYPE)—Select one of the four types
of values the controller can enter into the log or array:
LOGINSTANTANEOUS—Select to have the log take in
the exact value for the scan that occurs when the interval
of time has elapsed.
LOGAVERAGE—Select to have the log take in the value
at every scan in the interval and put the average value over
that interval into the log.
LOGMINIMUM—Select to have the log take in the value
at every scan in the interval and put the minimum value of
that interval into the log.
LOGMAXIMUM—Select to have the log take in the
value at every scan in the interval and put the maximum
value of that interval into the log.
The next section suggests when you might select each of
these entry types.
4. Interval (LOGINTERVAL)—Enter the amount of time
you want to elapse between the logging of each value.
Break down the total length of the interval into:
• Days—Up to 365.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
8-17
Four Log Entry Types
Triggers and Logs
• Hours—Up to 23.
• Minutes—Up to 59.
• Seconds—Up to 59.
The length of the interval should be equal to the total—
days + hours + minutes + seconds. The minimum length of
the interval is 1 second.
The next section explains how you set the interval.
5. Press the EXIT button repeatedly in each window until
you arrive at the Point window; then press EXIT to save
the point as a log. Or press the CANCEL button to erase
the log settings. You can also press the EXECUTE or
SAVE key to save the log.
Figure 8-5 shows how the Logs window appears for a
manual array.
Logs Window for Arrays
Figure 8-5. The Logs Window for Manual Array
View
Edit
Connect
Logout
Point – FLOOR1 AHU AVG.SAT
LOGS – FLOOR1 AHU AVG.SAT
Number of Entries
Log Type
( ) Automatic Log
(X) Manual Array
8-18
www.PDF-Zoo.com
7
EXIT
CANCEL
Infinity Controller Programmer’s Guide
Triggers and Logs
Summary
• You can create logs and arrays in the Logs window.
Summary of Logs and
Arrays
• In a log, the last (most recent) value entered is always in
the first position: SupplyAir[1]
• In an array, you can enter a value in any position or access
the value entered in that position with its index number:
SupplyAir[24]
• The number of entries is the SIZE attribute—you enter the
number of items in the array or log.
• Select Automatic Log or Manual Array for the log
type.
• Select LOGINSTANTANEOUS, LOGAVERAGE,
LOGMINIMUM, or LOGMAXIMUM as the way the log
enters the value in relation to the scans for that interval.
• Enter the interval in days, hours, minutes, and seconds.
• You press the SAVE button to return to the previous
window. Keep pressing SAVE until you are at the Point
window where you press SAVE to save the point as a log.
Or you can press the EXECUTE or SAVE key from the
Logs window and save the log information.
• You press the CANCEL button to erase the log
information.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
8-19
Triggers and Logs
Setting the Entry Type and
Interval
The entry type for a log is one of these:
• LogInstantaneous
• LogAverage
• LogMinimum
• LogMaximum
Under what circumstances would you select each of these
types? The following are some examples of when you might
select each.
LogInstantaneous
Log Exact Time Building
Starts Up
You select LOGINSTANTANEOUS when you must have the
value of the point at the moment of the scan. A circumstance
you might want this under is logging the exact amount of energy consumption for the day. In that situation you would not
be interested in the average, minimum, or maximum consumption. Instead you want to know the precise value at the
beginning of the occupancy.
You might want to log the startup time on a once a day basis,
so the interval would be 1 day.
LogAverage
You might select LOGAVERAGE for the entry type when
you are logging information on general conditions. For example, you might record the average hourly outside air
temperature to compare it to the hourly energy consumption.
To set up this log, you would make the interval 1 hour to
record the average value for the hour.
8-20
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Triggers and Logs
LogMinimum
You might select LOGMINIMUM if, for instance, you
wanted to make sure that the liquid level in a tank always
remained above a certain point. You would log the daily
minimum values of that level so that you could respond to
them.
Log the Minimum Liquid
Level in a Tank
Again, the interval for this log would be 1 day.
LogMaximum
You might select LOGMAXIMUM to monitor the top value
of a point, such as the peak electrical demand. You could log
electrical demand over a 30 minute period, recording the
maximum value of each interval.
The interval for the electrical demand log would be 30
minutes. You could instead record the peak for the day or the
week by setting the interval to 1 day or 7 days, respectively.
Summary
• You may want to select each of the entry types for logs in
different circumstances.
• You base the length of the log interval on the kind of
information you need.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
8-21
Log the Maximum Power
Demand
Triggers and Logs
Finding the Sum of Logged
Values
GOAL: To total the logged values of kilowatt usage for the
month and print a message telling the amount.
SUM Totals Log Values
You can add up all the values in a log using SUM. SUM totals
logs, arrays, and lists. The following totals a log called
KWH.USAGE:
SUM(KWH.USAGE)
You use only the name of the log to indicate that you want
SUM to add up the entire log.
SUM adds up the values in parentheses in the following:
SUM(345, 267, KWH.USAGE[2], KWH)
You might also find SUM useful in a calculation that does not
involve points at all:
SUM(234, 356, 899, 200)
Or you may, for instance, need to add up a series of numeric
point values.
To put SUM into a program, you could use the result in a
program statement, like this:
IF SUM(KWH.USAGE) IS ABOVE USAGE.SP THEN...
You could also set a numeric point to the sum for later use in
a report:
SET TOTAL TO SUM(KWH.USAGE)
Figure 8-6 shows the program.
8-22
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Triggers and Logs
Figure 8-6. TOTAL.USAGE Program—FallThru
File
Edit
Search
Check
Tools
CENTRALPLANT TOTAL.USAGE
TOTAL = SUM(KWH.USAGE)
PRINT "TOTAL KWH USAGE IS |*", TOTAL
(The vertical bar followed by an asterisk (|*) in the
TOTAL.USAGE program tells PRINT to print any number of
digits that the value contains.)
Summary
• SUM adds up the values in a log, list, or array.
• SUM automatically adds up all the values in a log or array
when you give the point name with no index number.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
8-23
Triggers and Logs
Finding the Average of
Logged Values
GOAL: To find the average outside air temperature for each
week. Store the values in an array log for later use in a report.
Assume the OUTSIDEAIR point logs the temperature every
15 minutes for a week. It would take some work to find the
average using a standard approach of adding and dividing,
because the log would contain 672 values.
AVERAGE Averages Log
Values
To average the log in one quick statement, you use
AVERAGE. AVERAGE works like this:
AVERAGE (OutsideAir)
When you put OUTSIDEAIR in parentheses after
AVERAGE, the keyword assumes that the point is a log or
array. It finds the average of all the values logged.
You usually put AVERAGE into a statement that uses the
value it produces.
IF AVERAGE(OutsideAir) > 75 THEN STOP WARMUP
To store the average in a numeric point for a report at the end
of the week, use this statement:
SET OATAVG[2] TO AVERAGE(OutsideAir)
(Details on creating numeric points are included in
Chapter 4. Using numeric points is covered in a later chapter.)
Figure 8-7 shows the program.
8-24
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Triggers and Logs
Figure 8-7. WEEKLY.OAT Program—FallThru
File
Edit
Search
Check
Tools
FLOOR1 AHU WEEKLY.OAT
’Triggered by WEEKDAY
IF WEEKDAY = SATURDAY and TOD > 11:55 pm THEN
SET OATAVG TO AVERAGE(OutsideAir)
RUN OAT.REPT
ENDIF
So when the day of week is Saturday, the program:
• Calculates the average of the OUTSIDEAIR log values.
• Runs a report program.
You can also find the average of a list of values using
AVERAGE, just as you found the sum of a list.
Summary
• AVERAGE finds the average of the values in a log, list, or
array.
• AVERAGE automatically averages all the values in a log
or array when you give the point name with no index
number.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
8-25
AVERAGE Automatically
Uses Entire Log
Triggers and Logs
Finding the Minimum or
Maximum Logged Value
GOAL: To find the adjusted average outside air temperatures
for the week (minus the lowest and highest values before
averaging).
Assume again that OUTSIDEAIR input point logs the outside
air temperature every 15 minutes for a week. It would be
outrageously time consuming to find the lowest or highest
OAT using a standard approach of TRUE-FALSE statements
comparing each value to the next.
Finding the Minimum
MINIMUM Finds Lowest
Value in Log
To find the lowest value logged in one quick statement, you
use MINIMUM. MINIMUM works like this:
MINOAT = MINIMUM (OutsideAir)
When you put OUTSIDEAIR in parentheses after
MINIMUM, the keyword assumes that point is a log or array.
It finds the lowest value logged.
Before you can use this statement, you must create a numeric
point called MINOAT to put the result of MINIMUM into.
Finding the Maximum
MAXIMUM Finds Highest
Value in Log
To find the highest value logged in one quick statement, you
use MAXIMUM. MAXIMUM works like this:
MAXOAT = MAXIMUM (OutsideAir)
When you put OUTSIDEAIR in parentheses after
MAXIMUM, the keyword assumes that point is a log or array.
It finds the highest value logged.
8-26
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Triggers and Logs
Before you can use this statement, you must create a numeric
point called MAXOAT to put the result of the function into.
Finding the Total
To add up the values in a log, then subtract the minimum and
maximum values, you proceed as follows:
1. Total the log values with SUM.
2. Subtract the minimum value found with MINIMUM.
3. Subtract the maximum value found with MAXIMUM.
4. Divide the total by the number of items in the array (SIZE
attribute) minus 2 (the minimum and maximum that have
been removed).
5. Put the results in a numeric point called
ADJUSTED.AVG.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
8-27
Use SUM, MINIMUM, and
MAXIMUM
Triggers and Logs
Figure 8-8 shows the program.
Figure 8-8. MINMAX.MINUS Program—FallThru
File
Edit
Search
Check
Tools
CENTRALPLANT MINMAX.MINUS
’Triggered by WEEKDAY
IF WEEKDAY IS SATURDAY AND TOD IS 1:00 pm THEN
SET TOTAL TO SUM(OutsideAir)
SET MINOAT TO MINIMUM(OutsideAir)
SET MAXOAT TO MAXIMUM(OutsideAir)
ADJUSTED.AVG = (TOTAL – (MINOAT + MAXOAT)) / (OutsideAir SIZE – 2)
ENDIF
You can also find the minimum of the maximum of a series of
values in a list. You use MINIMUM and MAXIMUM this
way to simplify the WATERTEMP program from Chapter 7.
Remember that the hot water setpoint has to be set to between
100 and 180 degrees, depending on the LOWSPACEFCTR.
If 180 minus the LOWSPACEFCTR gives a value below 100
degrees, the hot water setpoint is set to 100 degrees, not lower.
Figure 8-9 shows the WATERTEMP program rewritten to set
the hot water to the correct setpoint in one statement.
Figure 8-9. WATERTEMP Program—Looping
File
Edit
Search
Check
Tools
FLOOR1 AHU WATERTEMP
SET HWTemp.Setpt TO MINIMUM(MAX((180 – LowSpaceFctr),100),180)
8-28
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Triggers and Logs
In this program, MAXIMUM (shortened to MAX) finds the
maximum value of the list in parentheses after it—either of
these:
• 180 – LowSpaceFctr
• 100
Then MINIMUM (cannot be shortened) then finds the
minimum value inside the next layer of parentheses—either
of these:
• The result of MAXIMUM
• 180
The setpoint is set to the final result of first the MAXIMUM,
then the MINIMUM.
Summary
Take Action on Entire
Array, Log, or List
• The MAXIMUM or MINIMUM keyword finds the
maximum or minimum value in a log, list, or array.
• The MAXIMUM and MINIMUM keywords
automatically act on all the values in a log or array when
you give no index number.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
8-29
Triggers and Logs
Converting a Flow Sensor
Input Point
GOAL: To write a conversion for the FLOW air flow sensor
input (Input 8) on a TCX 850 that automatically converts the
reading of the input into flow in cubic feet per minute.
Convert Inches of Water
to Cubic Feet per Minute
Although you set the electrical type to Voltage when defining the point, it actually reads inches of water.
How do you get from inches of water to cubic feet per minute?
Because the conversion is not linear, you cannot use the autoconversion box. Instead, you must develop a formula and enter the formula in the Conversion text box.
Developing the Conversion
The words and symbols you use to form the conversion are
the same ones you program with—Andover Controls Plain
English keywords.
You need to use the inches of water to cubic feet per minute
relationship and the K factor for the VAV box to convert to
cubic feet. Since the K factor in this case is 425, the following
expression converts the units:
flow = 425 * SQRT(FLOW ELECVALUE)
As shown in Figure 8-10, “flow =” is not required in the
formula.
This formula uses the * for TIMES.
The formula also uses both the ELECVALUE attribute of the
point. Remember the ELECVALUE is the value in electrical
units, in this case the voltage read by the input.
SQRT finds the square root of the value in parentheses after
it, in this case the ELECVALUE of FLOW.
8-30
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Triggers and Logs
Figure 8-10. FLOW Point Conversion in the Point
Details Window
View
Edit
Connect
Logout
Details – FLOOR1 AHU Flow
Description
Flow AirFlow Sensor
Display Format
SAVE
#.##
Exported X
CANCEL
Threshold .02
Conversion 425 * SQRT (FLOW ELECVALUE)
Auto-Conversion
wg
Volts
Top
0
0
Bottom
0
0
LOGS
TRIGGERS
DELETE
SQRT is a mathematical keyword, like SUM, AVERAGE,
MINIMUM, and MAXIMUM. You may need other mathematical keywords to write other conversions. (See Chapter 18
for more information.)
You can use similar conversions on output points.
Entering the Conversion
Once you have developed the conversion, open the Point
window, name the point, and proceed as follows:
1. Press the DETAILS button.
2. Enter a description and format if you want.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
8-31
Mathematical Keywords
Triggers and Logs
3. Enter the conversion in the Conversion text box. The
text box scrolls so you can enter up to 132 characters and
symbols in the conversion. The conversion is as follows:
425 * SQRT(FLOW ELECVALUE)
The controller automatically sets the point’s value to the
result of the expression you enter.
You can also leave out the point name before
ELECVALUE, because the controller assumes that the
ELECVALUE belongs to the point you are converting:
425 * SQRT(ELECVALUE)
If, however, you name another point before
ELECVALUE, that point is pulled into the equation rather
than the current point’s attribute.
If you do not enter the conversion in correct Andover
Controls Plain English, the controller does not let you
move to the next text box. Error messages like those you
might see in a file appear along the status bar.
4. After you enter the complete conversion, press the NEXT
ATTRIBUTE key and a popup window appears.
Popup Message Window
Figure 8-11 shows the message in the popup window. It
tells you the point does not exist, because you haven’t
saved it yet. You either press OK to keep the conversion
for the point or CANCEL to cancel the conversion.
Figure 8-11. Conversion Popup Message Box
Error
Point does not exist. Create it?
OK
8-32
www.PDF-Zoo.com
CANCEL
Infinity Controller Programmer’s Guide
Triggers and Logs
5. Move to and press the SAVE button to return to the Point
window.
6. Move to the SAVE button and press it to save the point. Or
press the EXECUTE key or SAVE key to save the point
and close the window.
Summary
• To convert to engineering units that do not have a linear
relationship to the electrical units of a point, you enter a
conversion in the Conversion text box.
• You use Andover Controls Plain English language
keywords and symbols to create a conversion. You usually
employ a mathematical keyword to form a nonlinear
conversion.
• SQRT is a mathematical keyword.
• ELECVALUE when given after a point name refers to the
point’s ELECVALUE attribute, the electrical value read
by the input.
• When you press NEXT ATTRIBUTE from the
Conversion text box, a popup message box appears
asking you if you want to create the point with this
conversion.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
8-33
Nonlinear Conversions
Go in Conversion Box
Triggers and Logs
Converting a Voltage
Producing Transducer Input
Point
GOAL: To write a conversion for the STATICPRESS voltage producing transducer input on an LCX 800 that automatically converts the reading based on the reference voltage and
impedance of the transducer. The voltage the controller reads
is not the true value due to the voltage supplied by the LCX
800.
Convert Input Voltage to
Correct Value
Given the following information, you can form an equation:
• VOLT is the amount read by a Voltage input.
• The RES is the output impedance of the transducer in
KΩs.
• REF.VOLT is the reference voltage of the controller.
You can formulate this equation to correct the distortion in the
value read:
(VOLT – (REF.VOLT * (RES/(10 + RES))))/(10/(10+RES))
The reference voltage of an LCX 800 or a TCX 850 is 5.120 V.
The SCX 900 and LCX 810 do not require a conversion for
high impedance inputs because you set the input reference resistor switch to OUT for such inputs when you install the
controller. (See the installation guide for each controller for
details.)
You enter the formula in the Conversion text box.
8-34
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Triggers and Logs
Summary
• To convert to a transducer input voltage to the corrected
voltage, you enter a conversion in the Conversion text
box.
• LCX 800s and TCX 850s both have has a reference voltage
of 5.120 V.
• SCX 900s and LCX 810s both have input reference resistor
switches that must be set to OUT for high impedance
inputs. No conversion is required.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
8-35
Use Reference Voltage
of Controller
Triggers and Logs
Setting Auto-Conversion
Voltage Scale of Current Input
Point on the SCX 900
GOAL: To set up the auto-conversion for the PRESSURE
current-producing pressure sensor on a SCX 900.
You may remember setting up a current input as a Voltage type
earlier in this manual. The controller reads the voltage of a current input that results from the resistor you wire across the input.
The best way to convert that voltage to, for instance, the psi
units for the pressure gauge, is to insert a conversion for the
PRESSURE input on a SCX 900 into the Auto-Conversion
box for the point.
Convert Voltage to
Pressure Units
Given the following information, you can select the values to
put into the auto-conversion:
• The maximum current produced by the input.
• The amount of resistance you wire across the current input
in KΩs (for example, 0.475 KΩ for a 475 Ω resistor).
Figure 8-12 shows a current sensor wired to an input point.
Figure 8-12. Wiring Diagram for Current Input
RL= 475 Ω
Take the following steps:
1. Calculate the voltage from an input with a 475 Ω resistor:
8-36
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Triggers and Logs
Voltage = Current (mA) * Resistance (Ω)/1000
So for 4 mA (bottom of scale) and a 475 Ω resistor, the
following is the result:
4 mA * 475 Ω/1000 = 1.9 V
For 20 mA (top of scale) and a 475 Ω resistor, the
following is the result:
20 mA * 475 Ω/1000 = 9.5 V
Figure 8-13 shows where you place the top and bottom of
scale in the Auto-Conversion box.
Figure 8-13. Auto-Conversion Box in Point Window
Auto-Conversion
psi
Top
Bottom
Volts
20
9.5
0
1.9
2. After you have calculated the correct voltage for the
electrical value (ELECVALUE), you then enter the top
and bottom of scale in psi units.
You are now ready to use the input.
Summary
• You calculate the voltage from a current input (on a SCX
900 or LCX 810) as follows:
Voltage = Current (mA) * Resistance (Ω)/1000
• The resistance for a current input is usually 475 Ω on a
SCX 900 or LCX 810.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
8-37
Calculate with Current,
Resistance
Triggers and Logs
Naming a Series of Points
with/without Conversions
Create a Point, Save It
under Another Name
Once you have named the first point with a conversion,
to name several more points, you can alter the first point’s
settings and save it under another name with SAVE AS.
Keeping the conversion, however, involves responding to
controller questions.
Saving Converted Points
After you have saved the FLOW point by pressing the SAVE
AS button and typing FLOW in the Name text box of the
Open a Point window, when you attempt to create several
additional points using SAVE AS, each with or without a conversion, notice that the SAVE AS procedure changes:
1. When you press SAVE AS and the new Open a Point
window appears on top of the Point window, type the
name of the new point in the Name text box and press the
EXECUTE key.
After you type the name, if your new point has a
conversion, a new window appears on top of the Point
window.
Figure 8-14 shows the window, called the Conversion
Check window. It displays a message.
8-38
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Triggers and Logs
Figure 8-14. Conversion Check Window
View
Edit
Connect
Logout
CONVERSION CHECK
The conversion has not been checked.
Select: YES to edit and check the conversion.
NO to discard the conversion.
YES
NO
CANCEL
2. Press the YES button to check the conversion for the new
point just as you would “check” a program.
Press NO to discard the conversion.
Press CANCEL to discard the new point.
3.
If you pressed YES, enter the conversion for the new
point in the Conversion text box.
4.
Press the SAVE button to save the point. Or press the
EXECUTE key or the SAVE key. The window
automatically closes.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
8-39
A Check Conversion
Message Appears
Triggers and Logs
Enabling and Disabling Points
GOAL: To take the BURNER point out of program control,
so the heater functions while you alter the point. Later, after
you alter the point, to let the program use it again.
To take the BURNER point out of program control, you enter
the following either in the Command window or inside a
program:
DISABLE THE BURNER
Disabled Point Runs by
Manual Control Only
When you have disabled the point, the burner itself still runs
(if it has been running), so you have not stopped the
equipment, as you would with the STOP keyword. Think of
disabling the point as disconnecting it from the controller.
To later allow the program to control the burner, you use the
ENABLE keyword:
ENABLE THE BURNER
You can disable or enable more than one point as follows:
DISABLE THE BURNER, HWPump1, AND HWPump2
ENABLE THE BURNER, HWPump1, AND HWPump2
ENABLED and DISABLED set the STATE of a point.
(You can also stop points from displaying on the LCD
keypad, but not the same way. See Chapter 9 for details.)
8-40
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Triggers and Logs
Summary
Enabled Points Can Be
Set by the Controller
• Disabling a point is not the same as stopping it.
• A disabled point is disconnected from the controller.
• Enabling a point is not the same as starting it or turning it
ON.
• An enabled point is under the control of the controller.
• You can use ENABLE or DISABLE on the command line
or inside a program.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
8-41
Triggers and Logs
Summary of Buttons in Point
Windows
Buttons Take Action
These buttons appear in the Point and Point Details windows:
• SAVE—In the first point window, saves the point under
the name you originally gave it and closes the Point
window. Press the QUICK BUTTON key and then S.
• SAVE—In the Details and Logs windows, returns to the
previous window.
• SAVE AS—Saves the information to another point if you
enter a new name in the Open a Point window and
leaves that point displayed on the screen. Press the QUICK
BUTTON key and then A.
• CANCEL—Cancels the point information and exits the
window. Press the QUICK BUTTON key and then C.
• DETAILS—Opens the Details window. Press the
QUICK BUTTON key and then D.
• EXIT—Returns to the previous window. Press QUICK
BUTTON key and then X.
• LOGS—Opens the Logs window. Press the QUICK
BUTTON key and then L.
• TRIGGERS—Opens the Triggers window. Press the
QUICK BUTTON key and then T.
• DELETE—Removes the point from the controller. Press
the QUICK BUTTON key and then E.
8-42
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Chapter 9
Altering and
Further Developing
Programs in Your Set
This chapter includes sample programs and presents these
programming concepts:
• Cutting, Copying, and Moving Text in a File
• Finding and Replacing Text in a File
• Finding and Replacing Text with Regular Expressions
• Opening a Command Window from Inside a File
• Looking at, Creating, and Altering Points from Inside
a Program File
• Looking at Messages from Inside a Program File
• Looking at a List of Files from Inside a Program File
• Copying Programs to Other Controllers
• Using Points on Another Controller
• Preventing Particular Point Values from Displaying on a
Keypad LCD
• Finding Errors Resulting from Deleting an Item
• Enabling and Disabling Programs
• Understanding the Scanning Process
• Altering the Firing Order
• Helpful Hints for the Programming Set
www.PDF-Zoo.com
Developing Programs
9-2
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Developing Programs
Table 9-1 shows the input and output points used in this chapter.
Table 9-1. Input and Output Points
Point
Controller
Model
Point Type
Damper
BLDG1 ROOM 101
TCX 850
Current Output
Reheat
BLDG1 ROOM 101
TCX 850
Current Output
Fan1
CENTRALPLANT TOWER
SCX 900
Form C Output
Fan2
CENTRALPLANT TOWER
SCX 900
Form C Output
Fan3
CENTRALPLANT TOWER
SCX 900
Form C Output
CW1ISOValve
CENTRALPLANT
CX 9000
Current Output
CHWP1Valve
CENTRALPLANT
CX 9000
Current Output
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
9-3
Developing Programs
Cutting, Copying, and Moving
Text in a File
Edit Select, Cut, Copy,
and Paste
After you have typed your program, you may want to cut
some text and move it to (paste it into) a different location.
Selecting the Text
First, you select the text you want to cut (or copy):
1. Move the cursor to the beginning of the text you want to
cut (or copy) and press the CANCEL WINDOW key.
The cursor goes to the File menu bar.
2. Select Edit Select. The cursor immediately returns to the
file.
3. Now move the cursor to the end of the text you want to cut
(or copy) and press the CANCEL WINDOW key.
You have now selected all the text between the original
cursor location and the current cursor location.
Cutting and Moving or Copying Text
Now cut and paste (or copy and paste) the text:
1. To move the cursor to the menu bar, press the CANCEL
WINDOW key.
2. Select Edit Cut or Edit Copy to cut or copy the text. The
cursor returns to the file. If you selected Edit Cut, the text
you selected is removed from the screen.
3. Move the cursor to the beginning of the location you want
to move the text to and press the CANCEL WINDOW
key. (The location you want to move the text to can be in
9-4
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Developing Programs
another file; open that file as you normally would and
position the cursor to paste text there.)
4. Select Edit Paste. The text appears in the new location.
5. Repeat steps 2 and 3 to paste the same text in another
location. You can continue to paste the same piece of text
until you use Edit Select and Edit Cut or Edit Copy on
another piece of text.
If you select Edit Cut or Edit Copy without first selecting
text, a message appears on the screen.
Figure 9-1 shows the message.
Figure 9-1. Paste Error Message
Paste Error
You did not select any text to Cut.
OK
Press the OK button to acknowledge the message.
Pasting and Creating Long Statements
If you copy 100 characters and paste them in the middle of a
statement of 50 characters, the result is a statement longer
than 132 characters. The controller responds with a message.
Figure 9-2 shows the message that appears.
Figure 9-2. Caution for Pasting Long Statements
Caution
Search Replace inserted a continuation character, ~,
which may produce errors in your program.
OK
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
9-5
After You Select, Cut or
Copy before You Paste
Developing Programs
Infinity Adds a Tilde to
Long Lines
When you see this message, Infinity has placed a continuation
character at the end of the first physical line of the new
statement. However, Infinity does not always put the tilde (~)
after a complete word. The physical line may end like this:
te~
It should end like this:
test~
You now must find the tilde at the end of the line and if it does
not fall after a complete word, alter the text so it does. Be sure
no characters are to the right of the tilde.
If you form a long statement at any time, such as by searching
and replacing, the same caution occurs.
Pasting and Reaching End of File
File Can Contain Up to
400 Lines
If you paste 25 physical lines into a 375 line file, Infinity
enters as many physical lines as it can up to 400 total for the
entire file. Any lines after 400 are cut. (Watch the line number
in the lower right corner of the file window.)
Figure 9-3 shows the paste error message that appears.
Figure 9-3. Paste Error End-of-File Message
Paste Error
You have reached the end of file.
OK
If this message appears, you can paste the cut or copied text
into another file to save all of it. However, when you do, the
current file closes automatically, because you can have only
one file open at a time.
9-6
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Developing Programs
Selecting the Text with MARK BLOCK
Instead of Edit Select
You can also select text to copy by marking it with the MARK
BLOCK key instead of the Edit Select menu selection, as
follows:
MARK BLOCK Key
Marks to Cut or Copy
1. Move the cursor to the beginning of the text you want to
cut (or copy) and press the MARK BLOCK key.
2. Move the cursor to the end of the text you want to cut (or
copy) and press the CANCEL WINDOW key.
The cursor goes to the File menu bar.
3. You have now selected all the text between the original
cursor location and the current cursor location. To copy the
text select Edit Copy.
4. To paste the text, position the cursor at the beginning of
where you want to paste and press CANCEL WINDOW.
5. Select Edit Paste to paste the text.
Erasing Text in a File
To erase all text from the file, first, you select the text you
want to erase. Then to erase the text you just selected, proceed
as follows:
1. To move the cursor to the menu bar, press the CANCEL
WINDOW key.
2. Select Edit Clear.
The selected text is now gone. It is not even available to
paste.
If you select Edit Paste now, you paste the last piece of text
you cut or copied with Edit Cut or Edit Copy.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
9-7
Erase Text with Edit
Clear
Developing Programs
Finding and Replacing Text in
a File
Search and Replace
After you have typed your program, you may want to search
for a word or phrase and replace it with a different one.
Suppose you want to search for DAMPERS and replace it
with DAMPER:
1. Bring the cursor to the location in the file you want to start
searching from.
2. Press the CANCEL WINDOW key to bring the cursor to
the File menu bar.
3. Select Search Replace. The Search:Replace window
appears.
Figure 9-4 shows the window.
Figure 9-4. Search:Replace Window
File
Edit
Search
Check
Tools
FLOOR1 AHU MORN.WARMUP
Search:Replace
Search For
Replace With
DAMPERS
Damper
OK
(X) Ignore Case
( ) Regular Expression Search CANCEL
(X) Entire File
(X) Prompt/Replace
4. Enter up to 32 characters in the Search For text box.
Move from the Search For to the Replace With text
9-8
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Developing Programs
box using the NEXT ATTRIBUTE key. Again, enter up to
32 characters.
5. Select Ignore Case to find not only “DAMPERS”, but
“Dampers” and “dampers” as well.
(Skip Regular Expression Search for now.)
6. To search through the entire file, select Entire File.
Otherwise, you find only one occurrence of the text.
(Remember, the search starts where you put the cursor.)
7. To get a prompt (question) to appear on the screen that
stops at each instance and lets you decide whether you
want to replace it, select Prompt/Replace.
8. Press the OK button to begin the search. The search starts
where the cursor currently is and stops at the end of the
file. When Infinity finds the first instance of the text, it puts
the cursor on that text.
9. If you did not select Prompt/Replace, Infinity finds the
text and replaces it every time it occurs in the file. The
cursor lands on the last instance of the text.
10. If you selected Prompt/Replace, when the prompt
appears, you can do one of these:
• To replace the text and then find the next occurrence,
press the space bar.
• To skip that occurrence and search for the next, press
the EXECUTE key. The cursor lands on the next
occurrence.
• To cancel the entire search, press the CANCEL
WINDOW key (referred to as F4 on the screen).
Repeat step 10 until you have searched and replaced all
instances.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
9-9
Search for Text with
Upper- and Lowercase
Developing Programs
11. If Infinity cannot find the text, Text not found appears
in the message bar.
If, when you replace text, a line exceeds 132 characters or the
file grows beyond 400 lines, the same messages appear as
when you paste text.
If you do not select the Prompt/Replace option, and you
search for and replace long words or phrases that occur
frequently, the search may take some time.
As shown in Figure 9-5, a message displays during the search.
Figure 9-5. Long Search Message
Search Replace Mode is Active.
Moving the Cursor to a Particular Word
Use Find to Move the
Cursor to Text
Suppose you want to change a particular statement. To bring
the cursor to the statement, you can search for a particular
keyword in the file. Finding the word brings the cursor to the
line it is on. You can then edit the statement as required.
1. Be sure the cursor is at the beginning of the file or at the
point you want to begin searching from.
2. Press the CANCEL WINDOW key and select Search
Find.
Figure 9-6 shows the window that appears.
9-10
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Developing Programs
Figure 9-6. Search:Find Window
File
Edit
Search
Check
Tools
FLOOR1 AHU MORN.WARMUP
Search:Find
Search For
CLOSE
OK
(X) Ignore Case
( ) Regular Expression Search
CANCEL
3. The text you last entered is still in the Search For text
box. To change the text, you need not erase it. With the
cursor on the leftmost character in the text box, as soon as
you type a character, the old text erases.
To keep the old text and merely alter it, use the arrow keys
to position the cursor, then press BACKSPACE or
DELETE TEXT to erase single characters.
The Cursor Lands on the
Text It Finds
4. Press the OK button to start the search.
The search window disappears and the cursor lands on the
first line that contains the text.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
9-11
Developing Programs
Finding Next Occurrence
Search and Find Next
1. To stop on each occurrence of a piece of text, you press the
CANCEL WINDOW key and select Search Find Next.
Figure 9-7 shows the Search:Find Next window that
appears.
2. Press the OK button and the cursor lands on the first
occurrence of the piece of text.
3. Press the EXECUTE key to move to the next occurrence.
4. Repeat step 3 until you’ve reached the particular
occurrence you are looking for.
Figure 9-7. Search:Find Next Window
File
Edit
Search
Check
Tools
FLOOR1 AHU MORN.WARMUP
Search:Find Next
Search For
DAMPER
(X) Ignore Case
( ) Regular Expression Search
OK
CANCEL
9-12
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Developing Programs
Summary
• You can use the Search Replace, Search Find, and
Search Find Next selections from the File menu bar to
search for a particular piece of text in a file.
• You always move the cursor to where you want the search
to begin. The search occurs from the cursor location to the
end of file.
• You can automatically replace text with the Search
Replace selection.
• With Search Replace you can automatically find text
disregarding capital letters by selecting Ignore Case.
• With Search Replace you can automatically change
only select instances of the text by selecting Prompt/
Replace.
• With Search Replace, you can press the CANCEL
WINDOW key to stop searching in the middle of the
search.
• With Search Find Next you can press the EXECUTE
key repeatedly to move to the next occurrence of that text.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
9-13
Use Search Menu to Find
Text
Developing Programs
Finding and Replacing Text
with Regular Expressions
Search for Words That
Are Similar
After you have typed your program, you may want to search
for words or phrases that contain some of the same characters.
You can then replace the entire word with a different one.
Finding Text That Contains
Some of the Same Characters
Suppose you want to go through the file and search for a series
of thermistors you have removed and replace their names with
the name of the new input point.
You can search for SPACE1TEMP, SPACE2TEMP,
SPACE3TEMP, and so on by searching for a single digit in
between SPACE and TEMP as follows:
1. Be sure the cursor is at the top of the file. The controller
searches from the top of the file to the end and does not
start over unless you move the cursor back to the top.
2. Press the CANCEL WINDOW key and select Search Find,
Search Find Next, or Search Replace.
3. Press the NEXT ATTRIBUTE key or arrow to move to
Regular Expression Search and press the space bar.
4. Press the PREVIOUS ATTRIBUTE key to return to the
Search For text box, and place a period (.) between
SPACE and TEMP, as follows:
SPACE.TEMP
The period means “any single letter, number, or symbol.”
5. Press the NEXT ATTRIBUTE key to move to the
Replace With text box and enter the new point name.
9-14
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Developing Programs
6. Press the OK button. The editor begins the searching
process.
You Press OK to Begin
the Search
The editor finds all SPACE#TEMP names with only a
single letter or digit between SPACE and TEMP. So, it
finds SPACE1TEMP through SPACE9TEMP and
SPACEATEMP through SPACEZTEMP.
7. When the cursor lands on the point name, you can press the
space bar to replace it with the replace word.
What if you want to find SPACE10TEMP through
SPACE99TEMP and SPACEAATEMP through
SPACEZZTEMP? You enter two periods instead of one,
as follows:
SPACE..TEMP
When the cursor lands on the point name, you can press the
space bar to replace it with the replace word.
To find only a letter, and not a number, you can search for
SPACETEMP with any letter in the middle. You do this
by placing the range you want the character to be within in
square brackets, as in the following:
SPACE[A-Z]TEMP
This expression finds SPACETEMP with a single letter from
A to Z in the middle.
The text with characters like periods and brackets that have
special meanings is called a “regular expression.” These
characters (*, [, ], ., $,\) have special meanings only when you
select Regular Expression Search in a Search window.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
9-15
Developing Programs
The Regular Expression
Goes after Search For
Figure 9-8 shows a regular expression in a Search window.
Figure 9-8. Regular Expression in Search Window
File
Edit
Search
Check
Tools
FLOOR1 AHU MORN.WARMUP
Search:Find
Search For
SPACE[0-9]*TEMP
(X) Ignore Case
(X) Regular Expression Search
OK
CANCEL
You can find many other combinations of characters with
regular expressions.
Finding Text with a Single
Digit That Varies
You can find any single digit except zero in the middle of
SPACETEMP with the following regular expression:
Space[1-9]Temp
Finding Text with Multiple
Characters That Vary
To find more than one letter in the middle, add the asterisk (*)
to a regular expression searching for a single character:
Space[A-Z]*Temp
The asterisk means “repeat the previous character or range of
characters indefinitely.”
9-16
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Developing Programs
To find more than one digit in the middle of SPACETEMP,
search for only the numerals with the asterisk:
Space[0-9]*Temp
This expression finds SPACE32TEMP, SPACE99TEMP,
SPACE105TEMP, and so on.
Finding Text with One of Two
Possible Characters
You could search for either a particular letter or a particular
number with a vertical bar, which means “or,” as follows:
Space[Z | 9]Temp
This expression finds SPACEZTEMP and SPACE9TEMP
only.
Finding Text with Characters
from One of Two Possible Sets
You could search for either all letters or all numbers with the
vertical bar, as follows:
Space[A-Z | 0-9]*Temp
This expression finds SPACEATEMP, SPACEAATEMP,
SPACE1TEMP, SPACE99TEMP, and so on. It does not find
SPACE2ATEMP, because it does not combine letters and
numbers—it finds one or the other.
Finding Text That Ends a Line
To find a group of characters that ends a physical line, use the
$ after them:
THEN$
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
9-17
The Asterisk Finds
Multiple Characters
Developing Programs
All Special Characters You Can
Use in Regular Expressions
Regular Expression
Characters
Table 9-2 shows the special characters in regular expressions.
Table 9-2. Regular Expression Characters
Character
Meaning
Asterisk (*)
Any number of repetitions of previous character(s).
Period (.)
Any single letter, number, or symbol.
Left [
Beginning of a range.
Right ]
End of a range.
Bar (|)
OR
Dollar ($)
Characters that end a physical line.
Backslash (\)
Cancel special meaning of next character.
Finding Special
Characters as Text
Suppose you want to find all occurrences of array entries that
contain temperatures. Since the square brackets ([]) introduce
or end a range, how do you find the actual square brackets?
You can proceed in two ways:
• You place either bracket or a slash immediately after a left
bracket.
• You place a slash immediately before the special character
to cancel its special meaning.
For example, find the left bracket by putting it first inside the
range, as follows:
Space[[0-9]Temp
9-18
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Developing Programs
The editor automatically understands that the bracket
immediately inside the brackets is a character to search for,
rather than the beginning or end of a range.
In the Search For box, the above expression would find not
only all single digits between SPACE and TEMP, but the
following as well:
Space[Temp
This is not likely to be a point name. You really want to search
for two brackets at the end of a point name with a number or
name between them.
Finding Both Brackets
You find the other bracket by putting it after the range with a
backslash in front of it:
Space.Temp[[A-Z|0-9]*\]
In the Search For box, this expression would find, for
example, the following:
Space1Temp[HOUR]
Space2Temp[3]
Space3Temp[32]
Space9Temp[125]
Finding the Period in a Point Name
If you use periods in your point names, you can find them with
regular expressions. You put a backslash (\) in front of any
special character you want to find as text, including the
period:
SpaceTemp\.[1-9]*
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
9-19
Editor Understands to
Search For Bracket
Developing Programs
This expression finds the actual period, rather than any single
character, such as, for example, the following:
SpaceTemp.1
SpaceTemp.9
SpaceTemp.81
SpaceTemp.1982
Search for Any
Character as Text
You can find the asterisk (*) or dollar sign ($) the same way.
You can also search for a backslash (\), as well as either
square bracket, by placing it as the first character inside the
brackets.
9-20
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Developing Programs
Summary
• You select Regular Expression Search in a Search
window to use special characters in a search.
• A word or phrase you use special characters in is called a
“regular expression.”
• You use a backslash in a regular expression to cancel the
special meaning of the character that immediately follows it.
• You can find any characters within a range by putting them
inside square brackets in a regular expression, as follows:
[ABCDEF] or [A-F]
• You can find a backslash, left square bracket, or right square
bracket as text by placing it in the first character position in a
range inside square brackets.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
9-21
Select Regular
Expression Search
Developing Programs
Opening a Command Window
from Inside a File
Opening Another
Command Window
Suppose you are inside a file and want to print some
information on system variables. You want to print it in the
Command window, but you do not want to exit the file.
Instead of exiting the file, proceed as follows:
1. Press the CANCEL WINDOW key to bring the cursor to
the File menu bar.
2. Select Tools Command Window. A new Command
window appears above the file Editor window.
Figure 9-9 shows how the windows appear.
Figure 9-9. A New Command Window
File
Edit
Search
Check
Tools
Command Window – BLDG1 FLOOR1
FLOOR1 AHU MORN.WARMUP
Now you can enter any commands here that you would enter
in the original Command window.
9-22
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Developing Programs
Moving from Window to Window
To move the cursor from the file to the Command window
to the File menu bar, press the CANCEL WINDOW key and
then press it again.
Removing the Command Window
To close (remove) the Command window, press the
CANCEL WINDOW key. The cursor moves to the File
menu bar. Press Tools Command Window again. The
Command window disappears.
Summary
• You select Tools Command Window to open a
Command window from inside a file.
• The Command window appears above the Editor
window.
• You press the CANCEL WINDOW key to move from
window to window to the File menu bar.
• You select Tools Command Window again to remove
the Command window.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
9-23
Press CANCEL WINDOW
to Leave Window
Developing Programs
Looking at, Creating, and
Altering Points from Inside a
Program File
Remembering Points
Suppose you are inside a program file, entering a program,
and can’t remember the name of a point. You do not have to
exit the file. You can go back to the File menu bar (press the
CANCEL WINDOW key) and select Tools Point
Summary to see the points available.
Figure 9-10 shows the Point Summary selection in the
Tools menu.
Figure 9-10. Selecting Tools Point Summary
File
Edit
Search
Check
Tools
Point Summary
File Summary
Program Summary
System Variables
Edit a Point
Edit a System Variable
Command Window
Messages
As shown in Figure 9-11, the Point Summary window
appears.
9-24
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Developing Programs
Figure 9-11. Tools Point Summary Window
View
Edit
Connect
Logout
Point Summary – Floor1 AHU
Name
Value Units
SupplyFan OFF
ReturnFan OFF
Dampers
100% OutsideAir
PrehtValve 100% Open
Type
I C
Output
Output
Output
Output
0, 1 Enabled
0, 2 Enabled
0,3 Enabled
0,4
State
Enabled
Press the up and down arrows to move the cursor from point
to point in the list.
Press the PAGE UP key. Notice the cursor moves up to the
previous screen or to the top of the same screen of points.
Press the PAGE DOWN key. Notice the cursor moves down
to previous screen or to the bottom of the same screen of
points.
While a particular point is highlighted, you can press the
EXECUTE key. The Open a Point window appears. You
then proceed as described in Chapter 4.
You can also create a new point, alter an old one, or look at a
point’s attributes by selecting Tools Edit a Point. The
Open a Point window appears and you then proceed as
described in Chapter 4.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
9-25
Moving through the List
Developing Programs
Looking at Messages from
Inside a Program File
Seeing Messages
Suppose you are inside a program file, entering a program,
and you want to see the messages pending on the system. You
can go back to the File menu bar (press the CANCEL
WINDOW key) and select Tools Messages to see the
messages pending.
Figure 9-12 shows the Messages selection in the Tools
menu.
Figure 9-12. Selecting Tools Messages
File
Edit
Search
Check
Tools
Point Summary
File Summary
Program Summary
System Variable Summary
Edit a Point
Edit a System Variable
Command Window
Messages
Once you have selected it, the Messages window appears.
Figure 9-13 shows the Messages window.
9-26
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Developing Programs
Figure 9-13. Messages Window
View
Edit
Connect
Logout
Messages – BLDG1 FLOOR1
CLEAR
EXIT
Erase Messages with
CLEAR Button
To erase the messages, press the CLEAR button.
To leave the window without erasing the messages, press the
EXIT button.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
9-27
Developing Programs
Looking at List of Files from
Inside a Program File
Seeing List of Files
Suppose you are inside a program file, entering a program,
and you want to use another program but cannot recall its
name. You can go back to the File menu bar (press the
CANCEL WINDOW key) and select Tools File Summary
to see the files on this controller or select Tools Program
Summary to see only the program files on this controller.
Figure 9-14 shows the File Summary selection in the Tools
menu.
Figure 9-14. Selecting Tools File Summary
File
Edit
Search
Check
Tools
Point Summary
File Summary
Program Summary
System Variable Summary
Edit a Point
Edit a System Variable
Command Window
Messages
Once you have selected it, the File Summary window
appears.
Figure 9-15 shows the File Summary window.
9-28
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Developing Programs
Figure 9-15. Tools File Summary Window
View
Edit
Connect
Logout
File Summary – BLDG1 FLOOR1
Name
Description
Type
State
MORN.WARMUP Warms up heating. Program Enabled
STOP.START
Starts equipment. Function Enabled
The file summary lists general information on all the files in
the controller, no matter what their type. It takes the
information from the File window you defined it in.
Once you are inside the summary list, if you want to open a
file and make changes to it, you can move down the list with
the arrow keys or the PAGE DOWN key. When the file you
want to change is highlighted, press the EXECUTE key. The
Open a File window appears.
Proceed as described in Chapter 5.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
9-29
View File Summary
Window
Developing Programs
Copying Programs to Other
Controllers
GOAL: To close the damper and turn off the reheat coil in the
first VAV box on the first floor. Close the dampers and turn
off the coils on all other VAV boxes on the first floor, then on
all other floors.
Each damper and coil is named:
DAMPER and REHEAT
Connect Menu Opens
Other Controllers
You would start by using the Connect menu from the Main
menu bar to connect to the ROOM101 Infinet controller on
the BLDG1 Infinity CX 9000. Then:
1. Close the damper.
2. Turn off the reheat coil.
Figure 9-16 shows the flowchart of the program.
Figure 9-16. A Flowchart of VAV1.STOP
Start
Close the
Damper
Turn Off the
Reheat Coil
End
Figure 9-17 shows the program, which is a FallThru
program.
9-30
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Developing Programs
Figure 9-17. VAV1.STOP Program
File
Edit
Search
Check
Tools
ROOM101 VAV1.STOP
CLOSE THE Damper, THE Reheat
This simple program controls only one VAV box. To control
all VAV boxes on the first floor, proceed as follows:
1. Make sure the points on each VAV box have the same
names.
Then connect to another Infinet controller and copy the
program to it as follows:
2. Press the CANCEL WINDOW key to return the cursor to
the File menu bar.
3. Select File Save As.
Select FILE SAVE AS to
Copy File
As shown in Figure 9-18, the Open a File window
appears.
The name of the Infinity CX 9000 controller appears in the
Controller text box.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
9-31
Developing Programs
Figure 9-18. Open a File Window
File
Edit
Search
Check
Tools
Open a File
Controller
BLDG1
Infinet Ctlr
Name
4. Fill in the name of the Infinet controller in the Infinet Ctlr
text box.
5. Fill in the name for the program in the Name text box.
You might call the second VAV program VAV2.STOP,
the third VAV3.STOP, and so on. Or you might name all
of them VAV.STOP, since you can have programs with
the same name on different controllers.
6. Press the EXECUTE key to complete the copying process.
7. Repeat steps 2 through 6 for each VAV box on each floor.
To copy from one Infinity CX 9000 to another, you would
proceed the same way, only you would change the
controller name in the Controller text box and leave the
Infinet Ctlr text box empty.
9-32
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Developing Programs
Summary
• The controller knows the Infinity CX 9000 you are on
when you open the file and displays the name in the
Controller text box.
• You can take the same action in several rooms on several
floors by copying the program from one TCX 850 or
similar Infinet controller to many others under different
names.
• To copy a program to another Infinet controller:
• Select the File Save As command from the File menu
bar.
• Fill in the name of the Infinet controller.
• Fill in a new name for the program.
• Be sure each copy of the program has a unique name
for that controller.
• Press the EXECUTE key to complete the process.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
9-33
Give Program a Unique
Name for That Controller
Developing Programs
Using Points on Another
Controller
Print the FORMAT
Attribute of a Point
You can use paths to points to print or perform other actions
with a point from the command line as well as inside an
Infinity CX 9000 program. The path gives you access to a
point that may be on another controller. For instance, you can
print the temperature in room 408 of building 1 from any
controller on the network:
PRINT BLDG1 ROOM408 SpaceTemp
You can also print the attributes of the point. To find out how
many digits of accuracy the input gives, print the format of the
SPACE point:
PRINT BLDG1 ROOM408 Space FORMAT
Or you can print the units to see if they are in degrees Celsius
or Fahrenheit:
PRINT BLDG1 ROOM408 Space UNITS
If you are not sure what the conversion is for a point, you
might want to print it to the screen:
PRINT BLDG1 ROOM400 AirFlow CONVERSION
Besides printing points from another controller, you can
check their values:
IF BLDG1 ROOM402 Reheat = ON THEN...
IF CENTRALPLANT CW1ISOValve IS 80% THEN...
IF CENTRALPLANT CHWP1Valve IS OPEN THEN...
IF CENTRALPLANT TOWER Fan1ST IS OFF...
9-34
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Developing Programs
You can set values of points on another controller, although
we do not recommend it:
SET BLDG1 ROOM403 Damper TO –ON
OPEN BLDG1 ROOM209 Damper
For the most reliable and efficient programs, we recommend
you set all points from their own controllers.
Using the path naming structure, you can do the following to
any point on the network from any controller on the network:
• Print the point value.
• Check the point value.
• Set the point value.
• Print other point attributes.
• Check other point attributes.
• Set some attributes.
Summary
• You can use full path names to access points on the Infinet
controllers on your network.
• To access points on a Infinet controller from an its own
Infinity CX 9000, you need only give the name of the
Infinet controller followed by the name of the point.
• To access points on a Infinet controller from another
Infinity CX 9000, you must give the full path to that Infinet
controller—the Infinity CX 9000 name followed by the
Infinet controller name.
• Using full path names, you can print or check any point
attribute from the command line or from inside a program.
• For the most reliable and efficient programs, set all points
from their own controllers.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
9-35
Follow Path Name to Any
Point on Network
Developing Programs
Preventing Particular Point
Values from Displaying on the
Keypad LCD
Display Only Particular
Point Values on the LCD
GOAL: To prevent the FAN1 point from displaying on the
CENTRALPLANT TOWER SCX 900 keypad’s LCD.
You can display point and system variable values on the LCD
of the keypad found on some Infinet controllers (SCX 900 and
LCX 810 controllers). Details on how to display them are in
the Andover Controls Infinity CX Operator’s Guide.
Unless you stop particular points (or system variables) from
displaying, any operator with the password can change the
value of that point. To prevent a particular point from displaying in the LCD, you (with Admin access level) set its
LCDSTATE to DISABLED.
Figure 9-19 shows what you enter in the Command window.
Figure 9-19. Command to Prevent the FAN1 Point
from Displaying on the TOWER LCD
View
Edit
Connect
Logout
Command Window - BLDG1
R>SET CENTRALPLANT TOWER FAN1 LCDSTATE = DISABLED
R>
This command sets the LCDSTATE attribute on the FAN1
point on the FLOOR1 ROOM1 SCX 900 to DISABLED.
9-36
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Developing Programs
The result is that the point is not disabled in any other way,
only from displaying on the keypad LCD.
Point Is Disabled from
Displaying on LCD
As shown in Figure 9-20, you can do the same for system
variables, such as HOUR or DATE.
Figure 9-20. Commands to Prevent HOUR and
DATE from Displaying on the TOWER LCD
View
Edit
Connect
Logout
Command Window - BLDG1
R>SET CENTRALPLANT TOWER HOUR LCDSTATE = DISABLED
R>SET CENTRALPLANT TOWER DATE LCDSTATE = DISABLED
R>
Later, if you would like, you can change the LCDSTATE of
each point to ENABLED.
Summary
• You can prevent a particular point value or system variable
from displaying on the LCD of any SCX 900 and LCX 810
controller.
• You set the LCDSTATE attribute of any point to
DISABLED to prevent that point from displaying on the
LCD.
• You set the LCDSTATE attribute of any point to
ENABLED to allow that point to display on the LCD.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
9-37
Developing Programs
Finding Errors Resulting from
Deleting an Item
Deleted Item May Still Be
in File
Sometimes when you open a file you receive a message in the
status bar. This type of message is called an “opening file
error message.”
The message may say the following:
Controller cannot find an item
The controller cannot find a point or other item that is in a
statement in the file you have opened. Why? Usually because
it has been deleted.
For instance, if your file is a program that has a statement to
turn off a fan and the point for that fan has been deleted, the
controller cannot find that point and gives the above message.
So now what do you do? You look in the file at the line the
cursor has landed on. The deleted point has been replaced
with the following:
?_1
So the program line now reads
TURN OFF THE ?_1
instead of
TURN OFF THE FAN
Each time the name of the same deleted point occurs in the
file, the controller replaces it with the same designation. Also,
if you have deleted two fans, one is ?_1 and the other ?_2.
These replacements are used throughout the file.
If the item is a single item not in a path, the replacement for it
is always ?_n where n is a number.
9-38
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Developing Programs
If the item is in a path name, different items in the path are
replaced as follows:
• An Infinity CX becomes ?n
• An Infinet controller becomes ?n_n
• A point becomes ?_n
Here are some examples of paths you might see:
IF ?2 ?2_1 ?_4 > 82 THEN OPEN DAMPER
?2 is an Infinity CX, ?2_1 is an Infinet controller, and ?_n is a
point.
IF FLOOR1 ?2_2 ?_1 > 82 THEN OPEN DAMPER
If an Infinet controller is replaced with ?n_n, then the point
that follows it may not have been deleted; often the controller
cannot find the point because it cannot find its controller.
Correcting the Error
If the item is a point, to correct this error find the item and be
sure the point is connected to a sensor or piece of hardware.
Then rename the point. You can open up the Tools menu
while inside the file and name the point from there.
Since ?_1 always refers to the same point, you can use the
Search menu to find all occurrences of ?_1 and replace them
with the new name. Replace any complete path names used in
the file first; then replace any single item names. For example,
when you replace FLOOR1 ROOM2 ?_2, search for the entire
path, even though only one name is in question.
If an Infinity CX 9000 or Infinet controller comes up with a ?,
check to see if the controller is still on the network. If it is not
on the network, find out why it is down using the Andover
Controls Infinet Controller Troubleshooting Guide or EnergyNet and Infinet Troubleshooting Guide.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
9-39
Items in Path Names Are
Replaced by Symbols
Developing Programs
Enabling and Disabling
Programs
GOAL: To take the VAV.STOP program out of software
control, so that you can alter it. Later, after altering it, to let
the controller control the program once more.
To stop the controller from running VAV.STOP you use a
keyword called DISABLE in the command line, like this:
DISABLE VAV.STOP
Disabling Is Not the
Same as Stopping
Disabling a program is not the same as stopping a program
with STOP. If you stop a program with STOP, someone can
still start it again with RUN. If you disable a program, then try
to run it, the controller does not take action. DISABLE
protects a program from being run.
You can also disable more than one program at a time:
DISABLE VAV.STOP, MORN.WARMUP, PRECOOL
After you alter the program, the controller cannot run
VAV.STOP again until you give control back to the system.
To do so, you use a keyword called ENABLE:
ENABLE VAV.STOP
You can also enable more than one program at a time:
ENABLE VAV.STOP, MORN.WARMUP, PRECOOL
Remember, enabling and disabling a program is different
from running and stopping one. A program must be enabled
before you can run it.
You can enable or disable a program from the command line
or from inside a program.
9-40
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Developing Programs
Summary
Disabling and Enabling
Programs
• Disabling a program is not the same as stopping it.
• Enabling a program is not the same as running it.
• A disabled program cannot be run by the controller.
• An enabled program can be run by the controller.
• You can enable or disable a program from both the
command line and inside a program.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
9-41
Developing Programs
Understanding the Scanning
Process
The controller is constantly scanning. In general, the
interpreter inside the controller gathers all data it needs for the
next scan through the programs, reads and executes one line
from each enabled program starting with the first program in
the firing order list and continuing to the last, then converts
and sets outputs. This type of single run through the list of
programs is called a “scan.”
The controller then returns to the beginning of the firing order
list and scans the next appropriate line of each program. The
scans continue.
What is the “next appropriate line”? The line determined by
the scan process sequence.
Scan Process Occurs in
a Particular Order
A complete list of scan actions in the order the controller
carries them out is as follows:
• Updating system variables
• Updating schedules, setting occupied and unoccupied
events
• Gathering and converting input points
• Processing program statements and commands
• Converting output points and setting hardware
• Evaluating alarms
• Updating the status bar
Figure 9-21 illustrates the scanning process.
9-42
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Developing Programs
Figure 9-21. Illustration of Scanning Process
Start Here and Proceed Clockwise
Update
System
Variables
Update
Schedules
Process
Alarms
Update
Output
Points
Update
Input
Points
Run
Programs
& Commands
The following take effect immediately at any time in the scan:
• Points go to and from other controllers
• Triggers set program STATUS to active
• Value of numeric, string, or datetime points change
• Attribute values update
• Point logs update
• Command lines execute (between programs)
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
9-43
Developing Programs
A complete list of scan actions in the order the controller
carries them out is as follows:
1. Updating System Variables
Controller Updates
Enabled Variables
The controller updates the values of all ENABLED system
variables (DATE, SECOND, MINUTE, HOUR,
WEEKDAY, and so on) at the start of each scan. Setting the
DATE first ensures that all programs work from the same
time base.
System variables keep the value they begin with throughout
the scan. So, if the scan starts on the 12th second of the
minute, SECOND equals 12 throughout the scan.
(If the scan itself is .25 seconds long, then the some actions
are taking place at between 12 and 12.25 seconds. This is a
factor to keep in mind when seconds really matter.)
If a program is in the trigger list for a system variable that has
changed, and the program’s STATE is ENABLED, its
STATUS is set to ACTIVE so it runs during the upcoming
scan.
2. Updating Schedules
Before proceeding to other points, Infinity processes
schedules by updating each occupied and unoccupied point
and variable so that later, when programs run, the actions are
based on the latest schedules. You create and store the
schedules on an Infinity SX workstation, but they take effect
only on a controller.
3. Gathering and Converting Input Points
Controller Gathers
Input Electrical Values
The scan gathers electrical values (represented by the
ELECVALUE attribute) of all ENABLED inputs from remote and local inputs, in numeric order starting with input 1.
The inputs for the electrical values are in the electrical units
specified for that point.
9-44
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Developing Programs
The controller converts each input that has changed since the
last scan into engineering units. Conversions methods may be
different, but all occur at this moment in the scan, whether an
auto-conversion, customized conversion, system conversion
(such as ACC Degrees F or C), or null conversion (where
VALUE equals ELECVALUE).
Input points, like system variables, retain the value they have
at the beginning of the scan throughout the scan. All action
taken during the scan is based on the initial input values.
If a program is in the trigger list for an input point that has
changed, and the program’s STATE is ENABLED, its STATUS is set to ACTIVE so it runs during the upcoming scan.
4. Processing Program Statements
During each scan, the controller executes the current line from
each program that has the following:
Controller Executes
Current Program Lines
• STATE is ENABLED
• STATUS is ACTIVE
• Current line is not zero
The controller executes one line from each program in the
order the firing order list specifies.
The controller has a safety mechanism so no single program
can monopolize the scan. The mechanism is a statement
counter that disables a program and sets its ERROR attribute
to “Statement count exceeded!” if the scanner tries to execute
more than 5000 statements in a single line during a single
scan.
Processing Command Lines
The controller treats command lines entered in the
Command windows of the various terminals and computers
like one-line programs. The scanner checks for command
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
9-45
Controller Checks for
Command Lines
Developing Programs
lines at the beginning of each scan and between each program
during the scan and responds immediately. So each command
line is processed quickly.
5. Converting Output Points and Setting Hardware
Controller Sets Outputs
The scan sets output values as instructed in programs or
command lines during the scanning process. At the end of the
scan, the controller converts the value of each output that
changed in the previous scan from engineering units to
electrical units.
Conversions methods may be different, but all occur at this
moment in the scan, whether an auto-conversion, customized
conversion, or null conversion (where ELECVALUE equals
VALUE).
After converting all output point values, the ELECVALUEs
are sent to the local or remote outputs.
If the first program sets the output of HEATER to ON and the
last program sets it to OFF, how does the controller resolve
this kind of conflict?
The HEATER is set to OFF, because output points change at
the end of the scan—so the setting of the last program is the
one that takes affect.
You can use the fact that the output hardware is not updated
until the end of the scan to carry out certain advanced control
strategies, but we do not encourage you to program this way.
You should handle both turning on and turning off a piece of
equipment in one program, so that no conflicts arise based on
the firing order list.
We do, however, recognize that you may want a master
emergency program to override output settings of all other
programs in certain circumstances. That is why you are
allowed to alter the firing order.
9-46
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Developing Programs
6. Evaluating Alarms
Controller Evaluates
Alarms
Finally, the last action of the scan is evaluating alarms.
All points can have up to eight conditions that the controller
sets an alarm under. You set these conditions on an Infinity SX
8000 workstation. Whenever the point’s value changes during
the scan, the controller evaluates each condition associated
with an alarm at the end of the scan and updates the alarm’s
ALARMSTATUS (or calculates its delay time). The
alarm is activated immediately unless it has a delay.
If the controller has set the ALARMDELAY, and the
condition to set the alarm is TRUE, the controller adds the
ALARMDELAY time to the current system time to calculate
the alarm delay time. The scan places the alarm in a list of
alarms to be evaluated again based on their alarm delay time
(ALARMTIME).
At the end of each scan, the scanner checks the list of delayed
alarms. The scanner reevaluates the alarm conditions of the
alarms that have not yet reached their delay times, and if they
are still TRUE, sets the alarms.
After the scan processes the alarms, it updates the Status bar.
Numeric, String, and DateTime Points
Numeric, string, and datetime points change values
immediately within a program. So if the first program sets the
setpoint to 72, and later in the same scan another program
tests the setpoint, the later program sees the new value of 72.
Updating Point Logs
As it alters point values, the scan evaluates all points that are
automatic logs and updates them if necessary (based on the
log interval).
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
9-47
Controller Sets Numeric
Points Immediately
Developing Programs
Triggering Programs from Points
You Can Reduce Scan
Length
Scan length varies depending on the amount of work done.
You can reduce scan time by setting up all programs like this:
• Set up all points a program uses to make decisions as
triggers for that program.
• Have the program make the decision and set some points.
• Have the program end (by being FallThru or having a
STOP statement).
Such programs run only when necessary, reducing scan time.
Exported Points and the Scan
Point Values Can Be
Exported During Scan
Point values can be exported at any time during the scan.
So if PROGRAM1 turns the fan on early in the scan and
PROGRAM99 turns it off later, although the fan would never
physically turn on, the VALUE of ON could be exported to
another controller between PROGRAM1 and PROGRAM99.
This is another reason you should handle both turning on and
turning off a piece of equipment in one program.
9-48
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Developing Programs
Summary
• To reduce scan time, write FallThru programs run by
triggers.
Reduce Scan Time with
FallThru Programs
• Be careful to handle turning on and turning off the same
piece of equipment in one program.
During the scan, the controller takes the following actions in
the order listed:
• Updates system variables.
• Processes schedules.
• Gathers electrical values of inputs and converts them.
• Executes current lines from each program. Treats
command lines as one line programs and checks for them
between each current line.
• Converts outputs and sets hardware.
• Evaluates alarms and updates the status bar.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
9-49
Developing Programs
Altering the Firing Order
New Program Is Last on
Firing Order List
When you enter a new program, it is automatically placed at
the top of the firing order list.
To see the list, select File Firing Order from the File menu
bar.
As shown in Figure 9-22, the firing order list appears.
Figure 9-22. Firing Order List Window
File
Edit
Search
Check
FLOOR1 OCCUPY
Firing Order – FLOOR1 OCCUPY
OCCUPY
ACTIVATEFAN
MORN.WARMUP
Tools
Insert Program
NEXT
PREVIOUS
QUIT
Suppose the program you just entered is OCCUPY, shown at
the top of the firing order list. To move it to after
ACTIVATEFAN and before MORN.WARMUP, arrow
down to MORN.WARMUP. Press the NEXT ATTRIBUTE
key to move to the PREVIOUS button. Once you press the
button, OCCUPY then appears before MORN.WARMUP.
To move OCCUPY to after MORN.WARMUP, arrow to
MORN.WARMUP and press the NEXT button. OCCUPY
then appears after MORN.WARMUP.
9-50
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Developing Programs
When you have positioned the program, press QUIT to exit
the window and return to the program Editor window.
You can look at the firing order list from inside a function or
data file, but can alter it only from a program file.
Summary
• The controller always places a new program at the top of
the firing order list.
• To move the new program to before another program in
the list, highlight the other program and press the
PREVIOUS button.
• To move the new program to after another program in the
list, highlight the other program and press the NEXT
button.
• To exit the window, press the QUIT button.
• You can open the firing order list from a function or data
file.
• You can change the firing order list only from a program
file.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
9-51
Press QUIT to Exit the
Firing Order Window
Developing Programs
Helpful Hints for Program Set
Controlling Firing Order
What factors should influence the order you create in the firing
order list?
Saves in Reverse Firing
Order, Loads in Order
When you later save all your points and programs to a tape or
disk (details in Chapter 18), the controller saves the programs
in the order they are listed in the list, starting with the last one
listed and proceeding back to the first.
And when you reload the programs from the tape or disk, the
controller loads the programs starting with the first one listed
and proceeding to the last.
Programs to Control
Results of Loading
When you form your list, consider the following:
• Programs that call other programs should load after them,
so you should list them later in the list.
• Since AUTOSTART programs start immediately after
loading, they may start before the programs that work
interdependently with them have been loaded. To be sure
this does not happen, create a program to stop all
programs. Make it AUTOSTART and put it at the top of
the firing order list. Now, when you reload them after a
power outage, all AUTOSTART programs remain stopped
until you start them.
• Add a program at the bottom of the list that starts the same
AUTOSTART programs you stopped at the top of the list.
9-52
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Developing Programs
Figure 9-23 shows a sample HALTPROGRAMS program.
Figure 9-23. Sample Program to Stop Programs
File
Edit
Search
Check
Tools
FLOOR1 BLDG1 HaltPrograms
STOP OutsideAirTest, SpaceTempTest, VentilationTest
Figure 9-24 shows a sample STARTPROGRAMS program.
Figure 9-24. Sample Program to Start Programs
File
Edit
Search
Check
Tools
FLOOR1 BLDG1 StartPrograms
START OutsideAirTest, SpaceTempTest, VentilationTest
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
9-53
Developing Programs
Controlling Exported Point Updates
Suppose OUTSIDEAIR travels out from (exports from) an
Infinity CX 9000 to several TCX 850s for VAV box control.
(Remember that the OUTSIDEAIR point updates only when
the temperature changes by more than the threshold amount.)
What happens if one of the TCX 850s loses power and misses
some value changes while power is down? How does it get
values of points that have not updated since the controller
powered up?
You Can Force Crucial
Points to Update
While the TCX 850 is down, OUTSIDEAIR updates to all other
boxes, but not to it. To ensure that crucial points (such as
OUTSIDEAIR is to an air handling system) update to all
controllers periodically, you can set an attribute called
REFRESH, as follows:
SET OUTSIDEAIR REFRESH = TRUE
When REFRESH is TRUE for that point, the point updates as
if its value had changed. You could update crucial points every
5 minutes using TM:
IF TM > 5 THEN SET OUTSIDEAIR REFRESH = TRUE
Updating Points Despite
Localized Power Failure
Occasionally, an Infinet controller does not receive a point
update sent down from an Infinity CX controller because of
either a localized power failure or the controller being offline
for some reason. For most points, the change is automatically
sent on the next scan.
However if this occurs for a setpoint or flag that does not
change often, the controller can miss the change. To avoid this
problem, set the REFRESH attribute for all setpoints or flags
to ON every few minutes.
9-54
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Developing Programs
The following is an example of a program that ensures the hot
water setpoint receives all updates:
Checking:
IF TM > 5 THEN GOTO Updating
Updating:
SET HWSetpoint REFRESH to ON
GOTO Checking
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
9-55
Sample Program to
Update HWSetpoint
Developing Programs
9-56
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Chapter 10
Creating and Using Numeric,
String, and DateTime Points
This chapter introduces more types of points to the
programming process:
• Using Numeric Points
• Using String Points
• Creating Date and Time Stamps
• Switching Lead/Lag with Positions of Minimum and
Maximum in Log
• Forming a Log You Control
• Printing and Setting Point Attributes
www.PDF-Zoo.com
Advanced Points
10-2
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Advanced Points
Table 10-1 shows the input and output points used in this
chapter.
Table 10-1. Input and Output Points
Point
Controller
Model
Point Type
OutsideAir
CENTRALPLANT
CX 9000 IOU
Thermistor
CWSupply
CENTRALPLANT
CX 9000 IOU
Thermistor
CWBypassVlve
CENTRALPLANT
CX 9000 IOU
Form C Output
Fan1ST
CENTRALPLANT TOWER
SCX 900
Digital Input
Fan2ST
CENTRALPLANT TOWER
SCX 900
Digital Input
Fan1
CENTRALPLANT TOWER
SCX 900
Form C Output
Fan2
CENTRALPLANT TOWER
SCX 900
Form C Output
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
10-3
Advanced Points
Using Numeric Points
GOAL: To set the setpoint of the chilled water temperature
based on the outside air temperature. The range for the chilled
water temperature is 40 to 50 degrees.
The single action steps to set the chilled water temperature
are:
1. Check the outside air temperature.
2. Set the chilled water temperature based on the
OUTSIDEAIR.
3. Do not allow the chilled water temperature to be higher
than 50 degrees or lower than 40 degrees.
The points you need are OUTSIDEAIR and CHW.SETPT.
The OUTSIDEAIR is an input point. The CHW.TEMP is an
input point with a setpoint set by CHW.SETPT.
If CHW.SETPT is not an input or an output, what kind of
point is it?
Numeric Points Contain
Numeric Values
It is a numeric point. It contains a numeric value stored in the
controller for use by all programs, but does not actually
interact with the environment in any way. You can also make
a numeric point a log or array.
To set the CHW.SETPT, you must first create it as a numeric
point. You then proceed with the program.
10-4
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Advanced Points
Figure 10-1 shows the flowchart of the program.
Flowchart Program
Using Numeric Point
Figure 10-1. Flowchart of CH.WATER
Keep
Checking
Check the Outside Air Temp
Is
120 – OAT < 40
?
YES
NO
Is
120 – OAT > 50
?
YES
Set the Chilled
Water Temp
to 40 degrees
Set the
NO Chilled
Water
Temp
based
on OAT
Set the Chilled
Water Temp
to 50 degrees
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
10-5
Advanced Points
Figure 10-2 shows the actual program.
Figure 10-2. CH.WATER Program—Looping
File
Edit
Search
Check
Tools
CENTRALPLANT CH.WATER
IF 120 – OutsideAir IS LESS THAN 40 THEN SET CHW.SETPT TO 40
IF 120 – OutsideAir IS GREATER THAN 50 THEN SET CHW.SETPT TO 50
IF 120 – OutsideAir IS 40 THRU 50 THEN CHW.SETPT = 120 – OutsideAir
You can also employ MINIMUM and MAXIMUM to
write this program, just as you did with WATERTEMP in
Chapter 8.
10-6
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Advanced Points
Summary
• A numeric point is a point that does not interact with the
environment, but has a numeric value.
• A numeric point is stored in the controller for use by all
programs.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
10-7
Numeric Points Stored
in Controller
Advanced Points
Using String Points
GOAL: To control the cooling tower fans based on the
temperature of condenser water. To print a message when a
fan fails.
String Points Often
Contain Messages
Since you want the message to be available whenever you
need it for all fans, it is a good idea to store a message in a
string point.
A string point is a point that stores characters. You can name
such a point FAILMESSAGE. You then give it a value in one
of two ways:
• Enter the value in the Details window.
• Enter the value using the SET keyword in the Command
window.
Setting String in Details Window
1. Select Edit Points from the Main menu bar.
2. Press the SHOW LIST key and select the
FAILMESSAGE point or type the name in the Name text
box to create a new point.
3. Select String for TYPE, and set the STATE to either
Enabled or Disabled.
4. Move (press the NEXT ATTRIBUTE key) to the text box
after the equal sign (to the right of the name).
5. Type the message in the text box.
Figure 10-3 shows the message in the window.
10-8
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Advanced Points
Figure 10-3. Setting a String Point Message
View
Edit
Connect
Logout
Point – BLDG1 FAILMESSAGE
Name FAILMESSAGE = The fan has failed.
Type
( ) Input
( ) Output
( ) Numeric
String Size 45
( ) Datetime
(X) String
State
( ) Disabled
(X) Enabled
SAVE
SAVE AS
CANCEL
DETAILS
Setting String in Command Window
To set the string in the Command window, you enter the
point value in quotation marks, like this:
FAILMESSAGE = "The fan has failed."
But how, then, does the person receiving the message know
which fan has failed?
You should print the point name in the message. Since that
name changes from point to point, you enter a format to
receive any point name, as follows:
FAILMESSAGE="|@@@@@@@@@@@@@@@@
has failed."
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
10-9
Enter Point Value in
Quotation Marks
Advanced Points
@ Signs Create Format
for String Point
The “|@@@@@@@@@@@@@@@@” part of the
message is a format for the name of the point. Each at sign
(@) stands for a character in the point name. The point name
can be up to 16 characters long, so there are 16 @ signs.
A program prints the message as follows:
PRINT FAILMESSAGE, Fan1 NAME
The word NAME is the NAME attribute of FAN1. You can
give the attribute after the point name and the controller
understands you want that attribute of the point rather than the
value. (If you just gave FAN1 without NAME, you’d get
FAN1’s value. More about using point attributes is presented
later in this chapter.) The name of the point fills the @ signs,
leaving this on the screen:
Fan1
has failed.
Setting Fans Based on Condenser Water
Temperature
The single-action steps to control the tower fans are as
follows:
1. Check the temperature of the condenser water.
2. If the temperature is less than 75, set the condenser water
bypass valve to 50%.
3. If the temperature is greater than 77, close the condenser
water bypass valve.
4. If the temperature is less than 79, turn off the fans and stop
LEAD.LAG.FAN, a program that runs while the fans are
on and switches from the lead fan to the lag.
5. If the temperature is greater than 82, start
LEAD.LAG.FAN, a program that controls the fans. (See
LEAD.LAG.FAN later in this chapter.)
10-10
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Advanced Points
Figure 10-4 shows a diagram of the chiller system so you can
see why the bypass valve is opened at certain times and closed
at others.
Diagram of Chiller and
Fan Setup
Figure 10-4. Chiller System
Fan1
Fan2
Normally
Open
Normally
Closed
CWSupply
Chiller
CWPump
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
CWBypassVlve
To open the
bypass valve
means to divert
condenser
water from the
tower fans.
To close the
valve means to
divert water to
the fans.
10-11
Advanced Points
Flowchart of Condenser
Water Program
Figure 10-5 shows the flowchart of the CW.CONTROL
program to control the temperature of the condenser water.
The program is looping, so it continuously tests the
temperature of the condenser water.
Figure 10-5. Flowchart of CW.CONTROL
Start
Is the
Water Temp
<75?
NO
YES
Set Bypass
Valve to 50%
Is the
Water Temp
>77?
NO
YES
Close the
Bypass Valve
Is the
Water Temp
<79?
NO
YES
Turn off
Fan1 and Fan2
Is the
Water Temp
>82?
NO
YES
Start
Lead.Lag.Fan
Figure 10-6 shows the program. The program is written on the
TOWER Infinet controller, so the program refers to the
10-12
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Advanced Points
CWSUPPLY point on the CENTRALPLANT’s IOU using its
full path.
Figure 10-6. CW.CONTROL Program—Looping
File
Edit
Search
Check
Tools
CENTRALPLANT TOWER CW.CONTROL
IF CentralPlant CWSupply < 75 THEN MOVE CWBypassVlve TO 50%
IF CentralPlant CWSupply > 77 THEN CLOSE THE CWBypassVlve
IF CentralPlant CWSupply > 79 THEN
TURN OFF Fan1 AND Fan2
STOP LEAD.LAG.FAN
ENDIF
IF CentralPlant CWSupply > 82 THEN START LEAD.LAG.FAN
Checking the Fan Status
The single-action steps to print the string point to the screen
when a tower fan fails are as follows:
1. After 15 seconds have elapsed, check to be sure the fan
status is equal to the output setting.
2. If the fan status is not equal to the output setting, print the
FAILMESSAGE.
Figure 10-7 shows the flowchart for the tower fan status checking program. The program is FallThru but loops manually, so
that it can check elapsed time. You make a program loop manually by sending it to the line it is on with GOTO.
By looping manually, the program stays on the same line for
more than one scan, somewhat like a Looping program.
However, as a FallThru program, it continues to carry out the
actions in order and carry out each action only once.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
10-13
Checking the Fan Status
Advanced Points
Flowchart of Tower Fan
Check Program
Since CW.CONTROL can stop the fans, and
LEAD.LAG.FAN can stop the fans, set FAN1, FAN2,
FAN1ST, and FAN2ST to all trigger the TOWER.FAN.CK
program. Once the program is triggered, it then checks the fan
status against the actual setting of the fan to determine that the
equipment is functioning.
Figure 10-7. Flowchart of TOWER.FAN.CK
Wait 15 sec
NO
Is the
Fanstatus Not
= Output
?
YES
Print the
Message
STOP
Since the setting of a fan or its status could also be changed
by a malfunction in the equipment, rather than by a program,
you would be better off setting the triggers than waiting for
either LEAD.LAG.FAN or CW.CONTROL to run the
checking program. Then, no matter which program or
circumstance starts or stops the fans, the controller still checks
to be sure they are working.
Notice that although these programs work independently,
they also work together. Good programming technique
dictates that you check the status of equipment in a program
separate from the one that runs the equipment.
Figure 10-8 shows the TOWER.FAN.CK program. The
program is FallThru and contains a GOTO statement in the
WAIT line to wait for 15 seconds before going to the
10-14
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Advanced Points
FANTEST line. The STOP statements keep the program from
running indefinitely. Once the program has checked the fan,
it stops.
Figure 10-8. TOWER.FAN.CK Program—FallThru
File
Edit
Search
Check
Tools
CENTRALPLANT TOWER TOWER.FAN.CK
’Triggered by Fan1, Fan2, Fan1ST, or Fan2ST
LINE WAIT
IF TS > 15 THEN GOTO FANTEST ELSE GOTO WAIT
LINE FANTEST
IF Fan1ST IS NOT Fan1 THEN
PRINT FAILMESSAGE,Fan1 NAME
STOP TOWER.FAN.CK
ELSE IF Fan2ST IS NOT Fan2 THEN
PRINT FAILMESSAGE, Fan2 NAME
STOP TOWER.FAN.CK
ELSE STOP TOWER.FAN.CK
Summary
• You use a string point to contain a message you expect to
use in more than one program.
• You can create a string point in the Point window.
• You can assign the string point a value in the Point
window or the Command window.
• You can insert values into the message and format the way
the values display on the screen or printer.
• You can make a FallThru program loop by using GOTO
to send it to the line it is currently on.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
10-15
You Can Set String Point
Value
Advanced Points
Creating Date and Time
Stamps
GOAL: To record the date and time the FAILMESSAGE is
sent to the screen and print it after the message.
To set up a point that records the date and time, you create a
datetime point.
Creating a DateTime Point
Create a DateTime Point
You create a datetime point as follows:
1. Select Edit Points from the Main menu bar.
2. Type the name (FANFAILTIME) in the Name text box
to create a new point.
3. Select Datetime for TYPE, and set the STATE to either
Enabled or Disabled.
4. Press the SAVE button, the EXECUTE key, or the SAVE
key. The controller saves the point and closes the window.
Printing the DateTime to the Screen
You print a datetime point value to the screen just as you
would any other. You do not have to specify a format—the
date and time print in a standard format.
The single-action steps to print the string point to the screen
when the equipment fails and record the date and time of the
message would be:
1. Give the fan 15 seconds to change status. Use GOTO to
form the manual loop.
2. Check the fan status.
10-16
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Advanced Points
3. If the status of the fan is not equal to the fan output, then
send the message and set the datetime stamp.
4. Print the datetime stamp.
5. Stop the program.
Figure 10-9 shows the revised program.
Figure 10-9. TOWER.FAN.CK Program with a
Timestamp—FallThru
File
Edit
Search
Check
Tools
CENTRALPLANT TOWER TOWER.FAN.CK
’Triggered by Fan1, Fan2, Fan1ST, or Fan2ST
LINE WAIT
IF TS > 15 THEN GOTO FANTEST ELSE GOTO WAIT
LINE FANTEST
IF Fan1ST IS NOT Fan1 THEN
PRINT FAILMESSAGE,Fan1 NAME
SET FanFailTime = DATE
PRINT "The date and time fan failed is ",FanFailTime
STOP TOWER.FAN.CK
ELSE IF Fan2ST IS NOT Fan2 THEN
PRINT FAILMESSAGE, Fan2 NAME
SET FanFailTime = DATE
PRINT "The date and time fan failed is ",FanFailTime
STOP TOWER.FAN.CK
ELSE STOP TOWER.FAN.CK
Why not just print the DATE system variable? Because you
could not then store the DATE. The point saves the date/time
of the fan failure so can use it in another message or report.
You can also make FANFAILTIME a log or array and store
several date/times in it to keep a history of fan failure times.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
10-17
Advanced Points
Switching Lead/Lag with
Positions of Minimum and
Maximum in Log
GOAL: To total the time the tower fans have been running
and switch from the lead to the lag.
Setting Up a Manual Array
Set Up a Manual Array to
Hold Positions
Start by setting up a manual array with two positions, each
containing the runtimes of the tower fans. Position 1 would
contain the runtime of FAN1, position 2 that of FAN2. The
manual array could be called FANTIME.
Forming an Equation to Add Up Time
The program would add up the time the fan status is ON in
hours.
To add up the time FAN1 has been running and set the first
position in the FANTIME array:
SET FANTIME[1] = FANTIME[1] + (SCAN/3600 * Fan1ST)
This equation converts the SCAN system variable into hours
by dividing it by 3600.
SCAN, to simplify it for this example, gives the number of
seconds since the last time the point values were changed. If
it has been 6 seconds, that is .1 minutes or .01 hours.
Then the equation multiplies number of hours by the fan
status (1 for ON, 0 for OFF). If the fan is OFF during the scan,
the controller adds 0 to FANTIME[1]. Only when the fan is
ON does the controller add the SCAN to FANTIME[1].
You would use the same equation to set FANTIME[2] to the
hours the other fan has been ON.
10-18
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Advanced Points
Finding the Lead and Lag
You would then want the program to find out which fan has
been on the shortest time and which the longest. How do you
find the positions of the longest and shortest times in the log?
MINITEM and MAXITEM
Find Array Position
You use the MINITEM and MAXITEM keywords:
MINITEM(FANTIME)
MAXITEM(FANTIME)
These keywords give the number of the item’s position in the
log. If the minimum item (MINITEM) in the log is in position
1, MINITEM gives 1; if it is in position 2, MINITEM gives 2.
Before you use these keywords, however, you should define
two local numeric variables to contain the lead and lag fan
numbers:
NUMERIC LEAD, LAG
The variables are different from numeric points—they are
known only to the program you create them in. You cannot
use them in another program.
Because they are numeric, you can calculate with them or put
the results of a calculation in them.
Now, the two numeric variables can contain the results of
MINITEM and MAXITEM to determine the lead and lag:
LEAD = MINITEM(FANTIME)
LAG = MAXITEM(FANTIME)
The lead is the fan that has been running the shortest time. The
lag is the one that has been running the longest.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
10-19
Advanced Points
The LEAD.LAG.FAN program should be looping. The
CW.CONTROL program (presented earlier) calls it when
required.
Figure 10-10 shows the program.
Figure 10-10. LEAD.LAG.FAN Program—Looping
File
Edit
Search
Check
Tools
CENTRALPLANT TOWER LEAD.LAG.FAN
NUMERIC LEAD, LAG
LINE Decide
IF LEAD = 0 THEN
SET LEAD TO 1
SET LAG TO 2
ENDIF
IF LEAD = 1 THEN GOTO Fan1ON ELSE GOTO Fan2ON
LINE Fan1ON
TURN ON Fan1
TURN OFF Fan2
GOTO FanTimeChk
LINE Fan2ON
TURN ON Fan2
TURN OFF Fan1
GOTO FanTimeChk
LINE FanTimeChk
SET FANTIME[1] = FANTIME[1] + (SCAN/3600 * Fan1ST)
SET FANTIME[2] = FANTIME[2] + (SCAN/3600 * Fan2ST)
IF MAXIMUM(FANTIME) > 24 THEN GOTO LeadLagSwap
LINE LeadLagSwap
LEAD = MINITEM(FANTIME)
LAG = MAXITEM(FANTIME)
SET FANTIME[1] = FANTIME[1] – 24
SET FANTIME[2] = FANTIME[2] – 24
GOTO Decide
10-20
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Advanced Points
Summary
• You can set up a manual array with each position
representing the number of a piece of equipment. The
array can then hold related information about each piece of
equipment.
• To find the position of the highest value in an array, you
use the MAXITEM keyword.
• To find the position of the lowest value in an array, you use
the MINITEM keyword.
• You can create local numeric variables in a program.
Local variables are known only to the program you create
them in.
SCAN System Variables
Gives Scan Length
• The SCAN system variable tells you the number of
seconds that have passed since the points were last
updated.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
10-21
Advanced Points
Forming a Log You Control
GOAL: To set up a log that records the difference between
the space temperature and the setpoint only when the outside
air drops to 0 degrees Fahrenheit or lower. In addition, to
record the time with each temperature.
To update a log called TEMPDIFF only when the temperature
outside drops below zero, you must first setup TEMPDIFF as
a log that you can control.
Semi-Automatic Logs
Have Log Interval of Zero
This type of log is called a “semi-automatic log.” You form
it as follows:
1. Create the TEMPDIFF point, set its type to numeric.
2. Select Automatic Log for the log type.
3. Set the log interval to zero.
The log then updates only when your program sets the
value of the log.
To use the TEMPDIFF log:
1. Evaluate the OUTSIDEAIR input.
2. If the OUTSIDEAIR value is at or below 0 degrees
Fahrenheit, set TEMPDIFF to the difference between
VAV.SETPT and VAVSPACE.
The controller automatically puts the new value in the
TEMPDIFF[1] position in the log.
Ordinary logs automatically record the time with each log
update, but semi-automatic logs do not.
3. To log the time that the temperature change is recorded,
you can have a parallel log record the TEMPTIME and set
that one to the DATE (or TIME) system variable value at
the same time you record the TEMPDIFF.
10-22
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Advanced Points
The TEMPTIME log would be another semi-automatic
log, only its type would be datetime.
Figure 10-11 shows the program with two semi-automatic
logs.
Figure 10-11. AVG.MIN.MAX Program—FallThru
File
Edit
Search
Check
Tools
BLDG1 FLOOR1 AVG.MIN.MAX
’Triggered by OutsideAir
IF OutsideAir IS LESS THAN OR EQUAL TO 0 THEN
SET TEMPDIFF TO VAVSpace MINUS VAV.Setpt
SET TEMPTIME TO TIME
ENDIF
IF DAYOFMONTH = 1 THEN RUN ZERO.REPT
In the last line of the program, the information stored in the
two logs prints out on the first of every month.
Summary
• You can set a semi-automatic log that updates only when
a program updates it.
• You make a log semi-automatic by setting its interval of
zero.
• You use a semi-automatic log to set a datetime log to the
time an event occurs.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
10-23
Advanced Points
Printing and Setting Point
Attributes
GOAL: To print the basic information about a point in the
Command window.
How do you find out basic information about a point? You
could select View Points from the Main menu bar, but you
would see limited information. You can print any point
attribute in the Command window.
Most Point Attributes
Were Set in Windows
Two Attributes Are Set
by the Controller
Some point attributes, to refresh your memory, are:
NAME
VALUE
TYPE
STATE
CHANNEL
UNITS
DESCRIPTION
(Display) FORMAT
ENGSCALETOP
ENGSCALEBOT
SETPOINT
EXPORT
(Array or Log) SIZE
THRESHOLD
ELECTYPE
IOU
The controller sets two other important point attributes:
• OVERRIDE, equal to either TRUE or FALSE—TRUE
if the override switch is set to manual, FALSE if set to
AUTO (under controller control). (Not available for EMX
140 or EMX 150 outputs.)
• OVERRIDEVALUE—For voltage or current outputs, the
OVERRIDEVALUE is the voltage or current you would
read if you connected a meter to the point. For digital
10-24
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Advanced Points
outputs, it is ON or OFF. For tristate, ON, OFF, or –ON.
(Not available for EMX 150 outputs.)
To see if a point is set to manual control, print its OVERRIDE
status as follows:
OVERRIDE Attribute Is
True or False
PRINT Burner OVERRIDE
To print the description of a point, you use the PRINT
keyword, like this:
PRINT Burner DESCRIPTION
The description prints out in the window.
To find out if a temperature is a setpoint, you can also print
that attribute:
PRINT TEMP.SP SETPOINT
SETPOINT Attribute Is
True or False
The SETPOINT attribute is either TRUE if a setpoint or
FALSE if not.
You could print the array size, like this:
PRINT SupplyAir SIZE
If you do not specify otherwise, the information prints to the
local terminal’s message window. You can specify a printer
name or another terminal using TO with PRINT:
PRINT Burner STATE TO SCREEN1
PRINT Fan1 DESCRIPTION TO SCREEN2
You can take other actions on attributes:
SET TEMPERATURE STATE TO ENABLED
MOVE CW1ISOValve VALUE TO 80%
SET CHW2ISOValv ENGSCALETOP TO 1
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
10-25
Advanced Points
SET Burner FORMAT TO "###"
SET CHW2ISOValv ENGSCALEBOT TO 0
You Can Change Point
Attributes in Programs
You have control over point attributes, even in a program or
on the command line. For instance, you can reset a point value
or alter the top or bottom of scale for a point from within a
program (as long as the point is enabled).
(You cannot set the VALUE of a point from within a program
if the point is disabled. You can, however, set the VALUE of
a disabled point from the Command window.)
You can even set a program’s STATUS attribute to ACTIVE
to start it, INACTIVE to stop it, from the command line:
SET MORN.WARMUP STATUS TO INACTIVE
10-26
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Chapter 11
Programming with
Advanced Keywords
This chapter covers the following topics:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
www.PDF-Zoo.com
Summary on Local Variables
Acting on Errors with Local String Variables
Changing the Status Bar
Going to Lines Based on a Value
Going to Lead, Lag, or Standby
Finding the Difference between Date-and-Times
Looping with FOR..NEXT
Nesting FOR..NEXT Loops
Forming WHILE Structures
Breaking Loops
Using the Scan Length
Selecting Part of a Date and Time
Determining Amount of Free Memory
Determining the Version on a Controller
Advanced Keywords
11-2
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Advanced Keywords
Table 11-1 shows the input and output points we program
with in this chapter.
Table 11-1. Input and Output Points
Point
Controller
Model
Point Type
TEMPLOG
BLDG1 FLOOR1
SCX 900
Thermistor Input
MixedAir
BLDG1 FLOOR1
SCX 900
Thermistor Input
Fan1ST
CENTRALPLANT TOWER
SCX 900
Digital Input
Fan2ST
CENTRALPLANT TOWER
SCX 900
Digital Input
Fan3ST
CENTRALPLANT TOWER
SCX 900
Digital Input
Fan1
CENTRALPLANT TOWER
SCX 900
Form C Output
Fan2
CENTRALPLANT TOWER
SCX 900
Form C Output
Fan3
CENTRALPLANT TOWER
SCX 900
Form C Output
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
11-3
Advanced Keywords
Summary on Local Variables
Sometimes you need a variable to hold a value that is neither
an input nor an output and only needed in one program. Such
a value need not be a point at all; instead, it can be a local variable.
A local variable can be either a number (numeric), text (string
of characters), or a date and time (datetime). You can have a
total of up to 255 local variables in a single program.
Variables Vs. Points
Local Variables Belong
to Particular Programs
How do numeric, string, and datetime local variables differ
from numeric, string, and datetime points?
Only the program you put them in knows the local variables.
You define them at the top of the program and use them only
in that program. You cannot use a local variable in another
program or in a function.
Numeric, string, and datetime points, however, are usable system-wide.
Below are some statements that define local variables.
Note
Always remember to define local variables at the top of the
program! If you try to define them anywhere else in the
program, the program does not run.
11-4
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Advanced Keywords
Numeric Variables
The following statement defines a local numeric variable:
Numeric Variables
Contain Numbers
NUMERIC FLOORNO
The NUMERIC keyword tells the controller that the name
that follows is a local numeric variable.
You can also use NUMERIC to define several numeric variables at once:
NUMERIC FLOORNO, ROOMNO, SPACENO
You can form a numeric array with NUMERIC by putting the
number of items in the array in square brackets after the name:
NUMERIC FLOORNO [10]
String Variables
String Variables Contain
Text
The following statement defines a local string variable:
STRING 40 BOILERNOTE
The STRING keyword tells the controller the following:
• The number that follows is the number of characters in the
string.
• The name that follows is a variable that accepts a string of
characters.
You can also use STRING to define several string variables at
once:
STRING WARNING1, WARNING2, WARNING3
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
11-5
Advanced Keywords
You can form a string array with STRING by putting the
number of items in the array in square brackets after the name:
STRING WARNING [6]
DateTime Variables
DateTime Variables Each
Contain Date and Time
The following statement defines a local datetime variable:
DATETIME TODAY
The DATETIME keyword tells the controller that the name
that follows is a variable that accepts a date and time.
You can also use DATETIME to define several datetime variables at once:
DATETIME MORNING, AFTERNOON, EVENING
You Can Make Variables
Be Arrays
You can form a datetime array with DATETIME by putting
the number of items in the array in square brackets after the
name:
DATETIME DOWNTIME [10]
11-6
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Advanced Keywords
Summary
• Only the program you put them in knows the local
variables you define.
• The entire controller system knows numeric, string, and
datetime points.
• You must define all local variables at the top of a
program—before the first program line. If you define
them anywhere else, the program does not work.
• To create one or more numeric variables, use the
NUMERIC keyword.
• To create one or more string variables, use the STRING
keyword.
• To create one or more datetime variables, use the
DATETIME keyword.
• When you define a local variable, you can make it an array
by putting the number of items in square brackets after the
name.
You Can Give Length for
String
• You can give a length to a string variable.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
11-7
Advanced Keywords
Acting on Errors with Local
String Variables
GOAL: To print a message when the number of errors is
greater than 5, print another message when the number of
errors is greater than 10, and sound a beep at 12 errors.
ERRORS Equals
Number of ERRORS
You use a system variable called ERRORS to determine how
many errors have occurred in the controller.
You have already seen how to form messages in a string point,
known to the entire system. You can also form messages
known only to the program you form them in. They go in local
string variables.
You set up a local string variable using the STRING keyword
as follows:
STRING 50 ERRORMSG
This string is 50 characters long. You could put all three
messages under the same string name in an array with three
holding places by adding the array to the string definition like
this:
STRING 50 ERRORMSG[3]
Now you can call the message ERRORMSG[1],
ERRORMSG[2], and ERRORMSG[3].
To set the values of these variables, you use the SET
statement:
SET ERRORMSG[1] = "One to five errors have occurred."
SET ERRORMSG[2] = "Five to ten errors have occurred."
SET ERRORMSG[3]="Twelve or more errors have occurred. |7"1
1. The vertical bar and 7 indicate an ASCII code for a beep. See Appendix A
of the Andover Controls Plain English Language Reference for more on
ASCII codes.
11-8
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Advanced Keywords
All you have to do now is check the ERRORS value in an
IF..THEN statement as follows:
Check ERRORS in
IF..THEN Statement
IF ERRORS > 4 AND ERRORS <10 THEN PRINT ERRORMSG[1]
IF ERRORS > 9 AND ERRORS <12 THEN PRINT ERRORMSG[2]
IF ERRORS >= 12 THEN PRINT ERRORMSG[3]
Figure 11-1 shows the program, called ERROR.TEST.
Figure 11-1. ERROR.TEST Program—FallThru
File
Edit
Search
Check
Tools
BLDG1 FLOOR1 ERROR.TEST
’Triggered by ERRORS System Variable
STRING 50 ERRORMSG[3]
ERRORMSG[1] = "Five errors have occurred."
ERRORMSG[2] = "Ten errors have occurred."
ERRORMSG[3] = "12 errors have occurred. |7"
IF ERRORS >= 5 AND ERRORS < 10 THEN PRINT ERRORMSG[1]
IF ERRORS >= 10 AND ERRORS < 12 THEN PRINT ERRORMSG[2]
IF ERRORS >= 12 THEN PRINT ERRORMSG[3]
When you have many errors, you often display the number on
the status bar. You can set the status bar to display the kind of
information you want. See how in the next section.
Summary
• The ERRORS system variable contains the number of
errors that have occurred in the controller system.
• You can create a local string variable to contain text or a
message.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
11-9
Advanced Keywords
Changing the Status Bar
GOAL: To reset the current status bar so it shows the number
of errors, current user, and other select information.
Whenever you are running the menu and window system, the
bar across the bottom of the screen displays. It is called the
“status bar.”
You Can Change the
Status Bar
You can change the status bar so it shows the number of errors
accumulated. Say you also want it to show the user name and
the time.
You do this by writing a program called STAT.BAR that is set
to AUTOSTART with a FLOW of looping. You place a
PRINT statement in it that tells what to print in the status bar.
The statement should look like the following:
PRINT "Errors: |## User: |@@@@@@@@ Time:",~
ERRORS, SCREEN1 CURRENTUSER, TIME TO~
SCREEN1 STATUSBAR
Let’s dissect this statement.
• The information in quotation marks prints in the status bar
on the screen, except for the pound signs, which hold
places for digits or characters.
• ERRORS is a system variable that prints in the first
format, after Errors:.
• CURRENTUSER is the attribute that holds the logon
name assigned to the user who is currently logged on. It
prints in the second format in the statement, after User:.
• TIME is another system variable that displays the complete
date and 24-hour time. It prints after Time: but you do not
specify a format, since it prints in a standard format.
• All of this prints to a terminal called SCREEN1 and to the
status bar (indicated by the STATUSBAR attribute).
11-10
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Advanced Keywords
You can change the formats to allow for three digits for
ERRORS or other predefined values.
You can change the variables used to ones you have defined.
You can change anything in the statement, except:
• PRINT
• TO
• SCREEN1 STATUSBAR (use your terminal name in
place of SCREEN1)
Figure 11-2 shows a complete STAT.BAR program. You
might want to put the name of the STAT.BAR program in the
user window as the login program so that the program runs
every time you log on.
STAT.BAR Program
Controls Status Bar
Figure 11-2. STAT.BAR Program—Looping
File
Edit
Search
Check
Tools
BLDG1 FLOOR1 STAT.BAR
PRINT "Errors: |## User: |@@@@@@@@ Time: ", ERRORS, ~
CURRENTUSER, TIME, TO SCREEN1 STATUSBAR
Summary
• To alter the status bar, you write a program and call it
STAT.BAR, make it AUTOSTART with looping FLOW.
• In STAT.BAR you put a statement that tells what to print
to the status bar.
• To direct the PRINT statement to the status bar, you use
TO SCREEN1 (the terminal name) STATUSBAR.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
11-11
Advanced Keywords
Going to Lines Based on a
Value
GOAL: To print out a series of reports based on the day of the
week.
One way to proceed is to check the WEEKDAY system
variable and when it has a certain value, go to a line and carry
out that line.
You Can GOTO Different
Lines Based on a Value
You can use GOTO or you can use BASEDON..GOTO.
BASEDON..GOTO is set up to test a variable and then, based
on its value, go to one of the lines listed after GOTO:
BASEDON WEEKDAY GOTO SUN.REPT, MON.REPT,~
TUE.REPT, WED.REPT, THU.REPT, FRI.REPT, SAT.REPT
If WEEKDAY is 1 (SUNDAY), the program goes to the first
line label listed after GOTO (SUN.REPT); if WEEKDAY is
2, the program goes to the second line label (MON.REPT); if
WEEKDAY is 3, the third line label (TUE.REPT), and so on.
The values must begin with 1 and increase by 1 (increment).
BASEDON..GOTO is most useful with the system variables
that increment, WEEKDAY, HOUR, MINUTE, and similar
values that increment, such as the ERRORS system variable.
11-12
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Advanced Keywords
Figure 11-3 shows a program that branches, based on the
ERRORS value, to three different lines.
Figure 11-3. MSG.REPT Program—FallThru
File
Edit
Search
Check
BLDG1 FLOOR1 MSG.REPT
’Triggered by ERRORS System Variable
BASEDON TERM1 ERRORS GOTO MSG1, MSG2, MSG3
LINE MSG1
RUN MESSGPROG
STOP MSG.REPT
LINE MSG2
RUN MESSGPROG2
STOP MSG.REPT
LINE MSG3
RUN MESSGPROG3
STOP MSG.REPT
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
11-13
Tools
Advanced Keywords
GOTO Different Lines
Based on WEEKDAY
Figure 11-4 shows a program that prints a different report or
series of reports for each day of the week, starting on Sunday
(1) and proceeding through Saturday (7). Here to help you
remember which day’s report it is, REPT1 prints when
WEEKDAY is 1, REPT2 when WEEKDAY is 2, and so on.
Figure 11-4. DAILY.REPT Program—FallThru
File
Edit
Search
Check
Tools
BLDG1 FLOOR1 DAILY.REPT
’Triggered by WEEKDAY
BASEDON WEEKDAY GOTO REPT1, REPT2, REPT3, REPT4~
REPT5, REPT6, REPT7
LINE REPT1
RUN TEMP.REPT
STOP DAILY.REPT
LINE REPT2
RUN ERROR.REPT
STOP DAILY.REPT
LINE REPT3
RUN MEMORY.REPT
STOP DAILY.REPT
LINE REPT4
RUN COMM.REPT
STOP DAILY.REPT
LINE REPT5
RUN MESG.REPT
STOP DAILY.REPT
LINE REPT6
RUN HUMID.REPT
STOP DAILY.REPT
LINE REPT7
RUN WEEKLY.REPT
STOP DAILY.REPT
11-14
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Advanced Keywords
The controller automatically interprets the WEEKDAY as a
number in this situation.
Summary
BASEDON..GOTO checks a variable value and if it is 1, goes
to the first line listed after GOTO, if it is 2 goes to the second,
if it is 3 goes to the third, and so on.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
11-15
BASEDON..GOTO Goes
to the Appropriate Line
Advanced Keywords
Going to Lead, Lag, or
Standby
GOAL: To select the fan to turn on of the three tower fans
based on the value of the LEAD and LAG variables. We
restructure the LEAD.LAG.FAN program from Chapter 10
using BASEDON..GOTO.
Remember that FAN1 corresponds to the time running in
FANTIME[1], FAN2 to FANTIME[2], and FAN3 to
FANTIME[3].
You would leave the structure of the FANTIMECK line the
same to find out how long each fan has been running. You
would then find LEAD and LAG using MINITEM and
MAXITEM.
GOTO Different Line
Based on LEAD Value
But instead of using a series of IF..THEN statements, you
would set up a different line for each fan and if the value of
LEAD is 1, go to the FAN1 line; if LEAD is 2, go to the FAN2
line, and if LEAD is 3, go to the FAN3 line, as follows:
BASEDON LEAD GOTO TFAN1, TFAN2, TFAN3
LINE TFAN1
TURN ON Fan1
LINE TFAN2
TURN ON Fan2
LINE TFAN3
TURN ON Fan3
Since you would have to turn off the other two fans if you
turned on one, you could incorporate that action in the same
line. You would also then go back to check the FANTIME
value once more.
11-16
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Advanced Keywords
Figure 11-5 shows the changes to the program using
BASEDON..GOTO (this example also has three fans instead
of two).
Figure 11-5. Modified LEAD.LAG.FAN Program—
Looping
File
Edit
Search
Check
Tools
CENTRALPLANT TOWER LEAD.LAG.FAN
NUMERIC LEAD
LINE FanTimeCk
SET FANTIME[1] = FANTIME[1] + (SCAN/3600 * Fan1ST)
SET FANTIME[2] = FANTIME[2] + (SCAN/3600 * Fan2ST)
SET FANTIME[3] = FANTIME[3] + (SCAN/3600 * Fan3ST)
IF MAXIMUM(FANTIME) > 24 THEN GOTO LeadSwap
LINE LeadSwap
LEAD = MINITEM(FANTIME)
BASEDON LEAD GOTO TFAN1, TFAN2, TFAN3
LINE TFAN1
TURN ON Fan1
TURN OFF Fan2 AND Fan3
GOTO FANTIMECK
LINE TFAN2
TURN ON Fan2
TURN OFF Fan1 AND Fan3
GOTO FANTIMECK
LINE TFAN3
TURN ON Fan3
TURN OFF Fan1 AND Fan2
GOTO FanTimeCk
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
11-17
BASEDON..GOTO Works
Efficiently
Advanced Keywords
Finding the Difference
between Date-and-Times
GOAL: To measure the amount of time each tower fan has
been on or off and send the information to a report if a fan has
been on longer than seven days.
To find out how long a fan has been on if only a few seconds
go by, you can use TS, TM, or other keywords that measure
time elapsed on that line. But to determine that a fan has been
on for seven days, you would not want keep the controller on
one line for seven days.
Timestamps Are Local
DateTime Variables
Instead, you set a timestamp when you turn the fan on and
another timestamp when you turn it off.
You create the timestamps TIMER1 and TIMER2 as local
variables that contain the complete date and time of an event.
You do this with the DATETIME keyword:
DATETIME TIMER1
DATETIME TIMER2
You can also create both variables on one line:
DATETIME TIMER1, TIMER2
You can measure the time a fan has been on and the time a fan
has been off separately from the LEAD.LAG.FAN program
by using the status inputs, FAN1ST, FAN2ST, and FAN3ST.
After you set up the variable, you write lines to set the
timestamps equal to the DATE system variable:
IF Fan1ST IS ON THEN SET TIMER1 = DATE
ELSE SET TIMER2 = DATE
11-18
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Advanced Keywords
Remember that the DATE system variable contains both the
date and the time.
Calculating the Difference
DIFFTIME Is in Units You
Ask For
After the two timers are set, you can find the difference
between them using the DIFFTIME function.
DIFFTIME can find the difference between two
datetimestamps in seconds, minutes, hours, or days. To find
the difference in days, you set up the function like this:
FAN1.ON.TIME = DIFFTIME (WKD, TIMER1, TIMER2)
The controller places the difference in a numeric variable
called FAN1.ON.TIME.
The difference is always the number of whole days. If the
difference is six days and 23 hours, FAN1.ON.TIME is set to
6. You could also find the difference in hours:
FAN1.ON.TIME = DIFFTIME (HOUR, TIMER1, TIMER2)
To find the difference in minutes or seconds, you would use
MINUTE or SECOND in place of WKD or HOUR.
You could also find the difference in seconds using a
mathematical expression:
FAN1.ON.TIME = TIMER2 MINUS TIMER1
Note
When calculating the difference between timers, be sure that
TIMER1 occurs before TIMER2.
This kind of difference between a date and time always gives
the result in seconds, no matter how large the difference. This
technique is simple and direct, and useful as long as you want
seconds.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
11-19
Advanced Keywords
Taking Action Based on the Difference
DIFFTIME Calculates
Difference
Instead of setting the difference equal to a numeric variable,
you can take action based on the difference:
IF DIFFTIME(WKD,TIMER1,TIMER2)>=7 THEN RUN FANRPT
Instead of writing two statements, this way you need only one.
Figure 11-6 shows the FallThru program. It is triggered by a
change in the fan status of FAN1.
Once the fan status changes to ON, the program triggers. The
first IF statement is TRUE, so the controller sets the first timer
to the current DATE. The second IF statement is FALSE, so
the controller falls through it to the end and stops.
When the fan status changes to OFF, the program triggers
again. The first IF statement is FALSE, so the controller falls
through it. The second IF statement is TRUE, so the controller
sets the second timer to the current DATE. The controller then
checks to see if the difference between the first date and the
second date is seven days. If it is, the controller prints out a
fan report.
The program triggers again when the fan status changes back
to ON and the first timer is set to the new DATE. The process
continues with each change in fan status.
11-20
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Advanced Keywords
Figure 11-6. FAN.TIMING Program—FallThru
File
Edit
Search
Check
Tools
CENTRALPLANT TOWER FAN1.TIMING
’Triggered by Fan1ST
DATETIME TIMER1.FAN, TIMER2.FAN
IF Fan1ST = ON THEN SET TIMER1.FAN = DATE
IF Fan1ST = OFF THEN
SET TIMER2.FAN = DATE
IF DIFFTIME(WKD, TIMER1.FAN, TIMER2.FAN) >= 7 THEN
RUN FANRPT
ENDIF
ENDIF
You can copy this program multiple times; then find and
replace FAN1 with FAN2 in one copy and with FAN3 in
another.
If the fans are on different controllers, you can assign the
copies of the program the same name.
If the fans are on the same controller, you can change the
names of the copies of the program to FAN2.TIMING and
FAN3.TIMING.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
11-21
Advanced Keywords
Looping with FOR..NEXT
GOAL: To print all the values in a 96 item log called
MIXEDAIR.
Print Values Stored in an
Array with FOR..NEXT
To print a single value of the MIXEDAIR, you would write
this statement:
PRINT "The mixed air temperature |###.#", MixedAir[1]
To print 96 values of the MIXEDAIR, you would not want to
have to type this statement 96 times! You would, instead, use
a statement called a “FOR..NEXT loop.” A FOR..NEXT
statement allows you to repeat an action for a particular set of
values.
LINE MIXTEMP.REPT
PRINT "The Mixed Air Temperatures for |*", DATE
FOR LOGPOS = 1 TO 96
PRINT MixedAir[LOGPOS]
NEXT LOGPOS
In this case, FOR..NEXT prints the mixed air temperature for
the first log position, and the next log position, and the next
log position, and so on, up to 96 positions. FOR..NEXT becomes a real time and memory saving technique.
The line carries out the following steps:
1. Prints the heading line and fills in the date.
2. Sets LOGPOS equal to 1.
3. Prints the mixed air temperature for the LOGPOS equal to 1.
4. Repeats step 3 for the next log position, where LOGPOS
equals 2.
11-22
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Advanced Keywords
5. Repeats step 3 for LOGPOS equal to 3, then 4, then 5 and
so on, up to 96.
6. Goes to the next program line in a FallThru program.
You can also repeat an action for values that do not count 1,
2, 3, but instead count by 3, 5, 7, 10, 20, or any other difference. To do so, you add STEP to the end of FOR portion of
the statement, like this:
FOR COUNT = 5 TO 50 STEP 5
STEP tells the controller to put the values 5, 10, 15, 20, 25,
and so on into the COUNT variable.
Counting by 5 might come in handy when you want to print a
report based on the number of errors being equal to 5, 10, or 15.
LINE TEST.REPT
FOR COUNT = 5 TO 15 STEP 5
IF ERRORS = COUNT THEN RUN ERR.REPT
NEXT COUNT
Local Variable/Index Variable
Before you can write the program, remember that the controller needs to know all your points and all other names. What
about LOGPOS? It is not a point and not the name of an Infinity CX 9000 controller.
Because the LOGPOS is neither an input nor an output, it
need not even be a point. It can, instead, be a “local variable.”
Remember, local variables are known only to the program
you use them in.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
11-23
FOR..NEXT Loop Can
Count by More Than One
Advanced Keywords
Variable in FOR..NEXT
Loop Is Numeric
Since the LOGPOS variable contains a number, you must
make it a numeric variable:
NUMERIC LOGPOS
Inside a FOR..NEXT loop, the LOGPOS local numeric variable is called the “index” variable.
The program also remains FallThru, since once the loop is
complete, the program ends.
As shown in Figure 11-7, you give all variable names at the
top of the program.
Figure 11-7. Modified MIXED.REPT Program—
FallThru
File
Edit
Search
Check
Tools
BLDG1 FLOOR1 MIXED.REPT
’Triggered by WEEKDAY
NUMERIC LOGPOS
LINE MIXTEMP.REPT
PRINT "The Mixed Air Temperatures for |*", DATE
FOR LOGPOS = 1 TO 96
PRINT MixedAirT[LOGPOS]
NEXT LOGPOS
11-24
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Advanced Keywords
Summary
• You use the FOR..NEXT statement to carry out a
statement or statements a set number of times.
• All the statements between FOR and NEXT are carried out
for each value of the numeric variable.
• You create a numeric variable and give it a name using the
NUMERIC keyword. Inside the FOR..NEXT loop this
variable is called the index variable.
• You use a numeric variable rather than a numeric point,
because the value applies only to the current program.
• Even with a loop built into a program, the program can still
be FallThru if it should end after all actions have
occurred.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
11-25
You Can Use FOR..NEXT
in FallThru Program
Advanced Keywords
Nesting FOR..NEXT Loops
GOAL: To find the average outside air temperature for each
day and print a report on averages. Then expand the program
to find the average outside air temperature for each quarter of
the day and print a report on the four averages for the day.
Add Up Elements in a
Log with FOR..NEXT
Start by setting up a FOR..NEXT loop that adds up the
elements in a log called TEMPLOG. TEMPLOG contains 24
values—one temperature for each hour in a day.
FOR Element = 1 TO 24
TOTAL = TOTAL + TEMPLOG[Element]
NEXT Element
Figure 11-8 shows the program.
Figure 11-8. DAILY.AVG Program—FallThru
File
Edit
Search
Check
Tools
BLDG1 FLOOR1 DAILY.AVG
’Triggered by WEEKDAY
NUMERIC TOTAL, Element
TOTAL = 0
FOR Element = 1 TO 24
TOTAL = TOTAL + TEMPLOG[Element]
NEXT Element
AverTemp = TOTAL / 24
The program then finds the average as follows:
AverTemp = TOTAL / 24
11-26
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Advanced Keywords
To calculate similar results for every quarter of the day, you
can use two FOR..NEXT loops.
Here is the first loop:
FOR EndQuarter = 6 TO 24 Step 6
...
NEXT EndQuarter
Here is the second loop:
FOR Element = StartQuarter to EndQuarter
Total = Total + TempLog[element]
NEXT Element
How do you make these two loops work together? To make
these two loops work together, you put one inside the other.
Putting one loop inside another is called “nesting” loops and
the loops are called “nested loops.” You nest the loops as
shown below (FOR and NEXT are bold so you can easily find
them):
FOR EndQuarter = 6 To 24 Step 6
FOR Element = (StartQuarter + 1) To EndQuarter
Total = Total + TempLog[element]
NEXT Element
AverTemp = Total/6
PRINT "Ave Temp is |##.##", AverTemp
Set StartQuarter = EndQuarter
NEXT EndQuarter
Notice how the second loop is indented inside the first.
Before you proceed to analyze how the loops work, you need
to look more closely at exactly what the loops are trying to
calculate.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
11-27
Nesting Loops Is Putting
One Inside Another
Advanced Keywords
Taking a Closer Look at the Purpose
of the Nested Loops
Figure 11-9 illustrates quarters of the day that the program
averages. Remember the first element in a log is always the
last value logged. So, for instance, the first quarter totaled is
from 6 p.m. to midnight (the last quarter of the day). The first
FOR..NEXT loop (the “outside” loop) always adds 6 to the
ENDQUARTER index variable.
Figure 11-9. Quarters of the Day Averaged by
Quarterly.Avg Program
Average Temperature for Each Quarter of the Day
6 p.m. to
Midnight
0
Noon to 6 p.m.
6
Totals Log
Elements 1 – 6
6 a.m. to Noon
12
Value of
EndQuarter
Midnight
to 6 a.m.
18
24
Totals Log
Totals Log
Totals Log
Elements 7 – 12 Elements 13 – 18 Elements 19 – 24
You use STEP 6 to set the number of hours
to add to the value of EndQuarter at the
beginning of the outside loop.
The program is triggered by the WEEKDAY system variable.
When the day changes, the program uses all of the values
stored in TEMPLOG from the previous 24 hours. It always
adds up six values in the inside loop and then divides by 6 to
find the average. The next time it loops, the program then proceeds to add up the next 6 values.
Following First Time through Loop
Before the loop, you set STARTQUARTER to 0, as follows:
StartQuarter = 0
When the action begins, the outside FOR..NEXT loop sets
ENDQUARTER to 6 the first time it loops.
11-28
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Advanced Keywords
Figure 11-10 shows how the STARTQUARTER is 0 and the
ENDQUARTER is 6 for the first quarter of the day to be
averaged.
Figure 11-10. Values of StartQuarter and EndQuarter
for First Quarter of the Day
6 p.m. to
Midnight
Noon to 6 p.m.
Elements 1–6
Elements 7–12
0
StartQuarter
First Time
Through Loops
6
12
Quarter
First Time Through Loops
Becomes StartQuarter
for Second Time Through Loops
Since the first setting of STARTQUARTER is 0, the inside
FOR NEXT loop must add 1 to STARTQUARTER to begin
with the first element in the TEMPLOG:
For Element = (StartQuarter + 1) to EndQuarter
...
The inside FOR..NEXT loop then adds up the temperatures
for the first six values in the log, starting with STARTQUARTER + 1 (0 + 1), which is 1, and finishing with
ENDQUARTER, which is 6. Without the outside loop, the inside loop does not know the value of ENDQUARTER. So,
you can see how the two loops work together.
FOR EndQuarter = 6 TO 24 Step 6
FOR Element = (StartQuarter + 1) to EndQuarter
Total = Total + TempLog[element]
NEXT Element
AverTemp = Total/6
PRINT "Ave Temp is |##.##", AverTemp
Set StartQuarter = EndQuarter
NEXT EndQuarter
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
11-29
Set Values of StartQuarter and EndQuarter
Advanced Keywords
The outside loop now finds the average by dividing the total
by 6.
Before the outside loop starts over, it sets STARTQUARTER
to the value of ENDQUARTER, so that when the inside loop
starts again, STARTQUARTER is 6.
Set StartQuarter = EndQuarter
Following Second Time through Loop
Figure 11-11 shows the complete program, so you can follow
along with the description.
Figure 11-11. Quarterly.Avg Program—FallThru
File
Edit
Search
Check
Tools
BLDG1 FLOOR1 Quarterly.Avg
’Triggered by Weekday
NUMERIC EndQuarter, StartQuarter, Total, Element, AverTemp
StartQuarter = 0
FOR EndQuarter = 6 TO 24 Step 6
TOTAL = 0
Inside
FOR Element = ( StartQuarter + 1) TO EndQuarter
Loop
TOTAL = TOTAL + TempLog[Element]
Totals
NEXT Element
Values
AverTemp = TOTAL /6
Outside Loop
PRINT "Ave Temp is |##.##", AverTemp
Finds the Average
Set StartQuarter = EndQuarter
and Prints It, Then
Sets StartQuarter
NEXT EndQuarter
You Indicate Number of
Steps When “Counting”
At the beginning of the outside loop once again, the outside
loop sets ENDQUARTER using STEP. STEP indicates how
much the outside loop should “count by.” In this case STEP 6
indicates that the loop should add 6 to the value of ENDQUARTER, so it becomes 12.
11-30
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Advanced Keywords
So when the inside loop begins to add up temperatures from
the second quarter of the day, it starts with STARTQUARTER set to 6 and ENDQUARTER set to 12.
Figure 11-12 shows how the STARTQUARTER is 6 and the
ENDQUARTER is 12 for the second quarter of the day to be
averaged.
Figure 11-12. Values of StartQuarter and EndQuarter
for Second Quarter of the Day
0
6 p.m. to
Midnight
Noon to 6 p.m.
Elements 1–6
Elements 7–12
6
StartQuarter
Second Time
Through Loops
12
EndQuarter Second
Time Through Loops
Becomes StartQuarter
for Third Time Through
Loops
Since the elements of TEMPLOG that contain the values for
the second quarter of the day are elements 7 through 12, at the
top of the inside loop, you add 1 to STARTQUARTER, so it
becomes 7.
Now the inside loop totals the values of elements 7 through 12
and the outside loop averages them. After it prints the average, the outside loop sets STARTQUARTER to the current
value of ENDQUARTER once more, so it becomes 12 this
time.
The third time through the loop, the process repeats, with
ENDQUARTER set to 18 and STARTQUARTER set to 12.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
11-31
Loop Totals Range
of Values
Advanced Keywords
Understanding STEP
By “stepping” 6 in the outside loop, you have the
FOR..NEXT loops retrieve elements in the TEMPLOG up to
the 6th element, then up to the 12th, the 18th, and the 24th.
This way, the inside loop can use the first six elements the first
time it loops, the second six elements the second time it loops,
the third six elements the third time it loops, and finally, the
fourth six elements the last time it loops.
To average the temperatures every 3 hours instead of every 6,
you could STEP 3. The program would otherwise be the
same.
Other Ways of Nesting Loops
Can Nest FOR..NEXT
Loop inside IF..THEN
You can also use a FOR..NEXT loop inside an IF..THEN
statement and an IF..THEN statement inside a FOR..NEXT
loop.
For example, if you want the temperature averaged once a day
only if the current temperature has exceeded the setpoint, you
would put the FOR..NEXT loop inside an IF..THEN statement as follows:
IF TempLog > 80 THEN
FOR Element = 1 to 24
Total = Total + TempLog[Element]
NEXT Element
ENDIF
If you want to add the temperature to the total only if the temperature is not more than 3 degrees away from setpoint, you
11-32
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Advanced Keywords
can put the IF..THEN statement inside the FOR..NEXT loop
as follows:
FOR Elem = 1 to 24
If Abs(TempLog[Elem]) –TempLog[Elem] > 3 Then
Total = Total + TempLog[Element]
Endif
NEXT Elem
Summary
• You can create more than one numeric variable in one
NUMERIC statement.
• You can use nested FOR..NEXT statements, putting one
FOR..NEXT loop inside another.
• You can use STEP 6 to have a FOR..NEXT loop retrieve
every sixth element from the array. Similarly, you can use
STEP 2, STEP 3, or and other number of steps that seems
appropriate.
• You can use STEP 10 (or any other number with STEP) to
set a limit on the range of elements to retrieve from the
array.
• You can put a FOR..NEXT loop inside an IF..THEN
statement.
• You can put an IF..THEN statement inside a FOR..NEXT
loop.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
11-33
STEP Specifies Log
Elements to Retrieve
Advanced Keywords
Forming WHILE Structures
GOAL: To set all the values of a 96 item array called TIMER
to zero.
WHILE Does Action
While Statement Is True
To tell the controller to take action while a TRUE-FALSE
comparison is TRUE, you can use a WHILE loop. WHILE
loops work like this:
COUNT = 0
WHILE COUNT IS LESS THAN 97
SET TIMER1[COUNT] = 0
SET COUNT = COUNT + 1
ENDWHILE
This loop continues to carry out the action as long as the
COUNT is less than 97.
Notice that you close the WHILE loop with ENDWHILE, just
as you close an IF statement with ENDIF.
WHILE loops are most useful in working with data files. For
an example of WHILE with a data file, see Chapter 13.
11-34
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Advanced Keywords
Figure 11-13 shows the program.
Figure 11-13. AVG.EXC.SP Program—FallThru
File
Edit
Search
Check
Tools
BLDG1 FLR1VAV1 AVG.EXC.SP
’Triggered by HOUR
NUMERIC COUNT
WHILE COUNT IS LESS THAN 97
SET TIMER1[COUNT] = 0
SET COUNT = COUNT + 1
ENDWHILE
Summary
• A WHILE loop carries out the actions inside the loop
WHILE the TRUE-FALSE comparison is TRUE.
WHILE Loops Always
End with ENDWHILE
• A WHILE loop always ends with ENDWHILE.
• WHILE loops are useful in working with data files.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
11-35
Advanced Keywords
Breaking Loops
GOAL: To loop through an array of average temperatures. If
you find a value 2 degrees or more over the setpoint, print a
message on that room and stop looping.
To plan ahead for this program, you would set up an array so
its index numbers correspond to the room numbers on that
floor.
Break Loop with BREAK
VAVSPACE.AVG[1] would be the value of the average
temperature for room 1, where the first VAV box is.
VAVSPACE.AVG has 30 values. You can loop through it
using FOR..NEXT.
The controller stops the loop in the middle when you use the
BREAK keyword. BREAK ends the nearest enclosing
FOR..NEXT, WHILE, or REPEAT..UNTIL loop and exits to
the next statement.
Figure 11-14 shows the program.
Figure 11-14. Breaking the FOR..NEXT Loop in the
AVGSETPOINT Program—FallThru
File
Edit
Search
Check
Tools
BLDG1 FLR1VAV1 AVGSetPoint
’Triggered by HOUR
NUMERIC ROOM
FOR ROOM = 1 TO 30
IF VAVSpace.AVG[ROOM] >= VAVSpace.SP + 2 THEN
SET STORE.RM = ROOM
PRINT "ROOM |##’s temp exceeds the setpoint",STORE.RM
BREAK
ENDIF
NEXT ROOM
11-36
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Advanced Keywords
If the loop you break out of is nested inside another, the other
loop continues to completion. BREAK only ends the particular loop it is inside of.
Notice that in the sample loop, you store the ROOM value in
another variable before breaking. Once you use BREAK, the
index variable automatically resets to 1, so use the index variable before BREAK if you need to save it.
Summary
• You break out of a loop before it is complete using the
BREAK keyword.
• BREAK exits the loop and takes the controller to the next
consecutive statement.
• You can use BREAK with FOR..NEXT, WHILE, or
REPEAT..UNTIL loops.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
11-37
WHILE Loops Are Useful
with Data Files
Advanced Keywords
Using the Scan Length
GOAL: To accrue time using the SCAN system variable.
SCAN Measures Length
of Last Scan
The SCAN system variable measures the length of the last
scan interval to an accuracy of .01 seconds.
One way to accrue the time in a numeric variable called
ACCUMTIME is as follows:
ACCUMTIME = SupplyFanST TIMES SCAN PLUS
ACCUMTIME
The SUPPLYFANST is a point that indicates the equipment
is ON or OFF. If the equipment is ON, the fan’s status is 1, if
OFF, the status is 0. So this calculation adds the value of the
scan to the accumulated time only when the fan is 1 (ON). If
the equipment is OFF (0), SUPPLYFANST TIMES SCAN
gives 0, so nothing is added to the accumulated time.
(Remember that the multiplication occurs first, so there is no
danger of ACCUMTIME being wiped out by multiplying by
zero.)
Another Way to Use SCAN
Another way you can use SCAN is to determine the rate of demand for kilowatts for the last 30 minutes. You could use a
digital filter equation. The following equation gives the demand in kilowatts for a 30-minute sliding window:
DEMAND = CONV.CONST * KWH.Pulses * .001278 * 3600
+ ((1 – (SCAN * .001278)) * DEMAND)
The DEMAND is the total number of kilowatts.
11-38
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Advanced Keywords
The complete equation to calculate the demand is made up of
two addends. The first calculates the demand rate in kilowatts
for one scan, as follows:
CONV.CONST * KWH.Pulses * .001278 * 3600
• CONV.CONST is the conversion constant, in kwh/pulse,
for the electrical meter being used to read the kilowatt
hours.
• KWH.PULSES is the number of pulses the meter counts in
the current scan. (Pulses are counted per scan.)
• .001278 is a time constant for a 30-minute interval.
When you multiply the conversion constant times the
number of pulses counted, then times the time constant,
you get the demand in kilowatts per hour for one scan.
• Multiplying by 3600 converts kilowatt hours to seconds.
When you add the demand of the current scan to the 30minute interval, to keep the interval 30 minutes, you must also
subtract an equal amount that represents the scan that occurred before the 30-minute interval.
Figure 11-15 shows the 30-minute interval of time in a
window that slides along a continuum of time. The window is
called a “sliding window.” As you slide the window up the
continuum, you add new scans and remove “old” scans.
Figure 11-15. 30-Minute Sliding Window
Scans of Time
Sliding Window for 30-Minute Interval
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
11-39
Advanced Keywords
Figure 11-16 shows how each time you add one scan’s
demand to the interval you must remove an equivalent scan’s
demand.
Figure 11-16. Maintaining the 30-Minute Interval
with a Sliding Window
Demand during
Scan Being Added
to Interval (Entering Window)
Demand during Scan
Being Removed
from Interval
(Leaving Window))
Sliding Window for 30-Minute Interval
The second addend removes the amount of demand accrued in
the scan at the beginning of the 30-minute interval, as follows:
((1 – (SCAN * .001278)) * DEMAND)
• The 1 represents the 30-minute interval of demand as a
whole.
• SCAN times the time constant (.001278) gives the fraction
of the interval that the scan that preceded the interval
equals. The equation subtracts that scan from the whole
30-minute interval (1).
The result of subtracting the scan from 30-minute interval
is the total of the lengths of all the other scans in the
interval.
• You multiply this total length of all scans in the interval by
the present DEMAND to give the new DEMAND.
11-40
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Advanced Keywords
When you add the two addends, the result is the total kilowatts
for the current scan plus the demand accrued for the previous
scans in the 30-minute interval.
Summary
• SCAN measures the length of the last scan interval.
• You can use SCAN in a variety of HVAC calculations.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
11-41
You Can Use SCAN in
Many Calculations
Advanced Keywords
Selecting Part of a Date and
Time
GOAL: To print the date from several datestamps and the
time from several timestamps for a report.
TIMEPIECE Pulls Out
Part of DateTime
The entire date and time are always stored together in any
datetime point or variable. You can pull out the various parts
of the date and time from a log like TIMER1 using the
TIMEPIECE keyword:
MONTHSTAMP = TIMEPIECE (MONTH, TIMER1)
DOMSTAMP = TIMEPIECE (DAYOFMONTH, TIMER1)
YEARSTAMP = TIMEPIECE (YEAR, TIMER1)
TODSTAMP = TIMEPIECE (TOD, TIMER1)
The various pieces of the date and time are now separated, so
you can print them in a report that does not require both date
and time together.
You can use any of the datetime system variables, except, of
course, DATE.
11-42
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Advanced Keywords
Figure 11-17 shows a program that retrieves the parts of the
date and time from a datetime log and then prints them in
formats.
Retrieves Parts of Date
and Time
Figure 11-17. AVGSetptPR Program—FallThru
File
Edit
Search
Check
Tools
BLDG1 FLR1VAV1 AVGSetptPR
NUMERIC, MONTHSTAMP, DOMSTAMP, YEARSTAMP, TODSTAMP
FOR NUM = 1 TO 10
SET MONTHSTAMP = TIMEPIECE(MONTH, TIMER1[NUM])
SET DOMSTAMP = TIMEPIECE(DOM, TIMER1[NUM])
SET YEARSTAMP = TIMEPIECE(YEAR, TIMER1[NUM])
SET TODSTAMP = TIMEPIECE(TOD, TIMER1[NUM])
PRINT MONTHSTAMP;
PRINT " ";
PRINT DOMSTAMP;
PRINT ", ";
PRINT YEARSTAMP
PRINT "
PRINT TODSTAMP
NEXT NUM
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
";
11-43
Advanced Keywords
Determining Amount of Free
Memory
GOAL: To determine whether or not you have room in memory to add another program.
Go to the Command window and enter the following command line:
P FREEMEM
FREEMEM Contains
Number of Bytes
The largest number of consecutive bytes of memory available
prints on the screen:
FREEMEM = 21086
To determine how many bytes of memory are required to enter your program, you can open a Command window from
inside the program file (see Chapter 9 for how) and enter this
command:
PR MORNING.WARM FILESIZE
This command prints the number of bytes in memory the
MORNING.WARM program file takes up. The FILESIZE attribute is equal to the number of bytes a program requires. The
controller prints a response like this:
MORNING.WARM Filesize = 101
The program requires 101 bytes. If you have enough room in
memory, you can continue to add to the program.
11-44
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Advanced Keywords
Determining the Version
on a Controller
GOAL: To determine which version of Infinity CX software
is running on any controller on the EnergyNet.
If you run into a problem with a program and call the Andover
Controls customer support office, you may be asked the version of Infinity CX that is running on your controller.
If you do not know which version is on the controller, go to
the Command window and enter the following command:
P BLDG1 VERSION
(You would use, of course, the name of your controller instead of BLDG1.)
The version number prints on the screen as follows:
VERSION = 1.0
The version may be different for different controllers on the
EnergyNet.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
11-45
Find Out Version of
Infinity CX
Advanced Keywords
11-46
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Chapter 12
Defining Your
Own Functions
This chapter covers the following topics:
• Understanding Categories of Keywords—Including
Functions
• Understanding the Purpose of Functions
• Determining You Need a Customized Function
• Creating a Function File
• Setting Attributes of a Function File
• Forming an Occupancy Function
• Using Arguments in a Function
• Forming a Start-Stop Function
www.PDF-Zoo.com
Defining Your Own Functions
Understanding Categories of
Keywords—Including
Functions
Keywords Belong in
Categories
Every word in the Andover Controls Plain English language
is a keyword. Keywords can also be particular types.
The types and some examples of each are as follows:
• Statements—Action words such as MOVE, TURN,
PRINT, GOTO that tell the controller to do something
• Operators—IS, OR, AND
• System Variables—MONTH, DAYOFMONTH, YEAR
• System Constants—ON, OFF, PASSED
• Programmable System Variables (discussed in future
chapters)—CPUPOWER, MODEMPOWER
• Functions—MINIMUM, MAXIMUM, SUM
In the Andover Controls Plain English Language Reference
you find that every keyword is assigned to a category, listed
below its name in the complete command and keyword
description.
A hierarchy illustrates the relationships:
Keywords
Statements
Operators
System Variables
System Constants
Programmable System Variables
Functions (predefined)
12-2
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Defining Your Own Functions
All Andover Controls Plain English words are keywords.
A statement always contains one statement word. You can
write a statement that contains operators, system variables,
system constants, or programmable system variables.
You can use a predefined function in a statement. For
instance, in the statement below, you use the MAXIMUM
function:
PRINT THE MAXIMUM (Room1Temp, Room2Temp)
Summary
• All Andover Controls Plain English words are keywords.
• Statements are action keywords that you use to form
program statements.
• Statements can contain other types of keywords, such as
system variables and operators, even functions.
• Functions can form statements without another statement
type keyword.
• MINIMUM, MAXIMUM, and SUM are examples of
predefined functions.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
12-3
Statements Can Contain
Other Keyword Types
Defining Your Own Functions
Understanding the Purpose of
Functions
Functions Carry Out
Tasks or Calculations
You use a function to carry out a particular task or calculation
and come up with a value or set of values.
An example of a function is the square root function, carried
out by the SQRT keyword:
SQRT(25)
A function is usually followed by parentheses, often with one
or more values inside them (although sometimes with no
values). The function acts on that value to obtain a result.
Any program can use a function. When a program uses a
function, the program “calls” the function.
The function is said to “return” the resulting value because it
brings the value back to the calling program. SQRT(25)
returns 5.
To call a function, you should set a numeric point equal to the
result of the function, as follows:
SET ROOT = SQRT(25)
Or you can simply print the result of the function:
PRINT SQRT(25)
The controller has many predefined functions, all of them
advanced keywords. Some of them are mathematical, such as
SUM, AVERAGE, MINIMUM, and MAXIMUM, designed
to be used with logs and presented in Chapter 8.
Other functions are for looking up values in data files (see
Chapter 13), still others for advanced math and advanced
string functions (see Chapter 18).
12-4
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Defining Your Own Functions
Summary
• A function carries out a particular task or calculation.
Functions Usually Have
Parentheses
• A function is usually followed by parentheses, with or
without a value inside them.
• We say a program “calls” a function.
• We say a function “returns” a result.
• The controller has many types of predefined functions,
some data file, some mathematical, and some string
functions.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
12-5
Defining Your Own Functions
Determining You Need a
Customized Function
Functions Are
Customized Keywords
If a calculation or process is complex enough and you use it
often enough, you do not want to have to type it in many
times. Instead, you type it once, in a function file. You then
use the function like a customized keyword whenever you
need it—in programs or command lines. You can use the
function only on the controller it resides on; however, you
may copy the same function to many controllers.
To determine you need a function, look at the kinds of actions
you repeat:
• You frequently test for occupancy.
• You start and stop different pieces of equipment on the
basis of the same or related information.
In each case, you can avoid repetitions in programs by
creating a function to do that task whenever you need it.
The first few steps to writing a function are different from
those to write a program. They are:
1. Define the task or calculation you want to carry out.
2. Define the values you want to bring in to the task or
calculation.
3. Define the values you want the task or calculation to
return.
After that you proceed just as you would to write a program.
12-6
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Defining Your Own Functions
Summary
• Writing a function is like creating your own keyword.
• You use a function to avoid repeating a procedure or
calculation in more than one program.
• You can use a function whenever you need it in programs
or command lines.
• You must use the function on the controller it is located on.
• Before you write a function, you must:
• Define the task or calculation.
• Define the values you want to use.
• Determine the values you want to return.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
12-7
You Can Call Functions
Whenever Needed
Defining Your Own Functions
Creating a Function File
Select Edit Files from the
Main Menu Bar
To create a function file, you proceed just as you would to
create any other file.
As shown in Figure 12-1, from the Main menu bar, you select
Edit Files.
Figure 12-1. Selecting Edit Files from the Menu
View
Edit
Connect
Logout
Users
Points
Files
CommPorts
Controller
Infinet Controller
System Date & Time
System Variables
Persons
Areas
Doors
Figure 12-2 shows the Open a File window that appears on
your screen. The cursor is in the Name text box. You press
the NEXT ATTRIBUTE key to move from text box to text
box. (Press the PREVIOUS ATTRIBUTE key to move
backwards.)
12-8
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Defining Your Own Functions
Figure 12-2. Open a File Window
View
Edit
Connect
Logout
Open a File
Controller
Infinet Ctlr
Name
1. To name the function file, type the name of a new function.
This name later becomes a keyword that you use to
activate the function. The name can have up to 16
characters and must begin with a letter of the alphabet.
You can include underscores, periods, and numbers in the
name.
2. Press the EXECUTE key to proceed.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
12-9
Defining Your Own Functions
Setting Attributes of a
Function File
As shown in Figure 12-3, as soon as you have named your
file, the File Configuration window appears.
Figure 12-3. File Configuration Window
Edit
View
Connect
Logout
File Configuration – BLDG1 FLOOR1
Name OCCUPANCY
Description Decides if occupied
Type
SAVE
( ) Program
(X) Function
CANCEL
( ) Data
( ) Report
DELETE
(X) Command Line
Select Function in File
Configuration Window
DETAILS
You press the NEXT ATTRIBUTE key to move from text
box to text box. (Press the PREVIOUS ATTRIBUTE key to
move backwards.)
You set file attributes as follows:
1. Name—Change it if you want. If you change the name
here, the new name replaces the old name for that function,
just as for a point or program. Remember, this name
becomes the keyword you later use to call the function.
See previous page for characters allowed.
2. Description—Type one in the text box if you want. It is
optional.
12-10
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Defining Your Own Functions
3. Type—Arrow to Function and press the space bar. This
file is a function file.
4. CommandLine—Press the space bar to toggle this ON if
you want to be able to run this function from the
Command window by typing only the “command”
(function) name.
5. Move to the SAVE button and press the EXECUTE key.
Or press the EXECUTE key from any other text box in the
window to save. Or press the SAVE key to save the file
configuration information and enter the Editor window.
6. You can press the CANCEL button and start over or press
the DELETE button to remove the file.
Summary
• You set function file attributes in the File Configuration
window.
• You can move to the editor with the SAVE button, or press
the EXECUTE key or SAVE key.
• You can cancel or delete the function using the CANCEL
or DELETE buttons.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
12-11
Select Function File as
File Type
Defining Your Own Functions
Forming an Occupancy
Function
GOAL: To determine whether or not the building is occupied
and return ON if it is and OFF it is not. Occupancy is based
on the time of day and day of the week.
Occupancy Is Basis for
Many Actions
According to the sequence of operation, whether the building
is occupied or not is the basis for many changes in operation,
so it is a good idea to make it a function.
In the Open a File window, name the file OCCUPANCY.
Later, after you press the SAVE button in the File
Configuration window, the Editor window appears, just as
it does for a program.
Writing the Function
Suppose the building is normally occupied between 8:00 a.m.
and 7:00 p.m. Monday through Friday, but only until 1:00
p.m. on Saturday. The TRUE-FALSE comparisons and
statements required to create this function are very
straightforward.
The first one would test for Monday through Saturday:
IF WEEKDAY IS MON THRU SAT THEN...
You would then use a nested IF to select the time for Monday
through Friday:
IF WEEKDAY IS MON THRU SAT THEN
IF WEEKDAY IS MON THRU FRI AND TOD IS ~
800 THRU 1900 THEN SET OCCUPIED TO ON
12-12
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Defining Your Own Functions
You then use another nested IF to test for Saturday and set
OCCUPIED to ON for before 1:00 p.m. and to OFF for after:
IF WEEKDAY IS MON THRU SAT THEN
IF WEEKDAY IS MON THRU FRI AND TOD IS~
800 THRU 1900 THEN SET OCCUPIED TO ON
ELSE
IF WEEKDAY IS SAT AND TOD IS 800 THRU 1300 THEN~
SET OCCUPIED TO ON
ELSE SET OCCUPIED TO OFF
Finally, you would complete the first IF..THEN statement
with a closing ELSE that tells what to set OCCUPIED to
when the day is not Monday through Saturday:
ELSE SET OCCUPIED TO OFF
A major difference between a function and a program is that
the function is always FallThru, which means it proceeds
sequentially. You cannot use LINE statements or GOTO in a
function.
Sending Result Back to Calling Program
Finally, to complete the function, you have to return to the
calling program with the value of the function. To carry out
this action you need a new keyword: RETURN
RETURN carries out two actions:
• Returns the controller to the calling program.
• Brings the value you designate to the calling program.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
12-13
Nest IF..THEN by Putting
One Inside Another
Defining Your Own Functions
You enter a RETURN statement like this:
RETURN OCCUPIED
RETURN Is the Last
Statement in a Function
RETURN is usually the last statement in the function.
The value being returned occurs after RETURN. Since
OCCUPIED is a numeric point equal to either ON or OFF, the
program that receives the returned value gets ON or OFF for
OCCUPANCY.
You may return with no values by using simply:
RETURN
Figure 12-4 shows the entire function file. Notice that in this
example, you do not see ELSE ending an IF..THEN statement. Whenever you use nested IFs, to keep the structure of
the IF..THEN clear, use ENDIF in your statements.
To see if OCCUPANCY is working properly, insert a PR
statement inside the function to print OCCUPIED. When you
call the function in a program, any PR and PRINT statements
print information in the Message window.
If you, however, call the function from the Command
window, its PR and PRINT statements print the information
in the Command window.
Calling the Function from a Program
The programs that call OCCUPANCY may include one of the
following statements:
IF OCCUPANCY() IS ON THEN...
OR
IF OutsideAir < 40 AND OCCUPANCY() IS ON THEN...
12-14
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Defining Your Own Functions
Figure 12-4. OCCUPANCY Function
File
Edit
Search
Check
Tools
BLDG1 FLOOR1 OCCUPANCY
IF WEEKDAY IS MON THRU SAT THEN
IF WKD IS MON THRU FRI AND TOD IS 800 THRU 1900 THEN
SET OCCUPIED TO ON
ELSE
IF WKD IS SAT AND TOD IS 800 THRU 1300 THEN
OCCUPIED = ON
ELSE
OCCUPIED = OFF
ENDIF
ENDIF
ELSE
SET OCCUPIED TO OFF
ENDIF
PR OCCUPIED
RETURN OCCUPIED
Calling the Function from the Command
Window
You can also call OCCUPANCY from the Command
window, as follows:
Commands Can Use
Functions
OCCUPANCY1
The following response prints in the Command window:
OCCUPIED = ON
1. In this case, you do not need the parentheses, because OCCUPANCY is the
first word in the command line. The same is true in a program statement—
parentheses are not required if the function is the first word in a statement,
even after THEN or ELSE.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
12-15
Defining Your Own Functions
How Function Makes Program More
Efficient
The HEAT.NOHEAT program you wrote earlier had a test for
if the day of the week was Sunday.
As shown in Figure 12-5, using the OCCUPANCY function
more easily tests for occupied or not, without forcing you to
rewrite the entire program.
Figure 12-5. Modified HEAT.NOHEAT Program—
Looping
File
Edit
Search
Check
Tools
CENTRALPLANT HEAT.NOHEAT
LINE NOTHEATING
IF THE OutsideAir < 50 THEN GOTO START.BURNER
ELSE
TURN OFF THE Burner AND THE HWPump1
CLOSE THE HWP1ISOValve AND THE CONVRTR.PRGM
ENDIF
LINE START.BURNER
TURN ON THE Burner
IF TM > 3 THEN
START THE CONVRTR.PRGM
GOTO ADJUSTING
ENDIF
LINE ADJUSTING
TURN THE BurnerHiFire ON ’Sets Burner to High
OPEN THE HWP1ISOValve
TURN ON THE HWPump1
IF OCCUPANCY() IS ON THEN SET THE HWsetpt TO 130
ELSE SET THE HWsetpt TO 100
IF THE OutsideAir > 50 AND TM > 3 THEN GOTO NOTHEATING
12-16
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Defining Your Own Functions
Summary
• Create a function when you find a condition that is the
basis for many different actions.
• Every function must define any local variables at the top
of the file.
You Cannot Use LINE or
GOTO in Functions
• You cannot use LINE or GOTO in a function.
• Every function must use the RETURN keyword to:
• Return to the calling program.
• Bring the resulting value (if any) to the calling
program.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
12-17
Defining Your Own Functions
Using Arguments in a
Function
Create a Function to
Calculate a Value
Suppose you want to calculate a value you use frequently.
To calculate the result, the function must get three values
from a point:
OutsideAir[1]
OutsideAir[2]
OutsideAir[3]
So how does the function get values from the calling
program?
They are passed into the function as “arguments.”
The line in the program that “calls” the function includes the
arguments in parentheses after the function name.
Figure 12-6 shows a calling line in a program.
Figure 12-6. Calling Program Line for TESTING
Function
File
Edit
Search
Check
Tools
CENTRALPLANT CALLINGPROG
SET RESULT TO TESTING(OutsideAir[1], OutsideAir[2], OutsideAir[3])
12-18
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Defining Your Own Functions
The function then uses the first value for ARG[1], the second
for ARG[2], the third for ARG[3].
You can use ARG[1], ARG[2], and ARG[3] (up to 15) for
argument names in a function. Or you can rename them in the
function file using the ARG keyword:
ARG 1 OAT1
ARG 2 OAT2
ARG 3 OAT3
These statements give the new arguments names to make
them easier to understand. You usually put these at the top of
the program and then define your local variables to hold the
results of your calculations. You use NUMERIC, STRING,
and DATETIME keywords to form the local variables, just as
you would in a program.
With NUMERIC, you can define more than one local variable
in one statement:
NUMERIC RESULT1, RESULT2
The keywords you need in addition to ARG and NUMERIC
are SET and RETURN.
Figure 12-7 shows an entire function file.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
12-19
ARG Assigns Names to
Functions in Order
Defining Your Own Functions
Figure 12-7. TESTING Function
File
Edit
Search
Check
Tools
CENTRALPLANT TESTING
ARG 1 OAT1
ARG 2 OAT2
ARG 3 OAT3
NUMERIC RESULT1, RESULT2
SET RESULT1 = AVERAGE(OAT1, OAT2)
SET RESULT2 = AVERAGE(OAT2, OAT3) – RESULT1
RETURN RESULT2
Usually, you write more complex functions, such as the stopstart function in the next section. You use the same elements
in every function that receives arguments or requires
calculations.
12-20
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Defining Your Own Functions
Summary
• ARG[1] through ARG[15] contain arguments passed to a
function. They accept all types.
• You can rename ARG variables using this format:
ARG 1 OAT1
This statement renames ARG[1] to OAT1.
• The function assigns the first argument from the calling
program to ARG[1], the second to ARG[2], the third to
ARG[3], and so on.
• You can name variables in a function that are not
arguments. You use NUMERIC, STRING, and
DATETIME to name variables.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
12-21
ARG Can Rename Up to
15 Arguments
Defining Your Own Functions
Forming a Start-Stop Function
GOAL: To start and stop the chiller or air handler based on
the outside air temperature and occupancy.
One Function Can Start
Different Equipment
You can write one function that starts and stops any piece of
equipment. When you call the function, you give it arguments
that tell it the name of the piece of equipment, the outside air
temperature, and the occupancy.
You can have a function call another function, so you could
have this function call the OCCUPANCY function. Or you
could have a point called OCCUPIED.
Caution
Do not use recursive functions when programming Infinity.
If you use a point to determine occupancy instead of calling a
function, you can trigger the new function based on
occupancy. Since this function should be triggered by either a
change in temperature or a change in occupancy, you would
make both these points triggers:
OutsideAir
Occupied
You start the function by renaming the three arguments:
ARG 1 EQUIPMENT
ARG 2 TEMP
ARG 3 OCCUPANCY
Then you test the temperature and occupancy, as shown at the
top of the next page.
12-22
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Defining Your Own Functions
IF TEMP > 75 AND OCCUPANCY IS ON THEN SET~
EQUIPMENT TO ON
ELSE SET EQUIPMENT TO OFF
Either the chiller or the fan could be the equipment. The
calling program uses the function as required—to stop or to
start any appropriate piece of equipment.
Figure 12-8 shows the entire function file.
Figure 12-8. STOP.START Function
File
Edit
Search
Check
Tools
CENTRALPLANT STOP.START
ARG 1 EQUIPMENT
ARG 2 TEMP
ARG 3 OCCUPANCY
IF TEMP > 75 AND OCCUPANCY IS ON THEN SET EQUIPMENT TO ON
ELSE SET EQUIPMENT TO OFF
The calling program must give three arguments. All of the
following could be statements calling this function:
STOP.START(FLOW, AV.SpTemp, OCCUPIED)
STOP.START (Chiller, OutsideAir, OCCUPIED)
Notice that each calling statement names a different piece of
equipment and source of temperature. The statement calling
the FLOW point gives an average of the space temperature,
rather than a simple input point value. Each statement could
also use a different point to determine occupancy, although
both of these use OCCUPIED.
This function is simple, yet versatile. You can use it in a
variety of programs to avoid reprogramming similar actions.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
12-23
Calling Statements Use
Different Arguments
Defining Your Own Functions
12-24
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Chapter 13
Creating, Using, and
Searching for Data in Files
This chapter covers how to create and write to a data file, read
one to write a report, and how to look up facts in data files
with a function called LOOKUP:
•
•
•
•
•
•
•
www.PDF-Zoo.com
Understanding Data Files
Creating Your Own Data File
Filling the Data File with Values
Using the Data in a Report
Retrieving the Data for More Manipulation
Looking Up Facts in Data Files
Looking Up More Facts in Data Files
Data Files
Understanding Data Files
Data Files Store
Information
A data file is a file where you store information. You could
store temperatures of zones, kilowatt usage of zones, standard
deviations of temperatures from setpoints and so on. To
understand data files, let’s look at one that already exists.
It contains two pieces of data—the zone name and the
kilowatt usage for the last complete month.
Figure 13-1 shows the structure of the data file.
Figure 13-1. KW.USAGE Data File
File
Edit
Search
Check
Tools
BLGD1 KW.USAGE
RECORD 6
STRING ZONENAME 5
NUMERIC KW 4
"Zone1", 400
The First Record
"Zone2", 450
"Zone3", 425
"Zone4", 375
"Zone5", 280
"Zone6", 467
The RECORD keyword is at the top of the data file. It tells
that there are six “records” in this file.
Each line of information is a “record.” The records start with
the fourth line of this file.
Each record in this file contains two pieces of information
called “fields,” separated by a comma.
Each field in any data file is defined by assigning it a type. (As
with a point, the type can be NUMERIC, STRING, or
DATETIME.) The first field is designated by the first
13-2
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Data Files
statement below the RECORD statement, the second field by
the second. For more fields, the statements continue, in order.
In this file, each field has not only a type, but a name, after the
type. Each also has a number after the name to tell the length
of the field.
Fields Can Have Types
and Names
Figure 13-2 breaks down the fields in one record. The first
field is a string. The STRING keyword, followed by the name
and length, ZONENAME 5, defines the field as a string field
called ZONENAME with five characters.
Figure 13-2. Two Fields in a Data File Record
File
Edit
Search
Check
Tools
BLGD1 KW.USAGE
STRING ZONENAME 5
NUMERIC KW 4
"Zone1", 400
NUMERIC Field, called KW
STRING Field, called ZONENAME
The second field is a numeric type. The NUMERIC keyword,
followed by the name and length, KW 4, tells you the field is
a numeric field called KW with four characters.
Referring to a Single Piece of Data
You can refer to any particular piece of data in the file by the
record number for the row and the field name or column
number for the column.
Figure 13-3 points out a single piece of data in the file.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
13-3
Data Files
Figure 13-3. A Single Piece of Data in KW.USAGE
File
File
Edit
Search
Check
Tools
BLGD1 KW.USAGE
RECORD 6
STRING ZONENAME 5
NUMERIC KW 4
"Zone1",
400
"Zone2",
450
"Zone3",
425
"Zone4",
375
"Zone5",
280
Single Piece of Data in a Record,
Row 5, Column 2 (Record 5, KW Field
"Zone6",
467
or Record 5, Column 2)
You can call out the number 280 above by its location in two
ways:
• Record 5, KW field
OR
• Record 5, Column 2
Special PRINT Statement
Prints Data from Record
To print the value in that field of this file (named KW.USAGE),
you use PRINT like this (must on the same controller):
PRINT KW.USAGE [5].KW
PRINT KW.USAGE [5] [2]
Either of these statements would print:
280
It is convenient that Zone 5 is in the fifth record. But that is
more than mere coincidence. You can set up a file in a way
that makes it easy to use.
13-4
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Data Files
Summary
• All data files have the RECORD keyword at the top of the
file.
• After the RECORD keyword is the number of records in
the file.
• Each line of data in a file is called a “record.”
• Items in records are in “fields,” separated by commas.
• Each field must have a type given in a NUMERIC,
STRING, or DATETIME statement.
• Each field can have a name and a length in addition to a
type, but only the type is required.
• You can call on a single piece of data by its record number
(row) and field name (column), or record number (row)
and column number.
• You can print a single piece of data two ways:
—PRINT followed by the file name, record number, and
field name, as follows:
PRINT FILE1 [4].ZONENAME
—PRINT followed by the file name, record number, and
column number, as follows:
PRINT FILE1 [4] [2]
• A program that accesses a data file must be located on the
same controller as the data file. You cannot retrieve data
from a data file on another controller.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
13-5
RECORD Keyword Must
Be at Top of File
Data Files
Creating Your Own Data File
GOAL: To create a data file that contains the daily averages
of three logs for a week, OAT, TEMP, and DEWPT, and to
note whether or not the average temperature exceeded
setpoint on any day that week.
Create a Data File
You create a data file as follows:
1. Return to the Main menu bar and select Edit Files.
2. Name the file in the Open a File window. The name may
be up to 16 characters long and must begin with a letter of
the alphabet. You can include underscores, periods, and
numbers in the name.
After you press EXECUTE the File window appears.
3. Select Data for the TYPE attribute of the file.
4. Press the SAVE button or the EXECUTE or SAVE key to
move to the Editor window.
5. In the Editor window, enter the RECORD statement. Since
the file is to contain a week’s worth of entries, have it
contain seven records.
(If you enter no number after RECORD, the number of
records is automatically set to 1.)
Below RECORD
Statement, Define Fields
6. Below the RECORD statement, define your fields using
NUMERIC, STRING, and DATETIME as required. For
this file, define four fields:
• A numeric field to contain SUNDAY through
SATURDAY, with a length of 9. Remember that even
though the days of the week have names, they are still
understood as numbers.
• A numeric field for the average OAT, with a length of 4.
13-6
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Data Files
• A numeric field for the average TEMP, with a length of 4.
• A numeric field for the average DEWPT, with a length of 4.
• A string field for the “exceeded” or “below” setpoint.
You may make a string up to 128 characters long. If you
do not give a length, the different types are automatically
set to these lengths:
• NUMERIC = 15
• STRING = 16
DateTime Fields Require
Length of at Least 20
• DATETIME = 20 (Your setting must be at
least 20, or 20 automatically replaces it.)
Figure 13-4 shows the statements after you’ve entered
them in the WK.AVGS data file.
Figure 13-4. Setting Up the WK.AVGS Data File
File
Edit
Search
Check
Tools
BLDG1 WK.AVGS
RECORD 7
NUMERIC DAY.WK 9
NUMERIC OATAVG 4
NUMERIC TEMPAVG 4
NUMERIC DEWPTAVG 4
STRING EXCEED 8
7. Press the CANCEL WINDOW key to return to the File
menu bar and select Check.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
13-7
Data Files
8. You should receive a No Errors! message in the message
bar.
9. Select File Save and File Quit to save and exit the file.
10. Reopen the file.
Figure 13-5 shows the skeletal set up of the WK.AVGS
data file.
Figure 13-5. Skeletal Setup of WK.AVGS Data File
File
Edit
Search
Check
Tools
BLDG1 WK.AVGS
RECORD 7
NUMERIC DAY.WK 9
NUMERIC OATAVG 4
NUMERIC TEMPAVG 4
NUMERIC DEWPTAVG 4
STRING EXCEED 8
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
"
"
"
"
"
"
"
"
"
"
"
"
"
"
The empty records have quotation marks around blanks for
the strings and zeros for the numbers. Each field allows the
number of characters you indicated for the length.
An “empty” DATETIME field would be filled with 1/1/89
12:00:00 am.
Empty Data File Appears
with Field Formats
Now you have a skeleton for the data file you want to put
values into. Next, you must write a program to calculate the
values and put (“write”) them into the file.
The next section explain how to fill the file from a program.
13-8
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Data Files
Summary
• To create a data file, select Data for the TYPE attribute of
the file.
• Always enter a RECORD statement at the top of the file.
• If you do not specify a number of records, the number is
set to 1.
• When you give the field types below the record statement,
if you do not specify a length for each field, the automatic
settings are:
• NUMERIC 15
• STRING 16
• DATETIME 20
• A DATETIME field must have at least 20 characters.
• After you check for errors, save, and close the data file,
when you reopen it, the “empty” fields are displayed with
blanks for strings, zeros for numbers, and 1/1/89
12:00:00 am for datetimes.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
13-9
Number of Records Sets
to 1 Automatically
Data Files
Filling the Data File with
Values
GOAL: To fill the skeleton of WK.AVGS with the daily
averages for a week of three logs, OAT, TEMP, and DEWPT.
The WRITE Function
WRITE Puts Values into a
Data File
To put values into a data file, you use an advanced keyword
called WRITE.
WRITE is a function that returns the status of the writing
process:
• SUCCESS—Write successful.
• EOF—Write failed because the data file is full.
It also fills a particular data file you name, putting the data in
a record number you specify, and then filling the fields with
the data or variable values you include.
IF WRITE(WK.AVGS, REC, WKD, OATAVG, ~
TEMPAVG, DEWPTAVG, EXCEED) = SUCCESS THEN
This statement writes the data into the data file named
WK.AVGS, filling the record number REC field 1 with the
WEEKDAY (WKD), field 2 with the value of OATAVG,
field 3 with the value of TEMPAVG, field 4 with the value of
DEWPTAVG, and field 5 with EXCEEDED or BELOW.
The statement also tests the WRITE to see if it returns
SUCCESS.
13-10
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Data Files
The Program Steps
To complete the program, let’s look at the single-action steps
required:
Note
A program that accesses a data file must be located on the
same controller as the data file. You cannot retrieve data from
a data file on another controller.
Trigger if WEEKDAY changes and the logs (OAT, TEMP,
and DEWPT) have been filled for the day.
1. Set DAY.WK.
2. Calculate the OATAVG for that day and store it in the
array.
3. Calculate the TEMPAVG for that day and store it in the
array.
4. Calculate the DEWPTAVG for that day and store it in the
array.
5. Check to see if setpoint has been exceeded and set
EXCEED to either “EXCEEDED” or “BELOW.”
6. Write the day’s values into that day’s record.
7. Repeat steps 1 through 7 until the data file is full (contains
seven records).
This data is written into the file over a period of a week. Each
day the same action must take place.
Figure 13-6 shows the program. It should be triggered by
WEEKDAY changing.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
13-11
Write Single Action
Steps of Program
Data Files
Figure 13-6. CREATE.DATA Program
File
Edit
Search
Check
Tools
BLDG1 FLOOR1 CREATE.DATA
NUMERIC DAY.WK[7], OATAVG [7], TEMPAVG [7], DEWPTAVG [7]
STRING 9 EXCEED[7]
IF HOUR IS = 23 THEN
DAY.WK [WEEKDAY] = WEEK
OATAVG [WEEKDAY] = AVERAGE(OAT)
TEMPAVG [WEEKDAY] = AVERAGE (TEMP)
DEWPTAVG [WEEKDAY] = AVERAGE (DEWPT)
IF TEMPAVG [WEEKDAY] > TEMPSETPT THEN SET EXCEED ~
TO "EXCEEDED" ELSE SET EXCEED TO "BELOW"
IF WRITE (WK.AVGS,WKD,DAY.WK[WEEKDAY],~
OATAVG[WEEKDAY],TEMPAVG[WEEKDAY], ~
DEWPTAVG[WEEKDAY],EXCEED[WEEKDAY])IS EOF~
THEN RUN WKLY.AVG.RPT
ENDIF
Variables in the Program
Variables to Contain
Data Are Arrays
The first two statements in the program define the local
variables. They are:
• Four numeric arrays, each with seven entries, one for each
day of the week.
• A string array with nine characters and seven entries, one
for each day of the week.
Triggering the Program
The program triggers when the day changes. When the HOUR
is equal to 23 (time is after 11:00 p.m.), the controller:
• Sets the DAY.WK to the day of the week.
• Averages each log (OAT, TEMP, and DEWPT).
13-12
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Data Files
• Checks the temperature setpoint against the average
temperature for the day and sets EXCEED to either
“EXCEEDED” or “BELOW.”
Using WEEKDAY as an Index Variable
WEEKDAY is especially useful here because it is both a
number and a word, depending on how you use it.
If you set a field to the WEEKDAY, the controller puts the
spelled-out weekday in the field. (If you want only the first
three characters of the weekday, print weekday to a string that
is only three characters long and the controller automatically
cuts the name short.)
Since each record number matches the day of the week
number for that record (first record is Sunday, second is
Monday, and so on), the WEEKDAY system variable can be
both the record number and the array index variable.
When WEEKDAY is Sunday, its numeric value is 1, so
OATAVG[WEEKDAY] becomes OATAVG[1] and prints in
record 1.
When WEEKDAY is Wednesday, its numeric value is 4, so
OATAVG[WEEKDAY] becomes OATAVG[4] and prints in
record 4.
If WRITE has filled all the records, the status of the writing
process is then EOF.
When the status is EOF, the program prints a report called
WKLY.AVG.RPT. The report reads the data and prints it out
in a particular format.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
13-13
WEEKDAY Can Be
Number or String
Data Files
A Sample Filled Data File
Figure 13-7 shows the filled WK.AVGS data file.
Figure 13-7. Filled WK.AVGS Data File
File
Edit
Search
Check
Tools
BLDG1 WK.AVGS
RECORD 7
NUMERIC DAY.WK 9
NUMERIC OATAVG 4
NUMERIC TEMPAVG 4
NUMERIC DEWPTAVG 4
STRING EXCEED 8
SUNDAY, 28.2, 70.1,
MONDAY, 31.1, 72.2,
TUESDAY, 29.8, 71.6,
WEDNESDAY, 28.5, 71.2,
THURSDAY, 26.7, 70.3,
FRIDAY, 25.1, 70.0,
SATURDAY, 27.6, 71.0,
27.5,
32.1,
32.0,
32.1,
30.5,
28.6,
29.1,
"BELOW
"
"EXCEEDED"
"EXCEEDED"
"BELOW
"
"BELOW
"
"BELOW
"
"BELOW
"
Details on how the report file uses the data file are covered
next.
If you enter all this data by hand, you need only enter the first
three letters of each weekday. Once you close, then reopen the
file, the controller replaces each abbreviation with the full
weekday name.
In addition, you can have numeric fields containing ON, OFF,
–ON, SUCCESS, FAILURE, EOF, and any of the months of
the year as well as the days of the week.
13-14
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Data Files
Summary
• To create the skeleton of a data file, you enter the
RECORD statement and the field types in a data file.
• You use the WRITE keyword to fill a data file with values.
WRITE Is Either
SUCCESS or End of File
• WRITE returns the status of the writing process,
SUCCESS or EOF (end of file).
• WRITE puts the data in a particular file you name and a
particular record number you specify.
• WRITE puts each piece of data into a field that matches
the type of the name or number you specify.
• Because WEEKDAY is both a word and a number, you
can use it for each of these:
—To put the spelled-out weekday name in a numeric field.
—As a record number or array index variable.
—To fill a string variable with the weekday name.
• A program that accesses a data file must be located on the
same controller as the data file. You cannot retrieve data
from a data file on another controller.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
13-15
Data Files
Using the Data in a Report
GOAL: To print a report using the WK.AVGS data file (in
the previous section).
A Report Program Prints
Data in Readable Format
A data file contains straight facts, without a PRINT format.
You can print out each record in a format using a program.
The program would contain a series of PRINT statements,
each with a format indicating how the text should appear.
Some of the formats for PRINT were presented in Chapter 9.
We won’t repeat much of that information here. If you do not
recognize the formats (shown with pound signs and @ signs
in a PRINT statement) used here, refer to the PRINT keyword
in the Andover Controls Plain English Language Reference.
The program should include:
• The title of the report.
• The week ending date (the current day’s date is the end of
the week).
• Column heads for Day, Average Outside, Average Indoor,
and Average Dewpoint.
• The data.
Figure 13-8 shows what the report file could contain.
13-16
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Data Files
Figure 13-8. WKLY.AVG.RPT Program—FallThru
File
Edit
Search
Check
Tools
BLDG1 FLOOR1 WKLY.AVG.RPT
NUMERIC N
PRINT "
Weekly Report on Heat Control System"
PRINT "
for Week Ending |################", DATE
PRINT " "
PRINT "
Temperatures (degrees Fahrenheit)"
PRINT "Week
Average
PRINT "Day
Outside
Average
Indoor
Average"
Dewpoint"
PRINT " "
FOR N = 1 TO 7
PRINT "
|@@@", WK.AVGS[N].DAY.WK, ~
"
|###.#",~WK.AVGS [N].OATAVG, ~
"
|###.#", WK.AVGS [N].TEMPAVG,~
"
|###.#", ~WK.AVGS [N].DEWPTAVG
NEXT N
Figure 13-9 shows the report that prints.
Figure 13-9. WKLY.AVG.RPT Report
Week
Day
Sun
Mon
Tue
Wed
Thu
Fri
Sat
Weekly Report on Heat Control System
for Week Ending January 20, 1990
Temperatures (degrees Fahrenheit)
Average
Average
Average
Outside
Indoor
Dewpoint
28.2
70.1
27.5
31.1
72.2
30.1
29.8
71.6
28.0
28.5
71.2
26.7
26.7
70.3
24.3
25.1
70.0
23.6
27.6
71.0
25.8
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
13-17
Data Files
Retrieving the Data for More
Manipulation
GOAL: Retrieve the OATAVG, TEMPAVG, and
DEWPTAVG for each day from the WK.AVGS data file and
add it to a data file that stores the daily averages for every day
of the year.
To get information from a data file, you can use an advanced
keyword called READ. READ reads an entire record in a data
file and puts the data into a list of variables for use in a
program. The program, in this case, writes the data into
another data file.
READ Retrieves Values
from Data File
READ can put the data into different variable names. As long as
the types match, you can read or write data to different names.
First, to retrieve (read) the data, use a typical READ statement:
RESULT = READ (WK.AVGS, REC, OATS, TEMPS,~
DEWPTS)
The statement reads the WK.AVGS file, record number REC,
and reads three variables, all numeric, in the order they occur
in the record.
READ, like WRITE, returns a status of SUCCESS or EOF.
So the READ statement is not complete unless it is set equal
to a status variable (named RESULT here) or tested for being
equal to SUCCESS in an IF..THEN statement.
NUMERIC RESULT
The program needs to test the RESULT to be sure the reading
was successful before it can write any of the data. A statement
that tests WRITE for success is at top of next page.
Figure 13-10 shows the complete program, where you must
also define the variables.
13-18
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Data Files
IF RESULT = SUCCESS THEN
IF WRITE (DAY.AVGS.90, WRITE.REC, DY.WK,~
OATS, TEMPS, DEWPTS) = SUCCESS
PRINT "Writing Record Number ", WRITE.REC
Program Checks for
Status of WRITE
ELSE PRINT "End of Writing to DAY.AVGS.90 File."
ELSE PRINT "End of Reading from WK.AVGS File."
Since REC is the record number for READ, and the record
numbers are not the same for WRITE, you can use
WRITE.REC as the record number for WRITE.
To find the WRITE.REC, since you are writing a record for
every day of the year, you use DAYOFYEAR.
Figure 13-10. DAY.DATA.PROG Program
—FallThru
File
Edit
Search
Check
Tools
BLDG1 FLOOR1 DAY.DATA.PROG
NUMERIC RESULT
STRING DY.WK
NUMERIC OATS, TEMPS, DEWPTS
FOR REC = 1 TO 7
RESULT = READ(WK.AVGS, REC, DY.WK, OATS, TEMPS, DEWPTS)
IF RESULT = SUCCESS THEN
SET WRITE.REC TO (DAYOFYEAR -8) + REC
IF WRITE.REC IS LESS THAN OR EQUAL TO 0 THEN CONTINUE
IF WRITE(DAY.AVGS.90, WRITE.REC, DY.WK, OATS,TEMPS,~
DEWPTS)=SUCCESS THEN PRINT"Writing Record Number ",~
WRITE.REC
ELSE PRINT "End of Writing to DAY.AVGS.90 File."
ELSE
PRINT "End of Reading WK.AVGS File."
BREAK
ENDIF
NEXT REC
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
13-19
Data Files
The DAYOFYEAR when the write begins is the last day of
the week from WK.AVGS. You do not want to write the first
record to the current day of the year, but to one seven days
before it. So you calculate DAYOFYEAR – 8 PLUS
WEEKDAY (or PLUS REC) to find the correct record to
store the data in.
What would you do then if the WRITE.REC is less than 7?
For instance, what if Saturday is January 6, so DAYOFYEAR
is 6? Then 6 minus 8 is –2, plus 1 for Sunday is –1. This means
that the Sunday of the first week’s data is from the previous
year! In that case, you employ the CONTINUE statement.
CONTINUE Takes Loop
to Next Value
CONTINUE halts the FOR..NEXT loop at the current line
and starts the loop over with the next value. So, for the week
ending January 6, the program skips Sunday (1) and proceeds
to Monday (2).
Figure 13-11 shows what DAY.DATA.PROG prints in the
Message window if the writing process is successful.
Figure 13-11. Text That Prints in Command Window
View
Edit
Connect
Logout
Messages – FLOOR1
Writing Record Number 14
Writing Record Number 15
Writing Record Number 16
Writing Record Number 17
Writing Record Number 18
Writing Record Number 19
Writing Record Number 20
Figure 13-12 shows the what DAY.DATA.PROG writes into
the DAY.AVGS.90 data file.
13-20
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Data Files
Figure 13-12. DAY.AVGS.90 Data File
File
Edit
Search
Check
Tools
BLDG1 WK.AVGS
RECORD 365
STRING DY.WK
NUMERIC DAYOATAVG
NUMERIC DAYTEMPAVG
NUMERIC DAYDEWPTAVG
"MON",
"TUE",
"WED",
"THU",
"FRI",
"SAT",
"SUN",
"MON",
"TUE",
"WED",
"THU",
"FRI",
"SAT",
"SUN",
"MON",
"TUE",
"WED",
"THU",
"FRI",
"SAT",
42.1, 72.2, 42.7
39.8, 71.6, 42.0
38.5, 71.2, 42.1
36.7, 70.3, 40.5
35.1, 70.0, 38.6
37.6, 71.0, 39.1
38.2, 70.1, 37.5
41.1, 72.2, 42.1
29.8, 71.6, 32.0
28.5, 71.2, 32.1
26.7, 70.3, 30.5
25.1, 70.0, 28.6
27.6, 71.0, 29.1
28.2, 70.1, 27.5
31.1, 72.2, 32.1
29.8, 71.6, 32.0
28.5, 71.2, 32.1
26.7, 70.3, 30.5
25.1, 70.0, 28.6
27.6, 71.0, 29.1
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
The Last Week’s Seven Records
Added onto the End of the File.
13-21
Data Files
Summary
• To retrieve a record from a data file, you use the READ
statement.
• In a READ statement, you give the first record to read and
the names of the variables to put the data into.
• READ returns the status of the reading process, either
SUCCESS or EOF (end of file).
• READ puts each of the fields in the data file into a variable
name that matches the type of the field.
Types of Data and
Variable Must Match
• You can put the same data into different variable names
with READ or WRITE, as long as the types match.
• CONTINUE stops the FOR..NEXT loop on the current
line and returns to the beginning to execute it again using
the next index variable value.
• Remember that a program that accesses a data file must be
located on the same controller as the data file. You cannot
retrieve data from a data file on another controller.
13-22
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Data Files
Looking Up Facts in Data Files
GOAL: To find and print the average OAT and average
DEWPT for this past Tuesday in the WK.AVGS file (from
earlier section).
To find data in a file where you know the contents of a field
(for example, you know DAY.WK contains the weekday
name and is the first column of the data file), you use a
keyword called LOOKUP.
Searching Records
Before you can use LOOKUP, you must define a variable to
represent the first record to search. Let’s call that variable
RECNUM and set it equal to 1, for the first record.
NUMERIC RECNUM
RECNUM = 1
To look up a record in this data file, you then use the
LOOKUP keyword, giving it the exact word or number you
are looking up and the column number of the field it is in, as
follows (strings must be in quotation marks):
NUMERIC RESULT
RESULT = LOOKUP(WK.AVGS, "TUESDAY", 1,~
RECNUM)
The LOOKUP function searches the file named WK.AVGS
for TUESDAY in the first column, starting with the first
record (the record number in RECNUM).
LOOKUP returns two pieces of information:
• The status of the search—SUCCESS, FAILURE, or EOF.
• The number of the record found. (This number replaces the
one you originally assigned to RECNUM).
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
13-23
Variable Contains
Number of First Record
Data Files
Use Record Number to
Print Data Found
You can then print any of the information in the record
LOOKUP found, using the record number. For instance, to
print the dewpoint average from the record found, use PRINT
as follows:
PRINT WK.AVGS [RECNUM].DEWPTAVG
In the PRINT statement, you give the file name, the record
number, and the field name. The PRINT statement prints:
32.0
You can set another variable to the value found for use in
other calculations:
SET TEMPHOLDER = WK.AVGS [RECNUM].DEWPTAVG
Figure 13-13 shows the program to search the data file and
print out the average dewpoint on a specific day of the week.
Figure 13-13. DEWPT.FIND Program—Looping
File
Edit
Search
Check
Tools
BLDG1 FLOOR1 DEWPT.FIND
NUMERIC RESULT, RECNUM
RECNUM = 1
RESULT = LOOKUP(WK.AVGS, "TUESDAY", 1, RECNUM)
IF RESULT = SUCCESS THEN
PRINT " Average Dewpoint on Tuesday was ";
PRINT WK.AVGS [RECNUM].DEWPTAVG, " degrees F."
ELSE PRINT "Error in Search of WK.AVGS File."
Figure 13-14 shows what DEWPT.FIND prints.
13-24
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Data Files
Figure 13-14. Printout from DEWPT.FIND
Average Dewpoint on Tuesday was 32.0 degrees F.
Summary
• You use LOOKUP to find data in a file where you know
the name and contents of a field you can refer to but do not
know the record number.
• Before you use LOOKUP, you must define two numeric
variables:
—One to hold the record number.
—One to hold the status of the search.
• When executing LOOKUP, the record number is the
number of the first record to search.
• When LOOKUP finds a field with contents matching the
information you give, it replaces the original record
number with the number of the one found.
• LOOKUP returns:
—The status of the search in a local numeric variable:
SUCCESS
FAILURE
EOF
—The number of the record found (stored in the original
record number variable).
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
13-25
LOOKUP Requires Two
Variables
Data Files
Looking Up More Facts in
Data Files
GOAL: To find the days in the week of January 7 to 13 that
the power usage setpoint was exceeded.
The Data File
A Sample Data File
Suppose you have a data file that contains the average daily
energy usage for the last week, and whether or not it exceeds
the setpoint for usage. Each piece of information is from a
particular date and time.
Figure 13-15 shows the structure of the data in the data file.
Figure 13-15. USAGE Data File
File
Edit
Search
Check
Tools
BLDG1 FLOOR1 USAGE
RECORD 7
DATETIME DTSTAMP
NUMERIC KW.USAGE
STRING EXCEED.SPT 8
1/ 7/90 12:00:00 pm,
1/ 8/90 12:00:00 pm,
1/ 9/90 12:00:00 pm,
1/10/90 12:00:00 pm,
1/11/90 12:00:00 pm,
1/12/90 12:00:00 pm,
1/13/90 12:00:00 pm,
398,
450,
425,
415,
389,
376,
395,
"BELOW
"EXCEEDS
"EXCEEDS
"EXCEEDS
"BELOW
"BELOW
"BELOW
"
"
"
"
"
"
"
The RECORD keyword tells that there are seven records in
this file.
DATETIME tells us the first field is a datetime type field
called DTSTAMP.
13-26
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Data Files
The NUMERIC keyword tells us the second field is a numeric
field called KW.USAGE.
The STRING keyword tells us that the third field is a string
field of eight characters called EXCEED.SPT.
Searching Records
Let’s call the record number variable RECNUM and set it
equal to 1, for the first record:
NUMERIC RECNUM
RECNUM = 1
To look up a record in this data file, you then use the
LOOKUP keyword, giving it the exact value you are looking
up and the name of the field it is in, as follows:
NUMERIC RESULT
RESULT = LOOKUP(USAGE, "EXCEEDS", 3,~
RECNUM)
The LOOKUP function searches the file named USAGE for
“EXCEEDS” in the EXCEEDS.SPT column, starting with the
record number in RECNUM (1).
The search string does not have to include any trailing blanks
that may be in the field. “EXCEEDS” is the same as
“EXCEEDS ” and “EXCEEDS ” to the controller.
After the search has found a record, you can print the date
from the first column of that record number. You use the
PRINT statement:
PRINT USAGE [RECNUM].DTSTAMP
This statement prints the date in DTSTAMP for a single
record.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
13-27
Give Lookup the Value
You Are Looking Up
Data Files
LOOKUP Searches Until
It Reaches End of File
After printing the date, the program can search again, starting
with the number after the record found. The controller then
searches the rest of the file for other days the setpoint may
have been exceeded on. It repeats the search while the EOF
(end of file) has not been reached.
Figure 13-16 shows the program.
Figure 13-16. THRESHOLD.PT Program—FallThru
File
Edit
Search
Check
Tools
BLDG1 FLOOR1 THRESHOLD.PT
NUMERIC RESULT, RECNUM
RECNUM = 1
BEGINNING:
RESULT = LOOKUP(USAGE,"EXCEEDS", 3, RECNUM)
IF RESULT IS NOT EOF THEN
PRINT USAGE [RECNUM].DTSTAMP
SET RECNUM = RECNUM + 1
GOTO BEGINNING
ENDIF
You can alter the program to format the information you print
out using any of the formats covered under the PRINT
keyword in the Andover Controls Plain English Language
Reference.
You can also search a file for a string using the selections in
the Search menu of the File menu bar.
13-28
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Data Files
Summary
• When using LOOKUP to search for a string, you do not
have to include trailing blanks in the search string.
• To continue searching a file for more occurrences of the
same value in a field, add 1 to the record number found and
repeat the search through to the end of the file.
• You can also search a data file using Search menu
selections, just as you did with program files earlier in this
manual.
• Remember that a program that accesses a data file must be
located on the same controller as the data file. You cannot
retrieve data from a data file on another controller.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
13-29
Ending Blanks Not
Required in String
Data Files
13-30
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Chapter 14
Debugging Techniques
This chapter presents some common techniques for
debugging programs—removing all runtime errors. These
errors are not the ones that occur when you “check” the
program with the Check selection from the File menu bar.
These errors occur after you run the program:
•
•
•
•
•
•
•
•
Preparing to Debug
Recognizing Runtime Errors
Tracing Point Values
Setting Point Values
Employing a Debugging Function
Employing a Debugging Program
Tracing Current Lines
Employing a Debugging Program That Prints
on the Status Bar
• Debugging Sample Programs
• Indicating an Error with Line E
For special information about debugging comm port
programs, refer to Chapter 17.
www.PDF-Zoo.com
Debugging Techniques
Preparing to Debug
Identify Any Equipment
Problems
Before you proceed, take any emergency measures required.
If necessary, set outputs to manual override and intervene until the problem is temporarily resolved.
How do you recognize a runtime error? Suppose you receive
multiple alarms for each of the following:
• Chiller not starting.
• Space temperature not reaching setpoint within a
reasonable period.
• Space temperature constantly rising unless you intervene.
• VAV damper staying closed for long intervals.
• Outside air to a floor not adequate.
If you constantly receive the same alarms, you should check
to be sure they are not bugs. The problem could be any of the
following:
• Sensors
• Equipment
• Your Andover Controls Plain English program(s)
Figure 14-1 shows the three possible sources of a problem.
14-2
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Debugging Techniques
Figure 14-1. Possible Sources of Problems
Programs
in Controller
Sensors
Equipment
Because some errors mimic equipment problems, first you
eliminate the possibility that the problem is the sensors or
equipment:
1. Check to be sure the sensors are functioning. Refer to
the Andover Controls Infinet Controller Troubleshooting
Guide.
2. Check physical output points (relays) in the controller. If a
point is ON and the equipment is OFF, then the equipment
itself is not working.
If the point is OFF because a program is not setting it to
ON, the program is not working properly—that is a bug in
your Andover Controls Plain English program.
Remember, the bug can be one of the following:
• An error the controller identifies
• A logical error
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
14-3
Check Hardware First
Debugging Techniques
Recognizing Runtime Errors
To determine which program has failed to operate the equipment, proceed as follows:
Determine Whether or
Not Program Is Disabled
1. Select View Programs and see whether or not the
STATE of the program is DISABLED. If no programs are
disabled, the controller has not identified an error and you
must identify the error.
2. If the file is disabled, open the File window. You should
see an error message in the lower left corner.
3. Look up the error message in Appendix B. The
explanation gives steps you can take to resolve the error.
Some Runtime Errors Do
Not Produce Messages
Some runtime errors do not send messages. You know something is wrong because you keep receiving an alarm and the
equipment (valve, fan, chiller, boiler) does not require
maintenance.
For instance, cooling may not start because the chill water
valve is stuck. But since you checked the valve and it is operating, the source of the problem must be in your Andover
Controls Plain English program.
Maybe the value of the trigger to the COOLING program has
not changed.
If the trigger is a temperature or other input, the sensor could
be bad. Once you check the sensor and determine it is not the
source of the problem, you must look elsewhere. Maybe the
point is not updating frequently enough because the
THRESHOLD is too high or the logging interval is too long.
Also, the trigger might not be the best one for the job. An extreme example would be using MONTH to trigger a program
that must run daily. Obviously, the month changes only every
30 days, but the program needs to start every day.
14-4
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Debugging Techniques
So how do you go about finding out what is actually going on?
1. Select View Programs and see if the STATUS of a
program is INACTIVE. If a program is inactive and should
be active, that program could be the source of your
problem.
2. Proceed with the remainder of this chapter. The sections
that follow each explain a debugging technique.
Summary
To resolve runtime errors, you determine the following:
• Has the equipment failed? If not, go to the next bullet.
• Has the controller disabled a program due to error? If not,
go to the next bullet. Otherwise, open the File window and
find the error message. You can look up how to resolve
each message in Appendix B or apply debugging
techniques discussed later in this chapter.
• Does a program contain errors in logic? Apply the
debugging techniques later in this chapter that help
uncover logical and other runtime errors.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
14-5
Determine Whether or
Not Program Is Disabled
Debugging Techniques
Tracing Point Values
Trace Changes in Point
Values
You can trace the point values in a program, seeing them
change as the program takes action. Proceed as follows:
1. Open the program file.
2. Open a Command window from inside the file, as
described in Chapter 9.
Having the two windows open at the same time is useful
during debugging. You can now run the program and if
you need to change a line, change it immediately.
Figure 14-2 shows the two windows open at the same time.
Figure 14-2. Both Program File Window and
Command Window Open
File
Edit
Search
Check
Tools
Command Window – BLDG1 FLOOR1
R>
BLDG1 FLOOR1 COOLCONTROL
IF OCCUPIED THEN
IF SPACETEMP > 75 THEN
START COOLING
ELSE STOP COOLING
ENDIF
3. This program is fallthru. Although the program has no format
errors, COOLING is often running well into the night.
4. Change the FLOWTYPE of the program to looping for
testing. This way the program runs continuously rather than
waiting to be triggered.
14-6
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Debugging Techniques
5. Run the program from the Command window.
6. Print the point values in the Command window:
OCCUPIED, SPACETEMP, and COOLING.
Trace the Status
Attribute
7. Print the STATUS of the program.
Figure 14-3 shows the debugging commands in the
Command window.
Figure 14-3. Debugging Commands in Command
Window
File
Edit
Search
Check
Tools
Command Window – BLDG1 FLOOR1
R>RUN COOLCONTROL
R>PR OCCUPIED, SPACETEMP, COOLING
OCCUPIED = ON
SPACETEMP = 76
COOLING = ON
R>PR COOLCONTROL STATUS
COOLCONTROL STATUS = ACTIVE
BLDG1 FLOOR1 COOLCONTROL
IF OCCUPIED THEN
IF SPACETEMP > 75 THEN
START COOLING
ELSE STOP COOLING
ENDIF
8. Examine the point values. In the example, you can see the
point values tracing the action of the program.
OCCUPIED is on, so the program tests the SPACETEMP.
SPACETEMP is high enough to start the COOLING, so the
COOLING starts. The controller ignores the ELSE
statement.
To explore the problem, you can try setting the point values.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
14-7
Debugging Techniques
Setting Point Values
Runtime Errors Occur
When You Run Program
To find out what happens when an input is at a particular setting (OCCUPIED is ON or OFF, SPACETEMP is under or
over 75), do the following:
1. Disable the inputs (OCCUPIED and SPACETEMP) so
that you can set them.
2. In the Command window, set one input to a value you
want to test. (Set OCCUPIED or SPACETEMP.)
3. Run the program.
Are Point Values Those
You Expected?
4. Print the point values. If they are different determine why.
Are the settings what you expected?
For example, if you set OCCUPIED to ON and
SPACETEMP to 72, the COOLING stays OFF.
If you leave OCCUPIED ON and set SPACETEMP to 76,
the VALUE of COOLING becomes ON.
So the temperature has the effect you expected at occupied
times.
5. Change the settings and see the direction the program takes.
If OCCUPIED is OFF, what happens?
If you set the temperature to 72 when OCCUPIED is OFF,
the COOLING turns OFF. That seems fine.
Figure 14-4 shows the point values that occur when
OCCUPIED is OFF and the temperature is 76.
Although OCCUPIED is OFF, COOLING remains ON.
So SPACETEMP controls the COOLING, even when the
space is not occupied.
No wonder COOLING was ON at 10 p.m.!
14-8
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Debugging Techniques
Figure 14-4. Response to OCCUPIED Being OFF
File
Edit
Search
Check
Tools
Command Window – BLDG1 FLOOR1
R>RUN COOLCONTROL
R>PR OCCUPIED, SPACETEMP, COOLING
OCCUPIED = OFF
SPACETEMP = 76
COOLING = ON
R>PR COOLCONTROL STATUS
COOLCONTROL STATUS = ACTIVE
BLDG1 FLOOR1 COOLCONTROL
IF OCCUPIED THEN
IF SPACETEMP > 75 THEN
START COOLING
ELSE STOP COOLING
ENDIF
What about OCCUPIED—why does it have no effect? Because ELSE goes with the IF..THEN that checks
temperature. The controller carries out the ELSE statement only when the temperature is not greater than 75.
Correcting the Bug
Since two values are required to start cooling, you should
use AND between them in the same IF..THEN statement:
IF OCCUPIED AND SPACETEMP > 75 THEN
START COOLING
ELSE
STOP COOLING
ENDIF
Always be wary of nested IF statements.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
14-9
Correct the Nested IF
Statement
Debugging Techniques
Employing a Debugging
Function
Put PR Commands
Inside a Function
If you expect to repeat the same commands an extensive number of times while debugging, write a function containing
them, so that later, you need only run the function by typing
its name (and any arguments) in the Command window.
Proceed as follows:
1. Open a function file.
2. Put PR statements in the function, including one for each
point, point attribute, or program attribute you want information about.
Figure 14-5 shows a debugging function to trace the point
values of COOLCONTROL.
Figure 14-5. Function for Debugging by Tracing
Point Values
File
Edit
Search
Check
Tools
FLOOR1 BLDG1 CHBUG
PR OCCUPIED, SPACETEMP, COOLING, COOLCONTROL STATUS
3. Set the point value you want to test from the command
line.
4. Run the debugging function as many times as necessary to
resolve the problem.
14-10
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Debugging Techniques
The information from PR appears in the Command
window because it is printed by a function run from the
Command window. (A program would send PR
statements to the Messages window.)
Running the Sample Function
Suppose you want to find out if the COOLING starts when
occupancy changes. Try running the CHBUG function and
giving it first OCCUPIED = ON, then OCCUPIED = OFF,
keeping the temperature constant. Switch back and forth to
see what happens if OCCUPIED is OFF first, then ON.
Run the Program for a
Particular Point Value
You could then switch to systematic tests of various
temperatures, keeping OCCUPIED ON for 74, 75, 76, and so
on. Then test the same temperatures with OCCUPIED OFF to
see if responses differ.
Figure 14-6 shows the results of running the function.
Figure 14-6. Results of CHBUG Debugging Function
View
Edit
Connect
Logout
Command Window – BLDG1 FLOOR1
R>SET OCCUPIED = ON
R>CHBUG
R> RUN COOLCONTROL
OCCUPIED = ON
SPACETEMP = 76
COOLING = ON
R>SET OCCUPIED = OFF
R> RUN COOLCONTROL
R>CHBUG
OCCUPIED = OFF
SPACETEMP = 76
COOLING = ON
The function prints the point values in the Command
window.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
14-11
Debugging Techniques
Employing a Debugging
Program
Write a Debugging
Program with a Loop
Another debugging tool is a debugging program. It can have a
loop to repeat a series of steps. Write the program as follows:
1. Create a numeric point that represents the input, to test the
input, such as SPACETEMPTEST.
2. Open the program you want to debug.
3. Search for the input that the numeric point you just created
represents and replace it with the numeric point name.
4. Save the program file under another name for testing, such
as ST.CHILL.TEST. The original program remains intact.
5. Disable the original program.
6. If applicable, set up the numeric point to trigger the
program you are testing.
7. Open a new program file and in it, set the test point to a
starting value.
8. Create a loop with GOTO that sets the testing point to
increasing values, then runs the program once for each value.
Figure 14-7 shows a debugging program.
The debugging program sets the SPTEMPTEST value and
traces how it affects other point values in ST.CHILL.TEST.
When the COOLING is eventually on, the program stops
itself.
All data from PR goes to the Messages window.
9. Put the program last on the firing order list.
10. Run the debugging program.
14-12
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Debugging Techniques
11. Open the Messages window (described in Chapter 9).
Here you see the results of PR statements from the
debugging program.
Figure 14-7. Program for Debugging by Altering
Point Values—FallThru
File
Edit
Search
Check
Message Window
Displays PR Results
Tools
FLOOR1 BLDG1 TESTPG
SET SPTEMPTEST = 74
REDO:
SET SPTEMPTEST = SPTEMPTEST + 1
RUN COOLCTRLTEST
PR OCCUPIED, SPTEMPTEST, COOLING, COOLCTRLTEST STATUS
IF COOLING = OFF THEN GOTO REDO ELSE STOP TESTPG
Figure 14-8 shows the messages from TESTPG that print
in the window.
You could also try creating an OCCUPIEDTEST and
setting it to OFF to be sure the COOLING does not start
when the floor is not occupied.
12. Close and reopen the Messages window to see updates
of the program activity. The Messages window can
hold up to 48 physical lines of data unless you reset it.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
14-13
Debugging Techniques
Figure 14-8. Messages from TESTPG Debugging
Program
Edit
View
Connect
Logout
Messages – BLDG1 FLOOR1 TESTPG
OCCUPIED = ON
SPTEMPTEST = 74
COOLING = OFF
COOLCTRLTEST STATUS = INACTIVE
OCCUPIED = ON
SPTEMPTEST = 75
COOLING = OFF
COOLCTRLTEST STATUS = INACTIVE
OCCUPIED = ON
SPTEMPTEST = 76
COOLING = ON
COOLCTRLTEST STATUS = ACTIVE
CLEAR
EXIT
Tracing Current Lines
In a multiline program, you can trace the lines as they execute.
Follow these steps:
Add PR Statement to
Your Program
1. Add the following statement to the beginning of each line:
PR CURRENTLINE
You might also print the time that the current line is
being run. (You can use either DATE or TIME, since each
prints the full date and time.)
Figure 14-9 shows how you would alter the
HEAT.NOHEAT program to print the current line
whenever the program runs that line.
14-14
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Debugging Techniques
Later, once the program is working properly, you can
remove the debugging PR statements.
Figure 14-9. Multiline Looping Program with
Debugging PR Statements
File
Edit
Search
Check
Tools
CENTRALPLANT HEAT.NOHEAT
LINE NOTHEATING
PR CURRENTLINE, TIME
IF THE OutsideAir < 50 THEN GOTO START.BURNER
ELSE
TURN OFF THE Burner AND THE HWPump1
CLOSE THE HWP1ISOValve AND THE CONVRTR.PRGM
ENDIF
LINE START.BURNER
PR CURRENTLINE, TIME
TURN ON THE Burner
IF TM > 3 THEN
START THE CONVRTR.PRGM
GOTO ADJUSTING
ENDIF
LINE ADJUSTING
PR CURRENTLINE, TIME
TURN THE BurnerHiFire ON ’Sets Burner to High
OPEN THE HWP1ISOValve
TURN ON THE HWPump1
IF THE WEEKDAY IS NOT SUNDAY THEN
SET THE HWsetpt TO 130
ELSE
SET THE HWsetpt TO 100
ENDIF
IF THE OutsideAir > 50 AND TM > 3 THEN GOTO NOTHEATING
2. You can also add PR statements to print each point value
after any statement that may change that point value.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
14-15
Add PR Statements to a
Program
Debugging Techniques
The NOHEATING line would be as follows:
LINE NOTHEATING
PR CURRENTLINE, TIME
PR OutsideAir
IF OutsideAir < 50 THEN GOTO START.BURNER
ELSE
TURN OFF THE Burner AND THE HWPump1
PR Burner, HWPump1
CLOSE THE HWP1ISOValve
PR HWP1ISOValve
CLOSE THE CONVRTR.PRGM
PR CONVRTR.PRGM STATUS
ENDIF
See PR Results in
Message Window
3. Open the Messages window as described in Chapter 9.
Here you see the results of PR statements from programs.
Figure 14-10 shows the messages from HEAT.NOHEAT
that print in the window.
14-16
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Debugging Techniques
Figure 14-10. Messages Tracing HEAT.NOHEAT
Edit
View
Connect
Logout
Messages – BLDG1 FLOOR1
CURRENTLINE = NOTHEATING
DATE = 10/25/91 22:36:56
OutsideAir = 50.1degrees F
Burner = Off
HWPump1 = Off
HWP1ISOValve = Off
CONVRTR.PRGM STATUS = INACTIVE
CURRENTLINE = NOTHEATING
DATE = 10/25/91 22:37:08
OutsideAir = 49.7 degrees F
CURRENTLINE = START.BURNER
DATE = 10/25/91 22:37:12
CLEAR
EXIT
Notice how you can follow the action of the program by
the name of the current line. HEAT.NOHEAT goes from
NOTHEATING to NOTHEATING to START.BURNER.
You can see that the reason the program proceeds to
START.BURNER is because the OUTSIDEAIR drops
below 50 degrees.
4. Close and reopen the Messages window to see updates
of the program activity. The Messages window can hold
up to 48 physical lines.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
14-17
Current Line Tells Action
Program Is Taking
Debugging Techniques
Employing a Debugging
Program That Prints on the
Status Bar
If you use a function, you have to keep rerunning the function.
If you use a GOTO loop in a program, you have to open,
close, and reopen the Messages window—or do you? You
have another alternative.
Look at Point Values
While Program Displays
Suppose you do not want to go to the Messages window. Instead, while you look at the program you are debugging, you
want to see the values of points, attributes, and the current line
updating continuously.
You can have a debugging program that prints values on the
status bar. The status bar continuously updates. See Chapter
11 for how to change the status bar if you have never changed
it. Below are steps to write a debug status bar program:
1. Open a new program file. For the example, name it
STATUS.DEBUG.
2. Make the program AUTOSTART and its FLOWTYPE
looping.
3. Enter a single formatted PRINT statement to print all the
point names and their values in a row, one after another.
(Remember, the status line is only one line.) Do not use PR.
4. End the PRINT statement with TO COMM3
STATUSBAR (or to the terminal name you changed
COMM3 to, such as SCREEN1).
Figure 14-11 , for example, shows a formatted PRINT
statement that would print point values from
HEAT.NOHEAT.
14-18
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Debugging Techniques
Figure 14-11. Status Bar Display Program for
Debugging—Looping
File
Edit
Search
Check
Tools
FLOOR1 BLDG1 STATUS.DEBUG
‘Prints Point Values from HEAT.NOHEAT
PRINT "CurrentLine: |@@@@@@@@@@@@ Time: |* OutsideAir:~
|###.# Burner: |$### HWPump1: |$### HWP1ISOValve: |$###~
CONVRTR.PRGM STATUS |@@@@@@@@ Burner Fire |* HWsetpt~
|* , HEAT.NOHEAT CURRENT LINE, TIME, OutsideAir, Burner,~
HWPump1, HWP1ISOValve, CONVRTR.PRGM STATUS, BurnerHiFire,~
HWsetpt TO SCREEN1 STATUSBAR
CurrentLine: Heating Time: 2/25/91 08:09:14 OutsideAir: 42.2 Burner: On HWPump1: ON
5. Save the program. Until you run HEAT.NOHEAT, the
status bar debugging program says the current line is 0 and
all the points in the program remain on one setting.
6. Run the program you are debugging. In this case, it is
HEAT.NOHEAT.
Notice that the status bar, at the bottom of the screen, prints
the point names and values. Each one updates every scan and
the information remains on the screen until you stop or disable
the STATUS.DEBUG program.
You can delete the debugging program when you have
debugged the main program. Or you can modify it to debug
the next program.
Now that you have seen some debugging techniques, you are
ready to debug some sample programs.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
14-19
Current Line Tells Action
Program Is Taking
Debugging Techniques
Debugging Sample Programs
BoilerControl Stays on First Line
Why Program Is Not
Fully Executed
Suppose the boiler control process begins, but then often does
not progress to the point where the space is properly heated,
especially late in the day. The process is run by a program
called BOILERCONTROL.
First, look at the program summary. BOILERCONTROL is
active and on the SHUTTINGDOWN line.
Now look at the program file.
Figure 14-12 shows the BOILERCONTROL program.
Figure 14-12. BoilerControl Program—Looping
File
Edit
Search
Check
Tools
FLOOR1 BLDG1 BoilerControl
’Started by OutsideAirTest Program
ShuttingDown:
Turn OFF BlrStage1 AND BlrStage2
If BlrEnable is ON then GOTO StartingUp
StartingUp:
Turn ON BlrStage1
Goto Waiting
Waiting:
If TS > 119 THEN GOTO BeginningStage1
BeginningStage1:
Turn ON BlrStage1
Turn OFF BlrStage2
If BoilerPSI < StmSetpt – 0.5 and TM > 3 THEN GOTO RunningHiFire
RunningHiFire:
Turn ON BlrStage1, BlrStage2
If BoilerPSI > StmSetpt + 0.25 and TM > 3 then goto BeginningStage1
14-20
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Debugging Techniques
After SHUTTINGDOWN, the program should go to
STARTINGUP. For some reason, it never gets there. Is this
where the bug is? The GOTO statement sends the controller
there. How could the program remain on the SHUTTINGDOWN line?
Program Never Runs a
Particular Line
It could keep starting over. Another program could START or
RUN it, which begins it on the first line in the program.
Find out how BOILERCONTROL starts. In this case, a fallthru program, triggered by the outside air temperature, starts
and stops the BOILERCONTROL.
Figure 14-13 shows the outside air program.
Figure 14-13. FallThru OutsideAirTest Program to
Start and Stop BoilerControl Program
File
Edit
Search
Check
Tools
FLOOR1 BLDG1 OutsideAirTest
’Trigger: OutsideAir
If OutsideAir < 64 THEN START BoilerControl
If OutsideAir > 66 THEN STOP BoilerControl
The error could be here. To be sure, disable this program and
start the BOILERCONTROL program manually. If the entire
BOILERCONTROL program executes without any
difficulty, then OUTSIDEAIRTEST is the source of the
problem.
Why would this program start the BOILERCONTROL
program more than once? If you use a debug program on it,
you find that the OUTSIDEAIR point is updating as follows:
63, then 62.5, then 62, and so on. Each time, OUTSIDEAIR
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
14-21
Debugging Techniques
is less than 64, so the controller carries out the statement after
THEN on the first line, even if BOILERCONTROL is already
active.
Prevent Frequently
Starting
So OUTSIDEAIRTEST constantly starts BOILERCONTROL
at SHUTTINGDOWN, never letting it progress to any other
line.
To correct this problem, alter the OUTSIDEAIRTEST
program.
Figure 14-14 shows the altered outside air program.
Figure 14-14. Corrected OutsideAirTest Program
File
Edit
Search
Check
Tools
FLOOR1 BLDG1 OutsideAirTest
’Trigger: OutsideAir
If BoilerControl STATUS IS NOT Active and OutsideAir < 64 THEN
START BoilerControl
ENDIF
If BoilerControl STATUS IS Active and OutsideAir > 66 THEN
STOP BoilerControl
ENDIF
Looping Program Always Skips Step
Use TS in an IF..THEN
without ELSE
Suppose a looping program always skips a particular step.
Figure 14-15 shows a program that bounces between STARTUP
and WAIT lines in the program summary, and never executes
BURNHIFIRE.
Notice that the WAIT line tests to see if BOILERPSI is below
setpoint by half a pound and if 30 minutes have gone by. If neither of these has happened, the program goes back to STARTUP.
14-22
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Debugging Techniques
Since elapsed time is never 30 minutes initially, the controller
immediately carries out the ELSE statement on the WAIT line
and never carries out the THEN statement. To prevent this
problem, never use ELSE in the same IF..THEN statement
with TS, TM, TH, or TD.
ELSE with Elapsed Time
Is Always a Bug
Figure 14-15. BoilerCtrl Program with ELSE Error
File
Edit
Search
Check
Tools
FLOOR1 BLDG1 BoilerCtrl
StartUp:
Stop BoilerStage2
Start BoilerStage1
GOTO Wait
Wait:
IF BoilerPSI < StmSetpt – 0.5 AND TM > 30 THEN goto BurnHiFire
ELSE GOTO StartUp
BurnHiFire:
Start BoilerStage2
If BoilerPSI > StmSetpt + 0.25 AND TM > 10 THEN GOTO StartUp
Figure 14-16 shows the corrected program without ELSE.
Figure 14-16. Corrected BoilerCtrl Program—
Looping
File
Edit
Search
Check
Tools
FLOOR1 BLDG1 BoilerCtrl
StartUp:
Stop BoilerStage2
Start BoilerStage1
GOTO Wait
Wait:
IF BoilerPSI < StmSetpt – 0.5 AND TM > 30 THEN goto BurnHiFire
BurnHiFire:
Start BoilerStage2
If BoilerPSI > StmSetpt + 0.25 AND TM > 10 THEN GOTO StartUp
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
14-23
Debugging Techniques
Valve Fails to Pulse
Why Valve Never Closes
A looping program is designed to repeatedly pulse a valve to
–ON for 5 seconds, then turn it off. But the program does not
actually pulse the valve; instead, it opens the valve to –ON and
keeps it open for an indefinite length of time.
Figure 14-17 shows the PULSEVALVE program. Notice that
the HILIMITCHECK line repeats until the discharge
temperature is below the high limit.
Figure 14-17. PulseValve Program with Error—
Looping
File
Edit
Search
Check
Tools
FLOOR1 BLDG1 PulseValve
LINE HiLimitCheck
IF DischargeTemp > DischargeHiLimit THEN
Set Valve to –5
ELSE GOTO WithinLimit
LINE WithinLimit
AdjustFactor = ValveSet(1, SpaceTemp, 40, Setpt, 0.75, 0.05, 0.05,~
0.5, Total, Err, Lt)
If AdjustFactor > 0.05 or AdjustFactor < –0.05 THEN
Valve = Valve + AdjustFactor * 60
GOTO HiLimitCheck
ENDIF
Since the program stays on the line that sets the valve to –5, the
line repeats so quickly that the valve does not pulse open, then
close, but remains open.
The valve remains open until the program leaves the line and
the 5 seconds can elapse.
The only way to repeatedly pulse the valve is to add another
line that resets it to OFF.
14-24
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Debugging Techniques
Figure 14-18 shows the program with the additional line that
corrects it.
Figure 14-18. Corrected PulseValve Program—
Looping
File
Edit
Search
Check
Tools
FLOOR1 BLDG1PulseValve
LINE HiLimitCheck
IF DischargeTemp > DischargeHiLimit THEN
Set Valve to –5
ELSE GOTO WithinRange
IF TS > 30 THEN GOTO ResetValve
LINE ResetValve
Set Valve to 0
GOTO HiLimitCheck
LINE WithinLimit
AdjustFactor = ValveSet(1, SpaceTemp, 40, Setpt, 0.75, 0.05, 0.05,~
0.5, Total, Err, Lt)
If AdjustFactor > 0.05 or AdjustFactor < –0.05 THEN
Valve = Valve + AdjustFactor * 60
GOTO HiLimitCheck
ENDIF
Notice that the test for the number of seconds that have elapsed
falls after the ELSE statement in the HILIMITCHECK line.
Otherwise, you would have ELSE after TS, which would make
the controller go to WITHINLIMIT every time.
(Under WITHINLIMIT the program uses a user-defined
function called VALVESET that is like a PID loop.)
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
14-25
Check Elapsed Time
after ELSE Statement
Debugging Techniques
Program Never Alters Valve Setting
Why Valve Never
Changes
Suppose you have another version of the PULSEVALVE
program that never changes the valve setting.
You check the program status and find it is enabled and
active, but that no line name appears under current line. What
is going on here?
Figure 14-19 shows the program. Can you determine what is
wrong now?
Figure 14-19. PulseValve Program That Sets
Setpoint but Fails—Looping
File
Edit
Search
Check
Tools
FLOOR1 BLDG1 PulseValve
Numeric KP, KI, KD
Set KP = 0.75
Set KI, KD = 0.05
LINE HiLimitCheck
IF DischargeTemp > DischargeHiLimit THEN
Set Valve to –5
ELSE GOTO WithinRange
IF TS > 30 THEN GOTO ResetValve
LINE ResetValve
Set Valve to 0
GOTO HiLimitCheck
LINE WithinLimit
AdjustFactor = ValveSet(1, Space1Temp, 40, Setpt, KP, KI, KD,~
0.5, Total, Err, Lt)
If AdjustFactor > 0.05 or AdjustFactor < –0.05 THEN
Valve = Valve + AdjustFactor * 60
GOTO HiLimitCheck
ENDIF
The controller goes to the unlabeled line that sets the constants
KP, KI, and KD for the VALVESET function. What happens
next? The controller never leaves that line because no GOTO
14-26
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Debugging Techniques
ever tells it to. Be careful when you set a value at the beginning
of a program that you also go to a line.
Check Elapsed Time
after ELSE Statement
Figure 14-20 shows the corrected program.
Figure 14-20. PulseValve Program That Sets
Setpoint and Proceeds—Looping
File
Edit
Search
Check
Tools
FLOOR1 BLDG1 PulseValve
Numeric KP, KI, KD
Set KP = 0.75
Set KI, KD = 0.05
GOTO HiLimitCheck
LINE HiLimitCheck
IF DischargeTemp > DischargeHiLimit THEN
Set Valve to –5
ELSE GOTO WithinRange
IF TS > 30 THEN GOTO ResetValve
LINE ResetValve
Set Valve to 0
GOTO HiLimitCheck
LINE WithinLimit
AdjustFactor = ValveSet(1, Space1Temp, 40, Setpt, KP, KI, KD,~
0.5, Total, Err, Lt)
If AdjustFactor > 0.05 or AdjustFactor < –o.05 THEN
Valve = Valve + AdjustFactor * 60
GOTO HiLimitCheck
ENDIF
You could also label the first line so its name appears in the
program summary, but if you do not, Infinity interprets it as an
implied line.
Occasionally you may experience a situation where an error
occurs that is unavoidable—such as being unable to retrieve a
point value because the controller is off-line. The next section
gives a technique for dealing with such errors.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
14-27
Debugging Techniques
Indicating an Error with Line E
Suppose you have run a program that retrieves point values
from another controller. When that other controller goes off
line, the program becomes disabled. This is a situation you
want to prevent. But how do you prevent it? You use LINE E.
Set Up LINE E for Errors
If you create a line called LINE E, when an error has occurred,
the program goes to LINE E automatically—instead of
disabling the program.
If you have LINE E in a program, when an error occurs and
the program goes to it, you can see E as the line in the File
Details window.
Figure 14-21 shows the File Details window displaying E as
the Current Line.
Figure 14-21. Line E as Current Line in File Details
Window
File
Edit
Search
Check
Logout
Details – CENTRALPLANT HEAT.NOHEAT
Default Port
Last Changed
Current Line
Current Line Start
File Size
Program Status
COMM3
10/5/93 8:03 AM
SAVE
E
10/30/93 10:01 AM
CANCEL
100
Active
But how do you know where the error occurred? You can
employ another form of tracing along with LINE E.
14-28
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Debugging Techniques
To trace the source of the error, whenever the program goes
to a new line, you set a local variable to the name of the line.
You could then have LINE E print a message about the line
the program was on when the error occurred in addition to
taking other action.
Retrieve Point Values
from Another Controller
For instance, suppose the HEAT.NOHEAT program is
retrieving point values from another controller.
To avoid having the program disable when the controller goes
off line, you could set local variables called ACTION and
TIMELINE on each line. You would set those local variables
on the NOTHEATING line as follows:
LINE NotHeating
ACTION = CURRENTLINE
TIMELINE = TIME
IF THE Building 1 OutsideAir Value < 50 THEN
GOTO START.BURNER
ELSE
TURN OFF the Building1 Burner
TURN OFF the Building1 HWPump1
CLOSE the Building1 HWP1ISOValve
CLOSE the Building1 CONVRTR.PRGM
ENDIF
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
14-29
Debugging Techniques
You could then add the following to LINE E:
LINE E
Print "Error in Heat.Noheat on |* at |*", Action, ~
Timeline
IF TS > Building1 ProbeTime Then
GOTO NotHeating
ENDIF
In this case, LINE E waits for the number of seconds equal to
the PROBETIME attribute of Building1—how long it takes
to update its communications status from being off-line to
being on-line.
Directing Program Response Based
on Where Error Occurred
Does it make a difference if the error retrieving the value of
OUTSIDEAIR occurs on the NOTHEATING line or the
ADJUSTING line? Of course it does.
Program Goes to LINE E
If Error Occurs
If the error occurs on NOTHEATING, you want to return
there after waiting for the required number of seconds. If the
error occurs on ADJUSTING, you want to return to that line
instead.
To have the controller take a distinct action based on the line
the error occurred on, add the following to LINE E:
If Action = Adjusting Then
If TS > Building1 ProbeTime Then Goto Adjusting
Endif
If Action = NotHeating Then
If TS > Building1 ProbeTime Then Goto NotHeating
Endif
14-30
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Debugging Techniques
Figure 14-22 shows how the program changes using LINE E.
Figure 14-22. Looping Program with Local
Variables to Store the Line Where and Time When
the Error Occurs
File
Edit
Search
Check
Tools
CENTRALPLANT HEAT.NOHEAT
String Action
DateTime TimeLine
Line NotHeating
Set Action = Currentline
Set Timeline = Time
If The Building1 OutsideAir Value < 50 Then Goto Start.Burner
...
Endif
Line Start.Burner
Set Action = CurrentLine
Set Timeline = Time
Turn On The Building1 Burner
If Tm > 3 Then
Start The Building1 Convrtr.Prgm
Goto Adjusting
Endif
When Building1 is off-line,
the program cannot retrieve
the OutsideAir point value,
so it goes to Line E.
Line Adjusting
Set Action = Currentline
Set Timeline = Time
Turn the BurnerHiFire On ’sets Burner To High
Open The Hwp1ISOValve
Turn On The HWPump1
If The Weekday Is Not Sunday Then
...
Endif
If The Building1 OutsideAir Value > 50 and TM > 3 Then Goto NotHeating
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
14-31
Debugging Techniques
Figure 14-22. Looping Program with Local
Variables to Store the Line Where and Time When
the Error Occurs (cont)
File
Edit
Search
Check
Tools
Line E
Print "Heat.Noheat Failed On Line |* at |*", Action, Timeline
If Action = NotHeating and TS > Building1 ProbeTime Then
Goto NotHeating
Endif
If Action = Adjusting and TS > Building1 ProbeTime Then
Goto Adjusting
Endif
LINE E Differs
from Tracing Technique
Although LINE E helps you debug, it can also remain in the
program permanently—unseen unless an error occurs. You
can put it in many programs to help you follow up on
problems like this one described here. With LINE E, once a
program is functioning, the controller never disables it.
Line E in Looping or FallThru Programs
Since HEAT.NOHEAT is looping, the program does not go to
LINE E unless an error occurs. In a fallthru program,
however, the program can fall through to LINE E. So, in a
fallthru program, you should place LINE E at the end and be
sure to use STOP on the line before LINE E; otherwise, the
program goes to line E as part of the falling through process.
Employing a Debugging Function
in Program with LINE E
Since adding the statements that set ACTION and TIMELINE
is repetitious, you may want to put them into a function called
DEBUGINFO to avoid repeating them in the program.
14-32
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Debugging Techniques
Figure 14-23 shows such a DEBUGINFO function.
Figure 14-23. DebugInfo Function
File
Edit
Search
Check
CENTRALPLANT DebugInfo
Arg 1 Action
Arg 2 TimeLine
Set Action = CurrentLine
Set TimeLine = Time
Return
You can then have the program call the function rather than
setting the ACTION and TIMELINE values in the program.
You call the function from each line of the program:
DebugInfo (Action, TimeLine)
You can also add other arguments to the function.
LINE E is useful in a variety of situations where errors can
occur even though the program is normally error free. Some
examples of such situations are the following:
• Programs that use GETNAME
• Programs that use GETOBJECT
If GETNAME tries to retrieve a name that does not exist, the
program eventually disables. If GETOBJECT gets an object
from the controller and then, while working with that object,
the controller goes off line, the program disables. In both of
these cases LINE E can keep the program running.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
14-33
Tools
Debugging Techniques
14-34
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Chapter 15
Programming
the DCX Screen
Your Infinity CX 9000 controller may have a 4.9 × 4.2 inch
liquid crystal display (LCD) screen in the upper right front
door of the cabinet. This screen is the DCX 250. You may also
have a DCX 250 located elsewhere in the building, connected
to the control system via Infinet.
You use the DCX 250 to display predrawn controls or your own
graphics/text, and to receive operator responses.
This chapter shows how to program the DCX screen:
• Understanding Predrawn Graphic Control Types
• Placing Predrawn Button Control on DCX Screen
• Placing Other Control Styles on DCX Screen
• Drawing Your Own Graphics on DCX Screen
• Drawing Your Own Air Handler Unit with Polygons
• Receiving Responses from the DCX Screen
• Erasing the DCX Screen
• Making the DCX Beep and Stop Beeping
• Making the Background Light Flash On and Off
• Making Text Blink
www.PDF-Zoo.com
DCX Screen
Understanding Predrawn
Graphic Controls
A control is a graphic that represents a single point or point attribute. An example would be a knob that you can use to either
display the setting of or set the air flow. Or a button that can enable or disable the point because it represents the point’s STATE
attribute. Or, perhaps, a switch you can use to open or close a
valve, turn on or off a light.
You can display a button, knob, switch, or similar graphic from
the set of predrawn controls and program it to work with a particular point or attribute. Or you can draw a graphic control of your
own.
Get Predrawn Graphics
from Library
If you are unfamiliar with the predrawn graphic controls you can
place on the DCX screen, refer to Appendix C of this manual.
The controls are of several classes:
•
•
•
•
•
•
Buttons
Switches
Knobs/Gauges
Sliders
Levels
Text
Defining Types of Graphic Controls
All controls display a point value. You can also allow the operator (user) to change the point value through the control; for
example, turn the knob to set a temperature.
Buttons
Buttons are graphics you can press (with your finger) to do one
of the following:
15-2
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
DCX Screen
• Change the screen
• View another graphic
• Change a point or attribute setting
• Acknowledge an alarm
Switches
Switches are graphics you can touch to turn on or off a point. You
can also use a switch to set any digital (two-position) point or any
attribute that has only two values, such as the STATE (enabled
or disabled).
Knobs/Gauges
Knobs and gauges are graphics that you can turn in an arc or circle to display (or set) a point value.
Sliders
Sliders are graphics that show several possible values and a sliding arrow that points to (or you can set to) the value.
Levels
Levels are graphics that show a shape that fills up (like mercury
in a thermometer) to indicate the value of a point. (You can also
fill the shape to set the value).
Text
Text is exactly what it sounds like—words or numbers that indicate the value of a point. (You may also set the value in text.)
You can have up to 24 graphic controls on a single DCX 250 display at one time.
The next section covers how you can place predrawn controls on
the DCX 250.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
15-3
Knobs and Gauges Turn
in an Arc or Circle
DCX Screen
Placing a Predrawn Button
Control on DCX Screen
Suppose you want to place a predrawn three-dimensional button on the DCX 250 screen and label it FAN2. The button
should turn on and off the fan.
Before You Place a Control
Before you place the control, always be sure to carry out these
steps:
1. Connect to the DCX 250 through the Connect menu.
2. Open a file and set its FLOWTYPE attribute to FallThru.
3. Begin the program by erasing any graphic or text already
on the screen that you do not want to display along with
this control.
Once you display any graphic control, graphic, or text, it
remains on the screen until you erase it from a program. If
you display a second control without erasing the first, both
appear.
4. Turn on the background light. If you do not turn on the
background light, the control never appears.
Erasing the DCX 250 Screen
Enter CLEARSCREEN to
Erase DCX Screen
You erase the DCX screen with the CLEARSCREEN keyword.
It erases all text and graphics currently on the screen, but leaves
all screen attributes (such as the screen color) and system variables (more later) set to their current values. You give the word
alone, as follows:
CLEARSCREEN
You can use CLEARSCREEN only in a program, not on the
command line.
15-4
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
DCX Screen
Turning on the Background
Light
To turn on the background light for a particular length of time,
you can set the background light to the number of seconds.
The following statement turns it on for 1 minute:
BACKLIGHT = 360
Turn On or Off the
Background Light
The following statements turns it on or off indefinitely:
TURN ON THE BACKLIGHT1
TURN OFF THE BACKLIGHT
You must turn on the background light before you display a
graphic control. If you do not, the control does not appear.
You are now ready to display the control. You need the following
information about the control:
• Style Number
• Location
• Whether or not operator should be able to change the point
value using the control.
• Name and path to the point or attribute
• Number of settings the control can be set to (called steps)
You may also want to include a title to label the control.
Determining the Style Number
of the Control
If you have not yet looked through Appendix C, go to it now and
look at Control Style 1—the button that appears three-dimen1. Because the background light has a limited life span, always turn off the
background light within minutes of turning it on. Never leave it on for prolonged periods.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
15-5
DCX Screen
sional. This control is the one you place on the DCX 250 screen
in this section.
Determining Location
on the Screen
To give the location of the button on the screen, you tell Infinity
the position of the lower left corner of the button, then the upper
right corner. How? Picture the screen covered by hundreds of
tiny dots. It has 200 dots up and down and 320 dots across.
As shown in Figure 15-1, the dots, called “line points,” are
numbered from the lower left corner to the top and to the right.
You refer to a line point location by first its horizontal position,
then its vertical position. For example, 15, 20 is the line point that
is 15 dots across from the left and 20 dots up from the bottom.
Line Points Position
Control on DCX Screen
Figure 15-1. Line Points on the DCX 250 and
Location of Line Point 15, 20
1, 200
+ (15, 20)
1,1
320,1
15-6
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
DCX Screen
Telling Infinity to Display the Control
To display a button control (Control Style 1) in the approximate center of the screen, you enter the information you have
collected with the CONTROL keyword. The format for the
CONTROL keyword is as follows:
CONTROL (style, left, bottom, right, top, user_change,
point_or_attribute_path, title, frame, direction, bot_scale,
top_scale, tickmarks, steps, format)
Figure 15-2 shows how you would use CONTROL to enter the
information required to display the button control for the fan.
Figure 15-2. Button Control Program Statement
File
Edit
Search
Check
FLOOR1 DISPLAY1 FanButton
Control Style
When TRUE, Operator
Can Change Setting
CONTROL (1, 40, 75, 280, 125, TRUE, FLOOR1 ROOM2 Fan2, " Fan 2")
Location
on Screen
Controller
and Point
Name
Title for
Graphic
Control
(optional)
You always give the style first, then the location, then the
TRUE or FALSE for whether the operator can change the value, and the path to the point. These pieces of information are
required. The order is always the same, so that the controller
knows what each piece of information means. None of the
other information you could give for other controls applies to
the button control.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
15-7
Tools
DCX Screen
Title Should Be in
Quotation Marks
After the path to the point, you can give the control a title. Notice that the title is in quotation marks—they are required. The
title itself, however, is not required. The button can be blank.
Figure 15-3 shows the complete FANBUTTON program,
which erases the screen, turns on the background light, then
displays the control. Pressing the button toggles the fan
between ON and OFF. The button flashes when you press it,
but otherwise does not indicate the value of the point.
Figure 15-3. Complete FanButton Program
File
Edit
Search
Check
Tools
FLOOR1 DISPLAY1 FanButton
CLEARSCREEN
TURN ON THE BACKLIGHT
CONTROL (1, 40, 75, 280, 125, TRUE, FLOOR1 ROOM2 Fan2, " Fan 2")
Figure 15-4 shows how the button appears.
Determining the Size of the Button
This program would display Control Style 1 as a 240 line point
wide by 50 line point high rectangle with the title “Fan 2.” All
rectangular shaped controls (such as Control Styles 1 and 2)
stretch to fit tall/wide areas and shrink to fit short/narrow areas.
Try altering the left, bottom, right, and top values to see how they
change the shape and size of the button.
This control style (1) and Control Style 2 must be a minimum (in
line points) of 40 wide by 25 high.
15-8
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
DCX Screen
Figure 15-4. Fan 2 Button on DCX 250 Screen
Fan 2
Selecting the Button Frame
For control styles 1 and 2, you cannot give a frame style (see end
of Appendix C), because the frame is automatically included
with the control. If you give a frame style, Infinity ignores it.
Other Arguments for CONTROL
Notice that the direction, bottom and top of scale, tickmarks,
steps, and format are not required. Because you did not specify
them, the bottom and top of scale are automatically OFF and ON,
because the fan is a digital point. All buttons and switches (control styles 1, 2, 3, 4, and 5) are digital and always set top and
bottom of scale automatically.
You do not include the number of steps, because for any digital control, Infinity assumes a single step between two values.
So the step information is not applicable to buttons and
switches.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
15-9
Direction, Steps, and
Format Not Applicable
DCX Screen
Placing Other Control Styles
on the Screen
Gauge
Controls Retain Shape
While rectangular shaped controls (such as Control Styles 1 and
2) stretch to fit tall/wide areas and shrink to fit short/narrow
areas, gauge controls such as Control Styles 7 and 8 retain their
shape.
Setting Control Size
You Cannot Resize
Switches or Knobs
When you specify the left, bottom, right, and top, Infinity automatically sizes the control to fit into the area you designate
unless it is Control Style 3, 4, or 5 (switches), or Control Style
6 (knob).
You cannot resize Control Styles 3, 4, 5, or 6. However, when
you give the location for any of the switches (Control Styles 3,
4, and 5), the center of the control must be at least 21 line points
from any edge of the screen. The center of a knob (Control
Style 6) must be at least 30 line points from any edge of the
screen.
If you designate a tall narrow area for a gauge control, its width
fits the area and its height becomes proportional to the width.
As shown in Figure 15-5, the gauge control is then vertically
centered within the space you have defined (crosshatches (+)
show the locations of the left-bottom and right-top).
On the other hand, if you designate a short wide area for a
circular control, its height fits the area and its width becomes
proportional to the height. The control is then horizontally
centered within the space you have defined.
If the control cannot display in the space you give, Infinity disables the file; you can then find the error message in the File
Configuration window. Any time the control does not appear, check the size area you designated.
15-10
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
DCX Screen
Figure 15-5. Location and Size of Control Style 7 on
DCX 250 Screen
+
+
Any control style that you can resize never displays unless it
is at least the size of one cell on the DCX 250—approximately
0.5 inch square. What are cells? The DCX 250 screen has an
underlying grid of 64 squares, approximately .6 × .5 inch. The
blocks are called “cells” or “touch cells.”
Figure 15-6 (on the next page) shows where the cells are on
the screen. Infinity can sense when you have touched one of
these cells. You must position the control so that it can use
these cells.
If a control is a button or switch, it can be as small as one cell,
approximately 40 line points wide and 25 line points high.
Any other control style must be at least two cells wide, 80 line
points wide if horizontally positioned or 50 line points high if
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
15-11
Control Must Be on at
Least Two Cells
DCX Screen
vertically positioned. (To be sure about the minimum size for
any particular control, refer to Appendix C.)
Figure 15-6. DCX 250 LCD Screen Touch Cell Grid
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
Positioning the Control
Put Each Arrow on
Separate Cell
Notice that the gauge control has two arrows. You press these
arrows to raise or lower the setting of the point or attribute.
If the control has arrows, it must be the size of at least two
cells, rather than one. You should position this control so that
the two arrows are each on top of separate cells.
The rule applies as long as you want the operator to have the
option of setting the control. If you set that argument to
FALSE, the arrows do not appear.
15-12
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
DCX Screen
Setting Other Control Characteristics
Title
The title is always optional. Notice that for each controller style
(see Appendix C), the title appears in a different location.
Frame Style
You do not have to give a frame style for most controls. You
must, however, give Frame Style 3 for Control Style 3, the light
switch; otherwise you get only the switch and it does not look
like a typical light switch.
Frame Style Optional for
Most Controls
If you give a frame style, Infinity centers the frame style, rather than the control, in the area you designate. The frame
resizes and reshapes (becoming a square or rectangle) to fit
the area. Since the control fits inside the frame, the control
ends up somewhat smaller than it would be without the frame.
Direction
The direction does not apply to any button, switch, knob, or
gauge controls. It also does not apply to controls that display
values as text (such as Control Styles 8, 9, 10, and 13).
Direction applies only to sliders with scales (Control Styles
11 and 12). You may position the sliders either horizontally or
vertically. Set the direction for a slider control to either HORIZONTAL or VERTICAL.
Top and Bottom of Scale
For any button or switch control (Control Styles 1, 2, 3, 4, 5) you
do not have to set a top and bottom of scale. Infinity automatically sets them to ON and OFF for a digital point or to the two values
of a digital attribute, such as ENABLED and DISABLED for
STATE.
For Control Styles 6, 7, and 8, you must give a top and bottom of
scale if the control does not represent a digital point or attribute.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
15-13
Buttons and Switches
Assume ON/OFF
DCX Screen
If you do not give a top and bottom of scale, Infinity assumes ON
and OFF or other digital values.
For Control Styles 8, 9, and 10, you must give a top and bottom
of scale unless you assign it to a digital point or attribute.
TickMarks
Tick Marks Form a Scale
Tick marks do not apply to buttons or switches, but they do apply
to knobs and gauges. They also apply to sliders that point to a
scale. You give the number of tick marks you want to appear.
Steps
The Control Styles 6, 7, and 8 are circular and semicircular controls. Unless you give a number of steps, they automatically set
to one step for each degree in the arc of the circle—for example,
180 degrees in the semicircular controls, or 180 steps. The maximum number of degrees is 240, not a full circle, but two-thirds
of one. Infinity automatically places the 240 steps around the
knob control if you do not give another number of steps.
If you do not give a number of steps greater than 1 for Control
Styles 9 and 10, Infinity automatically sets the number to 1 step.
The one step is the step from the initial setting (bottom of scale)
to the alternative position (top of scale). This same setting applies
to buttons and switches, but you do not have to designate steps
for those controls.
Format
Set the Format for Tick
Mark Numbers
This format applies to the numbers that label the tick marks. Construct the format just as you would for a point format, using # and
@ signs, % and $ signs, decimal points, or other symbols allowed
(see the PRINT keyword). If you do not give a format for the
numbers, Infinity allows enough space for numbers next to the
tick marks to be four digits long with no decimal places.
Now, let’s try putting some controls on the DCX 250 screen using this information.
15-14
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
DCX Screen
CONTROL Statement for Knob
with Scale
Suppose you want to display a knob, Control Style 6, to be
located in the center of the DCX 250 display.
You want the operator to be able to turn the knob. The knob
always turns clockwise, so you do not have to concern yourself about the direction. The point the knob controls is on the
FLOOR1 Infinity CX and the ROOM2 Infinet controller.
Operator Can Turn Knob
if Fifth Argument Is True
You want the knob to be in frame style 3 and to title the knob
with the name of the point, AIRFLOW. For now, let’s make the
point a digital one, where air flow is either off or on.
Figure 15-7 shows how you would enter this information with
the CONTROL statement.
Figure 15-7. Knob Control CONTROL Program
Statement
File
Edit
Search
Check
Tools
FLOOR1 DISPLAY1 KnobProg
Control Style
When TRUE, Operator
Can Change Setting
CONTROL 6, 10, 10, 310, 190, TRUE, Floor1 Room2 AirFlow, "AirFlow", , , , , , 1
Location
on Screen
Controller
and Point
Name
Title
Commas Mean
Skipping Arguments
You always give the control style first, then the location, then
the TRUE or FALSE for whether the operator can change the
value, and so on.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
Steps
15-15
DCX Screen
Infinity Automatically
Sizes Knob
This style control is always one size. When you give the left,
bottom, top, and right, Infinity automatically centers the control in the area you designate, as long as the center of the knob
is at least 30 line points away from any edge of the screen.
The extra commas indicate arguments you have left out.
Figure 15-8 shows how the control defined in the above
CONTROL statement appears and where Infinity positions it
on the screen (the crosshatches (+) show the locations of the
left-bottom and top-right boundaries). Notice that this style
control is centered within the boundaries.
This control is automatically a digital knob, because you did
not specify a top or bottom of scale. The bottom of scale becomes OFF and the top of scale becomes ON. If you did not
specify the number of steps (1), you would never see the knob
setting change, because it would automatically have 240 knob
settings (one for each degree around the arc of the circle).
Figure 15-8. Air Flow Knob Control (Control Style 6)
AirFlow
+
+
15-16
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
DCX Screen
Adding a Scale and Tick Marks
Suppose you want to add seven tick marks to the knob and labels
so you know the value of each position on the scale, from 60 to
180 cfm. You need to tell the controller the following:
You Designate Number
of Tick Marks
• Bottom of scale (60)
• Top of scale (180)
• Number of tick marks (7)
• Number of steps to knob settings (6 between tick marks)
• Format for the scale values (###)
Insert a Comma for
Missing Information
You would modify the CONTROL statement as follows:
CONTROL (6, 10, 10, 310, 190, TRUE, FLOOR1 ROOM2 AirFlow,~
"AirFlow", 3, , 60, 180, 7, 6, "###")
Figure 15-9 shows how the control looks.
Figure 15-9. Air Flow Control with Complete Scale
AirFlow
120
100
80
160
60
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
140
180
15-17
DCX Screen
CONTROL Statement for Rotational
Needle Gauge
Rotational Needle Gauge
Is Control Style 7
You may display a vertically positioned rotational needle gauge
(Control Style 7) on the DCX 250 screen in any size that fits on
the screen; however, it always maintains its proportions.
You can place the control in Frame Style 4 in the approximate
center of the screen with 5 tick marks and allow the operator to
set it to any of 9 values.
Figure 15-10 shows the CONTROL statement you would use
to enter the information.
Figure 15-10. Rotational Needle Gauge Control
CONTROL Program Statement
File
Edit
Search
Check
Tools
FLOOR1 DISPLAY1 AirFlowGauge
When TRUE, Operator
Can Change Setting
Control Style
Top and
Bottom
of Scale
Format
CONTROL 7, 50, 50, 280, 180, TRUE, ROOM6 AirFlow, "AirFlow", 4,, 50, 250, 5, 8, "###"
Location
on Screen
Controller
and Point
Name
Frame Style
Tick
Marks
Comma Means
Skipping Argument
Steps
The 7 is the control style number.
The left, bottom, right, and top values position the frame so its
lower left corner is at 50, 50 and its upper right at 280, 180. The
control appears sized and centered within the frame (Frame
Style 4, later).
15-18
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
DCX Screen
Figure 15-11 shows the resulting control. If you gave the
same position for the control without the frame, it would be
somewhat larger.
Figure 15-11. Display of Rotational Needle Gauge
(Control Style 7)
AirFlow
50
100
150
200
250
TRUE allows the operator to set the value of the control.
ROOM6 AIRFLOW is the path to the point.
“AirFlow” is the title of the control.
The 4 is the frame style. You can look up the frame styles in
Appendix C.
Figure 15-12 shows how the frame style appears alone.
The extra comma after the 4 indicates you are leaving out an argument—the direction. The direction does not apply to gauges.
The gauge always turns clockwise.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
15-19
Control Is Slightly Larger
without Frame
DCX Screen
The 50 is the bottom of scale, the 250 the top.
Must Specify a Top and
Bottom of Scale
If you did not specify a bottom and top of scale, this control
would automatically be a digital gauge. The bottom of scale
would become OFF and the top of scale ON.
If you did not specify a number of steps, you would never see
the gauge setting change, because it would automatically have
180 settings (one for each degree around the portion of the circle the gauge is composed of).
Figure 15-12. Frame Style 4 without a Control
Title
15-20
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
DCX Screen
To specify a particular number of steps, set 5 as the number of
tick marks, 8 the number of steps. Normally the control would
have 4 steps with 5 tick marks. Because the control has 8 steps,
it has an extra step between each pair of tick marks.
Why not assign 5 tick marks and 5 steps? Because each step is
between two tick marks.
The unnumbered steps (settings) would be 75, 125, 175, and
225. You can set the needle to one of those values.
“###” is the format for the numbers around the gauge, three
digits.
Now, let’s see how to place a text control on the DCX 250.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
15-21
Tick Marks and Steps
Are Never Equal
DCX Screen
CONTROL Statement for Value Bar
with Raised Arrows
Value Bars Are Text
Controls
Bars with text in them are text controls. You can choose Control Style 8, 9, or 10 to display a value as text. You could also
select Control Style 13 to display a date and time in the standard
format.
When Infinity displays a value in a text control (other than a
datetime), the value displays in the format for the point (from
the Point Details window) that the control represents.
Figure 15-13 shows the CONTROL statement you would use
to display a value bar with raised arrow buttons (Control Style
9) showing a temperature setpoint.
Figure 15-13. Value Bar Text Control with Raised
Arrows CONTROL Program Statement
File
Edit
Search
Check
Tools
FLOOR1 DISPLAY1 SetptBar
When TRUE, Operator
Can Change Setting
Control Style
Top and
Bottom
of Scale
CONTROL 9, 120, 75, 200, 125, TRUE, Floor1 Setpt2, "Setpt Room 2", ,,, 60, 90, , 60
Location
on Screen
Controller
and Point
Name
Title
Commas Mean
Skipping Arguments
Steps
The 9 is the control style number. After the style number, the
left, bottom, right, and top values position the frame so its lower left corner is at 150, 80 and its upper right at 250, 180.
15-22
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
DCX Screen
Figure 15-14 shows the resulting control with the grid behind
it. Note that the two arrows absolutely must be on separate
touch cells—preferably with a grid line between them (bolded
in the figure). If both buttons overlap a single cell in the middle,
the control does not function correctly.
TRUE allows the operator to set the value of the control by
pressing the arrow buttons.
FLOOR1 SETPT2 is the path to the point.
“Setpt, Room 2” is the title of the control. The extra commas after the title indicate you are leaving out arguments—the frame
and the direction—which do not apply to this control style.
The 60 is the bottom of scale, the 90 the top.
Figure 15-14. Display of Value Bar with Raised
Arrow Buttons (Control Style 9)
Setpt Room 2
72.5
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
15-23
Extra Commas Indicate
Missing Arguments
DCX Screen
The 60 is the number of steps (one for every 0.5 degree between
60 and 90). If you do not include a number of steps, Infinity assumes 1 step, the number of steps for a digital control. But one
step is not useful in this situation, because the one step would go
from the bottom of scale to the top and vice versa.
CONTROL Statement for Slider
You Give Direction for a
Slider
The rules change from one control style to another. For instance, suppose you decide you want Control Style 12 (a
slider, pointer, and scale—shown in Appendix C) to be located from 50, 50 (left and bottom) and 250, 125 (right and top).
For this particular control style, you must give the direction
you want the slider to move, either horizontal or vertical. You
want the operator to be able to slide the pointer up and down
the scale. The point the slider controls is on the FLOOR1 Infinity CX and is called “TempSetpt.”
Figure 15-15 shows the CONTROL statement to draw the slider.
Figure 15-15. Slider CONTROL Program Statement
File
Edit
Search
Check
Tools
FLoor1 TempSetpt
Operator
Can Change Name
and Point
Control Style Location
Controller
on Screen
Title for
Graphic
Control
(optional)
CONTROL (12, 50, 10, 250, 170, TRUE, FLOOR1 TempSetpt, "Setpt", 4,~
horizontal, 60, 80, 5, 4, " ##" )
Direction
(required
for this Top and
control Bottom
style)
of Scale
15-24
www.PDF-Zoo.com
Tick
Marks
Format
Frame
Style
(optional)
Number of Steps
Infinity Controller Programmer’s Guide
DCX Screen
When you alter the area for a this control, Infinity sizes its
height and width fit the area.
Figure 15-16 shows how the slider control appears in the DCX
250 screen. Compare this to the appearance of the sample
Control Style 12 in Appendix C. Notice how the shape
changes to fill the area you designate.
Figure 15-16. Display of Slider Control (Control
Style 12)
TempSetpt
60
65
70
75
80
Since the arguments required to draw each control differ from
one style to the next, Appendix C includes not only a drawing of
each type of control, but also the arguments required to display
the control with the CONTROL statement.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
15-25
Appendix Gives Requirements for Each Control
DCX Screen
Drawing Your Own
Graphics on DCX Screen
Special Keywords Draw
on DCX Screen
You can draw your own graphics on the DCX 250 using lines,
circles, ellipses, squares, rectangles, polylines, and polygons.
You use a series of keywords that are exclusively for the DCX
controllers. Here are three of them:
DRAWLINE
DRAWELLIPSE
DRAWRECTANGLE
You tell the DCX two facts using these keywords:
• The shape to draw.
• The line points to join.
Drawing a Line
Before you draw a line, connect to the DCX from the
Connect menu and open a program file. Position the line by
telling the DCX about the two line points (dots) that mark the
beginning and the end of the line.
Then use the word DRAWLINE to draw the line.
DRAWLINE Draws Lines
Draw the line as follows:
1. Indicate you want to draw a line:
DRAWLINE
Do not press the RETURN key yet.
2. Imagine the line on the DCX screen or draw it out on a grid.
Figure 15-17 shows where the line should be and the line
points on either end.
15-26
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
DCX Screen
3. Position the beginning of the line—how many line points
across from the left, then how many up from the bottom.
Add the position to the statement:
DRAWLINE 40, 25,
Figure 15-17. Line Points at Ends of Line
+• End of Line
(100, 125)
+• Beginning
of Line (40, 25)
Position the End of the
Line
4. Position the end of the line the same way.
DRAWLINE 40, 25, 100, 125
Be sure to put commas between the numbers.
5. Now press the RETURN key to complete the statement.
When you run the program, the line appears on the DCX.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
15-27
DCX Screen
Drawing a Rectangle
Before you draw a rectangle, connect to the DCX from the
Connect menu and open a program file. You position the
rectangle by telling the DCX about the two line points that
mark the lower left and upper right corners of the rectangle.
DRAWRECTANGLE
Draws Rectangles
Draw the rectangle as follows:
1. Indicate you want to draw a rectangle:
DRAWRECTANGLE
Do not press the RETURN key yet.
Figure 15-18 shows where the rectangle should be and the
line points in the lower left and upper right corners.
Figure 15-18. Line Points at Corners of Rectangle
Upper Right
Corner (190, 75)
+
+
Lower Left
Corner (40, 40)
15-28
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
DCX Screen
2. Position the lower left corner—how many line points
across from the left, then how many up from the bottom.
Add the position to the statement:
DRAWRECTANGLE 40, 40,
3. Position the upper right corner the same way and add the
position to the statement:
Position Upper and
Lower Corners
DRAWRECTANGLE 40, 40, 190, 75
Be sure to put commas between the numbers.
4. Now press the RETURN key to complete the statement.
When you run the program, the rectangle appears on the DCX.
You can make the rectangle a button or part of another drawing.
Drawing an Ellipse
Before you draw an ellipse, connect to the DCX from the
Connect menu and open a program file. Draw a rectangle.
Then tell the DCX about the two line points that mark the lower left and upper right corners. DRAWELLIPSE draws the
ellipse so it fits inside the rectangle. Draw the ellipse as follows:
1. Indicate you want to draw an ellipse:
DRAWELLIPSE
Do not press the RETURN key yet.
Figure 15-19 shows where the ellipse should be and the
line points in the lower left and upper right corners of the
imaginary rectangle that surrounds it.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
15-29
DRAWELLIPSE Draws
Ellipses and Circles
DCX Screen
Figure 15-19. Ellipse with Line Points at Corners of
Imaginary Rectangle
Upper Right
Corner (220,125)
+
+
Lower Left
Corner (50,70)
2. Position the lower left corner—how many line points
across from the left, then how many up from the bottom.
Add the position to the statement:
DRAWELLIPSE 50, 70,
3. Position the upper right corner the same way and add the
position to the statement:
DRAWELLIPSE 50, 70, 220, 125
Be sure to put commas between the numbers.
4. Now press the RETURN key to complete the statement.
Ellipse Appears on the
DCX Screen
When you run the program, the ellipse appears on the DCX.
You can use the ellipse as a button or make it a part of another
drawing.
15-30
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
DCX Screen
Displaying Text
After placing a predrawn control on the screen or drawing a control of your own, you may want to print text to accompany it. You
can display text on the DCX 250 using PRINT.
But first you position the text with a keyword called LOCATE.
With LOCATE, you tell the DCX where the lower left corner of
the first character should print. LOCATE uses the same line point
locations that the CONTROL keyword used. Here is an example:
LOCATE 50, 190
PRINT "Building1 Temperatures"
Figure 15-20 shows text positioned near the top of the screen.
Figure 15-20. Text to Accompany a Graphic
+Building1 Temperatures
Lower Left
Corner (50,190)
The text you print with PRINT is not a control; you add it so the
controls on the DCX 250 are easier to use.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
15-31
You Position Text with
LOCATE
DCX Screen
Drawing Your Own Designs
on DCX Screen
Multiple Continuous
Lines Are a Polyline
You can connect more than one line together in a continuous
line called a “polyline.” Using these polylines you can draw
almost any shape you would like.
Before you draw these lines, however, you may want to set
the display characteristics of the DCX 250—including the color of the background, the color to draw, and whether or not to
fill in a shape.
Setting Display Attributes
You can change the color, make text or graphics blink, and
change the drawing characteristics of the DCX screen display.
You use the SETDISPLAY keyword in a program to set the
screen display to these values:
Change the Color and
Drawing Characteristics
Colors:
• BLUE
• WHITE
Drawing:
• FILL
FILL makes a series of lines a graphic filled with the color
you have set.
• NOFILL
NOFILL does not make a series of lines a filled graphic.
You can set one attribute at a time or a list of them, as illustrated
in the following examples:
SETDISPLAY (BLUE)
15-32
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
DCX Screen
Once you enter this statement in a program, every line or
graphic you draw is blue from now on, until you set the
screen display to WHITE as follows:
SETDISPLAY (WHITE)
The following statement sets two display characteristics:
SETDISPLAY (BLUE, FILL)
Switch from WHITE to
BLUE
Once you enter this statement in a program, every line or
graphic you draw is blue and each graphic is filled in as a
solid blue object.
Drawing Connected Lines
To draw “polylines,” you give the line points you want connected and then give the command to connect them into lines.
The keywords you use are the following:
BEGINPOLYLINE
LINEPOINT
ENDPOLYLINE
Draw a polyline as follows:
1. Set the display drawing attribute to NOFILL:
SETDISPLAY (NOFILL)
If you were to draw a polygon (solid object), you would set
the display to FILL instead of NOFILL.
2. Open the block with BEGINPOLYLINE.
3. Name the line point you want the line to start at:
LINEPOINT 10, 10
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
15-33
DCX Screen
4. Name the next line point you want the line to go to:
LINEPOINT 20, 50
5. Repeat the last step until you have entered all the line
points you want connected.
6. Close the block with ENDPOLYLINE.
A Polyline Can Create a
Screen Border
Figure 15-21 shows a complete program.
Figure 15-21. EDGE.DR Program—FallThru
File
Edit
Search
Check
Tools
FLOOR1 DISPLAY1 EDGE.DR
CLEARSCREEN
TURN ON THE BACKLIGHT
SETDISPLAY NOFILL
BEGINPOLYLINE
LINEPOINT10, 180
LINEPOINT 30, 200
LINEPOINT 50,180
LINEPOINT 70, 200
LINEPOINT 90, 180
LINEPOINT 110, 200
ENDPOLYLINE
15-34
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
DCX Screen
Figure 15-22 shows the polyline the program draws.
Figure 15-22. Polylines on the DCX Screen
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
15-35
DCX Screen
Drawing Your Own Air
Handler Unit with Polygons
Draw a Polygon instead
of a Polyline
You can connect more than one line together in a closed shape
with as many sides as you want (up to 99 sides or 100 line
points) to form a polygon.
You draw a polygon the same way you drew a polyline, only
you change the display drawing attribute to FILL.
Draw a polygon as follows:
1. Set the display drawing attribute to FILL:
SETDISPLAY (FILL)
2. You can also set the display to draw the polygon in BLUE
or WHITE.
3. Open the block with BEGINPOLYLINE.
4. Name the line point you want the outline of the polygon to
start at:
LINEPOINT 10, 10
5. Name the next line point you want the outline of the
polygon to go to:
LINEPOINT 20, 50
6. Repeat the last step until you have entered all the line
points you want connected. The last line point should be
the same line point you started with.
7. Close the block with ENDPOLYLINE.
15-36
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
DCX Screen
Figure 15-23 shows the complete program.
Figure 15-23. AHU.DRAW Program—FallThru
File
Edit
Search
Check
FLOOR1 DISPLAY1 AHU.DRW
CLEARSCREEN
TURN ON THE BACKLIGHT
SETDISPLAY FILL, BLUE
BEGINPOLYLINE
LINEPOINT 10, 50
LINEPOINT 300, 50
LINEPOINT 310, 75
LINEPOINT 300, 100
LINEPOINT 150, 100
LINEPOINT 150, 130
LINEPOINT 310, 130
LINEPOINT 300, 155
LINEPOINT 310, 180
LINEPOINT 20, 180
LINEPOINT 10, 155
LINEPOINT 20, 130
LINEPOINT 70, 130
LINEPOINT 70, 100
LINEPOINT 10, 100
LINEPOINT 20, 75
LINEPOINT 10, 50
ENDPOLYLINE
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
15-37
Tools
DCX Screen
Draw a Polygon of Any
Shape
Figure 15-24 shows the polygon the program draws. You can
draw almost any shape this way.
Figure 15-24. Polygon on the DCX Screen
Once you have drawn a polygon like this one, you can add
other parts to the graphic to form fans and dampers. You can
also add buttons and switches, whether predrawn or your
own.
Figure 15-25 shows a more complete drawing of an air
handler. You could enter ellipses and rectangles to form the
fans. You would change the display settings to WHITE and
FILL for each fan. You could then use LOCATE and PRINT
to display the names of the fans.
15-38
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
DCX Screen
You could use a value bar (Control Style 10), a simple text
control, to display the setting (value) of each fan. No arrows
display near the value because the operator cannot change the
value (the fifth argument after CONTROL is FALSE).
Try adding to the AHU.DRW program to form these additional features.
Figure 15-25. A More Complete Drawing of an Air
Handler
ReturnAir
130 cfm
SupplyAir
140 cfm
ON
OFF
ReturnAir
SupplyAir
You can create the customized buttons like those you see at
the bottom of this air handler drawing. You can then create a
customized response to each. But first you must determine
how to read an operator response—using the TOUCHEDCELL system variable.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
15-39
A More Complete Air
Handler Unit
DCX Screen
Receiving Responses from
the DCX Screen
When you display your own graphics on the DCX 250, you
can select an option or press a button with your finger. You
can program the DCX so it knows how to respond.
Receiving Operator Responses
DCX Receives
Operator Response
Since the DCX 250 screen has no keypad, how do you respond
to it? You touch the screen. The DCX senses the touch and
knows the particular square (cell) you touched.
As shown in Figure 15-26, the cell you touched can be any of
up to 64 squares, each approximately .6 × .5 inch.
Figure 15-26. DCX 250 LCD Screen Touch Cell Grid
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
The DCX stores the number of the cell in a system variable
called TOUCHEDCELL. If you have touched the screen, you
15-40
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
DCX Screen
do not have to know exactly where unless you have more than
one button. If TOUCHEDCELL is greater than zero, then
someone touched the screen. If that is sufficient information,
you can have an IF..THEN statement say IF TOUCHEDCELL
THEN... However, to find out the particular cell a button is on,
edit the program that draws it and add the following:
1. Create a local numeric variable called CELLNUM.
2. Enter the following lines below the drawing statements:
TESTING:
IF TOUCHEDCELL THEN
CELLNUM = TOUCHEDCELL
GOTO PRINTING
ENDIF
PRINTING:
LOCATE 10, 10
PR CELLNUM, " "
GOTO Testing
These lines retrieve the number of the cell you touch and
display it on on the DCX 250.
3. Run the program you have just altered.
4. Go to the DCX screen and press any part of the drawing
with your finger.
5. You should press a button in the left, right, and middle to
see if TOUCHEDCELL records different values. The
button may overlay more than one cell.
6. Now add statements to the program that test to see if the
button has been pressed, as follows:
IF TOUCHEDCELL IS IN 42, 43 OR 44 THEN...
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
15-41
Each DCX 250 Touch Cell
Has a Numeric Value
DCX Screen
Erasing the DCX Screen
Enter CLEARSCREEN to
Erase DCX Screen
You erase the DCX screen with the CLEARSCREEN keyword. It erases all text and graphics currently on the screen,
but leaves all screen attributes and system variables (such as
BACKLIGHT and TOUCHEDCELL) set to their current
values.
You can use CLEARSCREEN only in a program, not on the
command line.
Suppose you want to erase the DCX screen when an alarm has
been acknowledged. First you run the fallthru program that displays the acknowledge button. Then you proceed as follows, this
time in a looping program:
1. Test for the TOUCHEDCELL value.
2. If TOUCHEDCELL equals one of the correct values, erase
the DCX screen with CLEARSCREEN.
Figure 15-27 shows the one-line looping program that tests
for the touched cell. Since TOUCHEDCELL retains its value
for only one scan, this program must loop to get the value in
the same scan that it changes in.
Figure 15-27. TOUCHTEST Program—Looping
File
Edit
Search
Check
Tools
FLOOR1 DISPLAY1 AHU.DRW
IF TOUCHECELL IS IN 43, 44, 45 or 46 THEN CLEARSCREEN()
15-42
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
DCX Screen
Figure 15-28 shows the alarm message program that the
TOUCHTEST program works with.
Figure 15-28. ALM.MSG Program with Acknowledge
Button—FallThru
File
Edit
Search
Check
Tools
FLOOR1 DISPLAY1 AHU.DRW
CLEARSCREEN
TURN ON THE BACKLIGHT
SETDISPLAY NOFILL, WHITE
LOCATE 50, 100
PRINT "Temperature too high in Lobby"
DRAWRECTANGLE 90, 50, 220, 80
LOCATE 100, 70
PRINT "Press Here"
LOCATE 100, 60
PRINT "To Acknowledge"
You could also set the TOUCHTEST program up as fallthru
and have TOUCHEDCELL trigger it.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
15-43
TOUCHTEST Can Be
FallThru and Triggered
DCX Screen
Making the DCX Beep and
Stop Beeping
Make the DCX Beep with
AUDIOBELL
Suppose you want DCX to beep when an alarm is active and
stop when the alarm is acknowledged. You use a keyword
called AUDIOBELL. From the command line or in a program, you set AUDIOBELL to the number of seconds you
want the DCX controller to beep:
AUDIOBELL = 10
To stop the beeping, use TURN OFF:
TURN OFF AUDIOBELL
Figure 15-29 shows a program that beeps for 5 minutes when
the alarm is active. (This version assumes the backlight is on.)
Figure 15-29. ALM.MSG Program—FallThru
File
Edit
Search
Check
Tools
FLOOR1 DISPLAY1 ALM.MSG
If Lobby Temp > 76 THEN
CLEARSCREEN
LOCATE 50, 100
PRINT "Temperature too high in Lobby"
DRAWRECTANGLE 90, 60, 220, 80
LOCATE 100, 70
PRINT "Acknowledge"
SET AUDIOBELL = 18000
ELSE STOP ALM.MSG
Figure 15-30 shows the program that turns off the beep when
you press ACKNOWLEDGE. It also clears the screen and
15-44
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
DCX Screen
turns off the backlight. This program is fallthru and triggered
by the TOUCHEDCELL system variable.
Figure 15-30. TOUCHTEST Program Revised to
Turn off Beep—FallThru and Triggered by
TOUCHEDCELL
File
Edit
Search
Check
Tools
FLOOR1 DISPLAY1 ALM.MSG
IF TOUCHEDCELL = 43, 44, 45, or 46 THEN CLEARSCREEN
TURN OFF AUDIOBELL
CLEARSCREEN
TURN OFF BACKLIGHT
ENDIF
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
15-45
Turn Off the Beep with
Triggered Program
DCX Screen
Making the Background Light
Flash On and Off
Make Background Light
Flash
You can also make the background light flash on and off by turning it on for a short period of time, then turning it off:
STARTING:
IF Lobby TEMP > 76 THEN
TURN ON THE BACKLIGHT
LOCATE 60, 100
PRINT "Temperature Too High in Lobby"
IF TS > 1 THEN GOTO TIMING
ELSE STOP ALM.MSG
TIMING:
TURN OFF THE BACKLIGHT
IF TS > 1 THEN GOTO STARTING
If the temperature is greater than 76, then the backlight flashes
on for 1 second and the message appears. After 20 seconds the
backlight flashes off. After a total of 40 seconds, it flashes on
again—and the flashing continues as long as the temperature
is still greater than 76.
Once the temperature is no longer greater than 76, the program stops. When the TEMP point value changes, it triggers
the program.
15-46
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
DCX Screen
Making Text Blink
To make text blink when an alarm goes off, you set the color
of the text to first BLUE, then WHITE, and repeat the process
until an operator responds.
For instance, suppose you want the alarm message from the
ALM.MSG program to blink.
You add lines to set the display to BLUE, then WHITE,
switching after a time delay of 1 second. For each color, you
must print the message again. The new color becomes the color of the next text or graphic your display.
Figure 15-31 shows how the program would look.
The IF..THEN statement under the BlinkOff line tests to see
if a 1 second of time has elapsed and if the temperature is still
greater than 76 degrees. If both are true, the program then
goes to the BlinkOn line.
In the BlinkOn line, you use the same IF..THEN statement.
As long as the temperature is greater than 76 degrees, the program goes back and forth between BlinkOn and BlinkOff—
between printing the message in white, then blue.
As soon as the temperature is 76 degrees or lower, the program returns to the Checking line, where it again checks the
temperature. If the temperature remains 76 or lower, the program then clears the screen and stops the program.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
15-47
Blink by Toggling
BLUE to WHITE
DCX Screen
Figure 15-31. ALM.MSG Program That Blinks—
Looping
File
Edit
Search
Check
Tools
FLOOR1 DISPLAY1 ALM.MSG
LINE Checking
IF Lobby TEMP > 76 THEN
GOTO BlinkOff
ELSE
CLEARSCREEN
STOP ALM.MSG
ENDIF
LINE BlinkOff
SETDISPLAY (BLUE)
LOCATE 60, 100
PRINT "Temperature Too High in Lobby"
IF TS > 1 and TEMP > 76 THEN
GOTO BlinkOn
ELSE GOTO Checking
LINE BlinkOn
SETDISPLAY (WHITE)
LOCATE 60, 100
PRINT "Temperature Too High in Lobby"
IF TS > 1 and TEMP > 76 THEN
GOTO BlinkOff
ELSE GOTO Checking
15-48
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Chapter 16
Programming Modules,
ReaderDoor Outputs,
and Lighting Controllers
This chapter covers the various aspects of programming the
EMX 170 module, the EMX 190 with ReaderDoor outputs,
and the LCX 890 lighting controller:
Note
You should program your ACX 700 using the access control
information in Chapters 21 through 23. The method of using
the EMX 190 with ReaderDoor outputs explained in this
chapter is an alternative that does not give you the features of
access control that doors, areas, and personnel give you.
Understanding the EMX 170 Sensor Attributes
Programming the EMX 170
Using EMX 170 Buttons as Arrows
Understanding the EMX 190 ReaderDoor Output
Attributes
• Programming the EMX 190 with ReaderDoor Outputs
• Programming the Access Controller with ReaderDoor
Outputs
• Programming the LCX 890 Lighting Controller
•
•
•
•
www.PDF-Zoo.com
Programming EMX Modules
Understanding EMX 170
Sensor Attributes
Attributes for EMX
170Module
The EMX 170 has a single temperature input. Suppose you
assign the input the name SPACE. The input has the attributes
outlined in the table.
Table 16-1. Attributes for EMX 170 Module Sensor
Attribute Name
Possible Settings
DISPLAYSELECT
ClearDisplay, ShowMessage,
ShowSpaceTemp, ShowDisplayValue,
ShowTimeValue. Displays the information
on the LCD within 0.5 sec. after you set it.
DISPLAYVALUE
Floating point number you set from the
language.
DISPLAYMSG
A series of eight characters in quotation
marks.
BUTTON1 through
BUTTON6
Contains the value of the corresponding
button on the module. ON if being pressed
or OFF if not. Operator must hold the button
down for it to be ON.
Figure 16-1 shows the locations of buttons 1 through 6.
Figure 16-1. Locations of Buttons on EMX 170
16-2
www.PDF-Zoo.com
1
2
3
4
5
6
Infinity Controller Programmer’s Guide
Programming EMX Modules
Displaying Text (Messages)
To display a message on the EMX 170 LCD, you set the
DISPLAYMSG attribute to the message. Then you print the
message by setting the DISPLAYSELECT attribute to the
ShowMessage value:
SET SPACE DISPLAYMSG = "Setpoint"
SET SPACE DISPLAYSELECT = ShowMessage
The LCD can display up to eight characters.
The first statement assigns DISPLAYMSG the word
Setpoint and then the next line displays the message.
Once Infinity scans the DISPLAYSELECT statement, the
message displays within 0.5 seconds.
The display remains on the LCD until you direct the EMX 170
to display something else or to erase the LCD.
Reversing the Order
You can also give the two statements in reverse order:
SET SPACE DISPLAYSELECT = ShowMessage
SET SPACE DISPLAYMSG = "Setpoint"
You can set DISPLAYSELECT to ShowMessage even if you
have not set DISPLAYMSG. No message prints until you
assign a message to DISPLAYMSG.
Changing the Message
Once you have set the DISPLAYSELECT to ShowMessage,
you can change the DISPLAYMSG attribute as many times as
you want, and each time you set DISPLAYMSG, the message
displays within 0.5 seconds.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
16-3
Displaying Text on
EMX 170 LCD
Programming EMX Modules
For instance, you can display first Setpoint, then Override,
then Schedule each for approximately 10 seconds, as
follows:
SETTINGSETPT
SET SPACE DISPLAYSELECT = ShowMessage
SET SPACE DISPLAYMSG = "Setpoint"
IF TS > 10 THEN GOTO OVERRIDING
OVERRIDING
SET SPACE DISPLAYMSG = "Override"
IF TS > 10 GOTO SCHEDULING
SCHEDULING
SET SPACE DISPLAYMSG = "Schedule"
IF TS > 10 GOTO SETTINGSETPT
If you set DISPLAYMSG but do not set DISPLAYSELECT,
the message never shows on the LCD. However, once you set
DISPLAYSELECT to ShowMessage, you need not set it
again as long as you are displaying messages.
Displaying a Setpoint Value
Displaying a Setpoint
Displaying a setpoint value requires two statements—you set
the DISPLAYVALUE attribute to the value you want to
display, then set the DISPLAYSELECT attribute to
ShowDisplayValue:
SET SPACE DISPLAYVALUE = 72
SET SPACE DISPLAYSELECT = ShowDisplayValue
You can also reverse the order of these steps, just as you can
with displaying a message.
If you have already set DISPLAYSELECT to ShowDisplayValue
and have not changed it, you can simply change the
16-4
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Programming EMX Modules
DISPLAYVALUE and it automatically displays within 0.5
seconds.
Display Updates within
0.5 Seconds
These same steps apply for displaying any related value other
than the value of the input itself.
Just as with DISPLAYMSG, once you have set the
DISPLAYSELECT to ShowDisplayValue, you can change
the DISPLAYVALUE attribute as many times as you want,
and each time you set it, the value displays within 0.5 seconds.
Displaying a Time Value
Displaying a time involves two statements—you set the
DISPLAYSELECT attribute to ShowTimeValue, then set the
DISPLAYVALUE attribute to the time you want to display:
SET SPACE DISPLAYSELECT = ShowTimeValue
SET SPACE DISPLAYVALUE = TOD
You can, of course, reverse the order of the two statements.
To keep changing the time displayed, you need only set
DISPLAYSELECT to ShowTimeValue once. Then change
the DISPLAYVALUE to the various datetime variable
values:
SET SPACE DISPLAYSELECT = ShowTimeValue
SET SPACE DISPLAYVALUE = FIRSTTIME
SET SPACE DISPLAYVALUE = SECTIME
SET SPACE DISPLAYVALUE = THIRDTIME
Displaying Input Temperature
You can display the input temperature in one statement—you
set the DISPLAYSELECT attribute to ShowSpaceTemp, and
the temperature displays within 0.5 seconds:
SET SPACE DISPLAYSELECT = ShowSpaceTemp
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
16-5
Displaying the Space
Temperature
Programming EMX Modules
Erasing the LCD Display
You can erase the text or value displayed on the LCD by
setting the DISPLAYSELECT attribute to ClearDisplay:
SET SPACE DISPLAYSELECT = ClearDisplay
The screen clears within 0.5 seconds.
Reminders
DISPLAYSELECT Is an
Attribute of the Input
Remember, you must always include the input name before
the attribute or the controller does not know which input you
are referring to.
For instance, SET DISPLAYSELECT = ShowSpaceTemp is
not a correct statement. You must enter:
SET SPACE DISPLAYSELECT = ShowSpaceTemp
16-6
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Programming EMX Modules
Determining Button Has Been Pressed
If you press a button on the EMX 170, the button value is ON,
which is the same as TRUE or 1. Otherwise it is OFF, which
is the same as FALSE or 0.
You can structure a statement to see if the button has been
pressed as follows:
if Space Button1 then space DisplaySelect=ShowSpaceTemp
OR:
If Space Button6 then Space DisplaySelect=ClearDisplay
If someone has pressed the button, the TRUE-FALSE
comparison IF BUTTON1 becomes TRUE. The following
three IF statements are the same:
IF SPACE BUTTON1
IF SPACE BUTTON1 IS ON
IF SPACE BUTTON1 = ON
If no one has pressed the button, the button is OFF and the
TRUE-FALSE comparison is FALSE.
In the next section, you write a sample program employing
the EMX 170 sensor attributes.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
16-7
If Button Is Pressed, It Is
ON
Programming EMX Modules
Programming the EMX 170
Programming EMX 170
Suppose you wanted to use Button 1 to display the
temperature, Button 2 to display the time of day, Button 3 to
display the setpoint. You call the sensor SPACE and the
setpoint SETPTTEMP. Your goal is to press a button and
retrieve the corresponding value.
At the beginning of the program, you can have a line or lines
that determine which button has been pressed.
The buttons are attributes of the SPACE point, so you can ask
if a button is being pressed with the following statement:
IF SPACE BUTTON1 THEN...
If the button is being pressed, then the IF statement is TRUE;
otherwise it is FALSE.
When Button 1 has been pressed, you can take the following
steps to first display the message, then the temperature:
1. Set the DISPLAYMSG attribute to a string that says the
following (remember, it must be eight characters or
fewer):
"Temp = "
2. Then set the DISPLAYSELECT attribute to
SHOWMESSAGE. The message displays within
0.5 seconds.
3. After the elapsed time is 6 seconds (guaranteeing the
message displays for at least 5.5 seconds), set the
DISPLAYSELECT attribute to ShowSpaceTemp.
4. Display the temperature until an operator presses another
button.
Figure 16-2 shows the program statements.
16-8
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Programming EMX Modules
Figure 16-2. TempDisplay Program—Looping
File
Edit
Search
Check
BLDG1 TempDisplay
LINE ButtonTest
If SPACE Button1 Then
SET SPACE DisplayMsg = "Temp = "
SET SPACE DisplaySelect = ShowMessage
GOTO Waiting
Endif
LINE Waiting
IF TS > 5 THEN GOTO TempDisplay
LINE TempDisplay
SET SPACE DisplaySelect = ShowSpaceTemp
IF SPACE Button4 THEN GOTO ButtonTest
Infinity displays the temperature until the operator presses
another button.
What happens when you press the other buttons? With a few
simple modifications, you can test for any button pressed, set
the mode in the first line, then go to a line that displays the
appropriate information for that button. See the next sample.
Figure 16-3 expands the program to respond to each button.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
16-9
Tools
Programming EMX Modules
Figure 16-3. TempTimeSetpt Program—Looping
File
Edit
Search
Check
Tools
BLDG1 TempTimeSetpt
NUMERIC Pressed
LINE ButtonTest
IF SPACE Button1 THEN SET Pressed = 1
IF SPACE Button 2 THEN SET Pressed = 2
IF SPACE Button 3 THEN SET Pressed = 3
BASEDON Pressed GOTO (ShowTemp, ShowTOD, ShowSetPt)
LINE ShowTemp
SET SPACE DisplayMsg = "Temp = "
SET SPACE DisplaySelect = ShowMessage
IF TS > 5 THEN GOTO TEMPDISPLAY
LINE TempDisplay
SET SPACE DisplaySelect = ShowSpaceTemp
GOTO ButtonTest
LINE ShowTOD
SET SPACE DisplayMsg = "TOD = "
SET SPACE DisplaySelect = ShowMessage
IF TS > 5 THEN GOTO TODDisplay
LINE TODDisplay
SET SPACE DisplaySelect = ShowTimeValue
GOTO ButtonTest
LINE ShowSetPt
SET SPACE DisplayMsg = "Setpt = "
SET SPACE DisplaySelect = ShowMessage
IF TS >5 THEN GOTO SPDISPLAY
LINE SetPtDisplay
SET SPACE DisplayValue = SETPTTEMP
SET SPACE DisplaySelect = ShowDisplayValue
GOTO ButtonTest
16-10
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Programming EMX Modules
Note that the BASEDON..GOTO statement branches to the
appropriate statement for each mode.
You could also use the EMX 170 buttons as arrows. This way,
you could have an entire menu of selections and arrow your
way up and down the menu. In the next section, you write a
program to do just that.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
16-11
BASEDON..GOTO
Branches to Each Mode
Programming EMX Modules
Using EMX 170Buttons as
Arrows
Decide How to Label
Buttons on EMX 170
You can make Button 1 an up arrow and Button 4 a down
arrow, so that you can move up and down a menu. Button 6
would be OK and you press it after you get to the choice you
want. Button 5 could then be to close the menu and display
START.
Figure 16-4 shows the up arrow on Button 1 and the down
arrow on Button 4.
Figure 16-4. Labels for Buttons on EMX 170
Done
OK
Creating the Menu
You create the menu by first outlining the choices you want.
Each word in the menu can be up to eight characters. Here is
a sample menu:
Weekday
Occupied
SpTemp
You want the Weekday to appear on the EMX 170 LCD
screen after someone presses OK. Then, when you press the
down arrow, Occupied appears, and when you press it
again, Temp appears. If you are on Occupied and press the
up arrow, Weekday should appear. This works like many
menus you have seen, except that you see only one menu
choice at a time.
16-12
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Programming EMX Modules
To create this menu, you need to know the number of times
that someone has pressed an arrow button. You create a local
numeric variable to add 1 to each time someone presses the
down arrow and to subtract 1 from each time someone presses
the up arrow. If the choice is less than 3 you can add 1 to it, if
it is greater than 1, you can subtract 1 from it.
NUMERIC CHOICE
Line Choosing
IF SPACE Button4 and Choice < 3 THEN
CHOICE = CHOICE + 1
ELSE IF SPACE Button1 and Choice > 1 THEN
CHOICE = CHOICE – 1
ENDIF
If you entered this line, it would not work. Why? When you
press a button on the EMX 170, because the scan is so fast, the
button remains ON for more than a single scan. So, Infinity
interprets one press as two or three presses.
The result is that the first choice displays, then suddenly the
third choice displays because Infinity thinks you pressed the
button twice instead of once. You can never keep up with the
scan, so how do you fix this?
Determining Button Has Been Pressed
To display the correct choice, set a local numeric variable
(such as PRESSED) to OFF until after the button has been
pressed. Then only when the button is OFF can the program
add 1 to the CHOICE. You include PRESSED as follows:
If Space Button4 and Choice < 3 and Pressed = Off Then
CHOICE = CHOICE + 1
PRESSED = ON
ENDIF
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
16-13
Create a Menu for
EMX 170
Programming EMX Modules
If Space Button1 and Choice > 1 and Pressed = Off Then
CHOICE = CHOICE – 1
PRESSED = ON
ENDIF
if Space Button1 is OFF and Space Button4 is OFF then
PRESSED = OFF
ENDIF
Infinity Determines You
Pressed OK
Although Infinity must know how many times you press the
arrow button to add up the correct choice, Infinity does not
have to know how many times you press OK or DONE, only
that the button has been pressed, period.
But, because the scan is quick, you do have to be sure the program is on the line long enough to give someone a chance to
press the button.
So, when you check to see the button was pressed, you should
also check to be sure time has elapsed on that line. If, for example, 3 seconds have not elapsed, you did not give the
person enough time to press the button.
Once you are sure OK has been pressed, then proceed to an
appropriate line based on the value of the choice:
IF Space Button6 AND TS > 3 THEN
BASEDON Choice GOTO DayDisp, OccDisp, TempDisp
ENDIF
Figure 16-5 shows the complete program.
16-14
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Programming EMX Modules
Figure 16-5. EMXMenu Program—Looping
File
Edit
Search
Check
BLDG1 TempTimeSetpt
NUMERIC Choice, Pressed
Starting:
Set Space DisplaySelect = ShowMessage
Set Space DisplayMsg = "Starting"
Pressed = Off
GOTO Choosing
Choosing:
If Space Button4 and Choice < 3 and Pressed = Off Then
CHOICE = CHOICE + 1
PRESSED = ON
ENDIF
If Space Button1 and Choice > 1 and Pressed = Off Then
CHOICE = CHOICE – 1
PRESSED = ON
ENDIF
If Space Button1 is OFF and Space Button4 is OFF Then
PRESSED = OFF
ENDIF
PressingOK:
IF Space Button6 AND TS > 3 THEN
BASEDON Choice GOTO DayDisp, OccDisp, TempDisp
ENDIF
DayDisp:
Set Space DisplayMsg = "Weekday"
GOTO PressingDone
OccDisp:
Set Space DisplayMsg = "Occupied"
GOTO PressingDone
TempDisp:
Set Space DisplayMsg = "SpTemp"
GOTO PressingDone
PressingDONE:
IF Space Button5 AND TS > 3 THEN GOTO Starting
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
16-15
Tools
Programming EMX Modules
Understanding EMX 190
ReaderDoor Output Attributes
Note
ReaderDoor outputs exist only on EMX 190 expansion
modules used with controllers other than the ACX 700. If you
use an EMX 190 with a 700 controller, you should set up
Doors rather than ReaderDoor outputs. For information on
how to set up doors, see the Access Control chapters at the end
of this volume.
Attributes for EMX 190
Module
The EMX 190 has a single output of a type called ReaderDoor,
which is a door controlled by a card reader. You assign the
output a name, such as FRONTDOOR. The output has the
attributes outlined in the table. You cannot set any of these attributes except the VALUE of the door and the value of the
READERLED.
Cards provided are in sets that have a single preassigned site
code; each individual card has a unique card number, also preassigned.
The descriptions of each attribute of the door assume that the
door circuit is normally closed. In this case, when the door is
closed its value is OFF.
Of course, if the door is wired to a normally open circuit,
when the door is open its value is OFF, but this may be confusing. Choose the kind of circuit you are comfortable with.
You can buy a door switch that is either normally open or normally closed. So the switch is OFF when in a normal position,
whether normal means the circuit is open or the circuit is
closed. Just be sure you know which way the circuit works before you program it.
Since the door switch is an attribute of a point, rather than a point,
to invert ON and OFF, you have to write a function.
16-16
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Programming EMX Modules
Table 16-2. Attributes for EMX 190 Module Output
Attributes
Attribute Name
Possible Settings
VALUE
Value of the door output, either ON for open, OFF
for closed, or a number of seconds it has left to be
open (positive number). You can set this value.
SITECODE
Numeric site code from the last card swiped
through the reader. The code remains the same
for one scan after a swipe and updates every 100
ms. The code may be any number from 1 through
64,000. If the SiteCode is 0, no one has swiped
a card through the reader in the last scan of the
controller in the last 100 ms.Cards in one set are
precoded with a single site code.
CARDNUMBER
Card number from the last card swiped through
the reader. The card number remains the same
for one scan after a swipe and updates every 100
ms. Each card has a number built into it ranging
from 1 to 600,000. Cards in a set are each precoded with a unique card number.
DOORSWITCH
Indicates the current position of the door
switch.OFF means the switch is in the normal position (for example, a normally closed switch is
closed). ON indicates that the switch is not in the
normal position (a normally closed switch is
open) or the door switch has been tampered
with. Updates every 100 ms.
EXITREQUEST
Indicates whether or not a person has tried to
leave through the door. ON means either someone pressed the button to leave or has been detected by a motion sensor. OFF means neither
action has occurred. Updates every 100 ms.
OVERRIDE
Indicates whether or not the door output is under
manual control. ON if set to manual, OFF if controller controls. Updates every 100 ms.
OVERRIDEVALUE
Indicates the value of the door when on manual
override. ON if a normally closed door is open or
a normally open door is closed. OFF if the door is
in its normal position. Updates every 100 ms.
READERLED
Sets the color of the light emitting diode (LED) on
the card reader; red when OFF, green when ON.
Updates every 100 ms. You can set this value.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
16-17
Attributes for Card
Reader Door Output
Programming EMX Modules
Accessing the Card
Reader Door Attributes
To access any of these attributes, you must always use the
name of the ReaderDoor output, as follows:
IF FRONTDOOR SITECODE IS 10 THEN...
IF FRONTDOOR EXITREQUEST IS ON THEN...
PR FRONTDOOR OVERRIDE
PR FRONTDOOR OVERRIDEVALUE
If you enter the attribute without the door name, Infinity does
not understand it.
16-18
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Programming EMX Modules
Programming the EMX 190
with ReaderDoor Outputs
Suppose you want to control access through the main door of
Building1. First, you set up a ReaderDoor output on an EMX
190 module. Name the output DOOR1. (You cannot name the
door simply DOOR, because that is a reserved word. For more
reserved words, see Appendix E of the Andover Controls
Plain English Language Reference.)
Creating a ReaderDoor
Output
Checking the Access Card
Once you have set up the output, you then check to see if anyone has swiped a valid card through the card reader, as follows:
IF DOOR1 SITECODE = 4 AND~
DOOR1 CARDNUMBER IS BETWEEN 1 AND 50 THEN...
Remember that the SITECODE and CARDNUMBER are attributes of DOOR1, so you must give the DOOR1 name first.
Opening the Door for 20 Seconds
Once you have determined the card is a valid card, you can set
the door to ON for 20 seconds. Because the door is a pulsing
output, you set it to 20, as follows:
SET DOOR1 TO 20
If someone swipes a card with the wrong site code or card number through the card reader, the EMX 190 keeps waiting.
Opening the Door as an Exit
Another circumstance that should open the door is someone attempting to leave through the door:
IF DOOR1 EXITREQUEST IS ON THEN GOTO OPENDOOR
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
16-19
Opening the Door for
20 Seconds
Programming EMX Modules
Checking for Tampering
You can check to see if the door is ajar when it should not be,
as follows, assuming door switch that is normally closed:
IF DOOR1 DOORSWITCH IS ON AND~
THE DOOR1 IS OFF THEN GOTO DOORTAMPER
Completing Program to Control
Building Access
Writing Program to
Control Building Access
Figure 16-6 shows how you put the complete program together.
Figure 16-6. AccControl Program—Looping
File
Edit
Search
Check
Tools
BLDG1 AccControl
WAITING:
IF Door1 ExitRequest IS ON THEN goto OpenDoor
IF Door1 SiteCode = 4 and Door1 CardNumber IS Between~
1 AND 50 THEN GOTO OpenDoor
IF Door1 DoorSwitch IS On and Door IS Off THEN~
Turn ON the DoorTamperAlarm
OPENDOOR:
SET DOOR1 TO 20
GOTO WAITING
You could also turn on the card reader LED when you open
the door, as follows:
SET DOOR1 ReaderLED TO ON
This statement makes the LED flash for one scan.
16-20
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Programming EMX Modules
Programming the Access
Controller with ReaderDoor
Outputs
Note
You should program your ACX 700 using the access control
information in Chapters 21 through 23. The following method
is an alternative that does not give you the features of access
control that doors, areas, and personnel give you.
You can program an ACX 700 access controller just the way
you would an EMX 190 module (see the previous two sections) if you choose. The same attributes can apply to the
outputs on the ACX 700. Because the value of each DoorSwitch, ExitRequest, and ReaderLED input is an attribute of
a particular ReaderDoor output, you do not have to define
these inputs as points.
You must define the first two outputs as ReaderDoor types.
To ensure the outputs operate correctly with the inputs as attributes, wire the card reader, door switch, and exit request
inputs to the correct corresponding inputs outlined in the table
below.
Table 16-3. Corresponding Inputs for ReaderDoor
Outputs on ACX 700
ReaderDoor
Output
Card
Reader
DoorSwitch
ExitRequest
Door 1 Output
Reader 1
Input
Supervisory
Input 1
Supervisory
Input 2
Door 2 Output
Reader 2
Input
Supervisory
Input 3
Supervisory
Input 4
This information applies only to ReaderDoor outputs on EMX
170 modules connected to controllers other than the ACX 700.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
16-21
Can Program ACX 700
Controllers EMX 190s
Programming EMX Modules
Programming the LCX 890
Lighting Controller
Lighting Control through
LCX 890
You program the LCX 890 to control lighting panels.
The LCX 890 has three types of entities:
• Digital inputs (such as switches or buttons) (1 through 16)
• Universal inputs (where you can connect voltage, current,
temperature, or digital sensors) (17 through 24)
• Momentary Switches—Not software detectable (may be
manual switches, buttons, or the like; or can be motion
sensors or similar occupancy sensors) (one for each of up
to 24 outputs)
• Two-Position Lighting Outputs (actual digital output
relays) (1 through 24)
Controlling HI/LO Lighting
through Inputs
Among the various ways you can control the lighting in an
area is to employ two switches—you flick the first for low
lighting, flick both the first and the second for high lighting.
If you try to use only the second switch, the controller does
not take any action.
The first of the switches would turn on, for example, the first
lighting panel to produce low lighting. The second would turn
on another panel, producing high lighting.
To create a program that works with these inputs, you must
remember that if the first lighting panel is OFF, the second
can never be ON.
Suppose you want LIGHT1 and LIGHT2 to work together
with SWITCH1 turning on the first panel (LIGHT1) and
SWITCH2 turning on the second (LIGHT2). SWITCH1 is
16-22
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Programming EMX Modules
ON/OFF and SWITCH2 is its adjunct, setting the lighting to
either high or low.
Figure 16-7 shows a program you might produce and have
triggered by SWITCH2.
Figure 16-7. Hi.LoLighting Program—FallThru
File
Edit
Search
Check
Tools
BLDG1 Hi.LoLighting
If Switch1 IS OFF AND Switch2 IS OFF THEN
SET Light1, Light2 TO OFF
STOP
Endif
If Switch1 IS ON AND Switch2 IS OFF THEN
SET Light1 TO ON
SET Light2 TO OFF
RUN TestingOcc
Endif
’Set to Low Lighting
If Switch1 IS ON AND Switch2 IS ON THEN
’Set to High Lighting
SET Light1, Light2 TO ON
RUN TestingOcc
Else
SET Light2 TO OFF
’Set to Low Lighting
RUN TestingOcc
Endif
IF Switch1 IS OFF AND Switch2 IS ON OR Switch2 is OFF THEN
SET Light1, Light2 TO OFF
Endif
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
16-23
Programming EMX Modules
Controlling Lights through Button
or Motion Sensor
Momentary Switches in
Lighting Control
Although the momentary switches are not typical manual
overrides, sometimes not manual at all (such as a motion
sensor electronic eye), they do momentarily override the
software.
So, the OVERRIDE attribute of the corresponding output is
set to TRUE when the current setting of the lighting panel has
been set by the momentary switch. OVERRIDEVALUE tells
you the actual setting of the light at that time.
Returning Lighting Control
to a Program
The VALUE and OVERRIDEVALUE attributes should
always be the same or the controller cannot take over lighting.
So, you would want to check that the OVERRIDEVALUE of
the relay if its OVERRIDE attribute is TRUE.
You might check these attribute values by triggering a
program on the OVERRIDE attribute of one of the outputs.
Figure 16-8 shows a sample program that triggers on the
OVERRIDE of the FirstLightPanel output. The program sets
a timer to monitor and control how long the “momentary”
setting remains in place.
16-24
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Programming EMX Modules
Figure 16-8. TimedLighting Program—Looping
File
Edit
Search
Check
Tools
BLDG1 TimedLighting
TimingLightsOn:
IF THE FirstLightPanel IS ON and FirstLightPanel OVERRIDE IS~
ON THEN
SET TIMER=TIME
GOTO CalculatingTime
ELSE
IF THE FirstLightPanel IS OFF and OVERIDE is~
OFF and OVERRIDEVALUE IS OFF THEN
GOTO CheckingLightsOff
Endif
Endif
CalculatingTime:
IF TM > 60 and FLOOR1 ROOM1 IS UNOCCUPIED THEN
TURN FirstLightPanel OFF ELSE STOP
ENDIF
CheckingLightsOff:
IF FLOOR1 ROOM1 IS OCCUPIED THEN
TURN FirstLightPanel ON
ELSE STOP
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
16-25
Programming EMX Modules
16-26
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Chapter 17
Dialing Modems
Note
Before you proceed with this chapter, be sure you have set up
your modem as explained in Chapter 3 under Setting Up
Modem Attached Directly to the Controller or Setting Up
Modem or Setting Up Modem Attached to a Terminal.
This chapter covers how to dial a modem and how to send
data through the comm port on the Infinity CX 9000. It also
covers how to use the modem on an Infinity CMX controller.
If you have not already read Chapter 12, you should read it
before you proceed with this chapter.
The information is in the following sections:
• Forming a Modem Dial Function
• Using the Modem Dial Function on the Infinity CX 9000
Controller
• Calling Out on Infinity CMX 220 Built-in Modem
For information about how to call an SX 8000 workstation,
refer to the SX 8000 Programmer’s Guide or the Release
Notes—Andover Controls Infinity SX Workstations.
www.PDF-Zoo.com
Comm Port and Modem Functions
Forming a Modem Dial
Function
GOAL: To set up a function that dials to connect a modem
from one building to a modem in another building and then
send a message to the printer.
Suppose the distance from building 1 to building 2 is 10 miles.
Instead of cabling between them, you use modems to connect
them.
Once the modems are in place on the Infinity CX 9000 of each
building, the controller in building 1 can call to send data,
messages, reports, or alarms to the printer in building 2.
Steps to Carry Out
One Function Dials
Modems
The steps you carry out are as follows:
1. Identify the modem by its comm port (in this case,
COMM3).
2. Send the phone number to the comm port.
3. Return to the calling program.
Dialing the Number
Use PRINT to Dial Phone
Number
Now, you dial the phone number by using PRINT to send the
number to the comm port (for pulse dialing):
PRINT "ATD5551212" TO COMM3
Or, for touchtone dialing, add a T after ATD, as follows:
PRINT "ATDT5551212" TO COMM3
ATDT is required; then you can use the phone number
required from your location. (Only include the area code if it’s
usually required to dial the call.) PRINT can send the
17-2
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Comm Port and Modem Functions
information in any string down any path you request, even
where there is no printer.
Forming the Complete Function
A function named CALL that calls any phone number needs
the following arguments:
ARG 1 PHONE.PORT
ARG 2 PHONE.NUMBER
You then form the body of the function using the PRINT
statement presented earlier, but using the argument names
instead of particular names.
Figure 17-1 shows the entire function file. (Remember to
remove the T after ATD if you do not have touchtone dialing.)
Figure 17-1. CALL Function
File
Edit
Search
Check
Tools
BLDG1 CALL
ARG 1 PHONE.PORT
ARG 2 PHONE.NUMBER
PRINT "ATDT";PHONE.NUMBER TO PHONE.PORT
RETURN
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
17-3
Phone Number and Port
as Function Arguments
Comm Port and Modem Functions
Using the Modem Dial
Function on Infinity CX
Controller
For purposes of the example illustrated in this section, you
should have a string point called ErrorText. In the program,
you set this point to a message about the dialing action.
Opening the Comm Port
Open the Comm Port
The program that calls the function should first open the
communications port to the modem. You open the port with
the OPEN function. The OPEN function must always be
either on a line by itself or the last statement in a line:
Line OpeningPort
Opening = Open (Comm3)
You do not have to include a GOTO statement in the line,
because OPEN automatically goes to the next line. The next
line, however, must test to see if the OPEN was successful.
OPEN returns either SUCCESS or FAILURE and places it in
the local variable OPENING. You check OPENING in the
next line:
Calling:
If Opening = Success Then...
Opening fails if the port is busy doing another task.
17-4
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Comm Port and Modem Functions
Acting on Already Open Port
Because when the port is open, its mode is Raw, you can see
if the port is already open before opening it as follows:
If Comm3 Mode = Raw Then...
When you check the port, you have two possible options:
• If it is open, use the port immediately (since it is already
open)
• Try to open the port with the OPEN comm port function
In the sample program later in this section, if the port is open,
the program uses the port. The line that takes this action is
called OpeningPort and appears as follows:
OpeningPort
ErrorText = ""
If Comm3 Mode = Raw Then
Set Opening to Success
goto Calling
Else
Opening = Open (Comm3)
Endif
Remember that OPEN automatically goes to the next line, so
no GOTO is required after opening the comm port. The
program proceeds to the Calling line.
Notice also that this line sets the ErrorText point, the string
point mentioned earlier, to an empty string.
Accessing Modem
After it determines the port is open or opens the port, the
program must turn on the DTR (Data Terminal Ready)
attribute of the port to indicate it wants to access the modem.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
17-5
Test Comm Port Status
before Opening
Comm Port and Modem Functions
The cable that connects your modem to your controller has a
series of pins in it; one of those pins is the DTR pin. Turning
ON the DTR attribute turns on the DTR pin, indicating the
terminal is read to communicate through the modem.
You turn on DTR in either of the following ways:
Set Comm3 DTR = ON
or
Turn On Comm3 DTR
You use this statement in the Calling line of the program.
Forming Statements to Call the Function
Program Statements
Calling Function
After it turns on the DTR attribute, the program calls the
CALL function you created in the previous section with any
of these statements:
Call(Comm3, "5551212")
Call(Comm2, PhNumb)
Call(Comm1, "6035551212")
Notice that the phone number is a string. Later you join the
ATDT prefix to the string with the joining operator, the
semicolon (;).
“Calling” through the modem this way “rings the phone” of
another modem at the other site.
Connecting
To see if the modem connects (“answers the phone”) the
program checks the CXD (carrier detect) attribute of
COMM3:
If Comm3 CXD = On Then Print Alarmsg To Comm3
17-6
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Comm Port and Modem Functions
Among the pins on the cable that connects your modem to
your controller is the CXD pin.
CXD attribute indicates that the CXD pin is ON. This means
a signal (carrier) has been detected, and the modems are ready
to communicate. If the controller determines that the
modem’s CXD pin is ON, the statement above sends the
message. If the controller determines that the CXD pin is not
ON, the program statement does not try to send the message.
Since the CXD pin may take a few seconds to turn on, the
calling program might have a statement that keeps trying to
get through for a certain number of seconds.
For instance, the program must call the function, then check
to see if the connection occurs within, for example, 40
seconds.
If TS > 40 Then Goto ClosingPort
The above statement closes the port if the call does not go
through. An alternative would be to set an error message, then
close the port, as the following statement does:
If TS > 40 Then
ErrorText = "Could not connect to 508/555-1212"
Goto ClosingPort
Endif
Later, you can print the error message.
The ringing line of the sample program puts together all of
these actions, as follows:
Ringing
If Comm3 CXD Is On Then Goto SendMsg
If TS is greater than 40 Then
ErrorText = "Could not connect to 508/555-1212"
Goto ClosingPort
Endif
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
17-7
CXD Pin Indicates Signal
Has Been Detected
Comm Port and Modem Functions
Transmitting
Check the PrintDone
Attribute
If the CXD is on, and the controller prints the message to the
comm port, how does it know when the complete message has
been sent?
You can check in the program to be sure the message has been
completely sent, using the PRINTDONE attribute of the comm
port. PRINTDONE becomes true when all the characters in the
message have been sent out to the comm port:
If Comm3 PrintDone = True Then...
Note
Some modems require a delay after CXD turns on before you
can send data to them. If you find that the receiving controller
never receives the first part of your message, try adding a
5 second delay before sending the message. Refer to the
example in the next section (for CMX controllers) for how to
program the delay.
Handling Errors
Send Error Messages to
a String Point for Later
What if an error occurs and the port is open? If an error
occurred, any message in response to the error would go to the
comm port—to the modem if the port is open. A way to save
the message so that you can later print it at the terminal is to
put it in the string point you created, ErrorText. ErrorText
holds any error message. At first, remember, you set it to an
empty string:
Set ErrorText = ""
Now, if you suspect an error has occurred, you can print the
ErrorText value at the terminal and see any message the
program may have sent to it.
17-8
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Comm Port and Modem Functions
Figure 17-2. CallOut9000 Program—Looping1
File
Edit
Search
Check
Tools
BLDG1 Callout9000
’This program is designed to run on the 9000 controller only.
Numeric Opening, Closing
OpeningPort:
ErrorText = ""
If Comm3 mode = RAW then
set Opening to success
goto calling
else
Opening = Open(Comm3)
endif
Calling:
If Opening = Success then
Turn Comm3 DTR ON
Call (Comm3,"15085551212")
goto Ringing
Else
print "Could not open port." to ErrorText
stop Connecting
Endif
Ringing:
If Comm3 CXD is on then goto SendMsg
if TS is greater than 40 then
ErrorText = "Could not connect to 508/555-1212."
goto ClosingPort
Endif
SendMsg:
Print AlarmMessage to Comm3
Goto WaitForPrintDone
WaitForPrintDone:
if Comm3 PrintDone = True then goto ClosingPort
1. This program assumes an Andover Controls UDS modem. Any other
modem may require a delay after CXD occurs.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
17-9
Comm Port and Modem Functions
Hanging Up and Closing the Comm Port
Once you have complete the communication, you then hang
up the modem (as you would hang up a phone), by turning off
the DTR attribute of the port:
Turn Off Comm3 DTR
Note
Refer to your modem manual for how to configure your
modem to hang up the phone.
The CLOSE Function
Closes the Comm Port
You then close the comm port. You close it with the CLOSE
function:
Closing = Close (Comm3)
ClosingPort:
Turn off Comm3 DTR
Closing = Close (Comm3)
CLOSE, like OPEN, must be either the last statement on a line
or on a line by itself. CLOSE automatically goes to the next
line. The CLOSE statement, like OPEN, returns either
SUCCESS or FAILURE. The next line must always include a
test for the success of the closing.
Figure 17-2 shows the entire program, including lines to test
for SUCCESS or FAILURE of OPEN and CLOSE. The
program is looping.
A more typical program would use a string point for the phone
number, so that all you have to do is change the point value to
change the phone number.
17-10
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Comm Port and Modem Functions
Figure 17-2. CallOut9000 Program—Looping (cont)
File
Edit
Search
Check
Tools
BLDG1 CallOut9000
ClosingPort:
Turn Comm3 DTR Off
Closing = Close(Comm3)
EndingProgram:
If Closing = Success then
stop CallOut9000
Else
Print "Could not close port." to ErrorText
stop CallOut9000
Endif
Changing the Baud Rate, Parity, or
Number of Stop Bits
When you first define the comm port, you assign it a baud
rate.
Suppose you want to send a message through a modem that
has a baud rate different from the original baud rate of the
comm port. Before you send the message to that modem, you
must change the BAUD attribute setting.
The following example shows how you first store the original
baud in a numeric local variable called MODEMBAUD:
Numeric ModemBaud
ModemBaud = Modem1 Baud
Set Modem1 Baud = Baud300
Then, after opening the comm port, and completing the tasks
on the modem, you must set the BAUD attribute back to its
original value:
Set Modem1 Baud = ModemBaud
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
17-11
Changing the Baud Rate,
Parity, Stop Bits
Comm Port and Modem Functions
The same applies to both the PARITY and STOPBITS if you
must them for a particular modem. For more on those
attributes, see Appendix B of the Andover Controls Plain
English Language Reference.
Revising the Program for CMX 240
You can revise the CONNECTMOD program to run on a
CMX 240 by changing the comm port from COMM3 to the
comm port that connects to the modem, either COMM1 or
COMM2. Otherwise, the program is the same for both
controllers.
Do Not Turn Off RTS Attribute
of LBus or Infinet
RTS Attribute Must Be
ON
Do not turn off the RTS (“Ready To Send”) attribute for the
comm port of LBus or Infinet. If you do, it shuts the port down
and you cannot access the LBus or Infinet.
17-12
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Comm Port and Modem Functions
Summary
• You can write a function that carries out the same action
on different pieces of equipment.
• A function can call another function.
• Before you dial a modem, you must turn on the comm
port’s DTR (data terminal ready) attribute to indicate you
want to use the modem.
• To dial a modem, you print the phone number to the comm
port of the modem one of two ways:
PRINT "ATD";PHONE.NUMBER (for pulse dial)
PRINT "ATDT";PHONE.NUMBER (for touchtone dial)
• To avoid printing an error to the open comm port, you may
choose to store the error in a string point.
• The CXD (carrier detect) attribute of a comm port is ON
when the controller detects the CXD pin of the port is ON,
meaning the modems are ready to communicate.
• Before calling the function to dial the modem, you must
have a line that determine the port is already open or opens
the comm port with OPEN.
• After you connect and send the message to the comm port
with PRINT, you check to see the entire message was sent
with PRINTDONE.
• After the message has been sent, you hang up on the comm
port by turning off the comm port’s DTR attribute.
• After you use the modem, you must have a line that closes
the comm port with CLOSE.
• OPEN and CLOSE each require a line that tests to see if
the opening or closing process is successful.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
17-13
PRINT Sends Phone
Number to Comm Port
Comm Port and Modem Functions
Calling Out on Infinity CMX
Built-in Modem
Calling In Versus Calling
Out on CMX
To call in on the Infinity CMX built-in modem from another
building, you do not need a special program. Since the CMX
controller’s built-in modem is automatically set up to receive
incoming calls, when you call in, Infinity automatically sets
the modem baud to 2400 and returns it to the original baud
setting on hangup. And the CMX automatically logs off any
operator who is logged on when the incoming call occurs.
To call out on a CMX, however, requires a special program.
GOAL: To call out from the built-in modem on an Infinity
CMX using the CALL function created earlier in this chapter.
Differences between Calling
from CMX and Infinity CX Controllers
What is different about calling from an CMX rather than an
Infinity CX? Here are some of the differences:
• Infinity sees the built-in modem on a CMX as the UserPort
rather than as COMM3.
• To indicate you want to access the modem, you set the
UserPort DTR attribute to ON and set the baud to 2400.
• Once you access the modem, you can send it AT dial and
hangup modem commands only, shown in the modem manual. Other modem commands may create issues on the CMX.
• Once you determine the call has connected (CXD attribute
is TRUE), you must wait for a minimum of 6 seconds
(TS > 5) before actually sending a message to the port.
• To disconnect from the modem, you turn UserPort DTR off.
17-14
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Comm Port and Modem Functions
Creating String to Hold Error
Since you cannot print to the terminal if the port is open, you
store the error in a string. So, begin by creating a string point
called ERRORTEXT and setting it to an empty string:
SET ErrorText = ""
Before Opening CMX 220 User Port
To call out on the built-in modem, you must open the port.
Before you can open the port, you must store the current baud
in a local variable called MODEMBAUD, as follows:
SET ModemBaud to UserPort Baud
Because when the port is open, its mode is Raw, you can see
if the port is already open before opening it as follows:
If UserPort Mode = Raw Then...
If the port is already open, you have two possible options:
• Use the port immediately (since it is already open)
• Consider the port unavailable and stop the program
Opening CMX 220 User Port
The first line tests to see if the UserPort is already open. If the
port is not open, the program opens it; if it is open, the
program proceeds to make the call (on the CALLING line):
IF UserPort Mode = Raw Then
Set Opening to Success
Goto Calling
Else
Opening = Open (UserPort)
Endif
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
17-15
Storing the DefaultMode
Baud
Comm Port and Modem Functions
Once OPEN opens the port, the line does not need a GOTO
statement, because OPEN automatically goes to the next line.
The next line always tests to see if OPEN was successful.
Preparing to Call Out
Setting DTR and Baud
before Calling Out
The OPEN function returns either SUCCESS or FAILURE
and places it in the local variable OPENING. You check
OPENING in the next line:
Calling:
If Opening = SUCCESS Then...
Once you have opened the port successfully, to access the
built-in modem, you must set the UserPort DTR attribute (for
“Data Terminal Ready”) to ON and set the baud to 2400 for
the built-in modem on the CMX 220:
TURN UserPort DTR ON
SET UserPort Baud = Baud2400
Forming Statement to Call Out
Statement to Call Out
After it opens the port, the program runs the function you
created earlier in this chapter:
CALL(UserPort, "5551212")
Figure 17-3 shows the program (the figure continues on
subsequent pages). Notice that the complete CALLING line
combines statements formed in the this subsection and the last.
Connecting
To see if the modem connects, you set up a line called RINGING
that checks the CXD (carrier detect) attribute of the UserPort:
If UserPort CXD = ON Then GoTo DelayAfterCXD
If the controller detects communication signals, CXD is ON.
17-16
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Comm Port and Modem Functions
Figure 17-3. CMXDialOut Program—Looping
File
Edit
Search
Check
BLDG1 CMXDialOut
’This program is designed to run on the 220 controller only.
Numeric Opening, Closing, ModemBaud
OpeningPort:
Set ModemBaud to UserPort Baud
ErrorText = ""
If userport mode = RAW then
set opening to success
goto calling
else
Opening = Open(UserPort)
endif
Calling:
If Opening = Success then
Turn UserPort DTR On
Set UserPort Baud to Baud2400
Call (UserPort,"15085551212")
goto Ringing
Else
print "Could not open port." to ErrorText
stop CMXDialOut
Endif
Ringing:
If UserPort CXD is on then goto DelayAfterCxd
if TS is greater than 40 then
ErrorText = "Could not connect to 508/555-1212."
goto ClosingPort
Endif
DelayAfterCxd:
if ts is greater than 5 then goto SendMsg
SendMsg:
Print AlarmMessage to UserPort
Goto WaitForPrintDone
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
17-17
Tools
Comm Port and Modem Functions
CXD Attribute Indicates a
Signal Is Detected
If CXD is not ON, you can have a statement that keeps trying
to get through for a certain number of seconds. The one shown
below calls the CALL function, then checks to see if the
connection occurs within, for example, 40 seconds:
IF TS > 40 THEN
Set ErrorText = "Could not connect to 508/555-1212"
Goto ClosingPort
ENDIF
If 40 seconds elapse and the program does not connect, you
then set the ERRORTEXT variable to an error message. You
do this because while the port is open, you cannot print to the
Messages window. Later, after you close the port, you can
send the message to the Messages window.
Transmitting
Once CXD is ON, you must wait at least 6 seconds before you
can send text through the port. If you do not wait the 6 seconds,
you lose some characters at the beginning of the message. To
wait those 6 seconds, you can set up a DELAYAFTERCXD
line to measure elapsed time:
If TS is greater than 5 then goto SendMsg
The SENDMSG line then sends the string variable to the
UserPort with a PRINT statement:
Print AlarmMessage to UserPort
The PRINTDONE attribute of the UserPort becomes TRUE
when all characters in the message have been sent:
If UserPort printdone = TRUE Then goto WaitForModem
17-18
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Comm Port and Modem Functions
Hanging Up the Modem
Once the PRINTDONE attribute is TRUE, you must begin the
process of hanging up the modem. You hang up the modem by
doing each of the following:
1. Wait 1 second
2. Send the characters “+++” to the modem
3. Be sure the modem has received the “+++”
4. Wait 1 second
5. Send the hangup command to the modem (see the AT
commands)
To carry out the process, you form several separate lines. Each
line that measures elapsed time must be a separate line:
WaitForModem:
If TS > 1 then goto PrepModem
After you wait 1 second, you can then send three plus signs to
the modem to indicate you want to send a command. be sure the
three plus signs are in a string (in quotation marks) and
followed by a semicolon:
PrepModem:
Print "+++"; to UserPort
Goto WaitToFinishPrep
Now be sure you have sent the string:
WaitToFinishPrep:
If UserPort PRINTDONE = True then WaitToHangup
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
17-19
Carry Out Specific Steps
to Hang Up
Comm Port and Modem Functions
ATH Command Tells
Modem to Hang Up
Finally, you are ready to hang up. You must first wait 1 second,
or the modem could falter and force you to start the process
over:
WaitToHangup:
If TS > 1 then goto HangupModem
Once you have waited the 1 second, you can then send the AT
command H. The AT gets the modem’s attention and the H
hangs up:
HangupModem:
Print "ATH" to UserPort
Goto PrepToClose
Closing the Port
Be sure the modem has received the hangup command before
you close the comm port by testing to be sure the PRINTDONE
attribute of the port is TRUE:
PrepToClose:
If UserPort printdone = True then goto ClosingPort
Then be sure to restore the port by setting the DTR attribute to
OFF and the BAUD to its original setting with
MODEMBAUD. Then use the CLOSE comm port function:
ClosingPort:
Turn UserPort DTR Off
Set UserPort Baud to ModemBaud
Closing = Close (UserPort)
Ending the Program
The last line of the program must test to be sure CLOSE is
successful and take action if it is not.
17-20
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Comm Port and Modem Functions
Figure 17-3. CMXDialOut Program—Looping (cont)
File
Edit
Search
Check
Tools
BLDG1 CMXDialOut
WaitForPrintDone:
if UserPort PrintDone = True then goto WaitForModem
WaitForModem:
if ts is greater than 1 then goto PrepModem
PrepModem:
print "+++"; to UserPort
goto WaitToFinishPrep
WaitToFinishPrep:
if UserPort PrintDone = True then goto WaitToHangup
WaitToHangup:
if ts is greater than 1 then goto HangupModem
HangupModem:
print "ATH" to UserPort
goto PrepToClose
PrepToClose:
if UserPort PrintDone = True then goto ClosingPort
ClosingPort:
Turn UserPort DTR Off
Set UserPort Baud to ModemBaud
Closing = Close(UserPort)
EndingProgram:
If Closing = Success then
stop CMXDialOut
Else
Print "Could not close port." to ErrorText
stop CMXDialOut
Endif
If the CLOSE function is successful, the program stops.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
17-21
Comm Port and Modem Functions
ERRORTEXT Contains
Any Error
If the CLOSE function fails, the message that you could not
close the port prints to the ERRORTEXT string point.
Whether CLOSE succeeds or fails, you stop the program so
that it does not continue to loop.
To see if anything has gone wrong, print ERRORTEXT
at a terminal. If the program has stored a message in
ERRORTEXT, you can take action in response to the
message.
Now, try calling out on your CMX controller.
Warning
Use Extra Terminal to Debug OPEN and CLOSE
Comm Port Functions
You Must Be Sure to
Close Comm Ports
Remember that OPEN comm port and CLOSE comm port are
advanced functions and only experienced programmers
should use them.
If you plan to run programs that contain the OPEN and
CLOSE comm port functions, you should have two terminals
attached to the same controller while debugging. This way if
you open the comm port and do not close it (locking out the
terminal), you can access the controller from the other
terminal. Otherwise, you must reset the controller.
If the program that should close the port has an error, it
becomes disabled. The port does not close and is then locked
open. Once it is locked open, you cannot access the controller
through that terminal. So be careful to thoroughly debug any
programs that use OPEN and CLOSE comm port functions.
17-22
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Chapter 18
Advanced Functions
for Experts
This chapter lists some advanced functions and operators:
• Advanced Math Functions
• Advanced Math Operators
• Advanced String Functions
www.PDF-Zoo.com
Advanced Functions
Advanced Math Functions
The following math functions are available for advanced
users:
Advanced Math
Function Keywords
ABS
LN
ACOS
LOG
ASIN
MOD
ATAN
RANDOM
ATAN2
ROUND
CEILING
SIN
COS
SQRT
EXPONENTIAL
STANDARDDEVIATION
FACTORIAL
TAN
FLOOR
TRUNCATE
Details on these functions are provided in the Andover
Controls Plain English Language Reference.
18-2
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Advanced Functions
Advanced Math Operators
The following math operators are available for advanced
users:
BITAND
BITOR
BITNOT
BITXOR
Advanced Math
Operator Keywords
Details on these operators are provided in the Andover
Controls Plain English Language Reference.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
18-3
Advanced Functions
Advanced String Functions
The following string functions are available for advanced
users:
Advanced String
Function Keywords
ASC
RIGHT
CHR
SEARCH
LEFT
STRINGFILL
LENGTH
STRTODATE
MID
STRTONUM
NUMTOSTR
TAB
Details on these functions are provided in the Andover
Controls Plain English Language Reference.
18-4
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Chapter 19
Loading and Saving
Points and Programs
This chapter covers the following topics:
• Saving Points and Programs to Magnetic Media
• Loading Points and Programs from Magnetic Media
• Using LOAD Command to Correct Memory
Fragmentation
www.PDF-Zoo.com
Loading and Saving
Saving Points and Programs
to Magnetic Media
Backup Copies of Files
After you have written your programs, it is good to have a
backup copy of them.
Should the power go down, the battery backup on the controller has enough power to maintain memory for 48 hours. Your
programs are safe until then. What you need to do is plan
ahead:
• Keep printed copies of your programs in your filing
cabinet.
• Have a list of emergency procedures (to turn on or off
equipment, turn on a generator) for handling power loss.
• Save your programs on a disk so that you can reload them
in the event that a power outage destroys them.
The first two bullets are self-explanatory. But how do you
send information to a disk? You use a keyword called SAVE
or DUMP.
Before You Can Save
Preparing to Save
Before you can use SAVE or DUMP, you must have a computer on your network with a disk. The computer should be
running a communications package, such as CROSSTALK.
(You may also want to consider the helpful hints regarding the
firing order list, given in Chapter 9.)
19-2
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Loading and Saving
Procedure to Save
You prepare the computer to receive a file from the controller
using the communications package commands. (The following example uses CROSSTALK in step 2. To use another
package, refer to that package’s documentation):
1. Go to the host (active) computer on your network and enter
the communications package.
Save Files on Host
Computer
2. Type capture C: allinfo and press the EXECUTE key to
prepare the computer to receive a file on disk C and save it
under the name “allinfo.”
3. Go to the controller and type SAVE ALL and press the
EXECUTE key.
This procedure saves all information about your controller
(except alarms information), including all points and programs, onto disk C. The programs save in the order on the
firing order list, starting with the last one and proceeding back
to the first.
You can type SAVE ALL on the controller before you type
the communications command on the computer, but if you do,
you have only 60 seconds to type the communications command before the save fails.
Other Saving Rules
You can also save a particular point or file by including its
name:
SAVE HEAT.PROG
DUMP SupplyAirT
Or you could save a list of points or programs:
SAVE SupplyAir1, SupplyAir2, SupplyAir3
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
19-3
Using SAVE ALL
Loading and Saving
DUMP HEAT.NOHEAT, MORN.WARMUP, AIRPROG
You can save all input points this way:
SAVE INPUT
You can save any type that is defined in the controller,
including:
INPUT
STRING
FUNCTION
OUTPUT
DATETIME
DATA
NUMERIC
PROGRAM
Saving Only Definitions
Save with Item
Definitions
To save only the dictionary of all items on the Infinet controller, include the -d option in the command line:
SAVE ALL -d
DUMP ALL -d
Saving Items on EnergyNet
To save all items on the entire EnergyNet network with a definition of each item, include ENERGYNET in the command
line:
SAVE ENERGYNET
DUMP ENERGYNET
Saving Items on Infinet
Save All of Infinet
To save all items on the Infinity CX 9000 and all Infinet controllers on the Infinet or Infinets connected to it with a
definition of each item, include INFINET in the command
line:
SAVE INFINET
19-4
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Loading and Saving
DUMP INFINET
Saving Items on Both EnergyNet
and Infinet
To save all items on all Infinity CX 9000s and all Infinet controllers on all Infinets with a definition of each item, include
SITE in the command line:
SAVE SITE
DUMP SITE
Summary
• Before you can save, you must have a computer running an
ANSI terminal emulator program and a file storage device
(tape or disk).
•
To save all items on the controller and all its Infinets, add
INFINET to the SAVE command line.
• To save all items on the entire EnergyNet, add
ENERGYNET to the SAVE command line.
• To save all items on the entire EnergyNet and all the
Infinets attached to every controller, add SITE to the
SAVE command line.
• To save only the dictionary of items, add the -d option to
the SAVE command line.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
19-5
Computer Must Run
ANSI Terminal Emulator
Loading and Saving
Loading Points and Programs
from Magnetic Media
LOAD or RELOAD Points
and Programs
To load points and programs you have saved on tape back into
the controller after power comes back on, you use the LOAD
or RELOAD keyword.
Before You Can Load
Before you can use LOAD or RELOAD, you must have a
computer on your network with a disk. The computer should
be running a communications package, such as
CROSSTALK.
You must also have a file that has been saved (called a “dump
file”) or an ASCII file typed in dump file format. For more on
dump file format, see the Andover Controls Plain English
Language Reference.
Procedure to Load
You prepare the computer to send a file to the controller using
the communications package commands. (The following
example uses CROSSTALK in step 2. To use another package, refer to that package’s documentation):
To reload all points and programs at once:
1. Go to the host (active) computer on your network and enter
the communications package.
2. Type upload C: allinfo and press the EXECUTE key to
prepare the computer to send a file named “allinfo” from
disk C.
3. Go to the controller and type LOAD and press the
EXECUTE key.
19-6
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Loading and Saving
This procedure loads the file onto your controller, adding the
information to the already-present database.
To reload all information onto the controller and replace the
information already on the controller, you use the -o option
with LOAD, like this:
LOAD -o
The “o” stands for “overwrite.” The computer “writes” to the
RAM, so to overwrite is to replace information.
To see messages concerning the loading process in the
Messages window while loading, add the -m option:
LOAD -m
Programs always load in the order on the firing order list,
starting with the first one listed.
Summary
• To load or save programs, points, or other controller
information, you must have a computer on the network.
• The computer must have a disk and be running a
communications program, such as CROSSTALK.
• You use SAVE or DUMP to save information onto disk.
• You use LOAD or RELOAD to load information from
disk.
• You use the -o (overwrite) option with LOAD or
RELOAD to replace all information in the controller with
the information you are loading.
• You use the -m (messages) option with LOAD or
RELOAD to see messages in the Messages window
during loading.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
19-7
Adding to Present
Database
Loading and Saving
Using LOAD Command to
Correct Memory Fragmenting
If you have trouble saving a file you have made changes to on
an Infinet controller when adequate free memory exists, the
problem may be caused by memory fragmentation. Although
this situation is rare, it could occur. If this occurs, proceed as
follows:
1. SAVE the files on the controller with the SAVE or DUMP
command.
2. RESET the controller by either pressing the RESET button
in the Infinet Controller window, or disconnecting the
battery and then powering down the controller.
3. Reload the programs with the LOAD or RELOAD
command.
LOAD Stores Files More
Compactly
The reload stores the files more compactly in the controller
memory and corrects the fragmentation problem.
19-8
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Chapter 20
Operating on Battery Backup
This chapter covers the following topics:
•
•
•
•
www.PDF-Zoo.com
Reacting When AC Power Goes Down
Writing a Simple Power Down Program
Writing Another Power Down Program
Calling for Intervention on Power Loss
Operating on Battery Backup
Reacting When AC Power
Goes Down
RAM and Real-Time
Clock Always Operate
Once the battery is connected, RAM and the real-time clock
are always operating. When the AC power is down (the
controller is off), you are then operating on only RAM with
the real-time clock.
Under battery power, you can choose to have full controller
operation for 2 hours. For short power losses, you may never
even see a lapse in controller activity. (If you have a backup
generator for major equipment, reasonably normal building
control could continue without alarms.)
But if you expect the power to remain down, you may want to
extend the length of time you can operate on battery backup.
Shutting down parts of the controller extends that length of
time beyond 2 hours and to potentially as long as 48 hours
(although that length of time varies depending on the
controller model and the battery power consumed before you
turn off the various parts of the controller).
You can shut down the various parts connected to the
controller and keep only the CPU running:
• Modem
• DCX 250attached directly to the Infinity CX 9000
Warning
If you take down the CPU power, you cannot turn on the
controller until AC power returns.
You can also turn off the CPU and run the equipment
manually.
20-2
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Operating on Battery Backup
Shutting Down the Parts
You shut down the parts by setting a programmable system
variable to control each part.
The programmable system variables to control the power are
as follows:
• MODEMPOWER
• DCXPOWER
• CPUPOWER
These system variables correspond to particular lights on the
Power Supply Voltage Status Display inside the Infinity CX
9000 cabinet.
Figure 20-1 shows the lights. The ones with the asterisks to
the right correspond to the programmable system variables.
Figure 20-1. Power Supply Voltage Status Display
–5
+15
–15
+24
Main
IOU
Modem
DCX 250
AC Power
EnergyLink 2000
*
*
*
From either a program or the Command window, you can
set each one to OFF as follows:
SET DCXPOWER = OFF
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
20-3
Programmable System
Variables
Operating on Battery Backup
SET MODEMPOWER = OFF
or you can turn one off as follows:
TURN OFF DCXPOWER
TURN OFF CPUPOWER
You later turn them on the same way.
But which is appropriate when? How do you use them?
You use them in conjunction with the POWERFAIL
system variable.
Using the POWERFAIL
System Variable
POWERFAIL Indicates
Power Has Been Lost
Each time you lose AC power to a particular controller, its
POWERFAIL system variable is automatically set to ON. It
remains ON until one scan after AC power returns.
You can use the POWERFAIL system variable as a trigger to
tell the controller when to shut down system parts.
In the next section, you write some programs that take various
actions when AC power fails.
20-4
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Operating on Battery Backup
Writing a Simple Power Down
Program
Figure 20-2 shows a sample POWERLOSS program that is
looping and triggered by the POWERFAIL system variable.
Figure 20-2. Sample PowerLoss Program—Looping
File
Edit
Search
Compile
Tools
BLDG1 FLOOR1 PowerLoss
NUMERIC STOPTIME
LINE TestPower
IF POWERFAIL IS ON THEN
TURN OFF DCXPOWER
GOTO TimePowerOff
ELSE
TURN ON CPUPOWER, DCXPOWER, MODEMPOWER
STOP
ENDIF
LINE TimePowerOff
IF TM > 10 and POWERFAIL IS ON THEN
TURN OFF MODEMPOWER, CPUPOWER
ENDIF
IF POWERFAIL IS OFF THEN GOTO TestPower
This POWERLOSS program turns off parts of the controller
system after AC power has been down for 10 minutes.
Notice that the program turns off power to the DCX 250
immediately, but waits before turning off power to the modem
and CPU. The DCX 250 draws more power than any other
part on the controller and turning it off immediately saves the
battery.
If POWERFAIL is on when it triggers the program, the
program turns on power to the CPU, DCX 250, and modem.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
20-5
Operating on Battery Backup
Writing Another Power Down
Program
Preparing for Power
Down
After you turn off power to the DCX 250, you may want to take
further action before shutting down the other controller parts.
For instance, you may want to light up a status light on the
controller that has been labeled OPERATING ON BATTERY.
Each status light on the front of the Infinity CX controller has a
programmable system variable called STATUS1 for the first
light, STATUS2 for the second, and so on up to STATUS8.
You turn on the first status light with the following statement:
TURN ON FLOOR1 STATUS1
OR
SET FLOOR1 STATUS1 = ON
As shown in Figure 12-3, an alternative PowerLoss program,
you can set a status light when the power loss occurs.
This program immediately turns off power to the DCX 250. It
then turns on the status light that says OPERATING ON
BATTERY.
After 5 minutes elapse, the program shuts down battery
power.
You could, instead of having the program turn off the CPU,
have a different procedure. For instance, the first operator to
notice the status light is on could contact the system administrator, who would then start any emergency procedures, including
turning off power to the CPU from the command line.
Suppose you have a generator for major parts of your HVAC
system, such as the boiler, the chiller, and the fans. You can
leave the CPUPOWER up and allow the programs to continue
running the equipment. Or you can shut down CPUPOWER
20-6
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Operating on Battery Backup
to save the battery and run the equipment manually until the
crisis has passed.
Figure 20-3. Alternative PowerLoss Program That
Turns on Status Lights—Looping
File
Edit
Search
Compile
Tools
BLDG1 FLOOR1 PowerLoss
LINE TestPower
IF POWERFAIL IS ON THEN
TURN OFF DCXPOWER
TURN ON Status1
GOTO TimePowerOff
ENDIF
LINE TimePowerOff
IF TM > 5 and POWERFAIL IS ON THEN
TURN OFF MODEMPOWER, CPUPOWER, Status1
ENDIF
Shutting down CPUPOWER supersedes any other power,
since no other part of the controller functions if the CPU has
no power.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
20-7
Operating on Battery Backup
Status Light Panel on
Controller Door
Figure 20-4 shows the status light panel on the front of the
FLOOR1 controller after the PowerLoss program has run for
more than 5 minutes.
Figure 20-4. Status Light Panel on Floor1 Controller
in Response to PowerLoss Program
STATUS
1
2
Operating On Battery
SYSTEM
STATUS
SCAN
3
4
COMM1
5
6
COMM3
7
8
20-8
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Operating on Battery Backup
Calling for Intervention
on Power Loss
You might choose to call another site on the modem when
power fails, or call an individual to respond to the alarms.
Figure 20-5 shows another program that a PowerLoss
program could call. The program that has four phone numbers
to call when the power is down. If the equipment cannot
connect to the first number, it tries the second.
Calling an Operator Who
Is Responsible
Figure 20-5. Alternative PowerLoss Program That
Dials Phone Numbers—Looping
File
Edit
Search
Compile
BLDG1 FLOOR1 DialHelp
NUMERIC NUM1, NUM2, NUM3, NUM4, OPENING, CLOSING
NUM1 = "9,5085551212"
NUM2 = "9,5085552222"
NUM3 = "9,5085551111"
NUM4 = "9,5085553333"
LINE Testing
if TM > 2 and POWERFAIL IS ON~
and TOD > 7:00pm OR TOD < 6:00am then
SET PhoneNum = NUM1
SET Seq = 1
GOTO OpenPort
endif
LINE OpenPort
OPENING = OPEN (COMM3)
LINE Calling
IF OPENING = SUCCESS THEN
CALL (COMM3, PhoneNum)
GOTO Ringing
endif
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
20-9
Tools
Operating on Battery Backup
Figure 20-5. Alternative PowerLoss Program That
Dials Phone Numbers—Looping (cont)
LINE Ringing
if TS > 40 and COMM3 CXD = ON then
GOTO Connected
endif
IF TS > 40 and COMM3 CXD = OFF then
if Seq = 4 then SET Seq = 0
if Seq < 4 then SET PhoneNum = "Num";Seq + 1
GOTO Calling
endif
LINE Connected
Print "AC Power down." To COMM3
Print "Implement emergency procedures." To COMM3
PRINT "Please respond immediately." To COMM3
if COMM3 PrintDone = True then
TURN OFF COMM3 DTR
GOTO ClosePort
endif
LINE ClosePort
CLOSING = CLOSE (COMM3)
LINE Ending
IF CLOSING = SUCCESS THEN STOP
else
Print "Could not close port" to Printer1
STOP
endif
Notice that on the RINGING line, the program allows 40 seconds for COMM3 to connect. If no connection occurs, the line
adds 1 to the SEQ number, uses SEQ to form the next phone
number, and goes to the CALLING line to call the new number.
This program would be an evening alternative. You would
need a day program to cover daytime actions.
20-10
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Chapter 21
Introducing and Planning
Access Control
Note
If you are not using Infinity for an access control system, skip
this chapter and subsequent chapters.
Before you attempt to set up and program your access control
system, this chapter explains how you get started. It covers
how to plan your sites. It explains the relationships between
the types of hardware you use for access control. It also introduces you to other elements of the access control system—
access cards, card readers, keypads, and motion detectors.
You should be familiar with the concepts presented in this
chapter before you set up your access control system:
• Planning Access Control Sites
• Understanding Elements of an Access Control System
• How Access Control Elements Control Entry
through Door
• How Access Control Elements Control Exiting
through Door
• How to Secure Windows
• Deciding Where to Mount Access Controllers
• Where Doors and Related Inputs/Outputs Are
on ACX 700 Controller
• Where Doors and Related Inputs/Outputs Are
on Expansion Modules
• Where Doors and Related Inputs/Outputs Are on ACX 780
Controllers
www.PDF-Zoo.com
Introducing Access Control
Planning the Access Control
Network
Draw a Graphic of Building or Site
Before you can control access to the various areas in a building, you must begin with a drawing of the floor plan—one you
will refer to many times while setting up access control.
In this drawing, show every area you want to control access to
and the door or doors that provide access to each area.
Figure 21-1 shows such a drawing of a small site.
Figure 21-1. Drawing of a Simple
Site for Access Control
Lab
Lobby
Outside
21-2
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Introducing Access Control
Assigning Areas Names
You begin by giving each area a name. In the example above,
each area is labeled with an appropriate name. Notice that in
addition to the Lobby and the Lab, Outside is also an area.
Since your site undoubtedly has more areas, write all the area
names in the drawing so you can refer to them later.
Assigning Doors Names
Once you have established the areas, you can assign each door
a name, such as FrontDoor. In this particular drawing, the
doors are not labeled, but below is a list of their names and
where they allow access:
• FrontDoor—from Outside to Lobby
• LabDoor—from Lobby to Lab
Be sure to write down the names of your doors in your drawing so you can refer to them later.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
21-3
Assign Each Area and
Door a Name
Introducing Access Control
Understanding Elements of an
Access Control System
Draw a Graphic of
Building or Site
Before you can control access to the various areas in a site,
you must have the following:
• An Infinity CX 9000 Controller (or any controller in the
9000 series or 220 series)
• Access Controllers (ACX 700 series)—Infinet controllers
specifically designed to handle access control
• An SX 8000 Workstation—Recommended, but optional
• Card Readers and/or Keypads
• At Least One Set of Access Cards
(if you are using card readers)
• Door Switches
• Door Lock Relays
• Motion Detectors or Request-to-Exit Buttons
The ACX 700 controller cabinet has a built-in cabinet tamper
switch.
Also, you may want to employ the following optional devices:
• Alarm Relays—Buzzers, Lights to Flash
• GlassBreak Sensors to Detect Broken Windows
Elements Controlling a Single Door
with a 700 Controller
Figure 21-2 shows the required/optional access control
devices for a single door that you enter and exit an area
21-4
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Introducing Access Control
through. In this illustration, the door is controlled by an ACX
700 controller.
Figure 21-2. Access Control Elements Possible
for a Single Door
One ACX 700 Controller
Can Have Up to Three Doors,
and Up to Two Additional
Doors if You Use Expansion
Modules
Motion
Detector
One Door Switch
for Each Door
(This is a supervisory
switch that detects
tampering)
9000
Controller
(or other 9000/220 series)
except the 9500)
1
4
7
*
2
5
8
0
SX 8000
File Server
3
6
9
#
Entry Keypad
1
4
7
*
ACX 700
Controller
Rs
2
5
8
0
3
6
9
#
Exit Keypad
Entry Card
Reader
Exit Card
Reader
Request-to-Exit
Button
12/24V
One Electromagnetic
Door Lock/Door Striker
per Door
Alarm
Buzzer
Note that the SX 8000 file server is optional for access control. However, it may be required if you expect to have a
large database of personnel.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
21-5
Introducing Access Control
Elements Controlling a Single Door
with a ACX 780 Controller
Understand Difference
between 700 and 780
An ACX 780 controller uses the same access control system
elements to control a door as the ACX 700 does; however in
this case, notice that card readers and keypads are right next
to each other. The card reader and keypad are on the same terminal block connector and control the same door (more later).
Figure 21-3 shows the required/optional access control
devices for a single door that you enter and exit an area
through. In this case, the door is controlled by a ACX 780
controller.
The ACX 780 also has an extra tamper switch that sets off an
alarm if someone tries to remove the cabinet from the wall.
21-6
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Introducing Access Control
Figure 21-3. Access Control Elements for a Single
Door on the ACX 780 Controller
One ACX 780 Controller Can
Have Up to Eight Doors,
with an Alarm Buzzer
9000
Controller
(or other 9000/220 series
except the 9500)
SX 8000
File Server
Motion
Detector
One Door Switch
for Each Door
(This is a
supervisory
switch that
selects tampering)
ACX 780 has
an additional
tamper switch
that indicates
someone is
attempting to
remove the
cabinet from
the wall.
780
Controller
Rs
12/24V
One Electromagnetic
Door Lock/Door
Striker per Door
Request-to-Exit
Button
Alarm
Buzzer
Tamper Switch
Exit Card
Reader
Entry Card
Reader
3 2 1
6 5 4
9 8 7
# 0 *
Entry Keypad
1
4
7
*
2
5
8
0
3
6
9
#
Exit Keypad
How does all this equipment work to control access to an
area?
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
21-7
Introducing Access Control
How Access Control Elements
Control Entry through Door
Which elements of the control system control entry through a
door? Card readers and keypads provide information to determine when the controller should open the door lock. How
does it all happen?
Using Access Cards to Enter
You May Purchase Sets
of Access Cards
When you purchase your access control system, you also
purchase a set (or multiple sets) of access cards that you distribute to personnel. (Unless you choose to use strictly
keypads.)
As shown in Figure 21-4, each card holder swipes the card
through a card reader to gain access to an area.
Figure 21-4. Swiping an Access Card Through a
Card Reader
The set of cards is either Wiegand or ABA, to match the card
reader you have selected. (You can also use cards from your
AC4+4 if you are upgrading to the new access control
system.)
Each card is encoded with two numbers: site code and card
number.
The site code is a number from that identifies the site. This
number is the same for the entire set of cards. To accommodate multiple sets of cards for the same area, you can have up
to four different site codes for the same area.
21-8
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Introducing Access Control
The card number is a number unique to that particular card
that allows you to identify the individual card holder. The
card number is up to five digits encoded into the card.
The person holding the card does not need to know the card
number—the individual need only swipe the card through the
card reader. The control system then reads the number from
the card, finds it in the database, and checks to see if the person should be allowed to enter. If so, the system then unlocks
the door.
The system also records whether or not the person actually
opens the door. The door switch indicates whether or not the
door was opened. If the person opens the door and, presumably, enters through it, the access control system records an
event—a Valid Access event.
Using Keypads to Enter
When you purchase your access control system, you also purchase a numeric keypad that you wire to the controller. The
individual who wants to enter the area types a series of digits
(called an “punching an access code”) on the keypad and
presses the pound (#) key. You assign the access codes.
You can assign two types of access codes:
• Same code to all personnel (called a “general code”)
• Unique personal identification number (PIN) to each
individual
The person who wants access must remember the access code.
Once the individual punches the code on the keypad and
presses the pound key, the control system reads the number,
finds it in the database, and checks to see if the person should
be allowed to enter. If so, the system then unlocks the door.
The door switch indicates whether or not the door was
opened. If the person opens the door and, presumably, enters
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
21-9
You May Purchase
Numeric Keypads
Introducing Access Control
through it, the access control system records an event—a
Valid Access event.
Card Reader, Keypad,
Door Lock and Switch
Figure 21-5 shows an entry door with an entry card reader,
entry keypad, door lock, and door switch wired to the
controller.
Figure 21-5. Entry Door Hardware Setup
Door Switch
Rs
Electromagnetic
Door Lock/Door Striker
ACX 700 Series
Controller
12/24V
One Card Reader,
or One Keypad, or Both
for Allowing Entry through
Door/Monitoring Who Enters
Outside of Door
—Entry
Entry Card
Reader
1
4
7
*
2
5
8
0
3
6
9
#
Entry
Keypad
Person swipes access card through card reader.
Person punches an access code on the keypad.
(You can require the person to do both to enter.)
The controller verifies that the person is allowed to enter and
unlocks the door lock. The door switch determines that the door opens.
21-10
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Introducing Access Control
Using Both Card Readers
and Keypads to Enter
You can have all personnel allowed to enter an area both
swipe an access card through a card reader and punch an access code on a keypad. This arrangement is useful for
extremely high-security areas.
Card numbers and PINs allow you to track the access of personnel. If a valid access event occurs, the control system also
records the time the event occurs, so you have a record of who
enters and when.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
21-11
Card Reader and Keypad
Provide Strong Security
Introducing Access Control
How Access Control Elements
Control Exiting through Door
Which elements of the control system control exiting through
a door? You can choose more than one way to control exiting—monitoring the particular personnel that exit or not
monitoring the particular personnel, but simply unlocking the
door as personnel approach it.
Unlocking the Door on Request
Install Motion Sensor to
Unlock Door on Request
When a person approaches the door, if you want the door to
automatically unlock so the person can exit, you can set up a
motion detector above the door so that it detects someone approaching. The motion detector senses motion and sends that
fact into the controller. The controller then unlocks the door,
so that the person can open it.
Instead of having a motion detector, you can set up a button
the person should press to unlock the door. This type of button
is called a request-to-exit button.
Figure 21-6 shows an exit door that automatically opens as
personnel approach. It has a motion detector or request-to-exit
button. The door is, of course, still wired to the door switch
and door lock.
21-12
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Introducing Access Control
Figure 21-6. Exit Door Hardware Setup to Allow Exit
on Request
Door
Switch
Rs
700 series
Controller
Electromagnetic
Door Lock/Door Striker
12/24V
Inside of Door
—Exiting
Either Request-to-Exit
Button or Motion
Detector
Motion Detector
Request-to-Exit
Button
Person approaches door to exit and either a
motion detector detects movement or the person
must press an exit button (Request-to-Exit). The
controller then unlocks the door lock for the person.
The door switch determines that the door opened.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
Exit Door Automatically
Opens on Approach
21-13
Introducing Access Control
Monitoring Who Exits When
Assign PIN Code to
Monitor Who Exits When
If you want the control system to record who is exiting and the
time the person exits, you can have each person swipe an access card to exit or punch a PIN on a keypad. The control
system records the person’s card number of PIN and then unlocks the door. For this arrangement, you do not require a
motion detector or request-to-exit button.
In a high-security situation, you may want personnel to both
swipe a card and punch a PIN on a keypad.
Figure 21-7 shows an exit door that monitors who exits when.
It has an exit card reader and exit keypad; you can use either
one or the other. The door is, of course, still wired to the door
switch and door lock.
21-14
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Introducing Access Control
Figure 21-7. Exit Door Hardware Setup to Monitor
Who Exits When
Door
Switch
Rs
700 series
Controller
Electromagnetic
Door Lock/Door Striker
12/24V
Inside of Door
—Exiting
Entry
Keypad
3 2 1
6 5 4
9 8 7
# 0 *
Card
Reader
Optional Card Reader
or Keypad, or Both, for
Allowing Exit through Door
and Monitoring Who Exits
Person swipes an access card through the card reader.
Person punches an access code on the keypad.
(You can require the person to do both to exit.)
The controller records the card site code, card number,
keypad general code or personal identification number (PIN),
and then unlocks the door lock.
Now, determine the kind of access control you need. Then
you can wire the appropriate sensors and relays for each door
to the controller. Where do you wire all of the sensors and relays to control a door?
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
21-15
Determine Access
Control Required
Introducing Access Control
How to Secure Windows
In addition to wiring doors for security, you can also wire
windows. Andover’s complete access control system ensures
that no one can break in through a window.
Protect Windows from
Break-Ins
For instance, you can purchase a glassbreak and/or acoustic
vibration sensor that you attach to the window according to
the manufacturer’s instructions. You then wire the sensor to
one of the eight supervisory inputs on the ACX 700 series controller. The sensor detects acoustic energy or vibration (or
both) when the glass breaks.
Figure 21-8 shows a window that has been secured with a
glass break sensor.
Figure 21-8. Secured Window Setup
GlassBreak
Sensor
Rs
700
Controller
A glassbreak sensor is considered a supervisory input.
21-16
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Introducing Access Control
Determining Where to Mount
Access Controllers
Now, let’s return to your drawing.
Using your drawing, you can decide where you want to put
your access controllers, ACX 700 series controllers. Be sure to
place the ACX 700 series controller inside the secured area, so
it is not available to potential tampering from outside the area.
Add the name and location of each ACX 700 series controller
to your drawing.
Figure 21-9 shows the ACX 700 and 780s used at the
Andover site.
Figure 21-9. Drawing of a Site
Showing Location of ACX 700 or 780 Controller
Lab
700 Series Controller (DoorController)
Lobby
Outside
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
21-17
Mount Your Access
Controllers Strategically
Introducing Access Control
Where Doors and Related
Inputs/Outputs Are on ACX
700 Controller
Figure 21-10 illustrates where the sensors and relays should
be wired.
Wire Doors and Related
Inputs/Outputs
You wire the following sensors to any of the eight supervisory
input terminals:
•
•
•
•
Door Switch
Motion Detector
Request-to-Exit Button
GlassBreak Sensors (for windows or windows on doors)
You choose either a motion detector or a request-to-exit button, not both.
You wire a card reader to one of the two Reader terminals and
a keypad to one of the Keypad terminals. You can have both
an entry and an exit card reader for one door. You can also
have both an entry and an exit keypad for one door.
You wire the door lock to one of the two Door terminals. After
you have wired a door to each of the Door terminals, if you
want a third door, you can wire a third one to Output3 (below
the Door terminals).
If you prefer, you can wire an alarm buzzer to Output3.
Note
You can program any supervisory input to go with any door.
And you can program any card reader and/or keypad to go
with any door. So, wire them as you see fit, then be sure you
write down which one goes with which, so that you can later
properly set up the Door.
21-18
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Introducing Access Control
For details on how to wire each type of sensor and relay, refer
to the ACX 700 Installation Guide.
Figure 21-10. Where to Connect Access Control
Sensors and Relays on ACX 700 Controller
12VDC
Power
Supply
(if needed)
AC
INPUT
USE COPPER
CONDUCTORS
ONLY
GND
AC INPUT VOLTAGE SELECTION
24V
115V
230V
FROM TO FROM TO FROM TO
E6 E7 E6 E5 --E4 E3 E4 E2 E4 E5
P1 E1 P1 E1 P1 E2
NEU
HOT
ACX700
F1
3A,250V
SLOW BLOW
+
PWR
ON
+12VDC
-INPUT
B1
Motion Detectors
Door Switches
Request-to-Exit
Buttons
GlassBreak
Sensors
IN1
RET1
IN2
RET2
IN3
RET3
IN4
RET4
3.6V
1.8AHr
LITHIUM
-
KEYPAD 1
SUPERVISORY
INPUTS
IN5
RET5
IN6
RET6
IN7
RET7
IN8
RET8
TAMPER
KEYPAD 2
SWITCH 9
RESET
EXT
TAMPER
ABA
SWITCH
+5V
LED
I/DATA
O/CLK
GND
OVERRIDE
READER 1
READER 2
DOOR 1
OUTPUT
CPU
TD
AUTO/OFF/ON
Door Locks
DOOR
OUTPUT
ABA
RD
Card
Readers
Keypads
C1
C2
C3
R1
R2
R3
R4
RET
AUTO/OFF/ON
WIEGAND
+5V
LED
I/DATA
O/CLK
GND
+
–
SHLD
C1
C2
C3
R1
R2
R3
R4
RET
OUTPUT 3
Door Lock
or Buzzer
for Alarm
WIEGAND
INFINET
+24VDC CLASS 11
160 mA
SERVICE
EXPANSION
PORT
PORT
AUTO/OFF/ON
OVERRIDE
In addition to having up to three doors on an ACX 700 controller, you can also have up to two additional doors on EMX 190
expansion modules.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
21-19
Introducing Access Control
Where Doors and Related
Inputs/Outputs Are Located
on Expansion Modules
Points on an EMX 190
Figure 21-11 is a drawing of an EMX 190 module. You can
attach up to two EMX 190 expansion modules to the
Expansion Port on each ACX 700 controller.
The expansion module has a single door terminal. It also has
terminals for a door switch, request-to-exit button, and card
reader. It does not have terminals for a keypad. You can wire
any two “supervisory” inputs to the channels labeled Door
Switch and Exit Request. You must, of course, always wire
the card reader to the Card Reader Input channel.
Figure 21-11. Points on 190 Expansion Module
EMX190
BOARD
1
DOOR SWITCH
RTN
EXIT REQUEST
RTN
2
If you have a card reader,
you must wire it to Card
Reader channel. You can
wire a door switch, exit
button, motion detector,
glassbreak sensor, or any
other type of supervisory
input to the DoorSwitch
and Exit Request channels.
RTN
CARD
0-CLK
READER 1/DATA
INPUT
LED
+5V
Door Channel
OVERRIDE
OFF
ON
WIEGAND
NC
DOOR
OUTPUT C
NO
AUTO
24VDC
CLASS II
ABA
OVERRIDE
CARD READER
21-20
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Introducing Access Control
The EMX 190s must always be the first output modules on a
chain of modules attached to the ACX 700. If you have one, it
must be Board 1. If you have two EMX 190s, they must be
Board 1, then Board 2.
You can also connect other modules to an ACX 700 controller,
as long as you do not exceed the maximum number of inputs/
outputs allowed:
• Base Inputs (Supervisory) (Already on Controller)—8
• Expansion Inputs (on Modules)—21
• Total Inputs—29
(Note that card readers and keypads are not inputs, but set up
as parts of the door, as you see in later chapters.)
• Base Outputs (Already on Controller)—3
• Expansion Outputs (on Modules)—4
• Total Outputs—7
Figure 21-12 shows a sample map of modules on an ACX 700
controller, using the maximum number of input and output
channels allowed. (You assign door-related input and output
channels later, when you set up the access control system.)
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
21-21
Can Have Multiple
Expansion Modules
Introducing Access Control
Rules for Attaching Sensors/Relays to Expansion
Modules on ACX 700 Controllers
Carefully Follow Rules
for Expansion Modules
The following rules apply to the output expansion modules on
an ACX 700 controller:
• The first two output expansion modules must be EMX
190s). The following applies to them.
—Wire a door or alarm buzzer to the Door output.
—Wire up to two inputs to the following to total of the
channels: DoorSwitch, ExitRequest, and Card Reader.
—Wire any of the following to the channels labeled
DoorSwitch and ExitRequest: Door switch,
request-to-exit button, motion detector, glassbreak
sensor, or similar supervisory input.
—Wire a card reader to the channel labeled Card Reader.
• For the third output expansion module—You must assign
channels as output points 6 and 7. They can be any of the
following:
— EMX 150
—EMX 151
—EMX 155
—EMX 140
Wire a relay of the following type to the appropriate output
module: Voltage, Current, Digital, HiResVoltage,
HiResCurrent, and Pneumatic. For further information on these modules, refer to Chapter 1.
21-22
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Introducing Access Control
The following rules apply to the input expansion modules on
a ACX 700 controller:
You Can Have Up to
16 Counter/Digital Inputs
• The first and second input modules must be either counter
or digital inputs found on a EMX 160 expansion module.
• The EMX 170 module must be the very last module on the
chain.
Figure 21-12. Sample Set Up of Expansion Modules
on ACX 700 Controller
You assign these output
numbers very carefully, as covered later
in chapter on setting up access control.
ACX 700
EMX 190—Board 1
1 Output, 2 Inputs
Door or Alarm Channel
Supervisory Inputs
EMX 190—Board 2
1 Output, 2 Inputs
Door or Alarm Channel
Supervisory Inputs
Wire
for Same
Door
Wire
for Same
Door
EMX 150—Board 1 Two Outputs—Voltage
2 Outputs
External
Power
Supply
EMX 160—Board 1
Eight Inputs—Digital or Counter
8 Digital Inputs
EMX 160—Board 2
Eight Inputs—Digital or Counter
8 Digital Inputs
EMX 170
—1 Input
One Input—Temperature
Instead of a EMX 150, you can
put any output module, except
another EMX 190, for a total of
two outputs after any EMX 190s.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
21-23
Introducing Access Control
Now that you have wired all of your hardware, you are ready
to set up your controllers, terminals, and users, then your areas, doors, and personnel. Later, you also set up points if you
need them. Go back to the Chapters 2 and 3 and proceed
through them sequentially. Then go to Chapter 22.
21-24
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Introducing Access Control
Where Doors and Related Inputs/
Outputs Are on ACX 780 Controllers
Figure 21-13 illustrates where the sensors and relays should
be wired on an ACX 780 controller.
You wire the following sensors to any of the supervisory input
terminals:
•
•
•
•
Door Switch
Motion Detector
Request-to-Exit Button
GlassBreak Sensors (for windows or windows on doors)
You choose either a motion detector or a request-to-exit button, not both.
You wire a card reader to one of the Reader terminals and a
keypad to one of the Keypad terminals. You can have both an
entry and an exit card reader for one door. You can also have
both an entry and an exit keypad for one door.
Notice that card readers and keypads are in pairs, the card
reader right next to the keypad that goes to the same door.
For instance Card Reader 1 and Keypad 1 are wired next to
each other, assigned the same channel number in the software,
and control either entry or exit through the same door output,
such as the door wired to Output 1.
You wire the door lock to one of the Output terminals. After
you have wired a door to each of the eight Output terminals, if
you want another door, you can wire a ninth one to Output 9.
If you prefer, you can wire an alarm buzzer to Output 9.
For details on how to wire each type of sensor and relay, refer
to the ACX 780 Installation Guide.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
21-25
Wire Doors and Related
Inputs/Outputs
21-26
www.PDF-Zoo.com
Motion
Detectors
Tamper Switch
Glass Break
Sensors
Exit Request
Buttons
Door Switches
F
gu
i
TAMPER
SWITCH
D
I
S
P
L
A
Y
RD
TD
READER 2 — KEYPAD 2
ON
OFF
AUTO
OFF
ON
AUTO
OFF
ON
AUTO
READER 6 — KEYPAD 6
+ L
5 E
V D
9
8
7
6
5
4
3
2
1
NC
C
NO
NC
C
NO
NC
C
NO
NC
C
NO
NC
C
NO
NC
C
NO
NC
C
NO
NC
C
NO
NC
C
NO
OUTPUTS
1
/ 0
D /
A C G
R
T L N R R R R C C C E
A K D I 2 3 4 1 2 3 T
READER 8 — KEYPAD 8
+ L
5 E
V D
READER 7 — KEYPAD 7
OUTPUT 9
OUTPUT 8
OUTPUT 7
OUTPUT 6
OUTPUT 5
OUTPUT 4
OUTPUT 3
OUTPUT 2
OUTPUT 1
OVERRIDE
1
/ 0
D /
A C G
R
T L N R R R R C C C E
A K D I 2 3 4 1 2 3 T
Card Readers and Keypads
READER 4 — KEYPAD 4
+ L
5 E
V D
1
/ 0
D /
A C G
R
T L N R R R R C C C E
A K D I 2 3 4 1 2 3 T
+ L
5 E
V D
READER 3 — KEYPAD 3
FOR DETAILED INSTALLATION INSTRUCTIONS,
REVIEW DOCUMENT, 30-3001-392, DATED 1993
Supervisory
Inputs
AUTO
OFF
ON
AUTO
OFF
ON
AUTO
OFF
ON
AUTO
OFF
ON
AUTO
OFF
ON
AUTO
OFF
ON
READER 5 — KEYPAD 5
ACX780
WARNING HIGH VOLTAGE PRESENT DISCONNECT
POWER PRIOR TO SERVICING
RESET
1
/ 0
D /
A C G
R
T L N R R R R C C C E
A K D I 2 3 4 1 2 3 T
RET
IN32
IN31
RET
IN30
IN29
RET
IN28
IN27
RET
IN26
IN25
RET
RET
IN16
IN15
RET
IN14
IN13
RET
IN12
IN11
RET
IN10
IN9
RET
SCAN
ERROR
NO SRV
CPU
+5V
+24V
+15V
-15V
-5V
AC PWR
READER 1 — KEYPAD 1
RET
IN24
IN23
RET
IN22
IN21
RET
IN20
IN19
RET
IN18
IN17
RET
RET
IN8
IN7
RET
IN6
IN5
RET
IN4
IN3
RET
IN2
IN1
RET
SERVICE
PORT
—
SHLD
+
INFINET
Door Lock
or Buzzer
for Alarm
Door Locks
Introducing Access Control
Infinity Controller Programmer’s Guide
Chapter 22
Setting Up
Areas and Doors
for Access Control
This chapter tells you how to set up areas and doors to use
Infinity CX as an access control system.
www.PDF-Zoo.com
Areas and Doors
Before You Proceed
Preparing to Set Up
Areas and Doors
Before you proceed, you must have already done the following:
• Set up your network following the EnergyNet and Infinet
Configuration Guide and Chapters 1 and 21.
• Wire your ACX 700 series controllers as shown in the
hardware installation guide (see also guidelines in Chapter
21).
• Plan a map of your areas and assigned names to areas and
doors (in the map), as explained in Chapter 21.
22-2
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Areas and Doors
Getting Started in Access
Control
Begin by reading Chapter 21. If you have not read it, you are
not yet ready to proceed. Once you have a labeled map of your
areas, return to Volume 1 and proceed as follows:
• Set up your controllers as explained in Chapter 2.
• Set up your terminals and printers as explained in Chapter 3.
You are now ready to carry out the following procedures:
•
•
•
•
•
•
•
•
•
•
•
•
Deciding Where to Store Access Control Information
Designating Where to Store Access Control Information
Setting Up Areas
Setting Area Attributes
Setting Up Doors
Setting Door Attributes
Setting Door Channel Information
Setting Card Formats
Setting Up the Entry Card Reader or Keypad
Setting Up the Entry Card Reader or Keypad Options
Finding Out Entry Reader or Keypad Status
Setting up the Exit Card Reader or Keypad
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
22-3
Set Up Controllers
Areas and Doors
Deciding Where to Store
Access Control Information
People Use Cards
or Keypads
Once you have drawn the map of your areas and doors, there
is one more item you need to make decisions about before you
give all this information to the access control system—the
people who access the area.
Each person who has an access card or keypad number that allows access to one or more areas is called a“person” in the
access control system. You can set up each person to have access to all areas or to only particular areas.
Now, estimate the number of people you expect to have entering through the doors on a single controller. You can store up
to 1500 people in an ACX 700 controller, without programs or
other information there. You can store up to 6400 people in
the ACX 780 controller, without programs or other information. If you want to store areas, doors, programs, or other
information in an ACX 700 series controller, you would do
best to store fewer than the maximum number of people. And,
of course, the ACX 700 series controllers run more quickly
when it is not filled to capacity.
If you want to store all access control information (areas,
doors, and people) on the ACX 700 or 780, you may. But if
you think not all people can be on the ACX 700 or 780, store
them, instead, in one of the following locations:
• The Infinity CX 9000 controller that the ACX 700 series
controller’s Infinet is connected to
• In the SX database, under the root (above the sites in the
Object Tree)
You can choose one of these options, but not both. To determine where to store your access control information, you
determine first where to store the people.
Follow the flowchart in Figure 22-1 to decide where.
22-4
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Areas and Doors
Figure 22-1. Flowchart for Deciding Where to Store
Access People
Do People
Access Multiple
Sites?
Yes
No
Are People
All on One LAN
?
Yes
No
Number Greater
Than Can Fit on
9000/220?
Yes
No
Would You
Prefer People
on 8000?
Yes
Put under
Root in
SX 8000
Database
No
Number
Greater Than
1500?
Yes
No
Do People
Access Doors on More
Than One 700?
Yes
Put in
9000 or 220
Controller
Database
No
Put People
in 700
Controller
Database
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
22-5
Follow Flowchart
for Where to Put People
Areas and Doors
If you are still uncertain where to store people, refer to the
guidelines that follow.
Storing Person Information
Choose Where to Store
Access Control Info
If you expect to have close to 1500 people or considerably
more people, do not store them on the ACX 700 controller.
Similarly, if you expect to have 6400 people or considerably
more people, do not store them on the ACX 780 controller.
You can store more people in an Infinity CX 9000 series (or
CMX 220) controller and should store people on an Infinity
CX 9000 or CMX 220 only if you can fit all of the people on
one controller. Refer to Appendix D to determine how many
people you can store on a single Infinity CX 9000 controller.
If you cannot store all people on an Infinity CX 9000 controller, you should store people on the workstation database. You
can store and up to 57,000 people (or up to the limit of your
disk capacity) under the root in the SX 8000 database.
Storing Area Information
If you choose, you can store area information in the Infinity
CX 9000 controller or under the root in the SX database.
If you choose to store people in the Infinity CX 9000, then you
must also store areas in the Infinity CX 9000, and cannot store
any access control information under the root in the SX database.
If you choose to store people under the root in the SX database, then you must also store areas in the SX database, and
cannot store any access control information in the Infinity CX
9000 controller.
22-6
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Areas and Doors
If you store the areas in the SX software, you must access the
information about them through an SX 8000 workstation, not
through the windows on a terminal connected to the Infinity
CX 9000 controller.
This manual assumes you are storing areas and personnel in
the Infinity CX 9000 or ACX 700 series controller. For information on how to store areas and personnel on a workstation,
refer to the SX 8000 Programmer’s Guide.
Storing Door Information
You must always store doors in the ACX 700 series controller.
You cannot store doors anywhere else—not in an Infinity CX
9000 controller and not under the root in the SX database.
Figure 22-2 shows three basic options for storing access
control information.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
22-7
Determine Where to
Store Access Info
Areas and Doors
Figure 22-2. Three Basic Options for Storing
Access Control Information
Option 1. Store All Access Control Information on 700s
Store Areas, Doors, and People
All in 700s
700 Controller(s)
Option 2. Store Some Access Control Information on 9000,
Some on 700s
Store Areas
and People
Store Doors and
Copies of Key
People
700 Controller(s)
9000 Controller
Option 3. Store Some Access Control Information in SX Database,
Some on 700s
Store Areas
and People
Store Doors and
Copies of Key
People
700 Controller(s)
SX Server Database
Decide Where to Store
Access Info
Once you have decided where to store areas and people, you
are now ready to tell the control system where you want to
store your information.
22-8
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Areas and Doors
Summary
Before you set up Infinity to control access to your areas, you
must decide where to store the access control information
based on a number of factors:
• You must store all people and all areas in same controller
(or all in the workstation database).
• You must store doors in the ACX 700 series controller you
wired them to.
• You can store up to 1500 people in a single ACX 700
series controller.
• You can store a varying number of people on a single
Infinity CX 9000 controller. You can calculate the exact
number by following the instructions in Appendix D.
• You can store all people, areas, and doors on the ACX 700
series controller if you can fit all of them on a single
controller. This situation is likely only at very small sites.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
22-9
Decide Where to Store
Access Info
Areas and Doors
Designating Where to Store
Access Control Information
Tell Control System
Where to Store Info
Before you proceed, you must tell the control system which
piece of hardware on the EnergyNet or Infinet is storing most
of the access control information—the areas and people. That
unit becomes the “access server.”
Making the ACX 700 Series Controller
the Access Server
If you are storing all access control information on the ACX
700 series controller, it is its own “access server,” because it
functions as a “stand-alone” controller. In this situation, you
do not have to take any special action. The control system expects the ACX 700 series controller to be its own access
server.
Making the Infinity CX 9000 Controller
the Access Server
If you are storing any access control information on the Infinity CX 9000 controller, it becomes the access server. You
must indicate this by connecting to the ACX 700 series controller (using CD as described in the Andover Controls Plain
English Language Reference), then typing the following in
the Command window:
Set AccessServer = 120
The 120 is an example of the EnergyNet ID of an Infinity CX
9000 controller. You should, of course, give the ID of your
Infinity CX 9000 controller. This command sets the
AccessServer system variable to the EnergyNet ID of the
access control server.
22-10
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Areas and Doors
If you are not connected to the ACX 700 series controller, you
must give the full path to it when typing in the Command
window. For instance, to set the AccessServer value on an
ACX 700 series controller called FRONTBLDG that is connected to the FLOOR1 Infinity CX 9000, type the following in
the Command window:
Set Floor1 FrontBldg AccessServer = 120
Repeat this procedure for each ACX 700 series controller.
Summary
If you use an Infinity CX 9000 controller to store areas and
people, you must tell the ACX 700 series controllers on the
Infinet which controller stores them. To tell the controllers,
you set the AccessServer on each one as follows:
1. Find out the EnergyNet ID of the controller that stores the
areas and people. Refer to your system map or look at the
controller itself.
2. Select Connect on the Main menu bar and connect to the
ACX 700 series controller.
3. Go to the Command window and type the following:
Set AccessServer = 118
4. Replace 118 with the EnergyNet ID of the Infinity CX
9000 controller.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
22-11
Connect to 700
Controller
Areas and Doors
Setting Up Areas
Tell Control System
about Each Area
Before the control system can control access to an area, you
must tell it about all areas. You tell the control system the
names you have given those areas as follows (remember to
press the NEXT ATTRIBUTE key to move from text box to
text box):
1. Go to the Main Menu bar and select Edit, then Areas.
Figure 22-3 shows the menu.
Figure 22-3. Selecting Edit Areas
View
Edit
Connect
Logout
Users
Points
Files
CommPorts
Controller
Infinet Controller
System Date & Time
System Variables
Persons
Areas
Doors
In a moment, the Open an Area window appears.
Figure 22-4 shows the window.
2. Look at your network map to verify the name of the
controller that is the access server. If the correct name does
not appear in the Controller text box, press the DELETE
LINE/TEXT key to erase the name. Then type the correct
one. Or use the SHOW LIST key to select another name.
22-12
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Areas and Doors
Figure 22-4. Open an Area Window
View
Edit
Connect
Logout
Open an Area
Controller
InfinetCtlr
Name
3. If you are using the ACX 700 series controller as the access
server, verify the name of the Infinet controller from your
network map. If the correct name does not appear in the
InfinetCtlr text box, press the DELETE LINE/TEXT key
to erase the name. Then type the correct one. Or use the
SHOW LIST key to select another name.
4. Check your access control map for the name of your area.
Remember the name can be up to 16 characters, including
letters, numbers, and underscores, and must begin with a
letter of the alphabet.
5. Type the name of your area in the Name text box and
press the EXECUTE key to proceed.
The Area window opens. To fill in the text boxes in that
window, proceed to the next section.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
22-13
DELETE LINE/TEXT
Erases Entire Name
Areas and Doors
Setting Area Attributes
Figure 22-5 shows the Area window that now appears. In this
window, you press the NEXT ATTRIBUTE key to move
from attribute to attribute.
Type Description of Area
in Area Setup Window
You see only two attributes for an area:
1. In the Name text box, you see the name you just assigned
the area. You can change it here if you would like. Then
press the NEXT ATTRIBUTE key to move to the next text
box.
2. You can fill in the Description, up to 32 characters
including spaces. The description is optional.
3. Known Occupancy Count (KnownOccupCount)—
Usually, the control system calculates the number of
people that enter the area and displays the total number
here. Each time a person swipes a card through a card
reader to enter an area, the control system adds that person
to the count and each time a known person swipes a card
through a card reader to leave an area, the control system
subtracts that person from the count. This count is not
necessarily perfect, since more than one person can enter
or exit through the door once a single cardholder opens it.
Because the count can be inaccurate, you may want to alter
it in the future. Type the number here.
22-14
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Areas and Doors
Figure 22-5. Area Window 1
View
Edit
Connect
Logout
Area – Floor1 Lab
Name
Lab
SAVE
Description Andover Lab area
SAVE AS
Known Occupancy Count
14
CANCEL
DELETE
DETAILS
4. Press the DETAILS button and the Area Details window
appears. To the left you see a large empty box and to the
right a QUIT button. The large empty box is where you
later see a list of the doors associated with this area. They
appear here after you have set up the doors.
Figure 22-6 shows the Area Details window.
To the left you see a large empty box and to the right a
QUIT button. The large empty box is where you later see
a list of the doors associated with this area. They appear
here after you have set up the doors.
1. If you see other attributes in your window, ignore them. They are not available for Version 1.4.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
22-15
Area Details Blank until
You Set Up Doors
Areas and Doors
Figure 22-6. Area Details Window—Doors That You
Can Enter This Area Through
View
Edit
Connect
Logout
Area – Floor1 Lab
Floor1 Lab
QUIT
5. To return to the previous window, press the QUIT button.
Save Area with SAVE AS
Button
6. To save the area and keep the window open so that you can
define more areas, use the SAVE AS button, just as you
have done with other objects.
7. To save the area and close the window, press the SAVE
button.
8. To cancel the area, press the CANCEL button.
9. To delete the area, press the DELETE button. If you press
the DELETE button, a window appears asking you if you
want to cancel the action. This window prevents you from
deleting an area by mistake.
Next, you set up the doors for each area.
22-16
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Areas and Doors
Summary
You open the Area window by selecting Edit Areas from
the Main menu bar.
Inside the Area window opens, fill in the attributes of the
area. Attributes of an area are as follows:
• Name
• Description
• Known Occupancy Count
You can change the Known Occupancy Count to correct
it if some people have entered the area without being counted.
Later, after you have set up doors, you can press the
DETAILS button and see a list of doors you can enter this area
through.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
22-17
Points Must Be Named
Areas and Doors
Setting Up Doors
Tell Control System
Name of Each Door
To tell the control system the name of each door that accesses
an area, you set up each door as follows:
1. Go to the Main Menu bar and select Edit, then Doors.
Figure 22-7 shows the menu.
Figure 22-7. Selecting Edit Doors
View
Edit
Connect
Logout
Users
Points
Files
CommPorts
Controller
Infinet Controller
System Date & Time
System Variables
Persons
Areas
Doors
In a moment, the Open a Door window appears.
Figure 22-8 shows the window.
22-18
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Areas and Doors
Figure 22-8. Window for Opening a Door
View
Edit
Connect
Logout
Open a Door
Controller
InfinetCtlr
Name
2. Verify the name of the controller from the network map. If
the correct name does not appear in the Controller text
box, press the DELETE LINE/TEXT key to erase the
name. Then type the correct one. Or use the SHOW LIST
key to select another name.
3. Verify the name of the ACX 700 series controller the doors
are wired to (refer to your network map). If the correct
name does not appear in the InfinetCtlr text box, press the
DELETE LINE/TEXT key to erase the name. Then type
the correct one. Or use the SHOW LIST key to select
another name. Remember, all doors are on ACX 700 series
controllers.
4. Check your access control map for the name of your door.
Remember the name can be up to 16 characters, including
letters, numbers, and underscores, and must begin with a
letter of the alphabet.
5. Type the name of your door in the Name text box and
press the EXECUTE key to proceed. (Do not name any
door “door,” since that is the class name.)
The Main Door Setup window opens. To fill in the text
boxes in that window, proceed to the next section.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
22-19
DELETE LINE/TEXT
Erases Entire Name
Areas and Doors
Setting Door Attributes
Set Door Attributes
In the Main Door Setup window, you observe the attributes
of the door, and set some of them.
Figure 22-9 shows the Main Door Setup window. Press the
NEXT ATTRIBUTE key to move from text box to text box.
Figure 22-9. Main Door Setup Window
View
Edit
Connect
Logout
Door – Floor1 Front LabDoor
SAVE
Name LabDoor
Description Door to first floor lab
SAVE AS
Door Lock Locked
CANCEL
Door Status Normal
Door Switch
ENTRY READER
Alarm Status Normal
EXIT READER
State
(X) Enabled
( ) Disabled
DETAILS1
Respond to each attribute as follows:
1. In the Name text box, you see the name you just assigned
the door. You can change it here if you would like.
2. You can fill in the Description, up to 32 characters
including spaces. The description is optional.
3. Door Lock (VALUE)—Displays the current setting of
the door striker relay, which controls the door lock—
Locked or Unlocked. You can change the setting in this
text box to lock or unlock the door.
22-20
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Areas and Doors
4. Door Status—Displays a quick summary of the door
situation at this moment. It can include any of the
following:
• DoorAjar—Door is ajar.
• ForcedEntry—Intruder has broken in through the
door.
• Override—Person has set the door to manual control
(override), so that the controller does not control it.
• DoorFault—Wires to the card reader or keypad have
been cut, shorted, or otherwise tampered with.
• Normal—Door is closed and none of the above
situations exist.
5. Door Switch (DoorSwitch)—You can wire a separate
status switch to one of the supervisory inputs on the ACX
700 series controller. The DoorSwitch attribute displays
the status of the door based on the input from the
supervisory input channel. It can be Opened, Closed, or
Trouble. Like any supervisory input, the door switch can
detect when someone is cutting or shorting the wires, or
otherwise tampering with the door. The switch indicates
the situation by showing a setting of Trouble. (All
supervisory inputs can have the Trouble setting.)
6. Alarm Status—Displays the status of the most recent
alarm for the door—Normal, RTN UnAcked, Acked,
or Active.
7. State—You can set to Enabled or Disabled. If
Enabled, the door allows access to all people who swipe
a valid card through the card reader. If Disabled, the door
does not allow anyone access to or from the area.
8. Before you set up any card readers, you complete the
Door information by pressing the DETAILS1 button.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
22-21
Door Status Indicates
Door Situation
Areas and Doors
Setting Door Channel
Information
As shown in Figure 5-10, after you press the DETAILS1
button, the Door Channel Information window opens. In
this window, fill in the following additional door attributes:
1. Site Numbers—Each set of cards you purchase is
encoded with a single site code. If you purchase multiple
sets of cards for the same site and each has a different site
code, you can set up the door to accept up to four different
site codes. Type each acceptable site code in one of the
four text boxes to the right. The following site codes are
allowed for the given card type:
• Infinity 37—0 to 4095
• AC4+4 32—0 to 4095
• Wiegand 26—0 to 256
Assign Door Channel
2. Door Channel—Set this to the door channel, 1, 2, or 3
based on whether you wired the door to the Door1
channel on the controller, the Door2 channel, or Output
3 (refer to Figure 22-11 for the location of each channel),
or set it to 4 if you wired the door to the first expansion
module door channel, 5 for the second. Set to 0 to have no
door channel or to control the door through an Andover
Controls Plain English program. (To have a Plain English
program control the door, after you set the channel to 0, set
up the door as a digital output. Assign it as output 1, 2, or
3 if wired to the ACX 700, as output 4 or 5 if on an
expansion module.)
If the door lock relay is actuated when the door is locked,
then Lock and Unlock will be backwards for the Door
Lock setting. You resolve this situation by moving to
Invert and pressing the space bar to display an X there.
This action inverts Lock and Unlock.
22-22
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Areas and Doors
Figure 22-10. Door Channel Information Window
View
Edit
Connect
Logout
Door – Floor1 Front LabDoor
Details1
Site Numbers
SAVE
Door Channel
Invert ( )
Door Strike Seconds
Door Ajar Seconds
Alarm Channel
Record Valid Attempts ( )
CANCEL
Alarm Relay Seconds
Record Invalid Attempts ( )
Door Switch Channel
Door Switch Type NOSeries
Exit Request Channel
Exit Request Type NOSeries
DETAILS2
DELETE
Allow Exit on Exit Request ( )
3. Door Strike Seconds (DoorStrikeTime)—Set this to
the number of seconds you want the door to remain open
for when valid access occurs. It is automatically set to 10
seconds unless you change it. Keep the door strike time
short for a door you do not have visually monitored.
4. Door Ajar Seconds (DoorAjarTime)—Set to the
number of additional seconds you want to allow the door
to be ajar after the time designated for the door strike has
elapsed, from 0 to 255. Any time the door remains ajar
longer than the time you set in this text box, the access
control software automatically sets the door status to
Door Ajar and sends a record of the action to the Event
Log, where all access events are logged.
In a high-security situation, especially if you do not have a
visual monitor for the door, you can have this attribute set
an alarm based on the door being ajar too long, since
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
22-23
Set Number of Seconds
to Allow Door to Be Ajar
Areas and Doors
someone could violate security in the few extra seconds.
Automatically set to 20 seconds if you do not change it.
Alarm Channel for
Buzzer
5. Alarm Channel—Suppose you want to have a light flash
or a buzzer sound when the door is in alarm. You can wire
a light or buzzer to a pulsing relay on your ACX 700 series
controller—any of the following: Door 1, Door 2,
Output 3, or the door channels on the EMX 190
expansion modules. In this text box, indicate the location
of the alarm channel, 1 to 5. If you do not want to have a
relay for this purpose, set this text box to 0.
6. Alarm Relay Seconds (AlarmRelayTime)—Number
of seconds alarm buzzer should remain on for when an
alarm occurs.
7. Record Valid Attempts (RecordValHist)—You can
choose to record the information each time a person enters
through this door and the controller allows the person to
enter—a valid entry. Once you move to Record Valid
Attempts, press the space bar (the X appears) to toggle it on.
8. Record Invalid Attempts (RecordInValHist)—You
can choose to record the information each time a person
attempts to enter through this door and the controller does
not allow the person to enter—an invalid entry attempt.
Once you move to Record Invalid Attempts, press the
space bar (the X appears) to toggle it on.
9. Door Switch Channel (DoorSwitchChan)—You wire
the door switch to one of the supervisory “inputs” on the
ACX 700 series controller. Set this attribute to the channel
number of the supervisory input either on the ACX 700
from 1 through 8, or on its expansion modules, 9 and 10
for the first EMX 190 and 11 and 12 for the second. Or set
this attribute to the channel number of the supervisory
input on the ACX 780 from 1 through 32.
Figure 22-11 shows the location of each channel on the
ACX 700.
22-24
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Areas and Doors
Figure 22-11. Location of Channels on ACX 700
Controller
AC
INPUT
USE COPPER
CONDUCTORS
ONLY
GND
AC INPUT VOLTAGE SELECTION
24V
FROM TO
E6
E7
E4
E3
P1
E1
NEU
HOT
Supervised
Input
Channels
115V
FROM TO
E6
E5
E4
E2
P1
E1
230V
FROM TO
--E4
E5
P1
E2
ACX700
F1
3A,250V
SLOW BLOW
PWR
ON
+12VDC
-INPUT
+
B1
3.6V
IN1
RET1
IN2
RET2
IN3
RET3
IN4
RET4
1.8AHr
LITHIUM
KEYPAD 1
C1
C2
C3
R1
R2
R3
R4
RET
KEYPAD 2
C1
C2
C3
R1
R2
R3
R4
RET
-
SUPERVISORY
INPUTS
IN5
RET5
IN6
RET6
IN7
RET7
IN8
RET8
TAMPER
SWITCH 9
RESET
EXT
ABA
TAMPER
OVERRIDE
SWITCH
Card
Reader
Channels
+5V
LED
I/DATA
O/CLK
GND
+5V
LED
I/DATA
O/CLK
GND
AUTO/OFF/ON
DOOR 1
OUTPUT
WIEGAND
READER 1
READER 2
CPU
TD
AUTO/OFF/ON
OUTPUT 3
WIEGAND
INFINET
+24VDC CLASS 11
160 A
m
SERVICE
PORT
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
AUTO/OFF/ON
EXPANSION
PORT
OVERRIDE
22-25
Door
Channels
DOOR 2
OUTPUT
ABA
RD
+
–
SHLD
Keypad
Channels
Door
or
Alarm
Channel
Areas and Doors
Figure 22-12 shows the location of each channel on the
EMX 190 expansion module.
Figure 22-12. Points on EMX 190 Expansion Module
EMX190
BOARD
1
DOOR SWITCH
RTN
EXIT REQUEST
RTN
2
On first module,
identify this channel
as 3, on second as 4.
If you use these channels,
on first module you identify
the channels as numbers 9
and 10. On the second
module you identify them
as 11 and 12.
RTN
CARD
0-CLK
READER 1/DATA
INPUT
LED
+5V
Door Channel
OVERRIDE
OFF
NC
DOOR
OUTPUT C
NO
AUTO
ON
24VDC
CLASS II
On the first module you
identify the Door channel
as number 4, on the second
module you identify it as 5.
ABA
WIEGAND
OVERRIDE
CARD READER
Figure 22-13 shows the location of each channel on the
ACX 780.
22-26
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
Motion
Dectectors
Infinity Controller Programmer’s Guide
Tamper Switch
Glass Break
Sensors
Exit Request
Buttons
Door Switches
F
gu
i
22-27
TAMPER
SWITCH
D
I
S
P
L
A
Y
RD
TD
RET
IN32
IN31
RET
IN30
IN29
RET
IN28
IN27
RET
IN26
IN25
RET
RET
IN16
IN15
RET
IN14
IN13
RET
IN12
IN11
RET
IN10
IN9
RET
1
/ 0
D /
A C G
R
T L N R R R R C C C E
A K D I 2 3 4 1 2 3 T
READER 6 — KEYPAD 6
+ L
5 E
V D
9
8
7
6
5
4
3
2
1
NC
C
NO
NC
C
NO
NC
C
NO
NC
C
NO
NC
C
NO
NC
C
NO
NC
C
NO
NC
C
NO
NC
C
NO
OUTPUTS
1
/ 0
D /
A C G
R
T L N R R R R C C C E
A K D I 2 3 4 1 2 3 T
READER 8 — KEYPAD 8
+ L
5 E
V D
READER 7 — KEYPAD 7
OUTPUT 9
OUTPUT 8
OUTPUT 7
OUTPUT 6
OUTPUT 5
OUTPUT 4
OUTPUT 3
OUTPUT 2
OUTPUT 1
OVERRIDE
1
/ 0
D /
A C G
R
T L N R R R R C C C E
A K D I 2 3 4 1 2 3 T
Card Readers and Keypads
READER 4 — KEYPAD 4
+ L
5 E
V D
1
/ 0
D /
A C G
R
T L N R R R R C C C E
A K D I 2 3 4 1 2 3 T
READER 3 — KEYPAD 3
AUTO
OFF
ON
AUTO
OFF
ON
AUTO
OFF
ON
AUTO
OFF
ON
AUTO
OFF
ON
AUTO
OFF
ON
AUTO
OFF
ON
AUTO
OFF
ON
AUTO
OFF
ON
READER 5 — KEYPAD 5
ACX780
FOR DETAILED INSTALLATION INSTRUCTIONS,
REVIEW DOCUMENT, 30-3001-392, DATED 1993
Supervisory
Inputs
READER 2 — KEYPAD 2
+ L
5 E
V D
RESET
WARNING HIGH VOLTAGE PRESENT DISCONNECT
POWER PRIOR TO SERVICING
SCAN
ERROR
NO SRV
CPU
+5V
+24V
+15V
-15V
-5V
AC PWR
READER 1 — KEYPAD 1
RET
IN24
IN23
RET
IN22
IN21
RET
IN20
IN19
RET
IN18
IN17
RET
RET
IN8
IN7
RET
IN6
IN5
RET
IN4
IN3
RET
IN2
IN1
RET
SERVICE
PORT
—
SHLD
+
INFINET
Door Lock
or Buzzer
for Alarm
Door Locks
Areas and Doors
Areas and Doors
Indicate Type of Switch
for Door
10. Door Switch Type—In this text box you indicate the
type of switch the door switch is—press the SHOW
LIST key and arrow to one of the following:
• NOSeries for a normally open switch with a resistor
in series.
• NOParallel for a normally open switch with a
resistor in parallel.
• NOSerPar for a normally open switch with a resistor
in parallel that you have added a series resistor to.
This option, of course, provides the highest security.
• NCSeries for a normally closed switch with a
resistor in series.
• NCParallel for a normally open switch with a
resistor in parallel.
• NCSerPar for a normally open switch with a resistor
in parallel that you have added a series resistor to.
This option, of course, provides the highest security.
When the selection you want is highlighted, press the
EXECUTE key to select it.
11. Exit Request Channel (ExitRequestChan)—You
wire the request-to-exit button or motion detector to one
of the supervisory “inputs,” numbered 1 through 8 on the
left side of the ACX 700 controller or to the supervised
inputs on the EMX 190 expansion modules, 9 and 10 on
the first module and 11 and 12 on the second. Set this
attribute to the channel number of the input.
22-28
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Areas and Doors
12. Exit Request Type—In this text box you indicate the
type of switch the exit request switch is—press the
SHOW LIST key and arrow to one of the following:
• NOSeries for a normally open switch with a resistor
in series.
• NOParallel for a normally open switch with a
resistor in parallel.
• NOSerPar for a normally open switch with a resistor
in parallel that you have added a series resistor to.
This option, of course, provides the highest security.
• NCSeries for a normally closed switch with a
resistor in series.
• NCParallel for a normally open switch with a
resistor in parallel.
• NCSerPar for a normally open switch with a resistor
in parallel that you have added a series resistor to.
This option, of course, provides the highest security.
When the selection you want is highlighted, press the
EXECUTE key to select it.
13. Allow Exit on Exit Request (OpenOnExitReqst)—
To allow any person to exit when he/she presses the exit
request button, press the space bar to put an X in this
check box.
14. If you have any doors wired to expansion modules, read
the next subsection. If not, skip the procedure and press
the DETAILS2 button. Then go on to the next major
section.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
22-29
Indicate the Type of Exit
to Request Switch
Areas and Doors
Summary
Summary of Door
Attributes
To set up each door, in addition to the name and description,
you can set the following attributes in the Main Door Setup
window:
• Door Lock—Displays whether the door is Locked or
Unlocked. You can change this setting.
• Door Status—Displays the current status of the door.
The door can be ajar, forced open, set to manual override,
tampered with (displays DoorFault), or in a normal state.
• Door Switch—Displays whether the door is opened or
closed. You can change this setting.
• Alarm Status—Displays the status of the most recent
alarm that occurred for the door—normal, returned to
normal but unacknowledged, acknowledged, or active.
• State—You can set to allow (Enable) or disallow
(Disable) access through the door.
Door Channel
Information
You then proceed to the Door Channel Information
(Details1) window, where you indicate the following:
• Site Numbers—Set codes based on the numbers
encoded in the access cards.
• Door Channel—Set to the number of the door lock
channel. Then toggle on Invert if the relay for the door is
actuated when the door is locked.
• Door Strike Seconds—Set to number of seconds door
can remain open.
• Door Ajar Seconds—Set to number of additional
seconds door can remain open before door is ajar.
• Alarm Channel—Set to channel number of buzzer.
22-30
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Areas and Doors
• Alarm Relay Seconds—Set to number of seconds
buzzer to buzz.
• Record Valid Attempts—Toggle on to record valid
attempts at entry.
• Records Invalid Attempts—Toggle on to record
invalid attempts at entry.
• Door Switch Channel—Set to number of the door
switch channel.
• Door Switch Type—Set to type of door switch.
• Exit Request Channel—Set to number exit request
sensor channel.
• Exit Request Type—Set to type of exit request switch.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
22-31
Door Channel
Information
Areas and Doors
Rules for Expansion Module Inputs/Outputs
on ACX 700 Controllers
If you have no expansion modules, skip these rules and proceed with the next step.
Assign Expansion
Module Output Channels
When you assign output channels on EMX 190 expansion
modules on the ACX 700 controller, abide by the following
rules:
• Door Output Channel—Assign as door or alarm channel 4
on first module, 5 on second module.
• Card Reader Channel—Assign as entry or exit reader
channel 3 on first module, 4 on second.
• Supervisory Input Channels—Assign as card reader or
supervisory inputs 9 and 10 on first module, 11 and 12 on
second module.
The third output expansion module can have two channels;
you must assign each only as output points. Refer to the chapter on points for how to set up the points. The types you can
have for these channels include Voltage, Current, Digital,
HiResVoltage, HiResCurrent, and Pneumatic.
22-32
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Areas and Doors
When you assign input channels on EMX 190expansion modules on the ACX 700 controller, abide by the following rules:
• The first four expansion inputs are always those on the
EMX 190 expansion modules and you should set them up
as part of a door, channels 9 and 10 on the first module, 11
and 12 on the second. You use these channels for door
switches, motion detectors, glassbreak sensors, request-toexit buttons, and any similar sensors.
• If you have input modules, you must set up the input
channels on them as either counter or digital input points,
channels 13 to 20 on the first, channels 21 through 28 on
the second. Refer to the chapter on points for how to set up
input points.
• If you have a EMX 170 module, you must set it up as a
temperature input point and set it to channel number 29.
Refer to the chapter on points for how to set up the input
point.
Figure 22-14 illustrates a full chain of expansion modules and
gives the object types and numbers you can assign to each
channel.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
22-33
Assign Expansion
Module Input Channels
Areas and Doors
Complete Expansion
Module Chain
Figure 22-14. Object Type and Channel Numbers to
Assign Expansion Module Channels
You assign these channel
numbers very carefully
Model
700
Door or Alarm Channel 4
190—Board 1
Supervisory Inputs 9 & 10
1 Output, 2 Inputs Card Reader Channel 3
Door or Alarm Channel 5
190—Board 2
11 & 12
1 Output, 2 Inputs Supervisory Inputs
Card Reader Channel 4
150—Board 1
2 Outputs
External
Power
Supply
Output 6—Voltage
Output 7—Voltage
160—Board 1
Inputs 13–20—Digital or Counter
8 Digital Inputs
160—Board 2
Inputs 21–28—Digital or Counter
8 Digital Inputs
170—1 Input
Input 29—Temperature
Instead of a 150, you can put
any output module, except
another 190, for a total of
two outputs after any 190s.
15. When you are ready to proceed, press the NEXT
ATTRIBUTE key until the cursor is on the DETAILS2
button and then press the EXECUTE key to proceed.
22-34
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Areas and Doors
Summary
Specific rules exist for setting up the inputs and outputs on
EMX 190 expansion modules.
Table 22-1 gives the rules for channel numbers on output expansion modules.
Table 22-1. Rules for Assigning Channels on Output Expansion Modules
Type of Output
Channel(s) on
First Module
Channel(s) on
Second Module
Door
4
5
Card Reader
3
4
Supervisory Inputs
9 and10
11 and 12
Voltage
6
7
Current
6
7
Digital
6
7
HiResVoltage
6
7
HiResCurrent
6
7
Pneumatic
6
7
Table 22-2 gives the rules for channel numbers on input expansion modules.
Table 22-2. Rules for Assigning Channels on Input
Expansion Modules
Type of Input
Channel(s) on
First Module
Channel(s) on
Second Module
Digital or Counter
13 – 20
21 – 28
Temperature Input
29
(not allowed)
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
22-35
Follow Rules to Number
Expansion Channels
Areas and Doors
Setting Card Formats
Card Formats Tell Types
of Access Cards
Once you press the DETAILS2 button, the Card Formats
window opens. Even if you are using only keypads for access
control, you set up some information in this window.
Figure 22-15 shows the Cards Formats (Details2) window.
In this window, you fill in the following additional door
attributes:
1. Door Schedule—If you have set up a schedule (on the
SX 8000 workstation) of when to allow access through the
door, you can type the full path to and name of the
schedule’s occupancy point in this text box.
Remember that the occupancy point is always a numeric
point. If you have not set up schedules or created occupancy points, you can skip this text box and return here after
you have set up schedules.
Figure 22-15. Card Formats Window
View
Edit
Connect
Logout
Door – Floor1 Front LabDoor
Details 2
Door Schedule
General Code
0
Infinity37 ( )
AC4Plus432 ( )
Wiegand26 ( )
Card Format
SAVE
CANCEL
(X) Wiegand
( ) ABA
22-36
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Areas and Doors
2. General Code—If you want everyone who has access to
the site to type the same code into the keypad, you can
enter this general code here. The general code can be from
0 to 65535.
3. Card Format—Choose the one of the two major card
formats that applies to your card set, Wiegand or ABA.
Choose the Card Format
Wiegand Formats—If you have a Wiegand card reader,
choose the card format to the right that matches your card
set. You may have Infinity 37-bit cards (Infinity37), AC
4+4 32-bit cards (you may have these if you have been
using an AC 4+4 controller prior to purchasing the ACX
700 or 780) (AC4Plus432), or Wiegand 26-bit cards
(Wiegand26).
4. ABA Formats—If you have an ABA card reader, choose
the card format that matches your card set, ABA1 or ABA2.
5. When you have finished responding to these details, you are
ready to set up the entry card reader. Press the NEXT
ATTRIBUTE key until the cursor lands on the SAVE button. Then press the EXECUTE key to save the information.
6. Press SAVE in each window until you see the Main Door
Setup window again.
7. When you are ready to proceed, press the ENTRY
READER button to set up the entry card reader and/or
keypad for the door.
Summary
You set the card formats the card reader can read in the Card
Formats (Details2) window.
If you have a keypad, you set the general code for the keypad
in this window.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
22-37
Proceed to the Entry
Reader Window
Areas and Doors
Setting Up the Entry Card
Reader or Keypad
Each door can have any combination of entry card reader, exit
card reader, entry keypad, and exit keypad. You can choose to
have entry reader and keypad only, rather than both entry and
exit ones. Or you can choose to have only the card reader or
only the keypad for either entry or egress.
Set Up the Card Reader
or Keypad
To set up the card reader or keypad, you begin by opening the
Main Door Setup window. You then press the ENTRY
READER button.
Figure 22-16 shows the window that appears. In this window
you set up the entry card reader and keypad as follows
(remember these are still attributes of the door):
1. Reader Channel (EntryChannel or ExitChannel)—
Type the number of the channel you wired the reader for
this door to. Reader1 is channel 1, Reader2 channel 2,
the first reader on an expansion module is channel 3, and
the second reader on an expansion module channel 4. Type
0 if you have no entry card reader for this door.
2. Keypad Channel (EntryKyPdChan or
ExitKyPdChan)—Type 1 if you wired the keypad for this
door to Keypad1 or 2 if you wired it to Keypad2. Set to
0 if you have no entry keypad for this door.
Find Out Current Mode
of Controller
3. Current Mode (EntryMode or ExitMode)—Displays the
current mode that the door controller (ACX 700 series
controller) is running under:
• Normal means the ACX 700 series controller is
working normally.
• NoComm means that communication between the
access server and the ACX 700 series controller has
failed.
22-38
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Areas and Doors
• No Database means that the access server or the ACX
700 series controller that has the doors on it has been
reset or has otherwise lost the database to check access
card numbers and PINs against.
Figure 22-16. Entry Reader Window
View
Edit
Connect
Logout
Door – Floor1 Front LabDoor
Reader Channel 2
Keypad Channel 0
SAVE
Current Mode Normal
Access Validation
Normal
Valid Site ( )
Valid Card ( )
Valid PIN ( )
General Code ( )
Schedule ( )
Comm Fail
( )
( )
( )
( )
( )
No Database
( )
DETAILS1
( )
4. Access Validation—In this box you move to each
selection and toggle it on if you want to allow access when
the condition exists:
• Normal (EntryNormMode)—When the ACX 700 series
controller is functioning normally.
• Comm Fail (EntryNoCommMode)—When
communication between the access server and the ACX
700 series controller fails.
• No Database (EntryNoDataMode)—When the access
server or the ACX 700 series controller that stores the
doors has been reset or has otherwise lost the database,
for instance, during a reload to the controller. When this
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
CANCEL
22-39
Check for Valid Personal
Identification Number
Areas and Doors
occurs, the controller cannot check access card numbers
and PINs against the database.
In the first two cases, Normal and Comm Fail, you
select as many of the following as apply:
• Valid Site—Toggle on to check the access card for a
valid site code, one acceptable at this site.
• Valid Card—Toggle on to check the access card for a
valid card number.
Check for Valid Personal
Identification Number
• Valid PIN—Toggle on to check the digits the person
types on the keypad to see if they form a valid personal
identification number.
• General Code—Toggle on to check the digits the
person types on the keypad to see if they form a valid
general code.
• Schedule—Toggle on to check the schedule to see if
the system should allow access at the present time.
In the third case, No Database, you can choose from two
options—Valid Site and General Code. Since the
controller stores the site and general codes so that they
cannot be erased, the control system can still validate a site
code or general code under these conditions.
Figure 22-17 shows, for example, the choices toggled on
to check for a valid card number and schedule under
normal conditions. Alternatively, the figure shows
checking for a valid site code and valid general code if
communication fails. If the database is erased by someone
resetting the controller, in this case, the figure shows that
the controller then checks for a valid site code only.
22-40
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Areas and Doors
Figure 22-17. Entry Reader Window
View
Edit
Connect
Logout
Door – Floor1 Front LabDoor
Entry Reader Details1
Reader Channel 2
Keypad Channel 0
SAVE
Current Mode Normal
Access Validation
Normal
Valid Site ( )
Valid Card (X)
Valid PIN ( )
General Code ( )
Schedule (X)
Comm Fail
(X)
( )
( )
(X)
( )
No Database
(X)
DETAILS1
( )
5. Press the DETAILS1 button to proceed to the Entry
Reader Details1 window.
Summary
To set up the card reader or keypad you use to enter each door,
you assign the following attributes in the Entry Reader
window:
• Reader Channel—Set to number of reader channel.
• Keypad Channel—Set to number of keypad channel.
• Current Mode—Displays the current mode.
• Access Validation—Select the information you want
the controller to check whenever a person swipes a card
through a reader or punches a code on a keypad.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
CANCEL
22-41
Proceed to Entry Reader
Details Window
Areas and Doors
Setting Entry Card Reader or
Keypad Options
Set More Entry Card
Reader/Keypad Options
Figure 22-18 shows the window that appears when you press
the DETAILS1 button. You now respond to the card reader
details as follows:
1. Area (EntryArea or ExitArea)—Type the name of the
area the door accesses. Set to the name of the area. Include
with it the path with the name of the Infinity CX 9000
controller (and the ACX 700 series controller if
applicable).
2. Department Point—Each person you later set up has a
department number. Type the full path to a numeric point
that should contain the department number of the last person who walked through the door. The point automatically
retrieves the department number from the person who
enters. You can use this point to control HVAC, lighting,
or another process based on the person’s department. For
instance, if someone from the Engineering department enters the area, you may want to turn on the lights. You may
decide not to turn on the lights if a person from another department enters the Engineering area.
3. Zone Number—Type a number, up to 65535, that
indicates the zone this card reader controls access to. The
zone number must be different for the entry card reader
and the exit card reader. Later, when a person swipes a
card through the reader, the access control system sets the
point you assign as the person’s Zone Point to the
number you assigned in this text box. Set this attribute to
0 to indicate you did not assign a zone number.
4. AntiPassBack Minutes (EntryAntiPassTime or
ExitAntiPassTime)—After a person enters an area, the
individual should not be allowed to enter again within a
short duration of time. If the “same person” appears to
22-42
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Areas and Doors
attempt access within, say, 2 minutes, the person may have
allowed someone else to use the same access card by
passing it back through the door while the door is open. Or
the person may have allowed someone else to use his/her
individual PIN. In this text box, set the number of minutes
you want the card or PIN to be invalid for immediately
after the system detects it has been used to enter an area.
Figure 22-18. Entry Reader Options Window
View
Edit
Connect
Logout
Door – Floor1 Front LabDoor
Entry Reader –Details1
Area Floor1 Lab
SAVE
Department Point 0
Zone Number
CANCEL
Anti-Passback Minutes 60
Reader Options
DETAILS2
(X) Allow Entry Upon AntiPassback Violation
(X) Entry/Egress
( ) Allow Entry Upon Entry/Egress Violation
( ) PIN Duress
( ) Reverse Card Duress
( ) Allow Entry Upon Reverse Card
5. Reader Options—In this box, move to the options you
want to select and press the space bar (put an X in the
check box) for the conditions you want the control system
to allow access under:
• Allow Entry Upon AntiPassback Violation
(ExitAntiPassTime)—If the individual attempts to enter
the area again within the number of minutes you set
under AntiPassBack Minutes, depending on how
high-security the area is, you may want to simply allow
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
22-43
Decide to Allow Entry
on AntiPassBack
Areas and Doors
the individual access anyway. Click in this check box to
allow access.
Check for Entry/Egress
Violations
• Entry/Egress (EntryEntEgr)—Toggle on this check
box to indicate you want to check for entry/egress
violations. What is an entry/egress violation?
Figure 22-19 shows the entry/egress concept. Notice
that to get into the Lab, you must go through the Lobby
area. If you do not swipe to get into the lobby, but suddenly you swipe your card to get into the Lab (from
Outside), that is an entry/egress violation.
Keeping track of entry/egress violations prevents an
individual from entering the secured area by slipping in
behind someone else—tailgating.
Caution
To detect entry/egress violations, you must have an exit card
reader defined for the door even if one does not exist. To define a card reader that does not exist, you set the channel for
the exit reader to 0 and fill in all the other pertinent information just as you have done for the entry card reader.
After you have completed the entry card reader, you proceed
to the exit card reader.
22-44
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Areas and Doors
Figure 22-19. Valid and Invalid Entry/Egress Routes
Valid Entry/Egress
Route
Lab
Invalid Entry/Egress
Route
Lobby
Outside
• Allow Entry Upon Entry/Egress Violation
(EntryEntrEntEgr)—If the person violates entry/egress
(described above) you may want to allow access
anyway. Toggle on this check box to allow access.
• PIN Duress (EntryPINDuress)—If you want, you can
have a person who is being forced into the building by
an unauthorized individual indicate that situation by
typing the PIN or general code on the keypad, then
pressing the star (*) key, instead of the pound (#) sign.
Toggle on this check box to allow entry when the person
indicates they are under duress. (Then be sure to set an
alarm as well.)
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
22-45
Decide to Allow Access
under PIN Duress
Areas and Doors
• Reverse Card Duress (EntryEntrRvrsCrd)—If you
want, you can have a person who is being forced into the
building (or area) by an unauthorized individual indicate
that situation by swiping the access card so the front of
the card faces the building rather than facing the away
from the building. Toggle on this check box to allow the
card reader to read the card when it is swiped in reverse.
Allow Access When Card
Is Reversed
• Allow Entry Upon Reverse Card
(ExitEntrRvrsCrd)—Toggle on this check box to allow
entry when the person swipes the access card so it is
facing in the reverse direction. This action may or may
not indicate duress, based on the selection above it.
6. Press the DETAILS2 button to see the status of the entry
reader or keypad.
22-46
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Areas and Doors
Summary
In the Entry Reader Options window, set up the following:
• Area—Set to the name of the area. Include the full path.
• Department Point—Set to point that contains department number of the last person to walk through the door.
• Zone Number—Set to number of zone this door controls
access to.
• AntiPassback Minutes—Set to number of minutes a
person’s card remains invalid immediately after the person
goes through this door.
• Reader Options—Select the conditions you want the
control system to allow access under.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
22-47
Set Up the Entry Reader
Options
Areas and Doors
Finding Out Entry Reader
or Keypad Status
Figure 22-20 shows the Entry Reader Status window that
appears when you press the DETAILS2 button in the Entry
Reader Options window.
Figure 22-20. Entry Reader Status Window
View
Edit
Connect
Logout
Entry Reader – Details2
Last Person Entered PLansing
Time Entered 1-14-93 4:02:16 pm
Area Entered Floor1 Lab
Last Person’s Dept 4
EXIT
Entry Count 8
Last Invalid Person RMSingleton
Last Invalid Time 1-1-93 10:21:42 am
Check Status of Area
You now see a series of details about the area accessed
through this door. Most of these are blank right now, unless
your system is already up and running:
1. Last Person Entered (LastPersonEnterd or
LastPersonExited)—Displays the name of the last person
who entered through the door.
2. Time Entered (TimeEntered or TimeExited)—Displays
the time the last person entered through the door.
22-48
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Areas and Doors
3. Area Entered—Displays the name of the area entered
via this door.
4. Last Person’s Dept—Displays the department code of
the last person to enter through the door.
5. Entry Count (EntryCount or ExitCount)—Displays the
total number of people who have entered through the door
at the current time. For the exit card reader or keypad, the
entry count totals the number of people that have entered
the adjacent area through the door.
6. Last Invalid Person (LastInvalidEntry or
LastInvalidExit)—Displays the name of the person who
last attempted to enter the area but was not allowed to
enter.
7. Last Invalid Time—Displays the time that the last
invalid attempt to enter through the door occurred.
8. Press the EXIT button to return to the Entry Reader
Options window.
9. Press the SAVE button to return to the Main Door Setup
window.
If you have an exit card reader or keypad, proceed to the next
section.
If you do not have an exit card reader or keypad, you have finished setting up this door. You can repeat the door procedures
for each door or use SAVE AS to create multiple doors and
modify each one.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
22-49
Find Out Last Person
Who Entered Area
Areas and Doors
Summary
Display Door Status
To find out the status of the card reader or keypad used to enter an area, you open the Entry Reader Status (Details2)
window and see the following:
• Last Person Entered—Displays the name of the last
person who entered.
• Time Entered—Displays the date and time the last
person entered.
• Area Entered—Displays the area the last person entered.
• Last Person’s Department—Displays the department
of the last person to enter.
• Entry Count—Displays a total of the number of people
who have entered the area.
• Last Invalid Person—Displays the name of the last
person who attempted to enter but was not allowed access.
• Last Invalid Time—Displays the time that the last
person attempted to enter who was not allowed access.
22-50
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Areas and Doors
Setting Up the Exit Card
Reader or Keypad
Caution
To detect entry/egress violations, you must have an exit card
reader defined for the door even if one does not exist. To
define a card reader that does not exist, you set the channel for
the exit reader to 0 and fill in all the other pertinent
information just as you have done for the entry card reader.
To set up the exit card reader or keypad, return to the Main
Door Setup window, press the EXIT READER button to
proceed to the Exit Reader window and set up the same information on the exit reader that you set up on the entry
reader. (Return to the section called Setting Up the Entry Card
Reader or Keypad.)
You then proceed to the Exit Reader Options and Exit
Reader Status windows, just as you did for the entry reader. When you have completed the exit card reader or keypad
information, press the SAVE button until you return to the
Main Door Setup window.
You can repeat the door procedures for each door or use
SAVE AS to create multiple doors and modify each one.
When you have finished setting up all doors, you are ready to
proceed to set up people—each called a “person.”
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
22-51
Setting Up the Exit
Card Reader or Keypad
Areas and Doors
Summary
To set up the card reader or keypad used to exit an area, you
follow the same procedures as you followed for the entry card
reader or keypad.
Now that you have completed setting up areas and doors, you
are ready to learn about points. Proceed to the next chapter to
learn about points.
22-52
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Areas and Doors
Setting Up GlassBreak
Sensors and Other
Supervised Inputs
If you want to set up a glassbreak sensor or other supervised
input and control it through a Andover Controls Plain English
program, go to Chapter 4 and follow the instructions there for
setting the sensor up as a point. You can set up any supervised
input as a point even if you have already set it up as part of the
door.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
22-53
Set Up GlassBreak
Sensors as Points
Areas and Doors
22-54
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Chapter 23
Setting Up Persons
for Access Control
This chapter tells you how to set up people or “persons.” A
“person” is someone who accesses areas when you are using
Infinity CX as an access control system.
•
•
•
•
•
•
•
www.PDF-Zoo.com
Setting Up Persons Who Can Access Each Area
Setting Person Attributes
Entering Person’s Card Information
Completing Employee Information about Person
Setting Areas the Person Can Access
Adding More Employee Information
Entering Personal Information
Personnel
Setting Up Persons Who Can
Access Each Area
Tell Control System
about Each Person
To tell the access control system who can enter each area, you
have two ways to identify a person:
• By a card number encoded into an access card.
• By a personal identification number (PIN) that you have
the person type on a keypad.
To assign a card number or PIN to a particular individual, you
tell the access control system about the person as follows:
1. Go to the Main Menu bar and select Edit, then Person.
Figure 23-1 shows the menu.
Figure 23-1. Selecting Edit Persons
View
Edit
Connect
Logout
Users
Points
Files
CommPorts
Controller
Infinet Controller
System Date & Time
System Variables
Persons
Areas
Doors
In a moment, the Open a Person window appears.
Figure 23-2 shows the window.
2. Verify the name of the controller from the network map.
This controller should be the access server you set up
earlier. If the correct name does not appear in the
Controller text box, press the DELETE LINE/TEXT key
23-2
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Personnel
to erase the name. Then type the correct one. Or use the
SHOW LIST key to select another name.
Figure 23-2. Open a Person Window
View
Edit
Connect
Logout
Open a Person
Controller
InfinetCtlr
Name
3. If you are using the ACX 700 series controller as the access
server, verify the name of the Infinet controller from your
network map (otherwise, skip this text box). If the correct
name does not appear in the InfinetCtlr text box, press the
DELETE LINE/TEXT key to erase the name. Then type
the correct one. Or use the SHOW LIST key to select
another name.
4. Type a name to stand for the person item in the Name text
box. It does not have to be the person’s name, but a name
you refer to the “person item” by. (You fill in the
individual’s first and last names later.) The person item
name can be up to 16 characters, including periods and
underscores, but cannot contain spaces. If you have only a
few people, you may want to use the person’s initials. Or
you may want to use the first five letters of the last name
followed by the first initial. The decision is yours. When
you are ready, press the EXECUTE key to proceed.
The Person window opens. To fill in the text boxes in
that window, proceed to the next section.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
23-3
DELETE LINE/TEXT
Erases Entire Name
Personnel
Setting Person Attributes
Figure 23-3 shows the Person window that appears.
Figure 23-3. Person Window
View
Edit
Connect
Logout
Person – Floor1 JJones
Name JJones
SAVE
Expiration Date 10-23-93 8:00:00 am
Department Number 3
SAVE AS
Zone Point PresentArea
Current Area
CANCEL
Time of Entry 1-10-93 9:46:04 am
Entry Egress ( )
Duress ( )
State
(X) Enabled
( ) Disabled
Set Person Attributes
CARD INFO
DELETE
You set the following attributes for each person:
1. Description—(Optional.) You can type a description of
the person, up to 32 characters, including spaces. The
description is optional and does not affect the controller.
2. Expiration Date—Set to the date and time the person is
no longer allowed access, if known. You enter this
information if, for instance, an employee leaves the
company.
3. Department Number (DepartmentCode)—The number
assigned to the person’s department. For instance, if
Engineering is Department 2, then you enter 2 here. You
23-4
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Personnel
can assign any number from 0 to 65535. When the person
swipes the card assigned through the card reader or enters
an access code on a keypad, the access control software
sets the LastDeptCode attribute of the door to this number.
4. Zone Point (LastZonePoint)—Type the full path to a
numeric point that stores a number that indicates the last
door the person accessed, and whether the person entered
or exited through the door. Remember, you assigned a
Zone Number to a door’s entry card reader and another
Zone Number to a door’s exit card reader.
Whenever the person enters an area through a particular
door, the control system sets this point to the door’s entry
card Zone Number. Whenever the person exits an area
through a particular door, the control system sets this point
to the door’s exit card reader Zone Number.
You can use the zone point to carry out other forms of
control, for instance, turning on the lights or starting the
morning warmup.
5. Current Area (Value)—Right now, no area displays.
Once the person begins swiping a card or typing an access
code on a keypad, the name of the area the person is in
displays here. If you go to the Command window and
type
PR JJONES
The controller prints the name of the area the person is
located in.
6. Time of Entry (TimeEntered)—Right now, no time or
date displays. Once the person begins swiping a card, the
time and date that the person entered the area displays.
7. Entry Egress—(Optional.) This attribute displays
whether or not the person’s last entry was an entry/egress
violation. Displays X if it was.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
23-5
Set Entry and Egress
Personnel
8. Duress—(Optional.) This attribute displays whether or
not the person’s last entry was under duress (being forced
into the area by an unauthorized person). Displays X if it
was. The person indicates duress through a card swipe by
swiping the card so the front of it faces the wall rather than
facing away from the wall. To indicate duress on a keypad,
the person can type the usual PIN or general code and
press the asterisk (*) instead of the pound sign (#) to
complete the code.
9. State—(Optional.) If you want to allow the person to
access all or any areas, move to Enabled and press the
space bar so that the X appears. If you want to temporarily
stop the person from entering all areas, move to Disabled
and press the space bar. Be sure to select Enabled for a
new person.
10. Press the CARD INFO button to proceed to the Card
Information window.
23-6
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Personnel
Summary
You set up the following attributes for each person who you
give an access card or keypad code:
• Name—Name of “person item,” not of person.
• Description—Description of the person.
• Expiration Date—Date and time the person is no longer
allowed access, if known.
• Department Number—Number you assigned to the
person’s department.
• Zone Point—Point that stores a number that indicates the
last door the person accessed, and whether the person
entered or exited through the door.
• State—To allow the person to access all or any areas, set
to Enabled. To temporarily stop the person from entering
all areas, set to Disabled.
The controller sets the following attributes for each person
once the person begins swiping a card or punching a code:
• CurrentArea—The controller prints the name of the area
the person is located in.
• Time of Entry—Once the person begins swiping a card,
displays the time and date that the person entered the area.
• Entry Egress—Displays X if the person’s last entry was
an entry/egress violation.
• Duress—Displays X if the person’s last entry was under
duress (being forced into area by an unauthorized person).
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
23-7
Personnel
Entering Person’s Card
Information
Figure 23-4 shows the Card Information window.
Figure 23-4. Card Information Window
View
Edit
Connect
Logout
Person – Floor1 JJones
Card Information
Card Type
(X) Infinity37
( ) AC4Plus432
( ) Wiegand26
( ) ABA1
( ) ABA2
( ) PINOnly
Card Number
SAVE
CANCEL
DELETE
DETAILS1
Site Code
PIN
Indicate Card Type, Card
Number, Site Code, PIN
AREAS
In this window, you enter the card type, card number, site
code, PIN, and access details of the individual, as follows:
1. Card Type—You see a list of possible card types.
Select the type of card this person holds—Infinity37,
AC4Plus432, Wiegand26, ABA1, or ABA2. Select
PINOnly where no card reader is involved, but a keypad
instead.
2. Card Number—Type the person’s card number as
encoded on the person’s access card. Do not exceed the
23-8
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Personnel
highest card number. The highest card number is based on
the card type:
• Infinity 37—0 to 524287
• AC4+4 32—0 to 16383
• Wiegand 26—0 to 65535
3. Site Code—Type the person’s site code. This number is
encoded in the person’s access card and is the same for a
set of cards. The numbers available on the different card
types are as follows:
• Infinity 37—0 to 4095
• AC4+4 32—0 to 4095
• Wiegand 26—0 to 256
4. PIN—Type the person’s personal identification number
(PIN). It should be unique to the individual and a number
from 0 to 65535.
5. To complete the card information, press the DETAILS1
button and you see the Details1 window.
Summary
You tell the controller the card information of the person by
responding to the following attributes:
• Card Type—The type of card this person holds or
PINOnly where you have a keypad only.
• Card Number—Card number encoded in the person’s
card.
• Site Code—Site code encoded in the person’s card.
• PIN—Personal identification number for a keypad.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
23-9
Indicate Personal
Identification Number
Personnel
Completing Employee
Information about Person
Figure 23-5 shows the Details1 window that appears after
you press the DETAILS1 button in the Employee
Information window.
Figure 23-5. Employee Information Window
View
Edit
Connect
Logout
Person – Floor1 JJones
Details 1
Last Name Jones
First Name Jessica
Middle Initial
SSN 00-000-0000
SAVE
CANCEL
Department Engineering
Employee Number
DETAILS2
Activation Date 4-10-93 9:00:00 am
Office Location
AREAS
Office Phone
In the Details1 window, you set the remaining information
about the card as follows:
1. Last Name—(Optional.) Type up to 32 characters,
including spaces, for the person’s last name.
2. First Name—(Optional.) Type up to 16 characters,
including spaces, for the person’s first name.
3. Middle Initial—(Optional.) Type the person’s middle
initial, if applicable.
23-10
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Personnel
4. SSN (SocSecNum)—(Optional.) Type the person’s social
security number.
5. Department—(Optional.) Type up to 32 characters,
including letters and numbers, that indicate the person’s
department name.
6. Employee Number—(Optional.) Type up to 16
characters, including both letters and numbers, indicating
the employee number of the person.
7. Activation Date—(Optional.) Set to the date and time
you want the access system to begin allowing the person to
enter areas. Give either today’s date or the date you expect
the person to begin entering areas.
8. Office Location—(Optional.) Type up to 16 characters,
including both letters and numbers, indicating the location
of the person’s office.
9. Office Phone (WorkPhone)—(Optional.) Type up to 40
characters, including letters and numbers, indicating the
person’s office phone number.
10. Press the AREAS button to proceed to the Current
Areas window.
Summary
You give employee information in the following attributes:
• Last Name, First Name, Middle Initial—Person’s
real name rather than “person item” name.
• SSN—Social Security number.
• Department, Employee Number.
• Activation Date—Date you enter person in controller.
• Office Location and Office Phone.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
23-11
Personnel
Setting Areas the Person Can
Access
Figure 23-6 shows the Current Areas window.
Set Areas Person Can
Access
In Current Areas window, you indicate the areas the person
has access to. The window is empty at first and the cursor is
in the upper left corner. Proceed to put area names in this window as follows:
1. Press the INSERT TEXT key (refer to your keystroke
reference card for the correct keystrokes).
Figure 23-6. Current Areas Window
View
Edit
Connect
Logout
Person – Floor1 JJones
Areas
Current Areas
Use <INSERT> to Add an Area
Use <ENTER> to Edit an Area
Use <DELETE> to Delete an Area
Use <EXIT> to Exit Form
Figure 23-7 shows the a list of available areas that opens.
23-12
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Personnel
Figure 23-7. List of Available Areas
View
Edit
Connect
Logout
Person – Floor1 JJones
Areas
Current Areas
Areas
L ab1
Lab2
Use down
Lab3
arrow to
Lobby
move down list.
FrontOffice
EngOffices
AdminOffices
PresOffice
Use <INSERT> to AddVeepOffice
an Area
Use <ENTER> to Edit an Area
Use <DELETE> to Delete an Area Use <EXIT> to Exit Form
The cursor is automatically on the first area in the list.
2. To move the cursor to another area, press the down arrow
key until it lands on the area you want.
3. To select the area the cursor is on, press the EXECUTE
key.
In a moment, the area appears in the Current Areas list.
If you add more than one area, the next one you add always
appears at the top of the Current Areas list.
Notice that the areas that appear in the list have two pieces
of information to the right of them—TRUE or FALSE and
ENABLED or DISABLED.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
23-13
Personnel
Figure 23-8 shows the areas the person called JJones can
access. Notice that the areas are all FALSE and
ENABLED. To find out what these settings mean, put the
cursor on the area you want more information about and
press the EXECUTE key.
Figure 23-8. Current Areas Window
View
Edit
Connect
Logout
Person – Floor1 JJones
Areas
Current Areas
L ab1
Lab2
Lab3
Lobby
FrontOffice
EngOffices
False
False
False
False
False
False
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Use <INSERT> to Add an Area
Use <ENTER> to Edit an Area
Use <DELETE> to Delete an Area
Use <EXIT> to Exit Form
In a moment the Area Detail window appears.
Figure 23-9 shows the window. Notice that the area name
appears to the right of Area.
4. Schedule—(Optional.) Type the full path to the
occupancy point of the schedule you want to have control
this person’s access to the area.
23-14
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Personnel
Figure 23-9. Area Detail Window
View
Edit
Connect
Logout
Person – Floor1 JJones
Area Detail
Area Floor1 Lab1
Schedule
Load to ACX
(X) Load
( ) Don’t Load
SAVE
CANCEL
State
(X) Enabled
( ) Disabled
5. Load to ACX—(Optional.) If you have an Infinity CX
9000 as an access server, in this box you indicate where the
person is stored.
If this person is very important, works on this floor, or for
any reason should have immediate access to the area, store
a copy of the person on the ACX 700 series controller by
putting the X next to Load. If the person is seldom in the
area or can wait for the ACX 700 series controller to
retrieve names and access codes from the database on an
Infinity CX 9000 or an SX 8000, store the person on the
access server unit by putting the X next to Don’t Load.
If you are using the ACX 700 series controller as its own
access server, you can ignore this attribute.
6. State—(Optional.) If you want to allow the person access
to the area immediately, put the X next to Enabled. If you
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
23-15
Indicate Where to Store
the Person
Personnel
want to temporarily stop the person from entering the area,
put the X next to Disabled.
7. Press the SAVE button to add the changes and alter the
person’s access to the area. The Area Detail window
closes and you see the changes to the area in the Current
Areas window.
Edit an Area after You
Have Added It to List
8. If you decide you want to change one of the areas from
Enabled to Disabled or from Load to Don’t Load
under Load to ACX, press the INSERT key again and
repeat the above steps.
9. If you would like to deny the person access to any areas in
the list, proceed to the next subsection (below).
10. When you have added all the areas the person should
have access to, to close the area list, press the CANCEL
WINDOW key. You return to the Details1 window.
Removing Access to an Area
While in the Person’s Areas window, you can change the
person’s access to an area by removing it from the areas list
as follows:
1. To remove an area from those the person can access, press
the appropriate arrow key until the cursor lands on the area
name.
2. Press the DELETE key to delete the area from the list.
23-16
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Personnel
Summary
In the Current Areas window, you set up a list of the areas
that the person can access as follows:
• Press the INSERT TEXT key to insert an area in the list.
• When the list of Available Areas appears, select one
with the arrow key and press EXECUTE to put it in the
list.
In the Area Detail window, you can set the following:
• To allow the person access based on a schedule, type the
name of the schedule occupancy point in the Schedule
text box.
• To copy the person onto the ACX 700 series controller, you
set the Copy to ACX attribute to Load.
• To deny the person access to any areas, set the State
attribute to Disabled.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
23-17
Personnel
Adding More Employee
Information
From the first Employee Information (Details1) window,
when you press the DETAILS2 button the second Employee
Information window appears.
Figure 23-10 shows the second Employee Information
(Details2) window.
Figure 23-10. Second Employee Information
Window
View
Edit
Connect
Logout
Person – Floor1 JJones
Details 2
Supervisor Jones
Job Title Jessica
SAVE
License Number 00-000-0000
Address Engineering
City
CANCEL
State
Zip 4-10-93 9:00:00 am
DETAILS3
Country
AREAS
Home Phone
DOB
Add Person Information
In this window, you fill in employee data, as follows:
1. Supervisor—(Optional.) Type up to 32 characters,
including both letters and numbers, stating the name of the
person’s supervisor.
23-18
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Personnel
2. Job Title—(Optional.) Type up to 32 characters,
including both letters and numbers, stating the person’s
job title.
3. License Number—(Optional.) Type up to 12
characters, including both letters and numbers, indicating
the person’s license number. This is especially useful in
parking lot access control.
4. Address—(Optional.) Type up to 32 characters,
including both letters and numbers, indicating the person’s
home street address.
5. City—(Optional.) Type up to 16 characters, including
both letters and numbers, indicating the city or town the
person lives in.
6. State (StateOfResidence)—(Optional.) Type two
characters, both letters, indicating the standard
abbreviation of the state the person lives in.
7. Zip—(Optional.) Type up to nine characters, including
letters and numbers, indicating the zip code of the person’s
home address.
8. Country—(Optional.) Type up to 12 characters,
including both letters and numbers, indicating the country
the person lives in.
9. Home Phone—(Optional.) Type up to 40 characters,
including both letters and numbers, indicating the person’s
home phone number.
10. DOB (DateOfBirth)—(Optional.) Type up to eight
characters, including numbers and any type of dividing
character (slashes, dashes, periods, commas, and so on)
indicating the person’s date of birth.
11. Press the DETAILS3 button to proceed to the Person
Information window.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
23-19
Indicate the Person’s
Country
Personnel
Entering Personal Information
Figure 23-11 shows the Personal Information window
that appears when you press the DETAILS3 button in the
Employee Information window.
Figure 23-11. Personal Information Window
View
Edit
Connect
Logout
Person – Floor1 JJones
Details 3
Blood Type
SAVE
Sex
Hair Color
CANCEL
Eye Color
Height 5 feet 7 inches
AREAS
Weight 125
Parking Sticker AF276
Add Some Personal
Information
In this window, you fill in more information about the person
as follows:
1. Blood Type—(Optional.) Type up three characters,
including both letters and numbers, indicating the person’s
blood type.
2. Sex—(Optional.) Type one character, including both
letters and numbers, indicating the person’s gender.
23-20
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Personnel
3. Hair Color—(Optional.) Type up to 12 characters,
including both letters and numbers, indicating the person’s
hair color.
4. Eye Color—(Optional.) Type up to 12 characters,
including both letters and numbers, indicating the person’s
eye color.
5. Height—(Optional.) Type up to 16 characters, including
both letters and numbers, indicating the person’s height.
You can include spaces.
6. Weight—(Optional.) Type the person’s weight.
7. Parking Sticker—(Optional.) Type up to eight
characters, including letters and numbers, indicating the
person’s parking sticker label.
Summary
In the second Employee Information window, you complete the remaining job-related information about the person:
• Supervisor, Job Title
• License Number, Address, City, State, Zip,
Country, Home Phone, DOB
In the Personal Information window, you add information
that you may or may not need:
• Blood Type, Sex
• Hair Color and Eye Color
• Height and Weight
You can also set the person’s parking sticker number, which
can come in handy in controlling parking lot access.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
23-21
Personnel
23-22
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Appendix A
Keystrokes
This appendix covers the Infinity CX keystrokes for the four
terminal types the product works on:
•
•
•
•
VT 100
VT 220
Wyse 50
CROSSTALK
The key names are listed alphabetically for easy reference.
After the terminal keystrokes, four tables present the action
each key takes in the different Infinity CX modes:
•
•
•
•
Menus
Choice Lists
Edit Menu Windows
File Editor
Again, the key names are listed alphabetically.
Finally, a table lists the keys you press after the QUICK
BUTTON key to press particular buttons.
www.PDF-Zoo.com
Keystrokes
Terminal Keystrokes
Where you see ESC, press ESC first, then the other key. With
CTRL, hold down CTRL while you press the other key.
Keystrokes Differ on
Each Terminal
Table A-1. Keystrokes on Various Terminals to
Execute Infinity Keys
Key Name
VT 100 Keys
VT 220 Keys
Arrow Keys
Arrow Keys
Arrow Keys
BACKSPACE
Backspace
Backspace
BEGIN
ESC U
ESC U
BOTTOM SCREEN
ESC 9
F9
CANCEL WINDOW
PF4
PF4
DELETE LINE/TEXT
ESC 6
F6
DELETE TEXT
Delete
Remove
DELETE TO RIGHT
ESC 7
F7
DELETE WORD
PF2
PF2
END
ESC e
Select
EXECUTE
Return
Enter
INSERT LINE
ESC 5
ESC 5
INSERT TEXT
ESC i
Insert Here
LEFT SIDE
ESC h
Find
A-2
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Keystrokes
Some keystrokes are the same for more than one key. The action
differs because, for instance, one action applies in the attribute
windows and the other to the Editor window.
Table A-1. Keystrokes on Various Terminals to
Execute Infinity Keys (cont)
VT 100, VT 220, Wyse 50,
and CROSSTALK
Key Name
Wyse 50 Keys
CROSSTALK Keys
Arrow Keys
Arrow Keys
Arrow Keys
BACKSPACE
Repl
Backspace
BEGIN
ESC U
ESC U
BOTTOM SCREEN
F9
F9
CANCEL WINDOW
F4
F4
DELETE LINE/TEXT
F6
F6
DELETE TEXT
Delete
Del
DELETE TO RIGHT
F7
F7
DELETE WORD
F2
F2
END
Shift Home
End
EXECUTE
Enter
Enter
INSERT LINE
ESC 5
ESC 5
INSERT TEXT
Insert
Ins
LEFT SIDE
Home
Home
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
A-3
Keystrokes
The MARK BLOCK Key
Starts a Block of Text
Table A-1. Keystrokes on Various Terminals to
Execute Infinity Keys (cont)
Key Name
VT 100 Keys
VT 220 Keys
MARK BLOCK
CTRL B
CTRL B
MENU BAR
ESC ESC
ESC ESC
NEXT ATTRIBUTE
TAB
TAB
NEXT WORD
CTRL R
CTRL R
PAGE DOWN
CTRL D
Next Screen
PAGE UP
CTRL U
Prev Screen
PREVIOUS
ATTRIBUTE
ESC TAB
ESC TAB
PREVIOUS WORD
CTRL L
CTRL L
QUICK BUTTON
PF1
PF1
QUICK COMMAND
PF3
PF3
REFRESH
CTRL Z
CTRL Z
RESTORE TEXT
ESC 5
ESC 5
RIGHT SIDE
ESC E
Select
SAVE
PF3
PF3
SHOW LIST
PF2
PF2
TOP SCREEN
ESC 8
F8
A-4
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Keystrokes
Table A-1. Keystrokes on Various Terminals to
Execute Infinity Keys (cont)
The NEXT ATTRIBUTE
Key Is Like a TAB Key
Key Name
Wyse 50 Keys
CROSSTALK Keys
MARK BLOCK
CTRL B
CTRL B
MENU BAR
ESC ESC
ESC ESC
NEXT ATTRIBUTE
TAB
TAB
NEXT WORD
None
CTRL R
PAGE DOWN
Page Next
PgDn
PAGE UP
Page Prev
PgUp
PREVIOUS
ATTRIBUTE
ESC TAB
ESC TAB
PREVIOUS WORD
None
CTRL L
QUICK BUTTON
F1
F1
QUICK COMMAND
(QUICK CMD)
F3
F3
REFRESH
CTRL Z
CTRL Z
RESTORE TEXT
ESC 5
ESC 5
RIGHT SIDE
Shift Home
End
SAVE
F3
F3
SHOW LIST
F2
F2
TOP SCREEN
F8
F8
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
A-5
Keystrokes
Menu Keys
You Move Around on
Menus with Menu Keys
Table A-2. Menu Key Actions
Key or Keys
Action
Arrow Keys
Move the cursor up and down the
menu selections.
CANCEL WINDOW
Return the cursor to the menu bar.
EXECUTE
Open the menu or carry out the action of the menu selection.
LEFT SIDE
Moves cursor to leftmost menu on
the menu bar.
MENU BAR
Returns the cursor to the menu bar.
PAGE DOWN
Moves the cursor down to the next
menu selection.
PAGE UP
Moves the cursor up to the next
menu selection.
RIGHT SIDE
Moves cursor to rightmost menu on
the menu bar.
SAVE
Returns the cursor to the menu bar.
A-6
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Keystrokes
Edit Menu Window Keys
Table A-3. Window Keys to Edit Attributes
Use Keys in Windows to
Change Attributes
Key or Keys
Action
Arrow Keys
Move the cursor left and right in text,
or up and down a list of selections.
BACKSPACE
Erases the single character that appears before it. (Erases backward).
CANCEL WINDOW
Closes window and erases changes.
Then returns cursor to menu bar.
DELETE LINE/TEXT
Erases all text in the text box the cursor is in.
DELETE TEXT
Erases the single character that
appears after it. (Erases forward).
DELETE TO RIGHT
Deletes text to right of cursor.
EXECUTE
Saves all attributes. EXECUTE
saves if not on a button that directs
another action.
INSERT TEXT
When you press it, then type, inserts
text where cursor is in text box.
LEFT SIDE
Moves cursor to left side of text box.
MENU BAR
Closes window and erases changes.
Then returns cursor to menu bar.
NEXT ATTRIBUTE
Moves cursor forward one attribute.
PREVIOUS
ATTRIBUTE
Moves cursor back one attribute.
RESTORE TEXT
Returns text in text box to what it was
before you changed it.
RIGHT SIDE
Moves cursor to right side of text box.
SAVE
Saves all attributes. EXECUTE
saves if not on a button that directs
another action.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
A-7
Keystrokes
Choice List Keys
Use Keys in Choice Lists
to Move and Select
Table A-4. Choice List Keys
Key or Keys
Action
Arrow Keys
Move the cursor up and down the
choice list selections.
CANCEL WINDOW
Return the cursor to the menu bar.
EXECUTE
Selects the highlighted name from
the choice list.
MENU BAR
Returns the cursor to the menu bar.
PAGE DOWN
Moves the cursor down to the next
choice list selection.
PAGE UP
Moves the cursor up to the next
choice list selection.
SAVE
Returns the cursor to the menu bar.
A-8
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Keystrokes
File Editor Keys
Table A-5. File Editor Keys
Use Keys in Editor
Window to Alter Files
Key or Keys
Action
Arrow Keys
Move the cursor anywhere on the
screen.
BACKSPACE
Erases the single character that appears before it. (Erases backward).
BEGIN
Takes the cursor to the top of the file
and positions it in the leftmost position in that line.
BOTTOM SCREEN
Moves the cursor to the bottom of the
visible screen.
CANCEL WINDOW
Moves cursor to menu bar if in the
editor, to editor if in menu bar.
DELETE LINE
Removes the entire line the cursor is
on.
DELETE TEXT
Erases the single character that is after it. (Erases forward).
DELETE TO RIGHT
Deletes text to the right of the cursor
through the end of the line.
DELETE WORD
Erases one word left to right (Erases
forward).
END
Takes the cursor to the bottom of the
file.
Return
Ends a physical line of text and
brings the cursor to the beginning of
the next line.
INSERT LINE
Inserts a blank line below the one the
cursor is on.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
A-9
Keystrokes
QUICK COMMAND Key
Makes Keys Commands
Table A-5. File Editor Keys (cont)
Key or Keys
Action
INSERT TEXT
At any position on the screen, inserts
text after you press it.
LEFT SIDE
Moves the cursor to the far left end of
the line it is on.
MARK BLOCK
Marks the beginning of a block of text
where the cursor is when you press
it. You move the cursor to the end of
the block of text. You can then select
functions from the Edit menu in the
File menu bar to cut, copy, or paste
the block.
NEXT WORD
Moves the cursor right (forward) one
word.
PAGE UP
Moves cursor up to previous screen.
PAGE DOWN
Moves cursor down to next screen.
PREVIOUS WORD
Moves the cursor left (back) one
word.
QUICK CMD
Lets you use quick commands.
QUICK BUTTON
Lets you use a quick button (see
Table A-6).
RIGHT SIDE
Moves the cursor to the far right end
of the line it is on.
TOP SCREEN
Moves the cursor to the top of the visible screen.
A-10
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Keystrokes
Quick Button Keys
To press a button quickly (instead of moving to it with the
NEXT ATTRIBUTE key), press the QUICK BUTTON key,
then press the corresponding letter key, such as S to press the
SAVE button.
Most quick button keys are the first letter of the word. However, since D is for DETAILS, the second letter in the word,
E, is for DELETE. Since E is for DELETE, X (again the second letter) is for EXIT. The table lists all quick button keys.
Table A-6. Quick Button Keys
Quick Key
Button Pressed
A
ADD or SAVE AS
C
CANCEL, CLEAR, or CHECK
D
DETAILS
E
DELETE
L
LOGS or LEARN
N
NO or NEXT
O
OK
P
PREVIOUS
Q
QUIT
R
RETRY or RESET
S
SAVE
T
TRIGGERS or TEACH
V
VIEW
X
EXIT
Y
YES
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
A-11
Press Buttons Quickly
with Quick Button Keys
Keystrokes
A-12
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Appendix B
Error Messages
This appendix covers the Editor window, runtime, and opening file messages from Andover Controls Plain English.
www.PDF-Zoo.com
Messages
Editor Window Error
Messages
Editor or Command
Window Messages
The following messages occur inside the editor. Some of them
may also occur in the Command window. They are listed in
alphabetical order. The cursor lands on the line the message
refers to.
Alarm expression is too long
Look for an expression in an alarm that has too many characters in it. The maximum length is 132 characters. If the
expression is not over 132 characters, it may still be too
long for the controller to process, because, for instance,
each floating point number you use requires more space to
store in the controller than to display on the screen. Try
altering the expression.
An argument index must be from 1 to 15
In a function only, when you set up arguments using the
ARG keyword, you must give each a number from 1 to 15.
You can have up to 15 arguments in a function.
Array is longer than 32,767 entries
Redefine the array with an array SIZE of up to, but not
exceeding, 32,767.
Attribute does not apply to the item type
Remove the reference to an attribute that does not exist
for that particular item. For instance, programs have
CURRENTLINE and FILESIZE; points do not. Refer to
Appendix B in the Andover Controls Plain English Language Reference for more on attributes.
B-2
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Messages
Attributes do not apply to local variables
Remove the reference to an attribute after the variable,
except in the case of an OBJECT local variable. For more
information about OBJECT local variables, see the
OBJECT keyword in the Andover Controls Plain English
Language Reference.
BREAK or CONTINUE is outside a loop or block
Search the program for the word BREAK or CONTINUE.
Rewrite the program so you use BREAK or CONTINUE
in a loop (or block of statements) or do not use them at all.
Cannot define any more local variables
Check the number of local variables. You cannot have
more than 255. Rewrite the program as required.
Cannot enable/disable all of one type
Alter the statement that tries to enable or disable all points,
files, or other items. The controller does not execute such
a statement.
Cannot run or stop program from command line
Occurs on the command line only. Check the program’s
COMMANDLINE attribute to see if it is TRUE or
FALSE. If it is FALSE and you want to run the program
from a program or the command line, change the attribute
to TRUE.
Cannot use that var as FOR..NEXT index var
FOR..NEXT Variable
Must Be Defined
Check to be sure you used a local numeric variable, or a
point that is not a string, date-time, or input, for the index
variable in FOR..NEXT.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
B-3
Messages
Command is valid only from command line
Look for a command in a program that is allowed only on
the command line.
Command is valid only in a program or function
If you tried to use a command from the command line that
you must use only in a program or function, you receive
this message.
Comment has more than 132 characters
Rewrite comment so it is not longer than 132 characters. A
tilde cannot extend a comment.
Data file is too long
Alter data file so it does not have more than 32,767 bytes
(32 KB); bytes are approximately equal to characters in
size. You may copy some data to another file to reduce the
number of records.
Data Fields Are a
Particular Length
Data has more chars than field allows
Alter the size of the data field or alter the data to fit the size
of the field you defined.
Date or time is not valid
Be sure the date-time field contains the complete date and
time. If it does, be sure the date and time are actually
valid—do not enter a date or time with a zero for the month
or day. Do not enter a month over 12, a day over 31, a year
over 2038, or an hour over 23.
Data type is not same as field type
Rewrite the record in the data file so you are not assigning
a number (or string or date-time) to a field of a different
type.
B-4
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Messages
Fatal, Bad Stack Address
Call your Andover Controls representative.
Fatal, Illegal Stack Operation
Call your Andover Controls representative.
Fatal, Not enough free memory
Call your Andover Controls representative.
Feature not available on this controller
Check for keywords that do not run on the particular controller you are on. Refer to the Andover Controls Plain
English Language Reference for this detail on each keyword.
Field is too long to display
If the field is more than 129 characters long it cannot display on the screen when you display the data file. Change
the length of the field if you want to display it in its
entirety.
FOR and NEXT use different index var names
FOR and NEXT Must
Name Same Variable
Be sure the index variable after NEXT is the same as the
one after FOR. If it is not, then change the statement so
they are the same.
GOTO is not allowed inside a loop
Remove GOTO from inside the loop and rewrite that part
of the program.
Incorrect array entry type
Check the item type to be sure it is a point or local variable.
No other item can be an array. If the item is a point or local
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
B-5
Messages
variable, check the array type and be sure the entry is the
same type—numeric, string, or datetime.
Local variable name cannot be an argument
Look for a situation where you tried to give a local variable
and an argument the same name.
More records than RECORD statement allows
Change the number in the RECORD statement to a higher
number, or remove records from the file so the total is less
than or equal to the number in RECORD statement.
Name given is not a controller name
Double check the name of the controller or its path to be
sure it is correct and you did not spell it wrong. For
example, this error message appears if you try to connect
with CD to an item other than a controller.
Name has more than 16 characters
Rename the item so its name is 16 characters or less.
Some Commands
Require a Program Name
Name is not a program or function name
Double check the name of the program or function to be
sure it is a program or function and you did not spell it
wrong. For example, this error message appears if you try
to ROTATE an item other than a program.
No chars allowed after continuation symbol
Remove any characters after the tilde (~) that are on the
same physical line. The statement continues on the next
line, so any extra characters on the same line are an error.
If you typed tilde by mistake, delete the tilde, because the
controller thinks it is at the end of a line.
B-6
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Messages
No function with that name exists
When calling a function, you may have spelled the function name wrong. If you spelled the name correctly, check
to be sure the function exists.
No item with that name exists
Check the statement for a name you misspelled or never
defined. Be sure you did not make a mistake typing it. If
you did not define it or spell it correctly, the controller
does not recognize it.
No line has this line name
Check after GOTO for a line name that you never assigned
or that you spelled incorrectly.
No quotation marks at end of string
Add the quotation marks to close the string.
Number cannot be longer than 132 digits
Redefine the numeric point, variable, or field (in data file)
so it does not contain more than 132 digits.
Number is not valid
The number you entered may contain nonnumeric digits or
be a number the controller does not understand.
Number must be an integer
Sometimes Number
Must Be an Integer
Some attributes require an integer value (number with no
decimal after it), such as the array or log SIZE attribute.
Check to be sure you have not set one to a value with a decimal in it.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
B-7
Messages
Operation is not available
Keyword you used does not function at this stage of
product development.
Parser stack overflow
Call your Andover Controls representative.
Passed too many arguments to a function
Look for a situation where you have tried pass more than
15 arguments into a function like SUM, MINIMUM,
MAXIMUM, or your own function.
Each Path Can Have
Three Names
Path name has too many names
Alter the path so that it has up to, but not more than, three
names, not including attributes. Check the spelling of each
controller/point in the path to be sure it matches one of the
names you have assigned. If all names are spelled correctly, be sure you used either spaces or backslashes
between each. (If you still cannot find the problem, check
the location of each controller or point on the network to
be sure the path is correct.)
Record has too many or too few fields
Compare the defined fields at the top of the file with those
in the record. Be sure you add any missing fields in a
record or remove any excess fields.
Report files are not supported yet
If you try to set up a report on a controller, you receive this
message in the Editor window as soon as the window
appears. You can set up reports only on a workstation.
Same line name given to more than one line
Rename the line so you do not use the same line name
more than once in a single program.
B-8
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Messages
Same name for more than one local variable
Rename the variable so it has a unique name.
Same name or number for more than 1 argument
Each Arg Must Have
Unique Name/Number
Rename the argument so it has a unique name, or
renumber it so it has a unique number.
Statement or expression is not correct
Check the format against the format in the reference
manual. Check for misspellings of keywords and names,
closing parentheses, extra or missing commas, extra
ANDs and ORs, missing words, extra words, or extra characters. The error can also be in a conversion or alarm
expression.
Statement is too long
Reduce the length of the statement to a maximum of 10
complete physical lines.
String is too long
Redefine the string so it has up to 132 characters. (If the
string is a field in a data file, it can be up to 130 characters
long.) Or rewrite the program so you do not fill the string
with too many characters.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
B-9
Messages
Only Certain Symbols
Are Allowed
Symbol(s) are not from the correct set
Check to be sure you did not enter characters that are not
allowed in the language. Symbols you can use include:
–
+
,
=
*
/
(
)
!
%
&
^
[
]
:
\
Minus Sign
Plus Sign
Comma
Equals Sign
Asterisk (Multiply Symbol)
Slash (Divide Symbol)
Open Parenthesis
Close Parenthesis
Exclamation Point (OR Symbol)
Percent Symbol
Ampersand (AND Symbol)
Exponent Symbol
Left Square Bracket
Right Square Bracket
Colon (Line Name Symbol)
Backslash (Path Separator)
You can use any symbol in a string or comment.
Unknown command option
Appears if you try to use a nonexistent option with LOAD
or SAVE on the command line.
You cannot change that attribute value
Remove the statement that attempts to set an attribute that
only the controller can set. Refer to Appendix B of the
Andover Controls Plain English Language Reference for
attributes you cannot set.
B-10
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Messages
You cannot change value of system variable
Remove any statement that tries to set variables that the
controller sets, such as MINUTE and SECOND. (You can
set the HOUR, DATE, ERRORS, STATUS1 through
STATUS8, and so on. See specific system variables to be
sure.)
You cannot set that item value
Change the program so it does not try to set values of items
the controller sets, such as input points, or of items that do
not have a VALUE attribute, such as programs. Look for
keywords such as SET, ADJUST, MOVE, LET,
CHANGE, or TURN.
You must give a name of a local data file
You Must Give a Data
File on Same Controller
Some keywords, such as those that refer to a field within a
record, require a data file name. A data file name is
required when attempting to access any field in the file,
whether to print it, read it, or use it in any other situation.
Check to be sure the file you name is a data file and one on
the same controller the program is on.
0, C or E is a reserved line name
Change the name of any line that you named 0, C, or E. All
three are reserved. You can send a program to line 0 to stop
it, but cannot send a program to lines C or E.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
B-11
Messages
Runtime Error Messages
Runtime Messages
The following messages occur only when you run the program and have errors that keep it from running properly,
called runtime errors:
An expression uses an operand incorrectly
Look for an expression contains items, variables, and literals (actual numbers or text) that are not the same type.
You cannot add a string to a number, or compare a string
to a date-time. See the chapter on operators in the Andover
Controls Plain English Language Reference.
Attribute does not apply to the item type
Remove the reference to an attribute that does not exist for
that type of item. For instance, a program does not have a
SIZE attribute, but a FILESIZE attribute. Refer to
Appendix B in the Andover Controls Plain English Language Reference for more on attributes.
Cannot read data file
Try to read again. File may not be available if being used
by another program.
Cannot write to data file
Be sure the data file is set up, and the name in the statement
is correct. If name is correct, try to write again. File may
not be available if being used by another program. In rare
cases, file may be damaged and not accessible.
Chosen area too small for this control
Try changing the coordinates for a control you are sending
to the DCX 250 screen with the CONTROL keyword. The
area you designated is too small for the style control you
selected.
B-12
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Messages
Comm port operation failed
This message appears if you used the workstation
Command line from a controller at another site and the
workstation failed (for instance, went off line for a
moment). The workstation may have failed for various
reasons. You never see this message if you have no workstation.
Date or time is not valid
Be sure the date-time contains the complete date and time.
If it does, be sure the date and time are actually valid—do
not enter a date or time with a zero for the month or day.
Do not enter a month over 12, a day over 31, a year over
2038, or an hour over 23.
Executed too many statements on one line
Reduce the number of statements on one line. If no line has
many statements, check your looping statements to be sure
the loop does not repeat too many times. Check your function calls to be sure you have not nested too many. Call
your Andover Controls representative.
FOR..NEXT loop index variable not numeric
FOR..NEXT Variable
Must Be Numeric
Check the index variable definition at the top of the program. Be sure it is numeric.
Function did not give the expected result
Look for an expression that uses the result of a function and
see the returned value is the same type as the other operands
in the expression. You cannot add a string to a number, or
compare a string to a date-time. See the chapter on operators
in the Andover Controls Plain English Language Reference.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
B-13
Messages
Gave an array entry that does not exist
Change the statement that tries to assign a value to an array
position that does not exist. For instance, if the array has
20 entries, and you attempt to put a value in entry 21, you
receive this error. The error also occurs if you use a variable for the array index and the value of the variable is set
to a negative number.
Gave more or less arguments than allowed
Open the function (or double check your manual if it is an
Andover Controls Plain English function) and look at the
arguments it can receive. Then alter the statement that calls
the function so it sends the correct number of arguments.
Array Index Variable
Must Always Be Numeric
Gave non-numeric var as array index
Check to be sure the array index is a numeric variable or
point, not a string or date-time.
Invalid coordinates(s)
One or more of the coordinates to position a graphic (such
as a control on the DCX 250 with the CONTROL keyword) are either off the screen or not in the an appropriate
position for the size of the control.
Must set HOUR to value from 0 to 23
HOUR is the only system variable you can set. Change the
statement so it sets the HOUR to a value between 0 and 23.
No more controls allowed -- max reached
You may not have more than 24 controls on a single DCX
250. This error occurs when you try to save a 25th control.
Operation is not available
Keyword you used does not function at this stage of
product development.
B-14
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Messages
Path name is not an actual path
Check the spelling of each controller, point, or other item
in the path to be sure it matches one of the names you have
assigned. If all names are spelled correctly, be sure you
used either spaces or backslashes between each. If you still
cannot find the problem, check the location of each controller or point on the network to be sure the path is correct.
Scanner Runtime Stack Overflow
You used too many levels of function calls. Reduce the
number of nested levels or reduce the number of arguments you pass to functions. If you still receive this
message, call your Andover Controls representative.
Set a point or var to value of wrong type
If you try to set a point to a value of a different type, you
receive this error. You can enter numbers in a numeric
item, letters of the alphabet in a string, and naming characters in a name. Rewrite the program so you do not attempt
to set the point or variable to that type.
String is too long
Look through your program for statements that assign
values to strings or expressions that manipulate strings. If
the statement assigns a value longer than 132, alter the
statement. If the string is a field in a data file and has more
than 130 characters, alter the string.
Tried to divide a value by zero
Dividing by Zero Is
Always an Error
Alter any expression that tries to divide by zero. Any
expression that divides by zero gives an error. Add an
IF..THEN to check that the divisor is not zero before
dividing by it.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
B-15
Messages
Tried to print to a non-string item
If you try to PRINT a string expression or string of characters to a numeric or date-time point, this error occurs.
Tried to rotate prog to nonexistent line
Open the file containing the program you are trying to
rotate. Check the line name to be sure you are rotating to
the correct name. Be sure it is spelled correctly.
Tried to set item you cannot set
If you try to set a point (such as an input or a system variable) that only the controller can set, you receive this error.
Rewrite the program so you do not attempt to set that
point. Look for keywords such as SET, ADJUST, MOVE,
LET, CHANGE, or TURN. (The HOUR and DATE are
the only system variables you can set.)
Tried to use local var that does not exist
You Must Define Local
Variables
Try editing your file and double check each local variable.
If you still have this problem, call your Andover Controls
representative.
Used an incorrect function argument
Alter the statement in the program that calls the function
so that each argument is appropriate for the action the
function takes. You may have to look at the function file to
determine exactly what kind of arguments it requires. If
the function is from Andover Controls Plain English, see
the Andover Controls Plain English Language Reference.
Used a type when it is not allowed
Alter statements that attempt to, for instance, rotate a point
instead of a program.
Used other where data file name is required
B-16
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Messages
When trying to access a particular field in the file, you
must give a data file name. Check statements that require
a data file and be sure the file you named is a data file, not
a program or function, and not a point or other item.
Used rec or field data file does not have
Record Name Not in Data
File
Check the data file to see how many records and columns
it has. (The column number is the field number.) If the program tries to access a record or column that is not there, the
program stops. Correct the statement based on the data
file.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
B-17
Messages
Opening File Error Messages
Some Errors Occur Only
When You Open a File
The following messages occur only when you try to open a
file and the controller finds a problem. The cursor goes to the
physical line containing the error. Some of the messages are
similar to editor or runtime messages:
Controller cannot find an item
Open the program and look for the names of points, variables, programs, and other items. Look for one that is not
defined. Perhaps you recently deleted a point that is used
in this program or data file. The item the controller cannot
find can be in a point conversion or in a point you tried to
use in the file. Correct the file by defining the item or
removing the statement from the program or conversion.
Controller cannot open a file of this type
Andover Controls has reserved certain types to become
file types in the future. If you try to open a file of a type
that is not yet developed, the controller will not let you
open it. Try opening another file.
Date or time is not valid
A date-time field in a data file does not contain the complete date and time or contains one of these:
• Text or numbers that do not form a date and time.
• A date or time with zero for the month or day.
• A month over 12, a day over 31, a year over 2038,
or an hour over 23.
When you open the data file, the date-time field contains
1/ 1/ 89 00:00:00 instead of the data you entered.
B-18
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Messages
Exceeded number of displayable lines
The maximum number of lines the controller can display
is 400 physical lines (approximately eight screen pages).
A file can end up longer than 400 lines if you search and
replace information in a file that lengthens a name or
expression. When you try to open the file, you will not be
able to view all the lines on the screen.
If you have just completed the search and replace, but not
yet saved the file, simply quit the file without saving. This
action leaves the file as it was before you searched.
Or, if you really must edit the file, open a Command
window from inside the file and use the SAVE keyword to
save the program to a dump file. Edit the dump file and
reload it using the LOAD keyword.
Fatal, Not enough free memory
Call your Andover Controls representative.
Operation is not available
A keyword you used inside the file does not function at
this stage of product development.
Statement is too long
Open the file and look for a statement over 10 physical
lines long. Reduce the length of the statement.
String is too long
Strings Can Receive Up
to 132 Characters
Look through your program for statements that assign values
to strings or expressions that manipulate strings. If the statement assigns a value longer than 132, alter the statement. If
the string is a field in a data file, it can be up to 130 characters
long.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
B-19
Messages
B-20
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Appendix C
DCX Graphic Controls
and Frame Styles
This appendix presents a graphic of each DCX 250 control,
and its control number, in numeric order. It then presents each
frame style, in numeric order.
Requirements for the CONTROL keyword arguments vary
based on the control style. Exact requirements for that control
style appear with the graphic for that control.
www.PDF-Zoo.com
Control and Frame Styles
Figure C-1. Control Style 1—Raised Button
Title
• Resizing—You may resize. Fits any size area, as long as
all coordinates are on the screen. The minimum size in line
points is 40 wide by 25 high.
• frame—Do not specify. Automatically placed around
control.
• direction—Not applicable.
• bot_scale—Optional. Automatically set to OFF or one of
the two values of a digital attribute, such as DISABLED
for STATE.
• top_scale—Optional. Automatically set to ON or one of
the two values of a digital attribute, such as ENABLED for
STATE.
• tickmarks—Not applicable.
• steps—Not applicable.
• format—Not applicable.
C-2
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Control and Frame Styles
Figure C-2. Control Style 2—Flat Button
Title
• Resizing—You may resize. Fits any size area, as long as
all coordinates are on the screen. The minimum size in line
points is 40 wide by 25 high.
• frame—Do not specify. Automatically placed around
control.
• direction—Not applicable.
• bot_scale—Optional. Automatically set to OFF or one of
the two values of a digital attribute, such as DISABLED
for STATE.
• top_scale—Optional. Automatically set to ON or one of
the two values of a digital attribute, such as ENABLED for
STATE.
• tickmarks—Not applicable.
• steps—Not applicable.
• format—Not applicable.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
C-3
Control and Frame Styles
Figure C-3. Control Style 3—Light Switch
Title
• Resizing—Cannot resize. Positions itself in the center of
the coordinates you give, as long as all coordinates are on
the screen. Be careful—If the coordinates you give force
the control off the screen, it does not appear. The center of
the control must be at least 21 line points from any edge of
the screen.
• frame—If you do not specify a frame, the switch appears
without the frame around it.
• direction—Not applicable.
• bot_scale—Optional. Automatically set to OFF or one of
the two values of a digital attribute, such as DISABLED
for STATE.
• top_scale—Optional. Automatically set to ON or one of
the two values of a digital attribute, such as ENABLED for
STATE.
• tickmarks—Not applicable.
C-4
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Control and Frame Styles
• steps—Not applicable.
• format—Not applicable.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
C-5
Control and Frame Styles
Figure C-4. Control Style 4—Toggle Switch
Title
• Resizing—Cannot resize. Positions itself in the center of
the coordinates you give, as long as all coordinates are on
the screen. Be careful—If the coordinates you give force
the control off the screen, it does not appear. The center of
the control must be at least 21 line points from any edge of
the screen.
• frame—If you do not specify a frame, the toggle switch
appears without the frame around it.
• direction—Not applicable.
• bot_scale—Optional. Automatically set to OFF or one of
the two values of a digital attribute, such as DISABLED
for STATE.
• top_scale—Optional. Automatically set to ON or one of
the two values of a digital attribute, such as ENABLED for
STATE.
• tickmarks—Not applicable.
C-6
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Control and Frame Styles
• steps—Not applicable.
• format—Not applicable.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
C-7
Control and Frame Styles
Figure C-5. Control Style 5—Sliding Switch
Title
• Resizing—Cannot resize. Positions itself in the center of
the coordinates you give, as long as all coordinates are on
the screen. Be careful—If the coordinates you give force
the control off the screen, it does not appear. The center of
the control must be at least 21 line points from any edge of
the screen.
• frame—If you do not specify a frame, the sliding switch
appears without the frame around it.
• direction—Not applicable.
• bot_scale—Optional. Automatically set to OFF or one of
the two values of a digital attribute, such as DISABLED
for STATE.
• top_scale—Optional. Automatically set to ON or one of
the two values of a digital attribute, such as ENABLED for
STATE.
• tickmarks—Not applicable.
C-8
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Control and Frame Styles
• steps—Not applicable.
• format—Not applicable.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
C-9
Control and Frame Styles
Figure C-6. Control Style 6—Knob
Title
• user_change—If you do not allow the user to change the
setting of the knob, the arrows do not appear.
• Resizing—Cannot resize. Positions itself in the center of
the coordinates you give, as long as all coordinates are on
the screen. Be careful—If the coordinates you give force
the control off the screen, it does not appear. The center of
the control must be at least 30 line points from any edge of
the screen.
•
• frame—Optional.
• direction—Not applicable. Values always increase in
clockwise direction.
• bot_scale—Required if it is not a digital knob.
Automatically set to OFF or one of the two values of a
digital attribute, such as DISABLED for STATE.
C-10
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Control and Frame Styles
• top_scale—Required if it is not a digital knob.
Automatically set to ON or one of the two values of a
digital attribute, such as ENABLED for STATE.
• tickmarks—Optional. You do not have to display tick
marks, but you may.
• steps—Automatically sets to the number of degrees in the
arc of the circle from the first tick mark shown to the last
(approximately 2/3 of a circle), for a total of 240 degrees—
240 steps you can set the knob to. You may set the number
of steps to a smaller number. If you set it to 0, the knob
becomes analog.
• format—Optional. If you do not specify a format for the
numbers that label the positions on the knob, Infinity does
not display the number but leaves adequate space to
display four digits—####.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
C-11
Control and Frame Styles
Figure C-7. Control Style 7—Rotational Needle
Gauge, Vertical Position
Title
• user_change—If you do not allow the user to change the
setting of the gauge, the arrows do not appear.
• Resizing—You may resize. Positions itself in the center of
the coordinates you give, as long as all coordinates are on
the screen. Retains its basic shape even if you put it in a tall
narrow area or a short wide area. Fits to the smaller of the
two dimensions and the other dimension becomes
proportional. Size also automatically allows for a fourdigit number to appear to the right of each tick mark, even
if you do not specify a format. The numbers take up space
within the area you specify. The minimum size in line
points is 80 wide if arrows are horizontal and 50 wide if
vertical.
• frame—Optional.
• direction—Not applicable. Values always increase in
clockwise direction.
C-12
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Control and Frame Styles
• bot_scale—Required if it is not a digital gauge.
Automatically set to OFF or one of the two values of a
digital attribute, such as DISABLED for STATE.
• top_scale—Required if it is not a digital gauge.
Automatically set to ON or one of the two values of a
digital attribute, such as ENABLED for STATE.
• tickmarks—Optional. You do not have to display tick
marks, but you may.
• steps—Automatically sets to the number of degrees in the
arc of the circle from the first tick mark shown to the last
(1/2 of a circle), for a total of 180 degrees—180 steps you
can set the gauge to. You may set the number of steps to a
smaller number. If you set it to 0, the gauge becomes
analog.
• format—Optional. If you do not specify a format for the
numbers that label the positions on the gauge, Infinity does
not display the number but leaves adequate space to
display four digits—####.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
C-13
Control and Frame Styles
Figure C-8. Control Style 8—Rotational Needle
Gauge, Horizontal Position
Title
###.##
• user_change—If you do not allow the user to change the
setting of the gauge, the arrows do not appear.
• Resizing—You may resize. Positions itself in the center of
the coordinates you give, as long as all coordinates are on
the screen. Retains its basic shape even if you put it in a tall
narrow area or a short wide area. Fits to the smaller of the
two dimensions and the other dimension becomes
proportional. Size also automatically allows for a fourdigit number to appear to the right of each tick mark, even
if you do not specify a format. The numbers take up space
within the area you specify. The minimum size in line
points is 80 wide if arrows are horizontal and 50 wide if
vertical.
• frame—Optional.
• direction—Not applicable. Values always increase in
clockwise direction.
C-14
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Control and Frame Styles
• bot_scale—Required if it is not a digital gauge.
Automatically set to OFF or one of the two values of a
digital attribute, such as DISABLED for STATE.
• top_scale—Required if it is not a digital gauge.
Automatically set to ON or one of the two values of a
digital attribute, such as ENABLED for STATE.
• tickmarks—Optional. You do not have to display tick
marks, but you may.
• steps—Automatically sets to the number of degrees in the
arc of the circle from the first tick mark shown to the last
(1/2 of a circle), for a total of 180 degrees—180 steps you
can set the gauge to. You may set the number of steps to a
smaller number. If you set it to 0, the gauge becomes
analog.
• format—Optional. If you do not specify a format for the
numbers that label the positions on the gauge, Infinity does
not display the number but leaves adequate space to
display four digits—####.
• The value that appears in the box automatically appears in
the format for the point that the control represents.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
C-15
Control and Frame Styles
Figure C-9. Control Style 9—Value Bar with Arrow
Buttons
Title
####.##
• user_change—If you do not allow the user to change the
setting of the value, the arrows do not appear, so you see
only the value in a box.
• Resizing—You may resize. Positions itself in the center of
the coordinates you give, as long as all coordinates are on
the screen and those coordinates position the arrow
buttons each on separate cells. Shapes to a tall narrow area
or a short wide area. Must be at least 80 line points wide
and 50 line points high.
• frame—Optional.
• direction—Not applicable.
• bot_scale—Required if it is not a digital control. If it is for
a digital point or attribute, automatically set to OFF or one
of the two values of a digital attribute, such as DISABLED
for STATE.
C-16
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Control and Frame Styles
• top_scale—Required if it is not a digital control. If it is for
a digital point or attribute, automatically set to ON or one
of the two values of a digital attribute, such as ENABLED
for STATE.
• tickmarks—Not applicable.
• steps—Required. If you do not give a number of steps, the
number defaults to 1, the correct number for a digital point
or attribute.
• format—Not applicable.
• The value that appears in the box automatically appears in
the format for the point that the control represents.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
C-17
Control and Frame Styles
Figure C-10. Control Style 10—Value Bar
Title
####.##
• user_change—If you do not allow the user to change the
setting, the arrows do not appear.
• Resizing—You may resize. Positions itself in the center of
the coordinates you give, as long as all coordinates are on
the screen. Shapes to a tall narrow area or a short wide
area. Must be at least 80 line points wide and 50 line points
high.
• frame—Optional.
• direction—Not applicable.
• bot_scale—Required if it is not a digital control. If it is for
a digital point or attribute, automatically set to OFF or one
of the two values of a digital attribute, such as DISABLED
for STATE.
• top_scale—Required if it is not a digital control. If it is for
a digital point or attribute, automatically set to ON or one
C-18
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Control and Frame Styles
•
•
•
•
of the two values of a digital attribute, such as ENABLED
for STATE.
tickmarks—Not applicable.
steps—Required. If you do not give a number of steps, the
number defaults to 1, the correct number for a digital point
or attribute.
format—Not applicable.
The value that appears in the box automatically appears in
the format for the point that the control represents.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
C-19
Control and Frame Styles
Figure C-11. Control Style 11—Level Fill with Scale
Title
• user_change—If you do not allow the user to change the
setting, the arrows do not appear.
• Resizing—You may resize. Positions itself in the center of
the coordinates you give, as long as all coordinates are on
the screen. Shapes to a tall narrow area or a short wide
area. Must be at least 80 line points wide and 50 line points
high.
• frame—Optional.
• direction—Required. Set to horizontal or vertical to
determine the direction the bar moves to show a change in
value. If you do not set, it is automatically horizontal.
• bot_scale—Required if it is not a digital control. If it is for
a digital point or attribute, automatically set to OFF or one
of the two values of a digital attribute, such as DISABLED
for STATE.
C-20
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Control and Frame Styles
• top_scale—Required if it is not a digital control. If it is for
a digital point or attribute, automatically set to ON or one
of the two values of a digital attribute, such as ENABLED
for STATE.
• tickmarks—Optional. You do not have to display tick
marks, but you may.
• steps—Required. If you do not give a number of steps, the
number defaults to the number of dots on the screen along
the length of the scale.
• format—Optional. If you do not specify a format for the
numbers that label the positions on the knob, Infinity does
not display the number but leaves adequate space to
display four digits—####.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
C-21
Control and Frame Styles
Figure C-12. Control Style 12—Slider Pointer and
Scale
Title
• user_change—If you do not allow the user to change the
setting, the arrows do not appear.
• Resizing—You may resize. Positions itself in the center of
the coordinates you give, as long as all coordinates are on
the screen. Shape to a tall narrow area or a short wide area.
Must be at least 80 line points wide and 50 line points high.
• frame—Optional.
• direction—Required. Set to horizontal or vertical to
determine the direction the pointer moves to show a
change in value. If you do not set, it is automatically
horizontal.
• bot_scale—Required if it is not a digital control. If it is for
a digital point or attribute, automatically set to OFF or one
of the two values of a digital attribute, such as DISABLED
for STATE.
C-22
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Control and Frame Styles
• top_scale—Required if it is not a digital control. If it is for
a digital point or attribute, automatically set to ON or one
of the two values of a digital attribute, such as ENABLED
for STATE.
• tickmarks—Optional. You do not have to display tick
marks, but you may.
• steps—Required. If you do not give a number of steps, the
number defaults to the number of dots on the screen along
the length of the scale.
• format—Optional. If you do not specify a format for the
numbers that label the positions on the knob, Infinity does
not display the number but leaves adequate space to
display four digits—####.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
C-23
Control and Frame Styles
Figure C-13. Control Style 13—DateTime Display
Bar
Title
###•##•#### ##:##:##
• user_change—If you do not allow the user to change the
setting, the arrows do not appear.
• Resizing—You may not resize. Positions itself in the
center of the coordinates you give, as long as the center of
the control is at least 95 line points from any screen edge.
The control automatically positions itself in the single row
of cells nearest the coordinates you give. Must be at least
80 line points wide and 50 line points high.
• frame—Optional.
• direction—Not applicable.
• bot_scale—Not applicable.
• top_scale—Not applicable.
• tickmarks—Not applicable.
• steps—Not applicable.
•
C-24
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Control and Frame Styles
• format—Not applicable.
• You must specify a datetime point or the control does not
appear.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
C-25
Control and Frame Styles
Figure C-14. Frame Style 1
Title
C-26
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Control and Frame Styles
Figure C-15. Frame Style 2
Title
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
C-27
Control and Frame Styles
Figure C-16. Frame Style 3
Title
C-28
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Control and Frame Styles
Figure C-17. Frame Style 4
Title
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
C-29
Control and Frame Styles
C-30
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Appendix D
Storing Areas/Persons on
Infinity CX 9000/CMX 220
Series Controllers
This appendix explains how you can determine the number of
persons you can store on your Infinity CX 9000 series, CMX
220 series, or ACX 700 series controller if it is the access
server.
www.PDF-Zoo.com
Persons Calculations
Maximum Number of
Personnel Objects per Device
Select Certain Controller
Types for AccessServer
Andover Controls recommends that if you use a controller as
the access server, you use one of those named in the table
below. This table indicates the maximum number of
personnel you can store on each type of controller that can be
an access server.
Figure D-1. Maximum Number of Personnel per
Controller
Controller
Memory
Long Records
Short Records
700
256 KB
427
1,500
780
1 MB
240
2 MB
1,300
3,600
9001
2 MB
1,300
3,600
9200
8 MB
5,000
15,000
6,400
The 240, 9001, and 9200 numbers are based on one user port.
D-2
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Persons Calculations
Long Records vs. Short Records
What is a “short record”? A short record is one that includes
only a basic set of personnel attributes that are required to
define a person. The following is a list of the basic required
attributes:
Name
CardType
CardNumber
PIN
SiteCode
StartDate (Activation Date)
ExpirationDate
DepartmentCode
Duress
EntryEgress
TimeEntered
Value (Current Area)
State
The list of areas the person is allowed in is also “required.” If
you assign only these basic attributes, and leave all others
empty, the personnel record is a “short record.”
A “long record” is one that includes any personnel attributes
other than the basic attributes listed here.
Infinity Controller Programmer’s Guide
www.PDF-Zoo.com
D-3
Long Record vs. Short
Records
Persons Calculations
D-4
www.PDF-Zoo.com
Infinity Controller Programmer’s Guide
Download PDF
Similar pages